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
PlayHandle
sCall
Song::processNextBuffer
to play songs and addPlayHandle
sQueue jobs for
AudioEngineWorkerThread
and wait for worker threads (PlayHandle
, effects in instrument tracks/sample tracks, FX mixing)Call
runChangesInModel
to process pending non-automated changes
Mixer worker threads
AudioEngineWorkerThread
processes ThreadableJob
s 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?