The final word on MIDI CC parameters needed (answered)

Discussions about anything analog, digital, MIDI, synth technology, techniques, theories and more.
Post Reply
part12studios
Active Member
Active Member
Posts: 435
Joined: Sat Apr 18, 2015 5:39 am

The final word on MIDI CC parameters needed (answered)

Post by part12studios » Fri Dec 16, 2016 12:23 am

Hi there,

years ago in my learning of MIDI, i dabbled with CC's using my Amiga 1200 + Tiger Cub. TIger Cub gave a generical list of CC's.. that basically look like this:

http://www.nortonmusic.com/midi_cc.html

the chart also included values.. like 0/1 or 0-127.. and values inbetween.. so in my limited understanding I assumed these were hard / fast rules.. but i'm wondering now if those were just recommendations?

Can there be 0-127 CC's each with values from 0-127?

I realize that sending 127 CC messages with ranges of that much might be more than the MIDI data path can transfer but I guess in my mind I was feeling like I may need more than only 4 CC's that support 0-127... maybe not a lot more..

That said I have used CC's like the Omni off (thanks Korg DW8000 engineers) which is a single 1 or 0.. but if I had a piece of gear that I wanted to send 0-127 on that same CC 124 channel is it possible?

I also figured this might be posssible because with the advent of a wide range of usb/midi devices like M-Audio stuff.. often these units have anywhere from 8-16 or more sliders / knobs that cover the 0-127 range.

I just wanted to understand this once and for all if it's a standard that must be followed or simply a "best practices" chart.

Thanks!
Caleb
Last edited by part12studios on Sat Jan 21, 2017 2:01 pm, edited 2 times in total.

User avatar
Tidda
Junior Member
Junior Member
Posts: 154
Joined: Sat Sep 16, 2006 5:30 pm

Re: The final word on MIDI CC parameters needed

Post by Tidda » Fri Dec 16, 2016 5:10 am

part12studios wrote:Hi there,

years ago in my learning of MIDI, i dabbled with CC's using my Amiga 1200 + Tiger Cub. TIger Cub gave a generical list of CC's.. that basically look like this:

http://www.nortonmusic.com/midi_cc.html

the chart also included values.. like 0/1 or 0-127.. and values inbetween.. so in my limited understanding I assumed these were hard / fast rules.. but i'm wondering now if those were just recommendations?
I would say 50% recommendation, 50% hard rules.
part12studios wrote: Can there be 0-127 CC's each with values from 0-127?
Yes, I have a box with 16 sliders that can send any MIDI CC message you would like. It can send CC1 with a slider without being a mod wheel, it can send CC2 without being a breath controller. I could design a soft synth that has a parameter that could react to any CC I would like.
part12studios wrote: I realize that sending 127 CC messages with ranges of that much might be more than the MIDI data path can transfer but I guess in my mind I was feeling like I may need more than only 4 CC's that support 0-127... maybe not a lot more..
You want to send 127 CC messages at the same time? That's a bit much in a musical context.
A CC message takes 3 bytes, with protocol overhead this is about 30 bits. The MIDI protocol has a speed of 31500 bits/second. That's a bit more than 1000 CC messages per second.
Sure you need more than 4 CC's, where did you get that limit?
part12studios wrote: That said I have used CC's like the Omni off (thanks Korg DW8000 engineers) which is a single 1 or 0.. but if I had a piece of gear that I wanted to send 0-127 on that same CC 124 channel is it possible?
Actually 'Omni off' CC message takes 0 as its value. There is a seperate 'Omni on' CC message that also takes 0 as value. And yes, you can use CC 124 to send data in the 0-127 range, but why would you. CC 120-127 are reserved for Channel Mode messages and most receiving devices react to that so if you only need a little bit more than 4 CCs to work with this is not the recommended choice.
part12studios wrote: I also figured this might be posssible because with the advent of a wide range of usb/midi devices like M-Audio stuff.. often these units have anywhere from 8-16 or more sliders / knobs that cover the 0-127 range.

I just wanted to understand this once and for all if it's a standard that must be followed or simply a "best practices" chart.

Thanks!
Caleb
You can do anything you like, but it's best to follow the standards otherwise things get needlessly complicated so "best practices".

There are more than 50 undefined CC's: 9,14-15,20-31. CC 32-63 are the LSB (fine control) of CC 0-31, so 41,46-47,52-63 are also undefined.
In the 64-119 range there are also some undefined ones: 85-87,89-90,102-119.
So there's plenty to work with and if that's not enough, there's also the General Purpose Controller messages
(16-19/48-51) and more. Just check the MIDI implementation charts of the equipment you use to see what's already used or what's free to use.

Tidda

part12studios
Active Member
Active Member
Posts: 435
Joined: Sat Apr 18, 2015 5:39 am

Re: The final word on MIDI CC parameters needed

Post by part12studios » Fri Dec 16, 2016 2:16 pm

Awesome thanks for the information / confirmation. The "4 CCs limit was referring to the chart I referred too that stated the "0-127" range while many others were various other values that were constricting..

I still have the book and here is the only CC info I had to go on. The reason being because the documentation i had labeled the specific ranges.. and this was before the internet we have today.. I was stationed in Korea in 1996.. and this book was all I had to go on PLUS the ART SGE Mach II which had nice MIDI CC implementation reflected this page so in my mind I took it as a rigid thing since it was the only device I had that really supported CC at the time.

Even using the CC values of things like breath for non breath.. I wasn't sure was a thing.. like maybe the hardware not supporting breath would not listen to that CC.. I didn't go too deep at the time into that stuff the 4 CC's at the time met my immediate needs so I didn't push the envelop at the time..

This is the page from my manual, looking at it after 20 years.. heh..

Image

User avatar
meatballfulton
Moderator
Moderator
Posts: 5795
Joined: Wed Apr 13, 2005 9:29 pm
Gear: Logic Pro X

Re: The final word on MIDI CC parameters needed

Post by meatballfulton » Fri Dec 16, 2016 2:41 pm

Some of those are supposed to be sacrosanct, like CC 1 for mod wheel, 7 for volume, the bank selects and sustain but just this year Korg broke that rule with the Minilogue in it's first OS. After lots of complaints, they moved the CC assignments away from those.

I'm not sure what you are really asking. There are 127 CCs and each has a range of 0-127. That is a fact. Both hardware and software devices may be designed to support any or all of them but what a given CC represents is often far from the original recommendations simply because modern synths have far more parameters. What good is having a CC for filter cutoff if you have multiple filters in your device? There are CCs for amp EG Attack, Decay and Release but not Sustain and none for other EGs or EGs with more than four stages.

Unfortunately, mfrs have chosen to ignore the correct way to add more parameters: non registered parameter numbers...NRPNs. These offer 14 bit resolution (16K vs. 128 steps) but are slower because multiple CC messages have to be sent. First you have to indicate the NRPN to control (2 CC msgs sent) then until you change that you can send new values (2 CC msgs) as much as you like. This can result in a lot of MIDI data being sent which is why mfrs who used to embrace it (Korg, Dave Smith) have pretty much bowed to user demands to use plain CCs instead.

Imagine sending two controllers (say the mod wheel and an expression pedal) using CCs: As you adjust each controller, multiple CC msgs are being sent for each until you stop adjusting the controller. Assume you move each one slowly over it's full rnage, ther will be 256 messages sent, 128 for each controller.

Doing the same thing with NRPNs means constantly switching the NRPN number (2 CC msgs every time) then 2 more CC msgs to send a new value. Since there could be up to 16K values for each, that translates into up to 64K CC msgs to send the values and up to 64K CC msgs to change the controller selection. That would 1024 times as many msgs being sent, although with much higher resolution.

So why would any mfr stick to the recommended CC numbering? Because then any one device can control any other device. My Motif XF has knobs for cutoff, resonance, amp attack, amp decay and amp release. It sends sustain pedal, volume and expression (CC #11) pedal data and has a ribbon controller and two assignable knobs that can be mapped to any CC I like. If I connect the XF up to most Roland, Korg, Yamaha synths, any General MIDI device (like home keyboards) and many softsynths I can use those controllers to control the exact same parameters on the external device.

When Korg permanently mapped CC1 (modulation amount) to noise level, CC2 (breath control) to VCO1 pitch, CC7 (volume) to VCO1 level, CC64 (sustain) to VCO1 octave, CC65 (portamento on/off) to VCO2 octave :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: it made playing it from any other MIDI keyboard difficult. Nothing like hitting the sustain pedal and having one VCO jump four octaves :pissed:
I listened to Hatfield and the North at Rainbow. They were very wonderful and they made my heart a prisoner.

part12studios
Active Member
Active Member
Posts: 435
Joined: Sat Apr 18, 2015 5:39 am

Re: The final word on MIDI CC parameters needed

Post by part12studios » Fri Dec 16, 2016 3:08 pm

"There are 127 CCs and each has a range of 0-127. That is a fact" - that is really the answer I was looking for. I totally see your point that obviously synths today have many many more options than in the past. That was a MIDI chart based on synths of the time which were simpler.

Also yes I totally agree things like volume and mod wheel are too important even today to be ignored as a standard.

Also in my earlier question, yea I wasn't saying I WANT to send 0-127 values over all 128 CC's at one time or even anything close to that, i just at the time found the chart restricting when i was experimenting because at the time the ART SGE Mach II supported a max of 8 CC's in a single patch which was very exciting to consider changing things like gain levels.. wet/dry values and such but I wanted all of them to be 0-127.. .. just understanding that the MIDI channels / ccs are not hardwired for that stuff..

but i was self taught on much of that and didn't have any mentors to ask questions so i figured out what i could and since then moved more into software / usb / plugin type midi stuff which tended to shield me from needing to think about CC's like I did with the Amiga/Tiger Cub.. now coming full circle I'm back to a more hardware based setup (G4 + Digital Performer 3 as my DAW) and so I'm looking at how to get CC values to various hardware on various channels so it was time to revisit this Chart and understand once and for all if I need to adhere to it or if I can bend / break those rules..

I know know I can, but some CC's should be treated with respect and leave alone. :)

Thanks,
Caleb

User avatar
madtheory
Supporting Member!
Supporting Member!
Posts: 5175
Joined: Mon May 01, 2006 12:45 pm
Real name: Tomas Mulcahy
Gear: Flangebeast Mk1, Plonkotron, Morovdis Arpeggiator, Maplin My First EQ, Jeff Wayne Thunderchild rack, Thermostat, Buck Owens' Moog.
Band: Minim
Location: Cork, Ireland
Contact:

Re: The final word on MIDI CC parameters needed

Post by madtheory » Fri Dec 16, 2016 3:52 pm

meatballfulton wrote:Doing the same thing with NRPNs means constantly switching the NRPN number (2 CC msgs every time) then 2 more CC msgs to send a new value. Since there could be up to 16K values for each, that translates into up to 64K CC msgs to send the values and up to 64K CC msgs to change the controller selection. That would 1024 times as many msgs being sent, although with much higher resolution.
Very well explained, I wasn't aware that NRPNs had higher resolution. WOuld MIDI over USB be able to handle this better than a normal MIDI interface? Or is it "choked" by being MIDI? That said, I never heard anyone complaining about problems using NRPNs with those Roland modules such as the M-VS1 or JV series.

User avatar
Tidda
Junior Member
Junior Member
Posts: 154
Joined: Sat Sep 16, 2006 5:30 pm

Re: The final word on MIDI CC parameters needed

Post by Tidda » Sat Dec 17, 2016 1:27 am

CC0 - CC31 also have 14 bit resolution when combined with CC32 - CC63

So instead of only being able to select 127 banks with CC0 you can select 16383 banks with both CC0 and CC32.
Same goes for mod wheel (CC1 and CC33) or Volume (CC7 and CC39)

Apart from the bank select messages this is hardly ever implemented. Who would need to control volume with a 0-16383 range anyway, 0-127 is good enough.

Tidda

part12studios
Active Member
Active Member
Posts: 435
Joined: Sat Apr 18, 2015 5:39 am

Re: The final word on MIDI CC parameters needed

Post by part12studios » Sat Dec 17, 2016 1:38 am

yea that's the next thing on my list to understand is how to access devices that have more than 128 patches.. I have a JV-1080 with all 4 card slots full and want to understand how I call on all of those hundreds of patches inside the unit. I know DP3 has patch/bank 32 or whatever it's called which should address this and probably isn't difficult if the DAW you use supports it.. though I still have questions like how i know what id's for which cards.. etc.. but that' another thread for another time.. :)

User avatar
meatballfulton
Moderator
Moderator
Posts: 5795
Joined: Wed Apr 13, 2005 9:29 pm
Gear: Logic Pro X

Re: The final word on MIDI CC parameters needed

Post by meatballfulton » Sun Dec 18, 2016 4:17 pm

The mapping of CC0-31 and CC32-63 is designed for compatibility. Devices that can only handle 7 bits read only the lower CC number, devices that send only 7 bits leave the higher CC numbers as 0 and 14 bit devices will still respond properly.

On a synth that sensd 14 bits, moving the mod wheel over the full range generates this:

CC33 1 -> 127 (note that CC1 is not sent...it's treated as 0)

CC1 1
CC33 0

CC33 1 -> 127

CC1 2
CC33 0

CC33 1 -> 127

and so on until finally:

CC1 127
CC33 0

CC33 1 -> 127

In most cases, 127 values is enough but when you read of people complaining about stepping, this is what they mean. On many analogs, controlling the filter cutoff with only 7 bits results in easily audible steps. The MIDI architects understood this, pitch bend (not a CC) has always been 14 bits for this reason. In the above example, a 7 bit receiver would ignore CC33 entirely and a 7 bit transmitter would never send CC33 (the receiver treats that as 0).

Moog allows users to specify 14 bit resolution on some of their synths...if you record slow sweeps of the cutoff knob into a sequencer and play the sequence back you can hear the difference. For fast sweeps, it seldom matters.

More unusual is the DSI Evolver (and possibly other DSI synths) where moving knobs sends sysex messages, every single control tweak may be recorded in a sequencer for playback (it also is used to synchronize parameter changes when chaining multiple Evolvers together for more voices). For ease of use a number of the parameters (but not all) are also mapped to 7 bit CCs. Internal scaling is required when a parameter has more than 128 steps. The filter for instance is programmable in 164 semitone steps, over 13 octaves and more than the MIDI note range. This is still far less than the 16,383 available steps of a Moog filter.
I listened to Hatfield and the North at Rainbow. They were very wonderful and they made my heart a prisoner.

part12studios
Active Member
Active Member
Posts: 435
Joined: Sat Apr 18, 2015 5:39 am

Re: The final word on MIDI CC parameters needed

Post by part12studios » Sun Dec 18, 2016 4:53 pm

yea the DW-8000 which I really like overall has a 32 steps for the filter.. 32 seems to be the ceiling for all of the parameters which is strange.. i mean i know it had a 88 LCD display, but heck.. make it 64.. you're still ok..

very interesting stuff about the 14bit stuff. this is all very new to me. I've always thought of CC/MIDI stricting with 128 steps max.. i'm not sure how i'd achieve 14bit values using a DAW. In my case Digital Performer 3.

Sonus
Newbie
Newbie
Posts: 58
Joined: Sun May 31, 2015 5:33 pm

Re: The final word on MIDI CC parameters needed

Post by Sonus » Sun Dec 18, 2016 6:14 pm

part12studios wrote:I have a JV-1080 with all 4 card slots full and want to understand how I call on all of those hundreds of patches inside the unit.
Image
Last edited by Sonus on Mon Dec 19, 2016 6:46 am, edited 2 times in total.

part12studios
Active Member
Active Member
Posts: 435
Joined: Sat Apr 18, 2015 5:39 am

Re: The final word on MIDI CC parameters needed

Post by part12studios » Sun Dec 18, 2016 6:26 pm

sweet, that's awesome! Exactly what I need to get familiar with.

I'm finishing up my FB-01 Audit with MIDI Quest (takes awhile auditioning 2500 patches down to the best.. and then pick 96 favorites.) then I can get it incorporate with the rest.

Post Reply