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 - PlayHandles
- Call - Song::processNextBufferto play songs and add- PlayHandles
- Queue 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 channel
- PlayHandle: Plays notes/instruments/audio samples
Last updated
Was this helpful?
