MMA is very versatile when it comes to the volumes or dynamics used in your song.
Each generated note goes though 4 volume adjustments:
For the most part MMA uses conventional musical score notation for volumes. Internally, the dynamic name is converted to a percentage value. The note volume is adjusted by the percentage.
The following table shows the available volume settings and the adjustment values.
|
The setting Off is useful for generating fades at the end of a piece. For example:
Volume ff |
will cause the last 5 bars of your music to fade from a ``ff'' to silence.
The initial volume (or velocity) is set in the pattern definition (see chapter 4). The following commands set the master volume, track volume and random volume adjustments.
In addition to the volumes (velocities) generated by MMA your MIDI device can also change the mix between channels. See the discussion for ChannelVolume (prefchannelvol).
The ratios used to adjust the volume can be changed from the above table. For example, to change the percentage used for the ``mf'' setting:
AdjustVolume MF 95 |
If you want to adjust a number of settings:
Begin AdjustVolume |
All values must be positive integers. Any value over 180 will be reported as a warning.
You might want to do these adjustment in your MMArc file(s).
The volume for a track, or all tracks, is given the ``Volume'' command. Volumes can be specified much like standard sheet music with the conventional dynamic names. These volumes can be applied to a track or to the entire song. For example:
Arpeggio1 Volume p |
sets the volume for Arpeggio1 track to something approximating piano.
Volume f |
sets the master volume to forte.
In most cases the volume for a track will be set with the sequence definition; the master volume is used in the music file to adjust the overall feel of the piece.
If you wish to adjust over a series of bars use the Cresc or Decresc commands. These commands are only valid in the master context; they can not be applied to individual tracks.
For all practical purposes, the two commands are equivalent, expect for the warning. If the new volume in less than the current volume in a Cresc a warning will be displayed; the converse applies to a Decresc.
The command requires two arguments. The first is the new volume, the second is the number of bars to adjust it over.
For example:
Cresc fff 5 |
will gradually vary the master volume from its current setting to a triple forte over the next 5 bars.
Similarly:
Decresc mp 2 |
will decrease the master volume to mezzo piano over the next 2 bars.
A SeqClear command will reset all track volumes to the default mf (ie. no adjustment).
When using Volume for a specific track, you can use a different value for each bar in a sequence:
Drum Volume mp ff / ppp |
A ``/'' can be used to repeat values.
Not even the best musician can play each note at the same volume. Nor would he or she want to--the result would be quite unmusical. The note volumes can be randomly adjusted with the Rvolume command.
The command can be applied to a specific track or (if you're brave) to all tracks. Examples:
Chord RVolume 10 |
The RVolume argument is a percentage value by which a volume is adjusted. A setting of 0 disables the adjustment for a track (this is the default).
When set, the note velocity (after the track and master volume adjustments) is randomized up or down by the value. Again, using the above example, let us assume that a note in the current pattern gets a MIDI velocity of 88. The random factor of 10 will adjust this by 10% up or down-- the new value can be from 78 to 98.
The idea behind this is to give the track a more human sounding effect. You can use large values, but it's not recommended. Usually, values in the 5 to 10 range work well. You might want slightly larger values for drum tracks. Using a value greater than 30 will generate a warning message.
Notes:
Scale RVolume 10 0 / 20 |
Dynamics can get quite complicated, especially when you are adjusting the volumes of a track inside a repeat.
You can save all the current volume settings with:
DefVolume NAME |
and restore them with:
SetVolume NAME |
This command saves/restores all the current volume settings to/from the specified name. The ``name'' is case insensitive. The RVolume setting is neither saved or modified with this command.
The command pair is quite useful if you are adjusting a volume over a set of bars and want the volume to be reset to a known setting.