Browse Source

Added method AudioProcessor::silenceInProducesSilenceOut().

tags/2021-05-28
jules 12 years ago
parent
commit
eda5904ba7
5 changed files with 33 additions and 4 deletions
  1. +13
    -0
      modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
  2. +9
    -4
      modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
  3. +3
    -0
      modules/juce_audio_processors/processors/juce_AudioProcessor.h
  4. +6
    -0
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
  5. +2
    -0
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h

+ 13
- 0
modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm View File

@@ -367,6 +367,19 @@ public:
void* getPlatformSpecificData() { return audioUnit; }
const String getName() const { return pluginName; }
bool silenceInProducesSilenceOut() const
{
Float64 tail = 0;
UInt32 tailSize = sizeof (tail);
if (audioUnit != 0)
AudioUnitGetProperty (audioUnit, kAudioUnitProperty_TailTime, kAudioUnitScope_Global,
0, &tail, &tailSize);
return tail <= 0;
}
bool acceptsMidi() const { return wantsMidiMessages; }
bool producesMidi() const { return producesMidiMessages; }


+ 9
- 4
modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp View File

@@ -871,8 +871,8 @@ public:
setLatencySamples (effect->initialDelay);
}
void* getPlatformSpecificData() { return effect; }
const String getName() const { return name; }
void* getPlatformSpecificData() { return effect; }
const String getName() const { return name; }
int getUID() const
{
@@ -884,8 +884,13 @@ public:
return uid;
}
bool acceptsMidi() const { return wantsMidiMessages; }
bool producesMidi() const { return dispatch (effCanDo, 0, 0, (void*) "sendVstMidiEvent", 0) > 0; }
bool silenceInProducesSilenceOut() const
{
return effect == nullptr || (effect->flags & effFlagsNoSoundInStop) != 0;
}
bool acceptsMidi() const { return wantsMidiMessages; }
bool producesMidi() const { return dispatch (effCanDo, 0, 0, (void*) "sendVstMidiEvent", 0) > 0; }
//==============================================================================
void prepareToPlay (double rate, int samplesPerBlockExpected)


+ 3
- 0
modules/juce_audio_processors/processors/juce_AudioProcessor.h View File

@@ -239,6 +239,9 @@ public:
*/
void setLatencySamples (int newLatency);
/** Returns true if a silent input always produces a silent output (i.e. it has no tail). */
virtual bool silenceInProducesSilenceOut() const = 0;
/** Returns true if the processor wants midi messages. */
virtual bool acceptsMidi() const = 0;


+ 6
- 0
modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp View File

@@ -1322,6 +1322,7 @@ const String AudioProcessorGraph::getOutputChannelName (int channelIndex) const
bool AudioProcessorGraph::isInputChannelStereoPair (int /*index*/) const { return true; }
bool AudioProcessorGraph::isOutputChannelStereoPair (int /*index*/) const { return true; }
bool AudioProcessorGraph::silenceInProducesSilenceOut() const { return false; }
bool AudioProcessorGraph::acceptsMidi() const { return true; }
bool AudioProcessorGraph::producesMidi() const { return true; }
void AudioProcessorGraph::getStateInformation (juce::MemoryBlock& /*destData*/) {}
@@ -1423,6 +1424,11 @@ void AudioProcessorGraph::AudioGraphIOProcessor::processBlock (AudioSampleBuffer
}
}
bool AudioProcessorGraph::AudioGraphIOProcessor::silenceInProducesSilenceOut() const
{
return isOutput();
}
bool AudioProcessorGraph::AudioGraphIOProcessor::acceptsMidi() const
{
return type == midiOutputNode;


+ 2
- 0
modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h View File

@@ -320,6 +320,7 @@ public:
const String getOutputChannelName (int channelIndex) const;
bool isInputChannelStereoPair (int index) const;
bool isOutputChannelStereoPair (int index) const;
bool silenceInProducesSilenceOut() const;
bool acceptsMidi() const;
bool producesMidi() const;
@@ -364,6 +365,7 @@ public:
const String getOutputChannelName (int channelIndex) const;
bool isInputChannelStereoPair (int index) const;
bool isOutputChannelStereoPair (int index) const;
bool silenceInProducesSilenceOut() const;
bool acceptsMidi() const;
bool producesMidi() const;


Loading…
Cancel
Save