Monday 22 October 2018

Quick Transpose - a free MaxForLive utility device for Ableton Live

I'm doing some tidying up at the moment so that I'm kind of ready for the upgrade to Max 8, and so some of my older MaxForLive devices are getting a fresh lick of paint...

As you probably already know, Ableton Live comes with a 'Pitch' MIDI Effect - it has a minimalistic user interface that provides a rotary control for semitone shifting of incoming MIDI notes... Now I do lots of sound design and synthesis research inside Racks, and so do lots of octave and fifth transpositions - if you have seen me demo my RUSS residuals synthesis technique at NAMM or Synthfest UK then you will have seen me do lots of live transposes as I edit sounds), and so I have spent quite a bit of time clicking on the control and then using the up or down cursor keys to adjust the pitch of a layer. Twelve clicks per octave is a lot of clicks (Using the keyboard: 'Shift and Up arrow' jumps in octave steps, but I prefer using the mouse for just about everything), so I made a utility device that reduced the amount of clicking. My usual approach with controlling things in live performance with a mouse is that the number of mouse clicks should be as few as possible: single clicks if possible...


The original device was called 'Quick Transpose', and it was a simple device with a vaguely seasonal 'late December' colour scheme that didn't fit in with any of Live's skins, and looking at it again now, it definitely doesn't look good with Live 10's 'Dark' theme. Time for an update...


The new update (to 0v03!) adds a bit more explanation (The left hand side is for selecting Octaves, whilst the right hand side is for Fifths...) and tries to make things clearer.


There are two columns of buttons: Octave transpositions on the left, and Fifths on the right. The small grey box (with a '=') in the lower right hand corner shows the total transposition from the two columns, and the 'ANO!' button is a panic button that sends 'Notes Off' messages for any held notes in case any held notes occur (although I have tried to minimise the chances of this happening in the M4L code). Despite the name, it doesn't send an 'All Notes Off' message!



The screenshot above shows the obvious way to use Quick Transpose, and this is probably where most Live users would place it automatically - the last MIDI processing device just before the 'Instrument' in a track chain. (Also notice how my colour theme kind of works in a dark skin...)

But you can put Quick Transpose anywhere in the MIDI part of a track chain, which means that it can go in front of a synthesiser inside an Instrument Rack:



This allows you to quickly transpose one of a set of synthesisers to parallel fifths or octaves with a quick click of the mouse, and you could always put another instance of Quick Transpose in front of the whole Instrument Rack to avoid needing to select notes and shift-octave them in the piano roll view. (The 'Select, Shift-Arrow' octave transposing is another way of transposing the whole sequence, but splitting poly tracks apart into mono tracks is usually a bit fiddly and slow to do.)


Here's the 'Operator' of the three parallel synths in the Instrument Rack, transposed down by one octave.


And finally, the 'Wavetable' transposed up by one octave. I have often wondered about making a device that puts controls deep inside Racks up at the top level, but I'm still learning about the programming model for Live, and I don't think my knowledge is quite up to it yet...

Getting Quick_Transpose_mr_0v03

You can download Quick_Transpose_mr_0v0for free from MaxForLive.com.

Here are the instructions for what to do with the .amxd file that you download from MaxforLive.com:

     https://synthesizerwriter.blogspot.co.uk/2017/12/where-do-i-put-downloaded-amxd.html

(In Live 10, you can also just double-click on the .amxd file, but this puts the device in the same folder as all of the factory devices...)

Modular Equivalents

In terms of modular equivalents, then reproducing this functionality in my modulars was harder than I thought it would be. I settled on a step sequencer and a manual clock and ended up at about 3 or 4 ME. One of the interesting things about modulars is that the mundane labour-saving modules are often the hardest to find, and I end up designing my own, and then end up with something very custom and personalised - which is what my Ableton Live looks like too...

Alternatives

Yep, you can use the factory device from Ableton: 'Pitch', to do exactly the same function. But it requires setting the focus to the rotary pitch control (with a click on the control) and then using 'shift-up arrow' to jump in octave steps. Or you can type in '12'. As I say, my preference is to do just about everything using the mouse, not the keyboard, and for me, continually jumping back and forth between mouse and keyboard is a big switch in context each time. Your preferences may differ, of course.

(You could also use the 'Transpose' box in the 'Scale' device - the 'shift-up arrow' shortcut works there as well.)

Inside a Rack

As I said, when I'm doing sound design and synthesis research, I spend a lot of time inside an Instrument Rack, tweaking synths and sample players and transposing to get the right feels from the layered output. What I've been working on for quite a while is a single device that puts all of that transposing into a single UI, instead of it being spread throughout the layers of the Rack. But I have always wondered if this is too specialised a device for general use... Anyway, it turns out that you can use Macros to do this...



So here's a typical three-layer synth sound, using Analog, Operator and Simpler. I have added a Quick Transpose and a Pitch M4L device in each layer, and mapped Macro Controls to each of them. This undoes the burying of the transposition controls inside the Rack, and presents them at the top level, where they are very easy to get at...

( Of course, in a real-world Rack, only three of the Macros would be assigned to transposition - the other five would be to other parameters! I'm showing the two sets of macro assignments for comparison purposes only. )


As you can see, the 'use Ableton devices' method uses Pitch to do the transpositions, and so the basic mapping gives a range of +/-128 semitones for the Macro rotary control. A quick edit to the Mapping Browser, and this rename can be set to +/-12 semitones (see the screenshot collage below). Unfortunately, Macro rotary controls do not respond to the 'Shift and Up/Down' keyboard shortcuts, and so there's quite a lot of shifted cursor key presses required to transpose by octaves (12 presses per octave).


The 'Quick transpose' method maps the three Quick Transpose devices to the three rotary Macro controls, but this time, the 'live.tab' Max object isn't very well supported in the Mapping Browser - you can't change the range, and can't invert the range. As a result, transpositions downwards require the rotary control to go clockwise, and so high values of the 0-128 value indicate low transpose values. But the live.tab object quantises the values to octaves, and so there are really only five values for the rotary controls that matter: 0-15 maps to +24 semitones (+2 octaves), 15-47 makes to +12 semitones (+1 octave), 48-79 maps to zero (no transposition), 80-111 makes to -12 semitones (-1 octave), and 112-127 maps to -24 semitones (-2 octaves). So selecting one of the five octave transposition settings is very quick if your preference is to use a mouse for most editing in the Live user interface, but transposition is slower if you use the keyboard cursor keys to move up and down one semitone at a time...


You can see the effect of the lack of an 'invert' option in the screenshot above. The 'Ableton Pitch' method gives a rotary Macro Control that goes clockwise for transposing up in pitch, whereas the 'Quick Transpose' method results in a rotary Macro Control that transposes down in pitch for clockwise rotation. But the quantisation makes it easier to set the transposition because there are only five positions for the Macro that is mapped to the 'Quick Transpose' live.tab object - and the lack of a 'Shift-Up/Down' keyboard shortcut makes the 'Pitch' method more fiddly since it requires careful mousing to move the exact multiple of 12 semitones, or requires multiples of 12 ip/down cursor key presses to shift in octaves.



For completeness, the 2 octave view is shown above.

In conclusion, then there are advantages and disadvantages for each method. The 'Use Ableton devices like the Pitch device' method doesn't require an additional M4L device, but suffers from a missing keyboard shortcut and requires lots of key presses or precise mousing. The 'Quick Transpose' method requires an additional M4L device, but has a user interface that is easier and quicker to use with a mouse, but requires huge numbers of cursor key presses. It all depends on your preferred method of interacting with the Live user interface - my preference is for mousing, but I also use the cursor keys for precise control!















No comments:

Post a Comment