Global MIDI transpose in Ableton (using M4L)

midiLover's icon

Is is possible to create a MIDI device that allows the user to simultaneously change the transpose amount of all the instances of the MIDI device. For example, if the MIDI transpose device is loaded on 3 different tracks, every time one MIDI device is adjusted, the other 2 change to the same value.

etk's icon

Yeah, you can put a send and receive object in a loop formation on each transpose--with a change object you can avoid a feedback loop.

Max Patch
Copy patch and select New From Clipboard in Max.

This patch would always change them all to be the same as any one that is changed--to avoid this you could put a gate object before the numbox to toggle whether they change with the others or not.

Johnny Christ's icon

Suggest finding a M4L device that first does the transpose trick on a single target, them mapping it to the rest simultaneously?

There are quite a few M4L devices that allow mapping to tracks outside of that in which they reside - they'd be a good starting point.

Sorry I can't be more specific, just popped in to say yes, it's very possible - and point you in a fruitful direction.

[edit]

Ninja'd!

midiLover's icon

Thanks for the quick replies. I'm demoing Ableton and Max 4 Live. I'm trying to switch from REAPER and so far, Ableton looks good. I'm currently watching a youtube tutorial on Max so I can figure out where to copy/paste etk's patch. LOL.

broc's icon
Max Patch
Copy patch and select New From Clipboard in Max.

It can also be done with a global variable using the [value] object.

midiLover's icon

I've made a simple device that transposes each note but I'm not sure how to incorporate your patches into my patch. I don't understand what needs to be connected to what. How do I copy/paste my code/patch into this forum? I'd like to show you what I've got so far.

5012.MaxTranspose.png
png
broc's icon
midiLover's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Thanks broc. Can someone please look at my code and help me add a global variable?

broc's icon
Max Patch
Copy patch and select New From Clipboard in Max.
Johnny Christ's icon

Seems I misunderstood the original request - I thought you wanted to map a CC to the transpose function built in to a plugin / device.

midiLover's icon

Thank broc. I really appreciate it! I noticed that the transpose amount is correctly updated on the other instances of the devices but the other Live_Dials do not up update. When I try to fix it, I get weird (feedback) results. How do I fix that?

broc's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Updating the dials would require additional send/receive. But then you may as well use send/receive alone without a global variable (as shown above in the patch from 'etk').

EarHax's icon

This pair of Max for Live devices worked for me, and was much simpler to use than any other method of transposing multiple MIDI tracks.