I'm seeking help from Sysex masters, ninjas, Jedis, and Sysex Gods.
In need help interpreting the Yamaha FB01 Sysex messages.
I've been reading the manual and an article that was published in the 80's in E.G. called "Secrets of the Yamaha FB01." http://llamamusic.com/fb01/Secrets_Of_T ... n-1989.pdf
Just to mention, I do understand Hexadecimal, Binary, and very basic Sysex.
However, I'm no Sysex ninja. Hence, my cry for help.
In the article the writer provided some examples to study so as to better understand the very confusing manual. And yes, I agree it's very confusing. Or, at lest to me. http://www.cyborgstudio.com/synthmp3s/y ... manual.pdf

So far I understand that 240 is the start of the sysex.
67 is the Yamaha ID.
247 is the end of the sysex message.

In example 1, I do understand how 8 is the parameter that is to be changed and that 100 is the data that parameter is to receive. I don't understand how the rest of the data is acquired or what was referenced in the manual or the article to get that data. Any help would be much appreciated. Thanks.

Last edited by noisekrux on Mon Feb 27, 2017 3:16 pm, edited 1 time in total.

Thanks for the reply. In reference to the chart, how did you get the values for sub-status/Midi channel, parameter group, Bank, Ram 1, voice, and, number 48? I understand that those values are what's needed but how did you conclude those values? (From what parts of manual?)

Please correct me if I’m wrong or if there is an easier way.
In order to get the correct value in hexadecimal for the midi channel I want to work with, I figure I could do one of two things. Starting out in decimal, first determine what midi channel I want to use, add 15 to that number, and convert the result to hexadecimal for the correct value of sysex message in this case. So in hexadecimal, 10 ~ 1F are the midi channel values to use for midi channel 1 ~ 16. Please correct me if this is wrong. The second way I figure is too verbose to explain, I’ll skip that and spare you.

I want to work with midi channel 5
In decimal,
15 + 5 + 20
Now convert 20 to Hexadecimal
20 is $14 or 14h
Thus, “Sub-status/Midi Channel 5” for this example.
Please correct me if I’m wrong.

In reference to the Parameter Change by MIDI channel (pg.48 manual)

I don’t understand how the bank/voice bank is set to 04h. I thought there was an offset per pg.48

Parameter # = offset number of voice data + $40

Thus, shouldn’t the parameter be (in hex) 04 + 40 = 44 ?

Any help to clarify why it's 04 and not 40 would be much appreciate.

Also, just to clarify for my novice experience in the matter, is this sysex message simply telling the FB01 to select/switch to the voice bank in RAM/ROM of “what ever number/value is correct/desired” (i.e. 0~6 or 1~7) that is in 1~48?

Sorry to make this long. Brevity has never been my strong point.
In reference to this next picture/message;
I think I’m comfortable with the message up till Algorithm & Feedback and how it is derived.
But,if anyone can help me understand this message, I’d really appreciate it. It would help me out so much.

My question is, why and how does low data or algorithm in this case get the value 08h and data high or feedback in this case get the value 03h? How am I to know what range of values can be used in this part of the message?

I know that the FB01 has 8 different algorithms that the oscillators can be used in but that aside, if I didn’t know just that outright how would I know the range of values that Algorithm can handle?

Can you manually change the OSC's/algo/feedback from the FB01? I've never used one and by the looks of it has a pretty limited interface. If you can and it has midi out then it might send the message out when you change them and you can intercept it with something like Bomes SendSX, or perhaps whatever you are using to send codes to the FB01. That is what I use and do for my RS7000 to capture and see the complex codes on my computer or I'll record back in to itself via midi out->in loop while changing strange system exclusive parms and see them in the sequencer's track event edit mode, then I'll make changes to the codes and send back or not if already in the RS just make the change on it, but that requires a sequencer and I don't think the FB01 has one so whatever you are using to send codes to the FB01 you might be able to record and see what the FB01 sent to it. Anyhow, FB01 charts you posted look pretty sucky, the RS7000's manual has a pretty decent sysex and midi implementation charts in it, it may be worth it for you to take a look at it or perhaps another piece of newer Yam gear with better midi documentation. It may look alien just looking at them but once I capture the code I can look it up in the tables and it makes sense, however it is hard to enter codes using just the charts and tables alone even with good documentation, but it can be doable and is slow going, so much easier usually, if can, to first capture the codes.

I'm going to have to mull over this one too. Sonus, thanks so much for your time. Your a great help.

Feb25th.
I just wanted to post a quick update about my progress. I've been studying the replies and studying the manual.
I think I'm able to understand a lot more now. There is still a lot of material that I don't understand and I'm reviewing that as much as possible. I will continue to study and ask a few more questions.

(In Hex)
So, far I understand F0 42 10 15 and 04 but I seem to get lost after that.
04 in this example is the parameter that can be used of the twenty-four different parameters from $00 ~ $17 per the manual page 48 in the section Parameter Change by MIDI Channel (Table 1). But what exactly is the 03 portion of the sysex message telling the FB01? (This is where I get lost it.)

Thanks Sonus, Sorry for the redundant question.
That being said I think I have the information that I was looking for to keep me going forward with this. Once again I really appreciate your time and replies, I'm grateful to you for all your help.