Translate Launchpad midi notes and channels via midi CC’s?

Hi there.

I’m thinking about buying a Midihub to replace Ableton in a finger drumming setup.

I trigger sounds from 4 hardware drum machines using a Launchpad Pro. A MacMini running Ableton with an RME interface sits in the middle and translates midi data from the midi output of the Launchpad to the midi inputs of the drum machines.

I created an Ableton project that allows me to quickly reprogram incoming midi note and channel data from Launchpad using an external midi controller.

For example, note C1 on the Launchpad plays note C1 on midi channel 6 by default. I want this pad to play E1 on the 3rd drum machine. Using the midi controller, I can change the note value of this pad anywhere from C1 to C3 using CC21. I chose C1 to C3 as all the hardware drum machines sounds fall in this range. CC22 let’s me change the midi channel of the pad from 1 to 4, 1 for each drum machine.

The Ableton project allows me to quickly reprogram 32 pads on the Launchpad so that’s 64 CC’s in total. All 32 pads have exactly the same choices.

My questions are:

  1. Can I program the Midihub to replace this 32 pad Ableton project?
  2. If I can, will the Midihub produce any notable latency?

Apologies if this doesn’t make any sense so please ask questions if it sounds complete nonsense.

Many thanks in advance

Andy

Hey Andy (welcome to MH forums& all that!)

will the Midihub produce any notable latency?

here’s a search for “latency” when mentioned by Giedrius (one of the inventors).
Check out notes on Firmware update in particular which shows latency figures


Can I program the Midihub to replace this 32 pad Ableton project?

I’m not clear whether Midihub is to be used to link

  1. controller → Launchpad to configure the kit change
  2. Launchpad → hardware drum machines once configured
  3. both

Probably most crucially: does “I can change the note value of this pad anywhere from C1 to C3 using CC21” mean that CC21 changes the pad directly or tells the project to send a short Sysex to the Launchpad to make the change?

Whatever the answers you can probably find a way around with Midihub ,
but it would be good to be clear which solution[1] would fit your exact setup just to be sure


[1] For example even in the case where project sends Sysex (meaning MH won’t do that for you), Midihub could (depending on your controller):

  • use a CC value (for a given CCid) to switch incoming notes down a chosen pipeline to Transform them to other notes on other channels to your specification.

  • or, use a Program Change to switch between patches specifically set up for translating each drum ‘suite’.

The solutions are myriad, Andy.
btw have you downloaded the Editor yet? You don’t need a hub to start playing with it.

Hi @resonotter

Thank you so much for your detailed response.

I think this fairly much describes what I want.

I took your advice and downloaded the editor. I found this pipeline in Patchstorage called SIMPLE DRUM MAP NOTE # TO MAJOR SCALE NOTE # by chuck_vicious. This pipeline uses 16 individual Note Remap modifiers and remaps midi notes from Midi Input A to Midi Output B. The Note Remap is fixed so for example C3 changes to C4 from Midi Input A to Midi Output A.

Instead, I would like the incoming C3 note remapped to any note from range C1 to C3 and to be able to control which note is outputted by using Midi CC21 from a midi controller attached to Midi Input B. I would also like to Channel Remap this C3 note to any channel from 1 to 4 with Midi CC22 coming from the same midi controller attached to Midi Input B. I would then do the same for incoming note C#3 instead using Midi CC’s 23 & 24 to change midi note and channel respectively and then repeat for how many notes I need to remap.

Is this possibe? I couldn’t quite work out how the midi CC mapping works as I don’t have a Blokas yet (hopefully soon).

Many thanks again, Andy.

1 Like



Yes, for this it would probably be best to use Transform pipes.
Rather than translating a range of notes somewhere, Transform can give you individual fine control.

Drop one into a pipeline and check it out:

  • Mode is Replace
  • What & Into are both NoteOn&Off
  • Set Note Number to is Arg1 mapped to your CC21
  • Work with Note Number in Range Low|High is set to C3
  • Keep Channel is No & Set Channel To is mapped to your CC22

Then alt-drag alter&map for each pad!

Bet you, though –as you became more comfortable– you’d end up going further.
(personally, I couldn’t resist sending a certain velocity range to another drum voice either instead or as well!)


EDIT2:

range C1 to C3

one current shortcoming is that mappings are literal, so you’d need to restrict your CC21 to 36-60 at your controller end. (There are workarounds but you don’t want to go there yet.)


EDIT: one possible area where Midihub approach might not match your your A.project is visibility: will you watch each property as you change your CCs, then Save and use stand-alone without further tweaking for example?
Or does your controller show you this clearly enough so you dont get the wrong note/channel in performance?

Thanks again @resonotter What a great forum btw.

Transform looks like a pretty nifty tool, I have had a play and it seems like it will do everything I need.

Absolutely, the options are almost limitless.

I can set CC ranges on most of my midi controllers but they are a bit fiddly. Editing 64 times is a bit daunting but not impossible. It would be great if you could point me in the direction of the workarounds so I can try and work out which option will give me the smallest headache :slight_smile:

As long as I can transform the notes using a controller in stand-alone mode then it won’t be a problem. My process is, turn machines on, put together a drum kit by tweaking knobs (by ear) then play.

My process is, turn machines on, put together a drum kit by tweaking knobs (by ear) then play.

Do any of your controllers switch output channels of all CCs easily? If so considerable opportunities there.

It would be great if you could point me in the direction of the workarounds so I can try and work out which option will give me the smallest headache

see my recent answer about ‘loopback’ in a topic here
lots of mentions in Midihub topics because it’s such a powerful (non-standard) tool.

if you’re lucky in your range of CCids (eg. all note-setting ids are in few contiguous ranges)
then you would save all that work with two short pipelines; one for the note-setters and t’other for the channel-setters)




sounds like you’re sold?!