Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions include/AudioEngine.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include <QThread>
#include <samplerate.h>

#include <memory>
#include <vector>

#include "lmms_basics.h"
Expand Down Expand Up @@ -380,8 +381,8 @@ class LMMS_EXPORT AudioEngine : public QObject
int m_inputBufferRead;
int m_inputBufferWrite;

surroundSampleFrame * m_outputBufferRead;
surroundSampleFrame * m_outputBufferWrite;
std::unique_ptr<surroundSampleFrame[]> m_outputBufferRead;
std::unique_ptr<surroundSampleFrame[]> m_outputBufferWrite;

// worker thread stuff
std::vector<AudioEngineWorkerThread *> m_workers;
Expand Down
49 changes: 0 additions & 49 deletions include/MemoryHelper.h

This file was deleted.

1 change: 0 additions & 1 deletion include/lmms_basics.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ constexpr char LADSPA_PATH_SEPERATOR =

using sampleFrame = std::array<sample_t, DEFAULT_CHANNELS>;
using surroundSampleFrame = std::array<sample_t, SURROUND_CHANNELS>;
constexpr std::size_t LMMS_ALIGN_SIZE = 16;


#define LMMS_STRINGIFY(s) LMMS_STR(s)
Expand Down
22 changes: 8 additions & 14 deletions src/core/AudioEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
#include "NotePlayHandle.h"
#include "ConfigManager.h"
#include "SamplePlayHandle.h"
#include "MemoryHelper.h"

// platform-specific audio-interface-classes
#include "AudioAlsa.h"
Expand Down Expand Up @@ -137,12 +136,9 @@ AudioEngine::AudioEngine( bool renderOnly ) :
// now that framesPerPeriod is fixed initialize global BufferManager
BufferManager::init( m_framesPerPeriod );

int outputBufferSize = m_framesPerPeriod * sizeof(surroundSampleFrame);
m_outputBufferRead = static_cast<surroundSampleFrame *>(MemoryHelper::alignedMalloc(outputBufferSize));
m_outputBufferWrite = static_cast<surroundSampleFrame *>(MemoryHelper::alignedMalloc(outputBufferSize));
m_outputBufferRead = std::make_unique<surroundSampleFrame[]>(m_framesPerPeriod);
m_outputBufferWrite = std::make_unique<surroundSampleFrame[]>(m_framesPerPeriod);

BufferManager::clear(m_outputBufferRead, m_framesPerPeriod);
BufferManager::clear(m_outputBufferWrite, m_framesPerPeriod);

for( int i = 0; i < m_numWorkers+1; ++i )
{
Expand Down Expand Up @@ -181,8 +177,6 @@ AudioEngine::~AudioEngine()
delete m_midiClient;
delete m_audioDev;

MemoryHelper::alignedFree(m_outputBufferRead);
MemoryHelper::alignedFree(m_outputBufferWrite);

for (const auto& input : m_inputBuffer)
{
Expand Down Expand Up @@ -421,11 +415,11 @@ void AudioEngine::renderStageMix()
AudioEngineProfiler::Probe profilerProbe(m_profiler, AudioEngineProfiler::DetailType::Mixing);

Mixer *mixer = Engine::mixer();
mixer->masterMix(m_outputBufferWrite);
mixer->masterMix(m_outputBufferWrite.get());

MixHelpers::multiply(m_outputBufferWrite, m_masterGain, m_framesPerPeriod);
MixHelpers::multiply(m_outputBufferWrite.get(), m_masterGain, m_framesPerPeriod);

emit nextAudioBuffer(m_outputBufferRead);
emit nextAudioBuffer(m_outputBufferRead.get());

// and trigger LFOs
EnvelopeAndLfoParameters::instances()->trigger();
Expand All @@ -435,7 +429,7 @@ void AudioEngine::renderStageMix()



const surroundSampleFrame *AudioEngine::renderNextBuffer()
const surroundSampleFrame* AudioEngine::renderNextBuffer()
{
const auto lock = std::lock_guard{m_changeMutex};

Expand All @@ -450,7 +444,7 @@ const surroundSampleFrame *AudioEngine::renderNextBuffer()
s_renderingThread = false;
m_profiler.finishPeriod(outputSampleRate(), m_framesPerPeriod);

return m_outputBufferRead;
return m_outputBufferRead.get();
}


Expand All @@ -463,7 +457,7 @@ void AudioEngine::swapBuffers()
m_inputBufferFrames[m_inputBufferWrite] = 0;

std::swap(m_outputBufferRead, m_outputBufferWrite);
BufferManager::clear(m_outputBufferWrite, m_framesPerPeriod);
std::fill_n(m_outputBufferWrite.get(), m_framesPerPeriod, surroundSampleFrame{});
}


Expand Down
1 change: 0 additions & 1 deletion src/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ set(LMMS_SRCS
core/LfoController.cpp
core/LinkedModelGroups.cpp
core/LocklessAllocator.cpp
core/MemoryHelper.cpp
core/MeterModel.cpp
core/MicroTimer.cpp
core/Microtuner.cpp
Expand Down
70 changes: 0 additions & 70 deletions src/core/MemoryHelper.cpp

This file was deleted.