Dynamic Midi Transpose

How could I dynamically transpose a midi note sequence ‘A’ by another midi note sequence ‘B’?

I’m hoping to achieve with midi, what you can do in eurorack with a precision adder. I’ve come across a script called ‘Mitch Slayton Dynamic Transpose’ that does what I want in the App ‘StreamByter’, but I was hoping to do this using Midi Translator. Here is a link to a video about the StreamByter app I’m referring to: Transpose Any Sequencer with StreamByter - YouTube

(I’m not looking for a static transpose amount, or a menu command that would transpose. But rather a way to dynamically change the transposition amount with another sequence or a midi keyboard.)

Is something like this possible?

Best,
Grant

Hi and welcome to the Bome Forum!

Yes, this is possible. You would set your control source to change a global variable. The global variable would be used to calculate transposed notes for your original MIDI stream to use. Care would need to be taken to turn off any notes currently playing when the control source changes, otherwise you would get notes stuck on. Essentialy any note-on would need a coresponding note-off at the current transposition setting when the note was fired.

Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz

Hi Steve,

Thank you so much for the reply! I’m watching the training videos and going through the manual. I’ve attempted to modify the example project file ‘Tutorial - Note Transpose.bmtp’. I’ve added a note on and a note off translator that set up a global variable ga for the transposition amount, and I’m running into the exact issues you are describing about stuck notes.

In order to avoid the stuck notes, is there a technique I should research that would send note-off at the current transposition at the correct timing?

Thank you

Yes, this is the tricky piece. The way I would approach it is to keep a bit map of currently playing notes and any time there is a transpose change message, iterate through the bit map turning each playing note off. You would need to track by the original note number and the transpose amount at the time the note was played.

As I said, that could be a bit tricky but it can be done.

Steve Caldwell
Bome Customer Support.