shazware.com - ditty ...Deal with it!

intro
download
did
do
design
tut_Config
tut_Play
tut_View
tut_Metronome
tut_Record
tut_Edit
tut_Print
tut_SFont
ref_MidiPath
ref_MidiCfg
ref_Ditty
ref_Tinker
ref_DrumTrak
ref_Txt2Trak
ref_SF2Lst
ref_SF2SFont
ref_SFontBank
ref_PsetEdit <=
ref_EdiSn
PSetEdit - edits a .pset file.  (a soundfont preset in the SFont\ dir)

BE CAREFUL:

   PSetEdit hasn't been extensively tested, yet.

   Make sure that you save the preset with a NEW filename
   so you don't mess up the existing preset.

   And run SFontBank when you're done with the new file so Ditty "sees" it.
________________________________________________________________________________

Ok.  Background time...

Many musicians go through a synth's factory presets and pick out the good ones.
Sometimes, they don't even TRY to create NEW ones!!
That's just sooooo WROOOONG!

The preset controls how the sample is dumped through the audio path of the synth

It gives life to aftertouch and the mod wheel and pitch pender and pedal and...
                                                 (insert other controllers here)

So find a good sound using ditty, and use PSetEdit to see what makes it tick.

The .WAV samples will likely be most of the sound's beauty.
But if it's a simple sample,
   (anybody remember sin, square and sawtooth samples?)
   It might just be the
   - oscillator detuning
   - filtering
   - amp enveloping
   - LFO'ing
   that the preset parameters control that make the sound shine.

You can do a LOT with simple waveforms (not to mention complex ones)
   if you make em change via different performance controls.
For example,
   lower velocity should always filter the sound to "muffle" it a bit.

Most mod wheels turn a preset "rotten".
Make the mod wheel do something ELSE!

Read up on sound synthesis techniques and
   make the controllers that you've got do COOL things to the sound.
Not just sit there and do boring tremelo or vibrato - bleh :P

Ok.  Enough background.
________________________________________________________________________________



Load a sound into PSetEdit and see what params it has.
Try tweaking it.
And save your changes as a NEW file so you still can use the old sound.

After saving a new preset, make sure you run SFontBank to
add it to Ditty's list of sounds.

PSetEdit will boot up EdiSn so you can look at the preset's samples.
Goof around and let me know where you get confused.
(Can you tell I'm still workin on these docs:)
________________________________________________________________________________

What the heck IS a soundfont preset???

Ok.  Soundfont presets are a pretty detailed beast.

Here's Creative's RATHER LAAAAAAAAAAAAAAAAAAAME
spec

It covers not just presets, but the whole SF2 file format.
You may want to avert your eyes.  Seriously.  ;)

I'm not sure I can fully document it WELL yet, but I'll give you a starter :/

If you're familiar with editing sound presets,
   you just might recognize most of the params.

Soundfont presets have the top preset level that refs
   instrument level params which ref
      sample level params

Samples have their own set of params.
Preset params sometimes replace, sometimes modify Instrument level params.
(sometimes - it's confusing:)

In addition, GLOBAL params are at the inst and preset level
   which can be overridden as well.

There's a list of the params at the end of this doc.
It's all I can do for ya right now - sorry :)
________________________________________________________________________________

.pset file format - QUICK intro:    (very quick - sorry)

description on line 1
# for comments
inst=name                 starts an instrument definition
GLOBAL
   gen=val
   mod=ctrl[mod]+ctrl[mod]*amt  (ex:  fltCut=velo.desc+velo.desc*0)
path\WAVfilename
   gen=val
   mod=...
...etc
------------------------- ends an instrument definition
GLOBAL
   gen=val
   mod=ctrl[mod]+ctrl[mod]*amt
InstName (or path\WAVfilename for a no gen/mod instrument)
   gen=val
   mod=ctrl[mod]+ctrl[mod]*amt
________________________________________________________________________________

param ref:   (this will be loooooong)


Curv:    linear, concave, convex, switch

KeyStr:  c, c#, d, d#, e, f, f#, g, g#, a, a#, b


GenLst:
//  id, myname,        typ,  dst,dflt,   min,    max
   {43, "keyRng",      "rp", 127*256,0,      127*256}, // nonrt
   {44, "velRng",      "rp", 127*256,0,      127*256}, // nonrt

// (inst ONLY for these)
   {0,  "sampBgn",     "sim", 0,      0,      32767},  // sample offset
   {4,  "sampBgnH",    "si ", 0,      0,      32767},
   {1,  "sampEnd",     "sim", 0,      -32768, 0},
   {12, "sampEndH",    "si ", 0,      -32768, 0},
   {2,  "smLpBgn",     "sim", 0,      -32768, 32767},
   {45, "smLpBgnH",    "si ", 0,      -32768, 32767},
   {3,  "smLpEnd",     "sim", 0,      -32768, 32767},
   {50, "smLpEndH",    "si ", 0,      -32768, 32767},
   {58, "overRoot",    "ki ", -1,    -1,      127},    // nonrt  wav's rootkey
   {54, "sampMode",    "si ", 0,      0,      3},      // nonrt  noloop
   {57, "exclInst",    "si ", 0,      0,      127},    // nonrt  nonexcl
   {46, "key",         "ki ", -1,    -1,      127},    // nonrt  all
   {47, "vel",         "si ", -1,    -1,      127},    // nonrt  all
   {56, "scale",       "si ", 100,    0,      1200},   // nonrt  normal

   {23, "lfoODlay",    "spm", -12000, -12000, 5000},   // <1 msec
   {24, "lfoOFreq",    "spm", 0,      -16000, 4500},   // 8.176hz
   {6,  "lfoO2Osc",    "spm", 0,      -12000, 12000},  // none

   {21, "lfoMDlay",    "spm", -12000, -12000, 5000},   // <1 msec
   {22, "lfoMFreq",    "spm", 0,      -16000, 4500},   // 8.176hz
   {5,  "lfoM2Osc",    "spm", 0,      -12000, 12000},  // none
   {10, "lfoM2Flt",    "spm", 0,      -12000, 12000},  // none
   {13, "lfoM2Amp",    "spm", 0,      -960,   960},    // none

   {39, "key2EnvAHold","sp ", 0,      -1200,  1200},   // none
   {40, "key2EnvADcay","sp ", 0,      -1200,  1200},   // none
   {33, "envADlay",    "spm", -12000, -12000, 5000},   // <1 msec
   {34, "envAAtak",    "spm", -12000, -12000, 8000},
   {35, "envAHold",    "spm", -12000, -12000, 5000},
   {36, "envADcay",    "spm", -12000, -12000, 8000},
   {37, "envASust",    "spm", 0,      0,      1440},   // attkpeak
   {38, "envARels",    "spm", -12000, -12000, 8000},   // <1 msec

   {31, "key2EnvMHold","sp ", 0,      -1200,  1200},   // none
   {32, "key2EnvMDcay","sp ", 0,      -1200,  1200},   // note
   {25, "envMDlay",    "spm", -12000, -12000, 5000},   // <1 msec
   {26, "envMAtak",    "spm", -12000, -12000, 8000},
   {27, "envMHold",    "spm", -12000, -12000, 5000},
   {28, "envMDcay",    "spm", -12000, -12000, 8000},
   {29, "envMSust",    "spm", 0,      0,      1000},   // attkpeak
   {30, "envMRels",    "spm", -12000, -12000, 8000},   // <1 msec
   {7,  "envM2Osc",    "spm", 0,      -12000, 12000},  // none
   {11, "envM2Flt",    "spm", 0,      -12000, 12000},  // none

   {51, "oscStep",     "spm", 0,      -120,   120},    // 0
   {52, "oscCent",     "spm", 0,      -99,    99},     // 0
   {8,  "fltCut",      "spm", 13500,  1500,   13500},  // open
   {9,  "fltRes",      "spm", 0,      0,      960},    // none
   {48, "ampLvl",      "spm", 0,      0,      1440},   // none
   {17, "panPos",      "spm", 0,      -500,   500},    // center
   {15, "fxChoir",     "spm", 0,      0,      1000},   // none
   {16, "fxRevrb",     "spm", 0,      0,      1000}    // none


ModLst:
   {0,         "Off1"},
   {2,         "Velo"},
   {3,         "Key"},
   {13,        "Prss"},
   {14,        "PBnd"},
   {16,        "PBSn"},
   {0x80 | 1,  "Mod"},
   {0x80 | 2,  "Brth"},
   {0x80 | 7,  "Vol"},
   {0x80 | 10, "Pan"},
   {0x80 | 11, "Expr"},
   {0x80 | 21, "CC021"},
   {0x80 | 22, "CC022"},
   {0x80 | 23, "CC023"},
   {0x80 | 24, "CC024"},
   {0x80 | 91, "Fx01"},
   {0x80 | 93, "Fx03"}


GenDsc:

// keyRng
Range=0c..10g to 0c..10g   Default=0c to 10g
min and max MIDI key number values for which this zone is active.
Optional, but must be the first generator in list.
(43 keyRange),

// velRng
Range=0..127 to 0..127   Default=0 to 127
min and max MIDI velocity values for which this zone is active.
Optional, but must be preceded only by keyRange in list.
(44 velRange),

//-----------------

// sampBgn
Range=0..32767;   Default=0
Offset % 32768 to Wav's Bgn.  inst only.
(0 startAddrsOffset),

// sampBgnH
Range=0..32767;   Default=0
Offset / 32768 to Wav's Bgn.  inst only.
(4 startAddrsCoarseOffset),

// sampEnd
Range=-32768..0;   Default=0
Offset % 32768 to Wav's End.  inst only.
(1 endAddrsOffset),

// sampEndH
Range=-32768..0;   Default=0
Offset / 32768 to Wav's End.  inst only.
(12 endAddrsCoarseOffset),

// smLpBgn
Range=-32768..32767;   Default=0
Offset % 32768 to Wav's LoopBgn.  inst only.
(2 startloopAddrsOffset),

// smLpBgnH
Range=-32768..32767;   Default=0
Offset / 32768 to Wav's LoopBgn.  inst only.
(45 startloopAddrsCoarseOffset),

// smLpEnd
Range=-32768..32767;   Default=0
Offset % 32768 to Wav's LoopEnd.  inst only.
(3 endloopAddrsOffset),

// smLpEndH
Range=-32768..32767;   Default=0
Offset / 32768 to Wav's LoopEnd.  inst only.
(50 endloopAddrsCoarseOffset),

// overRoot
Range=0c..10g;   Default=-1 (wav's rootkey)
Replace Wav's rootkey.  inst only.
(58 overridingRootKey),

// sampMode
Range=0..3;   Default=0
0=noloop, 1=loop, 3=loop till keyup then tail.
inst only.  Not in global zone.
(54 sampleModes),

// exclInst
Range=0..127;   Default=0
kill other insts within this preset with same exclInst when
this inst starts.
Ex: hihatopen killed on hihatclosed.  inst only.
(57 exclusiveClass),

// key
Range=0c..10g;   Default=-1  (key hit)
all keys replaced by this key.  inst only.
(46 keynum),

// vel
Range=0..127;   Default=-1  (vel hit)
all key vels replaced by this vel.  inst only.
(47 velocity),

// scale
Range=0..1200;   Default=100
Degree to which MIDI key number influences pitch.
0=no pitch change.  100=default semitone scale.  inst only.
(56 scaleTuning),

//-----------------

// lfoODlay
Range=-1200..5000;   Default=-1200
Delay time in absolute timecents from key on until the
LFO begins its upward ramp from zero value.
-32768 = no delay.   Neg = less than 1 sec.
0 = 1 second delay.  Pos = longer than 1 sec.
Ex: a delay of 10 msec would be 1200log2(.01) = -7973.
(23 delayVibLFO),

// lfoOFreq
Range=-16000..4500;   Default=0
Frequency in absolute cents of LFO's triangular period.
Neg = less than 8.176 Hz.  0 = frequency of 8.176 Hz.
Pos = greater than 8.176 Hz.
Ex: a frequency of 10 mHz would be 1200log2(.01/8.176) = -11610.
(24 freqVibLFO),

// lfoO2Osc
Range=-12000..12000;   Default=0
                       Default Mod=Prss+Off1*50
                       Default Mod=Mod+Off1*50
Degree in cents to which full scale LFO excursion will influence oscCent.
Pos = positive excursion increases oscCent.
Neg = positive excursion decreases oscCent.
oscCent is always modified logarithmically.
Deviation is in cents, semitones, and octaves rather than in Hz.
Ex: a value of 100 indicates that oscCent/Step will first rise 1 semitone,
then fall one semitone.
(6 vibLfoToPitch),

//-----------------

// lfoMDlay
Range=-12000..5000;   Default=-12000
Delay time in absolute timecents from key on until the
LFO begins its upward ramp from zero value.
-32768 = no delay.   Neg = less than 1 sec.
0 = 1 second delay.  Pos = longer than 1 sec.
Ex: a delay of 10 msec would be 1200log2(.01) = -7973.
(21 delayModLFO),

// lfoMFreq
Range=-16000..4500;   Default=0
Frequency in absolute cents of LFO's triangular period.
Neg = less than 8.176 Hz.  0 = frequency of 8.176 Hz.
Pos = greater than 8.176 Hz.
Ex: a frequency of 10 mHz would be 1200log2(.01/8.176) = -11610.
(22 freqModLFO),

// lfoM2Osc
Range=-12000..12000;   Default=0
Degree in cents to which full scale LFO excursion will influence oscCent.
Pos = positive excursion increases oscCent.
Neg = positive excursion decreases oscCent.
oscCent is always modified logarithmically.
Deviation is in cents, semitones, and octaves rather than in Hz.
Ex: a value of 100 indicates that oscCent/Step will first rise 1 semitone,
then fall one semitone.
(5 modLfoToPitch),

// lfoM2Flt
Range=-12000..12000;   Default=0
Degree in cents to which a full scale LFO excursion will influence fltCut.
Pos = positive excursion increases fltCut.
Neg = positive excursion decreases fltCut.
fltCut is always modified logarithmically.
Deviation is in cents, semitones, and octaves rather than in Hz.
Ex: a value of 1200 indicates that fltCut will first rise 1 octave,
then fall one octave.
(10 modLfoToFilterFc),

// lfoM2Amp
Range=-960..960;   Default=0
Degree in centibels to which a full scale LFO excursion
will influence ampLvl.
Pos = positive excursion increases ampLvl.
Neg = positive excursion decreases ampLvl.
ampLvl is always modified logarithmically.
Deviation is in decibels rather than in linear amplitude.
Ex: a value of 100 indicates that ampLvl will first rise 10 dB,
then fall 10 dB.
(13 modLfoToVolume),

//-----------------

// key2EnvAHold
Range=-1200..1200;   Default=0
Degree in timecents per KeyNumber units to which
env hold time is decreased by increasing MIDI key number.
time at 5c is always unchanged.
Unit scaling is such that 100 provides time that tracks the keyboard.
An upward octave causes the time to halve.
Ex: if the time were -7973 = 10 msec and the key2envAHold were 50
when 3c was played, the hold time would be 20 msec.
(39 keynumToVolEnvHold),

// key2EnvADcay
Range=-1200..1200;   Default=0
Degree in timecents per KeyNumber units to which
env decay time is decreased by increasing MIDI key number.
time at 5c is always unchanged.
Unit scaling is such that 100 provides time that tracks the keyboard.
An upward octave causes the time to halve.
Ex: if the time were -7973 = 10 msec and the key2envADcay were 50
when 3c was played, the decay time would be 20 msec.
(40 keynumToVolEnvDecay),

// envADlay
Range=-1200..5000;   Default=-12000
Delay time in absolute timecents between key on and the
start of the env attack phase.
-32768 = instantaneous.  Neg = less than 1 sec.
0 = 1 second delay.      Pos = longer than 1 sec.
Ex: a delay of 10 msec would be 1200log2(.01) = -7973.
(33 delayVolEnv),

// envAAtak
Range=-1200..8000;   Default=-12000
Time in absolute timecents from the end of the env Delay Time until
the point at which the env reaches its peak.
The attack is 'convex';
the curve is nominally such that when applied to the decibel ampLvl,
the result is linear in amplitude.
(34 attackVolEnv),

// envAHold
Range=-1200..5000;   Default=-12000
Time in absolute timecents from the end of the attack phase
to the entry into decay phase,
during which env value is held at its peak.
(35 holdVolEnv),

// envADcay
Range=-1200..8000;   Default=-12000
Time in absolute timecents for a 100% change in the env value during
decay phase.
Decay phase linearly ramps toward the sustain level,
causing a constant dB change for each time unit.
If the sustain level were -100dB, the Decay Time would be the time
spent in decay phase.
(36 decayVolEnv),

// envASust
Range=0..1440;   Default=0
Decrease in level expressed in centibels to which env value ramps during
the decay phase.
Sustain level is expressed in centibels of attenuation from full scale.
0 = sustain level is full level;
this implies a zero duration of decay phase regardless of decay time.
1000 = indicates full attenuation.
Pos = decay to the corresponding level.
Neg = same as 0.
Ex: a sustain level which matches an absolute value 12dB below peak
would be 120.
(37 sustainVolEnv),

// envARels
Range=-1200..8000;   Default=-12000
Time in absolute timecents for a 100% change in the env value during
release phase.
Release phase linearly ramps toward 0 from the current level,
causing a constant dB change for each time unit.
If the current level were full scale,
the Release Time would be the time spent in release phase until
100dB attenuation were reached.
0 = 1 sec decay time for a release from full level.
Neg = time less than one second;
Pos = time longer than one second.
Ex: a release time of 10 msec would be 1200log2(.01) = -7973.
(38 releaseVolEnv),

//-----------------

// key2EnvMHold
Range=-1200..1200;   Default=0
Degree in timecents per KeyNumber units to which
env hold time is decreased by increasing MIDI key number.
time at 5c is always unchanged.
Unit scaling is such that 100 provides time that tracks the keyboard.
An upward octave causes the time to halve.
Ex: if the time were -7973 = 10 msec and the key2envMHold were 50
when 3c was played, the hold time would be 20 msec.
(31 keynumToModEnvHold),

// key2EnvMDcay
Range=-1200..1200;   Default=0
Degree in timecents per KeyNumber units to which
env decay time is decreased by increasing MIDI key number.
time at 5c is always unchanged.
Unit scaling is such that 100 provides time that tracks the keyboard.
An upward octave causes the time to halve.
Ex: if the time were -7973 = 10 msec and the key2envMDcay were 50
when 3c was played, the decay time would be 20 msec.
(32 keynumToModEnvDecay),

// envMDlay
Range=-12000..5000;   Default=-12000
Delay time in absolute timecents between key on and the
start of the env attack phase.
-32768 = instantaneous.  Neg = less than 1 sec.
0 = 1 second delay.      Pos = longer than 1 sec.
Ex: a delay of 10 msec would be 1200log2(.01) = -7973.
(25 delayModEnv),

// envMAtak
Range=-12000..8000;   Default=-12000
Time in absolute timecents from the end of the env Delay Time until
the point at which the env reaches its peak.
The attack is 'convex';
the curve is nominally such that when applied to the decibel ampLvl,
the result is linear in amplitude.
(26 attackModEnv),

// envMHold
Range=-12000..5000;   Default=-12000
Time in absolute timecents from the end of the attack phase
to the entry into decay phase,
during which env value is held at its peak.
(27 holdModEnv),

// envMDcay
Range=-12000..8000;   Default=-12000
Time in absolute timecents for a 100% change in the env value during
decay phase.
Decay phase linearly ramps toward the sustain level,
causing a constant dB change for each time unit.
If the sustain level were -100dB, the Decay Time would be the time
spent in decay phase.
(28 decayModEnv),

// envMSust
Range=0..1000;   Default=0
Decrease in level expressed in 0.1% units to which the env value ramps
during the decay phase.
Sustain level is best expressed in percent of full scale.
Because the envA sustain level is expressed as an attenuation from
full scale, the sustain level is analogously expressed as a decrease from
full scale.
0 = sustain level is full level;
this implies a zero duration of decay phase regardless of decay time.
Pos = decay to the corresponding level.
Neg = same as 0.
>1000 = same as 1000.
Ex: sustain level which matches an absolute value 40% of peak
would be 600.
(29 sustainModEnv),

// envMRels
Range=-12000..8000;   Default=-12000
Time in absolute timecents for a 100% change in the env value during
release phase.
Release phase linearly ramps toward 0 from the current level,
causing a constant dB change for each time unit.
If the current level were full scale,
the Release Time would be the time spent in release phase until
100dB attenuation were reached.
0 = 1 sec decay time for a release from full level.
Neg = time less than one second;
Pos = time longer than one second.
Ex: a release time of 10 msec would be 1200log2(.01) = -7973.
(30 releaseModEnv),

// envM2Osc
Range=-12000..12000;   Default=0
Degree in cents to which a full scale excursion of the env
will influence pitch.
Pos = increase in pitch.
Neg = decrease in pitch.
Pitch is always modified logarithmically.
Deviation is in cents, semitones, and octaves rather than in Hz.
Ex: 100 indicates that the pitch will rise 1 semitone at the env peak.
(7 modEnvToPitch),

// envM2Flt
Range=-12000..12000;   Default=0
Degree in cents to which a full scale excursion of the env will
influence filter cutoff frequency.
Pos = increase in filter cutoff frequency.
Neg = decrease in fltCut.
Filter cutoff frequency is always modified logarithmically.
Deviation is in cents, semitones, and octaves rather than in Hz.
Ex: 1000 indicates that the cutoff frequency will rise one octave
at the env attack peak.
(11 modEnvToFilterFc),

//-----------------

// oscStep
Range=-120..120;   Default=0
Pitch offset in semitones which should be applied to the note.
Pos = sound reproduced at a higher pitch.
Neg = lower pitch.
Ex: -4 would cause the sound to be reproduced four semitones flat.
(51 coarseTune),

// oscCent
Range=-99..99;   Default=0
                 Default Mod=PBnd.neg+PBSn*12700
Pitch offset in cents which should be applied to the note.
It is additive with oscStep.
Pos = sound is reproduced at a higher pitch.
Neg = lower pitch.
Ex: -5 would cause the sound to be reproduced five cents flat.
(52 fineTune),

// fltCut
Range=1500..13500;   Default=13500
                     Default Mod=Vel.desc+Vel.desc.switch*-2400
cutoff and resonant frequency of the lowpass filter in
absolute cent units.
lowpass filter is a second order resonant pole pair whose pole frequency
in Hz is defined by this parameter.
When the cutoff frequency exceeds 20kHz and fltRes is 0,
the filter does not affect the signal.
(8 initialFilterFc),

// fltRes
Range=0..960;   Default=0
Height above DC gain in centibels which the filter resonance
exhibits at fltCut.
<=0 = filter is not resonant.
Gain at the cutoff frequency (pole angle) may be less than 0 when
0 is specified.
Filter gain at DC is also affected by this parameter such that
the gain at DC is reduced by half the specified gain.
Ex: For 100, the filter gain at DC would be 5 dB below unity gain,
and the height of the resonant peak would be 10 dB above the DC gain,
or 5 dB above unity gain.
(9 initialFilterQ),

// ampLvl
Range=0..1440;   Default=0
                 Default Mod=Vel.desc.concave+Off1*960
                 Default Mod=Vol.desc.concave+Off1*960
                 Default Mod=Expr.desc.concave+Off1*960
Attenuation in centibels by which a note is attenuated below full scale.
0 = no attenuation;  the note will be played at full scale.
Ex: 60 indicates the note will be played at 6 dB below full scale for
the note.
(48 initialAttenuation),

// panPos
Range=-500..500;   Default=0
                   Default Mod=Pan.neg+Off1*500
Degree in 0.1% units to which the 'dry' audio output of the note is
positioned to the left or right output.
<=-50% = signal is sent entirely to the left output and not sent to right.
>=+50% = signal is sent entirely to the right output and not sent to left.
0 = signal centered between left and right.
Ex: -250 indicates signal is sent at 75% of full level to the left output
and 25% of full level to right output.
(17 pan),

// fxChoir
Range=0..1000;   Default=0
                 Default Mod=Fx03+Off1*200
Degree in 0.1% units to which the audio output of the note is sent to
the chorus effects processor.
<=0% = no signal is sent from this note;
>=100% or more indicates the note is sent at full level.
Note that this parameter has no effect on the amount of this signal sent
to the 'dry' or unprocessed portion of the output.
Ex: 250 indicates that the signal is sent at 25% of full level
(attenuation of 12 dB from full level) to the chorus effects processor.
(15 chorusEffectsSend),

// fxRevrb
Range=0..1000;   Default=0
                 Default Mod=Fx01+Off1*200
Degree in 0.1% units to which the audio output of the note is sent to
the reverb effects processor.
<=0% = no signal is sent from this note;
>=100% or more indicates the note is sent at full level.
Note that this parameter has no effect on the amount of this signal sent
to the 'dry' or unprocessed portion of the output.
Ex: 250 indicates that the signal is sent at 25% of full level
(attenuation of 12 dB from full level) to the reverb effects processor.
(16 reverbEffectsSend)

Updated: ; stephen.hazel over at gmail.com