synthv1 is an old-school all-digital 4-oscillator subtractive polyphonic synthesizer with stereo fx. It is developed by rncbc aka Rui Nuno Capela.
The synthesizer consists of two identical "synths" with each two oscillators and associated filters and envelope controls. The outputs of these synths are mixed together for the final output.
Each synth consists of blocks with different functions. The following abbreviations for these modules are used in the interface as well as the parameter list:
Abbr. | Name |
---|---|
DCO | Digitally Controlled Oscillator |
DCF | Digitally Controlled Filter |
LFO | Low-Frequency Oscillator |
DCA | Digitally Controlled Amplifier |
OUT | Output controls |
DEF | Controller ranges |
synthv1 offers various effect units that can postprocess the signal. These abbreviations are used in the interface as well as the parameter list for the effects units:
Abbr. | Name |
---|---|
CHO | Chorus |
FLA | Flanger |
PHA | Phaser |
DEL | Delay |
REV | Reverb |
DYN | Dynamic (compressor/limiter) |
The specifics will be described in the parameter overview below.
synthv1 features standard linear ADSR (Attack, Decay, Sustain, Release) envelope generators. The Attack, Decay and Release specify times, whereas Sustain specifies a level.
- The attack parameter specifies how long it will take for the envelope to reach its maximum value after the start of the note.
- The decay parameter specifies how long it will take to reach the sustain level after the attack.
- The sustain parameter specifies the level of the envelope in the sustain phase. The envelope will stay in the sustain phase until the note is released.
- Finally, the release parameter specifies how long it takes for the envelope to completely fade out after the sustain phase.
In addition to adjusting the A/D/S/R parameters, the envelope can also be edited directly by dragging control points in the GUI.
This section provides an overview of all parameters that control the sound generation and post-processing. Changes these parameters take effect immediately, unless otherwise noted.
Note: The GUI shows percentages, so a range of 0..1 of internal parameter values is shown as 0..100. The internal parameter values will be seen in the plugin host when using synthv1 as a LV2 plugin. The parameter descriptions in upcoming sections always refer to the internal parameter range.
The per-synth parameters are replicated exactly for Synth 1 and 2, but will be
described only once.
In abbreviations such as DCOx
the x
is used as a stand-in for the Synth
number, Synth 1 will have DCO1
and Synth 2 DCO2
.
Each synth has two oscillators. These oscillators serve as the signal source for subtractive synthesis.
Symbol: DCOx_SHAPE1
Configures the basic waveform generated by oscillator 1.
Settings:
Name | Description |
---|---|
Pulse | Rectangular pulse train (or square wave) |
Saw | Sawtooth wave (or triangle wave) |
Sine | Sine wave |
Rand | Sample & Hold noise |
Noise | White noise |
Symbol:DCOx_WIDTH1
This parameter modulates the wave shape for oscillator 1:
- For a Pulse wave this sets the pulse width, with 0 equivalent to an infinitesimally narrow pulse and a value of 1 equivalent to a full square wave. At a value of exactly 0 nothing will be audible.
- For a Saw wave this sets the waveform from left-facing saw (0.0), to triangle wave (0.5) to right-facing saw (1.0).
- For a Sine wave this changes the center point of the sine wave.
- For Rand this changes the frequency with which the noise is sampled.
- For Noise this changes the random seed.
Symbol: DCOx_BANDL1
If this parameter is turned on, the output of oscillator 1 is band-limited (TODO: to what band?
from 1/256th to 1/4th of the sample rate according to synthv1_wave.cpp
).
The Noise waveform cannot be band-limited.
Symbol: DCOx_SHAPE2
Waveform shape for oscillator 2. See parameter DCOx Wave Shape 1 for the list of available waveforms.
Symbol: DCOx_WIDTH2
Waveform width for oscillator 2. See parameter DCOx Wave Width 1 for a description.
Symbol: DCOx_BANDL2
If this parameter is turned on, the output of oscillator 2 is band-limited (TODO: to what band?).
Symbol: DCOx_BALANCE
Cross-fades between oscillator 1 and oscillator 2. At a value of 0.0 only the output of oscillator 1 is audible, at a value of 0.5 both oscillators are equally loud, and at a value of 1.0 only oscillator 2 is audible.
Symbol: DCOx_DETUNE
A detune offset applied symetrically to oscillator 1 and 2. Together with DCOx Tuning and DCOx Detune this parameter determines the tuning of the oscillators.
All tuning settings take effect after the next note.
Symbol: DCOx_PHASE
Phase difference between oscillators. Change takes effect on the next note.
Unit: A value of 1.0 corresponds to a 180 degree phase difference.
Symbol: DCOx_OCTAVE
A course tuning offset (in octaves) applied to both oscillators. Together with DCOx Tuning and DCOx Detune this parameter determines the tuning of the oscillators.
All tuning settings take effect after the next note.
Symbol: DCOx_TUNING
A finer tuning offset (in semitones) applied to both oscillators. Together with DCOx Tuning and DCOx Detune this parameter determines the tuning of the oscillators.
The frequency of oscillator 1 and 2 (in semitones) are determined using the following equation:
note = key + octave * 12.0 + tuning * 1.0
freq1 = note - detune * 0.5
freq2 = note + detune * 0.5
To create the effect of separating both synths from each other by a musical interval, use the following parameter offsets (12-tone equal temperament):
Steps | Interval | Octave | Tuning |
---|---|---|---|
1 | Minor Second | 0.08 | 0.04 |
2 | Major Second | 0.16 | 0.08 |
3 | Minor Third | 0.25 | 0.00 |
4 | Major Third | 0.33 | 0.04 |
5 | Perfect Fourth | 0.41 | 0.08 |
6 | Augmented Fourth | 0.50 | 0.00 |
7 | Perfect Fifth | 0.58 | 0.04 |
8 | Minor Sixth | 0.66 | 0.08 |
9 | Major Sixth | 0.75 | 0.00 |
10 | Minor Seventh | 0.83 | 0.04 |
11 | Major Seventh | 0.91 | 0.08 |
12 | Eighth / Octave | 1.00 | 0.00 |
All tuning settings take effect after the next note.
Symbol: DCOx_GLIDE
If the value of this parameter is larger than 0, the synth will glide between the frequencies of subsequent notes (portamento), with a speed determined by the parameter. A larger value corresponds to a slower speed.
Symbol: DCOx_ENVTIME
This parameter scales the envelope durations. A larger value makes the envelope slower. Envelope stage durations (always between 0.0 and 1.0) are converted to milliseconds in the following way
msec = duration * envtime * 10000
The default value of 0.5 sets a maximum of 5 seconds per stage. This parameter affects all of the envelopes in this synth (the DCF, LFO and DCA envelope).
As conventional in subtractive synthesis a filter is applied to shape the output of the oscillators. Different types of filter can be chosen between, but only one type of filter can be active at a time per synth.
Symbol: DCFx_CUTOFF
Base cutoff frequency. Depending on the kind of filter this determines either the frequency at which the filter starts affecting the signal, or the center frequency of the filter. The actual cutoff frequency is affected by the filter envelope, and LFO1 if so configured. the cutoff frequency does not follow the keyboard.
Symbol: DCFx_RESO
The filter resonance boosts the signal at the cutoff frequency of the filter.
Symbol: DCFx_TYPE
Set the type of filter. The following filter types can be chosen:
- Low-pass. Passes frequencies below the cutoff frequency and attenuates frequencies above it.
- Band-pass. Passes a range of frequencies around the cutoff frequency.
- High-pass. Passes frequencies above the cutoff frequency and attenuates frequencies below it.
- Notch. Attenuates the frequencies around the cutoff frequency and passes the rest.
Symbol: DCFx_SLOPE
This parameter switches between two different kinds of filters with a different falloff slope:
- Hal Chamberlin's state variable 12dB/oct
- Stilson/Smith Moog 24dB/oct
Symbol: DCFx_ENVELOPE
The filter envelope controls how the cutoff frequency of the filter evolves over time. The output of the envelope is multiplied with the cutoff frequency.
Symbol: DCFx_ATTACK
Attack time of the filter envelope.
Symbol: DCFx_DECAY
Decay time of the filter envelope.
Symbol: DCFx_SUSTAIN
Sustain level of the filter envelope.
Symbol: DCFx_RELEASE
Release time of the filter envelope.
The Low-Frequency Oscillator osciallates at a lower rate, usually below the audible spectrum, and can modulate a number of other parameters in the synth to vary the sound a bit.
Symbol: LFOx_SHAPE
Waveform shape for the LFO. These are the same waveforms as available for the DCO so see parameter DCOx Wave Shape 1 for the list of available waveforms.
Symbol: LFOx_WIDTH
Waveform width for the LFO. See parameter DCOx Wave Width 1 for a description.
Symbol: LFOx_RATE
Base rate (frequency) for the LFO. At a value of 0, the frequency of the LFO is 0.4 Hz. At a value of 1, it is 40.0 Hz. Values inbetween interpolate linearly between these values.
Symbol: LFOx_SWEEP
This parameter controls how much the LFO envelope (determined by Attack, Decay, Sustain, Release) modulates the LFO rate. Normally the LFO envelope only affects the amplitude. It will result in the LFO speeding up and slowing down during the sound. The value can be negative to reverse the direction of the change.
Symbol: LFOx_PITCH
This parameter controls how much the LFO output modulates the DCO pitch. The value can be negative to reverse the direction of the change.
Symbol: LFOx_CUTOFF
This parameter controls how much the LFO output modulates the DCF cutoff. The value can be negative to reverse the direction of the change.
Symbol: LFOx_RESO
This parameter controls how much the LFO output modulates the DCF resonance. The value can be negative to reverse the direction of the change.
Symbol: LFOx_PANNING
This parameter controls how much the LFO output modulates the OUT stereo panning. The value can be negative to reverse the direction of the change.
Symbol: LFOx_VOLUME
This parameter controls how much the LFO output modulates the OUT volume. The value can be negative to reverse the direction of the change.
Symbol: LFOx_ATTACK
Attack time of the LFO envelope.
Symbol: LFOx_DECAY
Decay time of the LFO envelope.
Symbol: LFOx_SUSTAIN
Sustain level of the LFO envelope.
Symbol: LFOx_RELEASE
Release time of the LFO envelope.
The amplifier envelope controls how the volume of the sound evolves over time.
Symbol: DCAx_VOLUME
Main volume control of the amplifier.
TODO: what would be the reason to set the volume here instead of in OUT?
Symbol: DCAx_ATTACK
Attack time of the amplifier envelope.
Symbol: DCAx_DECAY
Decay time of the amplifier envelope.
Symbol: DCAx_SUSTAIN
Sustain level of the amplifier envelope.
Symbol: DCAx_RELEASE
Release time of the amplifier envelope.
Symbol: OUTx_WIDTH
Perceived stereo width of the sound.
Symbol: OUTx_PANNING
Left-right stereo panning.
Symbol: OUTx_VOLUME
Scales the output volume for this synth.
Various MIDI controller ranges and sensitivities are grouped here.
Symbol: DEFx_PITCHBEND
Scaling value for the effect of the pitchbend controller on the pitch of this synth.
Symbol: DEFx_MODWHEEL
Scaling value for the effect of the moulation wheel controller on the amplitude of modulation of the pitch of this synth.
Symbol: DEFx_PRESSURE
Scaling value for the effect of the pressure (after-touch) on the volume from this synth.
Symbol: DEFx_VELOCITY
Scaling value for the effect of the velocity (note-on) on the volume from this synth.
Symbol: DEFx_CHANNEL
MIDI channel that this synth should listen to, or OMNI to listen to all.
Symbol: DEFx_MONO
Switches the voice assigment of the synth between polyphonic (value 0.0) and monophonic (value >0.0) mode. In polyphonic mode there is a polyphony of 32 voices.
Various effects units are available. The effects apply to the combined signal of both synths.
Effects are processed in the following fixed order:
- Chorus
- Flanger
- Phaser
- Delay
- Reverb
- Compressor
- Limiter
Chorus is an effects unit that simulates a choir of similar sounds.
Symbol: CHO1_WET
Determines how strong the processed (wet) filter output will be mixed into the unprocessed (dry) signal. A value of 0.0 switches the effect off, any other value switches the effect on. With a value of 1.0 the wet signal is mixed one to one with the dry signal.
Symbol: CHO1_DELAY
Delay parameter of the chorus effect.
Symbol: CHO1_FEEDB
Feedback parameter of the chorus effect.
Symbol: CHO1_RATE
Rate parameter of the chorus effect.
Symbol: CHO1_MOD
Modulation parameter of the chorus effect.
Flanging is an audio effect produced by mixing two identical signals together, one signal delayed by a small and gradually changing period.
Symbol: FLA1_WET
Determines how strong the processed (wet) filter output will be mixed into the unprocessed (dry) signal. A value of 0.0 switches the effect off, any other value switches the effect on. With a value of 1.0 the wet signal is mixed one to one with the dry signal.
Symbol: FLA1_DELAY
Delay parameter of the flanger effect.
Symbol: FLA1_FEEDB
Feedback parameter of the flanger effect.
Symbol: FLA1_DAFT
Daft parameter of the flanger effect.
Symbol: PHA1_WET
Determines how strong the processed (wet) filter output will be mixed into the unprocessed (dry) signal. A value of 0 switches the effect off, any other value switches the effect on. With a value of 1 the wet signal is mixed one to one with the dry signal.
Symbol: PHA1_RATE
Rate parameter of the phaser effect.
Symbol: PHA1_FEEDB
Feedback parameter of the phaser effect.
Symbol: PHA1_DEPTH
Depth parameter of the phaser effect.
Symbol: PHA1_DAFT
Daft parameter of the phaser effect.
The delay effects unit mixes the signal with a delayed copy of itself, resulting in an echo-like effect.
Symbol: DEL1_WET
Determines how strong the processed (wet) filter output will be mixed into the unprocessed (dry) signal. A value of 0.0 switches the effect off, any other value switches the effect on. With a value of 1.0 the wet signal is mixed one to one with the dry signal.
Symbol: DEL1_DELAY
Delay parameter of the delay effect.
- If Delay BPM is zero, this indicates a time in seconds.
- If Delay BPM is non-zero, this is relative to the BPM value and indicates a time in beats.
Symbol: DEL1_FEEDB
Feedback parameter of the delay effect.
Symbol: DEL1_BPM
BPM parameter of the delay effect.
Symbol: DEL1_BPMSYNC
BPM sync switch of the delay effect. If this parameter has a value larger than 0, the Delay BPM value is synchronized to the transport.
Symbol: DEL1_BPMHOST
Stores the original BPM value when BPM sync is enabled.
The reverb effect simulates sound reflections in a room.
Symbol: REV1_WET
Determines how strong the processed (wet) filter output will be mixed into the unprocessed (dry) signal. A value of 0.0 switches the effect off, any other value switches the effect on. With a value of 1.0 the wet signal is mixed one to one with the dry signal.
Symbol: REV1_ROOM
Size of the simulated room for the reverb effect.
Symbol: REV1_DAMP
Symbol: REV1_FEEDB
Symbol: REV1_WIDTH
Compressor and limiter controls for the final output signal.
Symbol: DYN1_COMPRESS
Simulates a compressor effect on the output signal. A compressor increases the perceived loudness by reducing the dynamic range. This is a binary option, the compressor is either off (value 0.0) or on (value>0.0).
Symbol: DYN1_LIMITER
Simulates a limiter on the output signal. This is a binary option, the limiter is either off (value 0.0) or on (value>0.0).
synthv1 responds to the following MIDI messages:
Message type | Description |
---|---|
8x (Note Off) |
Release a note |
9x (Note On) |
Play a note |
Ax (Polyphonic Aftertouch) |
Set pressure for a voice (scales velocity) |
Bx (Control Change) |
Change controller value (see 'MIDI Controllers' section) |
Dx (Channel Aftertouch) |
Set pressure (scales velocity) |
Ex (Pitch Bend) |
Change pitch of notes (range determined by parameter DEF1 Pitchbend) |
By default the synths receives events on all MIDI channels. This can be changed with the DEFx Channel parameter.
The following MIDI controller events are implemented by synthv1. All controller changes take effect immediately:
CC, RPN or NRPN | Parameter |
---|---|
CC 1 (Modulation Wheel MSB) | Modulates pitch (range determined by parameter DEF1 Modwheel) |
CC 7 (Main Volume MSB) | Volume Coarse |
CC 10 (Panning MSB) | Stereo Panning (binary, unless started with -fp option) |
CC 64 (Sustain Pedal) | Enable/Disable Sustain |
CC 120 (All Sounds Off) | Turn all sounds on channel off |
CC 121 (Reset All Controllers) | Set all controllers to default values |
CC 123 (All Notes Off) | Release all notes on channel |
Manual written by Wladimir J. van der Laan.