Myriad has a selection of oscillator models; each one is driven by a digital algorithm, using Bitwave Synthesis. Bitwave is a collection of methods for creating high-frequency streams of binary patterns, that are converted into sound using analog circuitry. Each model has two paramters of control: frequency and ϵ. The ϵ parameter creates tonal changes, and works in a different way with each model.

(0) Saw

Generates a saw wave with variable pulse width.

ϵ controls the pulse width of the saw wave, from around 25% of wavelength to 0.25%, moving from a full sound to a thiner sound.

Saw spectrum

(1) Chirp

The Chirp oscillator creates sound with sequences of tiny pulses.

ϵ controls how the spread and frequency of the pulses changes, creating tonal variations.

Chirp spectrum

(2) Sharkteeth

Multiple sawtooth ramps enveloped by a square wave.

ϵ controls the number of teeth per cycle (1 to 20), allowing you to precisely set the dominant upper harmonic.

Sharkteeth spectrum

(3) Pulse

A pulse wave.

ϵ controls the pulse width.

Pulse spectrum

(4) Resonant Chirp

A variation of the chirp model, with a more resonant tone.

ϵ controls how the width and frequency of the pulses changes, creating tonal variations.

Resonant Chirp spectrum

(5) Triangle

ϵ varies the position of the peak point of the triangle.

Triangle spectrum

(6) Piranha

The name will make sense when you see the waveform: a triangle wave with a secondary triangle sub-oscillator running at a higher rate. The sub-oscillator creates teeth within the triangle envelope, adding harmonics that ride on top of the triangle’s natural −12 dB/octave rolloff.

ϵ controls the number of teeth created by the sub-oscillator — low numbers give a gentle shimmer, high numbers give a dense, bright texture and bite.

Piranha spectrum

(7) Parasine

A parabolic approximation of a sine wave oscillator.

ϵ applies waveshaping, adding subtle harmonics.

Parasine spectrum

(8) Formant

An oscillator with voice-like harmonics

ϵ varies from ‘ahh’ to ‘ooo’ tonality.

Formant spectrum

(9) Metallic

FM style metallic sounds

ϵ increases inharmonic partials.

Metallic spectrum

(10) Random Walk Noise

Generates varied types of noise, using a model of a random walk.

Frequency changes the speed of the random generator, and the balance of low and high frequencies in the noise.

ϵ changes the type of noise. This control is a bit like tuning a radio; it moves through different sounds from pops and crackles to whistles to full frequency noise.

Noise spectrum

(11) Bitnoise

A noise generator with variable tone. Sounds vary from white(ish) noise to occasional pops and crackles.

ϵ controls the probability of small changes in a bitstream.

Frequency controls the probability of large changes in a bitstream.

Bitnoise spectrum

(12) Silence

This setting switches off the oscillator bank. Use this to create thinner sounds by switching off banks so that you use less oscillators in the final mix.

Bitwave Synthesis

This is a collection of methods that involve the manipulation of high-frequency binary pulse streams (streams of zeros and ones) which are generated on microcontrollers, and then converted into waveforms using analog circuitry. The density of the binary streams correlates with the amplitude of the analog waveform.

The collection of methods fall under these categories:

Variations on delta-sigma modulation

Delta-sigma modulation (DSM) uses an accumulator with feedback to create pulse streams. You can use this to accurately create waveforms (e.g. the saw and pulse oscillators), with either numerical calculation or wavetables.

Chirp models

These methods generate sequences of tiny chirps (pulse patterns) that vary over time. These pulses can be sequenced to create waveforms.

Noise models

Noise methods use different approaches to random generation of pulse streams.

Technical Details

Bitwave models run on RP2xxx microcontrollers, taking advantage of the programmable IO state machines to generate bitstreams at high frequencies. The models run in a callback loop, using DMA to feed buffered data into the state machines. Buffers are around 250-500 microseconds long. The models vary in speed, depending on how CPU-intensive it is to calculate the buffers. Each microcontroller core can run three of these models. Myriad has four cores, but one is saved for non-synthesis tasks: running the meta-modulators and drawing the screen.