The codebase

How big the Wavelength engine is, how it grew, and what it can do, measured from its git history one commit at a time.

45,431lines of C++ code, written in 18 days

  1. First commit2,430
  2. v0.1.08,078
  3. v0.2.09,291
  4. v0.3.017,776
  5. v0.4.024,936
  6. v0.5.042,949
  7. v0.6.045,431
Source files
159
Comment lines
3,170
Commits
361
Releases
6, latest v0.6.0
In development
0.6.0
Lines added, removed
+85,801 −8,414

How it grew

Each step is a commit: the lines of C++ code in src/ once it landed, not counting blank lines or lines that hold only a comment. Point at the line, or focus it and use the arrow keys, to see each commit.

Vertical lines mark releases (v0.1.0 8,078, v0.2.0 9,291, v0.3.0 17,776, v0.4.0 24,936, v0.5.0 42,949, v0.6.0 45,431 lines) and the start of each day.
Every commit (361)
WhenCommitWhat changedLines of codeChange
Mon 12 Oct, 23:13 811d6fb πŸš€ RELEASE: v0.6.0 45,431 0
Mon 12 Oct, 21:39 d857f6e πŸ‘Œ IMPROVE: wavelength.mcpb asks for a songs folder 45,431 0
Mon 12 Oct, 21:39 a1e3ad6 πŸ“¦ NEW: MCP write_job, read_job, list_songs; songs by name 45,431 +146
Mon 12 Oct, 06:20 eabc5f1 πŸ“¦ NEW: wavelength.mcpb and the files the MCP directories list it by 45,285 0
Mon 12 Oct, 06:20 95c7769 πŸ› FIX: install.sh checks the release archive against SHA256SUMS.txt 45,285 0
Mon 12 Oct, 06:17 bd219c3 πŸ“¦ NEW: MCP tool save_preset; state save --set takes the plugin's text 45,285 +41
Sun 11 Oct, 20:38 cf1e307 πŸ‘Œ IMPROVE: Move to… opens a group picker on the Riffs page 45,244 0
Sun 11 Oct, 20:38 fcd1d1c πŸ“¦ NEW: riffs in other meters: a Meter menu on the record bar and in the riff editor 45,244 +2
Sun 11 Oct, 15:36 24e7c97 πŸ‘Œ IMPROVE: riff Play turns to Pause; groups listed newest first 45,242 0
Sun 11 Oct, 15:20 d7ac433 πŸ‘Œ IMPROVE: riff groups file themselves by day, numbered, with no names 45,242 +51
Sat 10 Oct, 21:18 718fd3e πŸ“– DOC: changelog: the stale skill docs were weeks old, not months 45,191 0
Sat 10 Oct, 21:18 e6fe76c πŸ“– DOC: agent skill: a riffs.json riff can be written as well as recorded 45,191 0
Sat 10 Oct, 21:18 593d327 πŸ› FIX: the skill installer finds current docs for a symlinked or -dev binary 45,191 0
Sat 10 Oct, 13:58 1367e38 πŸ› FIX: Enter in a serve dialog's field no longer cancels it 45,191 0
Sat 10 Oct, 13:47 18c4eaa πŸ“¦ NEW: write a riff note by note 45,191 0
Sat 10 Oct, 08:08 8f8c60c πŸ“¦ NEW: box select and duplicate in the riff editor 45,191 0
Sat 10 Oct, 08:04 926e833 πŸ“¦ NEW: a ruler in the riff editor to play from anywhere 45,191 0
Sat 10 Oct, 07:45 de97bae πŸ› FIX: the Sounds and Riffs pages no longer open blank 45,191 0
Sat 10 Oct, 07:45 248a801 πŸ“¦ NEW: rename a track or instrument from the More menu 45,191 +40
Sat 10 Oct, 07:36 7417475 πŸ‘Œ IMPROVE: adding an instrument asks for no track name 45,151 0
Sat 10 Oct, 07:25 dc294b5 πŸ› FIX: scrolling past a knob no longer turns it 45,151 0
Fri 9 Oct, 22:15 8797661 πŸ“¦ NEW: try a preset on the keys before you pick it 45,151 0
Fri 9 Oct, 22:09 47d67ab πŸ“¦ NEW: preset pickers filter by type 45,151 0
Fri 9 Oct, 21:59 8793285 πŸ“¦ NEW: a riff library apart from songs: the Riffs page and wavelength riffs 45,151 +520
Fri 9 Oct, 19:36 ce572eb πŸ› FIX: Sounds-page projects validate again 44,631 +1
Thu 8 Oct, 13:02 9790236 πŸ“¦ NEW: record riffs on the Sounds page for the agent to build on 44,630 +99
Thu 8 Oct, 12:41 2d3bd49 πŸ“¦ NEW: Sounds page opens the plugin's own window 44,531 +468
Thu 8 Oct, 12:29 3aa9c0b πŸ“¦ NEW: Sounds page: tune each instrument by ear, then hand off 44,063 +2
Thu 8 Oct, 12:17 cfcae50 πŸ“¦ NEW: sounds.json keeps instruments tuned by ear; knobs turn live 44,061 +684
Wed 7 Oct, 10:14 a19abad πŸ‘Œ IMPROVE: patch cards flag patches that are out of tune 43,377 +11
Wed 7 Oct, 10:09 5d2b3a9 πŸ› FIX: velocity humanize no longer silences full-velocity notes 43,366 +1
Tue 6 Oct, 18:56 d5adb2e πŸ€– TEST: the regression checks run on Linux in Docker 43,365 0
Tue 6 Oct, 18:56 b52e902 πŸ‘Œ IMPROVE: the examples play their fallbacks without plugins 43,365 0
Tue 6 Oct, 18:55 ddb235e πŸ› FIX: warning-free on GCC 43,365 0
Tue 6 Oct, 18:55 e0ba70f πŸ› FIX: copied files land on Docker Desktop bind mounts 43,365 +20
Tue 6 Oct, 18:22 6400768 πŸ€– TEST: one check.sh run at a time 43,345 0
Tue 6 Oct, 18:22 947d53f πŸ› FIX: channel strip records stay inside their file 43,345 +3
Tue 6 Oct, 18:10 fc4acee πŸ€– TEST: fuzz the file readers under a sanitizer build 43,342 0
Tue 6 Oct, 18:02 600f458 πŸ› FIX: a package's instruments can't read outside the song 43,342 +83
Tue 6 Oct, 18:02 8d7ea2b πŸ› FIX: file readers refuse hostile files instead of crashing 43,259 +250
Tue 6 Oct, 17:39 b1bba68 πŸ“– DOC: agent skill names Audio Units and GarageBand imports 43,009 0
Tue 6 Oct, 17:39 46b097c πŸ“– DOC: roadmap shows what 0.5.0 shipped; release step keeps it current 43,009 0
Tue 6 Oct, 17:39 0c81daf πŸ“– DOC: readme lists 28 effects, Audio Units and the newer commands 43,009 0
Tue 6 Oct, 17:38 2e491f5 πŸ“– DOC: help, AGENTS.md and the format docs caught up with 0.5.0 43,009 +6
Tue 6 Oct, 14:46 cd81b49 πŸ“– DOC: changelog line for track realtime 43,003 0
Tue 6 Oct, 14:46 c75f932 πŸ“¦ NEW: track realtime paces a plugin to the clock around its notes 43,003 +54
Tue 6 Oct, 12:07 18dbbfe πŸ‘Œ IMPROVE: start 0.6.0-dev 42,949 0
Tue 6 Oct, 12:03 5374488 πŸš€ RELEASE: v0.5.0 42,949 0
Tue 6 Oct, 11:16 7a1278d πŸ“¦ NEW: mod wheel and channel pressure on builtin:synth 42,949 +52
Tue 6 Oct, 10:56 e312a43 πŸ‘Œ IMPROVE: Vintage Clav and Sculpture calibrated against a GarageBand bounce 42,897 +51
Tue 6 Oct, 10:53 0e439b0 πŸ‘Œ IMPROVE: Smart Control knobs on effects read GarageBand 10.4's finer steps 42,846 +42
Tue 6 Oct, 10:29 842ea94 πŸ“¦ NEW: GarageBand plug-in automation plays; eq bands automatable 42,804 +289
Tue 6 Oct, 10:16 31d3a3b πŸ‘Œ IMPROVE: ES2 patches calibrated against a GarageBand bounce 42,515 +70
Tue 6 Oct, 10:12 4992c82 πŸ› FIX: GarageBand audio files under a long or moved absolute folder 42,445 +13
Tue 6 Oct, 09:55 15328f5 πŸ“¦ NEW: GarageBand Groove Track followers play on the master's timing 42,432 +3
Tue 6 Oct, 09:42 37335e7 πŸ“¦ NEW: bus pan; GarageBand aux pans import 42,429 +12
Tue 6 Oct, 09:36 9e61361 πŸ› FIX: no audio-region-fade warning on GarageBand imports 42,417 βˆ’2
Tue 6 Oct, 09:19 b52a9f6 πŸ› FIX: GarageBand auxes named by Logic's placeholder keep their sends 42,419 +10
Tue 6 Oct, 09:14 63bf8a7 πŸ› FIX: GarageBand's Chinese Kit is recognised as a sampler patch 42,409 +2
Tue 6 Oct, 09:04 86c09d1 πŸ“¦ NEW: Pedalboard's Dr. Octave plays its octave below 42,407 +9
Tue 6 Oct, 08:59 10115bc πŸ“¦ NEW: delay wow and flutter; Tape Delay plays them 42,398 +44
Tue 6 Oct, 08:50 a270ca1 πŸ“¦ NEW: meterChanges: a meter map by bar 42,354 +118
Tue 6 Oct, 08:38 9417b91 πŸ“¦ NEW: Alchemy's tuned filters play; builtin:synth filter chains 42,236 +461
Tue 6 Oct, 08:34 bd60fa3 πŸ“¦ NEW: GarageBand's Spreader plays; chorus spread 41,775 +6
Tue 6 Oct, 08:25 1c586f8 πŸ“¦ NEW: GarageBand's Ringshifter and Roswell Ringer play 41,769 +38
Tue 6 Oct, 08:11 8e3b807 πŸ“¦ NEW: tune effect (pitch correction); GarageBand's Pitch Correction plays 41,731 +115
Tue 6 Oct, 08:01 d2a609a πŸ“¦ NEW: ringmod effect: ring modulator and frequency shifter 41,616 +82
Tue 6 Oct, 07:42 30cae29 πŸ“¦ NEW: pitch effect; Vocal Transformer and Pitch Shifter play 41,534 +91
Tue 6 Oct, 07:05 d7a305e πŸ› FIX: GarageBand pitch bend plays; the sampler follows pitchbend 41,443 +11
Tue 6 Oct, 06:55 6e1e99c πŸ“¦ NEW: GarageBand AU effects import; optional plugin effects 41,432 +37
Tue 6 Oct, 06:48 345c164 πŸ“¦ NEW: GarageBand tracks on third-party Audio Units import and play 41,395 +36
Tue 6 Oct, 06:38 7d256c4 πŸ› FIX: quantized GarageBand notes kept, and quantize Strength plays 41,359 +4
Tue 6 Oct, 06:33 1a0891c πŸ“¦ NEW: GarageBand's transposition track imports 41,355 +24
Tue 6 Oct, 06:26 a374c39 πŸ“¦ NEW: GarageBand arrangement markers import as job markers 41,331 +21
Tue 6 Oct, 00:05 6578ab2 πŸ‘Œ IMPROVE: GarageBand patches play their AutoFilter 41,310 +24
Tue 6 Oct, 00:01 f97b2bd πŸ‘Œ IMPROVE: older Apple Loops play the instrument in their own strip 41,286 +45
Mon 5 Oct, 23:58 6f95ed1 πŸ› FIX: Apple Loops import on their own patch, not a GM piano 41,241 +18
Mon 5 Oct, 23:51 5da5f4e πŸ› FIX: GarageBand's Church Organ is a sampler, not a closed synth 41,223 0
Mon 5 Oct, 23:46 f92d764 πŸ‘Œ IMPROVE: GarageBand patches play their Vintage Tube EQ 41,223 +20
Mon 5 Oct, 23:43 91235b0 πŸ“¦ NEW: Echo, Multipressor and five more GarageBand effects play 41,203 +15
Mon 5 Oct, 23:34 7b080f5 πŸ“¦ NEW: GarageBand's effect patches as an fx chain by name 41,188 +142
Mon 5 Oct, 23:28 db6feae πŸ‘Œ IMPROVE: Retro Synth patches calibrated against a GarageBand bounce 41,046 +11
Mon 5 Oct, 23:26 a31211d πŸ“¦ NEW: delay sides and taps, for Stereo Delay and Delay Designer 41,035 +128
Mon 5 Oct, 23:17 b91ef27 πŸ‘Œ IMPROVE: GarageBand's electric pianos follow the keys as GarageBand's do 40,907 +34
Mon 5 Oct, 22:43 53fb8d8 πŸ“¦ NEW: every GarageBand Time Quantize value, swing and tuplets included 40,873 +31
Mon 5 Oct, 21:51 5bc5ba6 πŸ› FIX: GarageBand's Echo plays at its level and tone 40,842 +12
Mon 5 Oct, 21:38 6b85c4d πŸ“¦ NEW: GarageBand Smart Control automation on Retro Synth's filter 40,830 +159
Mon 5 Oct, 10:29 611b9a3 πŸ› FIX: GarageBand projects in 3/4, every Time Quantize, send automation 40,671 +23
Mon 5 Oct, 08:30 4e882e3 πŸ“¦ NEW: a GarageBand project's master fade imports 40,648 +15
Mon 5 Oct, 08:20 d9cbe56 πŸ“¦ NEW: GarageBand automation, loops in the project key, the balance pan law 40,633 +70
Sun 4 Oct, 23:37 2f616fd πŸ› FIX: exact GarageBand patch and instrument names win over partial ones 40,563 +3
Sun 4 Oct, 23:24 d70fdeb πŸ› FIX: Drummer loop slices, Ultrabeat key 53, the B3's cabinet roll-off 40,560 +30
Sun 4 Oct, 23:10 b2bd5d8 πŸ“¦ NEW: 14 more Alchemy patches play, source filters stay on their source 40,530 +150
Sun 4 Oct, 22:51 1a330a6 πŸ“¦ NEW: GarageBand's guitar and bass amps play as built-in effects 40,380 +587
Sun 4 Oct, 22:47 69bcca6 πŸ“¦ NEW: Retro Synth Table mode plays the patch's own wavetable 39,793 +107
Sun 4 Oct, 22:43 42a4b7d πŸ“¦ NEW: track midiFx chain, GarageBand's MIDI effects play 39,686 +685
Sun 4 Oct, 21:41 c619ffe πŸ‘Œ IMPROVE: GarageBand tempo ramps confirmed as steps 39,001 βˆ’1
Sun 4 Oct, 21:34 32008e5 πŸ“¦ NEW: GarageBand import keeps audio region trims and loops 39,002 +26
Sun 4 Oct, 21:07 58cc72e πŸ“¦ NEW: GarageBand import keeps region loops, trims and quantize 38,976 +34
Sun 4 Oct, 20:52 d818755 πŸ› FIX: GarageBand import plays a region's Transpose 38,942 +4
Sun 4 Oct, 20:46 3d279ca πŸ› FIX: GarageBand import reads exact faders, pans, mute and solo 38,938 +12
Sun 4 Oct, 16:02 ca52c5c πŸ“¦ NEW: import GarageBand projects 38,926 +1,030
Sun 4 Oct, 15:07 e2f0f6d πŸ“¦ NEW: patch folders by path for builtin:synth and the sampler 37,896 +25
Sun 4 Oct, 11:59 688698d πŸ› FIX: Alchemy distortion per voice, noise bands, closed filters refused 37,871 +64
Sun 4 Oct, 11:02 c110a83 πŸ› FIX: Alchemy patches play Amp effects at their held level 37,807 βˆ’1
Sun 4 Oct, 10:55 594a06c πŸ“¦ NEW: GarageBand's additive and granular Alchemy patches play 37,808 +523
Sun 4 Oct, 10:55 2f49af6 πŸ“¦ NEW: builtin:synth additive oscillator 37,285 +211
Sun 4 Oct, 10:29 caf4459 πŸ“¦ NEW: GarageBand's Vintage Electric Piano, Clav and Sculpture play by name 37,074 +726
Sun 4 Oct, 10:13 02e6707 πŸ“¦ NEW: DecentSampler instruments play without the plugin 36,348 +955
Sun 4 Oct, 08:58 032b6c5 πŸ“¦ NEW: DecentSampler, Maschine and MeldaProduction libraries as sources 35,393 +55
Sun 4 Oct, 08:54 8281a5e πŸ“¦ NEW: GarageBand's Alchemy patches play by name 35,338 +1,462
Sun 4 Oct, 08:21 edee144 πŸ“– DOC: arp tour example 33,876 0
Sun 4 Oct, 08:19 49eaf1b πŸ› FIX: re-created GarageBand patches stay near each other's level 33,876 +46
Sun 4 Oct, 08:10 1cea67e πŸ“¦ NEW: GarageBand's Arpeggiator, patches arpeggiate by themselves 33,830 +551
Sun 4 Oct, 07:42 29708d4 πŸ“¦ NEW: track arp, held notes played as an arpeggio 33,279 +88
Sun 4 Oct, 07:39 02c44f9 πŸ“¦ NEW: phaser effect and a noise-gate mode for gate 33,191 +77
Sun 4 Oct, 07:34 040b962 πŸ“¦ NEW: ES2, ES1, EFM1 and Vintage B3 patches, and most patch effects 33,114 +644
Sun 4 Oct, 07:07 2ed8d27 πŸ“¦ NEW: GarageBand's Retro Synth patches on builtin:synth 32,470 +236
Sun 4 Oct, 06:57 d04183e πŸ“¦ NEW: GarageBand patches play through their own EQ, compressor and delay 32,234 +133
Sun 4 Oct, 04:45 174742a πŸ› FIX: Drummer loop notes start at beat 0 32,101 +7
Sun 4 Oct, 04:38 1d3de24 πŸ“¦ NEW: Ultrabeat patches as kits, samples --patch 32,094 +229
Sun 4 Oct, 04:30 8602ee7 πŸ“¦ NEW: convolve effect, note-named sample folders, GarageBand kits 31,865 +217
Sun 4 Oct, 04:19 0f72575 πŸ“¦ NEW: GarageBand and Logic patches in the sampler 31,648 +312
Sun 4 Oct, 04:07 a2c4cf3 πŸ“¦ NEW: Apple Loops by name, in the song's tempo and key 31,336 +385
Sun 4 Oct, 04:07 fe347e0 πŸ“¦ NEW: AAC and Apple Lossless decode on macOS 30,951 +88
Sun 4 Oct, 04:03 1878031 πŸ“– DOC: changelog for import keeping notes of undescribed instruments 30,863 0
Thu 1 Oct, 23:50 3a28ead πŸ“¦ NEW: wavelength stage, faders from stem loudness by role 30,863 +291
Thu 1 Oct, 23:45 bec111d πŸ› FIX: serve plays the song's own render first 30,572 +5
Thu 1 Oct, 23:45 a68f893 πŸ› FIX: lint reads long drum samples as drums 30,567 +16
Thu 1 Oct, 23:45 a83af70 πŸ› FIX: analyze finds stems of a render made elsewhere 30,551 +6
Thu 1 Oct, 23:45 f579add πŸ› FIX: postFaderLufs on every render, windows included 30,545 +42
Thu 1 Oct, 23:44 a0303c2 πŸ“¦ NEW: mix check for a thin bass, tracks[].lowShare 30,503 +43
Thu 1 Oct, 12:00 8d7edad πŸ› FIX: serve opens songs whose sampler kit is a key map 30,460 +14
Wed 30 Sep, 19:52 b3274bb πŸ› FIX: import keeps the notes of instruments it can't describe 30,446 +3
Wed 30 Sep, 15:12 41d4b85 πŸ› FIX: import --list works without a value 30,443 0
Mon 28 Sep, 08:00 99f79db πŸ‘Œ IMPROVE: moving a group of notes previews only its first note 30,443 0
Mon 28 Sep, 07:23 201b412 πŸ“¦ NEW: live loop in the editor, hear mix and note changes in a second 30,443 +160
Mon 28 Sep, 07:10 b344406 πŸ“¦ NEW: render --cache reuses tracks whose audio can't have changed 30,283 +232
Mon 28 Sep, 06:36 cbe10d1 πŸ› FIX: purge leaves read-only render folders alone and shows every error 30,051 +11
Mon 28 Sep, 06:28 f2de42c πŸ‘Œ IMPROVE: purge knows master outputs and keeps them unless --masters 30,040 +21
Mon 28 Sep, 06:25 cb144a0 πŸ“¦ NEW: wavelength purge, free render WAVs and keep songs playable 30,019 +349
Mon 28 Sep, 06:09 c2a3581 πŸ› FIX: instruments that fill only one stereo channel play in the centre 29,670 +29
Mon 28 Sep, 05:55 d2d9e84 πŸ“– DOC: changelog for the picture's tempo range 29,641 0
Mon 28 Sep, 05:55 57f9ca7 πŸ› FIX: song picture shows the tempo range, not first and last tempo 29,641 +10
Sun 27 Sep, 21:04 ca69f75 πŸ“¦ NEW: wavelength card, pictures of how presets sound 29,631 +609
Sun 27 Sep, 21:04 dcf4fe8 πŸ‘Œ IMPROVE: share the picture's canvas, font and colours 29,022 +13
Sun 27 Sep, 19:09 dc55754 πŸ› FIX: Firefly Synth 2 presets saved without a patchState wrapper 29,009 +1
Sun 27 Sep, 19:07 bdf7630 πŸ“¦ NEW: presets for FB-02, FB3, Firefly Synth 2 and Vaporizer2 CLAP 29,008 +149
Sun 27 Sep, 19:07 3a9b84b πŸ› FIX: help check fails under pipefail 28,859 0
Sun 27 Sep, 18:32 d1be6b6 πŸ“– DOC: roadmap statuses after 0.4.0 28,859 0
Sun 27 Sep, 18:31 b0b1edb πŸ“– DOC: park preset capture in the roadmap 28,859 0
Sun 27 Sep, 17:24 01aeee0 πŸ‘Œ IMPROVE: keep local research out of the public tree 28,859 0
Sun 27 Sep, 17:07 99723cc πŸ› FIX: quick fixes from the compat sweep 28,859 +38
Sun 27 Sep, 16:57 d082b03 πŸ“¦ NEW: Reaktor 6 ensembles and snapshots by name 28,821 +216
Sun 27 Sep, 16:57 4428a46 πŸ› FIX: plugin updates that keep the bundle's date 28,605 +11
Sun 27 Sep, 16:03 2c061a7 πŸ› FIX: what the second compat sweep found 28,594 +43
Sun 27 Sep, 15:20 d014ddc πŸ“¦ NEW: live playing in the serve playground 28,551 +265
Sun 27 Sep, 15:12 af77a7e πŸ› FIX: what the first compat sweep found 28,286 +268
Sun 27 Sep, 14:59 9cdde8a πŸ“¦ NEW: note edits (edits.json), Render button, playground, overview, light mode 28,018 +248
Sun 27 Sep, 14:34 1dd72f8 πŸ‘Œ IMPROVE: serve stops idle live-note workers after 10 minutes 27,770 +14
Sun 27 Sep, 14:24 16fe101 πŸ“¦ NEW: live notes in the serve editor 27,756 +265
Sun 27 Sep, 14:18 c6cbb37 πŸ“¦ NEW: wavelength compat, a compatibility sweep over every plugin 27,491 +430
Sun 27 Sep, 14:13 65d3932 πŸ“¦ NEW: serve right-click menus, cancel renders, song details, rename and trash 27,061 +276
Sun 27 Sep, 14:07 74d16c9 πŸ“¦ NEW: Audio Unit hosting on macOS 26,785 +658
Sun 27 Sep, 13:56 7219275 πŸ“¦ NEW: HISE user presets by name 26,127 +140
Sun 27 Sep, 13:50 78fa11d πŸ“¦ NEW: Logic and GarageBand Sampler instruments (.exs) in the sampler 25,987 +270
Sun 27 Sep, 13:38 e246372 πŸ“¦ NEW: Surge XT Effects .srgfx presets by name 25,717 +110
Sun 27 Sep, 13:14 8bf4ee7 πŸ€– TEST: serve check on a free port, and say what failed 25,607 0
Sun 27 Sep, 13:10 8f9374c πŸ“¦ NEW: Serum 2 multisamples in the sampler, SFZ velocity curves 25,607 +50
Sun 27 Sep, 12:52 274fe7d πŸ“¦ NEW: Pendulate presets by name 25,557 +3
Sun 27 Sep, 12:51 2909e06 πŸ“¦ NEW: Kilohearts snap-in presets by name 25,554 +48
Sun 27 Sep, 12:47 ffed903 πŸ“¦ NEW: Serum 2 FX effect presets and racks by name 25,506 +58
Sun 27 Sep, 12:47 bd1f09e πŸ› FIX: obxdRoot declared before its use 25,448 0
Sun 27 Sep, 12:46 b7f6ad1 πŸ› FIX: old OB-Xd banks and exact preset-file names 25,448 +13
Sun 27 Sep, 12:41 4782a1b πŸ“¦ NEW: MeldaProduction presets for every Melda plugin 25,435 +35
Sun 27 Sep, 12:30 8306021 πŸ“¦ NEW: Echobode patches and Permut8 bank programs by name 25,400 +219
Sun 27 Sep, 12:16 017ccd9 πŸ“¦ NEW: audjoo Helix .hxp patches by name 25,181 +16
Sun 27 Sep, 12:14 e352eec πŸ“¦ NEW: OB-Xd bank programs, Surge 1.x, TyrellN6 and more presets 25,165 +121
Sun 27 Sep, 12:14 7a929b2 πŸ› FIX: Rosetta re-exec wrote command output to stderr 25,044 +1
Sun 27 Sep, 12:07 54c0180 πŸ› FIX: plugin scan storm when many commands start at once 25,043 +97
Sun 27 Sep, 12:04 efb701a πŸ› FIX: scan VST3 bundles left in VST 2 folders 24,946 +9
Sun 27 Sep, 10:39 210a678 πŸ‘Œ IMPROVE: start 0.5.0-dev 24,937 +1
Sun 27 Sep, 10:28 b4c709b πŸš€ RELEASE: v0.4.0 24,936 0
Sun 27 Sep, 10:08 21b6a76 πŸ“¦ NEW: terminal output for people: grouped help, colour, tables, progress 24,936 +650
Sun 27 Sep, 09:38 2c51575 πŸ“¦ NEW: wavelength upgrade and version --check 24,286 +222
Sun 27 Sep, 09:18 9753ba2 πŸ“– DOC: a roadmap, lowercase file names, one line per paragraph 24,064 0
Sun 27 Sep, 09:08 f01239b πŸ€– TEST: release-test uses its own work folder per run 24,064 0
Sun 27 Sep, 09:00 a069017 πŸ€– TEST: release-test runs every archive through the song format, fallbacks and MCP 24,064 0
Sun 27 Sep, 08:58 12264d7 πŸ“– DOC: 0.4.0 docs caught up with the engine 24,064 +6
Sun 27 Sep, 08:58 ac8b6fe πŸ‘Œ IMPROVE: song format Draft 2, from an independent review 24,058 +266
Sun 27 Sep, 08:58 278e2e1 πŸ› FIX: a master loudness target with no effects crashed 23,792 0
Sun 27 Sep, 07:33 1799e4a πŸ‘Œ IMPROVE: packages carry an unchanged sample once 23,792 +42
Sun 27 Sep, 07:24 e5fd7e7 πŸ‘Œ IMPROVE: a song's picture carries its title 23,750 +6
Sun 27 Sep, 07:21 09c78ae πŸ› FIX: fallbacks --suggest gave sidechain key tracks a bogus entry 23,744 +1
Sun 27 Sep, 07:15 4f6fd81 πŸ“– DOC: song workflow in the plugin skill, MCP song tools in README 23,743 +1
Sun 27 Sep, 07:15 98b3c93 πŸ“¦ NEW: upgrade, lib: sample names, fallbacks --suggest, render --keep 23,742 +1,018
Sun 27 Sep, 06:49 ab324ee πŸ“¦ NEW: song format schemas, Python reader and fixtures 22,724 +65
Sun 27 Sep, 06:40 3273346 πŸ“¦ NEW: .wavelength packages: pack, unpack, validate 22,659 +360
Sun 27 Sep, 06:36 051a39c πŸ“¦ NEW: musical diff and comments pinned to revisions 22,299 +554
Sun 27 Sep, 06:29 1e24a6c πŸ“¦ NEW: song history: save, undo, redo, restore, git export 21,745 +888
Sun 27 Sep, 06:14 e6c9959 πŸ€– TEST: check.sh waits for serve to answer 20,857 0
Sun 27 Sep, 06:14 93974a1 πŸ“¦ NEW: import Bitwig projects without a DAWproject export 20,857 +330
Sun 27 Sep, 05:42 bd6128a πŸ“– DOC: song format, draft 1 20,527 0
Sat 26 Sep, 21:36 8ef9630 πŸ‘Œ IMPROVE: serve has the Wavelength favicon 20,527 +6
Sat 26 Sep, 21:34 d4273af πŸ“¦ NEW: wavelength kit, free synths for machines without plugins 20,521 +448
Sat 26 Sep, 21:11 46d1500 πŸ› FIX: review comments failed with 403 after serve restarted 20,073 +11
Sat 26 Sep, 20:45 de3e525 πŸ“– DOC: agent skill says how to read song.png 20,062 0
Sat 26 Sep, 20:37 a2729f8 πŸ‘Œ IMPROVE: song.png lanes show post-fader LUFS and drop jumps 20,062 +24
Sat 26 Sep, 20:22 6f09d11 πŸ“– DOC: a loop can peak a little over the limiter where its tail folds in 20,038 0
Sat 26 Sep, 20:22 65f39c4 πŸ‘Œ IMPROVE: MCP render takes loop 20,038 +2
Sat 26 Sep, 20:21 e9c9db4 πŸ“¦ NEW: render --loop, seamless loops for games and apps 20,036 +39
Sat 26 Sep, 20:16 7741e30 πŸ› FIX: repetition check reads effect automate and lfo curves 19,997 +8
Sat 26 Sep, 20:16 e570bf0 πŸ“¦ NEW: track fallbacks, so a job renders without its plugins 19,989 +84
Sat 26 Sep, 20:12 1fad283 πŸ“¦ NEW: wavelength mcp, built-in docs and a Claude Code plugin 19,905 +617
Sat 26 Sep, 20:12 7e362b4 πŸ“¦ NEW: mix checks for the kick, the low end, phase and repetition 19,288 +218
Sat 26 Sep, 19:55 9806296 πŸ“¦ NEW: render --png, a picture of the song for agents 19,070 +473
Sat 26 Sep, 19:44 4786a7d πŸ“¦ NEW: builtin:synth, a polysynth that needs no plugin 18,597 +821
Sat 26 Sep, 19:25 7a42c65 πŸ‘Œ IMPROVE: start 0.4.0-dev 17,776 0
Sat 26 Sep, 08:44 ab278cf πŸš€ RELEASE: v0.3.0 17,776 0
Sat 26 Sep, 08:38 747489c πŸ‘Œ IMPROVE: serve UI in the Wavelength brand 17,776 0
Sat 26 Sep, 08:35 4c828b7 πŸ“¦ NEW: DAWproject export prints built-in instruments 17,776 +67
Sat 26 Sep, 06:47 9174070 πŸ› FIX: Windows build of serve, Linux build warnings 17,709 0
Sat 26 Sep, 06:47 186b2b3 πŸ“– DOC: known limits and the agent skill caught up with 0.3.0 17,709 0
Sat 26 Sep, 05:53 3d6e99a πŸ“¦ NEW: DAWproject export 17,709 +431
Sat 26 Sep, 05:42 343c2ac πŸ‘Œ IMPROVE: MusicXML grace notes and pedal; case-insensitive sample paths 17,278 +65
Sat 26 Sep, 05:39 31c4262 πŸ“¦ NEW: SoundFonts, General MIDI fallback, SFZ filters and release triggers 17,213 +644
Sat 26 Sep, 00:41 cb64e04 πŸ“¦ NEW: MusicXML import 16,569 +591
Sat 26 Sep, 00:33 ee12ed6 πŸ“¦ NEW: MP3, FLAC and WAV deliveries measured after decoding 15,978 +636
Sat 26 Sep, 00:23 aa0dd85 πŸ“¦ NEW: SFZ instruments in builtin:sampler 15,342 +410
Sat 26 Sep, 00:16 3881436 πŸ“¦ NEW: AIFF, FLAC, MP3 and Ogg Vorbis samples and clips 14,932 +175
Fri 25 Sep, 22:36 a78c40d πŸ‘Œ IMPROVE: optional stable code signature for local macOS builds 14,757 0
Fri 25 Sep, 22:18 777e16b πŸ‘Œ IMPROVE: serve answers local reverse proxies on .localhost names 14,757 +1
Fri 25 Sep, 21:42 09ad700 πŸ“¦ NEW: wavelength serve, a local web UI for reviewing songs 14,756 +668
Fri 25 Sep, 21:31 6a344bc πŸ“¦ NEW: render --from/--to renders only some bars of a song 14,088 +77
Fri 25 Sep, 21:21 f0f5434 πŸ“– DOC: AGENTS.md wording 14,011 0
Fri 25 Sep, 21:21 d8ede34 πŸ€– TEST: automation-tour checks follow and switch curves in the report 14,011 0
Fri 25 Sep, 21:21 e7324fb πŸ“¦ NEW: report automation activity and dead curves 14,011 +119
Fri 25 Sep, 21:20 eaf9466 πŸ“¦ NEW: warn when width narrows a signal away 13,892 +34
Fri 25 Sep, 21:20 8b25989 πŸ‘Œ IMPROVE: render --tracks keeps stem names 13,858 +7
Fri 25 Sep, 21:20 fe1a5bc πŸ“¦ NEW: wavelength timeline 13,851 +64
Fri 25 Sep, 21:20 375e503 πŸ“¦ NEW: params --set and --map show display text 13,787 +91
Fri 25 Sep, 21:20 873334c πŸ“¦ NEW: analyze --peaks 13,696 +136
Fri 25 Sep, 21:20 85566b5 πŸ“¦ NEW: bus stems and bus targets in stage-gains 13,560 +8
Fri 25 Sep, 21:20 c8d2834 πŸ“¦ NEW: send throws shorthand 13,552 +36
Fri 25 Sep, 21:20 ec93ddb πŸ“¦ NEW: chord timeline and curves that follow it 13,516 +135
Fri 25 Sep, 21:19 27fdaaf πŸ“¦ NEW: display text and note names in automation curves 13,381 +90
Fri 25 Sep, 21:19 b43a3ff πŸ“¦ NEW: switch automation points and curves 13,291 +25
Fri 25 Sep, 21:04 33b0963 πŸ‘Œ IMPROVE: warn on host mix vs a plugin's own Mix 13,266 +16
Fri 25 Sep, 21:03 e434437 πŸ“¦ NEW: "intended" silences an effect's distortion warnings 13,250 +5
Fri 25 Sep, 21:01 0eb9445 πŸ“¦ NEW: audio clips that play the song's own render 13,245 +123
Fri 25 Sep, 20:56 1a41c0f πŸ“¦ NEW: sampler length trim that works with reverse 13,122 +4
Fri 25 Sep, 20:55 e3e053a πŸ“¦ NEW: builtin:shepard endless riser 13,118 +89
Fri 25 Sep, 20:53 32f81d7 πŸ“¦ NEW: repeat effect for beat-repeat stutters 13,029 +49
Fri 25 Sep, 20:51 66fd20b πŸ“¦ NEW: delay loopFx, effects inside the feedback loop 12,980 +69
Fri 25 Sep, 20:47 18d6256 πŸ“¦ NEW: reverb freeze and automatable decay 12,911 +14
Fri 25 Sep, 20:46 af0cd49 πŸ“¦ NEW: level match on any effect 12,897 +51
Fri 25 Sep, 20:28 2491db6 πŸ› FIX: warn about late automation on buses and the master 12,846 +27
Fri 25 Sep, 20:25 c0cecb4 πŸ› FIX: drop check measures across an intended near-silence 12,819 +28
Fri 25 Sep, 20:22 b4e1438 πŸ› FIX: lint --harmony leaves unpitched samples out 12,791 +51
Fri 25 Sep, 20:14 ec2d2b4 πŸ› FIX: saturate match follows the level over time 12,740 +27
Fri 25 Sep, 20:05 9fae977 πŸ“¦ NEW: render --level-from keeps a part at its level in the full mix 12,713 +16
Fri 25 Sep, 19:13 d85238c πŸ“¦ NEW: lint --harmony finds wrong notes before a render 12,697 +497
Fri 25 Sep, 16:15 5cd2f4f πŸ“– DOC: move changes made since 0.2.0 out of its changelog section 12,200 0
Fri 25 Sep, 16:15 82c14fe πŸ“¦ NEW: audio clips, instrument automation and five more Bitwig devices in the DAWproject import 12,200 +221
Fri 25 Sep, 15:44 d1c1889 πŸ“¦ NEW: MIDI file import and export 11,979 +637
Fri 25 Sep, 15:24 de54a2e πŸ› FIX: read Bitwig 6 projects to the end 11,342 +22
Fri 25 Sep, 15:13 e6d4b76 πŸ“¦ NEW: read Bitwig projects for what DAWproject exports leave out 11,320 +696
Fri 25 Sep, 14:22 10c83a6 πŸ“¦ NEW: import DAWproject files 10,624 +539
Fri 25 Sep, 14:13 3800487 πŸ“– DOC: VST2 and Rosetta in README, AGENTS.md, effects and changelog 10,085 0
Fri 25 Sep, 14:13 d22c647 πŸ“¦ NEW: VST2 hosting, and Intel-only plugins under Rosetta 10,085 +715
Fri 25 Sep, 11:33 9813330 πŸ‘Œ IMPROVE: track warnings in the top-level warnings list 9,370 +9
Fri 25 Sep, 10:24 7bbe2f0 πŸ‘Œ IMPROVE: report duration, no empty stems folder, clearer docs 9,361 +1
Fri 25 Sep, 10:24 e97909e πŸ› FIX: lint compares each pair at its own notes; ranges, split 9,360 +58
Fri 25 Sep, 10:23 34efdd3 πŸ‘Œ IMPROVE: weak-drop check measures the boundary in bars 9,302 +11
Fri 25 Sep, 10:19 14ce363 πŸ“– DOC: BBC SO Discover percussion keyswitches by instrument 9,291 0
Fri 25 Sep, 10:06 6805806 πŸ› FIX: Linux release archives without macOS extended attributes 9,291 0
Fri 25 Sep, 10:06 b765393 πŸ› FIX: the skill installer downloads with wget when there is no curl 9,291 0
Fri 25 Sep, 09:47 239597c πŸ“¦ NEW: start 0.3.0-dev 9,291 0
Fri 25 Sep, 09:46 dd5e639 πŸš€ RELEASE: v0.2.0 9,291 0
Fri 25 Sep, 09:45 b43b2d1 πŸ“– DOC: changelog ready for 0.2.0 9,291 0
Fri 25 Sep, 09:45 af089a7 πŸ› FIX: Windows archive carries its runtime licences 9,291 0
Fri 25 Sep, 09:45 2468e83 πŸ“¦ NEW: the skill installs release builds on Linux and Windows 9,291 0
Fri 25 Sep, 09:45 300db6b πŸ€– TEST: arrangement-tour example checked by check.sh 9,291 0
Fri 25 Sep, 09:45 182d0b7 πŸ› FIX: clip distortion warning threshold and advice 9,291 +2
Fri 25 Sep, 09:45 382b2e1 πŸ› FIX: analyze and option parsing details 9,289 +5
Fri 25 Sep, 09:45 a4b3f3b πŸ› FIX: analyze reads chip oscillators at their real pitch 9,284 +32
Fri 25 Sep, 09:17 7c3d826 πŸ‘Œ IMPROVE: arrangement checks know intent, pre-master sections 9,252 +44
Fri 25 Sep, 07:40 9a5fb15 πŸ“¦ NEW: per-note dyn curves for velocityTo instruments 9,208 +29
Fri 25 Sep, 07:39 1a1c09e πŸ“¦ NEW: automation.rides, gain curves that add up 9,179 +25
Fri 25 Sep, 07:22 eb9c3a1 πŸ“¦ NEW: dropout and weak-drop checks, analyze --every 9,154 +113
Fri 25 Sep, 06:41 d35186a πŸ‘Œ IMPROVE: clip kneeDb, loudness gain before the peak stage 9,041 +15
Fri 25 Sep, 01:10 6dbe23a πŸ“– DOC: transients and sub-heavy sounds in the mixing guide 9,026 0
Fri 25 Sep, 01:10 2b6fa8b πŸ“¦ NEW: clip effect, a soft clipper for transients 9,026 +36
Fri 25 Sep, 01:01 95d5f7b πŸ› FIX: render --tracks writes no stems for helper tracks 8,990 +3
Fri 25 Sep, 00:59 bd21b45 πŸ› FIX: commands reject unknown options 8,987 +22
Fri 25 Sep, 00:58 49b53e6 πŸ› FIX: analyze reads the pitch of very short windows 8,965 0
Fri 25 Sep, 00:56 f9c1cfb πŸ“¦ NEW: wavelength lint checks voice leading 8,965 +113
Fri 25 Sep, 00:50 d813aa8 πŸ“¦ NEW: analyze --grid; onset times land on the attack 8,852 +26
Fri 25 Sep, 00:40 4e969f7 πŸ› FIX: master lines up a mix's lead-in; limiter reports per section 8,826 +30
Fri 25 Sep, 00:37 9b202a2 πŸ“¦ NEW: name the tracks that drive the master limiter 8,796 +19
Fri 25 Sep, 00:33 7cedf2c πŸ‘Œ IMPROVE: warn when an automation curve starts late 8,777 +34
Fri 25 Sep, 00:30 3368c41 πŸ“¦ NEW: level-matched saturate 8,743 +9
Fri 25 Sep, 00:29 e06f532 πŸ› FIX: loudness of windows shorter than one gating block 8,734 +5
Fri 25 Sep, 00:28 52d6240 πŸ‘Œ IMPROVE: loudness target gain goes in front of the limiter 8,729 +15
Fri 25 Sep, 00:23 c1f8ac7 πŸ“¦ NEW: render --tracks renders part of a song 8,714 +43
Fri 25 Sep, 00:20 6cc1566 πŸ‘Œ IMPROVE: limiter warning says how long it limited 8,671 +6
Fri 25 Sep, 00:19 3f96872 πŸ› FIX: audition stops when a plugin opens a licence window 8,665 +8
Fri 25 Sep, 00:18 9a68d13 πŸ› FIX: kill render workers that open a licence window 8,657 +26
Fri 25 Sep, 00:16 c51a2bb πŸ‘Œ IMPROVE: fewer render workers when the machine is busy 8,631 +15
Fri 25 Sep, 00:15 9d862a8 πŸ“¦ NEW: per-note vibrato on sampler tracks 8,616 +32
Fri 25 Sep, 00:14 eac8e39 πŸ‘Œ IMPROVE: analyze in song time, warn on loud-target gain into master 8,584 +27
Fri 25 Sep, 00:13 d81c066 πŸ› FIX: round-robin kits play the General MIDI alternate keys 8,557 +15
Fri 25 Sep, 00:11 a17e22a πŸ› FIX: master --chain no longer passes a mix through silently 8,542 +6
Fri 25 Sep, 00:11 5c7d3fd πŸ€– TEST: check.sh takes BUILD and JOBS 8,536 0
Fri 25 Sep, 00:10 b9eb126 πŸ“¦ NEW: loudness range and labelled section loudness in reports 8,536 +45
Thu 24 Sep, 23:58 b4f3cf6 πŸ› FIX: retry crashed tracks and fail renders that lose one 8,491 +28
Thu 24 Sep, 23:58 078552d πŸ“¦ NEW: block plugins by name 8,463 +47
Thu 24 Sep, 23:58 2f68375 πŸ› FIX: catch garbage samples after effects, not just plugins 8,416 +10
Thu 24 Sep, 22:52 4d49df0 πŸ› FIX: mute garbage samples from plugins 8,406 +28
Thu 24 Sep, 22:38 57a6813 πŸ“– DOC: release checklist with the local binary builds 8,378 0
Thu 24 Sep, 22:28 456e329 πŸ› FIX: put wine64 on PATH in the Wine smoke-test image 8,378 0
Thu 24 Sep, 22:28 0775b30 πŸ› FIX: release build paths for Windows, quiet GCC ABI notes 8,378 0
Thu 24 Sep, 22:28 6d4062b πŸ“¦ NEW: build release binaries for every platform locally 8,378 0
Thu 24 Sep, 22:28 30e7f29 πŸ“¦ NEW: Linux and Windows support 8,378 +300
Thu 24 Sep, 21:52 da93433 πŸ“¦ NEW: the /wavelength agent skill 8,078 0
Thu 24 Sep, 21:44 a80b50c πŸ“¦ NEW: start 0.2.0-dev 8,078 0
Thu 24 Sep, 21:44 eaf2da5 πŸš€ RELEASE: v0.1.0 8,078 0
Thu 24 Sep, 21:42 965c9e0 πŸ› FIX: options without a value are an error 8,078 +2
Thu 24 Sep, 21:38 3511578 πŸ“¦ NEW: personal job defaults (defaults.json) 8,076 +20
Thu 24 Sep, 20:56 ea6ae28 πŸ“– DOC: mastering, orchestral writing and listening lessons 8,056 +8
Thu 24 Sep, 20:52 5380dac πŸ“¦ NEW: leadIn, silence before the song 8,048 +9
Thu 24 Sep, 20:41 d95d634 πŸ‘Œ IMPROVE: stage-gains reads any render folder 8,039 0
Thu 24 Sep, 20:29 392e1bf πŸ“¦ NEW: wavelength master, and a mastering example 8,039 +62
Thu 24 Sep, 20:28 6c4a59c πŸ“¦ NEW: loudness target on the master 7,977 +37
Thu 24 Sep, 20:27 b4e2c33 πŸ“¦ NEW: multiband effect 7,940 +87
Thu 24 Sep, 20:15 a4ae8b0 πŸ‘Œ IMPROVE: audition tags, retag, retries; Serum 1 patches skipped 7,853 +32
Thu 24 Sep, 19:14 6908aca πŸ“¦ NEW: sidechain audio into effects 7,821 +120
Thu 24 Sep, 19:11 b320ae2 πŸ“¦ NEW: builtin:audio, clips on the timeline with time stretch 7,701 +158
Thu 24 Sep, 19:08 33de96f πŸ“¦ NEW: plugin tracks render in parallel worker processes 7,543 +154
Thu 24 Sep, 18:44 36e3d28 πŸ“¦ NEW: wavelength audition, a sound index for presets 7,389 +308
Thu 24 Sep, 18:33 616d683 πŸ“– DOC: point at extract-embedded-presets, drop a stale converter note 7,081 0
Thu 24 Sep, 18:30 a76b3c6 πŸ“¦ NEW: wavelength analyze 7,081 +342
Thu 24 Sep, 18:28 d7434b3 πŸ› FIX: compensate plugin latency 6,739 +24
Thu 24 Sep, 18:17 296f480 πŸ“– DOC: bring the README and CLI help up to date 6,715 +3
Thu 24 Sep, 18:16 a8cc503 πŸ› FIX: no unchanged-parameter warning for BBC SO instruments 6,712 +1
Thu 24 Sep, 18:13 f887215 πŸ› FIX: JSON output survives preset names that are not UTF-8 6,711 0
Thu 24 Sep, 18:11 69196da πŸ“¦ NEW: Analog Lab V, AAS Player, MPowerSynth, Soundbox, DecentSampler presets 6,711 +298
Thu 24 Sep, 18:04 b9d336c πŸ“¦ NEW: extract presets compiled into JUCE plugin binaries 6,413 +8
Thu 24 Sep, 18:00 67306ba πŸ“¦ NEW: Microtonic kits and drums, parameters as display text 6,405 +297
Thu 24 Sep, 17:55 4a134c3 πŸ“¦ NEW: Guitar Rig 6 racks load by name, with licence checks 6,108 +96
Thu 24 Sep, 17:53 2ddd063 πŸ“¦ NEW: Cherry Audio presets and SynthMaster NKS by name 6,012 +122
Thu 24 Sep, 17:41 7a37fe2 πŸ“¦ NEW: Synplant patches load by name 5,890 +85
Thu 24 Sep, 17:38 5eb59a5 πŸ“¦ NEW: NKS preset index and DX7 cartridges for Dexed 5,805 +285
Thu 24 Sep, 17:00 8a161e3 πŸ“¦ NEW: Serum 2, Odin2 and u-he presets load natively 5,520 +376
Thu 24 Sep, 16:38 423bb66 πŸ“– DOC: note behaviour changes in the changelog 5,144 0
Thu 24 Sep, 16:35 c5e7ccf πŸ“¦ NEW: modulation, routing, MIDI controllers and safer renders 5,144 +1,061
Thu 24 Sep, 15:45 ac6d60c πŸ“¦ NEW: builtin:sampler for Bitwig multisamples and drum kits 4,083 +692
Thu 24 Sep, 15:28 25a1ca4 πŸ“– DOC: drive plugins with compiled-in presets through JUCE state 3,391 0
Thu 24 Sep, 15:13 492751b πŸ“¦ NEW: Load CLAP factory presets by name 3,391 +256
Thu 24 Sep, 14:12 0a5911f πŸ“¦ NEW: VST3 hosting 3,135 +705
Thu 24 Sep, 13:00 a5d2ae4 πŸ“¦ NEW: Wavelength headless music engine for AI agents 2,430 +2,430

What it can do

Read from the source rather than kept as a list: commands from the command line's dispatcher, effects from the effect factory, formats from the code that reads or writes them. The line in each box is its count over the same days as the chart above.

  • Commands 24 5 at the first commit
  • Built-in effects 28 11 at the first commit
  • Built-in instruments 6 2 at the first commit
  • Plugin formats 4 1 at the first commit
  • File formats 16 1 at the first commit
  • Preset file types 38 1 at the first commit
  • Platforms 3 1 at the first commit
  • Libraries it builds on 10 2 at the first commit

Release by release

Where each ability first shipped. Hover or tap one for the commit that brought it.

Ability In v0.1.024 Sep New in v0.2.025 Sep New in v0.3.026 Sep New in v0.4.027 Sep New in v0.5.06 Oct New in v0.6.012 Oct
Commands24
  • plugins
  • version
  • state
  • params
  • render
  • presets
  • samples
  • analyze
  • audition
  • master
  • lint
  • import
  • export
  • timeline
  • serve
  • picture
  • docs
  • mcp
  • kit
  • upgrade
  • compat
  • card
  • stage
  • loops
·
Built-in effects28
  • compressor
  • delay
  • width
  • eq
  • gain
  • chorus
  • filter
  • limiter
  • saturate
  • reverb
  • duck
  • tapestop
  • gate
  • pan
  • bitcrush
  • autowah
  • vibrato
  • rotary
  • tremolo
  • multiband
  • clip
  • repeat
·
  • convolve
  • phaser
  • patch
  • pitch
  • ringmod
  • tune
·
Built-in instruments6
  • builtin:fx
  • builtin:drums
  • builtin:sampler
  • builtin:audio
·
  • builtin:shepard
  • builtin:synth
· ·
Plugin formats4
  • CLAP
  • VST3
·
  • VST2
·
  • Audio Units
·
Audio files5
  • WAV
·
  • AIFF
  • FLAC
  • MP3
  • Ogg Vorbis
· · ·
Music files6 · ·
  • DAWproject
  • MIDI files
  • MusicXML
  • .wavelength songs
  • Apple Loops
  • GarageBand projects
·
Sample libraries5
  • Bitwig multisamples
·
  • SFZ
  • SoundFont 2 and 3
·
  • GarageBand and Logic patches
  • DecentSampler
·
Preset file types38
  • .vital
  • .fxp
  • .odin
  • .nksf
  • .h2p
  • .serumpreset
  • .fxb
  • .vstpreset
  • .syx
  • .synplant
  • .voltagepreset
  • .dco106preset
  • .sempreset
  • .mg1preset
  • .ngrr
  • .mtdrum
  • .mtpreset
  • .wlstate
  • .dspreset
  • .aasbank
  • .sbset
· · ·
  • .nksfx
  • .nksr
  • .hxp
  • .echobode
  • .p8bank
  • .presets
  • .serumfx
  • .serumfxrack
  • .ks
  • .tide
  • .srgfx
  • .preset
  • .config
  • .ens
  • .rkplr
  • .vvp
  • .ff2preset
·
Platforms3
  • macOS
  • Windows
  • Linux
· · · ·
Libraries it builds on10
  • nlohmann/json
  • CLAP
  • VST3 SDK
  • zstd
  • Signalsmith Stretch
  • Signalsmith Linear
  • zlib
  • cpp-httplib
  • dr_libs
  • stb
· · ·

Commands

CommandWhat it doesFirst in
wavelength plugins v0.1.0
wavelength version v0.1.0
wavelength state v0.1.0
wavelength params v0.1.0
wavelength render v0.1.0
wavelength presets v0.1.0
wavelength samples v0.1.0
wavelength analyze v0.1.0
wavelength audition v0.1.0
wavelength master v0.1.0
wavelength lint v0.2.0
wavelength import v0.3.0
wavelength export v0.3.0
wavelength timeline v0.3.0
wavelength serve v0.3.0
wavelength picture v0.4.0
wavelength docs v0.4.0
wavelength mcp v0.4.0
wavelength kit v0.4.0
wavelength upgrade v0.4.0
wavelength compat v0.5.0
wavelength card v0.5.0
wavelength stage v0.5.0
wavelength loops v0.5.0

The engine, part by part

The C++ source grouped by what it does, largest first, with each part's growth over the same days.

  1. Effects and instruments

    Built-in effects, the drum machine, FX, sampler, SFZ, SoundFont and DecentSampler players, audio clips, the synth with GarageBand's synths re-created on it, and MIDI effects.

    12,105 27%
  2. Files and formats

    Audio files in and out, MIDI, MusicXML, DAWproject, Bitwig and GarageBand projects, Apple Loops and Logic patches, zip, XML and binary plists, all read with bounds checks.

    8,701 19%
  3. Plugin hosting

    Loads CLAP, VST3 and VST2 plugins and Audio Units, scans and caches them, drives them offline and tests them all (compat); installs free ones (kit).

    4,372 10%
  4. Command line and MCP

    The wavelength command: arguments, every subcommand, help, terminal output and the JSON report; the MCP server, the docs built into the binary and self-upgrade.

    3,959 9%
  5. Render and mix

    The job (with stand-in sounds for missing plugins), tempo and meter maps and automation, then the mix graph: tracks, sends, buses, master; staging faders by role and the track cache.

    3,645 8%
  6. Songs

    The song format: the manifest, revisions with undo and a musical diff, comments pinned to revisions, .wavelength packages and upgrades.

    3,395 7%
  7. Presets and states

    Finds presets by name in 20-odd formats and turns them into the state a plugin loads; audition indexes how they sound.

    3,185 7%
  8. Review server

    The local review page's server (wavelength serve): songs, previews and review comments, the Sounds page with plugins' own windows, and the riff library.

    3,062 7%
  9. Measurement

    Loudness (BS.1770), analysis of pitch, brightness and onsets, the harmony check, and the song picture for agents that can see but not hear.

    2,020 4%
  10. Platform

    What differs on macOS, Linux and Windows: folders, processes, libraries.

    987 2%

Every source file

Each rectangle is a file (its .cpp and .hpp together), sized by its lines of code and shaded by how many commits changed it: the stronger the blue, the more it has been worked on.

Every source file as a table (159)
FilePartCodeCommentsCommitsWhat it is
serve.cpp serve.hpp Review server 2,417 133 26 `wavelength serve`: a local web UI for reviewing songs.
alchemy.cpp alchemy.hpp Effects and instruments 2,320 189 6 GarageBand's Alchemy patches.
main.cpp Command line and MCP 2,134 81 117 Wavelength, a headless music engine for AI agents.
sampler.cpp sampler.hpp Effects and instruments 2,079 148 33 builtin:sampler: plays sample libraries without a plugin.
logic_patches.cpp logic_patches.hpp Files and formats 1,892 205 30 GarageBand and Logic patches: a .patch folder holds one channel strip (.cst) per channel and data.plist.
effects.cpp effects.hpp Effects and instruments 1,878 127 42 Effects: built-in DSP (deterministic, always available) and CLAP effect plugins.
garageband.cpp garageband.hpp Files and formats 1,632 173 30 GarageBand projects (.band, GarageBand 10 for Mac).
preset_formats.cpp preset_formats.hpp Presets and states 1,444 98 21 Converters from plugins' own preset files to the state their plugins load.
synth.cpp synth.hpp Effects and instruments 1,361 63 14 builtin:synth: a virtual-analog polysynth inside Wavelength, so melodic parts render on a machine without any plugins (a fresh laptop, a CI runner, an agent's cloud…
render.cpp render.hpp Render and mix 1,291 83 54
dawproject.cpp dawproject.hpp Files and formats 1,064 68 11 DAWproject import (the open project format Bitwig, Studio One and others export): the arrangement, tracks, notes, plugin states, mixer (volume, pan, mute, sends…
platform.cpp platform.hpp Platform 987 70 13 Everything that differs between macOS, Linux and Windows: folders, child processes, loading plugin libraries, the main-thread event loop and leaving the process.
job.cpp job.hpp Render and mix 936 38 52 A render job: the JSON document agents write.
mcp.cpp mcp.hpp Command line and MCP 848 23 13 `wavelength mcp`: a Model Context Protocol server on stdin/stdout (JSON-RPC, one message per line), so Claude Desktop, Claude Code, Cursor and other MCP clients can…
decent_sampler.cpp decent_sampler.hpp Effects and instruments 822 61 1 DecentSampler instruments.
apple_keys.cpp apple_keys.hpp Effects and instruments 782 168 4 GarageBand's Vintage Electric Piano ("E-Piano" in channel strips), Vintage Clav ("Clav") and Sculpture settings, played on builtin:synth (garageBandSynthPatch() in…
song_cli.cpp song_cli.hpp Songs 763 13 13 The song commands (docs/song-format.md): save, history, undo, redo, restore, diff, comments, riffs, pack, unpack, validate, migrate and fallbacks.
au_plugin.cpp au_plugin.hpp Plugin hosting 753 32 5 Audio Unit (AUv2, macOS) implementation of the Plugin interface, on AudioToolbox's C API.
vst3_plugin.cpp vst3_plugin.hpp Plugin hosting 729 30 15 VST3 implementation of the Plugin interface, built on the Steinberg VST3 SDK hosting helpers (module loading, PlugProvider, HostProcessData, EventList, ParameterChanges).
midi_file.cpp midi_file.hpp Files and formats 661 40 8 Standard MIDI Files (.mid): import into a job, export a job's parts.
preset_files.cpp preset_files.hpp Presets and states 627 45 27 Preset files on disk for a plugin, found in the standard preset folders (/Library/Audio/Presets/<vendor>/<plugin>, ~/Library/Audio/Presets/...) and a few known vendor…
musicxml.cpp musicxml.hpp Files and formats 573 24 4 MusicXML scores (.musicxml, .xml, compressed .mxl; score-partwise) imported into a job.
encode.cpp encode.hpp Files and formats 558 22 3 Delivery files next to mix.wav: MP3 (LAME, loaded at run time, or ffmpeg), FLAC (built in) and 16/24-bit WAV.
package.cpp package.hpp Songs 548 31 10 .wavelength packages (docs/song-format.md, section 5): a song folder packed into a ZIP whose first entry is `mimetype`, and back.
compat.cpp compat.hpp Plugin hosting 536 27 6 `wavelength compat`: a compatibility sweep over every installed plugin.
apple_synths.cpp apple_synths.hpp Effects and instruments 531 90 5 GarageBand's Vintage B3, ES2, ES1 and EFM1 settings, played on builtin:synth (garageBandSynthPatch() in retro_synth.hpp finds the patch and its instrument).
card.cpp card.hpp Measurement 525 32 2 Patch cards: how a preset sounds, for agents that can see images but can't hear.
bitwig.cpp bitwig.hpp Files and formats 517 38 3 Bitwig Studio project files (.bwproject): the devices a DAWproject export leaves out.
help.cpp help.hpp Command line and MCP 515 14 25 `wavelength help`: a short list of commands grouped by task, `help <command>` (or `<command> --help`) for one command's usage and details, `help all` for everything.
harmony.cpp harmony.hpp Measurement 489 45 5 Harmony check for `wavelength lint --harmony`: the key in force at every bar (declared in the job's "keys", given with --key, or detected per section), the chord of…
vst2_plugin.cpp vst2_plugin.hpp Plugin hosting 460 14 5 VST 2 implementation of the Plugin interface: loads a .vst bundle (macOS), .dll (Windows) or .so (Linux) through its VSTPluginMain entry, on Wavelength's own declaration…
song.cpp song.hpp Songs 458 33 10 A song folder (docs/song-format.md): the manifest wavelength.json, the job and the files that belong to it.
riffs.cpp riffs.hpp Review server 435 35 2 Riffs: short parts a person plays on serve's pages for an agent to build songs from.
history.cpp history.hpp Songs 432 32 4 A song's revisions (docs/song-format.md, section 6): history/log.jsonl, one revision per line, and history/objects/<2>/<sha256>, each tracked file's content compressed…
analyze.cpp analyze.hpp Measurement 424 44 11 Measurements an agent needs in place of listening: pitch, brightness, spectral balance, stereo image, onsets and the amplitude envelope of a stem, a mix or a window of…
kit.cpp kit.hpp Plugin hosting 422 21 2 `wavelength kit`: a starter set of free instruments for machines without plugins (a cloud container, CI, a fresh laptop): GPL synthesizers downloaded from their own…
midifx.cpp midifx.hpp Effects and instruments 416 28 2 A track's "midiFx": its notes through a chain of MIDI effects, in order, before anything else reads them (any instrument).
dawproject_export.cpp Files and formats 412 17 4 DAWproject export: a job as a project a DAW opens with its plugins loaded (see dawproject.hpp).
instance.cpp instance.hpp Plugin hosting 399 27 9 One plugin instance plus the host side it talks to.
sf2.cpp sf2.hpp Effects and instruments 389 20 2 SoundFont 2 (.sf2) and its Ogg Vorbis compressed form (.sf3, MuseScore's): presets by bank and program, resolved into zones (instrument generators with the preset's…
clap_plugin.cpp clap_plugin.hpp Plugin hosting 382 6 13 CLAP implementation of the Plugin interface (wraps Instance, the CLAP host side).
retro_synth.cpp retro_synth.hpp Effects and instruments 375 59 13 GarageBand's and Logic's synth patches, played on builtin:synth: `"plugin": "builtin:synth", "preset": "Sweet Cream Synth Lead"`. garageBandSynthPatch() finds the patch…
state_file.cpp state_file.hpp Presets and states 362 35 22 Plugin state files.
migrate.cpp migrate.hpp Songs 361 19 2 `wavelength migrate <song>`: brings a song folder made before the song format (docs/song-format.md) up to it.
catalog.cpp catalog.hpp Plugin hosting 360 38 11 Finds CLAP and VST3 plugins on disk.
songdiff.cpp songdiff.hpp Songs 347 12 7 Two versions of a job compared as music (`wavelength diff`, docs/song-format.md): which tracks, bars, sounds and settings changed.
audition.cpp audition.hpp Presets and states 317 21 11 The audition index: every preset of a plugin rendered once (C4 for one second) and measured, so an agent can choose sounds by what they sound like and knows each…
arp.cpp arp.hpp Effects and instruments 315 26 2 A track's "arp": its held notes played as an arpeggio, before anything else reads them (any instrument).
purge.cpp purge.hpp Songs 306 25 4 wavelength purge: gives back the disk renders take while every song stays playable.
engine.cpp engine.hpp Render and mix 305 37 23 Running plugins (CLAP or VST3) over a whole timeline: instruments (notes in, audio out) and effects (audio in, audio out), with parameter automation.
picture.cpp picture.hpp Measurement 305 18 5 A picture of a song, for agents that can see images but can't hear: the sections and bars, the mix's loudness over time with each section's level, its spectrum, and a…
automation.hpp Render and mix 294 33 8 Breakpoint automation.
fallback.cpp fallback.hpp Render and mix 281 22 6 Stand-in sounds for jobs that travel: a track's "fallback" lists other sounds (another plugin, builtin:synth, a sample library) that play its part when its own plugin or…
builtins.cpp builtins.hpp Effects and instruments 267 19 7 Built-in instruments, used as `"plugin": "builtin:drums"` or `"plugin": "builtin:fx"`.
microtonic.cpp microtonic.hpp Presets and states 260 19 3 Sonic Charge Microtonic kits (.mtpreset) and drums (.mtdrum), via the plugin's own text parser.
clips.cpp clips.hpp Effects and instruments 256 18 5 builtin:audio: audio files placed on the timeline in beats, with pitch-preserving time stretch (Signalsmith Stretch), transposition, reverse, trimming and fades.
audio_file.cpp audio_file.hpp Files and formats 256 15 4 Audio files in: WAV, AIFF/AIFC, CAF, FLAC, MP3, Ogg Vorbis and M4A, told apart by their contents (not the extension).
stage.cpp stage.hpp Render and mix 231 12 1 Gain staging: each track's fader from its stem loudness.
apple_loops.cpp apple_loops.hpp Files and formats 219 21 1 Apple Loops: the loops GarageBand and Logic install in /Library/Audio/Apple Loops (and the user's own in ~/Library/Audio/Apple Loops).
sfz.cpp sfz.hpp Effects and instruments 218 7 2 SFZ instruments (the open text format for multisampled instruments): the file's headers flattened into one opcode map per <region> (control -> global -> master -> group…
self_upgrade.cpp self_upgrade.hpp Command line and MCP 188 11 1 `wavelength upgrade`: replaces this binary with the latest GitHub release for this platform, checked against the release's SHA256SUMS.txt and run once before it takes…
track_cache.cpp track_cache.hpp Render and mix 188 19 3 render --cache: each track's audio after its effects and before its fader, kept between renders and reused when nothing that shapes it has changed.
parse_check.cpp parse_check.hpp Files and formats 187 5 1 `wavelength __parse <format> <file>...` (internal): one file reader over each file, a JSON line per file.
term.cpp term.hpp Command line and MCP 183 15 2 Terminal styling for people, invisible to agents: colours, symbols and a progress line appear only when the stream is a terminal, NO_COLOR is unset, TERM isn't "dumb"…
zip.cpp zip.hpp Files and formats 175 8 6 Minimal zip reader (stored or deflated entries, no zip64): Bitwig .multisample instruments and DAWproject files are zips.
presets.cpp presets.hpp Presets and states 175 7 2 CLAP preset discovery: lists a plugin's presets (its built-in banks and preset files) through the plugin's preset-discovery factory, and resolves a name to a loadable…
bplist.cpp bplist.hpp Files and formats 174 10 4 Binary property lists ("bplist00"), read on any platform: Apple keeps small settings in them inside channel strips and presets (the Arpeggiator's rhythm grid).
xml.cpp xml.hpp Files and formats 171 5 3 A small XML reader for project and score files (DAWproject, MusicXML): elements, attributes and text content, entities decoded; comments, processing instructions and…
plugin.cpp plugin.hpp Plugin hosting 159 38 14 A hosted plugin, independent of its format (CLAP or VST3).
loudness.cpp loudness.hpp Measurement 155 14 6 Integrated loudness per ITU-R BS.1770-4 / EBU R128 (K-weighting, 400 ms blocks with 75% overlap, absolute gate at -70 LUFS, relative gate 10 LU below the ungated mean).
wav.cpp wav.hpp Files and formats 130 6 6
canvas.hpp Measurement 118 8 1 Drawing for the PNG pictures (song pictures, patch cards): an RGB canvas with coverage-shaded rectangles, the web UI's JetBrains Mono (ASCII subset, built into the…
editor_window_mac.mm Review server 102 3 1 editor_window.hpp on macOS: an NSWindow per plugin editor.
review.cpp review.hpp Songs 98 9 2 Comments on a song (review.json, docs/song-format.md section 7): each keeps an anchor to what was heard (the revision and render that were playing, the bars, time and…
dsp.hpp Effects and instruments 96 6 3 Small DSP building blocks shared by the built-in effects and instruments.
meter.hpp Render and mix 96 7 1 The song's meter: "timeSignature" [3, 4] from bar 1, and "meterChanges" [{"bar": 9, "sig": [4, 4]}] from the bars they name.
docs.cpp docs.hpp Command line and MCP 91 5 1 The agent docs built into the binary (AGENTS.md, docs/job-format.md, docs/effects.md), so an agent with only the executable, or connected over MCP, reads the guide that…
vst2_abi.hpp Plugin hosting 90 10 1 The VST 2 plugin binary interface, declared from its publicly documented layout so Wavelength can host VST 2 plugins without Steinberg's (withdrawn) VST 2 SDK.
bundle.cpp bundle.hpp Plugin hosting 82 3 5 A loaded .clap bundle: the shared library, its clap_entry, and the plugin factory.
sha256.hpp Songs 82 3 1 SHA-256 (FIPS 180-4): names song history objects and checks the files a manifest lists.
sounds.cpp sounds.hpp Review server 81 12 1 Sounds: `sounds.json` beside a job (docs/job-format.md, "Sounds") gives tracks their instrument (plugin, preset, state, params) on top of whatever wrote the job, the way…
audio_codecs.cpp Files and formats 64 1 1 dr_flac, dr_mp3 and stb_vorbis compiled into Wavelength (their warnings are silenced for this file).
editor_window.cpp editor_window.hpp Review server 27 10 1 A desktop window that holds a plugin's own editor (serve's "Plugin window"): the plugin attaches its view to the window's content view. macOS only for now (an NSWindow…
tempo.hpp Render and mix 23 4 5 Beats <-> seconds through a tempo map.
bytes.hpp Files and formats 16 5 1 Bounds checks for readers of files from anywhere (songs, packages, projects, presets): sizes and offsets read from a file can be anything, so `at + len <= size` must…
image_codecs.cpp Measurement 4 2 1 stb_image_write (PNG out) and stb_truetype (text in pictures) compiled into Wavelength (their warnings are silenced for this file).

Around the engine

The rest of the repository, and the commits that built it.

What the repository holds

Lines in each kind of file, blank lines left out.

  • Engine sourceC++ in src/ 45,431
  • ExamplesExample jobs, scores and instruments in examples/ 11,538
  • Build and scriptsCMake, release and check scripts 6,872
  • Review UIHTML, CSS and JavaScript in ui/ 4,951
  • DocsThe readme, AGENTS.md, changelog, roadmap, docs/ and the agent skill 1,647

What the commits were

By their Emoji-Log prefix.

  • New 180
  • Fixes 86
  • Improvements 48
  • Docs 31
  • Tests 10
  • Releases 6

When they were made

Commits by hour of the day, in the committer's time (UTCβˆ’4).

Measured from commit 811d6fb of the engine's repository, 12 October 2026 at 23:13. Only committed work counts.