| @@ -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 | |||
| @@ -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; | |||
| @@ -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();; | |||
| } | |||
| @@ -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 | |||
| @@ -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; | |||
| @@ -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); | |||
| } | |||
| } | |||
| } | |||
| @@ -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 | |||
| @@ -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; | |||
| @@ -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 | |||
| @@ -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; | |||
| @@ -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 | |||
| @@ -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; | |||
| @@ -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; | |||
| @@ -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 { | |||
| @@ -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; | |||
| @@ -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; | |||
| } | |||
| @@ -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); | |||
| } | |||
| } | |||
| @@ -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()); | |||
| } | |||
| @@ -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; | |||
| } | |||