Yamaha CBX-D5 audio processor

19 posts / 0 new
Last post
adriaanhendrik
adriaanhendrik's picture
Yamaha CBX-D5 audio processor

Hello all,

I am in posession of a Yamaha CBX-D5 unit (for years allready).
Only now i want to control it via sysex with my BCF2000
Got it working now with some fiddling around and code i found on the web.
pushbuttons i can program with all the effects on/off on both channel1 and 2's monitor outs
so i can listen to audio in realtime with effects at a particular setting. Say volume set to 100..
But i cannot seem to find a working code to program the faders. to work from 0 to 127...(or 1024..)
Yamaha uses strange values for 0 =  $30,$30 and 127 = $37,$46 hex at the end of the sysex line.
I dont know how to get the code "val" values set for this continuous controller.
CBX-D5 manuals can be googled so if anyone can help me out please..
And i am happy to share my results with anyone too..:)

Regards to all

 

 

 

Mark van den Berg
Mark van den Berg's picture

Which parameter do you want to send from the BCF's faders to the CBX-D5?
You write that "Yamaha uses strange values for 0 =  $30,$30 and 127 = $37,$46 hex at the end of the sysex line", but I can't find this in the manual (CBXD5E2.pdf), so could you elaborate?

And what exactly is the problem? Don't you know the required CBX-D5 message format or don't you know how to program this on the BCF (with "val" etc.)? And in the latter case: can you give an example of a message you would like to send?

adriaanhendrik
adriaanhendrik's picture

Hi Mark,

Since yesterday i've been trying out a lot of settings and came up with a solution for the continuous issue, thanks to your great MIDI tools..:))
I understand now that i have to set the val0.6 of the LSB with a relative(binairy offset) of 48 ($30) to get it to start from that value. What confuses me now is how to let the MSB field hold the "3" value, while the bits before that change $30,..to... $37.  That way i can make values from $3030 .....$3746 in YamahaSpeak =
0-127.

Referring to the strange values for "0" and "127" look at this link where i got some of the sysex examples from
see reply #63 for the list that that guy posted
http://macos9lives.com/smforum/index.php?topic=2168.0

Sorry for the unclear message. I am a musician in the first place and electronics and software coding in the second.:)
keep up the good work,
Regards

 

Mark van den Berg
Mark van den Berg's picture

Thanks for the link, it clarifies a lot.
However, I still don't understand how 127 can be represented by "$37 $46", as the guy claims in reply 63.
In reply 60 he states "they decided to split the data byte, put the low nybble and high nybble each in their own byte, pad each with $30", but if that is so, shouldn't 127 be represented by "$37 $3F"? Either the guy is mistaken or I'm missing something.

Assuming that my interpretation is correct, I can't see a way to implement this on a fader (or encoder) on the BCF: what you would want is to add a constant and a data specifier ($30+val4.7 for the MSB, $30+val0.3 for the LSB), but the BCF doesn't allow additions like these.

One thing I'm curious about: how does the CBX-D5 respond to a SysEx message that doesn't include the offsets of $30 for both the MSB and the LSB?
So e.g.: $F0 $43 $78 $40 $00 $00 $0C $00 $02 val4.7 val0.3 $F7
This may be worth a try: if you're lucky, the CBX-D5 ignores (technically: masks off) the upper nibbles of the MSB and LSB. But obviously this won't work if (as I suspect) the CBX-D5 subtracts $30 from both the MSB and the LSB.

Mark.

adriaanhendrik
adriaanhendrik's picture

No that example does not work for the CBX-D5. Tried that too..:(
I have a workaround for this by programming 5 rotary controllers like this for sending to the send1 function:
Although it takes up too much real estate on the BCF2000 it kinda works..:(
So eg:

$F0 $43 $78 $40 $00 $ 00 $ $10 $00 $02 $30 val0.6 $F7
$F0 $43 $78 $40 $00 $ 00 $ $10 $00 $02 $31 val0.6 $F7
$F0 $43 $78 $40 $00 $ 00 $ $10 $00 $02 $32 val0.6 $F7
$F0 $43 $78 $40 $00 $ 00 $ $10 $00 $02 $34 val0.6 $F7
$F0 $43 $78 $40 $00 $ 00 $ $10 $00 $02 $36 val0.6 $F7

The last 2 lines I incremented 2 values up to use 5 knobs instead of 7

Still it can be done look at this link:

https://www.youtube.com/watch?v=nuu1oxEcZuE

adriaanhendrik
adriaanhendrik's picture

I forgot to say that for each of the 5 controllers, the standard value should be:

Control Change
Relative (binairy offset)
Value1 =  48

Value270

adriaanhendrik
adriaanhendrik's picture

IThis one works with a fader it controls 7 steps of the MSB instead of 16 steps of the LSB..!
in my former post

Control Change
Relative (binairy offset)
Value1 =  48

Value2 =  55

$F0 $43 $78 $40 $00 $ 00 $ $10 $00 $02 val0.6  $46 $F7

It is a bit coarse, but if i like to control with more precision I use the rotary controller above the fader with the settings in my former post, choosing wich offset i like the best for that function. So for controlling the send1 from MSB $30 and LSB $30 to $46 I get the first dB's off the effect. I can live with that.

So now I have a lot of work ahead to find out all the Nooks & Crannies of this wonderful CBX-D5 machine and programming them in the BCF2000's controls. I'll keep you informed and when I am ready i'll mail my ".bcf" file to you. It may be useful for all those that own such a box and preventing it to be sent to the bin..:(
Nice for the enviroment toosmiley

I also plan to program an Arduino Uno, with analog Danner faders to build a controller dedicated for this machine. That way i can program the MIDI code more specifically (with if {} and else {} codes) fit for the unusual sysex scheme used by Yamaha, for the CBX-D5's settings.

Thank you Mark for helping mecool

 

Mark van den Berg
Mark van den Berg's picture

Good that you've managed to make things work (more or less)!

Not that it's very relevant, but I'm afraid I still don't understand how the "actual" range from 0 to 127 is represented in the CBX-D5's LSB and MSB parameters. In one of your earlier posts you talked about an LSB range of 48-70 ($30-$46), but that's 22 steps rather than the 16 you're talking about here.

By the way: instead of val0.6 you can simply use val. They are totally equivalent (see BC MIDI Implementation.pdf, section 14.6.1), so the only situation where val0.6 is conceptually more appropriate is in conjunction with val7.13, which isn't the case here.

Mark.

adriaanhendrik
adriaanhendrik's picture

I miscalculated the value because i counted decimal instead of Hexadecimal, of course  22 steps. wink
e.g. for effect presets I can use the LSB $46 value as a max  in the rotary controller. If I go to $37 nothing happens. So I have to jump to $31 $00 to go to preset 23 
Following that scheme, I need 4 controllers ( $30 -- $33 )  to get to preset 81 and that has proven to be correct. But when you think that, to get to the maximum amount of 127 you might need max 5 controllers..
Strangely 7 controllers ( $37 $46 ) are needed for that..!
Beats me. But I have never been a good calculator. I am more in the trial and error camp when it comes to these mathematical problems..

Thank you for pointing out my mistake with regard to the "val" setting.
Your program is really great for programming the BCF2000. I only occasionally get a strange fault when i am trying to edit a Custom output field when there is someting stored in the  clipboard.
In the Layout window I can store something in the clipboard but when I go to the edit encoder ( double click )  without pasting the clipboard in the Layout window I get a fault when storing or pasting the clipboard again in that edit window. I'll try to make a screenshot when that happens again. Maybe only my Mac mini does this, so do not worry about it too much.
I'll go on with my CBX-D5 implementation work now and keep you informed...

 

 

Mark van den Berg
Mark van den Berg's picture

When you say "in the layout window I can store something in the clipboard", which operation exactly do you mean?
The thing is: BC Manager doesn't just use the operating system's text clipboard, but also many private clipboards, namely for its data structures (presets, buttons, encoders, etc.). (All these clipboards work completely independently from one another.)
So I can't immediately fathom what (if anything) is wrong with which clipboard.
In any case it seems unlikely that this fault would only occur on your Mac mini. It could be a bug that only occurs in the OS X version of BC Manager, but I doubt even that.
So I do worry about it a bit, and I'd be grateful if you could give an explicit step-by-step description of what you're doing, and the exact error message (if any).

Thanks!
Mark.

adriaanhendrik
adriaanhendrik's picture

Up until now, the fault did not occur again ( after hours of coding ), so I'll watch out for the "bug" from now on.
Could it be that MIDI Tools is also running in the background and I leave the "MIDI System exclusive Messages" window in Record mode.. Occasionally it tells me that it's buffers are out of range, but that to me is normal when I move the faders and knobs around. By the way I only work with BCManager in USB mode and switch back to MIDI to try out the CBX-D5 after writing to the BCF2000.
I am now in the process of trying to implement the DEQ function of the CBX-D5 and boy that's a hard one.
From the CBX-D5 manual I can see which values to use but I get confused as to where to place the "val" in the sysex string. I did try a lot of ways but no success so far
The Freq. Gain and Q fields are explained in Add-25 
If you could take a look at them, would you please give me a clue as to interpret that info.
Many regards in advance..yes

Ad
 

 

 

 

Mark van den Berg
Mark van den Berg's picture

"Could it be that MIDI Tools is also running in the background and I leave the "MIDI System exclusive Messages" window in Record mode."

This Record mode doesn't affect the way MIDI Tools interacts with the MIDI input devices.
What matters is whether any specific MIDI input device is enabled (opened) (via the "MIDI devices" dialog box). If a device is enabled, any MIDI data from that device will be captured (e.g. monitored in the "MIDI input meters" window).
Whether a particular MIDI input or output device can be open in more than one application simultaneously depends on its device driver. Older devices tend to be single-client, modern devices (e.g. most USB devices) are usually multi-client.
But I must admit that my knowledge of MIDI I/O driver behavior under OS X is very limited.

"Occasionally it tells me that it's buffers are out of range"

In which window is this?
If it's in the "MIDI input messages" window, this probably has to do with the "Buffer size" and "Buffer overflow protocol" settings in the "MIDI input messages options" dialog box.
If it's the "MIDI System Exclusive messages" window: that has a limit of 99999 messages.

"I am now in the process of trying to implement the DEQ function"

Not having a CBX-D5 myself, I'm afraid I can't help you with the DEQ parameters in a concrete sense. The tables in the manual look complicated indeed!
However, I can tell you how I would go about this:
I would not start with BC Manager: first I would use MIDI Tools to try to understand the required SysEx message format and parameter ranges.
From the Probe panel (available in the latest test build of MIDI Tools; see https://mountainutilities.eu/forums/sysex-viewer-iii) in the "MIDI System Exclusive messages" window I would send test messages to the device and see/hear what happens.
It's also possible to send data requests to the CBX-D5, isn't it? That would help enormously: you could then send a request from the Probe panel, then study the returned message(s) in the message grid.

Hope this helps,
Mark.

adriaanhendrik
adriaanhendrik's picture

Hi Mark,

Thank you for the reply. It sure declares a lot for me. I use a MT4 MIDI interface on the MacMini and i only monitor the CBX-D5 when testing a new BCF2000 trial preset. I better connect the MIDI Out also from the interface to probe the CBX-D5. I would like to have a MacOsX version of your latest MidiTools 1.8.1 The latest test build I downloaded, is a Windows executable.. I only have a very old Win laptop that is sloooooow..sad
That test MIDITools build would be a great help. Indeed i can follow that route to let the CBX-D5  send a sysex dump of its inner workings. I remember seeing something about a system request code in the CBX-D5 manual somewhere.
Thanks again Mark i'll keep you updated..

 

 

Mark van den Berg
Mark van den Berg's picture

Sorry for getting senile: it had completely slipped my mind that you're on OS X.
Try this: MIDI Tools 1.8.1 Alpha 8 for OS X.

adriaanhendrik
adriaanhendrik's picture

In the second sentence of my former post I meant LSB $47 instead of $37..sorry

adriaanhendrik
adriaanhendrik's picture

I got my old Win Vista laptop running with MIDI Tools now and it works really good with it.smiley
I can move around the knobs and faders while recording and it never runs out of memory like the MacOsX version tells me occasionally. (post #11) This is probably due to a MacOsX driver issue  relating to my Emagic MT4 MIDI interface. But it might be of use to you to know this is happening.
The probe field is really good for trying out sysex strings and see what they do on the CBX-D5 but I cannot seem to find a way to let it echo messages back to me. Again the CBX-D5 manual is a bit confusing for me in explaining a sysex request but I wont give up and keep you informed about this.

Regards,
Ad

 

Mark van den Berg
Mark van den Berg's picture

OK, it's good that you've been able to make the MIDI Tools 1.8.1 Alpha working on Windows: if there are any problems now with either the Windows or the OS X version, it'll be easier to determine whether the problem is with the Mac driver, the CBX-D5 or either edition of MIDI Tools.

Concerning not getting echo messages back: have you ever been able to get any MIDI messages out of the CBX-D5, to any application (MIDI Tools, BC Manager or whatever) on either OS X or Windows?
I mean: the first thing to make sure is that the MIDI connection from the CBX-D5 to the computer is working and the related input device has been enabled in MIDI Tools (and selected in the SysEx window, of course). Once you're sure that the connection itself is working, your attention can shift to the required SysEx request format.

adriaanhendrik
adriaanhendrik's picture

No I have never seen any MIDI coming from the CBX, although the MIDI IN and OUT are connected to the MT4  and both ports are enabled.. This may be due to the fact that the CBX is normally controlled via Digital Performer on the Mac and Cubase Audio 3.05 and that software only runs on a Win 95 or Win XP box. The software uses both MIDI and SCSI commands to record audio and in that situation MIDI is going both ways to the interface in order to mix audio on 4channels with DSP and DEQ.
Yesterday I found a safety copy I had made of Cubase 3.05 in my CD archive.. Lucky mecool
I am going to install XP on an old PC that i use for Ubuntu so then I might be able to use Cubase again with the software mixer inside Cubase to send MIDI sysex MIDI thru in MIDI Tools or maybe even be able to see what codes are used on the Cubase mixer screen.
Never thought that I would have to go back to XP to get things clear pfff.. cross fingers..
Thank you for the MacOsX version of the MIDITools beta. I 'll try it out on the MacMini in the coming days

Many regards,
Ad

 

IngoD
IngoD's picture

What an inspriing discussion! I am a long time owner of a CBX-D5 uniit since 1995 or so, I think. They were quite expensive those days, but hey, that's another story.

I would really like to use my CBX-D5 an effects processor using its analog connections. I already experimented with the sysex strings above, but even the manual does not give a comprehensive summary of all the commands.

Do you already have a table of working sysex strings? Is it possible to use the unit as effects processor usings its analog ins and outs or am I missing something?

Best regards,

Ingo.