Post by JohnG on Jul 5, 2011 15:40:31 GMT
Controlling MIDI volume
Where to begin with this one I wonder?
Well let's start by saying that, in total, there are four ways of controlling the volume of a sound in a MIDI file. Yes, four! So let me deal with each of them, one by one, and descibe how they may be used. Note the use of the word "may". What I shall attempt to describe to you is how they are generally recommended to be used in the various books and manufacturers literature that I have read. That personal research has not been exhaustive so you will find people disagreeing, maybe, with what I write. What I can tell you is that it works for me and in many MIDI files that I have come across and used that I consider to have been programmed by professionals, my italics. For those techies out there again I warn that this is a simplified explanation and doesn't try to be exact.
#1. NoteVelocity. When using a MIDI keyboard (which is 'touch sensitive') or a wind controller, drum machine (pads) etc., the strength we use when playing, blowing or hitting a particular note (pad) is measured by the instrument and recorded internally or, more likely, transmitted to a computer running a sequencing program, where the MIDI note number of the note we just played is recorded, together with it's duration and with that 'note velocity' (or loudness) at the point in the music where it was played.
In sequencer terms it might look like this:
2:01:120 key 1 C#3 89 200 (taken from JazzWare sequencer)
Explanation: "2:01:120" indicates the timing point in the MIDI file (i.e. measure 2, beat 1, tick 120 (see the article on MIDI timing)); "key" indicates the playing of a note; "C#3" indicates the note C# in octave no.3 (or a specific drum sound); the "1" indicates played on MIDI channel no.1; "89 " indicates the note velocity (a number between 1 (quiet) and 127 (loud)); "200" indicates the length or duration of the note (200 ticks).
Here's a rough scale of loudness according to the sequencer I use (XGworks):
ppp=8; pp=24; p=40; mp=56; mf=72; f=88; ff=104; fff=120. i.e. a successive increment of 16 units between each setting. You don't have to stick to this, you can alter it to taste. You could have ppp=64 and fff=120 i.e.increments of 8. Why? Well some instruments played with a velocity of 8 on my sound module I cant hear at all! P.S. I hope you're all familiar with the classical way of expressing note loudness above?
Depending upon the instrument chosen for the channel, the timbe of the sound can change significantly depending on how hard the note is struck. e.g. a piano sounds different (not just louder) the more force we use to play it. As we play an instrument it is usual for this velocity to vary from note to note as we use different fingers (on a keyboard) to play each one. This is what gives the better MIDI files a human feel. A wind instrument player will blow harder or software (known as wind pressure and definitely not to be confused with the after-effects of a good curry!) A drummer will vary the hit strength, e.g. harder on the beat, less hard on the off beat etc. The same thing with guitar and string players.
So the first "volume" control is "note velocity."
#2. Expression. Very often on an instrument like a church organ (or an old Hammond organ for those of us who hark back to the sixties) we will find a pedal called a "swell pedal". Using this we can increase or decrease the volume of the sound we are playing for expressive effect. So whilst accompanying the singer the expression pedal is on a relatively low setting, then for the organ solo we turn it up. Why do we have this? Well the old organ doesn't have a touch sensitive keyboard so we need a mechanism to change the amount of air flowing through the pipes or to make a voice on a MIDI instrument that doesn't respond to velocity louder and softer. The musical term "crescendo" (get progressively louder) or "decrescendo" (get progressively softer) are the classical music terms.
In fact an electric guitarist has both method #1 and #2 as he (or she) can pluck the notes hard or softly and he also has a volume control on the instrument which he can turn up or down to add expressive effect.
In MIDI we can use it in a similar way to change the loudness of the instrument in an expressive way during a performance. How do we do that? We send a MIDI control change message using controller number 11 (CC#11). It might look in a MIDI listing like this:
5:3:182 ctl 2 11 94 again the "5:3:182" indicates the exact time in measures, beats and pulses (or ticks) that the message occurs. "ctl" indicates that it is a MIDI control message. The "2" indicates that the message is on MIDI channel 2. The "11" indicates that this control message is an expression control. And the last "94" indicates the expression volume 94 out of a possible maximum loudness of 127. It is possible to insert these messages singly from time-to-time or as a string of commands each one incrementing (or decrementing) the "expression".
Expressive controls summary
So summarising these two controls they are used artistically to vary the loudness of a sound according to artistic feeling. Usually either one or the other is used. i.e. where an instrument sound in the sound module is velocity sensitive we use that and set expression (CC11) to maximum. Where the sound is NOT velocity sensitive then use expression to vary between loud and soft according to the needs of the song the velocity can then be set to a constant of maybe 100.
However, sadly, the expression 'pedal' on a modern electronic keyboard often controls not CC11 but CC7 (channel volume). This is fine if the instrument is being played live. But, if it's just a voice within a larger MIDI file then CC7 should be re-mapped to CC11. See your keyboard operating manual for how to do this.
#3. Channel volume. Okay now that we've used velocity and expression to control how each instrument individually expresses itself, we now need to get the relative volumes between all the instruments correct and to do that we use MIDI controller #7 (CC7). I like to think of this as being like the individual channel faders on a mixer. Once set for the relative levels between all the different instruments we should be able to leave them alone. Of course we may find ourselves tweaking the levels up and down, here and there, which actually means the original expressive level wasn't loud enough or was too loud. Well, never mind, unless that is, you're a perfectionist.
I like to start (MIDI default) with all CC7s set at 100 (out of 127 maximum). Then you can pull up one channel whilst pulling another down a bit. If the drums are soft push channel 10 up to 110. I see all to many MIDI files with the volume (CC7) level pushed all the way to 127. Bad practice I'm afraid, at least to start with. The CC7 levels are usually the ones displayed if your sequencer has a mixer panel.
#4. Main volume. Now here is a control that you very rarely see used at all. The reason, I maintain, is that it requires a horrid SysEx command to implement it. We were talking about mixers just above so think of this one as the "Main Mix" or "Master Volume" i.e. the one that controls whether you blow your speakers or not. I've heard one or two complaints on this forum about getting the same level between succesive MIDI files. Usually (not always) it's too much volume on some files. So when I start tweaking a file for my own use the first thing I insert is a "main volume" SysEx with a setting of 110. Then be prepared to modify the level.
Volume controls summary
Think of these controls as the controls on a mixer, not for expression but to set the relative levels between instruments and the final output level.
As, when I run live, I like to have the sound module volume control at maximum (this ensures maximum signal-to-noise ratio) I then have to pull the volumes of most MIDI files down to avoid distortion. It's worth a try.
You'll find the main volume SysEx buried within my "MIDI set-up measure" thread. (Number 7) as well as expression and channel volume.
© John Garside, 2007.
Where to begin with this one I wonder?
Well let's start by saying that, in total, there are four ways of controlling the volume of a sound in a MIDI file. Yes, four! So let me deal with each of them, one by one, and descibe how they may be used. Note the use of the word "may". What I shall attempt to describe to you is how they are generally recommended to be used in the various books and manufacturers literature that I have read. That personal research has not been exhaustive so you will find people disagreeing, maybe, with what I write. What I can tell you is that it works for me and in many MIDI files that I have come across and used that I consider to have been programmed by professionals, my italics. For those techies out there again I warn that this is a simplified explanation and doesn't try to be exact.
#1. NoteVelocity. When using a MIDI keyboard (which is 'touch sensitive') or a wind controller, drum machine (pads) etc., the strength we use when playing, blowing or hitting a particular note (pad) is measured by the instrument and recorded internally or, more likely, transmitted to a computer running a sequencing program, where the MIDI note number of the note we just played is recorded, together with it's duration and with that 'note velocity' (or loudness) at the point in the music where it was played.
In sequencer terms it might look like this:
2:01:120 key 1 C#3 89 200 (taken from JazzWare sequencer)
Explanation: "2:01:120" indicates the timing point in the MIDI file (i.e. measure 2, beat 1, tick 120 (see the article on MIDI timing)); "key" indicates the playing of a note; "C#3" indicates the note C# in octave no.3 (or a specific drum sound); the "1" indicates played on MIDI channel no.1; "89 " indicates the note velocity (a number between 1 (quiet) and 127 (loud)); "200" indicates the length or duration of the note (200 ticks).
Here's a rough scale of loudness according to the sequencer I use (XGworks):
ppp=8; pp=24; p=40; mp=56; mf=72; f=88; ff=104; fff=120. i.e. a successive increment of 16 units between each setting. You don't have to stick to this, you can alter it to taste. You could have ppp=64 and fff=120 i.e.increments of 8. Why? Well some instruments played with a velocity of 8 on my sound module I cant hear at all! P.S. I hope you're all familiar with the classical way of expressing note loudness above?
Depending upon the instrument chosen for the channel, the timbe of the sound can change significantly depending on how hard the note is struck. e.g. a piano sounds different (not just louder) the more force we use to play it. As we play an instrument it is usual for this velocity to vary from note to note as we use different fingers (on a keyboard) to play each one. This is what gives the better MIDI files a human feel. A wind instrument player will blow harder or software (known as wind pressure and definitely not to be confused with the after-effects of a good curry!) A drummer will vary the hit strength, e.g. harder on the beat, less hard on the off beat etc. The same thing with guitar and string players.
So the first "volume" control is "note velocity."
#2. Expression. Very often on an instrument like a church organ (or an old Hammond organ for those of us who hark back to the sixties) we will find a pedal called a "swell pedal". Using this we can increase or decrease the volume of the sound we are playing for expressive effect. So whilst accompanying the singer the expression pedal is on a relatively low setting, then for the organ solo we turn it up. Why do we have this? Well the old organ doesn't have a touch sensitive keyboard so we need a mechanism to change the amount of air flowing through the pipes or to make a voice on a MIDI instrument that doesn't respond to velocity louder and softer. The musical term "crescendo" (get progressively louder) or "decrescendo" (get progressively softer) are the classical music terms.
In fact an electric guitarist has both method #1 and #2 as he (or she) can pluck the notes hard or softly and he also has a volume control on the instrument which he can turn up or down to add expressive effect.
In MIDI we can use it in a similar way to change the loudness of the instrument in an expressive way during a performance. How do we do that? We send a MIDI control change message using controller number 11 (CC#11). It might look in a MIDI listing like this:
5:3:182 ctl 2 11 94 again the "5:3:182" indicates the exact time in measures, beats and pulses (or ticks) that the message occurs. "ctl" indicates that it is a MIDI control message. The "2" indicates that the message is on MIDI channel 2. The "11" indicates that this control message is an expression control. And the last "94" indicates the expression volume 94 out of a possible maximum loudness of 127. It is possible to insert these messages singly from time-to-time or as a string of commands each one incrementing (or decrementing) the "expression".
Expressive controls summary
So summarising these two controls they are used artistically to vary the loudness of a sound according to artistic feeling. Usually either one or the other is used. i.e. where an instrument sound in the sound module is velocity sensitive we use that and set expression (CC11) to maximum. Where the sound is NOT velocity sensitive then use expression to vary between loud and soft according to the needs of the song the velocity can then be set to a constant of maybe 100.
However, sadly, the expression 'pedal' on a modern electronic keyboard often controls not CC11 but CC7 (channel volume). This is fine if the instrument is being played live. But, if it's just a voice within a larger MIDI file then CC7 should be re-mapped to CC11. See your keyboard operating manual for how to do this.
#3. Channel volume. Okay now that we've used velocity and expression to control how each instrument individually expresses itself, we now need to get the relative volumes between all the instruments correct and to do that we use MIDI controller #7 (CC7). I like to think of this as being like the individual channel faders on a mixer. Once set for the relative levels between all the different instruments we should be able to leave them alone. Of course we may find ourselves tweaking the levels up and down, here and there, which actually means the original expressive level wasn't loud enough or was too loud. Well, never mind, unless that is, you're a perfectionist.
I like to start (MIDI default) with all CC7s set at 100 (out of 127 maximum). Then you can pull up one channel whilst pulling another down a bit. If the drums are soft push channel 10 up to 110. I see all to many MIDI files with the volume (CC7) level pushed all the way to 127. Bad practice I'm afraid, at least to start with. The CC7 levels are usually the ones displayed if your sequencer has a mixer panel.
#4. Main volume. Now here is a control that you very rarely see used at all. The reason, I maintain, is that it requires a horrid SysEx command to implement it. We were talking about mixers just above so think of this one as the "Main Mix" or "Master Volume" i.e. the one that controls whether you blow your speakers or not. I've heard one or two complaints on this forum about getting the same level between succesive MIDI files. Usually (not always) it's too much volume on some files. So when I start tweaking a file for my own use the first thing I insert is a "main volume" SysEx with a setting of 110. Then be prepared to modify the level.
Volume controls summary
Think of these controls as the controls on a mixer, not for expression but to set the relative levels between instruments and the final output level.
As, when I run live, I like to have the sound module volume control at maximum (this ensures maximum signal-to-noise ratio) I then have to pull the volumes of most MIDI files down to avoid distortion. It's worth a try.
You'll find the main volume SysEx buried within my "MIDI set-up measure" thread. (Number 7) as well as expression and channel volume.
© John Garside, 2007.