BCR2000 Control
BCR2000 Caption complement: http://maxforlive.com/library/de...
- Type
- MIDI Effect
- Author
- T0n1
- Version
- 1.2
- License
- AttributionShareAlike
- Live version
- 8.4.2
- Max version
- 5.1.9
- Downloads
- 2,107
- Updated
- 2019-02-13
Description
BCR2000 Caption complement: http://maxforlive.com/library/device/5263/bcr2000-caption
- V1.2: Added a 2>1 14Bit panel mapping 2 knobs to 1 control and a video tutorial on http://vimeo.com/t0n1 (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
http://vimeo.com/t0n1/bcr2000control-1
SETUP
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.
MULTIPLE LAYERS
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.
14BIT CONTROLS (V1.2)
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.
TOTAL RECALL
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 live.observer 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.
PRESET MORPHING (V1.1)
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.
META PRESETS
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.
CLIP ENVELOPE AUTOMATION RECORDING (V1.1)
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.
CAVEATS
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.
CREDITS
The Device Parameter selection with Map function is taken from LFO Zero 1.0 by monolake under the AttributionShareAlike license:
http://www.maxforlive.com/library/device/678/lfo-zero
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:
http://cycling74.com/toolbox/midi-inout-for-maxforlive/
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:
http://www.covops.org/max_for_live_collection/