Two variants modeling Himalayan singing bowl acoustics:
- Strike: mallet hit with chirp from inharmonic partials, long ring
- Ring: rim-rubbed sustained tone with slow build and beating modes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Wurlitzer: reed-based, nasal, biting — bark on hard hits
- Vibraphone: aluminum bars with motor tremolo (spinning disc)
- Pipe organ: multi-rank (8'+4'+2'), constant air, wind chiff
- Choir: formant-filtered glottal source, vowel control via lyric=,
no vibrato (ensemble handles voice variation)
- All four with instrument presets, audio demos, and docs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CAJON_SLAP is now dry wood crack (no wires). New CAJON_SLAP_SNARE
has the buzzy version for cajóns with snare wires engaged.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Added hand-on-wood transient (lowpassed noise for soft palm feel)
before the box resonance kicks in. Deeper sub, longer air cavity
thump. You hear the hand, then the box.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Click count-off → snare groove with quad sweeps and bass splits →
flams and diddles → buzz roll into big unison hit.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bass has 180/320Hz box resonance modes. Slap has wood panel
resonance under the wire buzz. Tap has hollow finger-on-plywood.
Everything sounds like hitting a wooden box now.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Teental ends with bayan fill. Keherwa has ge_bend accents throughout
plus a bend-heavy final bar. Chakradar preceded by bayan showcase.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dagga now booms at 30Hz with sustained sub, wider thump band,
and heavier stick impact. The kind of hit you feel in your chest.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The melodic renderer was choking all signal at each new note,
killing strum/hold resonance. Removed — notes now naturally
overlap and ring out. Banjo lick now uses 16th notes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fundamental now decays at 0.6/s instead of 1.5/s — rings long
enough that rapid roll hits stack into a singing 'oooh' resonance.
Upper modes still die fast for the initial thump character.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Clean harmonics with dominant fundamental, gentle upper partials,
and soft finger pluck transient. Much purer, singing tone.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tine + tonebar + electromagnetic pickup model with bell-like
harmonics, metallic attack transient, and pickup nonlinearity.
electric_piano instrument preset now uses rhodes_synth instead of FM.
FM section updated to show bells. Audio demos for both.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Detects silence below -60dB threshold and trims with 0.2s tail
for natural decay. 69 audio files regenerated.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Basic waveforms now play without envelope shaping so you hear
the raw timbre. Complete Example bass at 1200 instead of 600.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Every synth section in the docs now has an audio player.
Classic waveforms, FM, supersaw, and all 31 instrument synths
each play a C major arpeggio for easy comparison.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Both pages now show the same rock beat example in G major with
piano, saw lead, triangle bass. Code and audio are in sync.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The pad envelope has slow attack — wrong for fast acid lines.
Updated both the docs code and the audio generator.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Complete Example now uses rock beat with piano/saw/bass in G major.
Added audio player for the arpeggiator code example.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
save_wav was writing mono — now properly writes stereo from
render_score's (n_samples, 2) output. All 31 files regenerated.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
28 audio samples total. Tabla (teental, keherwa, chakradar at fast
tempos), dhol, dholak, mridangam, metal blast, cajón. No labels
on stacked players.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
20 WAV files covering quickstart, sequencing, drums, playback,
and cookbook examples. Audio players embedded after every code
block that calls play_score().
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- docs/generate_audio.py renders 12 code examples as WAV files
- Audio players embedded in sequencing and drums docs via raw HTML
- Covers: piano hold, articulations, dynamics, filter ramp, rock,
bossa nova, djembe, tabla, marching snare, ensemble, strum, swell
- WAV files gitignored — generated at build time
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Smoothly sweep any parameter (lowpass, reverb, distortion, etc.)
from current value to target with linear, ease_in, ease_out, or
ease_in_out interpolation curves.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>