Beringher B-Control Rotary BCR2000 Entry: Beringher B-Control Rotary BCR2000 Date: Wed Apr 28 09:40:35 EDT 2010 It's quite old already, bought it for $132 inc shipping. It's a nice box, if you can get over the fact that rotary knobs don't have such a high physical resolution as real pots. I managed to hook it op to Pure Data using NRPN params. See the patch here[1], which receives all NRPN params and sends them to global Pd receive objects. So, the sysex messages. F0 Sysex start 00 20 32 Beringher ID 00 15 20 HH LL Packet Sequence Number .. Script line F8 Sysex end F0 002032 001520 0000 F7 F0 002032 001520 0001 ... ... F0 002032 001520 0142 ... [1] http://zwizwa.be/darcs/pd/abstractions/ Entry: BCL commands Date: Wed Apr 28 11:22:18 EDT 2010 [1] http://bc2000.pingdynasty.com/index.php/Introduction_to_BCL [2] http://bc2000.pingdynasty.com/index.php/SecretsBC [3] http://www.sequencer.de/synth/index.php/B-Control-Tokenreferenz [4] http://www.sequencer.de/synth/index.php/B-Control-Konfiguration Entry: s-expr form Date: Sun May 2 18:45:34 EDT 2010 ((preset) (.name "all controls ") (.snapshot off) (.request off) (.egroups 4) (.fkeys on) (.lock off) (.init)) ((encoder 1) (.easypar CC 1 1 0 127 absolute) (.showvalue on) (.mode 12dot) (.resolution 96 96 96 96) (.default 0)) Entry: Parsing Date: Sun May 2 18:50:18 EDT 2010 Core parse function has 3 continuations: - new-record - new-field - end Ad hoc parsing. This is again a typical ad-hoc table parsing algo. Isn't there a way to write such parsers more directly? Since there is no recursion to keep track of, regexes can do it just fine. I.e. convert by preprocessing to CSV or SEXP and read directly. Entry: Rehash Date: Tue Dec 14 13:46:48 EST 2010 I'd like to get rid of the preset idea. I just need a bunch of knobs, buttons and LEDs with a simple enough interface. I'll solve the abstraction problems somewhere else. However: - The accelleration is nice - What to do with LED feedback? Entry: Problems Date: Tue Dec 14 14:15:18 EST 2010 - Switching device on and off doesn't work well with pd. - Easy-setup code (+- done for encoders) EDIT: use socat from udev Entry: Encoder numbers Date: Mon Mar 25 22:46:31 EDT 2013 From [1] $encoder Konfiguriert die Drehencoder. Bei den Push-Encodern bezieht sich dies nur auf den Encoder, nicht auf die Druckfunktion. Die Encoder-Nummer wird dabei durch angegeben und kann im Bereich 1-32 bei einem BCF und 1-56 bei einem BCR liegen. Dabei ist die Aufteilung wie folgt: 1-8 = oberste Reihe, Gruppe 1 9-16 = oberste Reihe, Gruppe 2 17-24 = oberste Reihe, Gruppe 3 25-32 = oberste Reihe, Gruppe 4 33-40 = zweite Reihe (nur BCR) 41-48 = dritte Reihe (nur BCR) 49-56 = unterste Reihe (nur BCR) [1] http://www.sequencer.de/synth/index.php/B-Control-Tokenreferenz#.24encoder_.3Carg.3E Entry: Need control over control... Date: Sat Jul 5 14:55:02 EDT 2014 Let's go for this P-1 = RAI -> ALL NRPN high res P-2 = Staapl -> ALL CC low res List of CC's [1], but I wonder if it's not simpler to stick to a more straightforward parameter scheme. No let's do standard. [1] http://www.nortonmusic.com/midi_cc.html Entry: Restart Date: Wed Nov 12 11:59:50 EST 2014 Where did it go... Let's set up some basic controllers: P-1 = RAI -> ALL NRPN high res P-2 = Staapl -> ALL CC low res P-3 = Misc -> ALL relative Also: add a udev script to lift everything to tcp/udp. Entry: Alternative firmware Date: Fri Nov 14 00:05:09 EST 2014 Neat, but seems closed[1][2]. Devkit here[5]. Inside[4]. OKI L671000 ARM7TDMI [1] http://www.synthtopia.com/content/2014/09/26/zaquencer-firmware-behringer-bcr2000-into-a-hardware-midi-step-sequencer/ [2] https://zaqaudio.com/ [3] http://www.knutsel.org/tag/behringer-bcr2000/ [4] http://www.knutsel.org/2010/09/14/behringer-bcr2000-2/ [5] http://willem.engen.nl/projects/bc2000-dev/