Browse Source

AudioProcessorPlayer: Support MIDI effect processors

v6.1.6
ed 4 years ago
parent
commit
107a2cfe27
1 changed files with 11 additions and 5 deletions
  1. +11
    -5
      modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp

+ 11
- 5
modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp View File

@@ -135,6 +135,9 @@ AudioProcessorPlayer::~AudioProcessorPlayer()
//==============================================================================
AudioProcessorPlayer::NumChannels AudioProcessorPlayer::findMostSuitableLayout (const AudioProcessor& proc) const
{
if (proc.isMidiEffect())
return {};
std::vector<NumChannels> layouts { deviceChannels };
if (deviceChannels.ins == 0 || deviceChannels.ins == 1)
@@ -173,10 +176,13 @@ void AudioProcessorPlayer::setProcessor (AudioProcessor* const processorToPlay)
defaultProcessorChannels = NumChannels { processorToPlay->getBusesLayout() };
actualProcessorChannels = findMostSuitableLayout (*processorToPlay);
processorToPlay->setPlayConfigDetails (actualProcessorChannels.ins,
actualProcessorChannels.outs,
sampleRate,
blockSize);
if (processorToPlay->isMidiEffect())
processorToPlay->setRateAndBufferSizeDetails (sampleRate, blockSize);
else
processorToPlay->setPlayConfigDetails (actualProcessorChannels.ins,
actualProcessorChannels.outs,
sampleRate,
blockSize);
auto supportsDouble = processorToPlay->supportsDoublePrecisionProcessing() && isDoublePrecision;
@@ -256,7 +262,7 @@ void AudioProcessorPlayer::audioDeviceIOCallback (const float** const inputChann
{
// The processor should be prepared to deal with the same number of output channels
// as our output device.
jassert (numOutputChannels == actualProcessorChannels.outs);
jassert (processor->isMidiEffect() || numOutputChannels == actualProcessorChannels.outs);
const ScopedLock sl2 (processor->getCallbackLock());


Loading…
Cancel
Save