Translate Launchpad Note via Midi CC

Hi there. I purchased Midi Translator Pro yesterday, what a beast!

I’m having a little difficulty with a project I’m working on. When I press the 36 - C2 note on the Launchpad Pro MkII (In Drum Mode - Standalone Port), I want to be able to translate the output note with a CC slider.

I have one translator that sets CC#68 to variable oo.

The next translator takes Note On MIDI Message 36 - C2 and on the Outgoing part plays a note of variable oo. This is then repeated in the next translator for Note Off.

It almost works the way I want it to however if I move the CC slider before the note is released, the note gets stuck as the Note Off value has now changed. Is there a way for the Note Off value to remember what variable oo was when the Note On was originally pressed?

I would also like to set a range so that not all 128 notes can be chosen? Say for example just 1 octave C2 - C3, eg CC#68 Value 0 = C2 and Value 127 = C3. All the rest are somewhere inbetween.

I hope this makes sense, please ask questions if it doesn’t. File attached.
Note-Transpose-by-CC-2023-03-07.bmtp (1.6 KB)

1 Like

Hi and welcome to the Bome community!

Wow you have a pretty complex one right out of the chute. I hope I get this right.

First of all, you should not use oo as a variable as it is a private variable and will not be recognized correctly by any other translators. Use a global variable instead. In my example I use the global variable ‘ga’ for the current note. I use a bitmap global variable ‘gb’ to determine which notes are currently being played and which are not. I use bits 0-10 for this (11 bits in an Octave). Then I use the global variable ‘gc’ as a counter to iterate through the bit and turn off stuck notes.

  • In translator 0.0, I added rules, to scale your knob from 0-127 (range 128) down to 0-10 (range 11) and then set ga to the note you want to play. This tutorial covers scaling.
  • In translator 0.1, I set a bitmap in the global variable ‘gb’ for the current note playing setting the bit to 1. This is for note-on
  • In translator 0.2, I clear the bit for note off as it is released
  • For both translator 0.1 and 0.2, I send the note-on or note-off as the global variable ga
  • In translator 0.3, I start a repeating timer called ‘Stuck Off’ using global variable ‘gc’ that will look for stuck notes
  • Translator 0.4 clears the stuck notes. On each iteration we look at the next bit and if the bit is set (value 1) then we know the note is playing and leave it alone. If the bit is off (value 0) we know we need to turn off the note, calculate the note number for output, and clear the bit and send the note off.

Hopefully I got it all right.

Here is the updated project file.
Note-Transpose-by-CC-2023-03-07-sjc.bmtp (3.2 KB)

Steve Caldwell
Bome Customer Care


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

Hi Steve

Thank you for making me feel welcome and also many thanks for the speedy response.

There’s a lot to unpack here so I have downloaded the file and and will have a play with it tonight.

I’ll get back with an update tomorrow.

Kind regards

Andrew

You are welcome. Like I said, you started with a pretty complex one but fortunately Bome MIDI Translator is powerful and with the right knowledge most tasks can be handled. I’ve been doing this for years and I still struggle with the more complex ones.

Steve Caldwell
Bome Customer Care


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

Morning all. Well I had a good play with the file last night, many thanks to @SteveC again. Setting the range makes complete sense however it would have taken me ages to work that out myself.

I’m afraid I’m still running into stuck note problems.

I should maybe explain how I’m actually using this. The translated note from my Launchpad is going out of the BMT1 Virtual Out and into Ableton. In Ableton I have drum rack and using by using MIDI CC#68, I can now change which drum sound is played when hitting MIDI Note C2 on the Launchpad. (This is one part of a larger project as I want to repeat this for another 15 notes for a 4x4 grid on the Launchpad but let’s not worry about that at the moment.)

If I keep my finger on the C2 pad, change the CC#68 value then release the pad, a note obviously gets stuck. It needs to remember what the CC#68 value was when the pad was originally pressed and then use that value as the Note Off. This happens quite a lot as constantly hit MIDI Note C2 when previewing the sound.

Hi, I’ll have to check with this further. I noticed in drum pad mode on my LP Pro, the LP Pro does not send note off messages. Could you look at your log window in MT Pro and tell me if you are seeing the same thing? Since it is a drum, maybe it doesn’t send note off since it relies on the ASDR (release) to turn the note off. We might need to introduce note off messages if you LP Pro does not send them. It the project file I provided, we assume that the MIDI standard is being followed and that a note-off message is (eventually) sent for any note-on message.

Steve Caldwell
Bome Customer Care


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

Thanks again for checking. I’m not at the computer right now however I’m pretty sure it sends a note off. It’s called Drum Mode as the notes are laid out chromatically in 4x4 grids although I often play soft or hardware synths in this mode and I can hold chords and use aftertouch.

I will double check the logs when I get back later.

Andrew

Yes, it looks like it is sending note-off. Is your stuck note allways note 36? If so change this line the roles of translator 0.4

From

tt=gc+36

To

tt=gc+35

Apparently my iteration calculations for stuck note-off were off my one value.

Steve Caldwell
Bome Customer Care


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

Unfortunately not.

The problem occurs if I change CC#68 value in between note in and note off. There is a really obvious workaround which is not change the value of CC#68 when holding the note down however this isn’t very intuitive for finger drumming.

Below is a link to an example of what is happening. In this example I am triggering a synth as it highlights the stuck note. Everything is working as it should until I hold the 6th note down and change CC#68 before I release the note. It’s stuck until I eventually trigger the same note on and off again 6 notes later.

OK, I fixed a few things here.

The big one is the stuck note translator was turning off stuck notes on MIDI CH 1. I changed it to MIDI CH 16

A few other cleanup items.

A the preset level, I set input to the alias ‘Launchpad Pro MIDI Port’ and output to BMT 1.
For the control change translator only, I set input to the alias ‘My Input’. I left output alone as it will default to that of the preset level.

You can learn more about device selection from this tutorial.

Here is how I set up my aliases. I use a different device for control.
image

Note-Transpose-by-CC-2023-03-08a-sjc.bmtp (3.4 KB)

Steve Caldwell
Bome Customer Care


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

Brilliant. Thank you. I will have a play tomorrow.

Andrew

So I had a good play over the weekend. My original post was for 1 pad on the Launchpad. For his project, I want control of 16 pads, a grid of 4x4 in a finger drumming mirror style. This is where the left hand is a mirror of the right hand.

image

I wanted 1 & 4 to be changed by CC#61, 2 & 3 changed by CC#62 etc.

I ran into trouble when I started working on 2 & 3. I was doing a lot of translator duplicating and changing of variables but no matter much how much I tweaked, I wasn’t able to play pads 1 & 2 at the same time without one cutting the other off. It was as if it wasn’t multitimbral. I have to admit, I couldn’t decipher the Note Off section of the code.

I then remembered that CC#123 turns notes off so I thought I would create a translator that broadcast that CC when the fader was moved. It works and I know have a 16 pad setup. I have attached the file for your perusal. I’m probably doing everything wrong but I thought I would share.

So I’m afraid I have another question. How easy would it be to convert this into a standalone project on the BomeBox? I would like to plug the Launchpad into the Bomebox via USB and send the translated notes out the Midi Din. This would be so that I can use it on hardware drum machines without the need of a Ableton Live or a computer.

Notes-Transposed-by-CCs-2023-03-10-ab.bmtp (19.4 KB)

Hi, I’m glad you got it working! The reason I did not use CC127 is that many controllers do not recognize this so I was being safe. I’m glad the Launchpad Pro apparently does.

In order to get it into your BomeBox, it is important that you do not have any physical ports set up for input and output directly. Assign all of your inputs and outputs to alias names. That way when you move your project over to BomeBox, you can simply re-assign the aliases to the port names assigned on your BomeBox.

You can learn more about aliases from this tutorial.

Also, Bome MIDI Translator Pro projects will only work on BomeBox if you have purchased the full version as the trial version does not sign the project and projects must be signed by Bome MIDI Translator Pro for them to work on BomeBox.

Steve Caldwell
Bome Customer Care


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

From my experience this should work. For programming devices I switch all the time between ‘free’ and ‘bomeboxed’ by plugging controllers from the BomeBox-hub to the computer-hub, then plugging back and loading the MT file into the box. You just have to setup your aliases properly, then you have nothing to do but plugging.

The picure below is from another thread and shows the highly sophisticated rocked-science technique impressively:

grafik

Many thanks again @SteveC I have a full version of Bome MIDI Translator Pro version 1.9.0 build 1023 and my BomeBox Firmware is 1.5.2.

I like your setup @Peter.Ostry
, I may copy that when I’m a bit further down the line.

So I think I have done everything I should with regards to aliases however I’m having trouble getting this project running on my BomeBox. The BomeBox only has the Launchpad connected to it (via USB) and I only want to use the BomeBox Midi Out DIN.

The file ‘Notes-Transposed-by-CCs-2023-03-20-ab.bmtp’ is loaded into the BomeBox and here is an image of how the Midi Ports are setup. The Midi Out LED does not flash. Apologies, the LED does flash when I press a pad.

I wasn’t sure if Launchpad Pro 2 & 3 are the wrong way around however I have tried all combinations and still no luck.

Apologies if this is something really silly.

Notes-Transposed-by-CCs-2023-03-20-ab.bmtp (19.4 KB)

Hi,

Your project does not have any defined input ports or output ports. Hence your project doesn’t know where to get MIDI input from or send MIDI output to.

You can either define them at the project level or preset level.

You can learn more about device selection from this tutorial.

Steve Caldwell
Bome Customer Care


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

Apologies for the confusion. You are correct, the file I uploaded doesn’t have anything assigned. The screenshot shows how I assigned the aliases.

Here is the file downloaded from the BomeBox after I have assigmned the inputs and outputs.

new-Notes-Transposed-by-CCs-assigned-2023-03-20-ab.bmtp (19.4 KB)

Your Main Port should be Launchpad Pro [1]. I believe this is the one that Ableton Live normally uses.
You Standalone port should be Launchpad Pro[2]
I believe Launchpad Pro [3] get passed from and to your MIDI external ports on your Launchpad Pro

Steve Caldwell
Bome Customer Care


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

Thanks @SteveC for clarifying the Launchpad ports.

So, I noticed that my BomeBox was constantly disconnecting and connecting when looking at the Bome Network app. I wondered if there was a problem with the BomeBox PSU. I swapped it for a newer PSU and guess what, the project is running perfectly in standalone mode. The old PSU is now in the bin.

I thought I was going mad as I was sure I had all the correct settings. I’m so happy now.

Thanks again to @SteveC and @Peter.Ostry