Every sound, synth and setting

Every game sound, ready-made synth, setting and chord of synths.js and synths, with its range and where it starts. This page is written from the library's own table of names, so it is what the library has.

Where two spellings are shown, the first is JavaScript's and the second is Python's. A program may use either in both languages: lead.vibratoRate and lead.vibrato_rate are the same setting.

Game sounds

playSound(name) in JavaScript, play_sound(name) in Python. There are 14:

"coin", "jump", "laser", "explosion", "hit", "shoot", "powerup", "blip", "click", "zap", "bounce", "pop", "win", "lose".

Explained in Game sounds.

Ready-made synths

makeSynth(name) in JavaScript, make_synth(name) in Python. Each is settings of the one engine, not a recording, and the table shows the settings it is made of. Anything it does not set is as it starts in the tables below, with the filter open.

SynthWhat it is made of
keyswave "triangle", wave2 "sine", level2 0.35, pitch2 12, cutoff 3500, sweep 18, sweepDecay 0.3, sweepSustain 0.2, keytrack 0.5, attack 0.003, decay 0.45, sustain 0.3, release 0.35, reverb 0.12
basswave "saw", sub 0.6, cutoff 320, resonance 0.3, sweep 30, sweepDecay 0.18, sweepSustain 0.15, attack 0.003, decay 0.2, sustain 0.75, release 0.12
leadwave "saw", wave2 "square", level2 0.6, detune2 9, cutoff 2800, resonance 0.25, keytrack 0.5, attack 0.01, decay 0.15, sustain 0.7, release 0.2, vibrato 0.15, vibratoDelay 0.25, vibratoRate 5.5, echo 0.2
padwave "saw", voices 4, detune 22, spread 0.8, cutoff 1600, attack 0.5, decay 0.5, sustain 0.8, release 1.2, chorus 0.4, reverb 0.4
pluckwave "saw", cutoff 500, resonance 0.2, sweep 48, sweepDecay 0.12, sweepSustain 0, keytrack 0.5, attack 0.001, decay 0.3, sustain 0, release 0.25
organwave "sine", wave2 "sine", level2 0.6, pitch2 12, sub 0.5, attack 0.008, decay 0.01, sustain 1, release 0.06, chorus 0.3
stringswave "saw", voices 3, detune 14, spread 0.6, cutoff 3200, attack 0.25, decay 0.3, sustain 0.85, release 0.6, vibrato 0.08, vibratoDelay 0.4, reverb 0.3
bellwave "sine", wave2 "sine", level2 0.45, pitch2 19, detune2 2, attack 0.001, decay 1.4, sustain 0, release 1.2, reverb 0.3
flutewave "triangle", noise 0.03, cutoff 3000, attack 0.06, decay 0.1, sustain 0.9, release 0.15, vibrato 0.1, vibratoDelay 0.3
chipwave "square", filter "off", attack 0, decay 0, sustain 1, release 0.02
chipLead, chip_leadwave "pulse", width 0.25, filter "off", attack 0, decay 0, sustain 1, release 0.02, vibrato 0.2, vibratoDelay 0.15, vibratoRate 6
chipBass, chip_basswave "pulse", filter "off", attack 0, decay 0, sustain 1, release 0.02, macroRate 4, macro 8 steps
chipNoise, chip_noiselevel1 0, noise 1, noise.type "lfsr", filter "off", attack 0, decay 0.12, sustain 0, release 0.05
chipKick, chip_kickwave "triangle", filter "off", attack 0, decay 0.16, sustain 0, release 0.05, macro 6 steps
chipSnare, chip_snarewave "pulse", noise.type "lfsr", filter "off", attack 0, decay 0.16, sustain 0, release 0.05, macro 6 steps
chipHat, chip_hatwave "pulse", noise.type "lfsr", filter "off", attack 0, decay 0.05, sustain 0, release 0.02, macro 3 steps
kickwave "sine", filter "off", pitchSweep 30, pitchSweepDecay 0.06, pitchSweepAttack 0, attack 0, decay 0.3, sustain 0, release 0.1
snarewave "triangle", level1 0.6, noise 1, filter "highpass", cutoff 500, resonance 0.05, pitchSweep 12, pitchSweepDecay 0.04, pitchSweepAttack 0, attack 0, decay 0.17, sustain 0, release 0.08
hatlevel1 0, noise 1, filter "highpass", cutoff 7000, attack 0, decay 0.05, sustain 0, release 0.03

Explained in Synths and their settings.

Settings of a synth

Each is a property of a synth (lead.cutoff = 800), a name in makeSynth({ cutoff: 800 }) or make_synth(cutoff=800), and a setting a dial can be tied to (dial("cutoff", lead, "cutoff")). The last column is the sound engine's own name for it, which a synth also answers to.

SettingValuesStarts atMeasured inThe engine's name
wave"sine", "triangle", "saw", "pulse", "sample""triangle"osc1.wave
level10 to 111 is as it comesosc1.level
width or pulseWidth, pulse_width0 to 10.5osc1.pulse_width
sample0 to 1023, whole numbers0a sampleosc1.sample
octave-4 to 4, whole numbers0octavestranspose
pitch-48 to 480semitonestranspose
voices1 to 8, whole numbers1voicesunison.voices
detune0 to 10020hundredths of a semitoneunison.detune
spread0 to 10.5unison.spread
wave2"sine", "triangle", "saw", "pulse", "sample""saw"osc2.wave
level20 to 101 is as it comesosc2.level
pitch2-48 to 480semitonesosc2.coarse
detune2-100 to 1000hundredths of a semitoneosc2.fine
width20 to 10.5osc2.pulse_width
synctrue or false (True, False)offosc2.sync
ring0 to 10osc2.ring
sub0 to 101 is as it comessub.level
noise0 to 101 is as it comesnoise.level
macroRate, macro_rate1 to 100050Hzmacro.rate
macroSync, macro_synctrue or false (True, False)offmacro.sync
filter"off", "lowpass", "highpass", "bandpass", "notch", "low_band", "band_high", "all""off"filter.type
slope"12db", "24db""12db"filter.slope
cutoff20 to 200002000Hzfilter.cutoff
resonance0 to 10.15filter.resonance
keytrack0 to 10filter.keytrack
sweep-96 to 960semitonesfilter.env
sweepAttack, sweep_attack0 to 200.005secondsfilter_env.attack
sweepDecay, sweep_decay0 to 200.2secondsfilter_env.decay
sweepSustain, sweep_sustain0 to 10.3filter_env.sustain
sweepRelease, sweep_release0 to 200.2secondsfilter_env.release
attack0 to 200.005secondsamp.attack
decay0 to 200.1secondsamp.decay
sustain0 to 10.8amp.sustain
release0 to 200.15secondsamp.release
curve0 to 10.5amp.curve
pitchSweep, pitch_sweep-48 to 480semitonesmod_env.pitch
pitchSweepAttack, pitch_sweep_attack0 to 200.005secondsmod_env.attack
pitchSweepDecay, pitch_sweep_decay0 to 200.2secondsmod_env.decay
vibrato-48 to 480semitoneslfo1.pitch
vibratoRate, vibrato_rate0.01 to 505Hzlfo1.rate
vibratoDelay, vibrato_delay0 to 100secondslfo1.delay
tremolo0 to 10lfo1.amp
wobble-96 to 960semitoneslfo2.cutoff
wobbleRate, wobble_rate or pwmRate, pwm_rate0.01 to 500.5Hzlfo2.rate
autopan0 to 10lfo2.pan
pwm-1 to 10lfo2.pulse_width
distortion or drive0 to 10fx.drive
crush or bits1 to 1616bitsfx.bits
downsample1 to 64, whole numbers1fx.downsample
pitchShift, pitch_shift-12 to 120semitonesfx.pitch
ringMod, ring_mod0 to 10fx.ring
ringSpeed, ring_speed1 to 500030Hzfx.ring_freq
ringWave, ring_wave"sine", "noise""sine"fx.ring_wave
comb0 to 10fx.comb
combTone, comb_tone50 to 5000200Hzfx.comb_freq
combFeedback, comb_feedback-0.97 to 0.970.7fx.comb_feedback
flanger0 to 10fx.comb_depth
flangerRate, flanger_rate0.01 to 100.3Hzfx.comb_rate
reversetrue or false (True, False)offosc1.reverse
echo or delay0 to 101 is as it comessend.delay
reverb0 to 101 is as it comessend.reverb
chorus0 to 101 is as it comessend.chorus
tranceGateDepth, trance_gate_depth0 to 10gate.depth
tranceGateRate, trance_gate_rate0.25 to 164stepsgate.rate
tranceGateSmooth, trance_gate_smooth0.001 to 0.50.008secondsgate.smooth
tranceGateSwing, trance_gate_swing0 to 0.750gate.swing
tranceGateSends, trance_gate_sendstrue or false (True, False)ongate.sends
tranceGateStereo, trance_gate_stereotrue or false (True, False)offgate.stereo

Some values have other words that mean the same: "square" for "pulse", "sawtooth" for "saw", "tri" for "triangle", "sin" for "sine", "low" for "lowpass", "high" for "highpass", "band" for "bandpass", "none" for "off", "hiss" for "white", "chip" for "lfsr", "buzz" for "lfsr_short".

Settings shared by every synth

The echo, the reverb and the chorus are shared by all the synths, and so is the volume of everything. These are set with setEffects({ echoTime: 0.3 }) in JavaScript and set_effects(echo_time=0.3) in Python.

SettingValuesStarts atMeasured inThe engine's name
maxVoices, max_voices1 to 64, whole numbers64voicesvoices
masterVolume, master_volume0 to 20.351 is as it comesmaster.volume
limitertrue or false (True, False)onmaster.limiter
echoTime, echo_time0.001 to 20.3secondsdelay.time
echoFeedback, echo_feedback0 to 0.950.4delay.feedback
echoTone, echo_tone200 to 200006000Hzdelay.tone
echoBounce, echo_bouncetrue or false (True, False)offdelay.pingpong
reverbSize, reverb_size0 to 10.5reverb.size
reverbDamping, reverb_damping0 to 10.4reverb.damping
reverbType, reverb_type"room", "hall", "plate", "cathedral", "spring""room"reverb.type
reverbDecay, reverb_decay0 to 300secondsreverb.decay
reverbPredelay, reverb_predelay0 to 0.20secondsreverb.predelay
reverbLowCut, reverb_low_cut20 to 1000120Hzreverb.low_cut
reverbLevel, reverb_level0 to 211 is as it comesreverb.level
echoLevel, echo_level0 to 211 is as it comesdelay.level
chorusRate, chorus_rate0.05 to 100.8Hzchorus.rate
chorusDepth, chorus_depth0 to 10.5chorus.depth
micGain, mic_gain0 to 811 is as it comesinput.gain
micGate, mic_gate-100 to 0-100dbinput.gate
micGateRelease, mic_gate_release0.005 to 20.15secondsinput.gate_release

Explained in Effects.

The other settings

These are spelled as the sound engine spells them, and are set like any other: lead.volume = 0.5, lead.set("bend_range", 12). A dot in a name may be written as a capital or an underscore: lead.lfo1Wave, lead.lfo1_wave.

SettingValuesStarts atMeasured in
volume0 to 211 is as it comes
pan-1 to 10-1 is left, 1 is right
tune-100 to 1000hundredths of a semitone
bend-1 to 10
bend_range0 to 482semitones
glide0 to 100seconds
mode"poly", "mono", "legato""poly"
velocity0 to 11
pan.law, pan_law"equal_power", "square_root""equal_power"
osc1.coarse, osc1_coarse-48 to 480semitones
osc1.fine, osc1_fine-100 to 1000hundredths of a semitone
osc1.start, osc1_start0 to 10
osc1.keytrack, osc1_keytracktrue or false (True, False)on
osc2.sample, osc2_sample0 to 1023, whole numbers0a sample
osc2.start, osc2_start0 to 10
osc2.keytrack, osc2_keytracktrue or false (True, False)on
osc2.reverse, osc2_reversetrue or false (True, False)off
sub.wave, sub_wave"sine", "square", "triangle""sine"
sub.octave, sub_octave-2 to -1, whole numbers-1octaves
sample.antialias, sample_antialiastrue or false (True, False)on
noise.type, noise_type"white", "pink", "lfsr", "lfsr_short""white"
noise.pitch, noise_pitch-48 to 480semitones
filter.velocity, filter_velocity-96 to 960semitones
filter_env.curve, filter_env_curve0 to 10.5
mod_env.sustain, mod_env_sustain0 to 10
mod_env.release, mod_env_release0 to 200.2seconds
mod_env.curve, mod_env_curve0 to 10.5
mod_env.osc2_pitch, mod_env_osc2_pitch-48 to 480semitones
mod_env.pulse_width, mod_env_pulse_width-1 to 10
lfo1.wave, lfo1_wave"sine", "triangle", "saw", "square", "random""sine"
lfo1.fade, lfo1_fade0 to 100seconds
lfo1.sync, lfo1_synctrue or false (True, False)on
lfo1.pulse_width, lfo1_pulse_width-1 to 10
lfo1.cutoff, lfo1_cutoff-96 to 960semitones
lfo1.pan, lfo1_pan0 to 10
lfo2.wave, lfo2_wave"sine", "triangle", "saw", "square", "random""triangle"
lfo2.delay, lfo2_delay0 to 100seconds
lfo2.fade, lfo2_fade0 to 100seconds
lfo2.sync, lfo2_synctrue or false (True, False)off
lfo2.pitch, lfo2_pitch-48 to 480semitones
lfo2.amp, lfo2_amp0 to 10
input.part, input_part0 to 63, whole numbers31part
input.monitor, input_monitortrue or false (True, False)on
tempo20 to 999120bpm

Chords

A chord is a note and a kind: "C" and "m7" make "Cm7". The numbers are each note of the chord in semitones above the first.

KindSemitones
5, power0 7
60 4 7 9
7, dom70 4 7 10
90 4 7 10 14
major, maj0 4 7
minor, min, m0 3 7
dim0 3 6
aug0 4 8
sus20 2 7
sus4, sus0 5 7
octave0 12
m60 3 7 9
maj70 4 7 11
m7, min70 3 7 10
dim70 3 6 9
m7b50 3 6 10
mmaj70 3 7 11
add90 4 7 14
maj90 4 7 11 14
m90 3 7 10 14

Explained in Notes, chords and tunes.

Note lengths

A length by name is measured in beats, against the tempo.

LengthBeats
"whole", "w"4
"half", "h"2
"quarter", "q"1
"eighth", "e"0.5
"sixteenth", "s"0.25
"thirtysecond", "t"0.125

Explained in Notes, chords and tunes.

Voices

A voice changes a microphone, a recording or a synth in one word: mic.voice = "robot". "none" takes it off, and voiceNames() gives the list to a program (voice_names()).

VoiceWhat it is
"robot"A machine: the voice multiplied by a 50 Hz wave, ringing in a metal pipe.
"chipmunk"Small and squeaky: everything seven semitones higher.
"monster"Huge and deep: seven semitones lower, with a growl and a little room.
"cave"Far inside a cave: long echoes and an enormous, dark space.
"telephone"Down an old phone line: only the middle of the voice, coarse and a little crushed.
"alien"Not from here: higher, multiplied by a 180 Hz wave, with a slow metallic sweep.
"whisper"Hoarse and breathy: the voice's pitch blurred into noise, with its low end taken off.

Explained in Your voice.

How many at once

A program can have 32 synths at once and 64 notes sounding at once. A song has 32 channels of its own.