PDA

View Full Version : Behringer BCF2000 + BCR2000 einbinden


LX84
05-07-2012, 01:27 PM
Hallo liebe Community!

Ich versuche meine beiden Controller BCF2000 udn BCR2000 vonBehringer in meine Reaper-Umgebugn einzubinden.

Das BCF2000, also der Cnotroller mit den 8 Fadern ließ sich ja relativ simpel mit der MackieControlUnit Emulation einbinden. Bis auf ein paar Abstriche (Solo Schalter pro Spur und der REC Knopf nur mit einer Shift-Tastenkobination zu erreichen) ist das ja wirklich toll!

Nun möchte ich auch das BCR200 einbinden. Und zwar so dass ich den gesamten Controller, also alle Regler & Tasten für jeweils einen Reaper-Track zur Verfügung habe. In meinem Fall kann ich so Equalizer, Compressor, Limiter, Delay und Reverb einstellen. Es werden also für das jeweilige VST (zB ReaEQ) die gewünschten Regler am BCR2000 angelernt, und dann ein Default Preset für das plugin gespeichert. nun kann man für jeden neuen track das pluginhinzufügen, und das default preset ladet automatisch, und damit auch die jeweilige regler-zuordnung!


Nun hierzu meine 2 Fragen:
1) Ich hätte gerne, dass sich diese Zuordnung nun mittels Knopfdruck (zB mit dem TrackSelect-Knopf vom BCF2000) auf den jeweiligen ausgewählten Track ändert. Alternativ wäre auch ein "Durchschalten" zum gewünschten Track mittels zB der Preset-Wähltaste am BCR2000.
Nur krieg ich beides nicht so recht hin, bzw hab keinen Plan wie man das bewerkstelligen könnte...
Hat da jemand eine Lösung parat?
EDIT: das hat sich grade erledigt, da ich die "falsche" learn funktion verwendet habe (die im envelope-fenster). es funktioniert alles automatisch genauso wie beschrieben, wenn man die funktion über das jeweilige VSTI direkt anwählt. also den gewünschten regler einmal kurz anklicken, dann auf "param"/LEARN auswählen, dann den jeweiligen controller am BCR2000 drücken und mit OK bestätigen. auswählen des jeweiligen tracks (oder auch mehrerer tracks) geht nun über das BCF2000. perfekt :)

2) Nun wärs auch nett, wenn Reaper die jeweiligen Werte vom gewählten Track automatisch an den entsprechenden BCR2000-Knopf/Regler sendet, um die LEDs an die richtige Position zu bringen. Bisher bleibt die LED Anzeige wo sie ist, wenn man händisch was in Reaper ändert.

Wäre für Ideen und Ratschläge sehr dankbar!!


PS: Falls das unklar sein sollte - ich würde ein PresetSample in Reaper erstellen mit zB 16 Kanälen, wo bereits für jeden Track sämtliche Effekte (ReaEQ, ReaComp, ReaDelay,...) angelegt sind, jedoch auf Bypass stehen.

nofish
05-07-2012, 02:34 PM
2) Nun wärs auch nett, wenn Reaper die jeweiligen Wertte vom gewählten Track automatisch an den entsprechenden BCR2000-Knopf/Regler sendet, um die LEDs an die richtige Position zu bringen. Bisher bleibt die LED Anzeige wo sie ist, wenn man händisch was in Reaper ändert.


Das ist ein feature das ich auch vermisse.
Das (ich nenn's jetzt mal 'Midi-Feedback') geht z.Zt. nur wenn du einen Controller als Control surface einbindest (zB im Mackie Mode wie du's mit dem BCF gemacht hast), NICHT aber wenn du ihn als normales Midi (control) device einbindest und die controller Zuweisungen mittels Reaper's learn-Funktion machst.

Ein workaround Midi-Feedback doch hinzubekommen ist der Umweg über OpenSoundControl (OSC). Aber da kenn ich mich zuwenig ist und das ist mir ehrlich gesagt auch zu fiddelig.
Falls du da mehr drüber wissen willst, such mal nach den Posts von 'Banned' im pre-release forum, der beschreibt da seine Methode Midi feedback zu bekoomen mit Hilfe von OSC und PureData.

LX84
05-07-2012, 02:42 PM
und noch eine weiteres problem findet sich:

das Anlernen mit der LEARN funktion funktioniert zwar einwandfrei mit den Reglern, jedoch nicht für ein/aus knöpfe bzw "radiobuttons" wie zB in ReaComp den "AutoRelease" Schalter. ein Druck auf den BCR2000 Knopf deaktiviert die funktion, kann sie jedoch nicht aktivieren...

muss ich da was am BCR200 umstellen??

EDIT: danke für den hinweis mit OSC! hab darüber schon anderswo gelesen, aber bisher keine vernünftige erklärung dazu gefunden.. werd mich da mal genauer einlesen!!

Banned
05-07-2012, 03:39 PM
und noch eine weiteres problem findet sich:

das Anlernen mit der LEARN funktion funktioniert zwar einwandfrei mit den Reglern, jedoch nicht für ein/aus knöpfe bzw "radiobuttons" wie zB in ReaComp den "AutoRelease" Schalter. ein Druck auf den BCR2000 Knopf deaktiviert die funktion, kann sie jedoch nicht aktivieren...

muss ich da was am BCR200 umstellen?? [...]
Vielleicht hilft die "INCREMENT" modus: drucke auf ein "Button" + "EDIT" (auf BCR-2000), dann "MODE", dann "INC".

PS: OSC is nicht so 'fiddelig' wie es vielleicht aussieht auf erster anblick, und wirkt sehr gut, im besonders in 14 bit resolution modus: perfekt fur parameter wie EQ frequenz.

(Entschuldigung für mein schlechte Deutsch. ;) )

LX84
05-07-2012, 11:35 PM
Vielleicht hilft die "INCREMENT" modus: drucke auf ein "Button" + "EDIT" (auf BCR-2000), dann "MODE", dann "INC".

PS: OSC is nicht so 'fiddelig' wie es vielleicht aussieht auf erster anblick, und wirkt sehr gut, im besonders in 14 bit resolution modus: perfekt fur parameter wie EQ frequenz.

(Entschuldigung für mein schlechte Deutsch. ;) )
danke für den tip! Increment wars zwar nicht, aber die Knöpfe musste ich von PC auf CC Befehle umstellen, erst dann funktionierte der "Toggle On" Modus der Knöpfe (Leider geht das aus der BCR200 beschreibung nicht hervor), aber nun geht es!! Man muss als Minimalwert Off oder 0 und maximal-Wert 127 einstellen.

Na schön langsam komme ich dorthin, wo ich hinwill! Vielen Dank für eure Tips!

Banned, du sprichst auch ein Problem an, dass ich grade eben entdeckt habe - auch wenn ich im Behringer von "Absolute" auf den "Absolute 14bit" einstelle, ist der Regler vielzu ungenau - zB beim Delay Time ist der erste Wert 0, und der nächste schon bei 13.1, obwohl die Regler Range von 0 bis 16.383 geht. Ab dem Wert 127 ist er trotzdem bei dem Maximalwert. Muss ich in Reaper irgendwo speziell auf 14bit umstellen?



Zum OSC-Modus: Gibt es da irgendwo eine gute Anleitung? Am besten gleich für den BCR2000? Bzw gibt es jemanden hier im FOrum der das BCR2000 über OSC eingebunden hat?

Banned
05-08-2012, 03:35 PM
danke für den tip! Increment wars zwar nicht, aber die Knöpfe musste ich von PC auf CC Befehle umstellen, erst dann funktionierte der "Toggle On" Modus der Knöpfe (Leider geht das aus der BCR200 beschreibung nicht hervor), aber nun geht es!! Man muss als Minimalwert Off oder 0 und maximal-Wert 127 einstellen.

Na schön langsam komme ich dorthin, wo ich hinwill! Vielen Dank für eure Tips!

Banned, du sprichst auch ein Problem an, dass ich grade eben entdeckt habe - auch wenn ich im Behringer von "Absolute" auf den "Absolute 14bit" einstelle, ist der Regler vielzu ungenau - zB beim Delay Time ist der erste Wert 0, und der nächste schon bei 13.1, obwohl die Regler Range von 0 bis 16.383 geht. Ab dem Wert 127 ist er trotzdem bei dem Maximalwert. Muss ich in Reaper irgendwo speziell auf 14bit umstellen?
Vielleicht wird es Zeit fur eine richtige FR discussion thread (http://forum.cockos.com/showthread.php?t=102489). :)
Zum OSC-Modus: Gibt es da irgendwo eine gute Anleitung? Am besten gleich für den BCR2000? Bzw gibt es jemanden hier im FOrum der das BCR2000 über OSC eingebunden hat?
Ich habe einige Tutorials und Beispiele gepostet, und Ich hab verschiedene bidirektionale Bindungen gemacht zwischen REAPER und mein BCR-2000 (mit OSC <-> MIDI-Konvertierung). Aber die Pure data patches die ich dafür benutz sind groß, komplex, stark personalisiert und schlecht dokumentiert. Und wenn Sie schon das Gefühl habe dass die Verwendung einer Kombination mit der Shift-Tasten ein Problem ist, dann werden Sie wahrscheinlich meine Entwürfe auch nicht gefallen. ;) Ich kann eigentlich nur empfehlen sehr einfach zu starten, und dann Ihr eigenes ideales System Schritt für Schritt aufzubauen. Das Entwerfen einer Lay-out die ideal ist für *Sie*, ist wahrscheinlich eine viel größere Herausforderung als Daten hin und her zu konvertieren zwischen OSC und MIDI. Ich kann den ehemaligen nicht für Sie entscheiden, aber ich kann Ihnen das letzte zeigen.

LX84
05-09-2012, 08:42 AM
Vielleicht wird es Zeit fur eine richtige FR discussion thread (http://forum.cockos.com/showthread.php?t=102489). :)

Ich habe einige Tutorials und Beispiele gepostet, und Ich hab verschiedene bidirektionale Bindungen gemacht zwischen REAPER und mein BCR-2000 (mit OSC <-> MIDI-Konvertierung). Aber die Pure data patches die ich dafür benutz sind groß, komplex, stark personalisiert und schlecht dokumentiert. Und wenn Sie schon das Gefühl habe dass die Verwendung einer Kombination mit der Shift-Tasten ein Problem ist, dann werden Sie wahrscheinlich meine Entwürfe auch nicht gefallen. ;) Ich kann eigentlich nur empfehlen sehr einfach zu starten, und dann Ihr eigenes ideales System Schritt für Schritt aufzubauen. Das Entwerfen einer Lay-out die ideal ist für *Sie*, ist wahrscheinlich eine viel größere Herausforderung als Daten hin und her zu konvertieren zwischen OSC und MIDI. Ich kann den ehemaligen nicht für Sie entscheiden, aber ich kann Ihnen das letzte zeigen.

Danke, ich habe mich über deine zahlreichen Posts&Threads eingelesen! Sehr viele interessante Informationen. Im ersten Moment hört sich OSC udn was du damit bisher schon erreicht hast ja sehr gut an - jedoch schreckt mich die Komplexität des Systems und der extreme Zeitaufwand um alles so einstellen zu können wie man möchte sehr ab. Und zuguterletzt funktioniert auch dann das Parameter-Feedback für meinen Controller doch erst recht nicht, wenn ich das richtig gelesen habe.

Bis ich soweit bin, dass alles ginge, habe ich schon wieder mehrere Projekte per Hand(Maus) eingestellt...
Und wenn ich das richtig verstanden habe, muss ich auch jedesmal wieder ein komplett neues Layout/Preset für die OSC<->MIDI Konvertierung anlegen, wenn ich in einem anderen Projekt zB mal statt dem ReaDelay ein anderes VST verwenden möchte.. das wäre viiiieeel zu umständlich für meinen Workflow!


Du hast wirklcih tolle und essentielle Dinge gemacht (VIELEN DANK DAFÜR!), aber für mich ist das dennoch zu komplex und aufwändig!

Ich hoffe dass mit einer der nächsten Updates sich was zum guten ändert, was die Controller-Situation bzw MIDI-Control Implementierung betrifft.


Einige gute Feature Requests wurden da ja gemacht.
Ich persönlich bräcuhte nur folgende zwei Dinge:

1.) MIDI Learn Funktion in 14bit Auflösung (FR: http://forum.cockos.com/showthread.php?p=959227)
2.) Einstellbare Range, Stepsize und Curve für jeden LEARN-Parameter
(FR: http://forum.cockos.com/project.php?issueid=4127)

aja und natürlich
3.) MIDI Feedback für den Controller!
(gibts da schon wo einen passenden FR?)
Ich hoffe dass das in naher Zukunft implementiert wird...

gofer
05-09-2012, 01:57 PM
Die Regler der BCR und BCF sind doch alle Endlos, stimmts? Dann solltest du sie unbedingt auf Increment stellen und sie in Reaper als "relative control" anlernen. Welcher "relative mode" passt, hängt davon ab was die BC Regler senden, im MCU Modus wäre "relative 3 " passig. Dann ist die Auflösung von Reaper oder dem Plugin abhängig (macht die Step und Range Requests umso besser, Auflösung kann auch zu hoch sein :))

Das gibt dir allerdings immer noch kein Feedback:(. Aber die OSC Lösung schon, wenn ich das ganze richtig verstanden habe (muß nicht sein, ich bin bei dem Thema ein bißchen überwältigt). Ich glaube aber, das es für mindestens eins von den beiden Geräten auch ein csurf plugin geschrieben wurde, das hier im Forum irgendwo 'rumschwirrt.

Ganz sicher ist MIDI-learn Feedback schon im Feature Request Tracker. Ich werd mal auf die Suche gehn und hier 'rein editiern.

EDIT: Gibt's ja gar nicht - ich find kein Ticket dafür!

LX84
05-10-2012, 03:18 AM
Die Regler der BCR und BCF sind doch alle Endlos, stimmts? Dann solltest du sie unbedingt auf Increment stellen und sie in Reaper als "relative control" anlernen. Welcher "relative mode" passt, hängt davon ab was die BC Regler senden, im MCU Modus wäre "relative 3 " passig. Dann ist die Auflösung von Reaper oder dem Plugin abhängig (macht die Step und Range Requests umso besser, Auflösung kann auch zu hoch sein :))

hm das funktioniert bei mir grade nicht wirklich... ich kann den Regler im CC Modus nur auf Abosult oder Relativ 1,2,3 (und den jeweiligen 14bit modus)stellen.
Um auf Increment/Decrement zu stellen, muss ich den Regler auf NRPN umstellen, jedoch sind das dann zwei MIDI Befehle (cc#97 für decrement und #96 für increment) - sprich wenn ich das nun anlerne in Reaper, kann ich nur entweder das nach rechts drehen (CC#96) oder nach links drene (CC#97) anlernen.. X-)

LX84
05-10-2012, 03:24 AM
oder meinst du einfach den "Relative" Modus?

Ich stelle zB am Regler des BCR2000 als CC# Befehl im Relative 3 Modus in 14 bit ein (Min 0 - Max 16383), und in Reaper lerne ich ihn ebenfalls als Relative 3 an.
Aus unersichtlichen Gründen verändert sich die Auflösung zum besseren, aber ist immer noch auf 770 Werte beschränkt.. ab dem Wert 770 ist er also am Maximum des Parameters und bis 16383 tut sich dann nichts mehr. Dies resultiert immer noch zB bei der Delaytime dann Schritte von 13.1ms, was zumindest bei kurzen Einstellungen noch viel zu ungenau ist!

Ich versteh überhaupt nicht, wie diese 770 Werte zustande kommmen!?

gofer
05-11-2012, 04:28 AM
Tschuldige, dass ich dich mit "Increment" womöglich auf eine falsche Fährte gelockt habe. Ich hatte vermutet, dass Behringer seinen "relative control" Modus so nennt. Babylonische Sprachverwirrung, wahrscheinlich.

"Relative control" (egal, ob 1,2 oder 3 - wobei ich auch nicht weiss ob die Bezeichnungen genormt sind) sendet eigentlich immer nur zwei Nachrichten: "Wert 'rauf" und "Wert 'runter".

Bei MCU Reglern funktioniert es so: Regler senden stinknormale (7bit) CC. Wenn man langsam nach rechts dreht sendet der Regler Wert 1 Das heisst mit jedem Klick des Reglers geht immer die gleiche Meldung (CC x auf Kanal y, Wert 1) 'raus, der Empfänger interpretiert das als: "Parameter einen (kleinstmöglichen) Schritt 'rauf" - Dreht man langsam nach links geht mit jedem Klick Wert 65 'raus: "Einen Schritt 'runter".
Dreht man schneller erhöht sich der CC Wert, so dass der Empfänger weiss, dass schneller gedreht wird und deshalb grössere Einzelschritte gemacht werden sollen. Der allerschnellste Rechtsdreh sendet also theoretich Wert 63 (glaub ich, hab ich nie geschafft :D), nach links sendet die schnellstmögliche Bewegung Wert 127 (?).
Das ist was (zumindest in Reaper) "Relative 3" genannt wird. Die anderen Modes unterscheiden sich in der taktischen Verteilung der CC Werte, aber nicht im Grundprinzip. Die Werte bestimmen immer die Änderungsrichtung und Schrittweite des gesteuerten Parameters.
Ein Regler in "relative control" hat also keinen min und max Wert im Sinne von "niedrigste/höchste Parameter Einstellung" (oder anders gesagt Links- bzw Rechtsanschlag des Reglers), sondern nur im Sinne von "niedrigste und höchste Parameteränderungs-Schrittweite" (Geschwindigkeit der Drehbewegung).

14bit würde also im relative Modus heissen es gibt mehr mögliche Geschwindigkeiten, nicht eine feinere Auflösung der Schritte selbst. Die feinste Auflösung der Parameterwerte liegt ganz auf der Seite des Empfängers, "1" und "65" sollten immer die kleinstmögliche Schrittweite sein, die der gesteuerte Parameter anbietet.

Im Augenblick wundere ich mich vor allem, dass Behringer 14bit im relative mode überhaupt anbietet :eek: und wie es sein kann, dass du im relative mode gesendete MIDI Werte "von-bis" (a'la Links/Rechtsanschlag) bekommst. Ich schau mal nach einer Gebrauchsanweisung... Ausserdem ist es auch sehr seltsam, das Reaper damit in seinem "relative 3" Modus überhaupt etwas annähernd sinnvolles anfängt.

LX84
05-11-2012, 12:22 PM
14bit würde also im relative Modus heissen es gibt mehr mögliche Geschwindigkeiten, nicht eine feinere Auflösung der Schritte selbst. Die feinste Auflösung der Parameterwerte liegt ganz auf der Seite des Empfängers, "1" und "65" sollten immer die kleinstmögliche Schrittweite sein, die der gesteuerte Parameter anbietet.

Im Augenblick wundere ich mich vor allem, dass Behringer 14bit im relative mode überhaupt anbietet :eek: und wie es sein kann, dass du im relative mode gesendete MIDI Werte "von-bis" (a'la Links/Rechtsanschlag) bekommst. Ich schau mal nach einer Gebrauchsanweisung... Ausserdem ist es auch sehr seltsam, das Reaper damit in seinem "relative 3" Modus überhaupt etwas annähernd sinnvolles anfängt.

Vielen Dank für die ausführliche Erklärung!!!
Das erklärt einiges und erscheint mir logisch - trotzdem verstehe ich dann das Phänomen eben nicht, warum dann auch bei GAAANZ langsamen Drehen vom BCR2000 Regler die "Step Size" gleich bleibt (also eben zB 13.1ms beim Delay). Der "Rechtsanschlag" ist dann in diesem Sinne ja nur eine falsche Schlussfolgerung von mir. Ich kann den Drehregler natürlich weiter drehen.. mein angegebener Wert von 770 ist dann, wenn der Parameter seinen Maximalwert erreicht hat. Drehe ich den Regler weiter, erhöht sich logischerweiser der Parameter nicht mehr, aber die Werte am BCR2000-Display steigen weiter. Unlogisch ist daher eigentlich nur - wenn der Relativ-Modus so funktioniert, wie du beschrieben hast - dass man im Relativ Modus am BCR2000 einen Min und Max-Wert angeben kann...

Das heißt - wenn ich das jetzt richtig interpretiere - das Problem liegt an der Reaper-internen Programmierung, dass die Step Size nicht kleiner wird!?

gofer
05-11-2012, 01:16 PM
Tatsächlich kann ich bestätigen, dass die feinste Auflösung für ReaDelay Length (time) die ich mit einem in relative 3 Modus angelernten Regler erreichen kann 13.1 ms betägt :(. Wenigstens sagt uns das, dass du die richtigen Einstellungen gewählt hast. Andere Parameter machen auch nicht die kleinstmöglichen Schritte.
Ich weiss nicht, wie normal das ist... Es gibt ja auch endlos-Drehregler, die das Drehtempo nicht umsetzen können (ich hab' so ein Ding hier). Die senden dann meistens 1 und 65, vielleicht ist das der Grund - ein blöder Kompromiss damit man sich nicht totdreht? Ich hab meinen so eingestellt, dass er immer 7 und 71 sendet, weil dass sich bei vielen Parametern wie eine goldene Mitte anfühlt - und benutz ihn eh so gut wie nie, deshalb ist mir dass nie aufgefallen.

Ist ja gemein.

Banned
05-11-2012, 05:11 PM
(Since I noticed both of you also speak english, I hope you don't mind if I continue my contribution to this discussion in English, as I have a harder time writing German than understanding it)

As you have noticed as well, REAPER's support for controlling parameters using MIDI is lacking in several aspects. Which is exactly why I'm so happy to use OSC instead, and roll my own features wherever I need them using apps such as Pd or Max. For example, to control the delay time of ReaDelay, I can use the BCR-2000 both in 14 bit absolute mode, and without applying any rescaling, I get the step size down to about 0.6 ms across the entire range (10000 ms / 16383 steps). Check out this little screencap (http://dl.dropbox.com/u/876736/Reaper/ReaDelay%5B4%5DLength%28time%29.mov) (636kB .mov). (It's pretty weird that it takes the GUI slider a 10th of the range for an increment of only 16383th, btw.)

If I want to use the relative modes on the BCR-2000, I use OSC in a similar way to handle the conversion, so I can tweak the step size/acceleration however it pleases me.

NB: a big part of getting the BCR-2000 to work well with an absolute 14-bit range, is tweaking the acceleration. I have set up the BCR-2000 encoders with acceleration values of 96 12288 12288 18432 to make sure that I can both fine tune with great accuracy, but can still get fluid movements on turning it a bit faster, and can sweep across the entire range in a single turn if I turn the encoders fast enough.

LX84
05-12-2012, 10:05 AM
Check out this little screencap (http://dl.dropbox.com/u/876736/Reaper/ReaDelay%5B4%5DLength%28time%29.mov) (636kB .mov)
damn, this looks convincing!
how do you create this headsupdisplay? can this be coded in Pd? or is this another Program or a Plugin of Reaper?

I guess i should get into the OSC-programming now...

a question left, which bothers me:
HOW do you create a Pd-Patch?
reading this thread (http://forum.cockos.com/showthread.php?t=97255), i tried your patches using Pd, and they work fine, looking at them just for a few seconds to test (feedback not working though). I thought I could just "edit" your patches in Pd and set them up for my needs, but I guess it doesn't work that way - opening a patchfile's code doesn't make any sense to me, random numbers and expressions...

Do you have a link to sources where to read about OSC in Reaper ad to create patches like yours?

Your threads&posts all sound great, but still it doesn't tell me HOW to set up something like that. (As someone postet at some point something like: I want to cook the fish, not just eat it...)

Primarily what I want to do, is setting up and "connect" each specific controller on my BCR200 to one specific parameter of Reaper and it's plugins. Including parameter feedback for the LEDs, scaling, curves, etc...)
And a graphical on screen display like in your video would be just the topping...

Banned
05-12-2012, 11:49 AM
damn, this looks convincing!
how do you create this headsupdisplay? can this be coded in Pd? or is this another Program or a Plugin of Reaper?

I guess i should get into the OSC-programming now...

a question left, which bothers me:
HOW do you create a Pd-Patch?
reading this thread (http://forum.cockos.com/showthread.php?t=97255), i tried your patches using Pd, and they work fine, looking at them just for a few seconds to test (feedback not working though). I thought I could just "edit" your patches in Pd and set them up for my needs, but I guess it doesn't work that way - opening a patchfile's code doesn't make any sense to me, random numbers and expressions...

Do you have a link to sources where to read about OSC in Reaper ad to create patches like yours?

Your threads&posts all sound great, but still it doesn't tell me HOW to set up something like that. (As someone postet at some point something like: I want to cook the fish, not just eat it...)

Primarily what I want to do, is setting up and "connect" each specific controller on my BCR200 to one specific parameter of Reaper and it's plugins. Including parameter feedback for the LEDs, scaling, curves, etc...)
And a graphical on screen display like in your video would be just the topping...
Haha, that was the idea. Guess it worked. :) I didn't even show any of the neat GUI things like color-coding feedback to indicate controller activity / data density and such, because that would have increased the size of the video file. :D And ReaEQ's delay time parameters probably need some additional rescaling to increase the resolution at the lower end as well before I'm really satisfied.

Anyway, yes, that GUI is created in Pure data as well. Not exactly the best choice for great looking GUIs at all, but functionality is my prime concern, and its availability on all major platforms for free makes Pd a good choice for sharing examples imho. As regards toppings: I can also have an iPad/iPhone lined up behind my BCR-2000 to show this sort of stuff (and add touch screen control, of course).

The patches in that link are a bit outdated, mainly because the REAPER OSC specs have changed since the earliest pre-release versions. But the general principles still apply.

You can create/edit patches right within Pure data, while running. You should press CMD+E or something similar to toggle edit mode. There are great tutorials out there on how to use Pd, just take it one step at a time and you'll manage. I'll be glad to answer some specific questions you may have, but please do realize that this forum is not the best place to discuss learning Pd. And the real challenge imho is how to design a UI using a limited number of controls (yes, the BCR-2000 has plenty, but still not enough) to do *everything* you can and may want to do, in a way that you actually like (for example: you didn't like having to use a shift modifier key, while I really want things like that to prevent accidental switching of presets, overwriting existing automation, or even toggling the solo/mute states of tracks).

To find out more about REAPER's OSC implementation, I suggest you study the default OSC config file (and again, and again ;)), and perhaps also browse through the OSC bug/FR thread from the start for more context.

LX84
05-16-2012, 12:52 PM
alright, now I'm getting into it... took me some time on google and http://puredata.info to kind of understand the idea how it works.

Still, there's no real good documentation on how to implement a MIDI controller with puredata... so maybe you can give me some hints.

Should I open a new Thread? If you and maybe somone else would help me a bit in walking through implementing the BCR2000 in Reaper via Pd, I would love to write a compact "Tutorial" or Walkthrough for beginners how to do that...

so far i use "ctlin" for the MIDI-Input in Pd, the BCR200 connected via USB (Behringer drivers), and it works. I get values from 0-127, and i can send them to UDP and pass it on to Reaper. so far so good.

now, my questions concerning your post:
I can use the BCR-2000 both in 14 bit absolute mode, and without applying any rescaling, I get the step size down to about 0.6 ms across the entire range (10000 ms / 16383 steps). Check out this little screencap (http://dl.dropbox.com/u/876736/Reaper/ReaDelay%5B4%5DLength%28time%29.mov)

1.) HOW do i get the 14bit values into Pd?? whatever mode on the BCR200 I use, I only get 128 values (using "ctlin")!

2.) How to get any feedback on the BCR2000? Do you use "ctlout"?

Banned
05-18-2012, 08:26 AM
alright, now I'm getting into it... took me some time on google and http://puredata.info to kind of understand the idea how it works.

Still, there's no real good documentation on how to implement a MIDI controller with puredata... so maybe you can give me some hints.

Should I open a new Thread? If you and maybe somone else would help me a bit in walking through implementing the BCR2000 in Reaper via Pd, I would love to write a compact "Tutorial" or Walkthrough for beginners how to do that...

so far i use "ctlin" for the MIDI-Input in Pd, the BCR200 connected via USB (Behringer drivers), and it works. I get values from 0-127, and i can send them to UDP and pass it on to Reaper. so far so good.

now, my questions concerning your post:


1.) HOW do i get the 14bit values into Pd?? whatever mode on the BCR200 I use, I only get 128 values (using "ctlin")!

2.) How to get any feedback on the BCR2000? Do you use "ctlout"?
First, you may want to check out this little example of a OSC<-->MIDI patch:
I posted an example of something conceptually similar (but not involving the solo button) here: Hardware Mixermaps (http://forum.cockos.com/showthread.php?t=101627).

1) You use MSB/LSB pairs or (N)RPN, and multiple CC#s for a single parameter value. You have 32 MSB/LSB pairs per MIDI channel, 0-31/32-63, so on the BCR-2000 you will have to use more than one MIDI channel to support all encoders (since the top row supports 4 groups), and thus you also need to keep track of the MIDI channel in the Pd patch carefully.

Then you bitshift the MSB using [<< 7] before adding it with LSB to get the total value.

(Tip: you can divide the result by 129 to get back to a 0-127 scale at 14 bit resolution, i.e. with 16383 steps).

Going the other way, you can use [% 128] for the LSB, and [>> 7] for the MSB.

Be aware that if you want a single patch to accomodate both 7 and 14 bit modes, you need to think of a few little details; e.g. an operation like adding MSB/LSB should not depend on receiving a LSB that never comes when sending 7 bit values, in 7 bit mode you do not want to still use the last LSB value, etc.

2) Typically, yes. I try to use a single one for all controllers, but sometimes I just copy and paste a whole bunch and use separate ones for each CC#. And occasionally I use [midiout] to combine multiple things (CC#, notes, pitchbend, SysEx, etc.).

Banned
05-18-2012, 08:50 AM
[...] Should I open a new Thread? If you and maybe somone else would help me a bit in walking through implementing the BCR2000 in Reaper via Pd, I would love to write a compact "Tutorial" or Walkthrough for beginners how to do that [...]
Well, it's more like implementing REAPER's OSC supported features in the BCR-2000. And that's more of a UI design task than doing the technical conversion from OSC (on REAPER's end) to MIDI (on the controller end). The UI design part is very subjective, and apart from SysEx and the specific LED ring modes, I don't see much technical issues that do not apply to other generic MIDI controllers as well.

But indeed, let's open another thread (if we're gonna continue in English anyway :p), and try to illustrate some common problems and solutions for this type of thing. My UI will probably be much different from yours, even though we both use the same controller with the same DAW, but I figure we probably share much of the same technical problems and solutions. And you still have a 'fresh' perspective, which is very useful to see what the most important stumbling blocks are. Which in turn seems quite essential for making a good tutorial. I've been planning to make a few simple ones myself, but to me this aspect probably is the most difficult one, as I have lost that 'fresh' perspective. While I'm certainly no expert at using Pd, I've been using it and similar tools like Max/MSP for some years already, so I'm already familiar and pretty comfortable with it.

So yeah, it would be great to join forces on some effort to make a tutorial on this forum. Let's do it. :)