Sending data back to BCR 2000 from Max/MSP

Scott Smith's icon

Hello!

I'm a long-time reader, first-time poster. I just picked up a Behringer BCR 2000 (somewhat against my better judgement). I've scoured previous posts on the BCR 2000 and they've helped me figure out how to map the controls to different aspects of my patches. However, no one has addressed how to send midi info from a patch back to the BCR.

I use a lot of presets to set parameters of a given effect. With other midi controllers (say the Oxygen 8 I used to have), you could set a parameter with a knob, but when you change the preset and then go to move the knob again, the value skips, causing the classic terrible pops or volume spikes or other generally bad sounds. With the "endless" continuous controllers on the BCR, I'd like to be able to avoid the skips by sending the current parameters out to the BCR when I change the preset. Is there a way to do this using midiout? What data would I have to send out and how would I have to package it to send it to the right knob on the controller?

Thanks!

Christopher Dobrian's icon

I don't have the BCR2000, but on the BCF2000 (which I bet works very nearly identically) you just send to the device the same controller data that you would have received from the device if it had originated there. For example, if a given knob sends data as continuous controller 8, then when you change something within Max you should send the new value out as continuous controller 8, and that will set that knob to be in the right position.

Scott Smith's icon

Thanks! I'll give this a shot.

Scott Smith's icon

Worked out great. You've gotta specify which type of data you're sending out, and I'm not totally sure why Max uses the values it does to indicate CC or note on data, but they're in the midiparse help file. See below:

{
"boxes" : [ {
"box" : {
"maxclass" : "comment",
"text" : "Defines output as Note on CH1 data",
"linecount" : 4,
"numinlets" : 1,
"fontsize" : 12.0,
"numoutlets" : 0,
"patching_rect" : [ 238.0, 92.0, 74.0, 62.0 ],
"id" : "obj-33",
"fontname" : "Arial"
}

}
, {
"box" : {
"maxclass" : "comment",
"text" : "Defines output as CC data",
"linecount" : 3,
"numinlets" : 1,
"fontsize" : 12.0,
"numoutlets" : 0,
"patching_rect" : [ 15.0, 95.0, 61.0, 48.0 ],
"id" : "obj-32",
"fontname" : "Arial"
}

}
, {
"box" : {
"maxclass" : "comment",
"text" : "CC #",
"numinlets" : 1,
"fontsize" : 12.0,
"numoutlets" : 0,
"patching_rect" : [ 40.0, 41.0, 37.0, 20.0 ],
"id" : "obj-30",
"fontname" : "Arial"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "prepend 144",
"numinlets" : 1,
"fontsize" : 12.0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 158.0, 92.0, 78.0, 20.0 ],
"id" : "obj-28",
"fontname" : "Arial"
}

}
, {
"box" : {
"maxclass" : "message",
"text" : "1",
"numinlets" : 2,
"fontsize" : 12.0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 158.0, 43.0, 32.5, 18.0 ],
"id" : "obj-26",
"fontname" : "Arial"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "prepend 176",
"numinlets" : 1,
"fontsize" : 12.0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 77.0, 93.0, 78.0, 20.0 ],
"id" : "obj-24",
"fontname" : "Arial"
}

}
, {
"box" : {
"maxclass" : "message",
"text" : "104",
"numinlets" : 2,
"fontsize" : 12.0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 77.0, 43.0, 32.5, 18.0 ],
"id" : "obj-23",
"fontname" : "Arial"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "pack 0 0",
"numinlets" : 2,
"fontsize" : 12.0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 77.0, 70.0, 56.0, 20.0 ],
"id" : "obj-18",
"fontname" : "Arial"
}

}
, {
"box" : {
"maxclass" : "slider",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 77.0, 15.0, 218.0, 22.0 ],
"id" : "obj-12"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "midiout",
"numinlets" : 1,
"fontsize" : 12.0,
"numoutlets" : 0,
"patching_rect" : [ 127.0, 140.0, 49.0, 20.0 ],
"id" : "obj-11",
"fontname" : "Arial"
}

}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-12", 0 ],
"destination" : [ "obj-23", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
, {
"patchline" : {
"source" : [ "obj-18", 0 ],
"destination" : [ "obj-24", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
, {
"patchline" : {
"source" : [ "obj-23", 0 ],
"destination" : [ "obj-18", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
, {
"patchline" : {
"source" : [ "obj-12", 0 ],
"destination" : [ "obj-18", 1 ],
"hidden" : 0,
"midpoints" : [ 86.5, 40.0, 123.5, 40.0 ]
}

}
, {
"patchline" : {
"source" : [ "obj-24", 0 ],
"destination" : [ "obj-11", 0 ],
"hidden" : 0,
"midpoints" : [ 86.5, 126.0, 136.5, 126.0 ]
}

}
, {
"patchline" : {
"source" : [ "obj-28", 0 ],
"destination" : [ "obj-11", 0 ],
"hidden" : 0,
"midpoints" : [ 167.5, 125.5, 136.5, 125.5 ]
}

}
, {
"patchline" : {
"source" : [ "obj-26", 0 ],
"destination" : [ "obj-28", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}

}
]
}