Tulip March 2026 Release
March 2026 release
What's Changed
- deploying Tulip Web by @bwhitman in #666
- Update tulipcc for AMY typed breakpoint arrays (issue #525) by @bwhitman in #664
- AMYboard: shared environments + web environment workflow by @bwhitman in #667
- Merge pr-667 follow-up amyboardweb editor/index updates by @bwhitman in #669
- Fix Linux sed usage in web build scripts by @bwhitman in #670
- Make external MIDI realtime sync opt-in via tulip.external_midi_sync() by @bwhitman in #671
- Add Tulip release instructions to AGENTS.md by @bwhitman in #672
- Docs: add MIDI F8 external sync API notes by @bwhitman in #673
- load env on amyboard boot, ignore midi.py setup on amyboard by @bwhitman in #674
- Amyboardweb editor layout updates + web hook guards by @bwhitman in #675
- Add stderr logging hook and amyboard environment transfer fixes by @bwhitman in #676
- Add safe git merge procedure to AGENTS by @bwhitman in #677
- Load amyboard synth patch by @dpwe in #678
- Update AMY submodule and add ESP-IDF build instructions by @bwhitman in #680
- amy_parameters.js: Fix for save/restore osc amplitudes. by @dpwe in #682
- WIP: Better architecture for amyboardworld by @bwhitman in #681
- Pin merged AMY #560 and align Tulip demo PCM presets by @bwhitman in #684
- web wavetable support by @bwhitman in #683
- amyboardweb: wave preset UI + reliable wave state sync by @bwhitman in #685
- amyboard: define AMY_WAVETABLE at compile time by @bwhitman in #686
- Restrict amyboard editor loads to text extensions by @bwhitman in #687
- amyboardweb: reduce sysex delay and fix tar_extract truncation by @bwhitman in #688
- amyboardweb: use web.patch + .patch boot execution by @bwhitman in #689
- Fix web.patch rewrite during environment patch load by @bwhitman in #690
- Issue #691: move Tulip World to shared Railway DB architecture by @bwhitman in #693
- Deploy Tulip Web artifacts and release-note update by @bwhitman in #694
- Re-think patch syncing by @bwhitman in #695
- Fix amy _Generic build error on ESP-IDF by @bwhitman in #696
- Fix pointer cast warnings on 32-bit ESP32 by @bwhitman in #697
- Fix knob sync: use AMY reset defaults for all knobs by @bwhitman in #698
- Use ic255 to clear MIDI CC mappings instead of iv0 by @bwhitman in #699
- Add JS named-parameter API for AMY by @bwhitman in #700
- Pin amy: fix ic255 short-form parsing by @bwhitman in #701
- Add patch uploads and sub-tabs to AMYboard World by @bwhitman in #702
- Fix patch upload dropdown not populating on Patches tab by @bwhitman in #703
- Fix CORS errors for cross-origin fetches in mini-coi.js by @bwhitman in #704
- Fix preview patch wire code and add settle delay by @bwhitman in #705
- Refresh patch upload dropdown when World tab is reopened by @bwhitman in #706
- Replace raw AMY wire codes with amy_send() calls by @bwhitman in #707
- Polish AMYboard World sub-tabs UI by @bwhitman in #708
- Use AMY's JS API gen script, remove tulipcc duplicate by @bwhitman in #709
- static/spss.js: Fix LFO params from Juno patches; fix osc reset before patch load. by @dpwe in #710
- Simplify command to reset oscs before loading patch. by @dpwe in #711
Full Changelog: v-feb-2026...v-mar-2026