Browser-based editor for the Daisy Pod synthesiser
This guide explains how to connect to your Waylinator, understand its patches, tune its parameters, build custom chord scales, and import MIDI files — all from a single browser page.
Open editor.html in Chrome or Edge · Connect via USB · Play
The Waylinator is a polyphonic synthesiser running on an Electro-Smith Daisy Pod hardware module. It is controlled over USB using a browser-based editor that communicates through the Web Serial API.
editor.html directly from your file system.file://…/editor.html (not inside another application).
editor.html in Chrome or Edge.The Daisy Pod has two knobs, two buttons, and one rotary encoder with a push-click. All controls work in real time — you do not need the editor connected to use them.
Knob 1 controls the chorus effect: turning it clockwise increases both the depth (pitch shimmer amount) and the rate (LFO speed) of the stereo chorus simultaneously. At minimum the effect is dry; at maximum the sound widens noticeably and shimmers. In a few patches (WAYLO_XFADE2 family, FIXED_PULSE group) Knob 1 instead controls a per-voice pitch LFO depth and rate — the same "wider as you turn" feel applies.
Knob 2 controls the wet level of the 3-tap LCR delay (Left-Centre-Right panned repeats). At minimum there are no delay repeats; at maximum the delay is prominent. Knob 2 is independent of Knob 1 — you can have dry chorus + wet delay or vice versa.
Each press of Button 1 steps the attack time down by 5 ms and the release time down by 20 ms. Both the amplitude envelope and the filter envelope are adjusted together. The minimum is 1 ms. This is a quick on-stage way to get a snappier, more percussive feel without opening the editor.
Each press of Button 2 steps the attack time up by 5 ms and release up by 20 ms. Maximum is 2 seconds. Use this to add sustain and a slower fade-in for pad-like sounds.
Exception: on the SINE_FM_PIANO_ADJ patch (patch 20), Button 1 and Button 2 control only the FM piano's attack time (not the global envelope), in very fine steps of 0.1 ms up to a maximum of 50 ms.
Note: buttons have no effect on the SINE_FM_PIANO or SINE_FM_PIANO_ADJ patches for the global envelope — those patches manage their own internal envelope separately.
The rotary encoder (the clickable knob, separate from the two analog knobs) navigates patches and switches banks.
| Action | What happens |
|---|---|
| Rotate clockwise | Step forward to the next enabled patch. Skips any patches that are unticked in the editor. |
| Rotate counter-clockwise | Step backward to the previous enabled patch. |
| Short click (press and release quickly) | Cycle the bank forward: Bank A → Bank B → Bank C → Bank A. All voices are killed on bank change. |
| Long press (~½ second hold) | Jump immediately to Patch 0 (DUAL_SQUARE) and kill all active voices. Useful as a "panic" reset on stage. |
The Waylinator has three banks that fundamentally change how the current patch behaves. The LEDs on the Pod change colour to show which bank is active.
Normal polyphonic operation. ADSR envelopes, note-on/note-off, velocity sensitivity. This is the default bank on power-up.
Most patches switch to monophonic legato mode. Amplitude and filter cutoff are controlled by breath (CC2 or channel pressure) rather than the ADSR envelope. Phase is preserved across notes so there is no click on legato transitions. Portamento (glide) is active between notes using the EWI Portamento (ms) parameter.
In Bank B, the rotator patches (MIDIROTATOR, CHORDROTATOR, CDG_ROTATOR, EFC_ROTATOR, DIATONIC_CHORDS, DIATONIC_FOURTHS, FIFTH_UP, FIFTH_UP_FOURTH_DOWN) switch to a legato chord update mode — the chord changes smoothly without a note-off/note-on boundary, giving a wind-instrument feel to harmony patches.
The Daisy Pod's audio input is mixed into the synthesiser output. You can feed a guitar, instrument, or backing track into the Pod and blend it with the synth sound. Bank C behaves like Bank A for all other parameters (polyphonic ADSR).
Audio input gain in Bank C is set conservatively (lower gain on WAYLO_XFADE patches which already multiply the output further, higher gain on other patches). Use Knob 2 to set the delay wet to taste; the synth and audio signal both pass through the delay and chorus effects.
Pitch bend is received on any MIDI channel. The behaviour depends on the current patch:
| Patch type | Bend range | Notes |
|---|---|---|
| All standard polyphonic patches | ±2 semitones | Applied to all active voices simultaneously. |
| EWI patches (EWI_MONO_*, EWI_DUAL_WAVE_LFO*) | Asymmetric — set by EWI Bend Up and EWI Bend Down parameters | Default ±2 st. Upward and downward ranges can differ, matching wind-controller conventions. |
| Bank B (all patches in EWI mode) | Same asymmetric EWI range | Applies in Bank B regardless of patch, since Bank B switches all patches to EWI-style control. |
| PITCH_BEND_CHORDS (patch 17) | ±2 semitones on last note only | Only the most recently triggered note bends; harmony notes stay fixed. |
| SELECTIVE_PITCH_BEND_2NOTES (patch 18) | ±2 semitones on last two notes | Only the two most recently triggered notes bend. |
The mod wheel is a global filter / FM feedback control. Its effect varies by patch:
| Patch type | Mod wheel effect |
|---|---|
| SINE_FM_PIANO, SINE_FM_PIANO_ADJ, WAYLO_FM | Controls FM feedback depth (0 → full feedback) and FM modulation index. More mod wheel = brighter, more harmonically complex FM tone. Also feeds into the filter cutoff. |
| All other patches | Controls the global filter envelope amount. At zero the filter is barely touched by the envelope; at maximum the filter sweeps fully open on each note attack. Also directly sets the base filter cutoff frequency. |
CC2 (breath controller) and MIDI channel pressure (aftertouch) both control breath expression on EWI patches and Bank B. See section 16 for the full EWI reference. On all other patches in Bank A or C, CC2 is ignored.
In Bank A and C, velocity scales the amplitude of harmony/chord notes via the Chord Volume parameter. The lead (trigger) note always plays at full velocity; harmony notes are attenuated by the Chord Volume multiplier applied to the incoming velocity. In Bank B and EWI patches, velocity is secondary to breath — it contributes a small multiplier but breath drives the main dynamics.
Several patches split the keyboard into two zones: a lower control zone and an upper playing zone. Notes in the lower zone set a transposition or base pitch silently; notes in the upper zone trigger sounds using the current transposition state. The split point varies by patch.
| Patch | Lower zone | Upper zone | What lower zone controls |
|---|---|---|---|
| WAYLO_TRANS | Below C4 (MIDI < 60) | C4 and above | Sets the global transposition. C3 = 0 st (no shift), C#3 = +1 st, D3 = +2 st … B3 = +11 st. Below C3 gives negative transpositions. |
| SAMCHILI | C2 and below (MIDI ≤ 36) | C#2 and above | Sets the base note (adds 2 octaves to place it in the mid range). The upper zone then offsets cumulatively from this base. |
| CHORD_SCALE1–5 | Below C4 (MIDI < 60) | C4 and above (MIDI 60–95) | Sets a transposition offset for the whole chord scale. C3 (MIDI 48) = 0 semitones; each semitone above C3 adds +1 st. Notes below C3 give negative transpositions (transposition = note − 48). |
| CHORD_SEQUENCER | C2–A#2 (MIDI 36–46) | Above A#2 | Sets a transposition offset for the sequencer. C2 = −5 st, each semitone up adds +1 st. Notes at C1 and below trigger lick patterns. |
| FIFTH_UP / FIFTH_UP_FOURTH_DOWN | C2–B2 (MIDI 36–47) | C3 and above | Sets the root note for the voicing. C2 maps the root to C4, C#2 to C#4, and so on. The upper zone triggers chords relative to that root. |
| DIATONIC_CHORDS / DIATONIC_FOURTHS | C2–B2 (MIDI 36–47) | C5 and above | Sets the root key. C2 maps to C5, C#2 to C#5, etc. The upper zone triggers diatonic chords relative to the root. |
What it sounds like: Square wave left / Sawtooth right through chorus and delay — same as SQUARE_SAW. The difference is entirely in pitch assignment.
How it works: The 88-key range is split at C4 (MIDI 60).
output = note + transposition − 12).Example: hold D3 (transposition = +2), play C4 → sounds as C#3. Hold G3 (transposition = +7), play C4 → sounds as G3 — a fifth above C4 down an octave.
Use it for: playing in a comfortable upper-register position while your left hand nudges the key of a looped part. Great for transposing melodic lines on the fly.
What it sounds like: Square wave left / Sawtooth right through chorus and delay.
How it works: Every MIDI note is mirrored around C4. Notes below C4 reflect upward; notes above C4 reflect downward. The mapping is: output = 60 + (60 − input) for notes below 60, and output = 60 − (input − 60) for notes above 60. C4 itself stays at C4 (it maps to itself).
Example: play E4 (64) → sounds as G#3 (56, four semitones below C4). Play A3 (57) → sounds as Eb4 (63, three semitones above C4). The keyboard is effectively reversed.
Use it for: Zawinul-style reversed-keyboard voicings where low physical keys play high pitches and vice versa. Familiar patterns produce unexpected harmonic colours.
What it sounds like: Square wave left / Sawtooth right through chorus and delay.
How it works: SAMCHILI is a cumulative offset system operating within a 4½-octave range (C2 to G6, MIDI 36–91).
played note − 60 (so middle C = 0, D above = +2, B below = −1, etc.). The base note is updated by that amount and then the result is played. Smart wrapping keeps the output inside C2–G6 by folding to the same pitch class in the opposite octave.Practical meaning: your right hand wanders chromatically and the sounding pitch drifts with it — repeated upward motion continuously raises the register, downward motion lowers it — until it wraps. Your left hand resets the base to a specific position.
Use it for: unusual melodic lines that don't map to standard keyboard geography. The cumulative drift creates phrases that are difficult to play any other way.
The four rotator patches (MIDIROTATOR, CHORDROTATOR, CDG_ROTATOR, EFC_ROTATOR) all share the same underlying engine. Each note you play triggers three simultaneous voices: the original note, a static harmony, and a rotating harmony that cycles through a sequence of intervals.
Each rotator has a list of five semitone offsets stored in the Rotator Chords fields
of the editor. Call them [s, r1, r2, r3, r4].
+ s. The same interval every note.+ r1 on the 1st note, + r2 on the 2nd, + r3 on the 3rd, + r4 on the 4th, then + r1 again on the 5th, and so on. The index cycles 1 → 2 → 3 → 4 → 1 …All three voices are released when you release the key. The rotating counter does not reset between notes — it keeps cycling continuously, so the harmonic colour of consecutive notes always varies in a predictable sequence.
7, 3, 5, 4, 2| Note pressed | Static voice (+7 st) | Rotating voice | 3-note chord |
|---|---|---|---|
| C4 (60) — 1st | G4 (+7) | Eb4 (+3, r1) | C4 + Eb4 + G4 = Cm |
| C4 (60) — 2nd | G4 (+7) | F4 (+5, r2) | C4 + F4 + G4 |
| C4 (60) — 3rd | G4 (+7) | E4 (+4, r3) | C4 + E4 + G4 = C major |
| C4 (60) — 4th | G4 (+7) | D4 (+2, r4) | C4 + D4 + G4 |
| C4 (60) — 5th | G4 (+7) | Eb4 (+3, r1) | cycle restarts |
All four patches use the same engine — they just use different interval tables. You can customise each one independently in the Rotator Chords section of the editor.
| Patch | Default intervals [s, r1, r2, r3, r4] | Character |
|---|---|---|
| MIDIROTATOR | 7, −10, −7, −8, −2 | Fifth static voice; rotating voices create downward chromatic movement and sus-chord flavours. |
| CHORDROTATOR | 7, 3, 5, 4, 2 | Fifth static voice; rotating voices cycle through minor third, fourth, major third, major second — modal feel. |
| CDG_ROTATOR | 7, 0, 2, 7, 12 | Fifth static; rotating voices at unison, major second, fifth, octave — open and spacious. |
| EFC_ROTATOR | 7, 4, 5, 12, −5 | Fifth static; rotating through major third, fourth, octave, and a fourth below — wide spread voicings. |
In Bank B, the rotator patches switch to legato chord update mode. Instead of a clean note-off / note-on boundary, the three-voice chord transitions smoothly, preserving phase for a slurred, wind-controller feel. This is most effective with slow legato playing — fast passages may overlap slightly.
0, 12, 7, 5, 3 for octave + fifth + fourth + third cycling,
or 0, −12, −7, −5, −3 for downward voicings below the melody.
Remember to click Write to Device after changing these fields.
The editor has a sticky header that stays visible as you scroll. Inside it:
Below the sticky header the page has two permanent sections always visible regardless of tab:
Each parameter row has a slider, a number input (type a precise value), a green readout showing the current value, and a Default button that resets just that one parameter. All edits are local until you press Write to Device.
| Parameter | Range | Default | What it does |
|---|---|---|---|
| Attack Env | 0 – 1 | 0.035 | Amplitude envelope attack time. Lower = snappier transient. |
| Release Env | 0 – 1 | 0.110 | Amplitude envelope release tail. Higher = longer fade-out. |
| Attack Filter | 0 – 1 | 0.035 | Filter envelope attack time (mirrors amplitude envelope shape on the filter cutoff). |
| Release Filter | 0 – 1 | 0.110 | Filter envelope release time. |
| Parameter | Range | Default | What it does |
|---|---|---|---|
| Chorus Depth Scale | 0 – 10 | 3.000 | Global multiplier on the chorus LFO depth. Higher values = more pitch shimmer from the chorus effect. |
| Chorus Speed Scale | 0 – 10 | 3.000 | Global multiplier on the chorus LFO rate. |
| Chord Volume | 0 – 1 | 0.800 | Relative volume of harmony notes in chord patches. The "lead" (triggered) note is always at full velocity. |
These parameters affect the EWI_MONO and EWI_DUAL_WAVE_LFO patches which respond to breath (CC2) or channel pressure.
| Parameter | Range | Default | What it does |
|---|---|---|---|
| EWI Attack Interp (s) | 0 – 10 | 0.200 | Smoothing time for the amplitude envelope attack driven by breath. Low values = fast response; high = slow swell. |
| EWI Bend Up (st) | 0 – 12 | 2.000 | Semitones of upward pitch bend range. |
| EWI Bend Down (st) | 0 – 12 | 2.000 | Semitones of downward pitch bend range. |
| EWI Lowest Note | 0 – 127 | 24 | MIDI note number of the lowest note the EWI patches will respond to. |
| EWI Portamento (ms) | 0 – 1000 | 5 | Glide time between notes in EWI legato patches. 0 = instant. |
| EWI Breath Attack (ms) | 0 – 500 | 33 | Rise time of the breath-driven amplitude smoother. |
| EWI Breath Release (ms) | 0 – 2000 | 50 | Decay time of the breath-driven amplitude smoother. |
| EWI Filter Min (Hz) | 0 – 18000 | 800 | Filter cutoff when breath = 0 (silence). Sets the tonal "floor." |
| EWI Filter Max (Hz) | 20 – 18000 | 3000 | Filter cutoff at full breath. Controls how bright the tone gets. |
| EWI Filter Sensitivity | 0.1 – 5 | 1.00 | Multiplier on the breath→filter mapping. Above 1 = filter opens faster. |
| EWI Amp Sensitivity | 0.1 – 5 | 1.00 | Multiplier on the breath→amplitude mapping. Above 1 = louder sooner. |
These four sliders control the pitch-modulation LFO that runs in SQUARE_SAW_LFO (patch 49) and SQUARE_SAW_LFO2 (patch 54). The left and right sides of the stereo field have independent speed and depth, creating a gentle detuned shimmer.
| Parameter | Range | Default | What it does |
|---|---|---|---|
| LFO Depth Left (cents) | 0 – 20 | 15 | Peak pitch deviation of the left-channel LFO in cents (100 cents = 1 semitone). |
| LFO Depth Right (cents) | 0 – 20 | 6 | Peak pitch deviation of the right-channel LFO. |
| LFO Speed Left (Hz) | 0.01 – 2.0 | 1.5 | Modulation rate of the left LFO in Hz. |
| LFO Speed Right (Hz) | 0.01 – 2.0 | 0.06 | Modulation rate of the right LFO. The low default creates a slow wide swirl. |
Each of the three EWI_DUAL_WAVE_LFO patches has its own independent waveform selection for the left and right oscillator banks, plus a noise volume control. All three patches otherwise share the LFO depth and speed sliders above.
| Control | Options | What it does |
|---|---|---|
| Noise Volume (0–100) | 0 – 100 | Mixes white noise into the oscillator signal. Adds breath and air to the tone. 0 = no noise. |
| Left Waveform | SAW · SINE · SQUARE 50% · SQUARE 75% · TRIANGLE | Oscillator waveform for all left-side voices in this patch. |
| Right Waveform | SAW · SINE · SQUARE 50% · SQUARE 75% · TRIANGLE | Oscillator waveform for all right-side voices in this patch. |
Patch 54 is a polyphonic version of the EWI_DUAL_WAVE_LFO patches — it uses the ADSR envelope and polyphonic voice allocation (not breath/legato), but with the same selectable waveforms. It also has its own Noise Volume control. The LFO speed and depth sliders above apply equally to patch 54.
The Patches tab shows every available sound as a checkbox list. Ticking a patch enables it in the patch rotation — the encoder on the Daisy Pod steps through only the enabled patches. Unticking hides a patch from rotation without deleting its settings.
Patches marked RESERVED in the list are disabled internally and cannot be activated — their checkboxes are hidden.
The Waylinator has 55 patch slots. Active patches (those not marked RESERVED) are listed below grouped by type. All patches run through the shared chorus and 3-tap LCR delay effects; the on-hardware knobs control chorus depth/rate (Knob 1) and delay wet level (Knob 2) unless noted.
| ID · Name | Description |
|---|---|
| 0 · DUAL_SQUARE | Square wave on both left and right sides. Classic, bright polyphonic organ/synth tone. |
| 3 · SQUARE_SAW | Square wave left, Sawtooth right. Adds brightness and harmonic richness to the left/right blend. |
| 21 · DUAL_SQUARE_CHRS_DLY | Dual square with chorus and panned delays. Knob 1 controls chorus depth and rate simultaneously; Knob 2 controls delay wet. |
| 30 · DUAL_SQUARE_QUARTIC | Dual square with a quartic amplitude curve and left-side pitch LFO. Knob 1 = LFO depth/rate; Knob 2 = delay wet. |
| 31 · SQUARE_SAW_QUARTIC | Square/Saw combination with quartic envelope and left-side pitch LFO. |
| 35 · DUAL_SQUARE_FIXED_PULSE | Square wave left, fixed pulse-width square right. Hybrid tone with a harder edge on the right side. |
| ID · Name | Description |
|---|---|
| 32 · FIXED_PULSE_SQUARE | Fixed 50% pulse wave (no LFO). Pure square, no chorusing on the oscillator itself. |
| 33 · FIXED_PULSE_SAW | Fixed pulse-width sawtooth — a raw, buzzy saw tone. |
| 34 · FIXED_PULSE_PARABOLA | Parabolic waveform oscillator. Rounder and softer than square or saw. |
| 36 · ANALOG_A1 | Analogue-style oscillator model A1 — custom waveform with analogue character. |
| 37 · ANALOG_A2 | Analogue-style oscillator model A2 — a variation of A1 with a different harmonic profile. |
| ID · Name | Description |
|---|---|
| 8 · MIDIROTATOR | Each note played triggers a rotating set of MIDI transpositions. The sequence of intervals cycles with each new note-on. Configure via the MIDIROTATOR field in Rotator Chords. |
| 9 · CHORDROTATOR | Similar to MIDIROTATOR but uses the CHORDROTATOR interval sequence. |
| 10 · CDG_ROTATOR | Rotator using the CDG interval pattern — creates a repeating C–D–G flavour chord cycle. |
| 11 · EFC_ROTATOR | Rotator using the EFC interval pattern. |
| 12 · CHORD_SEQUENCER | Plays pre-programmed harmonic sequences. Notes C2–A#2 (MIDI 36–46) silently set a transposition offset (C2 = −5 st, each semitone up adds +1). Notes at C1 and below trigger different lick patterns. |
| 13 · DIATONIC_CHORDS | Automatically voices diatonic triads. Notes C2–B2 (MIDI 36–47) select the root key silently; notes from C5 up trigger the chord at that scale degree. Configure root/octave offsets in the Diatonic fields. |
| 14 · DIATONIC_FOURTHS | Variation of DIATONIC_CHORDS voiced in fourths. Keys C2–B2 select the root silently; notes from C5 up trigger the voicing. |
| 15 · FIFTH_UP | Plays the triggered note plus a fifth above. Keys C2–B2 (MIDI 36–47) silently set the root note (C2 → root C4, B2 → root B4); notes above trigger the fifth-interval chord from that root. PHR effect sound. |
| 16 · FIFTH_UP_FOURTH_DOWN | Plays a G–C–F voicing (fifth up, fourth down) for each note. Keys C2–B2 select the root silently, same as FIFTH_UP. |
| 17 · PITCH_BEND_CHORDS | Chords that respond to pitch bend on the most recently played note only. |
| 18 · SELECTIVE_PITCH_BEND_2NOTES | Like PITCH_BEND_CHORDS but the pitch bend affects the last two notes played. |
| 43–47 · CHORD_SCALE1–5 | User-definable chromatic chord scales — see the Chord Editor section. |
| ID · Name | Description |
|---|---|
| 5 · WAYLO_TRANS | Remaps incoming MIDI notes using a custom chromatic transposition table. Square/Saw oscillators. |
| 6 · ZAWINUL | Note remapping inspired by Joe Zawinul's keyboard layouts. |
| 7 · SAMCHILI | Alternative note remapping — Square/Saw oscillators. |
| ID · Name | Description |
|---|---|
| 19 · SINE_FM_PIANO | Sine-wave FM piano synthesis. Knob 1 sets chorus + delay, Mod wheel controls FM feedback and filter cutoff. |
| 20 · SINE_FM_PIANO_ADJ | FM piano with adjustable attack time. Button 1 shortens attack; Button 2 lengthens it (up to 50 ms). |
| 24 · WAYLO_FM | FM synthesis variation with chorus and delay. Knob 1 = chorus; Knob 2 = delay wet. |
| ID · Name | Description |
|---|---|
| 25 · WAYLO_XFADE | Crossfade patch — square waves both sides with chorus and delay. |
| 27 · WAYLO_XFADE2 | Left-side pitch LFO only (depth and rate set by Knob 1, 0–6 Hz). Right side static. Knob 2 = delay. |
| 28 · WAYLO_XFADE2_LINEAR | Variation of WAYLO_XFADE2 with a linear amplitude envelope curve. |
| 29 · WAYLO_XFADE2_QUARTIC | Variation with a quartic (steep) amplitude curve — sharp attack, smooth release. |
| ID · Name | Description |
|---|---|
| 49 · SQUARE_SAW_LFO | Polyphonic Square/Saw with independent left/right pitch LFOs. LFO depth and speed are set in the Parameters tab. Creates a wide stereo shimmer effect. |
| 54 · SQUARE_SAW_LFO2 | Polyphonic Square/Saw with selectable waveforms per side (SAW, SINE, SQUARE 50%, SQUARE 75%, TRIANGLE — same options as EWI_DUAL_WAVE_LFO) plus its own Noise Volume control. Uses ADSR envelope and polyphonic voice allocation, not breath/legato. LFO depth and speed are shared with patch 49. Configure waveform and noise in the Parameters tab under SQUARE_SAW_LFO2 Settings. |
| ID · Name | Description |
|---|---|
| 38 · AUDIO_INPUT_FX | Passes the audio input (Daisy Pod line input) through the chorus and delay effects. No synthesis — pure FX processor. |
| 50 · GUITAR_INPUT_FX | Guitar-optimised version of AUDIO_INPUT_FX. Knob 2 = delay wet. |
| ID · Name | Description |
|---|---|
| 42 · EWI_MONO_SQUARE_SAW | Monophonic legato patch. Square left, Saw right. Breath (CC2) or channel pressure controls amplitude and filter cutoff. Phase preserved across notes for smooth legato. |
| 48 · EWI_MONO_DUAL_SAW | Monophonic legato patch with Sawtooth on both sides. Otherwise identical behaviour to EWI_MONO_SQUARE_SAW. |
| 51 · EWI_DUAL_WAVE_LFO | EWI monophonic legato with fully selectable waveforms per side and a noise volume control. Waveform set in Parameters tab. |
| 52 · EWI_DUAL_WAVE_LFO2 | Independent copy of EWI_DUAL_WAVE_LFO with its own waveform and noise settings. |
| 53 · EWI_DUAL_WAVE_LFO3 | Third independent EWI selectable-waveform patch. |
The five CHORD_SCALE patches (43–47) each store a table of 36 chords covering three chromatic octaves (C4 through B6). When you play a note in that range, the synth looks up the chord stored at that pitch and plays all its notes simultaneously. Notes below the range (C3–B3) select a transposition offset; notes above the range are ignored.
Each card in the Chord Editor shows one scale (CHORD_SCALE1 … CHORD_SCALE5). Inside the card is a 6-column grid of 36 cells. Each cell shows:
Click any cell to open the piano keyboard editor and change its notes.
A full nine-octave piano keyboard appears. Keys highlighted in green are currently active in the chord. Click any key to toggle it on or off. The chord can hold up to six notes. When done, click Save Chord to update the grid, or Cancel to discard.
{"chordsAck":180}.
| Button | What it does |
|---|---|
| Send to Device | Transmits all five chord scales (180 chords total) to the device's persistent storage. The device will use these chords immediately and remember them after power-off. |
| Read from Device | Requests the device to send back all five chord scales, populating the editor with whatever is currently stored in hardware. |
| Export CSV | Downloads a CSV file containing all 180 chords. Format: Scale, ChordIndex, ChordSize, Note1…Note6. |
| Import CSV | Loads a previously exported CSV back into the editor (does not send to device automatically). |
| MIDI→CSV | Opens the MIDI import dialog — see section 8. |
While playing a CHORD_SCALE patch, any note below C4 (MIDI < 60)
acts as a transposition key rather than triggering a chord. The formula is
transposition = note − 48, so C3 (MIDI 48) = 0 semitones, C#3 = +1,
D3 = +2, and so on up to B3 = +11. Notes below C3 produce negative transpositions.
This lets you shift the entire chord scale up or down without editing individual chords.
The MIDI→CSV button opens an import dialog that reads a standard MIDI file and converts its note events into a chord scale — one chord per beat position, up to 36 chords (six notes maximum per chord).
.mid or .midi file from your computer.The importer groups all Note-On events into time clusters using a tolerance of 10% of a quarter-note (so notes within a small window are treated as a single chord). Each cluster is then quantised to the nearest quarter-note beat. Beats are numbered from 0 and the first 36 beats become chord slots 0–35. Notes beyond six per beat are discarded; slots beyond 36 are ignored.
The rotator patches each hold a sequence of semitone intervals. Every time you play a new note, the patch reads the next interval in its sequence and offsets the harmony note(s) by that amount. The sequence loops continuously.
Each rotator field accepts a comma-separated list of integers (positive or negative semitone offsets). The first value is a static constant; values 2–5 are the rotating offsets.
| Field | Default | What it controls |
|---|---|---|
| MIDIROTATOR (m1,m2,m3,m4,m5) | 7,−10,−7,−8,−2 | Interval sequence for patch 8 · MIDIROTATOR. Plays the original note plus a note offset by each interval in rotation. |
| CHORDROTATOR (c0–c4) | 7,3,5,4,2 | Interval sequence for patch 9 · CHORDROTATOR. |
| CDG_ROTATOR (d0–d4) | 7,0,2,7,12 | Interval sequence for patch 10 · CDG_ROTATOR. The default produces a C–D–G flavour cycle. |
| EFC_ROTATOR (e0–e4) | 7,4,5,12,−5 | Interval sequence for patch 11 · EFC_ROTATOR. |
| DIATONIC Degrees (dd0–dd4) | 0,5,2,3,0 | Scale degree offsets used by the DIATONIC_CHORDS and DIATONIC_FOURTHS patches to voice harmony notes. |
| DIATONIC Octaves (do0–do4) | 3,3,4,4,5 | Octave placement for each diatonic voice. |
The top-bar Export as CSV and Import from CSV buttons save and restore a complete snapshot of all editor state (parameters, waveform selects, rotator sequences, and patch enable/disable state) in a single CSV file. They do not include chord scale data — use the Chord Editor's own Export/Import for that.
Click Export as CSV. The browser downloads a file named
waylinator-settings-YYYY-MM-DD.csv. Keep this file as a preset backup.
Click Import from CSV and select a previously exported file. All parameters, rotators, waveforms, and patch states are restored in the editor. Click Write to Device to send the restored values to hardware.
gig-2025-funk.csv, ambient-set.csv — and store them
alongside any chord scale CSVs for that session.
The EWI_MONO and EWI_DUAL_WAVE_LFO patches are designed for wind controllers (EWI, Akai EWI USB, Berglund NuRAD, etc.) or any controller that sends breath data. They can also be played from a standard keyboard — breath is optional.
If no CC2 or pressure data is received, the synth assumes full breath (amplitude = 1.0) so the patch still makes sound from a regular MIDI keyboard. You will lose breath dynamics but the patches are fully playable.
The EWI Portamento (ms) parameter sets the glide time between consecutive notes. At 0 ms there is no glide — pitch jumps instantly. At higher values the pitch slides from the previous note to the new one over the specified time, at the audio sample rate (smooth, artefact-free portamento).
At breath = 0 the filter cutoff sits at EWI Filter Min (Hz). At full breath it rises to EWI Filter Max (Hz). The EWI Filter Sensitivity multiplier skews this curve — values above 1.0 make the filter open faster for a given breath amount, values below 1.0 slow it down.
| Waveform | Character |
|---|---|
| SAW (PolyBLEP Sawtooth) | Bright, buzzy, rich in harmonics. Classic synth-brass or synth-string foundation. |
| SINE | Pure, smooth, flute-like. Almost no aliasing. Combine with noise for a breathy flute sound. |
| SQUARE 50% (Traditional) | Hollow, clarinet-like. Contains only odd harmonics. |
| SQUARE 75% (Pulse) | Narrower pulse width — nasal, reedy quality. Key-tracking and velocity shift the duty cycle. |
| TRIANGLE | Softer than square, warmer than sine. Mellow lead tone. |
Mix different waveforms on left and right for a wider stereo spread. For example: SQUARE 75% left + SAW right creates a dense, chorused EWI-brass sound.
The Noise Volume control (0–100) in each EWI_DUAL_WAVE_LFO section mixes white noise into the oscillator output before the filter. A small amount (5–15) adds "breath" and air to otherwise clean waveforms — especially effective with SINE or TRIANGLE for flute-like textures. Higher values create a noisy, breathy reed character.
chordsAck:180 in the Device Log.Waylinator Editor · End User Guide · Generated from editor.html and Midi.cpp