What do you want to see in a scripting language?

Exactly. There could also be an option to only take the rhythmic information and ignore the pitches. But well… just some ideas.

Nice script @jazzundso !! interesting use of Pitch Bend and Mod wheel :wink:
All this goes nicely using an Xkey keyboard :wink: (but i’m sure with other controllers too).

Using MIDI channel1 :wink:

How to do it with other MIDI channels? or in a MPE scenario (multiple MIDI channels)?
@jazzundso @dhj

Hmm, indeed, it does not work with any other MIDI channel than CH 1. I tried to replace the “SustainedNotes.GetNoteOn” line with the following:

SustainedNotes.GotNote(MakeNoteMessageEx(GetNoteNumber(m), 127, GetChannel(m)))

That should retain the channel data… but it doesn’t work. It seems to me that the NoteTracker object ignores the channel so that StopAllPendingNotes will always send note off events on channel 1. That means that the instrument receives note on events on channel 1 and note off events on channel 2. Not totally sure because I only had a short look at it. I have to take some time tonight to see how to fix it within the script.

For the moment it might help to use the piz midiChannelize plugin to make sure the instrument will receive the events on a particular channel. But that’s only a solution if you only use one single midi channel. If you want to play different instruments on different MIDI channels things get complicated.

But that’s exactly why I wrote the FR for a GP Script MIDI processing Block with an input and an output and a way to receive notes/events/… from the input and send them to the output as we already can do with MIDI In Blocks. But it would be way more flexible because we could filter/manipulate data before it goes to the script and it could be used more modular in any Rackspace. That would make some split/layer/channel filter routings a lot easier to use.

1 Like

Hmmm, please report that NoteTracker object issue with channels on the bug tracking system

Would it be possible to add an event per beat that could be used to trigger a widget? Kind of a reverse partner to the Tap() function.

My use case is to create a flashing LED widget to use as a visual metronome (an audible one won’t work for me). Ideally the same LED widget could be used with Tap() to set the tempo during rehearsals, etc., and to show the tempo during performances.

Or maybe there’s another way to do this that I haven’t found yet…

Check out this thread- it has what you’re looking for, I think.

That’s perfect. Thanks!

Did these ever materialise? I’m aware of predefined midi note constants but not how to define user constants

No. It’s on the list somewhere but deemed low priority as it’s not really clear we need them.
Yes, I know, nice to have (along with a number of other things such as real objects and so forth) but as you can see from the tracking system, we have many other items that must be addressed first.

It’s very low priority for me too. Just asking as there was a post from a couple of years ago saying they were on the list :joy:
But it really doesn’t matter :slight_smile: A mere nicety that’s all