Device Details

Device Overview

Name/Version: BCR2000 Control 1.2
Author: T0n1  
Description: BCR2000 Caption complement:
- V1.2: Added a 2>1 14Bit panel mapping 2 knobs to 1 control and a video tutorial on (part 5 for 2>1).
- V1.11: Maintenance: notepad persistency, lower preset morph speedlim to prevent crackles
- V1.1: Added BCR2000Preset for preset morphing with pattrstorage
- V1.1: Added BCR2000Record utility for MIDI CC clip envelope recording
- Works with any MIDI controller sending/receiving MIDI CC
- Multiple "blue hand" like device control mappings in multiple layers
- Complex setups can be stored in instrument or effects racks as presets
- Total recall when switching layers, hot swapping racks or loading presets
- Coexists with Live's own MIDI mapping
- Blue hand on selected device overrides BCR2000Control

To escape the wall of text below, head on to the video tutorial series in 6 parts, part 1 starting at


You'll need at least the additional BCR2000IO.amxd from the download URL. BCR2000PresetMidi.amxd can be used for preset morphing and BCR2000Record.amxd for recording MIDI CC automation.

Create an empty MIDI track in Live, place the BCR2000IO there and set the Monitor mode to "In". On Mac OS X, you can add the BCR2000In device in front of BCR2000IO and select your hardware in there, but you need to install the lh_midiinout external separately. This bypasses Lives MIDI CC duplicate elimination, which avoids problems with the BCR2000 on/off keys.

Fore each device to be controlled, place one or more BCR2000Control device(s) wherever you want. "Attach" the device to the BCR2000Control.

Then press "Base" to put it in MIDI learn mode, move the leftmost knob (with the lowest MIDI control number) of the selected button row to map it and its neighbors to the BCR2000Control. To use less than 8 knobs resp. parameters, optionally reduce the "Size".

With version 1.2, MIDI CC 0 (which is not used on the BCR2000 by default) blocks any MIDI output such that the knobs with CC 1-7 remain unaffected by an uninitialized device.

For Live's native devices, put them into a rack, which equalizes their range and allows to arrange them freely. If eight parameters are not enough, you can use e.g. one or more "Sixteen Macros" devices from The Covert Operators to map them all.


The individual BCR2000Control Attach/Detach toggle buttons can be assigned with Live's own MIDI mapping, which makes it possible to use the same knob row(s) for multiple devices. For simpler MIDI mapping, map the three Attach buttons of the two BCR2000Control groups to a parent rack macro control for each instrument. Then MIDI map a button 1 to the macro control of rack 1 and a button 2 to the macro control of rack 2. Thereby two BCR2000 buttons control which of the two Live racks is currently attached and therefore controlled with the three BCR2000 knob rows, as with encoder groups.


To make it as flexible as possible, I added a special "2>1" Size which controls 1 parameter and allows mapping of any two knobs for Coarse/Fine control, thus they don't need to have adjacent CC numbers. Push "Map", then move the Coarse knob, then the Fine knob and you're done.

"Steps" controls the number of full turns of the Fine knobs that one turn of the Coarse knob implies. For Diva detune, this would be 5, for full 14Bit MIDI CC, it would be 127, yielding Coarse to control the MSB and Fine to control the LSB in isolation.

"Joint" activates cross-feedback on the LED's: If you move Coarse, Fine will turn Steps time around, if you move Fine, Coarse will adjust its exact position. In the Diva OSC case, I prefer non-Joint configuration, such that turning the Coarse knob will augment the frequency step-by-step in octaves, and Fine will detune the frequency within that octave, thus replicating its GUI.


The BCR2000Control device does not internally store parameter values (except for presets, see below), but it loads it from the controlled device when it gets attached. When attached, the parameter is grayed out in Live. Then an instrument receives focus, it gets temporarily detached and the parameter can be changed with the mouse or blue hand. After losing focus, the instrument gets re-attached, reading out the changed parameters and reflecting them on the BCR2000.

When hot swapping presets, the device needs to be detached before and re-attached afterwards - otherwise the new device's control values immediately get overwritten by the values of the old device, as the event e.g. on name change fires only after the values have been overwritten.

But starting with V1.2, control valued changed e.g. in a VST/AU GUI - which always were immediately reflected in Live's paramters - get mirrored back to the BCR2000 hardware.


The BCR2000Preset device can be used to morph between individual preset patterns stored in the BCR2000Control pattrstorage object just by turning the Preset Select knob.

The MIDI mapping of the Preset Select knob and the Preset Store button with the Map button expects both a continuous value (1..126) and a on/off value (0/127) in sequence such that the push knobs on the top row can easily be mapped. As the preset knob has also values of 0 and 127, turn it away from the edge positions to avoid misinterpretations and afterwards push the button down.

To store a new knob position pattern in a BCR2000Control preset, push the Storable button to activate it and detach the Preset Select knob. Then turn the knob to the desired preset number (the int value displayed on the right of the knob) and push the Store button again to actually store the controller pattern and re-attach the Preset Select knob to its Controller devices.

The Unlink button in the BCR2000Preset device disables all Storable buttons in the Live set to prevent accidentally overwrite presets in invisible devices. The Clear button clears all presets in the BCR2000Control devices which were stored from that device.


It is possible to create meta presets, i.e. presets of presets, as the preset knob is attachable, too. This can be useful to combine e.g. two preset devices with a mapped knob each into one combined preset.


The BCR2000Record device addresses two problems with MIDI CC Envelope recording into MIDI clips: All BCR2000 Max devices have a speed limit of 25Hz, therefore direct recording pollutes the clip with an unnecessary high sample rate. And - at least with Live 8.4 - the Monitor Off track setting seems to be ignored for MIDI CC, resulting in unwanted controller feedback.

Setup two MIDI tracks: BCR2000Record with that device and a BCR2000Clip for the recorded MIDI clips. Configure the Record track with "MIDI From" the Clip track, Monitor to "In" and "MIDI To" the Clip track. Configure the Clip track with From/To "No Input/Output", Monitor to "Off" and arm it for recording.

Play with the knobs on the BCR2000 device and start recording. When done, the notes of the looping MIDI clip are received by the Record track and automate the controlled device and simultaneously the BCR2000 LEDs.


Mapping a 0/127-button to a (continuous) macro control seems to be incompatible with any take-over mode but "None" in Live's MIDI preferences.

Although BCR2000ControlAudio/Midi use a simple plugin~/plugout~ resp. midiin/midiout short circuit (which an optimizing M4L compiler in theory could cancel out), using lots of them in a channel for complex (e.g. external plugin) devices terribly increases latency.

But as any BCR2000Control can map to any device, you can put them in a separate, muted chain in a rack containing the controlled device. MIDI chains aren't delay compensated at all, but for audio racks even the "Reduced Latency When Monitoring" option doesn't bypass a muted rack chain, you'll need to turn off "Delay Compensation" to effectively bypass it.

The tutorial Live sets in the download section uses MIDI channel 16 for the BCR2000 hardware instead of the default channel 1 due to MIDI mapping conflicts with other devices in my local setup.

Sometimes mappings get muddled when building up a setup, in such cases saving the Set and restarting Live might sort things out.


The Device Parameter selection with Map function is taken from LFO Zero 1.0 by monolake under the AttributionShareAlike license:

The lh_midiinout external for Max OS X by Leigh Hunt is nonfree software and therefore not freezed into BCR2000In. It can be obtained from:
Use the old version 1.02 from the comments at the bottom if you're still on Snow Leopard (like me).

The Sixteen Macros device by the Covert Operators is indispensable for mapping more than 8 parameters of Live's internal devices:

Device Details

Downloads: 2045
Tags lfo, utility, hardware
Live Version Used: 8.4.2
Max Version Used: 5.1.9
Date Added: Jan 05 2013 08:56:54
Date Last Updated: Feb 13 2019 14:58:09
Average Rating (4) 5
Rate this device: (must be logged in to rate devices login)
Device Type: midi_device
URL (optional):
License (more info): AttributionShareAlike

Device Files

Device File: BCR2000ControlMidi.amxd


Cool, I must check it out :)

This looks amazing, but it sure it complicated to figure out. Any chance of a video demonstration?

The first part of a video tutorial is now online at

This is excellent but how do you record automation in arrangement view?

great device and great videos! i really appreciate your work and the time you put in. its a shame its not more popular...


hello. should be awesome device!
have one problem though:
when i turn succesfully mapped knob it jumps to some wrong (random?) value for a moment, then turns like it should.
it happens every time i turn other knob.
ableton 9, m4l 6.1, win 7, bcr2000
tried the 1.11 version as well, same result.
what could it be? really want to give this device a proper use! thank you!

Version 1.2 has an enhanced parameter feedback conduit: Prior versions sent the current Ableton parameter value back to the BCR2000 hardware only when attaching to device parameters, but with 1.2 it uses objects to immediately reflect parameter changes made e.g. on a VST/AU GUI back to the BCR2000 LED rings.

But according to your problem description, your setup may suffer from a known BCR2000/USB/driver/? instability problem: Sometimes MIDI CC messages aren't transmitted to the hardware for whatever reason, for more details see the comments on the 1st tutorial video at

What happens in that case is that it jumps to the value that happened to be visible on the LED ring of the knob before instead of the actual parameter value which should have been fed back when attaching.

Good program, but after 2-3 mouths of using, ableton stated loosing sound on 1-2 sec, when i using ur device and nothing can help me :( (without it all works)

Good program, but after 2-3 mouths of using, ableton stated loosing sound on 1-2 sec, when i using ur device and nothing can help me :( (without it all works)

Good program, but after 2-3 mouths of using, ableton stated loosing sound on 1-2 sec, when i using ur device and nothing can help me :( (without it all works)

I've encountered a MIDI send/receive congestion problem also when heavily using the device(s) as a Wah Wah with a foot controller. Live 8 doesn't seem to be able to catch up with the audio buffer in that situation and Live's CPU meter remains stuck on high percentages. Thus although everything is programmed for separating the high priority real-time thread (from MIDI in) within the BCR2000Control device, I've put up a BCR2000IO-lowprio.amxd alternative in the download folder which seems to behave more gently. Still unsure whether I should enforce the low-prio thread or make that an option for a future version.

Hi! Thanks for making this script - I'm really excited about the possibilities. I'm having a bit of trouble adding it to my set - it's weird I seem to be losing the mapping if I use the 'instrument rack' style you recommend in the 2nd video.

If I select any other chain in the rack I lost my mapping - very strange. Selecting other tracks doesn't seem to effect it, but it's pretty weird. Do you get anything similar?

Thought the 'blue hand' might be interfering but I disabled it and nothing changed.

Just in case I'm not being clear - to replicate:
1. Make instrument in rack - synth goes in chain 1
2. Add new chain for BCR2000controlMIDI
3. Map BCR2000controlMIDI to synth in chain 1
4. Select chain 2 with BCR2000controlMIDI in it
5. Mapping is gone! :(

The BCR2000controlMIDI still shows mapping but if nothing works - MIDI does not control parameters.

Any tips on fixing this would be much appreciated! If I place BCR2000controlMIDI on another track I don't get the problem - but if I select anything else on the instrument rack it breaks the mapping.

Live 9.1.1, and latest (I hope) version of your script from main download folder.

Also thought I should add - I'm mapping directly to the synth controls, not through the rack Macro controls. If I don't do this then on patch load in the synth I don't get any update on the BCR dials.

e.g. - I map filter to dial 1.

If I load a patch on synth with direct mapping, the BCR updates.

If I load the patch with filter mapped through a macro, neither the macro or the BCR update. :(

So it's essential for this set that I map the BCR2000controlMIDI directly to the synth parameters.

I could only check on Live 8.4.2 for lost mappings, e.g. with the ./Tutorials/Part 2 - Patch Rack Presets.als example, and I can reproduce the observed behaviour partially. First of all, I usually map directly to AU/VST parameters, too, instead of going through Macro controls. Second, not all plugins behave the same with parameter feedback, if the VST doesn't work, the AU variant might do.

The BCR2000Control devices incorporate the concept of temporally detaching the selected device (mainly for blue hand override or for manual parameter changes in the Ableton GIU, as they get disabled when attached): If the synth *device* is selected (its title bar turns yellow), the "Detach" button(s) of the controlling BCR2000Control devices flashes red to indicate that it is no more in control until another device is selected.

It is important to note that selecting a rack *chain* doesn't affect the selected device: You can select the synth in Chain 1, select Chain 2 and view the flashing Detach buttons there, as the synth is still selected. Select e.g. the BCR200Control device in Chain 2, and the Detach button stops flashing, as the synth has been deselected.

Changing a preset in the VST preset dropdown within the Ableton GUI or opening the VST/AU GUI and changing the preset there doesn't necessarily involve *selecting* the device (which would temporarily detach ist), but even if I take care *not* to select it, e.g. with the VB3, there is a difference: Presets changes in the dropdown in the Abletion GUI get fed back, but preset changes in the VB3 GUI not - but direct parameter changes in the VB3 GUI nevertheless get fed back. But this behaviour is specific vor VB3 on OSX, other plugins behave differently.

t0n1 you are my german god.
unfortunately this post is a prayer.

i was unsuccessful in simultaneously manipulating multiple knob encoders without getting glitchy response.

i bought a cheap usb to midi adapter to try unsuccessful

i then bought a pretty nice audio interface with midi, however the problem still exactly the same. native intruments komplete audio 6

note im using ableton 9 and updated max ..win8.1.. 6core cpu
i tried using the low priority version for each
tried u123 s1234 for each

im in love with your ability to manipulate and morph presets

HI Y'all,

Ive got it al perfectly setup, only i have got the same issue with the knobs when turned jumping to a another value before acting normally.
can someone please help me with this? i have looked on vimeo but no solution found.

Regards Tom.

Just hooked up the bcd only over midi.. same thing. so it's not the general usb driver, else all other hardware would suffer from the same issue. T0n1, is there anything you can do in this? or anyone else? i'd really really really like to get this sorted.

Hi! Great device!

Is there a way to manually trigger the synchronization of mapped parameters back to the controller hw? (Even by editing the max "source code"?)

I'm mapping a Synth1 VST, which unfortunately has it's own preset system which does not integrate well with Live. When I change preset, I want to send the new parameter configuration to the device.

Any tips?

The Attach button triggers that synchronization manually. By mapping it to a button on the controller, you can even switch between layers of mapped VSTs within the same Live Set. See e.g. Part 2 of my tutorial series (there I'm using the VST instead of the AU version as it needs no manual triggering) at:

Login to comment on this device.

[ browse device library ]