Browse Source

Replace carla_add/copy/zeroFloat with juce FloatVectorOperation

tags/1.9.4
falkTX 12 years ago
parent
commit
a353fb71a8
19 changed files with 126 additions and 118 deletions
  1. +14
    -12
      source/backend/engine/CarlaEngine.cpp
  2. +10
    -18
      source/backend/engine/CarlaEngineJack.cpp
  3. +2
    -2
      source/backend/engine/CarlaEngineNative.cpp
  4. +20
    -16
      source/backend/engine/CarlaEngineRtAudio.cpp
  5. +5
    -5
      source/backend/plugin/BridgePlugin.cpp
  6. +5
    -1
      source/backend/plugin/CarlaPluginInternal.hpp
  7. +7
    -7
      source/backend/plugin/DssiPlugin.cpp
  8. +4
    -4
      source/backend/plugin/FluidSynthPlugin.cpp
  9. +7
    -7
      source/backend/plugin/LadspaPlugin.cpp
  10. +2
    -2
      source/backend/plugin/LinuxSamplerPlugin.cpp
  11. +7
    -7
      source/backend/plugin/Lv2Plugin.cpp
  12. +4
    -4
      source/backend/plugin/NativePlugin.cpp
  13. +4
    -4
      source/backend/plugin/VstPlugin.cpp
  14. +4
    -4
      source/discovery/carla-discovery.cpp
  15. +8
    -7
      source/modules/carla_native/audio-base.hpp
  16. +6
    -6
      source/modules/carla_native/audio-file.cpp
  17. +2
    -2
      source/modules/carla_native/sunvox-file.cpp
  18. +10
    -6
      source/modules/carla_native/zynaddsubfx-fx.cpp
  19. +5
    -4
      source/modules/carla_native/zynaddsubfx-synth.cpp

+ 14
- 12
source/backend/engine/CarlaEngine.cpp View File

@@ -20,7 +20,9 @@
#include "CarlaStateUtils.hpp"
#include "CarlaMIDI.h"

#include <cmath>
#include "juce_audio_basics.h"

using juce::FloatVectorOperations;

CARLA_BACKEND_START_NAMESPACE

@@ -90,7 +92,7 @@ void CarlaEngineCVPort::initBuffer()
{
CARLA_SAFE_ASSERT_RETURN(fBuffer != nullptr,);

carla_zeroFloat(fBuffer, fEngine.getBufferSize());
FloatVectorOperations::clear(fBuffer, fEngine.getBufferSize());
}

void CarlaEngineCVPort::writeBuffer(const uint32_t, const uint32_t)
@@ -1708,12 +1710,12 @@ void CarlaEngine::processRack(float* inBufReal[2], float* outBuf[2], const uint3
float* inBuf[2] = { inBuf0, inBuf1 };

// initialize inputs
carla_copyFloat(inBuf0, inBufReal[0], frames);
carla_copyFloat(inBuf1, inBufReal[1], frames);
FloatVectorOperations::copy(inBuf0, inBufReal[0], frames);
FloatVectorOperations::copy(inBuf1, inBufReal[1], frames);

// initialize outputs (zero)
carla_zeroFloat(outBuf[0], frames);
carla_zeroFloat(outBuf[1], frames);
FloatVectorOperations::clear(outBuf[0], frames);
FloatVectorOperations::clear(outBuf[1], frames);
carla_zeroMem(pData->bufEvents.out, sizeof(EngineEvent)*kEngineMaxInternalEventCount);

bool processed = false;
@@ -1732,12 +1734,12 @@ void CarlaEngine::processRack(float* inBufReal[2], float* outBuf[2], const uint3
if (processed)
{
// initialize inputs (from previous outputs)
carla_copyFloat(inBuf0, outBuf[0], frames);
carla_copyFloat(inBuf1, outBuf[1], frames);
FloatVectorOperations::copy(inBuf0, outBuf[0], frames);
FloatVectorOperations::copy(inBuf1, outBuf[1], frames);

// initialize outputs (zero)
carla_zeroFloat(outBuf[0], frames);
carla_zeroFloat(outBuf[1], frames);
FloatVectorOperations::clear(outBuf[0], frames);
FloatVectorOperations::clear(outBuf[1], frames);

// if plugin has no midi out, add previous events
if (oldMidiOutCount == 0 && pData->bufEvents.in[0].type != CarlaBackend::kEngineEventTypeNull)
@@ -1766,8 +1768,8 @@ void CarlaEngine::processRack(float* inBufReal[2], float* outBuf[2], const uint3
// if plugin has no audio inputs, add input buffer
if (oldAudioInCount == 0)
{
carla_addFloat(outBuf[0], inBuf0, frames);
carla_addFloat(outBuf[1], inBuf1, frames);
FloatVectorOperations::add(outBuf[0], inBuf0, frames);
FloatVectorOperations::add(outBuf[1], inBuf1, frames);
}

// set peaks


+ 10
- 18
source/backend/engine/CarlaEngineJack.cpp View File

@@ -19,8 +19,6 @@
#include "CarlaBackendUtils.hpp"
#include "CarlaMIDI.h"

#include "juce_core.h"

#ifdef JACKBRIDGE_EXPORT
# include "jackbridge/JackBridge.hpp"
#else
@@ -28,12 +26,11 @@
# include "jackbridge/JackBridge2.cpp"
#endif

#include <cmath>
#include "juce_audio_basics.h"

#define URI_CANVAS_ICON "http://kxstudio.sf.net/ns/canvas/icon"

using juce::String;
using juce::StringArray;
using juce::FloatVectorOperations;

CARLA_BACKEND_START_NAMESPACE

@@ -87,7 +84,7 @@ public:
fBuffer = (float*)jackbridge_port_get_buffer(fPort, bufferSize);

if (! fIsInput)
carla_zeroFloat(fBuffer, bufferSize);
FloatVectorOperations::clear(fBuffer, bufferSize);
}

private:
@@ -140,11 +137,11 @@ public:
if (fIsInput)
{
float* const jackBuffer((float*)jackbridge_port_get_buffer(fPort, bufferSize));
carla_copyFloat(fBuffer, jackBuffer, bufferSize);
FloatVectorOperations::copy(fBuffer, jackBuffer, bufferSize);
}
else
{
carla_zeroFloat(fBuffer, bufferSize);
FloatVectorOperations::clear(fBuffer, bufferSize);
}
}

@@ -153,7 +150,7 @@ public:
CARLA_SAFE_ASSERT_RETURN(! fIsInput,);

float* const jackBuffer((float*)jackbridge_port_get_buffer(fPort, fEngine.getBufferSize()));
carla_copyFloat(jackBuffer+timeOffset, fBuffer, frames);
FloatVectorOperations::copy(jackBuffer+timeOffset, fBuffer, frames);
}

private:
@@ -938,7 +935,6 @@ public:
jackbridge_set_process_callback(jclient, carla_jack_process_callback_plugin, plugin);
jackbridge_set_latency_callback(jclient, carla_jack_latency_callback_plugin, plugin);

// this is supposed to be constant...
client->fClient = jclient;
}
}
@@ -1155,14 +1151,8 @@ protected:
float* const audioOut2 = (float*)jackbridge_port_get_buffer(fRackPorts[kRackPortAudioOut2], nframes);
void* const eventOut = jackbridge_port_get_buffer(fRackPorts[kRackPortEventOut], nframes);

CARLA_ASSERT(audioIn1 != nullptr);
CARLA_ASSERT(audioIn2 != nullptr);
CARLA_ASSERT(audioOut1 != nullptr);
CARLA_ASSERT(audioOut2 != nullptr);
CARLA_ASSERT(eventOut != nullptr);

carla_copyFloat(audioOut1, audioIn1, nframes);
carla_copyFloat(audioOut2, audioIn2, nframes);
FloatVectorOperations::copy(audioOut1, audioIn1, nframes);
FloatVectorOperations::copy(audioOut2, audioIn2, nframes);
jackbridge_midi_clear_buffer(eventOut);
}
#endif
@@ -1860,6 +1850,8 @@ private:
CARLA_ASSERT(fLastConnectionId == 0);
CARLA_ASSERT(ourName != nullptr);

using namespace juce;

// query initial jack ports
StringArray parsedGroups;



+ 2
- 2
source/backend/engine/CarlaEngineNative.cpp View File

@@ -447,8 +447,8 @@ protected:
{
if (pData->curPluginCount == 0)
{
carla_zeroFloat(outBuffer[0], frames);
carla_zeroFloat(outBuffer[1], frames);
FloatVectorOperations::clear(outBuffer[0], frames);
FloatVectorOperations::clear(outBuffer[1], frames);
return runPendingRtEvents();;
}



+ 20
- 16
source/backend/engine/CarlaEngineRtAudio.cpp View File

@@ -23,6 +23,10 @@
#include "RtAudio.h"
#include "RtMidi.h"

#include "juce_audio_basics.h"

using juce::FloatVectorOperations;

CARLA_BACKEND_START_NAMESPACE

#if 0
@@ -803,7 +807,7 @@ protected:
if (pData->curPluginCount == 0 || fAudioCountOut == 0 || ! fAudioIsReady)
{
if (fAudioCountOut > 0 && fAudioIsReady)
carla_zeroFloat(outsPtr, nframes*fAudioCountOut);
FloatVectorOperations::clear(outsPtr, nframes*fAudioCountOut);

return runPendingRtEvents();
}
@@ -822,15 +826,15 @@ protected:
else
{
for (unsigned int i=0; i < fAudioCountIn; ++i)
carla_copyFloat(fAudioBufIn[i], insPtr+(nframes*i), nframes);
FloatVectorOperations::copy(fAudioBufIn[i], insPtr+(nframes*i), nframes);
}

// initialize audio output
for (unsigned int i=0; i < fAudioCountOut; ++i)
carla_zeroFloat(fAudioBufOut[i], nframes);
FloatVectorOperations::clear(fAudioBufOut[i], nframes);

carla_zeroFloat(fAudioBufRackOut[0], nframes);
carla_zeroFloat(fAudioBufRackOut[1], nframes);
FloatVectorOperations::clear(fAudioBufRackOut[0], nframes);
FloatVectorOperations::clear(fAudioBufRackOut[1], nframes);

// initialize input events
carla_zeroMem(pData->bufEvents.in, sizeof(EngineEvent)*kEngineMaxInternalEventCount);
@@ -930,7 +934,7 @@ protected:
// connect input buffers
if (fConnectedAudioIns[0].count() == 0)
{
carla_zeroFloat(fAudioBufRackIn[0], nframes);
FloatVectorOperations::clear(fAudioBufRackIn[0], nframes);
}
else
{
@@ -943,20 +947,20 @@ protected:

if (first)
{
carla_copyFloat(fAudioBufRackIn[0], fAudioBufIn[port], nframes);
FloatVectorOperations::copy(fAudioBufRackIn[0], fAudioBufIn[port], nframes);
first = false;
}
else
carla_addFloat(fAudioBufRackIn[0], fAudioBufIn[port], nframes);
FloatVectorOperations::add(fAudioBufRackIn[0], fAudioBufIn[port], nframes);
}

if (first)
carla_zeroFloat(fAudioBufRackIn[0], nframes);
FloatVectorOperations::clear(fAudioBufRackIn[0], nframes);
}

if (fConnectedAudioIns[1].count() == 0)
{
carla_zeroFloat(fAudioBufRackIn[1], nframes);
FloatVectorOperations::clear(fAudioBufRackIn[1], nframes);
}
else
{
@@ -969,15 +973,15 @@ protected:

if (first)
{
carla_copyFloat(fAudioBufRackIn[1], fAudioBufIn[port], nframes);
FloatVectorOperations::copy(fAudioBufRackIn[1], fAudioBufIn[port], nframes);
first = false;
}
else
carla_addFloat(fAudioBufRackIn[1], fAudioBufIn[port], nframes);
FloatVectorOperations::add(fAudioBufRackIn[1], fAudioBufIn[port], nframes);
}

if (first)
carla_zeroFloat(fAudioBufRackIn[1], nframes);
FloatVectorOperations::clear(fAudioBufRackIn[1], nframes);
}

// process
@@ -991,7 +995,7 @@ protected:
const uint& port(*it);
CARLA_ASSERT(port < fAudioCountOut);

carla_addFloat(fAudioBufOut[port], fAudioBufRackOut[0], nframes);
FloatVectorOperations::add(fAudioBufOut[port], fAudioBufRackOut[0], nframes);
}
}

@@ -1002,7 +1006,7 @@ protected:
const uint& port(*it);
CARLA_ASSERT(port < fAudioCountOut);

carla_addFloat(fAudioBufOut[port], fAudioBufRackOut[1], nframes);
FloatVectorOperations::add(fAudioBufOut[port], fAudioBufRackOut[1], nframes);
}
}

@@ -1022,7 +1026,7 @@ protected:
else
{
for (unsigned int i=0; i < fAudioCountOut; ++i)
carla_copyFloat(outsPtr+(nframes*i), fAudioBufOut[i], nframes);
FloatVectorOperations::copy(outsPtr+(nframes*i), fAudioBufOut[i], nframes);
}

// output events


+ 5
- 5
source/backend/plugin/BridgePlugin.cpp View File

@@ -753,7 +753,7 @@ public:
{
// disable any output sound
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return;
}
@@ -1058,7 +1058,7 @@ public:
else if (! pData->singleMutex.tryLock())
{
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return false;
}
@@ -1067,7 +1067,7 @@ public:
// Reset audio buffers

for (i=0; i < fInfo.aIns; ++i)
carla_copyFloat(fShmAudioPool.data + (i * frames), inBuffer[i], frames);
FloatVectorOperations::copy(fShmAudioPool.data + (i * frames), inBuffer[i], frames);

// --------------------------------------------------------------------------------------------------------
// Run plugin
@@ -1082,7 +1082,7 @@ public:
}

for (i=0; i < fInfo.aOuts; ++i)
carla_copyFloat(outBuffer[i], fShmAudioPool.data + ((i + fInfo.aIns) * frames), frames);
FloatVectorOperations::copy(outBuffer[i], fShmAudioPool.data + ((i + fInfo.aIns) * frames), frames);

// --------------------------------------------------------------------------------------------------------
// Post-processing (dry/wet, volume and balance)
@@ -1115,7 +1115,7 @@ public:
if (isPair)
{
CARLA_ASSERT(i+1 < pData->audioOut.count);
carla_copyFloat(oldBufLeft, outBuffer[i], frames);
FloatVectorOperations::copy(oldBufLeft, outBuffer[i], frames);
}

float balRangeL = (pData->postProc.balanceLeft + 1.0f)/2.0f;


+ 5
- 1
source/backend/plugin/CarlaPluginInternal.hpp View File

@@ -29,8 +29,12 @@
#include "CarlaMIDI.h"
#include "RtList.hpp"

#include "juce_audio_basics.h"

#define CARLA_PROCESS_CONTINUE_CHECK if (! fEnabled) { pData->engine->callback(CALLBACK_DEBUG, fId, 0, 0, 0.0f, "Processing while plugin is disabled!!"); return; }

using juce::FloatVectorOperations;

CARLA_BACKEND_START_NAMESPACE

#if 0
@@ -769,7 +773,7 @@ struct CarlaPluginProtectedData {
for (uint32_t i=0; i < audioIn.count; ++i)
{
latencyBuffers[i] = new float[latency];
carla_zeroFloat(latencyBuffers[i], latency);
FloatVectorOperations::clear(latencyBuffers[i], latency);
}
}
}


+ 7
- 7
source/backend/plugin/DssiPlugin.cpp View File

@@ -483,7 +483,7 @@ public:
pData->param.createNew(params);

fParamBuffers = new float[params];
carla_zeroFloat(fParamBuffers, params);
FloatVectorOperations::clear(fParamBuffers, params);
}

const uint portNameSize(pData->engine->getMaxPortNameSize());
@@ -953,7 +953,7 @@ public:
{
// disable any output sound
for (uint32_t i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return;
}
@@ -997,7 +997,7 @@ public:
if (pData->latency > 0)
{
for (uint32_t i=0; i < pData->audioIn.count; ++i)
carla_zeroFloat(pData->latencyBuffers[i], pData->latency);
FloatVectorOperations::clear(pData->latencyBuffers[i], pData->latency);
}

pData->needsReset = false;
@@ -1448,9 +1448,9 @@ public:
// Reset audio buffers

for (uint32_t i=0; i < pData->audioIn.count; ++i)
carla_copyFloat(fAudioInBuffers[i], inBuffer[i]+timeOffset, frames);
FloatVectorOperations::copy(fAudioInBuffers[i], inBuffer[i]+timeOffset, frames);
for (uint32_t i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(fAudioOutBuffers[i], frames);
FloatVectorOperations::clear(fAudioOutBuffers[i], frames);

// --------------------------------------------------------------------------------------------------------
// Run plugin
@@ -1515,7 +1515,7 @@ public:
if (isPair)
{
CARLA_ASSERT(i+1 < pData->audioOut.count);
carla_copyFloat(oldBufLeft, fAudioOutBuffers[i], frames);
FloatVectorOperations::copy(oldBufLeft, fAudioOutBuffers[i], frames);
}

float balRangeL = (pData->postProc.balanceLeft + 1.0f)/2.0f;
@@ -1550,7 +1550,7 @@ public:
if (pData->latency > 0 && pData->latency < frames)
{
for (i=0; i < pData->audioIn.count; ++i)
carla_copyFloat(pData->latencyBuffers[i], inBuffer[i] + (frames - pData->latency), pData->latency);
FloatVectorOperations::copy(pData->latencyBuffers[i], inBuffer[i] + (frames - pData->latency), pData->latency);
}
#endif
} // End of Post-processing


+ 4
- 4
source/backend/plugin/FluidSynthPlugin.cpp View File

@@ -51,7 +51,7 @@ public:
carla_debug("FluidSynthPlugin::FluidSynthPlugin(%p, %i, %s)", engine, id, bool2str(use16Outs));

#ifndef CARLA_PROPER_CPP11_SUPPORT
carla_zeroFloat(fParamBuffers, FluidSynthParametersMax);
FloatVectorOperations::clear(fParamBuffers, FluidSynthParametersMax);
carla_fill<int32_t>(fCurMidiProgs, MAX_MIDI_CHANNELS, 0);
#endif

@@ -1012,7 +1012,7 @@ public:
{
// disable any output sound
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return;
}
@@ -1390,7 +1390,7 @@ public:
if (kUses16Outs)
{
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(fAudio16Buffers[i], frames);
FloatVectorOperations::clear(fAudio16Buffers[i], frames);

fluid_synth_process(fSynth, frames, 0, nullptr, pData->audioOut.count, fAudio16Buffers);
}
@@ -1414,7 +1414,7 @@ public:
if (doBalance)
{
if (i % 2 == 0)
carla_copyFloat(oldBufLeft, outBuffer[i]+timeOffset, frames);
FloatVectorOperations::copy(oldBufLeft, outBuffer[i]+timeOffset, frames);

float balRangeL = (pData->postProc.balanceLeft + 1.0f)/2.0f;
float balRangeR = (pData->postProc.balanceRight + 1.0f)/2.0f;


+ 7
- 7
source/backend/plugin/LadspaPlugin.cpp View File

@@ -486,7 +486,7 @@ public:
pData->param.createNew(params);

fParamBuffers = new float[params];
carla_zeroFloat(fParamBuffers, params);
FloatVectorOperations::clear(fParamBuffers, params);
}

const uint portNameSize(pData->engine->getMaxPortNameSize());
@@ -853,7 +853,7 @@ public:
{
// disable any output sound
for (uint32_t i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return;
}
@@ -866,7 +866,7 @@ public:
if (pData->latency > 0)
{
for (uint32_t i=0; i < pData->audioIn.count; ++i)
carla_zeroFloat(pData->latencyBuffers[i], pData->latency);
FloatVectorOperations::clear(pData->latencyBuffers[i], pData->latency);
}

pData->needsReset = false;
@@ -1098,9 +1098,9 @@ public:
// Reset audio buffers

for (uint32_t i=0; i < pData->audioIn.count; ++i)
carla_copyFloat(fAudioInBuffers[i], inBuffer[i]+timeOffset, frames);
FloatVectorOperations::copy(fAudioInBuffers[i], inBuffer[i]+timeOffset, frames);
for (uint32_t i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(fAudioOutBuffers[i], frames);
FloatVectorOperations::clear(fAudioOutBuffers[i], frames);

// --------------------------------------------------------------------------------------------------------
// Run plugin
@@ -1147,7 +1147,7 @@ public:
if (isPair)
{
CARLA_ASSERT(i+1 < pData->audioOut.count);
carla_copyFloat(oldBufLeft, fAudioOutBuffers[i], frames);
FloatVectorOperations::copy(oldBufLeft, fAudioOutBuffers[i], frames);
}

float balRangeL = (pData->postProc.balanceLeft + 1.0f)/2.0f;
@@ -1182,7 +1182,7 @@ public:
if (pData->latency > 0 && pData->latency < frames)
{
for (i=0; i < pData->audioIn.count; ++i)
carla_copyFloat(pData->latencyBuffers[i], inBuffer[i] + (frames - pData->latency), pData->latency);
FloatVectorOperations::copy(pData->latencyBuffers[i], inBuffer[i] + (frames - pData->latency), pData->latency);
}
#endif
} // End of Post-processing


+ 2
- 2
source/backend/plugin/LinuxSamplerPlugin.cpp View File

@@ -523,7 +523,7 @@ public:
{
// disable any output sound
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return;
}
@@ -891,7 +891,7 @@ public:
if (doBalance)
{
if (i % 2 == 0)
carla_copyFloat(oldBufLeft, outBuffer[i], frames);
FloatVectorOperations::copy(oldBufLeft, outBuffer[i], frames);

float balRangeL = (pData->postProc.balanceLeft + 1.0f)/2.0f;
float balRangeR = (pData->postProc.balanceRight + 1.0f)/2.0f;


+ 7
- 7
source/backend/plugin/Lv2Plugin.cpp View File

@@ -1442,7 +1442,7 @@ public:
pData->param.createNew(params+cvIns+cvOuts);

fParamBuffers = new float[params+cvIns+cvOuts];
carla_zeroFloat(fParamBuffers, params+cvIns+cvOuts);
FloatVectorOperations::clear(fParamBuffers, params+cvIns+cvOuts);
}

if (evIns.count() > 0)
@@ -2338,7 +2338,7 @@ public:
{
// disable any output sound
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return;
}
@@ -2452,7 +2452,7 @@ public:
//if (pData->latency > 0)
{
//for (i=0; i < pData->audioIn.count; ++i)
// carla_zeroFloat(pData->latencyBuffers[i], pData->latency);
// FloatVectorOperations::clear(pData->latencyBuffers[i], pData->latency);
}

pData->needsReset = false;
@@ -3146,9 +3146,9 @@ public:
// Reset audio buffers

for (i=0; i < pData->audioIn.count; ++i)
carla_copyFloat(fAudioInBuffers[i], inBuffer[i]+timeOffset, frames);
FloatVectorOperations::copy(fAudioInBuffers[i], inBuffer[i]+timeOffset, frames);
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(fAudioOutBuffers[i], frames);
FloatVectorOperations::clear(fAudioOutBuffers[i], frames);

// --------------------------------------------------------------------------------------------------------
// Set CV input buffers
@@ -3230,7 +3230,7 @@ public:
if (isPair)
{
CARLA_ASSERT(i+1 < pData->audioOut.count);
carla_copyFloat(oldBufLeft, fAudioOutBuffers[i], frames);
FloatVectorOperations::copy(oldBufLeft, fAudioOutBuffers[i], frames);
}

float balRangeL = (pData->postProc.balanceLeft + 1.0f)/2.0f;
@@ -3265,7 +3265,7 @@ public:
if (pData->latency > 0 && pData->latency < frames)
{
for (i=0; i < pData->audioIn.count; ++i)
carla_copyFloat(pData->latencyBuffers[i], inBuffer[i] + (frames - pData->latency), pData->latency);
FloatVectorOperations::copy(pData->latencyBuffers[i], inBuffer[i] + (frames - pData->latency), pData->latency);
}
# endif
} // End of Post-processing


+ 4
- 4
source/backend/plugin/NativePlugin.cpp View File

@@ -1318,7 +1318,7 @@ public:
{
// disable any output sound
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return;
}
@@ -1805,9 +1805,9 @@ public:
// Reset audio buffers

for (i=0; i < pData->audioIn.count; ++i)
carla_copyFloat(fAudioInBuffers[i], inBuffer[i]+timeOffset, frames);
FloatVectorOperations::copy(fAudioInBuffers[i], inBuffer[i]+timeOffset, frames);
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(fAudioOutBuffers[i], frames);
FloatVectorOperations::clear(fAudioOutBuffers[i], frames);

// --------------------------------------------------------------------------------------------------------
// Run plugin
@@ -1865,7 +1865,7 @@ public:
if (isPair)
{
CARLA_ASSERT(i+1 < pData->audioOut.count);
carla_copyFloat(oldBufLeft, fAudioOutBuffers[i], frames);
FloatVectorOperations::copy(oldBufLeft, fAudioOutBuffers[i], frames);
}

float balRangeL = (pData->postProc.balanceLeft + 1.0f)/2.0f;


+ 4
- 4
source/backend/plugin/VstPlugin.cpp View File

@@ -996,7 +996,7 @@ public:
{
// disable any output sound
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(outBuffer[i], frames);
FloatVectorOperations::clear(outBuffer[i], frames);

return;
}
@@ -1042,7 +1042,7 @@ public:
if (pData->latency > 0)
{
for (i=0; i < pData->audioIn.count; ++i)
carla_zeroFloat(pData->latencyBuffers[i], pData->latency);
FloatVectorOperations::clear(pData->latencyBuffers[i], pData->latency);
}

pData->needsReset = false;
@@ -1517,7 +1517,7 @@ public:
else
{
for (i=0; i < pData->audioOut.count; ++i)
carla_zeroFloat(vstOutBuffer[i], frames);
FloatVectorOperations::clear(vstOutBuffer[i], frames);

#if ! VST_FORCE_DEPRECATED
fEffect->process(fEffect,
@@ -1562,7 +1562,7 @@ public:
if (isPair)
{
CARLA_ASSERT(i+1 < pData->audioOut.count);
carla_copyFloat(oldBufLeft, outBuffer[i]+timeOffset, frames);
FloatVectorOperations::copy(oldBufLeft, outBuffer[i]+timeOffset, frames);
}

float balRangeL = (pData->postProc.balanceLeft + 1.0f)/2.0f;


+ 4
- 4
source/discovery/carla-discovery.cpp View File

@@ -513,7 +513,7 @@ void do_ladspa_check(void*& libHandle, const char* const filename, const bool in

if (LADSPA_IS_PORT_AUDIO(portDescriptor))
{
carla_zeroFloat(bufferAudio[iA], kBufferSize);
FloatVectorOperations::clear(bufferAudio[iA], kBufferSize);
descriptor->connect_port(handle, j, bufferAudio[iA++]);
}
else if (LADSPA_IS_PORT_CONTROL(portDescriptor))
@@ -794,7 +794,7 @@ void do_dssi_check(void*& libHandle, const char* const filename, const bool init

if (LADSPA_IS_PORT_AUDIO(portDescriptor))
{
carla_zeroFloat(bufferAudio[iA], kBufferSize);
FloatVectorOperations::clear(bufferAudio[iA], kBufferSize);
ldescriptor->connect_port(handle, j, bufferAudio[iA++]);
}
else if (LADSPA_IS_PORT_CONTROL(portDescriptor))
@@ -1291,14 +1291,14 @@ void do_vst_check(void*& libHandle, const bool init)
for (int j=0; j < audioIns; ++j)
{
bufferAudioIn[j] = new float[kBufferSize];
carla_zeroFloat(bufferAudioIn[j], kBufferSize);
FloatVectorOperations::clear(bufferAudioIn[j], kBufferSize);
}

float* bufferAudioOut[audioOuts];
for (int j=0; j < audioOuts; ++j)
{
bufferAudioOut[j] = new float[kBufferSize];
carla_zeroFloat(bufferAudioOut[j], kBufferSize);
FloatVectorOperations::clear(bufferAudioOut[j], kBufferSize);
}

struct VstEventsFixed {


+ 8
- 7
source/modules/carla_native/audio-base.hpp View File

@@ -20,8 +20,9 @@

#include "CarlaMutex.hpp"

#include "juce_core.h"
#include "juce_audio_basics.h"

using juce::FloatVectorOperations;
using juce::Thread;

extern "C" {
@@ -99,8 +100,8 @@ struct AudioFilePool {
CARLA_ASSERT(size != 0);

startFrame = 0;
carla_zeroFloat(buffer[0], size);
carla_zeroFloat(buffer[1], size);
FloatVectorOperations::clear(buffer[0], size);
FloatVectorOperations::clear(buffer[1], size);
}
};

@@ -225,8 +226,8 @@ public:
//if (pool.startFrame != fPool.startFrame || pool.buffer[0] != fPool.buffer[0] || pool.buffer[1] != fPool.buffer[1])
{
pool.startFrame = fPool.startFrame;
carla_copyFloat(pool.buffer[0], fPool.buffer[0], fPool.size);
carla_copyFloat(pool.buffer[1], fPool.buffer[1], fPool.size);
FloatVectorOperations::copy(pool.buffer[0], fPool.buffer[0], fPool.size);
FloatVectorOperations::copy(pool.buffer[1], fPool.buffer[1], fPool.size);
}

fMutex.unlock();
@@ -276,7 +277,7 @@ public:
const size_t tmpSize = fPool.size * fFileNfo.channels;

float tmpData[tmpSize];
carla_zeroFloat(tmpData, tmpSize);
FloatVectorOperations::clear(tmpData, tmpSize);

{
carla_stderr("R: poll data - reading at %li:%02li", readFrame/44100/60, (readFrame/44100) % 60);
@@ -372,7 +373,7 @@ protected:
private:
AbstractAudioPlayer* const kPlayer;

mutable bool fNeedsRead;
volatile bool fNeedsRead;

void* fFilePtr;
ADInfo fFileNfo;


+ 6
- 6
source/modules/carla_native/audio-file.cpp View File

@@ -127,8 +127,8 @@ protected:
{
//carla_stderr("P: no process");
fLastFrame = timePos->frame;
carla_zeroFloat(out1, frames);
carla_zeroFloat(out2, frames);
FloatVectorOperations::clear(out1, frames);
FloatVectorOperations::clear(out2, frames);
return;
}

@@ -141,8 +141,8 @@ protected:
if (timePos->frame == 0 && fLastFrame > 0)
fThread.setNeedsRead();

carla_zeroFloat(out1, frames);
carla_zeroFloat(out2, frames);
FloatVectorOperations::clear(out1, frames);
FloatVectorOperations::clear(out2, frames);
return;
}

@@ -157,8 +157,8 @@ protected:
if (timePos->frame + frames < fPool.startFrame)
fThread.setNeedsRead();

carla_zeroFloat(out1, frames);
carla_zeroFloat(out2, frames);
FloatVectorOperations::clear(out1, frames);
FloatVectorOperations::clear(out2, frames);
return;
}



+ 2
- 2
source/modules/carla_native/sunvox-file.cpp View File

@@ -80,8 +80,8 @@ protected:
}
else
{
carla_zeroFloat(outBuf[0], frames);
carla_zeroFloat(outBuf[1], frames);
FloatVectorOperations::clear(outBuf[0], frames);
FloatVectorOperations::clear(outBuf[1], frames);
}
}



+ 10
- 6
source/modules/carla_native/zynaddsubfx-fx.cpp View File

@@ -25,6 +25,10 @@
#include "zynaddsubfx/Effects/Phaser.h"
#include "zynaddsubfx/Effects/Reverb.h"

#include "juce_audio_basics.h"

using juce::FloatVectorOperations;

// -----------------------------------------------------------------------

class FxAbstractPlugin : public PluginClass
@@ -42,8 +46,8 @@ protected:
const uint32_t bufferSize(getBufferSize());
efxoutl = new float[bufferSize];
efxoutr = new float[bufferSize];
carla_zeroFloat(efxoutl, bufferSize);
carla_zeroFloat(efxoutr, bufferSize);
FloatVectorOperations::clear(efxoutl, bufferSize);
FloatVectorOperations::clear(efxoutr, bufferSize);
}

~FxAbstractPlugin() override
@@ -131,8 +135,8 @@ protected:
{
fEffect->out(Stereo<float*>(inBuffer[0], inBuffer[1]));

carla_copyFloat(outBuffer[0], efxoutl, frames);
carla_copyFloat(outBuffer[1], efxoutr, frames);
FloatVectorOperations::copy(outBuffer[0], efxoutl, frames);
FloatVectorOperations::copy(outBuffer[1], efxoutr, frames);
}

// -------------------------------------------------------------------
@@ -144,8 +148,8 @@ protected:
delete[] efxoutr;
efxoutl = new float[bufferSize];
efxoutr = new float[bufferSize];
carla_zeroFloat(efxoutl, bufferSize);
carla_zeroFloat(efxoutr, bufferSize);
FloatVectorOperations::clear(efxoutl, bufferSize);
FloatVectorOperations::clear(efxoutr, bufferSize);

doReinit(bufferSize, getSampleRate());
}


+ 5
- 4
source/modules/carla_native/zynaddsubfx-synth.cpp View File

@@ -51,10 +51,11 @@
#include <set>
#include <string>

#include "juce_core.h"
#include "juce_audio_basics.h"

#ifdef WANT_ZYNADDSUBFX_UI
using juce::FloatVectorOperations;

#ifdef WANT_ZYNADDSUBFX_UI
static Fl_Tiled_Image* gModuleBackdrop = nullptr;
static CarlaString gPixmapPath;
extern CarlaString gUiPixmapPath;
@@ -623,8 +624,8 @@ protected:
{
if (pthread_mutex_trylock(&fMaster->mutex) != 0)
{
carla_zeroFloat(outBuffer[0], frames);
carla_zeroFloat(outBuffer[1], frames);
FloatVectorOperations::clear(outBuffer[0], frames);
FloatVectorOperations::clear(outBuffer[1], frames);
return;
}



Loading…
Cancel
Save