Constant pitch over key range for FX

Ok - this is probably easy, but

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)…

You could use multiple midi in plugins with each a range of a single key and transpose it.
Then route each midi in plugin to the same plugin.

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 :grimacing:).

Hey David,

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.

This is super useful in multi layered sound…

With a simple scriptlet you can achieve the same result.

For example, this scriptlet will convert all MIDI notes between C1 and C2 to C1


Attached is a favorite that demonstrates this

MapToC1.gpfav (10.1 KB)


Here is the Scriptlet I used, I wanted one single note to be produced when playing chords. (not a single note triggered several time).

Hit_Note.gpav.gpfav (1.6 KB)

   singleNote : parameter 0..127=60;
   playingNotes    : NoteTracker;

   SetInfoMessage("A Scriptlet which converts any chords or single notes to a single hit note.")
   SetDisplayMessage("Hit Note V0.9 - @David-san")
On NoteOnEvent(noteON : NoteMessage)
  If playingNotes.NoteTracker_NoteOnCount()==0
On NoteOffEvent(noteOFF : NoteMessage)
  If playingNotes.NoteTracker_IsNoteOffPending(noteOFF.GetNoteNumber())

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.

1 Like

Cool - I have not done scripts with GP - I will give it a shot!

Thank you :grinning:

Tried it, just gave up. it’s just not worth the effort for what I need. I’m not getting it to work the way I need it.

Incredible answer… :thinking:

What did you try and what was the result?

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.


@dhj 's works perfect!

1 Like

Not mine? :frowning_face_with_open_mouth:


I’m sorry…I’ll try it. :wink: Busy afternoon!

Works like a charm! I especially enjoy playing repetitive notes while moving the scriplet slider!


Thank’s for the feedback :wink:

Late to the party… or not.

Over to Gig and Rackspace Files - Gig Performer Community
I had once a similar idea: