Transpose once octave (12 semitones)

A user asked this: I own MTPro and I'd like to do as follows: transpose +or-12 semitones using a pedal board. I capture the pedal on/off but then what shall the outgoing message be? I could do it using a swithch, like pressing once transpose +12, pressing it again returns to the former status, is it possible? otherwise I could use 2 pedals, one transposes +12 and the second -12. really thanks for your support.

A simple approach would be to create presets which do a static transposition each (e.g. one preset “transpose 12 up”). Then use the pedal board to selectively enable/disable these presets.

But with a global variable, it is possible to implement transposition in a more generalized way. Let’s define the global variable gt to hold the current transposition. When the project is started, gt is initialized with 0, i.e. no transposition.

I assume you have a MIDI keyboard attached to the computer, and want to control an application on the computer. For that to work, go into Project Properties and create a route from MIDI Keyboard to Bome Virtual 1. In the target application, do not use the MIDI Keyboard directly, but use Bome MIDI Translator 1 as input MIDI port. Now you should be able to play the keyboard and it’s received in the target application, but also flowing “through” MIDI Translator Pro.

Here’s how to implement general transposition using a global variable:

  1. Create a preset Transpose
  2. go to Preset Properties: check the MIDI keyboard port in MIDI INPUT, and check Bome Virtual 1 in MIDI OUTPUT lists.
  3. now create a translator in this preset:
    Translator 1: transpose Note On
    Incoming: MIDI Note On; channel 1; Note: Any, set variable pp to note number; Velocity: any, set qq to velocity
      [x] swallow
    Rules: pp=pp+gt
    Outgoing: MIDI Note On; channel 1; Note: pp; Velocity: qq

    And the same for Note Off:

    Translator 1: transpose Note Off
    Incoming: MIDI Note Off; channel 1; Note: Any, set variable pp to note number; Velocity: any, set qq to velocity
      [x] swallow
    Rules: pp=pp+gt
    Outgoing: MIDI Note Off; channel 1; Note: pp; Velocity: qq
  4. Now create another preset From Pedalboard, and add a translator with the pedal message as incoming MIDI message. In the rules, set gt to the wished transposition. For example:
    Incoming: MIDI 
    Rules: gt=12
    Outgoing: none
  5. For toggling from 0 to 12, and 12 to 0, use this Rule instead:
    Rules: gt=12-gt

Hope that helps!

forgot to say, the preset From Pedalboard should have the pedal board MIDI port as default preset MIDI INPUT checked.


thanks for the project above. I always learn a lot from these examples.

One thing I miss in BMT:

import/export presets in/from a project, that would be really handy.

\ Klangschmied //

thanks. You can copy and paste entire presets, but I realize that it’s more cumbersome in some situations than such an import/export function.

How do I copy/ paste presets between different projects? with the standard mac copy/paste?

yes. Select preset(s), Cmd-C to copy. Open other project, select preset list, Cmd-V to paste.
On Windows, use Ctrl-C and Ctrl-V.
You can also use the right-click menu or the main Edit menu.

Dear Florian, this is Gianni, I asked about the transpose issue.
I did it and it seems to work fine. I will give it a deeper test in the real situation and let you know.
really Thanks for your support.

great! just keep in mind that you shouldn’t switch octaves while notes are playing. It would be possible to work around this, but maybe not trivial.