kennethreitz
b9ee5c9cde
Timpani demo: crescendo roll + accent hit, matches doc example
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 16:23:21 -04:00
kennethreitz
7375d58209
Lower timpani demo to octave 2-3
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 16:21:57 -04:00
kennethreitz
6316a6c910
Hybrid harp: KS pluck transient + pure additive sustain
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 16:20:49 -04:00
kennethreitz
237cfe171c
Rewrite harp synth: pure additive tone instead of Karplus-Strong
...
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 >
2026-03-29 16:18:50 -04:00
kennethreitz
943a12b3bb
Add dedicated Rhodes electric piano synth
...
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 >
2026-03-29 16:08:10 -04:00
kennethreitz
04d2de3e70
Add pulse, noise, PWM slow, PWM fast audio demos
...
Every waveform on the synths page now has an audio player.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 16:04:13 -04:00
kennethreitz
ead42751ef
Trim trailing silence from all audio exports
...
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 >
2026-03-29 15:59:34 -04:00
kennethreitz
8dee0d00d8
Raw waveform demos (no envelope), open up bass lowpass to 1200
...
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 >
2026-03-29 15:57:39 -04:00
kennethreitz
de112e0d9f
Idiomatic synth demos: strum, hold, drone, ensemble per instrument
...
Harp: arpeggiated hold. Harpsichord: baroque runs. Guitars: strum
chords. Piano: hold + melody. Cello: bowed ensemble=3. Sitar: drone
under melody. Banjo/uke: strum. Mandolin: tremolo. Strings: ensemble=8.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 11:36:30 -04:00
kennethreitz
f469ad90f8
Add granular synth audio demo
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 11:33:05 -04:00
kennethreitz
bab7f39304
Fix bass guitar demo: play in octave 2-3
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 11:29:21 -04:00
kennethreitz
62557ba534
Fix upright bass demo: play in octave 2-3 not 4-5
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 11:28:50 -04:00
kennethreitz
8b50a9c325
Audio demos for every synth: 34 waveform/instrument players
...
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 >
2026-03-29 11:27:56 -04:00
kennethreitz
7e9caac70b
Update homepage + quickstart to rock example, match code to audio
...
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 >
2026-03-29 11:15:27 -04:00
kennethreitz
e3dd706032
Remove stale sequencing_bossa.wav (replaced by complete_rock.wav)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 11:05:19 -04:00
kennethreitz
9b412906bc
Fix acid example, add basic chords audio, regenerate all 34 samples
...
All audio files: stereo, normalized, no issues.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 11:04:51 -04:00
kennethreitz
54e0421997
Fix acid legato example: drop pad envelope, add filter + distortion
...
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 >
2026-03-29 10:57:47 -04:00
kennethreitz
109343ad30
Replace bossa nova with rock in Complete Example, add arpeggio audio
...
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 >
2026-03-29 10:53:06 -04:00
kennethreitz
28e84de566
Add legato/glide audio example to sequencing docs
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 10:50:55 -04:00
kennethreitz
d353d64298
Add Polyphonic Hold section with audio example to sequencing docs
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 10:49:49 -04:00
kennethreitz
7ee02e7ed2
Fix audio samples to stereo WAV
...
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 >
2026-03-29 10:48:51 -04:00
kennethreitz
f9c63ec360
Add audio player to homepage, remove save_midi from example
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 10:37:18 -04:00
kennethreitz
b9e88b77d8
Add audio for all world percussion, metal, cajón sections
...
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 >
2026-03-29 06:04:30 -04:00
kennethreitz
1910b09132
Add individual audio samples for all 4 Playing Patterns examples
...
Rock, bossa nova, salsa, and afrobeat each get their own audio player.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-29 05:55:11 -04:00
kennethreitz
5ac1873d83
Audio samples for all play_score() examples in docs
...
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 >
2026-03-29 05:51:25 -04:00
kennethreitz
9fafca2b08
Add audio samples for documentation
...
- 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 >
2026-03-29 05:42:34 -04:00
kennethreitz
7d678e364e
v0.39.2: Marching drumline, ensemble rendering, rudiments
...
Full marching percussion: snare, quads, pitched bass drums.
Part.flam(), Part.diddle(), Part.cheese() rudiment methods.
Part ensemble= for multi-player rendering with timing tendencies.
Sympathetic snare resonance. Updated docs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-28 23:01:18 -04:00
kennethreitz
0e10359236
v0.38.2: Part.ramp() for smooth parameter automation
...
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 >
2026-03-28 17:12:32 -04:00
kennethreitz
df00c3436d
Docs: articulations, dynamic curves, Part.hit(), Duration arithmetic
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-28 15:24:21 -04:00
kennethreitz
840bfcc36c
v0.37.0: Djembe expansion and cross-choke drum damping
...
5 new djembe patterns (dununba, tiriba, yankadi, djansa, mendiani),
3 djembe fills, cross-choke damping across drum families, and
improved djembe slap synthesis.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-28 12:32:14 -04:00
kennethreitz
938c1cc132
v0.36.6: Cajón and metal drum fills
...
Add 6 new drum fills: cajon flam, cajon rumble, cajon breakdown,
metal triplet, metal blast, metal cascade. 27 fills total.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-28 12:25:52 -04:00
kennethreitz
35d07b984b
Docs: add tabla fills to drums.rst
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-28 11:57:08 -04:00
kennethreitz
f06c6f77d1
Comprehensive docs sweep: all 9 guide pages updated
...
- index.rst: 16 systems, 60+ presets, 41 waveforms, full feature list
- synths.rst: 31 dedicated synths, 60+ presets, complete instrument list
- drums.rst: 51 drum sounds, cajón section, bayan pitch bend
- effects.rst: cabinet/analog_drift in automatable params
- playback.rst: temperament, reference_pitch, KeyboardInterrupt
- systems.rst: 16 systems, full microtonal section (shruti JI,
maqam Zalzalian, slendro, pelog, thai, makam, carnatic, 19/31-TET,
Bohlen-Pierce), TET factory, int tone names, System.tone()
- sequencing.rst: Score tuning params documented
- tones.rst: enharmonics (Cb/Fb/E#/B#, double sharps/flats, unicode),
B#/Cb octave fix, tone validation
- chords.rst: enharmonic support cross-reference
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 20:41:08 -04:00
kennethreitz
51bd63658f
Docs: update synths.rst — 41 waveforms, all 24 dedicated synths
...
Added: pedal steel, theremin, kalimba, steel drum, accordion,
didgeridoo, bagpipe, banjo, mandolin, ukulele. Updated counts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 20:31:31 -04:00
kennethreitz
d2b0c6f329
v0.36.1: 7 new synths, 9 new demo moods
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 20:15:22 -04:00
kennethreitz
70efb0ad40
v0.36.0: Banjo, mandolin, ukulele, cajón, vocal synth, granular
...
34 synth waveforms, 26 songs, vocal/formant synthesis with choir
preset, granular engine, banjo/mandolin/ukulele physical models,
cajón drum with 3 patterns, strum sweep on fretboard instruments.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 19:54:08 -04:00
kennethreitz
fb923f6c76
v0.35.1: Granular synthesis engine
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 11:50:32 -04:00
kennethreitz
8cf4145c15
Docs: timpani, saxophone, Part.roll(), update waveform counts
...
- Add timpani and saxophone synth sections to synths.rst
- Add rolls section to sequencing.rst with examples
- Update waveform count: 27 → 29
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 11:38:46 -04:00
kennethreitz
b3885b2c15
v0.35.0: JI ratios, 8.5x faster import, timpani, saxophone, rolls
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 11:34:34 -04:00
kennethreitz
28968a1b5c
Docs: strumming, pitch bends, tuning systems, fix instrument count
...
- Add guitar strumming section to sequencing.rst
- Add pitch bends section with three bend types
- Add tuning systems section (temperament, reference_pitch, TET)
- Fix index.rst: 25 → 49 instrument presets
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 02:49:24 -04:00
kennethreitz
9f8dd0006d
Pitch bends, updated docs, songs with new instruments
...
- Pitch bend: part.add("C4", bend=2, bend_type="smooth") bends up
a whole step. Three types: smooth (log/perceptual), linear, late
(hold then bend — blues style).
- Updated songs.py: use dedicated instrument synths (piano_synth,
flute_synth, trumpet_synth, etc.) instead of generic waveforms
- Updated docs: synths.rst (27 waveforms, instrument synths section),
effects.rst (cabinet sim, analog drift, updated signal chain),
drums.rst (world percussion: tabla, dhol, dholak, mridangam,
djembe, metal kit), index.rst (feature counts)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-27 02:14:45 -04:00
kennethreitz
5dd1c5e15d
v0.32.0: 8 new synth features, highpass filter, preset overhaul
...
Filter envelope, velocity→brightness, sub-oscillator, tremolo,
saturation, noise layer, phaser, configurable FM. Highpass filter.
Bowed and mallet envelopes. Improved strings_synth with additive
synthesis. All 38 instrument presets sanity-checked and enhanced.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 22:00:49 -04:00
kennethreitz
6b2b1e201e
Update index.rst with 13 synths, 38 instrument presets
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 21:20:46 -04:00
kennethreitz
f9c81fe05f
v0.31.0: 3 new synths, 38 instrument presets
...
- Karplus-Strong pluck (physical modeling for guitar/harp/koto)
- Hammond organ (additive drawbar synthesis)
- String ensemble (filtered saw with body resonance formants)
- 38 instrument presets: score.part("lead", instrument="violin")
- Demo updated with pluck_synth, organ_synth, strings_synth
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 21:18:27 -04:00
kennethreitz
b29b33524f
v0.30.0: Drums as Parts, split drums, kick-only sidechain, MIDI import
...
- Drums are real Parts with full effects pipeline
- split=True creates kick/snare/hats/toms/cymbals/percussion Parts
- Sidechain triggers on kick only
- Score.from_midi() imports Standard MIDI Files
- Document split drums workflow
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 20:27:10 -04:00
kennethreitz
4d3c7e0d6c
v0.29.0: MIDI import — Score.from_midi()
...
Load any Standard MIDI File into a Score. Zero-dependency parser
handles Type 0 and Type 1 files. Each channel becomes a Part,
channel 10 becomes drum hits. Roundtrip with save_midi works.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 14:25:19 -04:00
kennethreitz
427ff44ce9
Lower drum_humanize default to 0.15 — tighter feel
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 10:54:13 -04:00
kennethreitz
360a908464
v0.28.1: Humanized drum hits
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 10:53:45 -04:00
kennethreitz
866b110afa
Sync all summary pages with current feature set
...
index.rst: add figured bass, pitch class sets, scale recommendation,
stereo, detune, pan/spread, master compressor, REPL
quickstart.rst: same updates to "What's in the Box"
README.md: add stereo, sidechain, compressor, repl, forte numbers
drums.rst: document stereo drum panning
playback.rst: document stereo output and master compressor
cli.rst: add REPL section with cross-reference
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 07:29:12 -04:00
kennethreitz
0fc0b87017
Move closing line below toctree
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-26 07:22:53 -04:00