*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> dmedia/synthpreset (4)              
Title
Content
Arch
Section
 

Contents


synthpreset(4)							synthpreset(4)


NAME    [Toc]    [Back]

     synthpreset - MIDI	synthesizer preset file

DESCRIPTION    [Toc]    [Back]

     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    [Toc]    [Back]

     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    [Toc]    [Back]

     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    [Toc]    [Back]
	  Examples:  23.0045, -0.0001, 99.0

     Integer values    [Toc]    [Back]
	  Examples:  0,	-16, 44100

     Quoted string values    [Toc]    [Back]
	  Examples: "/disk2/sounds/violin_lowG.aifc", "None", "MultipleReset"

     Boolean values    [Toc]    [Back]
	  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    [Toc]    [Back]

     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    [Toc]    [Back]
	  "None"
	  "Envelope1"
	  "Envelope2"
	  "Envelope3"
	  "Envelope4"
	  "Oscillator1"
	  "Oscillator2"
	  "Oscillator3"
	  "Oscillator4"

     Channel Voice Parameters    [Toc]    [Back]
	  "NoteOffVelocity"
	  "NoteOnVelocity"
	  "PolyKeyPressure"
	  "ChannelPressure"
	  "PitchBendChange"
	  "KeyPosition"

     MIDI Controller Parameters    [Toc]    [Back]
	  "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    [Toc]    [Back]

     Several terms will	be used	in the parameter descriptions below.

     Split    [Toc]    [Back]
	  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    [Toc]    [Back]
	  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    [Toc]    [Back]
	  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    [Toc]    [Back]
	  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    [Toc]    [Back]

     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    [Toc]    [Back]

     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    [Toc]    [Back]

     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    [Toc]    [Back]

     There are two possible subsections	for Oscillator.

Sibling    [Toc]    [Back]

     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    [Toc]    [Back]

     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    [Toc]    [Back]

     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 doubleprecision
 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    [Toc]    [Back]

     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    [Toc]    [Back]

     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    [Toc]    [Back]

     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    [Toc]    [Back]

      
      
     synthpanel(1), midisynth(1), midikeys(1)


								       PPPPaaaaggggeeee 22223333
[ Back ]
 Similar pages
Name OS Title
midisynth IRIX software MIDI synthesizer
opl OpenBSD Yamaha OPL2 and OPL3 FM synthesizer driver
glClear Tru64 clear buffers to preset values
glclear IRIX clear buffers to preset values
syntheditor IRIX application for editing midisynth parameters and preset files
mdGetStatus IRIX manipulate MIDI messages
mdSend IRIX send out MIDI data
mdGetName IRIX return a MIDI interface name
startmidi IRIX start MIDI daemon
umidi OpenBSD USB support for MIDI devices
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service