New Starter: Novation Launch Pad Mini Mk3 to Ableton Live Keyboard Shortcuts - Works perfectly, I'm just checking I'm doing it the correct way!

Hi All, I’m just starting with the trial version of BMT Pro and love it so far, most likely I’ll be purchasing it in the next day or so!

I’m setting up my LaunchPad Mink Mk3, so that the “User” set of pads trigger keyboard shortcuts in Ableton Live, so I can have a pad to open Live’s browser, or toggle the metronome etc.

I’ve got it working perfectly, but I’d just like to check I’ve done it correctly and I’ve not over complicated anything!

I want to use MIDI channel 15 as my “keyboard shorts channel” and assign individual MIDI notes on channel 15 to trigger keyboard shortcuts but also have those same MIDI notes being blocked from getting to Live as MIDI notes.

I’ve created the translators for each action, assigned them to the input MIDI and they’re set to ch15.

The outputs work fine, some are keyboard shortcuts and one to open Explorer.

This worked fine, and everything triggered correctly.

But then I got slightly stuck when I wanted everything on other MIDI channels other than 15 to still get through to Live. At this point the translators worked fine, but nothing else (i.e. the other midi channels) was getting to Live.

It then dawned on me to use a MIDI through, so I used the routing option to route the usual port to my virtual one. I then switched the ports in Live, so now it gets the BMT-1 one instead of the usual LPM Mk3 etc.

And it’s working perfectly!!! It was the through routing that made the difference and also switching Live from the usual input port to the virtual BMT-1 one.

Without the routing, it simply only sends the keyboard shortcuts and nothing else gets though.

It’s looking like this:

Project: LaunchPad Mini Mk3 Ableton Live Controller
Project MIDI IN ports: MIDIIN2 (LPMiniMK3 MIDI)
Project MIDI OUT ports: Bome MIDI Translator 1 Virtual Out


[x] Preset 0: Preset 1

[x] Translator 0.0: Browser
Options: swallow
Incoming: Note On on ch. 15 with note:62 (0x3E) and velocity:127 (0x7F)
Outgoing: Physical Keys: Ctrl(Alt(B))

[x] Translator 0.1: Session Record
Options: swallow
Incoming: Note On on ch. 15 with note:60 (0x3C) and velocity:127 (0x7F)
Outgoing: Physical Keys: Num *

[x] Translator 0.2: Metronome
Options: swallow
Incoming: Note On on ch. 15 with note:64 (0x40) and velocity:127 (0x7F)
Outgoing: Physical Keys: Num /

[x] Translator 0.3: Favourites Folder
Options: swallow
Incoming: Note On on ch. 1 with note:65 (0x41) and velocity:127 (0x7F)
Outgoing: Start/show: EXPLORER.EXE /n, /e, “E:\Sample Libraries@Favourites”

Have I done this the correct way? It’s working but I’m wonder if there’s a best practice way to do this?

I’m very happy with this, I just want to make sure I’m doing it properly before I assign the rest of the 64 pads I can now play with!

Thanks for your time, very much appreciate it.

Cheers,

Andy.

Andy,

The way you are doing it looks reasonable. I might have done it a little differently for future expansion however. Say after you do this, you want to change the MIDI CH for all of your keyboard shortcuts from 15 to 14. You would need to go through several translators and change them one by one.

The way I would do it to allow me to change the incoming channel only once is:

Incoming : Note-On any channel set to oo any note set to pp any value
Rules:
// Determine channel
if oo!=14 then exit rules, skip outgoing action
// determine note and put into a global variable
ga=pp
Outgoing : One Shot Timer “ShortCut Dispatch”

Translator Shortcut Dispatch (Browser)
Incoming : Timer “ShortCut Dispatch”
Rules:
if ga!=62 then exit rules, skip outgoing action
Outgoing: Physical Keys: Ctrl(Alt(B))

Translator: Shortcut Displatch (Session Record)
Incoming : Timer “ShortCut Dispatch”
Rules:
if ga!=60 then exit rules, skip outgoing action
Outgoing: Physical Keys: Num *

By doing this, at the cost of one global variable you could change the incoming channel for all shortcuts by changing only one translator. The timer then does all the work to determine the outgoing keystroke shortcut (for each translator).

Regards,

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
2 Likes

Hi Steve,

Thanks very much for this, that’s excellent, love that idea to use the variable! I bought BMT-Pro last night and I’m having great fun with it!

Loving the rules and just this morning I’ve made a simple transposer, chord key note mode and then by adding delay, an arpeggiator!! i’m just playing with it, seeing how everything works together and this is great fun, thank you!

Just one more point to check if you don’t mind, regarding the ports and routing; is it correct that without any routing applied, the only information that leaves BMT-Pro is anything processed by a translator?

So if I had a translator working on channel 5 only, say transposing midi notes by a fifth, all other channel data would not be output by BMT-Pro unless there was a routing setup?

Thanks very much, very much appreciate it.

Cheers,

Andy.

Hi Andy,

Correct.
With no routes or no translators nothing is sent.
With MIDI thru set, any MIDI in from the input thru port(s) is sent out of the output thru port(s) as defined in the static routing.
Translators can override thru ports by setting target input and output port but they only override the thru port if swallow is set AND the outgoing action executes. Swallow also works if the outgoing action is NONE and there is no rule to skip outgoing action.

Here is tutorial on advanced non-static routing.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
2 Likes

Thanks Steve, that’s perfect, I’ve had fun playing, now it’s time to go through all the tutorials!

Many thanks again,

Cheers,

Andy.