synthpreset man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



synthpreset(4)							synthpreset(4)

NAME
     synthpreset - MIDI synthesizer preset file

DESCRIPTION
     synthpreset files are ASCII text files containing all the information
     necessary to configure a preset in the MIDI synthesizer.  This includes
     all information about sound sample files, keyboard mapping, detuning,
     looping, filtering, modulation, etc.

PRESET IDENTIFIERS
     The current midi synthesizer identifies preset files via a string which
     must be used as the first line of the file.  Following this is the word
     PRESET in all capital letters, on its own line:

     #Synth Preset v1.0

     PRESET

     Following this are lables for the various sections of the preset.	Any
     line beginning with either a '#' character or a '!' character will be
     treated as a comment and ignored by the parser.

HEADER, LABEL, AND VALUE SYNTAX
     Synthesizer preset files are structured as a series of nested labels and
     values.  The header for each section are unquoted character strings
     without trailing colons.  Some sections may or must contain subsections
     which begin (and usually end) with additional labels.   The preset
     parameter tokens are unquoted character strings with trailing colons.
     Examples of each of these can be found below.  The parameter values
     themselves can take four forms:

     Double-precision floating point values
	  Examples:  23.0045, -0.0001, 99.0

     Integer values
	  Examples:  0, -16, 44100

     Quoted string values
	  Examples: "/disk2/sounds/violin_lowG.aifc", "None", "MultipleReset"

     Boolean values
	  These are a special subset of the quoted string values.  Boolean
	  values are only used to set a parameter to True or False, and the
	  appropriate quoted strings are "True" and "False".

VOID PARAMETERS
     In addition, a small number of parameters take no value whatsoever.
     These tokens are not followed by a colon.	An example of such a parameter
     is VoiceExclusiveNoEvenValues, which indicates that the voice exclusion
     range specified does not include the even-numbered keys.

									Page 1

synthpreset(4)							synthpreset(4)

CONTROL SOURCE AND MODULATION DEPTH PARAMETERS
     One class of parameters merits special attention:	the parameters which
     specify the source for some form of parameter modulation, such as
     oscillator frequency modulation (vibrato).	 These all the the form
     XXXXModulationSource:, or in older files, XXXXControlSource:, where XXXX
     represents the parameter being modulated.	The parameter value will
     always be a quoted string.	 The complete set of these source parameters
     divides into three catagories: synthesis modules, channel voice
     parameters, and MIDI controllers. The breakdown is as follows:

     Module Sources
	  "None"
	  "Envelope1"
	  "Envelope2"
	  "Envelope3"
	  "Envelope4"
	  "Oscillator1"
	  "Oscillator2"
	  "Oscillator3"
	  "Oscillator4"

     Channel Voice Parameters
	  "NoteOffVelocity"
	  "NoteOnVelocity"
	  "PolyKeyPressure"
	  "ChannelPressure"
	  "PitchBendChange"
	  "KeyPosition"

     MIDI Controller Parameters
	  "BankSelect"
	  "ModulationWheel"
	  "BreathController"
	  "FootController"
	  "PortamentoTime"
	  "DataEntry"
	  "ChannelVolume"
	  "Balance"
	  "Pan"
	  "ExpressionController"
	  "EffectControl1" through "EffectControl12"
	  "GeneralPurpose1" through "GeneralPurpose8"
	  "DamperPedal"
	  "Portamento"
	  "Sostenuto"
	  "SoftPedal"
	  "LegatoFootSwitch"
	  "Hold2"
	  "SoundController1" through "SoundController10"
	  "Effects1Depth" through "Effects5Depth"

     The depth of the modulation from any of these sources is set via a

									Page 2

synthpreset(4)							synthpreset(4)

     parameter XXXXModulationDepth: (or XXXXControlDepth:), where XXXX is the
     same prefix as used in the ModulationSource parameter.  The depth
     parameter for each source must follow the parameter for the source itself
     with no intervening parameters.  The value is always specified as a
     double-precision floating point.  The initial levels of the Channel Voice
     and MIDI Controller sources are floating point values scaled to the range
     [0.0 - 1.0], or in the case of symmetrical parameters such as Pan, [-1.0
     - 1.0].

     Each parameter which accepts some form of modulation input may have up to
     five modulation sources.  The total modulation will be equal to the sum
     of these five after each has been scaled by its ModulationDepth.

     Note that a few of these modulation sources are static for the duration
     of a voice, and the remainder are dynamic.	 For example, "NoteOnVelocity"
     is fixed at voice initialization time, as is "KeyPosition".  Some
     modulation inputs only respond to static sources.

PRESET TERMINOLOGY
     Several terms will be used in the parameter descriptions below.

     Split
	  A single sound sample as it is used within a preset oscillator,
	  including its keyboard mapping range, base pitch information, and
	  velocity mapping information.	 Most MIDI "instruments" are made up
	  of several splits which fill up the available keyboard space for
	  that instrument's total range.

     Sustain Segment
	  The portion of a sound sample which is played during the time that a
	  key is held down on the MIDI keyboard.  This may or may not include
	  a Loop.

     Release Segment
	  The portion of a sound sample which is played after the triggering
	  MIDI keyboard key has been released.	This may or may not include a
	  Loop.

     Sample Loop
	  The portion of the sound sample which will be repeated over and over
	  to allow the sound to sustain for as long as a key is held down, or
	  to allow the sound to fade for as long as the release time
	  indicates.  Currently, only two loops are supported, one for the
	  sustain segment and one for the release segment.  Envelopes may also
	  be looped.  See the Envelope section for details.

PRESET SECTIONS AND PARAMETERS
     The following is a list of the section headers, followed by the
     parameters which may be used in each section, followed by the default
     value in brackets.	 Note that many of the parameters, such as Gain:,
     appear in many different sections.	 Parameters in higher levels (such as
     Oscillator) modify the values in the lower levels (such as Sample).  In

									Page 3

synthpreset(4)							synthpreset(4)

     this way, a parameter may be set at the higher level when there is no
     need to differentiate them at a lower level.  Parameters listed after one
     another without intervening text are equivalent, i.e., either form can be
     used in the preset file.

Information
     This section contains strings such as the preset's name and author, and
     in the future may include comments, creation date, etc.

     PresetName:
	  The name of the preset, such as "Muted Trumpet". ["Default"]

     Author:
	  The name of the person, as a quoted string, who created the preset
	  file.	 [""]

General
     The General section contains preset parameters such as VoiceMode and
     VelocityCurve, which modify the preset as a whole.

     Gain:
	  The overall volume for this preset relative to other presets.	 [1.0]

     PitchBendRange:
	  The maximum interval, in semitones, which the pitch bend wheel can
	  transpose a voice when the wheel is at maximum excursion.  The
	  interval will be symmetrical about zero.  [2.0]

     PitchBendQuantizeValue:
	  The increment, in semitones, into which the pitch bend should be
	  quantized.  For example, a value of 0.1 would cause the pitch bend
	  to jump in 1/10 semitone increments.	[0.0]

     VoicePanMode:
	  The type of panning desired for each voice.  The options are:

	  "Center"

	  No panning, no response to MIDI pan messages.

	  "Constant"

	  Pan value set in preset, no response to MIDI.

	  "MIDI"

	  The default.	Panning set via MIDI pan messages.

	  "ConstantSwap"

	  Alternating channels, value set in preset.

									Page 4

synthpreset(4)							synthpreset(4)

	  "MIDISwap"

	  Alternating channels, value set via MIDI pan.

     VoicePanCurve:
	  The type of curve used to determine the relative amplitude of the
	  left and right channels during a pan.	 The options are:

	  "LinearPower"

	  The volume for the right channel will be set to (1 - left).

	  "ConstantPower"

	  The default.	Relative levels of the two channels are determined
	  based on power, not amplitude.  The result is a more consistant
	  apparent volume as the sound moves from left to right.

     PanPositionModulationSource:

     PanPositionControlSource:

     PanPositionControlSourceX:
	  Source for modulation of voice's stereo pan position (X dimension).
	  ["None"]

     PanPositionControlDepth:

     PanPositionControlDepthX:

     PanPositionModulationDepth:

     PanPositionModulationDepthX:
	  Depth of above modulation.  Maximum pan is +-1.0, so any higher
	  values are truncated.	 [0.0]

     PanPositionControlSourceY:
	  Source for modulation of Y dimension (front/back) of a voice's quad
	  pan position.	 Only used when preset's OutBus is "Quad1" or "Quad2".
	  ["None"]

     PanPositionModulationDepthY:
	  Depth of above modulation.  [0.0]

     VoiceExclusiveRangeValueLower:
	  Lower bound, specified as a MIDI key number, of the exclusive range
	  for this preset.  Any key played which is within the exclusive range
	  will terminate any other voices sounding in that range.  This is
	  typically used for percussion sounds such as high-hat cymbals.  If
	  both are zero, no exclusive range will be used.  [0]

									Page 5

synthpreset(4)							synthpreset(4)

     VoiceExclusiveRangeValueUpper:
	  Upper bound, specified as a MIDI key number, of the exclusive range
	  for this preset.  [0]

     VoiceExclusiveRangeNoteLower:
	  Lower bound, specified as a MIDI note, such as "A5" or "C#2", for
	  the exclusive range.	[""]

     VoiceExclusiveRangeNoteUpper:
	  Upper bound, specified as a MIDI note, such as "A5" or "C#2", for
	  the exclusive range.	[""]

     VoiceMode:
	  The voice assignment mode.  This determines how subsequent voices
	  are allocated as notes are played on a MIDI channel.	The possible
	  values are:

	  "Rotate"

	  Voice pool is cycled; if no available voices, no voice will play.

	  "RotateSteal"

	  The default.	Voice pool is cycled through, and if none are
	  available, one will be "stolen" from the active voices.

	  "Reassign"

	  Special case;	 new note will only play if another voice is currently
	  playing the same pitch, in which case the old voice will be
	  "reassigned" to the new note event.

	  "ReassignSteal"

	  Not currently implemented.

	  "MonoPriorityLastNote"

	  Mono mode, most recently played note cuts off all others.

	  "MonoPriorityLastNoteSteal"

	  Not implemented.  Acts the same as previous.

     VoiceLimit:
	  Specifies the maximum number of simultaneous voices allowed on a
	  given MIDI channel for this preset.  This is extremely useful for
	  controlling the CPU load for MIDI presets with long sustains, like
	  Pianos, Harps, and Guitars.  [127]

									Page 6

synthpreset(4)							synthpreset(4)

     VelocityCurve:
	  Specifies the mapping between the keyboard velocity (0 - 127) and
	  the resulting amplitude.  In all cases below, the variable x is the
	  key velocity scaled to fit between 0.0 and 1.0, and '**' indicates
	  'to the power of'.  The Possible values are:

	  "Constant"

	  Key velocity ignored, velocity set to VelocityConstant:.

	  "Linear"

	  The default.	Amplitude = x

	  "InverseLinear"

	  Amplitude = 1.0 - x

	  "Square"

	  Amplitude = x ** 2

	  "InverseSquare"

	  Amplitude = 1.0 - ((1 - x) ** 2)

	  "Cube"

	  Amplitude = x ** 3

	  "InverseCube"

	  Amplitude = 1.0 - ((1 - x) ** 3)

	  "Exponential"

	  An exponential curve approximated with an averaging of the Square
	  and the Cube curves.

	  "InverseExponential"

	  Exponential curve with opposite concavity;  i.e., bulges up rather
	  than down.

	  "Logarithmic"

	  Logarithmic curve with a complex formula.  Curve rises more steeply
	  at first, then levels off gradually.

	  "InverseLogarithmic"

	  Logarithmic curve with opposite concavity;  i.e., bulges down rather

									Page 7

synthpreset(4)							synthpreset(4)

	  than up.

	  In terms of expressivity, the Constant setting is the least,
	  followed by Logarithmic, Linear, Square, Exponential, and Cube.  The
	  Inverse settings follow approximately the same sequence.

     VelocityConstant:
	  If VelocityCurve: is set to "Constant", the value will be the
	  constant. [127]

     KeyboardTrackingConstant:
	  This value determines the pitch interval between successive keys on
	  the keyboard.	 A value of 1.0 is default, indicating 1.0 semitone
	  per key.  A value of 2.0 would cause the pitch to go up by 2.0
	  semitones per key.  A value of 0.1 would cause each successive key
	  to raise the pitch by 1/10th of a semitone, resulting in a 120-
	  note-per-octave scale.  NOTE:	 The tracking occurs on a per split
	  basis.  Each sample root pitch forms the starting point for a scale.
	  To achieve a complete keyboard scale in an alternate tuning, the
	  sample root pitches would need to be adjusted accordingly.  [1.0]

     Transpose:
	  An integer value indicating the number of semitones to transpose the
	  oscillator pitch up or down.	Transpose behaves differently from
	  Tune in that it will interact with the sample keynote mapping
	  whereas the Tune parameter does not.	[0]

     SampleSearchPath:
	  A colon-separated list of directories which should be searched for
	  samples prior to searching the system default directories.  For
	  example, "/disk/sounds:/tmp/soundfiles".  A single directory should
	  not have a trailing colon.  [NULL]

     OutBus:
	  The output assignment for this preset's voices.  Midisynth has eight
	  output busses, which are assigned sequentially to each available
	  audio port output channel.  If midisynth is started in 2-channel
	  mode (the default), only the first two busses are useful;  starting
	  it in 8-channel mode will allow all eight busses to be used.	The
	  currently supported parameters are:

	  "Stereo1"

	  Voices panned across busses (and channels) 1 and 2.  The default.

	  "Stereo2"

	  Voices panned across busses (and channels) 3 and 4.  Only useful in
	  4- or 8-channel mode.

									Page 8

synthpreset(4)							synthpreset(4)

	  "Stereo3"

	  Voices panned across busses (and channels) 5 and 6.  Only useful in
	  8-channel mode.

	  "Stereo4"

	  Voices panned across busses (and channels) 7 and 8.  Only useful in
	  8-channel mode.

	  "Quad1"

	  Voices panned across busses 1 through 4.  Panning defined as X/Y
	  values using PanPositionX and PanPositionY for static values, and
	  PanPositionControlSourceX, PanPositionControlSourceY, etc., for
	  controllable parameters.  Only useful in 4- or 8-channel mode.

	  "Quad2"

	  Voices panned across busses 5 through 8.  Same rules for panning as
	  above.  Only useful in 8-channel mode.

OscillatorN
     Parameters for the Nth voice oscillator.  Numbering starts with 1, up to
     a maximum of 4.  Parameters:

     Gain:
	  A fixed gain offset for the oscillator signal.  This is generally
	  used only for oscillators which function as control sources;	audio
	  oscillator gains are adjusted via the GainControlDepth parameter,
	  below.  [0.0]

     GateElement:
	  If this parameter is true, this oscillator will be examined to
	  determine if a given voice should continue to sound, or if the voice
	  should be considered "finished" and shut off.	 If false, the state
	  of this oscillator will be ignored.  ["True"]

     Method:

     Interpolation:
	  Specifies the interpolation method to be used to transpose the sound
	  samples up and down on the keyboard.	Possible values are:

	  "Fixed"

	  No transposition.  Oscillator sounds at root pitch only.

	  "AddDrop"

	  The default.	Truncated table indexing.  This is very useful for
	  controlling oscillators and sometimes for audio oscillators which

									Page 9

synthpreset(4)							synthpreset(4)

	  are playing simple waveforms such as sine waves, but the output
	  waveform is usually too distorted for audio oscillator use.

	  "Linear"

	  Linear interpolative table indexing.	This produces the best quality
	  waveform for audio oscillators.  It should not be used for control
	  oscillators because it takes a larger amount of CPU cycles to
	  compute.

     TuneKeyboardTracking:
	  Indicates whether this oscillator will track the keyboard, i.e.,
	  whether its pitch will transpose up and down as different keys are
	  pressed.  This is the default for audio oscillators, but is often
	  not used for control oscillators.  ["True"]

     ControlElement:
	  If "True", indicates that this oscillator is to be used an a control
	  module, i.e., its output will modulate some other module's
	  parameters.  If "False", then this oscillator will be an audio
	  oscillator, and its output will be summed in the signal mixer and
	  added to the voice output.  ["False"]

     GainControlSource:

     GainModulationSource:
	  Source for modulation of the oscillators's volume.  See the section
	  on CONTROL SOURCE AND MODULATION DEPTH PARAMETERS for details.
	  ["NoteOnVelocity"]

     GainControlDepth:

     GainModulationDepth:
	  The depth of the previous modulation source.	For most modulating
	  sources, the resulting gain will be between 0.0 and
	  GainModulationDepth.	[1.0]

     TuneControlSource:

     TuneModulationSource:
	  Source for modulation of the oscillators pitch (tuning).  See the
	  section on CONTROL SOURCE AND MODULATION DEPTH PARAMETERS for
	  details.  ["None"]

     TuneControlDepth:

     TuneModulationDepth:
	  The depth of the pitch modulation, in semitones.  For symmetrical
	  modulating waveforms, the pitch will rise this number of semitones
	  above the base pitch, then fall to this number of semitones below
	  the base pitch.  [0.0]

								       Page 10

synthpreset(4)							synthpreset(4)

Oscillator Subsections
     There are two possible subsections for Oscillator.

Sibling
     An optional subsection of Oscillator;  contains parameters for up to 4
     sibling oscillator outputs.  These are duplicates of the oscillator
     waveform with optional detuning and (in the future) gain adjustments.
     The final sibling entry must be followed by the subsection termination
     lable EndSiblings.

     Tune:		 Tuning factor, in semitones, for this sibling.	 [0.0]

     Phase:		 Not yet implemented.

     SampleSelectMode:	 Not yet implemented.

Sample
     A required subsection of Oscillator;  contains parameters for each sound
     sample which is to be used as part of this voice as expressed through
     this oscillator.  Any number of Sample listings may be used, but they
     must all be listed together and the final entry should be followed by the
     subsection termination label EndSamples.

     MemoryResident:
	  Not yet implemented.

     ChannelMode:
	  Not yet implemented.

     Direction:
	  Indicates the direction the sample will be played.  Possible values
	  are:

	  "Forward"

	  Default.  Sample will be played from beginning to end.

	  "Backward"

	  Sample will be played from end to beginning (reversed).

	  "ForwardAndBackward"

	  Not yet implemented.

     SustainStartTime:
	  Offset in seconds to the beginning of the sample's sustain segment.
	  [0.0]

								       Page 11

synthpreset(4)							synthpreset(4)

     SustainEndTime:
	  Offset in seconds to the end of the sample's sustain segment.
	  [Sample duration].

     ReleaseStartTime:
	  Offset in seconds to the beginning of the sample's release segment.
	  [0.0]

     ReleaseEndTime:
	  Offset in seconds to the end of the sample's release segment.
	  [Sample duration]

     SustainLoopStartTime:
	  Offset in seconds to the beginning of the sample's sustain loop.
	  [0.0]

     SustainLoopEndTime:
	  Offset in seconds to the end of the sustain portion of the sample.
	  [SustainEndTime].

     ReleaseLoopStartTime:
	  Offset in seconds to the beginning of the sample's release loop.
	  [0.0]

     ReleaseLoopEndTime:
	  Offset in seconds to the end of the sample's release loop.  [Sample
	  duration]

     LoopTune:
	  Amount in semitones to adjust the sample loops' pitch versus the
	  unlooped portion.  If the sample contains more than one loop, all
	  will be adjusted. [0.0]

     LoopGain:
	  Not yet implemented.

     LoopGaindB:
	  Not yet implemented.

     SustainGain:
	  Factor to multiply the sample's sustain segment by.  [1.0]

     SustainGaindB:
	  Amount in decibels to adjust the sample's sustain segment.  [0.0]

     SustainTune:
	  Amount in semitones to adjust the sample's sustain segment versus
	  the release segment.	[0.0]

     SustainDirection:
	  The direction for the sample's sustain segment.  See Direction:,
	  above.  ["Forward"]

								       Page 12

synthpreset(4)							synthpreset(4)

     ReleaseGain:
	  Factor to multiply the sample's release segment by.  [1.0]

     ReleaseGaindB:
	  Amount in decibels to adjust the sample's release segment.  [0.0]

     ReleaseTune:
	  Amount in semitones to adjust the sample's release segment versus
	  the sustain segment.	[0.0]

     ReleaseDirection:
	  The direction for the sample's release segment.  See Direction:,
	  above.  ["Forward"]

     SustainLoopTune:
	  Amount in semitones to adjust the sample's sustain loop pitch versus
	  the unlooped portion(s).  [0.0]

     SustainLoopGain:
	  Not yet implemented.

     SustainLoopGaindB:
	  Not yet implemented.

     ReleaseLoopTune:
	  Amount in semitones to adjust the sample's release loop pitch versus
	  the unlooped portion(s).  [0.0]

     ReleaseLoopGain:
	  Not yet implemented.

     ReleaseLoopGaindB:
	  Not yet implemented.

     NoteMapValueBase:
	  Specifies the base (original untransposed) pitch of a sound sample,
	  in MIDI key number units.  [60]

     NoteMapValueLower:
	  Specifies the lower limit of the keyboard range in which this sample
	  will sound, as a MIDI key number.  [1]

     NoteMapValueUpper:
	  Specifies the upper limit of the keyboard range in which this sample
	  will sound, as a MIDI key number.  [127]

     NoteMapNoteBase:

     NoteMapNotationBase:
	  Specifies the base (original untransposed) pitch of a sound sample,
	  as a note name.  ["C5"]

								       Page 13

synthpreset(4)							synthpreset(4)

     NoteMapNoteLower:

     NoteMapNotationLower:
	  Specifies the lower limit of the keyboard range in which this sample
	  will sound, as a note name ["C-1"]

     NoteMapNoteUpper:

     NoteMapNotationUpper:
	  Specifies the upper limit of the keyboard range in which this sample
	  will sound, as a note name.  ["G9"]

     VelocityMapLower:
	  Specifies the lower limit of the keyboard velocity range for which
	  this sample will sound.  [1]

     VelocityMapUpper:
	  Specifies the upper limit of the keyboard velocity range for which
	  this sample will sound.  [127]

FilterN
     Parameters for the Nth voice filter.  Numbering starts with 1 up to a
     maximum of 4.

     Frequency:
	  The filter cutoff frequency.	This should be specified as a double-
	  precision floating point between 0.0 and 1.0, where 0.0 is
	  effectively a cutoff of 0.0 Hz., and 1.0 is the maximum cutoff
	  frequency (set to 1/2 of the current audio sampling rate).  [1.0]

     Resonance:
	  The amount of resonance at the cutoff frequency, scaled between 0.0
	  (no resonance) and 1.0 (maximum resonance).  Musically useful values
	  are between 0.0 and 0.5.  Resonance has no affect on first-order
	  low- and high-pass filters.  [0.0]

     GaindB:
	  A gain value, used to compensate for filter settings (such as very
	  high resonance) which either amplify or attenuate the signal enough
	  to affect the overall balance.  Only implemented for second and
	  higher order LowPass filters.	 [0.0]

     Mode:
	  Selects the type of filter to be used.  Possible values are:

	  "LowPass"

	  Low pass filter.

	  "HighPass"

	  High pass filter.

								       Page 14

synthpreset(4)							synthpreset(4)

	  "BandPass"

	  Band pass filter.

	  "BandStop"

	  Band stop or notch filter.

     Order:
	  Specifies the filter order (number of sections).  The more sections,
	  the steeper the slope of the cutoff point, and the greater the
	  attenuation (suppression) of frequencies past the cutoff frequency.
	  Possible values are "1st", "2nd", "4th", and "8th", indicating 1, 2,
	  4, and 8 sections, respectively.  More sections require more CPU
	  cycles.

     SaturationRail:

     SaturationRailLower:

     SaturationRailUpper:
	  These three are not yet implemented.

     FrequencyControlSource:

     FrequencyModulationSource:
	  Source for modulation of the filter's cutoff frequency.  See the
	  section on CONTROL SOURCE AND MODULATION DEPTH PARAMETERS for
	  details.  ["None"]

     FrequencyControlDepth:

     FrequencyModulationDepth:
	  Depth of the previous frequency modulation, as a fraction of the
	  total frequency range (0.0 - 1.0).

     ResonanceControlSource:

     ResonanceModulationSource:
	  Source for modulation of the filter's resonance.  See the section on
	  CONTROL SOURCE AND MODULATION DEPTH PARAMETERS for details.
	  ["None"]

     ResonanceControlDepth:

     ResonanceModulationDepth:
	  Depth of the resonance modulation, as a fraction of the total
	  resonance range (0.0 - 1.0).

								       Page 15

synthpreset(4)							synthpreset(4)

EnvelopeN
     Parameters for the Nth envelope generator.	 Numbering starts with 1, up
     to a maximum of 4.	 Envelopes may have up to 8 segments (8 levels
     separated by 7 times).  Envelopes may also be looped;  the segments
     within the specified loop will cycle continuously during the sustain
     and/or release portions of the envelope.  The complete set of possible
     envelope parameters:

     LevelCount:
	  The total number of envelope levels.	Value must be between 1 and 8,
	  inclusive.  [4]

     Time:
	  Specify the time required to reach a level, starting with Time1
	  (time to move from Level0 to Level1).	 Each subsequent Time: entry
	  will address a subsequent time, up to Time7.	[Time0: 0.0; All
	  others: 1.0]

     TimeN:
	  Specify the time to go from level (N-1) to level N.  N must be
	  between 1 and 7, and the entries must be in ascending order. The
	  level count of the envelope will be set to N + 1 for the maximum
	  (final) value of N found.  [Time0: 0.0; All others: 1.0]

     DelayTime:
	  An alternate way to specify the time it takes to go from level0 to
	  level1. If both of these levels are set to zero, this will function
	  as an envelope delay.	 This label cannot be used with AttackTime in
	  the same envelope section.  [0.0]

     AttackTime:
	  An alternate way to specify the time it takes to go from level0 to
	  level1.  This label cannot be used with DelayTime in the same
	  envelope section.  [0.0]

     DecayTime:
	  An alternate way to specify the time it takes to go from level1 (the
	  attack peak value) to level2 (the sustain level).  [1.0]

     ReleaseTime:
	  An alternate way to specify the time it takes to go from level2 (the
	  sustain level) to level3 (the release level).	 [1.0]

     TimeAttack1:

     TimeAttack2:

     TimeDecay1:

     TimeDecay2:

								       Page 16

synthpreset(4)							synthpreset(4)

     TimeRelease1:

     TimeRelease2:
	  These six labels allow for easy specification of the segment times
	  for a six-level envelope like those found in many commercial
	  synthesizers.	 For any given envelope section, they should be used
	  together as a set and not mixed with the other label types.

     Level:
	  Specify the envelope value for a level, starting with level 0.  Each
	  subsequent Level:  entry will address a subsequent level, up to
	  level7 (eight levels in all).	 [Level0 and Level1: 1.0;  All others:
	  0.0]

     LevelN:
	  Specify the envelope value for level N.  Numbering starts with 0
	  (the resting state of the envelope) and has a maximum of 7.  The
	  final level always represents the post-release level.	 [Level0 and
	  Level1: 1.0;	All others:  0.0]

     StartLevel:
	  Alternate for Level0:.  [1.0]

     AttackLevel:
	  Alternate for Level1:.  [1.0]

     SustainLevel:
	  Alternate for Level2:.  [1.0]

     ReleaseLevel:
	  Alternate for Level3:.  [0.0]

     LevelAttack1:

     LevelAttack2:

     LevelDecay1:

     LevelDecay2:

     LevelRelease1:
	  These five labels allow for easy specification of the levels for a
	  six-segment envelope like those found in many commercial
	  synthesizers.	 For any given envelope section, they should be used
	  together as a set (with the six time labels described above) and not
	  mixed with the other label types.  Note:  Midisynth makes no
	  assumptions about the initial and final levels for its envelopes, as
	  opposed to many synthesizers which require them to be zero levels.
	  When using the above level specifiers, they must be preceeded by a
	  StartLevel: label and concluded with an EndLevel: label set to the
	  values you desire (usually 0.0 in this case).	 If this is not done,
	  the initial level defaults to 1.0, and the final release stage will

								       Page 17

synthpreset(4)							synthpreset(4)

	  be missing.

     ExponentialCurves:
	  If "True", envelope will follow an exponential curve between levels.
	  If "False, envelope will follow straight line segments between
	  levels.  Exponential curves are very useful for sounds with extended
	  natural decays, such as pianos and guitars.  ["False"]

     TriggerMode:
	  Defined the manner in which the envelope will respond to keydown and
	  keyup events.	 Possible values are:

	  "SingleTrigger"

	  All voices share one envelope which rstarts only on first key press.

	  "MultipleTrigger"

	  Not yet implemented.

	  "SingleReset"

	  All voices share one envelope which restarts with each new key
	  press.

	  "MultipleReset"

	  Each voice has its own envelope, each one restarts with each new key
	  press.  This is the default.

     Start:

     SustainStart:
	  Index of first segment in the sustain portion of the envelope.  [0]

     End:

     SustainEnd:
	  Index of final segment in the sustain portion of the envelope.  [2]

     LoopStart:
	  Index of first segment in the sustain portion of the envelope to be
	  looped.  [0]

     LoopEnd:
	  Index of final segment in the sustain portion of the envelope to be
	  looped.  [2]

     LoopType:
	  The type of loop to be used.	Possible values are:

								       Page 18

synthpreset(4)							synthpreset(4)

	  "Off"

	  No looping.  This is the default.

	  "Forward"

	  Forward-moving loop.

	  "Backward"

	  Backwards loop.

	  "ForwardAndBackward"

	  Loop runs forward to the final segment, then reverses up to the
	  first segment, then repeats.

     SustainLoopStart:
	  Index of first segment in the envelope's sustain loop.  [0]

     SustainLoopEnd:
	  Index of final segment in the envelope's sustain loop.  [2]

     SustainLoopType:
	  The type of loop for the sustain loop.  See LoopType:, above.
	  ["Off"]

     SustainLoopRepeat:
	  Not yet implemented.

     ReleaseStart:
	  Index of first segment in the release portion of the envelope.  [3]

     ReleaseEnd:
	  Index of final segment in the release portion of the envelope.  [3]

     ReleaseLoopStart:
	  Index of first segment in the envelope's release loop.  [3]

     ReleaseLoopEnd:
	  Index of final segment in the envelope's release loop.  [3]

     ReleaseLoopType:
	  The type of loop for the release loop.  See LoopType:, above.
	  ["Off"]

     ReleaseLoopRepeat:
	  Not yet implemented.

     GateIgnore:

								       Page 19

synthpreset(4)							synthpreset(4)

     OneShot:
	  If set to "True", the envelope will not stop at the end of the
	  sustain portion and will continue on through the release.  This is
	  used for sounds which have no sustain, such as percussion sounds.
	  ["False"]

     Gain:
	  The output level multiplier for the envelope.	 Each stage's level
	  will be scaled by this value.	 This is typically 0 for envelopes
	  whose gain is controlled via GainControlSources such as
	  NoteOnVelocity.  [0.0]

     GaindB:
	  The output level in decibels for the envelope.  Each stage's level
	  will be scaled by this value.	 Same use as Gain:. [-100]

     GateElement:
	  If this parameter is true, this envelope will be examined to
	  determine if a given voice should continue to sound, or if the voice
	  should be considered "finished" and shut off.	 If false, the state
	  of this envelope will be ignored.  ["True"]

     GainControlSource:

     GainModulationSource:
	  Source for modulation of the envelope's volume.  See the section on
	  CONTROL SOURCE AND MODULATION DEPTH PARAMETERS for details.
	  ["NoteOnVelocity"]

     GainControlDepth:

     GainModulationDepth:
	  The depth of the previous modulation source.	For most modulating
	  sources, the resulting gain will be between 0.0 and
	  GainModulationDepth.	[1.0]

     AttackTimeModulationSource:

     AttackTimeControlSource:
	  Source for modulation of the envelope's attack time.	This must be a
	  static source.  See the section on CONTROL SOURCE AND MODULATION
	  DEPTH PARAMETERS for details.	 ["None"]

     AttackTimeModulationDepth:

     AttackTimeControlDepth:
	  The depth of the previous modulation source.	For most modulating
	  sources, the resulting time will be original_time +
	  (AttackTimeControlDepth * n), where 'n' is between 0 and 1.0.	 [0.0]

								       Page 20

synthpreset(4)							synthpreset(4)

     DecayTimeModulationSource:

     DecayTimeControlSource:
	  Source for modulation of the envelope's decay time.  This must be a
	  static source.  See the section on CONTROL SOURCE AND MODULATION
	  DEPTH PARAMETERS for details.	 ["None"]

     DecayTimeModulationDepth:

     DecayTimeControlDepth:
	  The depth of the previous modulation source.	For most modulating
	  sources, the resulting time will be original_time +
	  (DecayTimeControlDepth * n), where 'n' is between 0 and 1.0.	[0.0]

COMBINATION PRESETS
     Combination presets are a special class of presets which allow a single
     MIDI patch to combine up to 128 other presets in a variety of ways.  Each
     individual preset referenced by a combination must exist as a separate
     file.  Each of these individual presets may be mapped into a portion of
     the keyboard range or velocity range in a manner similar to the way
     individual samples may be mapped into portions of an oscillator's range.
     Combination parameters are the highest-level parameters available;	 they
     will modify or (in a few cases) override any preset parameter of the same
     type.

     Combination presets are extremely powerful.  By allowing any arbitrary
     keyboard or velocity range to reference an entire preset, each note on
     the keyboard can be configured to have its own sample with its own unique
     filters and envelopes.  Combination presets may be nested, i.e.,
     combination preset A can reference preset B, which itself is a
     combination, and so forth.	 Keyboard ranges may be arbitrarily overlapped
     and/or layered to allow the creation of large ensemble presets.

     Each referenced preset is called a Zone, and the Zone subsection of the
     combination is described below, as well as the zone parameters.

COMBINATION HEADER AND PARAMETERS
     A combination preset begins with the same first two lines as a regular
     preset (see the top of this man page), but instead of using the General,
     OscillatorN, etc., headers, a single header, Combination, is used,
     followed by the following parameters:

     Gain:
	  The overall volume for this combination preset.  This adjusts the
	  volume of all preset zones.  [1.0]

     GaindB:
	  The overall gain in decibels for this combination preset.  [0.0]

     Transpose:
	  The interval in integer semitones to transpose the entire
	  combination.	[0]

								       Page 21

synthpreset(4)							synthpreset(4)

     Tune:
	  The amount in semitones to adjust the pitch of the combination.
	  [0.0]

     OutBus:
	  The output bus assignment for the combination.  See the OutBus:
	  description in the General parameters section for details.

ZONE SUBSECTION AND PARAMETERS
     The zone subsection begins with the first Zone header and ends with the
     label EndZones.  Each preset zone is separated by a Zone header.  Many of
     the parameters are identical to those in the Sample subsection of the
     Oscillator section.  The possible zone parameters are:

     Name:
	  The full pathname of the preset file for the current zone.  Required
	  for a zone to exist, and no default.

     Gain:
	  The overall volume for this preset.  [1.0]

     GaindB:
	  The overall gain in decibels for this preset.	 [0.0]

     Transpose:
	  The interval in integer semitones to transpose the preset.  [0]

     Tune:
	  The amount in semitones to adjust the pitch of the preset.  [0.0]

     OutBus:
	  The output bus assignment for the zone.  See the OutBus:
	  description in the General parameters section for details.

     NoteMapValueLower:
	  Specifies the lower limit of the keyboard range in which this preset
	  will sound, as a MIDI key number.  [1]

     NoteMapValueUpper:
	  Specifies the upper limit of the keyboard range in which this preset
	  will sound, as a MIDI key number.  [127]

     NoteMapNoteLower:

     NoteMapNotationLower:
	  Specifies the lower limit of the keyboard range in which this preset
	  will sound, as a note name ["C-1"]

     NoteMapNoteUpper:

								       Page 22

synthpreset(4)							synthpreset(4)

     NoteMapNotationUpper:
	  Specifies the upper limit of the keyboard range in which this preset
	  will sound, as a note name.  ["G9"]

     VelocityMapLower:
	  Specifies the lower limit of the keyboard velocity range for which
	  this preset will sound.  [1]

     VelocityMapUpper:
	  Specifies the upper limit of the keyboard velocity range for which
	  this preset will sound.  [127]

PRESET FILE NAMING CONVENTIONS
     A synthesizer preset file is identified by midisynth(1) and by the
     desktop using the first 8 or so characters in the file, so a preset may
     be named anything you wish.  However, if you create preset files which
     you wish to be a part of a General MIDI 128-preset bank directory, all
     preset files must follow the following naming convention: For presets 1
     through 128, the first 4 characters of the file's name must be in the
     form NNN_, where NNN is the General MIDI preset number of the preset
     expressed as three digits.	 For example, preset 4 would begin with
     "004_", preset 27 would begin with "027_", and preset 112 would begin
     with "112_".  The remainder of the name may be anything, but it is useful
     to have it be descriptive of the preset's type.  For now, the percussion
     preset to be loaded for channel 10 must be named "PercussionMap.preset".

SEE ALSO
     synthpanel(1), midisynth(1), midikeys(1)

								       Page 23

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net