jjonas Posted March 10, 2015 Report Share Posted March 10, 2015 Hi, I'm programming an Arduino-based five-encoder, five-button matrix controller, inspired by Waldorf Blofeld's control surface and to be used with a DSI Tetra (the control surface of which is kind of awkward), to control 95 parameters. Tetra has two layers per patch (A and B), and the parameters of both layers have their own NRPNs. So far I've succeeded in sending the right NRPNs for layer A parameters (which go up to number 119), but I haven't managed to send ones to edit layer B parameters (beginning from number 200). I might not understand MIDI well enough on this level just yet, so I thought I'll ask here first. Here's what I'm sending for layer A at the moment (and what works): MIDI.sendControlChange(99, NRPN_MSB, TETRA_CH); // CC, value, channel MIDI.sendControlChange(98, NRPN_LSB, TETRA_CH); // CC, value, channel MIDI.sendControlChange(CC, 1, TETRA_CH); // "CC" is either 97 or 96, to send one point decrement or increment So it's CCs 99 and 98 to choose the NRPN, and then sending either an increment or decrement command depending which way the encoder was turned. So far MSB has always been 0, and LSB has been what the Tetra manual has given as the number for each layer A parameter, and this has worked. For example, if in the above NRPN_MSB = 0 and NRPN_LSB = 33, the resulting NRPN controls VCA Envelope Attack for layer A. For layer B, the parameter number for VCA Env Attack given in the Tetra manual is 233, but I haven't managed to send anything that would control a single parameter for layer B. So what I want to ask is: if I wanted to control parameter 233, what are the correct MSB and LSB (in decimals)? I intend this as a general MIDI (no pun intended) related question, but in case someone wants to look at Tetra's parameter list, here's the link to the manual (beginning from p. 52). Quote Link to comment Share on other sites More sharing options...
CJ55 Posted March 11, 2015 Report Share Posted March 11, 2015 (edited) You have 7bit for MSB and 7bit for LSB. For values up to 127 you only need the LSB (binary: 1111111) 233 in binary is 11101001 MSB would be 0000001 (decimal: 1) LSB would be 1101001 ( decimal: 105) Edited March 11, 2015 by CJ55 Quote Link to comment Share on other sites More sharing options...
jjonas Posted March 11, 2015 Author Report Share Posted March 11, 2015 Hi, thanks for the answer, now I got it working! I also found this useful conversion tool, I'll put the link here should anyone else ever need one. Quote Link to comment Share on other sites More sharing options...
jjonas Posted March 13, 2015 Author Report Share Posted March 13, 2015 In case someone's interested, I uploaded the (now fully functioning, as far as I can tell) code on the DSI forum and started a thread there. You need to register in order to read the forum. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.