Skip to content

Instantly share code, notes, and snippets.

@laanwj
Last active February 2, 2022 22:30
Show Gist options
  • Save laanwj/a197c90789e9b8c67dc2 to your computer and use it in GitHub Desktop.
Save laanwj/a197c90789e9b8c67dc2 to your computer and use it in GitHub Desktop.
synthv1 manual

SynthV1 manual

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.

Synth modules

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

FX units

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.

Envelopes

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.

Parameters

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.

Synth 1 and 2

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.

Digitally Controlled Oscillator (DCO)

Each synth has two oscillators. These oscillators serve as the signal source for subtractive synthesis.

DCOx Wave Shape 1

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

DCOx Wave Width 1

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.

DCOx Wave Bandlimit 1

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.

DCOx Wave Shape 2

Symbol: DCOx_SHAPE2

Waveform shape for oscillator 2. See parameter DCOx Wave Shape 1 for the list of available waveforms.

DCOx Wave Width 2

Symbol: DCOx_WIDTH2

Waveform width for oscillator 2. See parameter DCOx Wave Width 1 for a description.

DCOx Wave Bandlimit 2

Symbol: DCOx_BANDL2

If this parameter is turned on, the output of oscillator 2 is band-limited (TODO: to what band?).

DCOx Balance

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.

DCOx Detune

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.

DCOx Phase

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.

DCOx Octave

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.

DCOx Tuning

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.

DCOx Glide

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.

DCOx Envtime

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).

Digitally Controlled Filter (DCF)

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.

DCFx Cutoff

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.

DCFx Resonance

Symbol: DCFx_RESO

The filter resonance boosts the signal at the cutoff frequency of the filter.

DCFx Type

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.

DCFx Slope

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

DCFx Envelope

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.

DCFx Attack

Symbol: DCFx_ATTACK

Attack time of the filter envelope.

DCFx Decay

Symbol: DCFx_DECAY

Decay time of the filter envelope.

DCFx Sustain

Symbol: DCFx_SUSTAIN

Sustain level of the filter envelope.

DCFx Release

Symbol: DCFx_RELEASE

Release time of the filter envelope.

Low-Frequency Oscillator (LFO)

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.

LFO1 Wave Shape 1

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.

LFOx Wave Width

Symbol: LFOx_WIDTH

Waveform width for the LFO. See parameter DCOx Wave Width 1 for a description.

LFOx Rate

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.

LFOx Sweep

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.

LFOx Pitch

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.

LFOx Cutoff

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.

LFOx Resonance

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.

LFOx Panning

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.

LFOx Volume

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.

LFOx Attack

Symbol: LFOx_ATTACK

Attack time of the LFO envelope.

LFOx Decay

Symbol: LFOx_DECAY

Decay time of the LFO envelope.

LFOx Sustain

Symbol: LFOx_SUSTAIN

Sustain level of the LFO envelope.

LFOx Release

Symbol: LFOx_RELEASE

Release time of the LFO envelope.

Digitally Controlled Amplifier (DCA)

The amplifier envelope controls how the volume of the sound evolves over time.

DCAx Volume

Symbol: DCAx_VOLUME

Main volume control of the amplifier.

TODO: what would be the reason to set the volume here instead of in OUT?

DCAx Attack

Symbol: DCAx_ATTACK

Attack time of the amplifier envelope.

DCAx Decay

Symbol: DCAx_DECAY

Decay time of the amplifier envelope.

DCAx Sustain

Symbol: DCAx_SUSTAIN

Sustain level of the amplifier envelope.

DCAx Release

Symbol: DCAx_RELEASE

Release time of the amplifier envelope.

Output controls (OUT)

OUTx Stereo Width

Symbol: OUTx_WIDTH

Perceived stereo width of the sound.

OUTx Stereo Panning

Symbol: OUTx_PANNING

Left-right stereo panning.

OUTx Volume

Symbol: OUTx_VOLUME

Scales the output volume for this synth.

Controller ranges (DEF)

Various MIDI controller ranges and sensitivities are grouped here.

DEFx Pitch bend sensitivity

Symbol: DEFx_PITCHBEND

Scaling value for the effect of the pitchbend controller on the pitch of this synth.

DEFx Modulation wheel sensitivity

Symbol: DEFx_MODWHEEL

Scaling value for the effect of the moulation wheel controller on the amplitude of modulation of the pitch of this synth.

DEFx Pressure sensitivity

Symbol: DEFx_PRESSURE

Scaling value for the effect of the pressure (after-touch) on the volume from this synth.

DEFx Velocity sensitivity

Symbol: DEFx_VELOCITY

Scaling value for the effect of the velocity (note-on) on the volume from this synth.

DEFx Channel

Symbol: DEFx_CHANNEL

MIDI channel that this synth should listen to, or OMNI to listen to all.

DEFx Mono

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.

Effects

Various effects units are available. The effects apply to the combined signal of both synths.

Effects are processed in the following fixed order:

  1. Chorus
  2. Flanger
  3. Phaser
  4. Delay
  5. Reverb
  6. Compressor
  7. Limiter

Chorus (CHO)

Chorus is an effects unit that simulates a choir of similar sounds.

Chorus Wet

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.

Chorus Delay

Symbol: CHO1_DELAY

Delay parameter of the chorus effect.

Chorus Feedback

Symbol: CHO1_FEEDB

Feedback parameter of the chorus effect.

Chorus Rate

Symbol: CHO1_RATE

Rate parameter of the chorus effect.

Chorus Modulation

Symbol: CHO1_MOD

Modulation parameter of the chorus effect.

Flanger (FLA)

Flanging is an audio effect produced by mixing two identical signals together, one signal delayed by a small and gradually changing period.

Flanger Wet

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.

Flanger Delay

Symbol: FLA1_DELAY

Delay parameter of the flanger effect.

Flanger Feedback

Symbol: FLA1_FEEDB

Feedback parameter of the flanger effect.

Flanger Daft

Symbol: FLA1_DAFT

Daft parameter of the flanger effect.

Phaser (PHA)

Phaser Wet

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.

Phaser Rate

Symbol: PHA1_RATE

Rate parameter of the phaser effect.

Phaser Feedback

Symbol: PHA1_FEEDB

Feedback parameter of the phaser effect.

Phaser Depth

Symbol: PHA1_DEPTH

Depth parameter of the phaser effect.

Phaser Daft

Symbol: PHA1_DAFT

Daft parameter of the phaser effect.

Delay (DEL)

The delay effects unit mixes the signal with a delayed copy of itself, resulting in an echo-like effect.

Delay Wet

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.

Delay Delay

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.

Delay Feedback

Symbol: DEL1_FEEDB

Feedback parameter of the delay effect.

Delay BPM

Symbol: DEL1_BPM

BPM parameter of the delay effect.

Delay BPM (sync)

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.

Delay BPM (host)

Symbol: DEL1_BPMHOST

Stores the original BPM value when BPM sync is enabled.

Reverb (REV)

The reverb effect simulates sound reflections in a room.

Reverb Wet

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.

Reverb Room

Symbol: REV1_ROOM

Size of the simulated room for the reverb effect.

Reverb Damp

Symbol: REV1_DAMP

Reverb Feedback

Symbol: REV1_FEEDB

Reverb Width

Symbol: REV1_WIDTH

Dynamic (DYN)

Compressor and limiter controls for the final output signal.

Dynamic Compressor

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).

Dynamic Limiter

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).

MIDI

MIDI Messages

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.

MIDI Controllers

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

Credits

Manual written by Wladimir J. van der Laan.

@unfa
Copy link

unfa commented May 1, 2017

Thank you! Could you add some information about the Formant filter slope?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment