For discussion about setting up your studio and advice on the gear and equipment within it.
User avatar
By djru5h Sun Aug 03, 2014 7:41 am
Greetings! Firstly let me say I own an MPC Studio and it is working great with no issues. I am, however, currently having a non MPC related issue with my rig and I am seriously hoping someone on this forum can help me out as NO ONE on the official forums for my other gear seems to be. :Sigh: Also I am a total noob when it comes to advanced MIDI programming. I have been making beats for many years but never really saw the need to do any elaborate PC's or CC programming in my compositions. Until now that is. LOL! Ok well here goes....

I recently acquired a bcr2000 and I would like to use it to control my Korg TR-Rack.. Unfortunately, like i mentioned earlier I am an advanced MIDI noob and have no idea how to effectively approach this. I have looked at the midi implementation chart (which can be seen HERE for reference) that came with the tr-rack but the parameters that I would like to control (ie. Oscillator EG - A,S,D, & R [located page 7 in the pdf]) are represented in what the MIDI Implementation chart calls 'Param No' (ie. 00, 02) and not CC# (ie. CC20).. And that is where I am stuck... I do not know where to put the data from the chart into the bcr2000 or what format it needs to be in. I'm sure the info I need is broken down in the Implementation chart I just am clueless as to what exactly I am reading.. I went through Electronics training many years ago in the Air Force and these numbers appear to be hex but beyond that I am finding this chart to be quite confusing. would anyone be able to help me accomplish this?


Sidenote... I have installed BC Manager as I understand it is a helpful tool when configuring the BCR. I even went so far as erasing the settings and successfully reprogramming the encoders and buttons on the BCR. The unit itself is working wonderfully so far with Studio One. I am getting familiar with the process(es).. That being said I still have no idea how to get the syx data from my synth to dump to BC Manager and then to my BCR.. i see so many syx files on the net but none for my synth so i guess I have to do it myself. Hmmmm I guess it would help if I told you how it is all set up.. MIDI connections are as follows:

Vestax VCI-380 -- using as audio interface (has internal MIDI I/O but is unused in this scenario) :)
MPC Studio -- used only in plugin mode with DAW :)
E-MU Xboard49 -- my MIDI Keyboard (USB MIDI I/O connection) :)
Faderport -- control surface for automation/ mixing in Studio One 2 :)
Behringer BCR2000 -- Midi Controller (USB MIDI I/O and physical MIDI In/OutA handshake with KORG TR-RACK) :hmmm:
Korg TR-Rack -- External Synth (physical MIDI I/O handshake with BCR2000) :hmmm:

My apologies for this IMO complicated question and my noobish approach. Thanks in advance for any help you guys can offer me with this. It is greatly appreciated.. Happy Beat Making!!

DJ Ru5h
User avatar
By bliprock Tue Aug 05, 2014 2:40 am
Im not a Ren user, but do use midi a bit with my MPC.

OK looks like your Triton uses System Exclusive messages. Sometimes you can get lucky and just arm the sequencer in your Ren and just use the triton and watch the midi monitor to see what is put out. Some midi controllers can just see that and assign.

Hmm, sys ex data files are used for a lot of things, what are you trying to do with it here? You do not need to use sys ex to program the MSB LSB messages at all, and is used to usually save patches ect. So maybe if you can find a sys ex file for your controller but that needs to be for the triton, and I you will have to be very lucky to score that as someone will have to have made it and share it. If you did then you need to play the sequencer at no more say than 90 bpm usually for another sequencer to learn it. So that is why I said just use midi monitor and capture it and try and copy that data - Or you have to learn to use sys ex.

Ok so in midi when there is not enough midi CCs or more than one parameter then there is what is called the NRPNs - Non Registered Parameter Numbers and Registered Parameter numbers. These have what is called MSB & LSB Most significant byte & least significant byte). This is what you have encountered. Now these MSB LSB also need to get a midi CC as well to enter the data needed for that NRPN. confused yet? Not strickly sys ex though, thats worse. It is but it can get a lot deeper and esoteric.
there are more links on the wiki page to help you out.
Also you have to send a check sum message in this NRPN to and its done in HEXIDECIMAL to, so you need to be able to convert your numbers back and forth between decimal and hexidecimal.
http://en.wikipedia.org/wiki/NRPN

Ok so now you should be able to get in there and from seeing midi monitor and changing the NRPNs to hexidecimal you should see that there is a few messages and it follows a format. You gotta fill in the blanks and then do what is called a check sum.

You should dounble check the controller can handle NPRNs and MSB LSB messages but I assume it does.
User avatar
By SimonInAustralia Tue Aug 05, 2014 3:30 am
From the manual, it looks like most parameters that can be controlled over MIDI use MIDI Control Change (CC) messages.

The CC messages that it can receive are listed on page 2, and the top couple of lines of page 3, of the MIDI Implementation document that you posted above.

In the table on page 2, Recognised Receive Messages, in the Second column, the number in brackets from 0-127 are the MIDI CC numbers to use.

In the TR-Rack Manual, there is more detail about the different parameters that can be controlled by MIDI CC messages, from page 22 to 26.

MIDI SysEx messages seem to be mainly used for data dumps, sending a large numbers of parameters all at once, rather than controlling individual parameters in real time.
User avatar
By bliprock Tue Aug 05, 2014 6:26 am
you read the manual Simon? I could not be arsed sorry op.
But yeah midi ccs are listed as simon says but it seems simon did not check the same paramters you are looking for and they are in fact not on that list and you will have to go MSB LSB sys ex route. I think that simon is mainly right and is saying same thing really, but as you can see those parameters do not have midi CCs (like most work stations from roland) and so you will have to learn to use sys ex.

check sum (my bad sys ex joke for the day)
User avatar
By SimonInAustralia Tue Aug 05, 2014 7:27 am
Not sure if anything in the list of SysEx dump parameters is really meant to be controlled in realtime, in the same way that CCs are used.

Would have to have another look, but I thought that most of the SysEx stuff was for full parameter dumps, sending/receiving a whole range of parameters at once, and would possibly not work well for realtime control of a single parameter?
User avatar
By bliprock Tue Aug 05, 2014 12:06 pm
SimonInAustralia wrote:Not sure if anything in the list of SysEx dump parameters is really meant to be controlled in realtime, in the same way that CCs are used.

Would have to have another look, but I thought that most of the SysEx stuff was for full parameter dumps, sending/receiving a whole range of parameters at once, and would possibly not work well for realtime control of a single parameter?

I was gonna talk in aussie, but I think it might be a bit too rude. (like **** yeah lady's private parts)

You are right to assume a lot of sys ex is used for things like dumps but you missed the bit about MSB LSB, and that is very common for a lot of synths. Especially bloody roland synths, its like they are total sadists sometimes I swear. Also the amount of parameters in say a Roland Fantom synth is way too many for just CCs, so they use a lot of sys ex to control in real time. Mainly the less used things, from patch changes, tunings, choosing midi parameters ect, and that is only cos it can play 128 voices over 16 patches each with 4 voices plus LFOs and the like. the parameters are toooooo damn high!

Here is an example I do a lot and that is the good old microkorg ARP on/off message. you would it might be a CC but in fact it is sys ex kinda as well. here is the message to turn it on

CC:99 NRPRN MSB 0
CC: 90 NRPN LSB 2
CC: 6 DATA ENTRY 127

Seems like just CCs but the MSB LSB packets are really sys ex, but its not full sys ex. I do not have an example of the top of my head though sorry but I can explain a little.

Just hit insert in the step sequencer window. Now select exclusive and you then high light the System exclusive message in the sequencer window and hit WINDOW button which will be light up.

IF you do this you will see that the sys ex separate packets, in hexidecimal, and also you will note that there is a check sum function supplied. That is dope, thanks JJ, but yeah you can try enter the packets as per manual and might be able to see how the packets are separated. You can look it up on wiki and there are a few websites that explain it in more depth of course. Oh and you will slowly learn, its not easy, but just remember its in hexidecimal, its checksum and how the packets are arranged to be sent and received. Also the first packet for instance is just manufacture ID, and the rest is usually written in small text in the back as you found OP. Its all quite logical, but a pain.

We probably scared him off SimonInAustralia. No one should have to use sys ex and can understand if people just get the shits and pack it in, get it that was my bad sys ex joke for today. :roll:
User avatar
By SimonInAustralia Tue Aug 05, 2014 12:19 pm
bliprock wrote:I was gonna talk in aussie, but I think it might be a bit too rude. (like **** yeah lady's private parts)

:lol: Not too rude for me, I speak aussie fluently, and regularly! :smoker:

bliprock wrote:Also the amount of parameters in say a Roland Fantom synth is way too many for just CCs, so they use a lot of sys ex to control in real time. Mainly the less used things, from patch changes, tunings, choosing midi parameters ect,

Yes, that is what I am getting at, not sure full SysEx strings work well for realtime single parameter control, due to the additional data required for each increment with a full SysEx string vs CCs.

bliprock wrote:Here is an example I do a lot and that is the good old microkorg ARP on/off message. you would it might be a CC but in fact it is sys ex kinda as well. here is the message to turn it on

CC:99 NRPRN MSB 0
CC: 90 NRPN LSB 2
CC: 6 DATA ENTRY 127

Seems like just CCs but the MSB LSB packets are really sys ex, but its not full sys ex. I do not have an example of the top of my head though sorry but I can explain a little.

Yep, multiple CCs used together for NRPNs and RPNs, three times the MIDI data for each increment, in your example, compared to a single CC.

OK for an arp on/off, possibly not the best for sweeping a filter in realtime, with multiple parameter changes, quickly, one after the other, for example.

But that is pretty much just my own theory, I haven't messed with SysEx for realtime single parameter control very much at all.
User avatar
By djru5h Tue Aug 05, 2014 5:15 pm
Thank you all for your informative replies.. I have been reading the MIDI Implementation for the TR-Rack (Trinity, not Triton) over and over and over and over (oh yeah, AND OVER!) since I started this post and I have indeed began to see how things are laid out. NOW I am somewhat stuck at the part where I have to 'figure' out what the MSB and LSB are for the parameter that I would like to change. :hmmm: Interesting note for those who have not already figured this out: [From page 3, section 2-2-3 of TR-Rack MIDI Implementation chart] A Function of 41 in the 5th byte of sysex command represents 'Parameter Change' and can only be accomplished in Combi/Program Mode or their respective edit modes. This is sad news for me as that means I can NOT perform any parameter changes for the most part since the majority of my workflow is in Multi mode. The good news is that the parameters CAN indeed be changed by my BCR2000 and it will streamline the sound design process for me (a lot). I'm surprised they don't offer courses in this particular subject.. I know you can learn it in audio engineering classes etc but for people like me who only need this particular knowledge it would be a blessing to be able to attend a detailed class on MIDI (even if it's only an online course) and all it's glory. Regarding the suggestion to run my commands through the sequencer in order to get the MIDI code, the TR-Rack has no knobs on the panel. Only 14 buttons, 6 of which are used for parameter editing. when I am in program edit mode pressing these buttons and thus performing the parameter change doesn't generate any MIDI data. In this case I edited <Amp Level> on p2 in the prog edit menu. The values look like this at the moment (+02 +00). I have an idea but i am not sure exactly where this parameter is represented on the MIDI chart since it has 2 separate values. I changed the first one from +00 to +02 but no MIDI data was generated for that change. Any other suggestions as to how I might be able to obtain this data? Otherwise I am going to have to do a lot of math that I haven't had to do in almost 15 years. Hopefully this will all come together soon and I can get back to creating.... Thanks again for all your help!! :worthy:
User avatar
By bliprock Wed Aug 06, 2014 2:19 am
yeah I think a midi course would have to be a few weeks long. Send in your money now :lol:
Cool to see your getting into it there djru5h. I suggest software or scientific calculator so you can translate decimal into and from hexidecimal. I will try and give you an answer but first......

to SimonInAustralia, she will be right lady's private parts, **** what are ya? Yeah you are right to assume that a lot of midi messages can be problematic, but in practice, if done right, it works fine. Depends more on the machines to, but you can swamp any machine with too much data. You will also note that the system exclusive has two types really, or try to address this with Universal Non-realtime System Exclusive Message. These do things that are not used much and you expect a delay, like change the general midi on and off, but then everything else is usually Universal Realtime System Exclusive.


In the Universal Realtime Sys Ex the general go is that a lot of common ones have there own string of sys ex, but when you go deeper, it has the ability to send a lot of data to change something. I am told about 20ms between those as they are the biggest messages. These totally depend on the synth and when it gets to this level even I have a bit of a headache. Check out this example of the sysex message

❍Data set 1
Status Data type
F0H F0H 41H dev 00H 6BH 12H aaH bbH ccH ddH eeH DT1 (12H)
Data byte Status 41H, dev, 00H, 6BH, 12H, aaH, bbH, F7H ccH, ddH, eeH, ... ffH, sum
Explanation
Exclusive status
ID number (Roland)
Device ID (dev: 00H - 1FH, 7FH) Model ID #1 (Fantom-XR) Model ID #2 (Fantom-XR) Command ID (DT1)
Address MSB: Address: Address: Address LSB: Data:
upper byte of the starting address of the data to be sent
upper middle byte of the starting address of the data to be sent
lower middle byte of the starting address of the data to be sent
lower byte of the starting address of the data to be sent.
the actual data to be sent. Multiple bytes of data are transmitted in order starting from the address.
::
ffH Data
sum Checksum
F7H EOX (End Of Exclusive)

its not formatted right, but this message is saying hi, i have two lots of data to go here thanks. And others call for data, and actually get status messages to ask the machine what is the status of a parameter. When we get to this type of sys ex, you will have more of the MSB LSB called Address MSB Address LSB plus data as well so in that string you have to know the offset address to.

so yeah, I am actually looking to by a midi controller like yours ru5h, and read with interest about how you have to be in that different mode. You are halfway there, and sorry you can not transmit the data as you enter it. I have to say that some machines need you to turn on the midi transmit and so look to see if that can be enabled at all. Yeah you need to go from hexidecimal to decimal and a calculator helps for this. just enter the number and change modes and see the result.
User avatar
By djru5h Thu Aug 07, 2014 6:16 pm
bliprock wrote:so yeah, I am actually looking to by a midi controller like yours ru5h, and read with interest about how you have to be in that different mode. You are halfway there, and sorry you can not transmit the data as you enter it. I have to say that some machines need you to turn on the midi transmit and so look to see if that can be enabled at all. Yeah you need to go from hexidecimal to decimal and a calculator helps for this. just enter the number and change modes and see the result.


thanks for the helpful info fam! Though i cannot make the edits i would like to make while I'm in Multi mode the BCR2000 can indeed edit the sounds while the TR-Rack is in program edit mode, which is crucial for sound design and makes it LOADS easier execute. I have not actually accomplished this yet but according to the implementation chart it is achievable so all hope is not lost.. :smoker:

Like I mentioned earlier in the thread, my major hurdle is the math with all these variables and conversions etc. I'm a music geek not a math geek :wink: .. to be fair I havent been able to even look into it for the past 2 days for real due to work and rest. I have not been having much luck integrating my TR-Rack with my system other than just a simple midi connection to my mpc.. I would like to at least be able to visually tweak my params either in software like MQ11 (which is my 1st choice but it is very erratic for me) or via external MIDI controller like the BCR2000.. I have other controllers with assignable rotary encoders also (Vestax VCI-380 & EMU XBoard49) but the behringer BCR2000 is the most versatile MIDI unit I have at the moment. Thanks again for your help and if you happen to run across any info on the subject that you feel may help me out please don't hesitate to post it here or pm me...
User avatar
By djru5h Fri Aug 08, 2014 1:17 am
This is where I am currently stuck:

Image

The table on the top page is dealing in bits which in this case (judging from the # of placeholders) would be a binary figure. This is where things get confusing for me.

also:
bliprock wrote:Check out this example of the sysex message

❍Data set 1
Status Data type
F0H F0H 41H dev 00H 6BH 12H aaH bbH ccH ddH eeH DT1 (12H)
Data byte Status 41H, dev, 00H, 6BH, 12H, aaH, bbH, F7H ccH, ddH, eeH, ... ffH, sum
Explanation
Exclusive status
ID number (Roland)
Device ID (dev: 00H - 1FH, 7FH) Model ID #1 (Fantom-XR) Model ID #2 (Fantom-XR) Command ID (DT1)
Address MSB: Address: Address: Address LSB: Data:
upper byte of the starting address of the data to be sent
upper middle byte of the starting address of the data to be sent
lower middle byte of the starting address of the data to be sent
lower byte of the starting address of the data to be sent.
the actual data to be sent. Multiple bytes of data are transmitted in order starting from the address.
::
ffH Data
sum Checksum
F7H EOX (End Of Exclusive)


Thank you for posting and explaining the sysex from your setup. does 'H' signify that the figures are in hex format? I do not see H when i transmit midi... just F0 42 1F... etc.

I have not been defeated by a piece of gear yet and damnit I wont start now.. this MIDI implementation is giving me a run for my money though.. Now I know what live musicians go through ALL THE TIME... Once I get this Im gonna feel like a scholar LOL!