#include <AudioEngine.h>
◆ AudioEngine()
| ableton::link::AudioEngine::AudioEngine |
( |
bool | renderOnly | ) |
|
|
private |
◆ ~AudioEngine()
| lmms::AudioEngine::~AudioEngine |
( |
| ) |
|
|
overrideprivate |
◆ addAudioBusHandle()
◆ addPlayHandle()
| bool lmms::AudioEngine::addPlayHandle |
( |
PlayHandle * | handle | ) |
|
◆ audioDev()
◆ audioDevName()
| const QString & lmms::AudioEngine::audioDevName |
( |
| ) |
const |
|
inline |
◆ audioDevStartFailed()
| bool lmms::AudioEngine::audioDevStartFailed |
( |
| ) |
const |
|
inline |
◆ baseSampleRate()
◆ clear()
| void lmms::AudioEngine::clear |
( |
| ) |
|
◆ clearInternal()
| void lmms::AudioEngine::clearInternal |
( |
| ) |
|
|
private |
◆ clearNewPlayHandles()
| void lmms::AudioEngine::clearNewPlayHandles |
( |
| ) |
|
◆ clip()
◆ cpuLoad()
| int lmms::AudioEngine::cpuLoad |
( |
| ) |
const |
|
inline |
◆ criticalXRuns()
| bool lmms::AudioEngine::criticalXRuns |
( |
| ) |
const |
◆ detailLoad()
◆ doneChangeInModel()
| void lmms::AudioEngine::doneChangeInModel |
( |
| ) |
|
◆ doSetAudioDevice()
◆ framesPerAudioBuffer()
| f_cnt_t lmms::AudioEngine::framesPerAudioBuffer |
( |
| ) |
const |
|
inline |
- Returns
- The buffer size used by the configured output audio device. It is in the range of MINIMUM_BUFFER_SIZE and MAXIMUM_BUFFER_SIZE.
- Note
- This should not be needed for a majority of cases. Currently, it's only being used to set up the audio devices. This member function may be removed in a later refactor.
◆ framesPerPeriod()
| f_cnt_t lmms::AudioEngine::framesPerPeriod |
( |
| ) |
const |
|
inline |
◆ initDevices()
| void lmms::AudioEngine::initDevices |
( |
| ) |
|
◆ inputBuffer()
◆ inputBufferFrames()
| f_cnt_t lmms::AudioEngine::inputBufferFrames |
( |
| ) |
const |
|
inline |
◆ inputSampleRate()
◆ isAudioDevNameValid()
| bool lmms::AudioEngine::isAudioDevNameValid |
( |
QString | name | ) |
|
|
static |
◆ isMidiDevNameValid()
| bool lmms::AudioEngine::isMidiDevNameValid |
( |
QString | name | ) |
|
|
static |
◆ masterGain()
| float lmms::AudioEngine::masterGain |
( |
| ) |
const |
|
inline |
◆ midiClient()
◆ midiClientName()
| const QString & lmms::AudioEngine::midiClientName |
( |
| ) |
const |
|
inline |
◆ nextAudioBuffer
◆ outputSampleRate()
◆ playHandles()
◆ profiler()
◆ pushInputFrames()
◆ qualitySettingsChanged
| void lmms::AudioEngine::qualitySettingsChanged |
( |
| ) |
|
|
signal |
◆ removeAudioBusHandle()
◆ removePlayHandle()
◆ removePlayHandlesOfTypes()
◆ renderNextBuffer() [1/3]
| void lmms::AudioEngine::renderNextBuffer |
( |
AudioBufferView< float > auto | dst | ) |
|
|
inlineprivate |
◆ renderNextBuffer() [2/3]
Renders an audio buffer into dst.
Renders audio periods into dst. If dst is not a multiple of the period size, the remaining frames are partially rendered (an extra period may be rendered in such cases, which can degrade performance).
If dst has 1 channel, the channels are averaged to mono. If dst has 2 channels, the channels are directly copied. If dst has more than 2 channels, the stereo channels are copied and the rest are zero-filled.
- Parameters
-
| dst | An audio buffer view to write into. Both interleaved and planar overloads are provided. |
◆ renderNextBuffer() [3/3]
Renders an audio buffer into dst.
Renders audio periods into dst. If dst is not a multiple of the period size, the remaining frames are partially rendered (an extra period may be rendered in such cases, which can degrade performance).
If dst has 1 channel, the channels are averaged to mono. If dst has 2 channels, the channels are directly copied. If dst has more than 2 channels, the stereo channels are copied and the rest are zero-filled.
- Parameters
-
| dst | An audio buffer view to write into. Both interleaved and planar overloads are provided. |
◆ renderNextPeriod()
Renders the next audio period.
An audio period is a fixed-size chunk of audio the engine generates, and represents a single cycle of the engine's output. The rendering is chunked into smaller periods to timely handle per-buffer updates like non-sample-accurate automation, as well as to improve memory cache performance.
The audio period generated is interleaved and stereo.
- Note
- The audio period returned is non-owning and will be changed on subsequent calls to renderNextPeriod() and renderNextBuffer(). Callers must copy the data into their own local buffers if they need it to persist.
- Returns
- A non-owning buffer to the next audio period.
◆ renderOnly()
| bool lmms::AudioEngine::renderOnly |
( |
| ) |
const |
|
inline |
◆ renderStageEffects()
| void lmms::AudioEngine::renderStageEffects |
( |
| ) |
|
|
private |
◆ renderStageInstruments()
| void lmms::AudioEngine::renderStageInstruments |
( |
| ) |
|
|
private |
◆ renderStageMix()
| void lmms::AudioEngine::renderStageMix |
( |
| ) |
|
|
private |
◆ renderStageNoteSetup()
| void lmms::AudioEngine::renderStageNoteSetup |
( |
| ) |
|
|
private |
◆ requestChangeInModel()
| void lmms::AudioEngine::requestChangeInModel |
( |
| ) |
|
Block until a change in model can be done (i.e. wait for audio thread).
◆ requestChangesGuard()
◆ restoreAudioDevice()
| void lmms::AudioEngine::restoreAudioDevice |
( |
| ) |
|
◆ sampleRateChanged
| void lmms::AudioEngine::sampleRateChanged |
( |
| ) |
|
|
signal |
◆ setAudioDevice()
| void lmms::AudioEngine::setAudioDevice |
( |
AudioDevice * | _dev, |
|
|
bool | startNow ) |
Set new audio device. Old device will be deleted, unless it's stored using storeAudioDevice
◆ setMasterGain()
| void lmms::AudioEngine::setMasterGain |
( |
const float | mo | ) |
|
|
inline |
◆ startProcessing()
| void lmms::AudioEngine::startProcessing |
( |
| ) |
|
|
inlineprivate |
◆ stopProcessing()
| void lmms::AudioEngine::stopProcessing |
( |
| ) |
|
|
inlineprivate |
◆ storeAudioDevice()
| void lmms::AudioEngine::storeAudioDevice |
( |
| ) |
|
◆ swapBuffers()
| void lmms::AudioEngine::swapBuffers |
( |
| ) |
|
|
private |
◆ tryAudioDevices()
◆ tryMidiClients()
| MidiClient * lmms::AudioEngine::tryMidiClients |
( |
| ) |
|
|
private |
◆ AudioEngineWorkerThread
| friend class AudioEngineWorkerThread |
|
friend |
◆ Engine
◆ ProjectRenderer
| friend class ProjectRenderer |
|
friend |
◆ m_audioBusHandles
◆ m_audioDev
◆ m_audioDevName
| QString lmms::AudioEngine::m_audioDevName |
|
private |
◆ m_audioDevStartFailed
| bool lmms::AudioEngine::m_audioDevStartFailed |
|
private |
◆ m_baseSampleRate
◆ m_changeMutex
| std::recursive_mutex lmms::AudioEngine::m_changeMutex |
|
private |
◆ m_clearSignal
| bool lmms::AudioEngine::m_clearSignal |
|
private |
◆ m_framesPerAudioBuffer
| f_cnt_t lmms::AudioEngine::m_framesPerAudioBuffer |
|
private |
◆ m_framesPerPeriod
| f_cnt_t lmms::AudioEngine::m_framesPerPeriod |
|
private |
◆ m_inputBuffer
◆ m_inputBufferFrames
| f_cnt_t lmms::AudioEngine::m_inputBufferFrames[2] |
|
private |
◆ m_inputBufferRead
| int lmms::AudioEngine::m_inputBufferRead |
|
private |
◆ m_inputBufferSize
| f_cnt_t lmms::AudioEngine::m_inputBufferSize[2] |
|
private |
◆ m_inputBufferWrite
| int lmms::AudioEngine::m_inputBufferWrite |
|
private |
◆ m_masterGain
| float lmms::AudioEngine::m_masterGain |
|
private |
◆ m_midiClient
◆ m_midiClientName
| QString lmms::AudioEngine::m_midiClientName |
|
private |
◆ m_newPlayHandles
◆ m_numWorkers
| int lmms::AudioEngine::m_numWorkers |
|
private |
◆ m_oldAudioDev
◆ m_outputBufferRead
| std::unique_ptr<SampleFrame[]> lmms::AudioEngine::m_outputBufferRead |
|
private |
◆ m_outputBufferReadIndex
| f_cnt_t lmms::AudioEngine::m_outputBufferReadIndex |
|
private |
◆ m_outputBufferWrite
| std::unique_ptr<SampleFrame[]> lmms::AudioEngine::m_outputBufferWrite |
|
private |
◆ m_playHandles
◆ m_playHandlesToRemove
◆ m_profiler
◆ m_renderOnly
| bool lmms::AudioEngine::m_renderOnly |
|
private |
◆ m_workers
The documentation for this class was generated from the following files:
- /home/runner/work/lmms-fork/lmms-fork/include/AudioEngine.h
- /home/runner/work/lmms-fork/lmms-fork/src/core/AudioEngine.cpp
- /home/runner/work/lmms-fork/lmms-fork/plugins/CarlaBase/carla/source/modules/hylia/link/AudioEngine.cpp