menu

changing how notes sound


control events are sent along midi just like note events.

Let's say you pick an electronic piano sound and use the pitchbend wheel. Over midi, you'll see events something like:
 Time      Chan Message   Value
 0001.1.001   1 program   4
 0001.1.002   1 noteDown  4c 100
 0001.1.030   1 pitchBend 65
 0001.1.060   1 pitchbend 67
 0001.1.090   1 pitchbend 100
 0001.1.120   1 pitchbend 127
 0001.2.020   1 pitchbend 80
 0001.1.050   1 pitchbend 64
 0001.1.080   1 noteUp    4c 64
channel
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
SoftPedal
SustenutoPedal
LegatoPedal
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

...IT'S A BIG MESS :)

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, those are just a lame grouping of control numbers :/


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: Pan) 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, PianoCheetah tries to organize them as named
Input controls
Output controls


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.
buttons
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).
pedals
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.
sliders/wheels/knobs/ribbons
These usually just send values from 0..127
Sometimes they spring back to 0. Sometime they stay put.
benders
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.


such a mess! :)


► next     ◤ home