need help: change midiCC in other midiCC using some buttons and a LCD display??

3 posts in this topic

Hi there,

I've been building a midi-device and it sends midimessages on predefined midiCC... now I want to be able to 'quickly' and easily map these midiCC to other midiCC..

I've already build the whole midi-device and I want to add just a couple of buttons/knobs and a LCD display to be able to do this and I don't have that much space left anymore.. Does anyone know of a solution for my problem?

I've got 6 analoge sensors, which are being read and send over 2 different midiCC (for example, the first two used midiCC are 48 and 49) The first one is LSB (value from 0-7, which I will have to change later on because it should be scaled into the 0-127 range ) and the second one MSB (for finetuning: every time the MSB reaches 127, it changes back to 0 and the LSB value goes one step further). This made it possible for me to have a precision of 1024 steps for the analoge signals.. (send to my nord modular G2, controlling two knobs which will be summed up..)

so I've got 6 pairs of midiCC which should be remapped: 48&49, 50&51, 52&53, 54&55, 56&57 and 58&59

it would be even better if the device could sum up these incoming pairs and change it into 1 midiCC with a 1024 precision (I know the encoders of my ReMOTE ZeRO SL can send midi of 16384 steps on one midiCC)

if somebody could help me out with this, it would be great!


Share this post

Link to post
Share on other sites

Welcome aboard sir',

Assuming you've thoroughly read the forum, wiki, and sites, What are your questions specifically?

BTW: MIDI CC's cannot send anything greater than 7 bit depth. Even on your SL. It's just not possible, a CC is a 7 bit variable.

Share this post

Link to post
Share on other sites

Yes. Absolutely. All CCs are 7 bit.

In fact, you can't send a data byte higher than 0x7F at all using MIDI, as it will be interprested as a new status byte. -Also, some systems could spaz if they get a new status byte before the data bytes they were expecting.

However, the GM spec does allow for paired coarse and fine CCs.


[tt]0 Bank Select (coarse)        |  32 Bank Select (fine)

1 Modulation Wheel (coarse)  |  33 Modulation Wheel (fine)

2 Breath controller (coarse)  |  34 Breath controller (fine)

4 Foot Pedal (coarse)        |  36 Foot Pedal (fine)

5 Portamento Time (coarse)    |  37 Portamento Time (fine)

6 Data Entry (coarse)        |  38 Data Entry (fine)

7 Volume (coarse)            |  39 Volume (fine)

8 Balance (coarse)            |  40 Balance (fine)

10 Pan position (coarse)      |  42 Pan position (fine)

11 Expression (coarse)        |  43 Expression (fine)

12 Effect Control 1 (coarse)  |  44 Effect Control 1 (fine)

13 Effect Control 2 (coarse)  |  45 Effect Control 2 (fine)


This is of course, only relevant if following the original GM Spec, which is *largely* irrelevant these days, since midi is used less and less as a means of sharing compositions... (ie, why bother posting a midi file on a bulletin board, when you can just put an audio file up on myspace, etc for all to hear?... You could do this coarse/fine thing on any pair of CCs, so long as your recieving device accepts what it gets.

Now, the 1024 steps thing sounds like a limitation of the ADC on your knob-box. Most PICs (including the PIC currently used in MIDIBox) have 10-bit ADCs. You can of course scale these values up in a MIDIBox, and you can get a wider range of values (up to 0-16383 if using 2 CCs for 14-bit mode, as you described), but don't expect to get any greater number of values. Unless you apply some sort of interpolation, you'll still have 1024 steps, it's just that these 1024 steps will be spaced over the range 0-16383.

So... yeah. uhm, what was the question?

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now