Howto: Controlling Live's tempo via Remote SL Tempo/Tap knob

Share your favorite Ableton Live tips, tricks, and techniques.
Post Reply
Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Howto: Controlling Live's tempo via Remote SL Tempo/Tap knob

Post by Timur » Mon Oct 22, 2007 8:07 pm

Some of you may already have found out that you can only control Live's tempo via the Novation Remote SL when using Template 38 (Plugin Automap) with the Automap Server application running on your computer. This is because the Automap Server controls Live's tempo via Rewire.

Actually it IS possible to control Tempo via template 40 (I found three different ways), but you need to setup some things. Novation can easily fix that by providing a setting for BPM channel (BPM port is already there). But Ableton could also easily fix it by allowing communication on other Midi channels than 1.

The Automap Server only receives data from the Remote SL USB Port 3/C -channel 16, template 38 uses this settings. Template 40 uses USB Port 2/B - channel 1. Whereas you can set the BPM port independently to USB C via preferences on the Remote SL you cannot set the channel independent of the template. Ableton doesn't mind which Midi port you use for Automap, but it always uses Midi channel 1.

The Remote SL receives Automap data on any port or channel. So even if you connect the Remote SL to your computer via USB it doesn't matter which of the three virtual ports (A/B/C) you setup as Control Interface Send port, the Remote SL will receive the data. If you like you can also use a common Midi port btw, but you have to setup the Remote SL accordingly as far as I remember (via the Remote SL's global preferences).

1. Edit the Automap Template 40 on the Remote SL

This is the easiest way to do it, albeit you cannot use "Dump" in the Live preferences anymore, because it will overwrite your precious settings.

Chose template 40 on the Remote SL, then push the "Template" button. There you can set the template's Midi channel which has to be set from channel 1 to channel 16. This is your "Comn" channel. Save the new settings.

Now push the "Edit" button and edit all knobs and faders to use channel 1 instead of the "Comn" channel. Yes, I mean you have to edit all those knobs and buttons, but fortunately you only have to do it once.

The good thing is that you can save your edited template to any template number now, it will function as an Ableton Automap template on whatever number you chose as long as you took template 40 as your source to begin with!

2. Create your own User Mapping file for Ableton

Find the UserMappings.txt file in your Documentes and Files\Username\Application Data\Ableton\Live version\Preferences\User Remote Script. There is a document on how to use this file in the same directory as well.

It looks something like this:
# Config File for User-defined Instant Mappings

# We assume that the controls on your MIDI controller
# send CCs. All controls, except the sliders for volume
# and the encoders for device parameters, are expected
# to use the global channel. CCs are counted from 0-127
# and channels from 0-15.

[Globals]
# The channel that the controller should send on
GlobalChannel: 0
# If your controller is connected via USB, replace ControllerName
# with the name of the respective port. Live will then try to
# recognize the ports for you when you select your Instant-Mappings
InputName: ControllerName
OutputName: ControllerName

[DeviceControls]
# The Encoders will control the device parameters (you can also
# use knobs or sliders). Replace the -1's with the CCs sent by
# the respective controls on your controller. You can also set
# the channel for each controller if it differs from the global
# channel (if you leave the channel of an encoder at -1, Live
# will assume that the encoder uses the global channel).
Encoder1: -1
Encoder2: -1
Encoder3: -1
Encoder4: -1
Encoder5: -1
Encoder6: -1
Encoder7: -1
Encoder8: -1
EncoderChannel1: -1
EncoderChannel2: -1
EncoderChannel3: -1
EncoderChannel4: -1
EncoderChannel5: -1
EncoderChannel6: -1
EncoderChannel7: -1
EncoderChannel8: -1
Set Inputname and OutputName to the name of the Midiport that your Remote SL is connected to (i.e. Remote SL: Port 2). Set the global channel to channel 16, find out the CC value for all the encoders on the Remote SL and put them after "EncoderNo" and set all "EncoderChannelNo to channel 1. To find out the CC values of your Remote controls you can just use the "Edit" button on the Remote and go through all buttons. Save the file under your prefered name and enter Ableton's preferences. Under the Midi settings you now can chose your new UserControl file as a Control Interface. Add that Control Interface to your existing Remote SL control interface.

While this method needs more work it is also more sophisticated. Not only will it enable you to use the Tempo knob and Tap button, but also the knobs above the drumpads will work now (they will control the same settings that the endless knobs on the top row control).

3. Reroute Midi channels via Midi-Ox (PC) (or probably MidiPipe on Mac OS, but cannot say)

For this to work you need to set the port of template 40 to USB 3/C and tell Ableton to receive on this port. Then you use use a third-party software that enables you to take any inbound or outbound Midi message via virtual Midi cables and transform it into something different. If you don't know what I'm talking about here then better use one of the other two methods.

In our case you need to setup a rule that will change the Midi CC messages 94 and 95 from the Remote SL from channel 1 to channel 16. Now have Midi-Ox/MidiPipes receive all messages from the Remote SL and send the transformed messages to one of the virtual Midi ports. Setup Live to receive Control Interface data on the virtual Midi port and send its data as usual to the Midi port the Remote SL is connected to.

Another method would be to set template 40 to channel 16 and transform all CC 00 to 93 and 96 to 127 from channel 16 to channel 1.

That's it, have fun trying things out! :) 8)

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Mon Oct 22, 2007 10:15 pm

I revised the last section about Midi-Ox/MidiPipe since the first version was faulty and missing an important details (BPM port).

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Wed Nov 14, 2007 9:22 am

Yes, the Transport Buttons do work with these solutions! ;)

friend_kami
Posts: 2255
Joined: Mon May 29, 2006 10:10 pm

Post by friend_kami » Wed Nov 14, 2007 2:30 pm

ok, not that i have one of these controllers, but speaking of custom mappings; is there a fast way to determine which port your controller is hooked up to, or better yet, a way to autodetect it within the mapping file, with some clever scripting or something?

i have way too many usb ports, and way to little time for trial and error. :)

Timur
Posts: 2203
Joined: Mon Sep 17, 2007 8:55 am

Post by Timur » Wed Nov 14, 2007 2:54 pm

Hey, you're stealing my precious thread! :evil:

But to give you an answer: You can install some software like Midi-Ox and enable all inputs. Then you press some button on your Midi device and Midi-Ox will tell you which Midi input it received data on (all with cute LED and realtime readout of the data).

Another way would be to simply put some tags on your Midi cables/devices which tell you the port they're connected to. :P

Post Reply