Dexter is a complex, 4 operator wavetable oscillator with DX style frequency modulation (FM) and extensive control possibilities. Its large number of possibilities and options enables it to produce a wide range of complex sounds, textures and timbres.
FM synthesis is a technique that is often shied away from due to its apparent complex nature and unfamiliar parameters. This perception usually stems from the bad interface design in the synthesiser that popularised the technique in the 1980s, the Yamaha DX7.
Dexter approaches FM synthesis from a usability perspective, as in all the parameters are brought out and made accessible to the user. It employs the traditional 4 operator, algorithmic approach with some neat twists, such as wavetables, phase distortion and sync in order to broaden the sonic pallet of FM synthesis. Sometimes it can be mellow, pristine and chilled, however with a simple knob twist it can becoming growling, snarling and noisy. Almost all of the parameters can be modulated by control voltages, allowing for easy exploration of FM, leading to new sounds and possibilities.
The master controls are the main go-to controls in Dexter for basic parameters such as tuning, chords, algorithm selection and overall shape and brightness.
An algorithm describes how each operator modulates and synchronises another, and to which output they are directed to, via a routing matrix. It can be thought of as a recipe for a particular type of sound, as algorithms are often optimised for particular timbres e.g. metallic, brassy, smooth, vocal etc. Dexter offers 23 algorithms where 12 of these share operators for both voices A and B, and the remaining 11 dedicate operators to either A or B allowing for independent timbres from each voice.
By default, the algorithms also determine the synchronisation source for each operator, where operators synchronise to their parent operator. This can be changed in the context menu to “neighbour” where an operator syncs to the operator to its right on the panel i.e. 1 → 2 , 2 → 3 and 3 → 4.
Dexter features 4 operators shared between two “Voices”, A and B. Voice A is able to output chords of up to 7 notes spread across stereo outputs (A L and A R), whilst Voice B outputs a mono signal from “B Out”. Both voices can be independently tuned allowing for multi-timbral patches. The individual operators outputs, OP 1 to 4, tap a signal directly from an operator of either Voice A or B regardless of the chosen algorithm.
Below is a diagram of the controls common to each operator:
This menu allows you change the operator’s wavetable (or bank), and the sync and phasor shaping modes / methods.
Dexter features 35 different wavetables, providing a vast pallet of timbres and textures to work with. By default the “Opal” table is loaded, but this can be changed by going to the “Wavetable” page in the settings menu, and turning the blue wavetable knob to select another table. The following list gives a description about each table.
|Opal:||Based on the waves from a chip used in an early 90’s PC soundcard|
|Basic:||Sine, Triangle, Sawtooth and Pulse with PWM.|
|TeeEks:||Waves from a popular 1U rack unit FM synthesiser.|
|SinHarm:||Sine wave that increases in harmonic pitch.|
|AddSin:||Sine wave with harmonic overtones that increase with pitch.|
|AMHarm:||Sine wave that increases in harmonic pitch but also amplitude modulated with another sine wave.|
|SwpHarm:||Sine wave that increases in harmonic pitch but also amplitude modulated with a falling ramp wave. Mimics a resonant filter sweep.|
|AddSaw:||Additive synthesis of a sawtooth wave using an increasing number of partials.|
|AddSqr:||Additive synthesis of a square wave using an increasing number of partials.|
|AddBank:||Waveforms generated from partials with random harmonics.|
|Oboe:||Single cycle wave snippets of an oboe.|
|Sax:||Single cycle wave snippets of a saxophone.|
|Cello1:||Single cycle wave snippets of a cello.|
|Cello2:||Single cycle wave snippets of a cello.|
|Violin:||Single cycle wave snippets of a violin.|
|Piano:||Single cycle wave snippets of a piano.|
|OvrTne1:||Soft yet rich in harmonic overtones.|
|OvrTne2:||Soft yet rich in harmonic overtones.|
|Sym:||Symmetrical above and below the 0V line.|
|Chip1:||Lo-fi computer tones.|
|Chip2:||Lo-fi computer tones.|
|BitCrush1:||Bank of heavily bitcrushed waveforms.|
|BitCrush2:||Bank of heavily bitcrushed waveforms.|
|Voice1:||Softer, choir vocal tones.|
|Voice2:||Richer, choir vocal tones.|
|Voice5:||Nasal vocal tones.|
|PWM:||Pulse width modulated square wave.|
|BiPls:||Square wave that is gradually “pinched” to middle of the wave cycle.|
|SawGap1:||Saw wave with a gradually increasing gap in the middle of the wave cycle.|
|SawGap2:||Saw wave that is gradually “pinched” to middle of the wave cycle.|
|VGame:||Collection of lo-fi video game type waveforms.|
The following lists show the different phasor shaping and operator sync modes.
|Bend||The phasor is dragged to one side from the middle so that the 1st half of the table is read faster than the last half.|
|Tilt||The phasor reads the table faster and then waits at the end until a new cycle begins|
|Lean||The phasor follows a curve, so the table is initial read slowly then gradually faster towards the end of the cycle|
|Twist||Twists the middle third of the phasor around the centre, making read the table forwards, backwards, then forwards again|
|Wrap||The end of the phasor is wrapped back to the beginning several times, creating an effect similar to classic hard sync|
|Mirror||Both ends of the phasor are mirrored when either reaches the start or end|
|Reflect||At a given point, the phasor is switched from an rising ramp to a falling ramp|
|Pulse||The phasor is switched off an on at several positions, giving a type of PWM effect|
|Step 4||Blends the phasor into a 4-step staircase, creating a very lo-fi, bit crushed sound|
|Step 8||Same as above but with an 8-step staircase|
|Step 16||Same as above but with an 16-step staircase|
|Var Step||Gradually makes the phasor increasingly stepped until it dissapears completely|
|Hard||Classic hard sync effect where the phasor restarts from the beginning|
|5th||Reads the table at 1.5x speed until another sync event occurs, where it will return to 1x|
|+1 Oct||Reads the table at 2x speed until another sync event occurs, where it will return to 1x|
|-1 Oct||Reads the table at 0.5x speed until another sync event occurs, where it will return to 1x|
|Rise 1||A value of 0.5 is added to the read speed until it reaches 2x, where it after it will return to 1x|
|Rise 2||A value of 0.5 is added to the read speed until it reaches 4x, where it after it will return to 1x|
|Fall 1||Same as Rise 1 but in reverse|
|Fall 2||Same as Rise 2 but in reverse|
|Pull 1||Is pulled back by 1/2 a cycle|
|Pull 2||Is pulled back by 1/4 a cycle|
|Pull 2||Is pushed back by 1/4 a cycle|
|Pull 2||Is pushed back by 1/2 a cycle|
|Hold||Is held at its current value until the next sync signal is received|
|One Shot||When it receives a sync event, phasor starts from the beginning and performs one cycle before waiting for another event|
|Lock Shot||Same as above, however, the operator rejects any sync events whilst performing a cycle. This creates a harmonic locking effect|
Dexter features 4 assignable modulation inputs. These two menus allow you to route each modulation input to 13 different operator parameters.
The following table gives all of the possible modulation destinations.
|Pitch||V/Oct modulation of the operator’s pitch|
|Multiple||Operator’s frequency multiplier|
|Wave Position||The position of the wave table the operator reads from|
|Wave Bank||Selects which wave bank the operator reads from|
|Ext FM||External FM input that is mixed with the operator’s modulator’s signal|
|Ext Sync||External synchronisation input. Syncs when a zero to positive transition is detected|
|Shape Mode||Selects the phasor shaping mode|
|Post Shape||Selects if the FM is performed before or after the phasor shaping|
|Sync Mode||Selects the operator’s sync mode|
|Sync Enable||Activates the operator’s synchronisation mode|
|Weak Sync||Enables weak synchronisation|
The operators generate a tone using lookup wavetable synthesis using a rising ramp, known as a read phasor, to read the contents of a table. Waves can be scanned through by cross fading between adjacent tables within the same bank of tables. FM synthesis is achieved by offsetting the read phasor’s value with another signal, effectively speeding up / slowing down the read speed. Whilst this is technically known as phase-modulation (PM) and is not true FM, this still modulates the frequency and gives the same effect. If anything, PM is easier to implement, and it is a standard method in commercial FM synthesizers such as the DX series. To expand the versatility of FM synthesis, the read phasor can be shaped in several ways that can distort and mangle the output waveform. Dexter offers 12 shaping modes. By default, the modulator signal is added to the read phasor before shaping, however it can be added post shaping by engaging the “Post Shpe” button. This allows for an alternative timbre and at times can make the shaping sound more pleasant.
Half of Dexter’s front panel is covered in jacks, where most of these are in fact CV inputs. However, whilst it seems intimidating at first glance, there is a lot a of repetition. The following table describes the functionality of each jack:
|A L and A R||Stereo outputs of voice A. Chord notes are spread between the L and R outputs, or summed to the L output if only L is connected.|
|OP 1 to 4||These are the individual output taps from a voice's operators. Can be either pre- or post-fade level.|
|B Out||Mono output of voice B|
|A and B V/Oct||Volts per octave pitch control of voices A and B|
|Inv||Chord inversion CV|
|Detune||Chord detune CV|
|FB (Feedback)||Feedback CV|
|Pitch||Volts per octave pitch control. Note: 'Mul' can be modulated via an assignable mod input|
|Wave||Modulates the wave table position|
|Shape||Modulates the phasor shape|
|Level||Modulates the operator level|
|Mod 1 to 4||Assignable modulation inputs|
This menu is accessed by right-clicking on any blank area of Dexter.
Omri Cohen has created this great introductory video for Dexter
Andrew Mercer has created a great set of tutorial videos on how to use Dexter