Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* inputParameters */
- uint8 microtonal;
- /* midi */
- uint8 eventChannel,sourceChannel,destChannel,note,rootVal;
- int pitchWheelValue,noteModInt;
- float noteMod,bendRangeDevide;
- MidiEvent noteEvent,pichWheelEvent;
- bool isPlaying=false;
- void processBlock(BlockData& data){
- for(uint m=0;m<data.inputMidiEvents.length;m++){
- eventChannel=sourceChannel=0;
- if(eventChannel==sourceChannel or sourceChannel==0){
- noteEvent=data.inputMidiEvents[m];
- if(MidiEventUtils::getType(noteEvent)==kMidiNoteOn){
- note=MidiEventUtils::getNote(noteEvent);
- if(isPlaying){
- MidiEventUtils::setType(noteEvent,kMidiNoteOff);
- MidiEventUtils::setNote(noteEvent,noteModInt);
- data.outputMidiEvents.push(noteEvent);
- MidiEventUtils::setType(noteEvent,kMidiNoteOn);
- }
- isPlaying=true;
- if(note>rootVal)
- noteMod=rootVal+(12.0/microtonal)*(note-rootVal);
- else
- noteMod=rootVal-(12.0/microtonal)*(rootVal-note);
- pitchWheelValue=rint(fraction(noteMod)*8192*bendRangeDevide);
- noteModInt=int(noteMod);
- MidiEventUtils::setNote(noteEvent,noteModInt);
- MidiEventUtils::setChannel(noteEvent,destChannel);
- data.outputMidiEvents.push(noteEvent);
- } else if (MidiEventUtils::getType(noteEvent)==kMidiNoteOff){
- if(note==MidiEventUtils::getNote(noteEvent)){
- isPlaying=false;
- MidiEventUtils::setType(noteEvent,kMidiNoteOff);
- MidiEventUtils::setNote(noteEvent,noteModInt);
- data.outputMidiEvents.push(noteEvent);
- }
- }
- MidiEventUtils::setPitchWheelValue(pichWheelEvent,pitchWheelValue);
- data.outputMidiEvents.push(pichWheelEvent);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement