Skip to content

Commit 2ddeb9a

Browse files
committed
Handle global CCs at the processor level.
1 parent 9f11aea commit 2ddeb9a

File tree

4 files changed

+29
-20
lines changed

4 files changed

+29
-20
lines changed

Source/PluginProcessor.cpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,29 @@ void AeolusAudioProcessor::processMidi (juce::MidiBuffer& midiMessages)
199199
for (auto msgIter : midiMessages) {
200200
const auto msg = msgIter.getMessage();
201201

202+
// Handle clobal CCs
203+
const int ch = msg.getChannel();
204+
205+
if ((ch == 0 || _engine.getMIDIControlChannel() == 0 || ch == _engine.getMIDIControlChannel())
206+
&& msg.isController()) {
207+
208+
int cc = msg.getControllerNumber();
209+
const float value = float(msg.getControllerValue()) / 127.0f;
210+
211+
switch (cc) {
212+
case aeolus::CC_VOLUME:
213+
(*_parameters.volume) = value;
214+
break;
215+
case aeolus::CC_REVERB:
216+
(*_parameters.reverbWet) = value;
217+
break;
218+
default:
219+
break;
220+
}
221+
}
222+
202223
_engine.processMIDIMessage(msg);
203224
}
204-
205225
}
206226

207227
//==============================================================================

Source/aeolus/engine.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -616,20 +616,6 @@ void Engine::processControlMIDIMessage(const MidiMessage& message)
616616

617617
if (step >= 0 && step < _sequencer->getStepsCount())
618618
_sequencer->setStep(step);
619-
} else if (message.isController()) {
620-
int cc = message.getControllerNumber();
621-
const float value = float(message.getControllerValue()) / 127.0f;
622-
623-
switch (cc) {
624-
case CC_VOLUME:
625-
setVolume(value);
626-
break;
627-
case CC_REVERB:
628-
setReverbWet(value);
629-
break;
630-
default:
631-
break;
632-
}
633619
}
634620
}
635621

Source/aeolus/engine.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,11 +123,6 @@ class Engine
123123
NUM_PARAMS
124124
};
125125

126-
enum {
127-
CC_VOLUME = 7,
128-
CC_REVERB = 91
129-
};
130-
131126
//--------------------------------------------------------------------------
132127

133128
Engine();

Source/aeolus/globals.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,14 @@ constexpr static int SEQUENCER_N_STEPS = 16;
7171

7272
//==============================================================================
7373

74+
// MIDI controls
75+
enum {
76+
CC_VOLUME = 7,
77+
CC_REVERB = 91
78+
};
79+
80+
//==============================================================================
81+
7482
/// Values used by previous version of the synth.
7583
namespace deprecated {
7684

0 commit comments

Comments
 (0)