midi for newbs - control

"control" events are sent along midi just like note events.

Terminoligy problem here. Controller != Control. There's a midi "controller" device and a midi "control change" event. We're talking about the event here. "sound control" would be a better term.

Let's say you pick an electronic piano sound and use the pitchbend wheel.
Over midi, you'll see events something like:
 1 programChange 4   (pick elec piano sound)
 1 4c Down 100       (note event)
 1 pitchBend 65
 1 pitchbend 67
 1 pitchbend 100
 1 pitchbend 127
 1 pitchbend 80
 1 pitchbend 64
 1 4c Up 64          (note event)
you used channel 1 and the sound for it was picked with a programchange button: 4=electronic piano.
control id
a number matching the midi standard control map is what's actually sent. Not a nice little string like "programChange" or "pitchBend". But you need to think of control as a name for which control you're tweaking.
control value
usually a number from 0 to 127. This value can be interpretted as a signed number (-64 .. 0 .. 63). Or a 2 value on/off (0 = off, 64 = on (or maybe 127 = on)). In the case of ProgramChange, the 0..127 maps to one of the standard midi sounds...

What about those control IDs...?

There a bunch of different controls. And midi is actually only using a little teeny number to identify it. Unfortunately, you may need to know what that number is. And the midi standard here is terrible across different devices.

Some common controls are

 ProgramChange   assigns a new instrument (sound) to the channel
 MasterTune      tunes all channels of the sound module up or down
 Transpose       transposes the notes in a channel up or down
 PitchBend       bends the playing notes' frequency up or down
 PitchBendRange  sets how far "all the way up/down" is in halfsteps
 MasterVolume    overall volume for all channels of a device
 Volume          setting per channel usually at time=0
 Expression      offset to Volume - what a mixer would record
 MasterBalance   overall pan for all channels of the sound module
 Pan             setting per channel
 Balance         offset to Pan - what a mixer would record
 HoldPedal       sustain/damper pedal
 HoldPedal2      sustain/damper pedal #2
 ReverbAmount    reverb fx amount - maybe per channel, probably per device
 ChorusAmount    same deal for chorus fx
Hmmm, what do these do exactly...?? Pressure, ModulationWheel, BreathControl, Pedal,
Hmmm, not all sound modules respond to these... PortamentoOnOff, PortamentoTime, PortamentoTimeL, PortamentoNote, AllSoundsOff, AllControlReset, AllNotesOff, LocalControlOnOff, OmniOff, OmniOn, MonoMode, PolyMode
...and there are a lot more

Control problems

What number is it???
People identify controls by name. Midi has a very complex numbering method that breaks down controls into groups. Groups that you don't care about. If you hear terms like "registered parameter number" or "system common" or "system exclusive", well, my advice is to complain to the software author.

Is it Input or Output?

People need to know which slider on the midi controller does what on the midi sound module.

When I listed off controls up there... You'll note that some have a well defined thing they do on the sound module. (Ex: Expression) And some don't. (Ex: Pedal)

You'll also note that some identify which doodad on the keyboard sends em. (Ex: Pedal) And some don't. (Ex: Expression)

Notice a pattern here? Some controls identify a physical slider or bender or doodad on the keyboard. Some identify what happens on the sound module. Like pan, volume, etc. And it's often up to you to make sure these wierd control numbers are the right ones all the way through the midi input / sequencer / output music recording process...

How do you do this?

Well, it's just difficult. My PianoCheetah tries to organize them. But your midi sequencer may behave differently. It's just difficult.

What about the control values?

The value a control sends along depends on the type of control... There are several kinds of controls on most keyboards.
one shot:
some just send values of 64 (maybe 127) when pressed and 0 when released. toggle:
some send a 64 when pressed once, then send 0 when pressed again, and then 64 when pressed again, etc... note:
some send note ons and note offs (with or without velocities).
Some (hold pedals) send only on/off like a one shot button.
Some (expression pedals) send a value from 0..127.
Some pedals spring back to 0. Some stay where you leave em.
These usually just send values from 0..127
Sometimes they spring back to 0. Sometime they stay put.
These are like sliders, except the value they send is signed. It's sending -64 .. 0 .. +63 (which happens to map to 0-127). And they usually spring back to 0.
keyboard pressure
when you "lean" on the keyboard while playing notes, some keyboards send "keyboard pressure" also known as "channel pressure" or "mono aftertouch". A value of 0 (not pressed down) to 127 (leaning HARD on it).
note pressure
this is technically part of a note. This is a per channel per note control that does something to each individual note on the channel. What does it do? Whatever you configure the sound module to do. And that's sound module specific... It's very rare to actually find a midi keyboard capable of this.

Let's get back to that program change...