bool MidiControlAction::processIncomingMessage(const MidiMessage& message) { if (isLearning) { isLearning = false; messageTemplate = message; return true; } else if (message.isForChannel(messageTemplate.getChannel())) { if (messageTemplate.isNoteOnOrOff() && message.isNoteOnOrOff() && message.getNoteNumber() == messageTemplate.getNoteNumber()) { // toggle! if (message.isNoteOn() && message.getNoteNumber() == messageTemplate.getNoteNumber()) { getMappedComponent()->setValue(getMappedComponent()->getValue() >= 0.5f?0.f:1.f); getMappedComponent()->triggerAsyncUpdate(); } return true; } else if (messageTemplate.isController() && message.isController() && messageTemplate.getControllerNumber() == message.getControllerNumber()) { //setValue(message.getControllerValue() / 127.0f); getMappedComponent()->setValue(message.getControllerValue() / 127.0f); getMappedComponent()->triggerAsyncUpdate(); return true; } } return false; }
void MIDIMostRecentNoteInternal::handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message) throw() { if(port_ != 0 && port_ != source) return; if(message.isForChannel(midiChannel_) == false) return; if(message.isNoteOn() == false) return; setNormalisedValue(message.getNoteNumber() / 127.f); }
void VoicerUGenInternal::handleIncomingMidiMessage (MidiInput* /*source*/, const MidiMessage& message) throw() { if(message.isForChannel(midiChannel_) == false) return; if(message.isNoteOnOrOff()) { const ScopedLock sl(lock); sendMidiNote(message.getChannel(), message.getNoteNumber(), message.getVelocity()); } else if(message.isController()) { if((message.getControllerNumber() == 123) && (message.getControllerValue() == 0)) { const ScopedLock sl(lock); initEvents(); } getController(message.getControllerNumber()) = (message.getControllerValue() * (1.f / 127.f)); } else if(message.isPitchWheel()) { getPitchWheel() = (jlimit(-8191, 8191, message.getPitchWheelValue() - 8192) * (1.f / 8191.f)); } else if(message.isChannelPressure()) { getChannelPressure() = (message.getChannelPressureValue() * (1.f / 127.f)); } else if(message.isAftertouch()) { getKeyPressure(message.getNoteNumber()) = (message.getAfterTouchValue() * (1.f / 127.f)); } else if(message.isProgramChange()) { getProgram() = (message.getProgramChangeNumber()); } else if(message.isAllNotesOff()) { const ScopedLock sl(lock); initEvents(); } }