The audio rendering engine of LMMS
Audio engine and audio rendering
LMMS has a class for audio rendering, named AudioEngine. AudioEngine::renderNextBuffer contains the main functionality of AudionEngine. Major works that the function does:
Remove all finished
PlayHandlesCall
Song::processNextBufferto play songs and addPlayHandlesQueue jobs for
AudioEngineWorkerThreadand wait for worker threads (PlayHandle, effects in instrument tracks/sample tracks, FX mixing)Call
runChangesInModelto process pending non-automated changes
Mixer worker threads
AudioEngineWorkerThread processes ThreadableJobs queued in AudioEngine::renderNextBuffer. There are three kinds of jobs that AudioEngineWorkerThread runs.
AudioPort: Processes intermediate audio signals(Currently used for audio effects for tracks)FxChannel: Processes audio effects per FX channelPlayHandle: Plays notes/instruments/audio samples
Last updated
Was this helpful?