TransposerRT: Play MIDI Pitch Transpositions to Multiple Tracks in Realtime

    (A YouTube video in which I demonstrate TransposerRT can be found here.  Please forgive the amateurish quality of the video; you'll hear background noise from my family, as well as pops and clicks from the freeware screencasting software I was struggling with.  I'm much better at making M4L devices than YouTube videos, I promise!)
    Have you ever wished that you could play notes on one MIDI track, and have those notes be applied as pitch transpositions to what's playing on other MIDI tracks?  Well, now you can.  TransposerRT is a freely downloadable pair of Max For Live MIDI Effect devices -a Sender and a Receiver- which together make Ableton Live much more flexible for improvisation, allowing you to send pitch transpositions to multiple MIDI tracks simultaneously on the fly.
    For example, say you have a bass track and a string pad track each playing their own clip, while you improvise the melody on another track. There's only one problem with that setup: your improvisation is locked into whatever key the clips were created in.  With TransposerRT, you can use your left hand to play pitch transpositions that will be picked up simultaneously by the bass and the string pad tracks, effectively changing the key of the clips they're playing, even as you improvise the lead with your right hand.
    Another benefit of TransposerRT is the ease and speed with which you can create and modify key progressions.  Record or draw the transposition changes into a clip on the Sender track, and you've created a key progression that will apply to every instrument on a Receiver track.  If you later wish to modify the pitch transposition sequence, you have only to edit that one clip, rather than going back and editing the individual clips on the instrument tracks.  Say goodbye to the laborious, time-consuming process of implementing key changes by copying, pasting and transposing measures in individual clips!   And since the Sender clip only represents pitch offsets, you can look at that clip and immediately see where the key changes in the song are.
    In essence, TransposerRT allows you to decouple clip patterns from key transpositions.
    How It Works:
    One of the devices is the pitch offset Sender and the other is the Receiver.  The Sender generates and sends pitch offsets. It has a setting called Root Pitch; upon receipt of a MIDI note, the Sender compares the incoming note's pitch with the root pitch. and the difference between the two is sent out as the offset.  So if the root pitch is 60 (C3, Middle C) and you play the note one octave above (C4, 72), the difference is 72-60 = 12 semitones, which is sent out as the offset.
    A Receiver device sits on a MIDI track before the VST (or instrument, external device etc.), and passes MIDI notes from the track's currently playing clip.  However, before passing on the MIDI notes, it adjusts their pitch in accordance with the latest offset from the Sender.  So, for example, if the latest pitch offset from the Sender is 12 semitones, then notes output from the clip will be transposed 12 semitones before being passed on to the VST.
    Sender Controls: As I mentioned, TransposerRT is a pair of devices, a Sender and a Receiver.  Here are descriptions of the controls for the Sender (also available in the Ableton Info View by hovering your mouse over the control):
    Root Pitch - This control looks like a miniature musical keyboard. Click on the appropriate key to set the pitch from which incoming MIDI notes on this track are to be regarded as relative offsets. The Root Pitch will be subtracted from the incoming note pitch, and this will be added to the offset from the Octave Select to yield the net transposition offset sent to Transposer_RT receivers. (This will not change the current offset, only taking effect upon playing another offset note.)
    Octave Select - Adjust this dial to increase or decrease subsequent transposition values by a specific number of octaves. As with the Root Pitch control, changes to this control do not trigger offset changes, rather affecting the value of the offset sent out upon receipt of the next incoming note.
    Virtual Channel - Modify the value in this number box if you wish to have multiple senders, each associated with receivers listening on the same virtual channel and ignoring others.
    Receiver Controls:
    Resend on Offset Change - Use this checkbox to control what happens to an already playing note when an Offset message is received from a TransposerRT sender.  If unchecked, currently playing notes will continue playing at their present pitches;  if checked, these notes will be turned off and immediately resent with the new transposition.
    Virtual Channel - (See the description of the same control in the Sender.)
    Octave Shift - Use this dial to shift pitches of outgoing notes in octave increments.
    Note Delay - This number box can be used to introduce a slight time delay before processing incoming notes, ensuring that offset changes will take effect before subsequent notes are output.  The range is from 0 to 50 milliseconds, with the default being 5 ms.
    Transposed Note Outside Playable Range - This LED lights when a transposition yields a note pitch outside the MIDI playable range of 0..127.  It serves as a warning that the user may wish to change device settings on the Sender and/or Receiver to avoid subsequent unplayable notes.  To ensure that the operator notices the event, the LED remains lit once it comes on.  Click on the LED to turn it off.
    (Hovering your mouse over most controls will cause the control's description to appear in the Ableton Info panel.)
    I hope you find the two TransposerRT devices useful...