Welcome to Zyn
Z.js is a small, standalone JS audio synthesizer (~9kb, ~3.3kb gzipped) that
generates instruments from simple integer seeds. It can be dropped into any web project —
games, demos, creative tools — anywhere you need sound without heavy dependencies.
This playground is built on top of Z.js and lets you explore, audition, and bookmark its
procedurally generated instruments. Each instrument is defined entirely by its
seed number — that integer is all you need to recreate the exact same
sound in your own code. Use your computer keyboard, a MIDI controller, or the on-screen piano
to play notes. Check the Code tab for ready-to-use snippets.
Notice: As this synth generates random sounds, some may be unexpected or harsh.
Please listen at a safe and comfortable volume to protect your hearing.
Sections
Instrument: Generate instruments from seed numbers, pick a type, and use Find Similar to discover related sounds
Presets: Browse, save, and manage your bookmarked instruments, organised by type
Recording: Capture audio clips of your performance and export them as WAV files
MIDI: Connect a MIDI controller, assign instruments to up to 16 channels, and save channel configurations
Code: Copy ready-to-use Z.js code snippets for the current instrument or your full channel setup
Design: Build custom instruments by hand — add oscillators, shape envelopes, configure filters and modulation, then find matching seeds
Keyboard Shortcuts
Shortcuts are disabled while typing in text fields.
Playing
QWERTY keys: Play notes (Q = middle C)
Page Up / Down: Change octave
+ / −: Browse instrument seeds
Escape: Stop all sounds
Tabs
Alt+1–7: Switch tabs (About, Presets, Instrument, Recording, MIDI, Code, Design)
Actions
Alt+G: Generate random instrument
Alt+S: Find similar instrument
Alt+D: Retry find similar
Alt+R: Toggle recording
Presets
Arrow Up / Down: Navigate between presets
Home / End: Jump to first / last preset
Enter / Space: Load selected preset
How to use Presets
Load presets: Click on a preset name to load it
Manage presets: Presets save octave and volume settings, and can be renamed or deleted
Save new presets: Use "Save Current" on the Instrument tab
Export/Import: Back up your presets to a JSON file or share them with others
📤 Export Presets
📥 Import Presets
How to Record Audio
Arm recording: Click "Record" to arm (button turns yellow)
Start recording: Play any note to begin capturing audio
Stop recording: Click "Stop Rec" or press Escape
Manage clips: Clips are auto-saved to browser storage. Click names to rename, export as WAV
🔴 Record
No recordings yet. Click "Record" to arm, then play notes to start recording.
How to use MIDI
Enable MIDI: Click the button below to connect your MIDI controller
Channels: Configure up to 16 MIDI channels with different instruments
Active channel: Channel selected for editing in the instrument / preset tabs. The on-screen piano and typing keyboard always play on the active channel. Your MIDI controller sends on its own channel (usually channel 1)
Force route: Enable "Route MIDI to active channel" to override the controller's channel and play everything through the active channel instead
Activity lights: Green = note on, Red = note off
Channel presets: Save and load entire channel configurations
🎸 Enable MIDI
MIDI:
Disable
☐ Route to Active
Channel Configuration
Single Instrument
Use the current instrument seed in your own project.
Multi-Channel Setup
Initialise all instruments from your current MIDI channel configuration.
Designed Instrument
Use your custom designed instrument in your own project.
How to use Instrument Design
Design instruments: Build custom instruments from scratch by adding oscillators (up to 5), each with its own waveform, octave, detune, filter, and ADSR envelopes. Use global volume and octave offset to adjust the overall sound
Shape sounds: Drag ADSR envelope points or type values directly. Enable filter, pitch, and filter Q envelopes per oscillator. Add LFOs, FM synthesis, distortion, delay, and reverb
Toggle oscillators: Use the checkbox on each oscillator to enable or disable it without losing your settings
Play live: The keyboard plays your designed instrument while this tab is active. Use the toggle button below the keyboard to switch between designed and generated instruments at any time
Find Seed: Search for a seed-generated instrument that matches your design. The search scores candidates from 0-100% based on how closely they match your oscillator settings, envelopes, and effects. A perfect 100% match is unlikely since seeds generate from a fixed algorithm, but this is a powerful way to guide the random search — design roughly the sound you want, then find the closest seed match. Use "Find Improved" to keep searching for a better result
Load from Generator: Copy the current generated instrument into the designer to use as a starting point, then tweak individual parameters
Save designs: Save, load, rename, export, and import your instrument designs. The best matching seed and score are saved with each design