How do I create a range - say and octave - that will have the same key number transmitted…here’s the use case - I am building some FX for live, and I use a range so I can layer (in this case) a clap sound that has a constant pitch and a noise sound that follows the keyboard.
So I need the clap sound - coming from a Toontrack plugin - to stay on that keymap for the whole octave and not follow the keyboard (not number wise)…
Not sure I understand well. Last week I wanted to trigger some single drums when at each chord hit (was trying Child’s Anthem from Toto). I made a quick and dirty Scriptlet for this if it is what you want (And if I can retrieve it ).
So the idea is to keep the pitch the same across an octave of keys. What Pianopaul is describing certainly is a work around (but hugely labor intensive and messy), but I was hoping there is a way to assign a physical range of keys, with each of those keys triggering the same note (for example) or with many hardware synths (Roland for example) I can get a percussion sound (or orch hit or noise sound, etc.) to trigger from the key range without affecting pitch.
Var
singleNote : parameter 0..127=60;
playingNotes : NoteTracker;
Initialization
SetInfoMessage("A Scriptlet which converts any chords or single notes to a single hit note.")
SetDisplayMessage("Hit Note V0.9 - @David-san")
End
On NoteOnEvent(noteON : NoteMessage)
If playingNotes.NoteTracker_NoteOnCount()==0
Then
playingNotes.NoteTracker_GotNoteOn(noteON.GetNoteNumber())
SendNow(noteON.WithNoteNumber(singleNote));
End
End
On NoteOffEvent(noteOFF : NoteMessage)
If playingNotes.NoteTracker_IsNoteOffPending(noteOFF.GetNoteNumber())
Then
playingNotes.NoteTracker_GotNoteOff(noteOFF.GetNoteNumber())
SendNow(noteOFF.WithNoteNumber(singleNote));
End
End
Drop the .gpfav file above into your wiring view, connect your MIDI In Block in it, you will get a single MIDI note at the output. Double click on the Scriptlet Block to set the note slider. Use several in parallel if you need several notes.
People here thought it is worth the effort to answer your questions.
The Scriptlet form @dhj does exactly what you described, while mine does a bit more. And mine doesn’t need you to modify anything in the Scriptlet and recompile. It should work out of the box.