Joystick, MIDI-chords, and Midi Translator

There is a MIDI file that contains a sequence of chords. There is a joystick whose button presses can be easily converted to midi notes. The first task is: that every time you press the joystick button, the next chord comes to the input of the midi translator. What to do next with them is the second task. Any ideas?

What do you want to do with them? The incoming messages to MT Pro would be shown as a series of note-on messages that would have to be interpreted (evaluating all current note on messages) to determine it as a chord. Once that is does, the question is, what outgoing action would you want?

Hi, Steve!
Sorry for not responding right away. I already solved my problem myself, the notes come as they should!
But another question arose.
So, any note (or chord) of the MIDI channel 2 comes to the translator’s input. If there is already a pressed note 90 7E 3C, then the note (or chord) of MIDI channel 2 should last until the event 90 7E 00 arrives , or until again any note of MIDI channel 2 comes.
Can you help me please?

So if the chord has 3 notes, then only the last note should soundtuning the others off?

If three notes of MIDI channel 2 arrived at the same time (like a chord), then they should be turned off simultaneously when event 90 7E 00 occurs or when any next note of MIDI channel 2 arrives.
Moreover, in the second case, the chord notes should be turned off first, and only then a note should appear on the output, which turned them off.

OK, the best way to do this is to send and “all notes off” command on MIDI Channel 1 when incoming value is 90 7E 00.

All notes off CC is 123

 

Incoming : 90 7E 00 ( or note off MIDI CH1 velocity 0)

Outgoing: CC 123 on MIDI Channel 2, value 127

 

If you want all previous notes off when a new note arrives on MIDI channel 2

Incoming – Note On, MIDI Channel 2 any note any value set note to pp and value to qq

Outgoing: Raw MIDI B1 7B 7F 91 pp qq

B1 7B 7F is all notes off on MIDI channel 2 (CC 123 on MIDI Channel 2 value 127)

91 pp qq is the incoming new note that you are passing through.

I used raw MIDI output so we could do it all in one translator.

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

Thanks, Steve, I will think about your recommendations!

Hi, Steve!
Your advice was very helpful, thank you very much! But there is one more question.
There are two translators, both have an incoming event “91 pp qq” The outgoing event for first is “90 pp qq”, and for the second “90 pp qq, 90 24 qq”. How can I make that: if there is a note 90 7Е 3С at the input, then the first translator works, and if not, then the second?

Hi,
On the first translator add the following rule:

If pp!=126 then exit rules, skip outgoing action

126 is decimal for hex 7E

So the outgoing action will only fire if the incoming note is 7E (126 decimal)

The second translator will pick up the other one since it is hard coded on the incoming action.

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

Thank you so much!

Hi, Steve!
Here’s another question – in incoming events there are two midi-notes of the first midi channel. One note came earlier, the other later. How to configure a rule, to by incoming event 90 7C 00 turn off only the note, that came last (but so that the first note continues to sound)?

“Hi, Steve!
Here’s another question – in incoming events there are two midi-notes of the first midi channel. One note came earlier, the other later. How to configure a rule, to by incoming event 90 7C 00 turn off only the note, that came last (but so that the first note continues to sound)?”

 

Just capture the last note-in value into a global variable.

When 90 7C 00 comes in, send a note-off to the last note only.


Translator 1

Incoming: Note-On MIDI CH 1 Any note, set to pp any value set to qq

Rules:

ga=pp

Outgoing: Note on MIDI CH 1 pp value qq


Translator 2

Incoming: Raw MIDI 90 7C 00

Outgoing: Note-Off MIDI CH 1 note ga value 0

 


 

Steve