@@ -639,11 +639,6 @@ void PluginProcessor::processBlock(AudioBuffer<float>& buffer, MidiBuffer& midiB
639
639
setThis ();
640
640
sendPlayhead ();
641
641
642
- midiDeviceManager.dequeueMidiInput (buffer.getNumSamples (), [this ](int port, int blockSize, MidiBuffer& buffer) {
643
- midiInputHistory.addEvents (buffer, 0 , blockSize, 0 );
644
- sendMidiBuffer (port, buffer);
645
- });
646
-
647
642
for (int i = totalNumInputChannels; i < totalNumOutputChannels; ++i) {
648
643
buffer.clear (i, 0 , buffer.getNumSamples ());
649
644
}
@@ -742,14 +737,18 @@ void PluginProcessor::processConstant(dsp::AudioBlock<float> buffer)
742
737
int numBlocks = buffer.getNumSamples () / pdBlockSize;
743
738
744
739
for (int block = 0 ; block < numBlocks; block++) {
745
-
746
740
if (producesMidi ()) {
747
741
midiByteIndex = 0 ;
748
742
midiByteBuffer[0 ] = 0 ;
749
743
midiByteBuffer[1 ] = 0 ;
750
744
midiByteBuffer[2 ] = 0 ;
751
745
}
752
-
746
+
747
+ midiDeviceManager.dequeueMidiInput (pdBlockSize, [this ](int port, int blockSize, MidiBuffer& buffer) {
748
+ midiInputHistory.addEvents (buffer, 0 , blockSize, 0 );
749
+ sendMidiBuffer (port, buffer);
750
+ });
751
+
753
752
for (int ch = 0 ; ch < buffer.getNumChannels (); ch++) {
754
753
// Copy the channel data into the vector
755
754
juce::FloatVectorOperations::copy (
@@ -793,15 +792,26 @@ void PluginProcessor::processVariable(dsp::AudioBlock<float> buffer, MidiBuffer&
793
792
audioAdvancement = 0 ; // Always has to be 0 if we use the AudioMidiFifo!
794
793
795
794
while (outputFifo->getNumSamplesAvailable () < buffer.getNumSamples ()) {
796
- blockMidiBuffer.clear ();
795
+ if (producesMidi ()) {
796
+ midiByteIndex = 0 ;
797
+ midiByteBuffer[0 ] = 0 ;
798
+ midiByteBuffer[1 ] = 0 ;
799
+ midiByteBuffer[2 ] = 0 ;
800
+ }
797
801
802
+ blockMidiBuffer.clear ();
798
803
inputFifo->readAudioAndMidi (audioBufferIn, blockMidiBuffer);
799
804
800
805
if (!ProjectInfo::isStandalone)
801
806
{
802
807
sendMidiBuffer (1 , blockMidiBuffer);
803
808
}
804
809
810
+ midiDeviceManager.dequeueMidiInput (pdBlockSize, [this ](int port, int blockSize, MidiBuffer& buffer) {
811
+ midiInputHistory.addEvents (buffer, 0 , blockSize, 0 );
812
+ sendMidiBuffer (port, buffer);
813
+ });
814
+
805
815
for (int channel = 0 ; channel < audioBufferIn.getNumChannels (); channel++) {
806
816
// Copy the channel data into the vector
807
817
juce::FloatVectorOperations::copy (
@@ -810,13 +820,6 @@ void PluginProcessor::processVariable(dsp::AudioBlock<float> buffer, MidiBuffer&
810
820
pdBlockSize);
811
821
}
812
822
813
- if (producesMidi ()) {
814
- midiByteIndex = 0 ;
815
- midiByteBuffer[0 ] = 0 ;
816
- midiByteBuffer[1 ] = 0 ;
817
- midiByteBuffer[2 ] = 0 ;
818
- }
819
-
820
823
setThis ();
821
824
822
825
sendMessagesFromQueue ();
@@ -825,7 +828,6 @@ void PluginProcessor::processVariable(dsp::AudioBlock<float> buffer, MidiBuffer&
825
828
// Process audio
826
829
performDSP (audioVectorIn.data (), audioVectorOut.data ());
827
830
828
-
829
831
if (connectionListener && plugdata_debugging_enabled ())
830
832
connectionListener.load ()->updateSignalData ();
831
833
0 commit comments