Chromatone logo
Back to main
AMY synth
Wasm synth playground

AMY Synth

the Additive Music synthesizer librarY

Highly experimental. Issue pending

  • Press A on your keyboard to play a note. Or push the PLAY button.
  • Use and keys to browse patches

AMY repository

AMY accepts commands in ASCII, like so:


Here's the full list:

aampfloat 0-1+use after a note on is triggered with velocity to adjust amplitude without re-triggering the note
Abp0stringin commas, like 100,0.5,150,0.25,200,0 -- envelope generator with alternating time(ms) and ratio. last pair triggers on note off
Bbp1stringset the second breakpoint generator. see breakpoint 0
bfeedbackfloat 0-1use for the ALGO synthesis type in FM, or partial synthesis (for bandwidth) or for karplus-strong, or to indicate PCM looping (0 off, >0, on)
Cbp2string3rd breakpoint generator
ddutyfloat 0.001-0.999duty cycle for pulse wave, default 0.5
Ddebuguint, 2-42 shows queue sample, 3 shows oscillator data, 4 shows modified oscillator. will interrupt audio!
ffreqfloatfrequency of oscillator
Ffilter_freqfloatcenter frequency for biquad filter
gmod_targetuint maskWhich parameter modulation/LFO controls. 1=amp, 2=duty, 4=freq, 8=filter freq, 16=resonance, 32=feedback. Can handle any combo, add them together
Gfilter_type0-30 = none (default.) 1 = low pass, 2 = band pass, 3 = hi pass.
Iratiofloatfor ALGO types, where the base note frequency controls the modulators, or for the ALGO base note and PARTIALS base note, where the ratio controls the speed of the playback
Lmod_source0 to OSCS-1Which oscillator is used as an modulation/LFO source for this oscillator. Source oscillator will be silent.
lvelfloat 0-1+velocity - >0 to trigger note on, 0 to trigger note off. sets amplitude
Nlatency_msuintsets latency in ms. default 0
nnoteuint 0-127midi note, sets frequency
oalgorithmuint 1-32DX7 algorith to use for ALGO type
Oalgo_sourcestringwhich oscillators to use for the algorithm. list of six, use -1 for not used, e.g 0,1,2,-1,-1-1
ppatchuintchoose a preloaded PCM sample, partial patch or FM patch number for ALGO waveforms.
Pphasefloat 0-1where in the oscillator's cycle to start sampling from (also works on the PCM buffer). default 0
Rresonancefloatq factor of biquad filter. in practice, 0-10.0. default 0.7
Sresetuintresets given oscillator. set to > OSCS to reset all oscillators, gain and EQ
Tbp0_targetuint maskWhich parameter bp0 controls. 1=amp, 2=duty, 4=freq, 8=filter freq, 16=resonance, 32=feedback (can be added together). Can add 64 for linear ramp, otherwise exponential
ttimestampuintms of expected playback since some fixed start point on your host. you should always give this if you can.
voscuint 0 to OSCS-1which oscillator to control
Vvolumefloat 0-10volume knob for entire synth, default 1.0
wwaveuint 0-11waveform: [0=SINE, PULSE, SAW_DOWN, SAW_UP, TRIANGLE, NOISE, KS, PCM, ALGO, PARTIAL, PARTIALS, OFF]. default: 0/SINE
Wbp1_targetuint masksee bp0_target
xeq_lfloatin dB, fc=800Hz amount, -15 to 15. 0 is off. default 0.
Xbp2_targetuint masksee bp0_target
yeq_mfloatin dB, fc=2500Hz amount, -15 to 15. 0 is off. default 0.
zeq_hfloatin dB, fc=7500Hz amount, -15 to 15. 0 is off. default 0.