1--- 2title: 'Release Notes v1.0.0' 3description: '' 4date: '2024-01-22' 5tags: ['meta'] 6author: froos 7--- 8 9These are the release notes for Strudel 1.0.0 aka "Geburtstagskuchen" 10 11This release marks the 2 year anniversary of the project, the first commit was on the 22nd January 2022 by Alex McLean. 12 13If you generally need a heads up on what happened to Strudel in the last year, read the [2023 recap](/blog/#year-2) 14 15import { Youtube } from '@src/components/Youtube'; 16 17<Youtube client:only="react" id="ByPFmSBqQk0" /> 18 19A lot has happened since then, and also since the last release 16 weeks ago. 20 21Let me write up some of the highlights: 22 23## Breaking Change 24 25This version changes the default cps value from 1 to 0.5 to give patterns a little bit more time by default. 26If you find your existing patterns to be suddenly half the speed, just add a `setcps(1)` to the top and it should sound as it did before! 27 28- make 0.5hz cps the default by @yaxu in https://codeberg.org/uzu/strudel/pulls/931 29 30## New Domain 31 32Strudel is now available under [strudel.cc](https://strudel.cc/). The old domain still works but you might not get the most recent version. 33 34- replace strudel.tidalcycles.org with strudel.cc by @felixroos in https://codeberg.org/uzu/strudel/pulls/768 35 36## Strudel on Mastodon 37 38Strudel now has a mastodon presence: https://social.toplap.org/@strudel 39 40## New Audio Engine Features 41 42superdough, the audio engine of strudel has gotten some new features: 43 44- Create phaser effect by @daslyfe in https://codeberg.org/uzu/strudel/pulls/798 45- Multichannel audio by @daslyfe in https://codeberg.org/uzu/strudel/pulls/820 46- Audio device selection by @daslyfe in https://codeberg.org/uzu/strudel/pulls/854 47- Better convolution reverb by generating impulse responses by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/718 48- Add 'white', 'pink' and 'brown' oscillators + refactor synth by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/713 49- New noise type: "crackle" by @Bubobubobubobubo in https://codeberg.org/uzu/strudel/pulls/806 50- Add support for using samples as impulse response buffers for the reverb by @vasilymilovidov in https://codeberg.org/uzu/strudel/pulls/717 51- Compressor by @felixroos in https://codeberg.org/uzu/strudel/pulls/729 52- Adding vibrato to Superdough sampler by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/706 53- Further Envelope improvements by @daslyfe in https://codeberg.org/uzu/strudel/pulls/868 54- Add more vowel qualities for the vowels function by @fnordomat in https://codeberg.org/uzu/strudel/pulls/907 55- pitch envelope by @felixroos in https://codeberg.org/uzu/strudel/pulls/913 56 57## Slider Controls 58 59The new `slider` function inlines a draggable slider element into the code, bridging the gap between code and GUI. 60 61- widgets by @felixroos in https://codeberg.org/uzu/strudel/pulls/714 62- Slider afterthoughts by @felixroos in https://codeberg.org/uzu/strudel/pulls/723 63- add xfade by @felixroos in https://codeberg.org/uzu/strudel/pulls/780 64 65## Improved MIDI integration 66 67Pattern params [can now be controlled with cc messages](https://www.youtube.com/watch?v=e2-Sv_jjDQk) + you can now send a MIDI clock to sync your DAW with strudel. 68 69- Midi in by @felixroos in https://codeberg.org/uzu/strudel/pulls/699 70- add midi clock support by @felixroos in https://codeberg.org/uzu/strudel/pulls/710 71 72## hydra 73 74[hydra](https://hydra.ojack.xyz), the live coding video synth [can now be used directly inside the strudel REPL](https://strudel.cc/learn/hydra/). 75 76- Hydra integration by @felixroos in https://codeberg.org/uzu/strudel/pulls/759 77- add options param to initHydra by @kasparsj in https://codeberg.org/uzu/strudel/pulls/808 78- Hydra fixes and improvements by @atfornes in https://codeberg.org/uzu/strudel/pulls/818 79 80## Vanilla REPL 81 82The codemirror editor and the repl abstraction have been refactored from react to vanilla JS! 83This should give some performance improvements and less dependency / maintenance burden: 84 85- Vanilla repl 2 by @felixroos in https://codeberg.org/uzu/strudel/pulls/863 86- Vanilla repl 3 by @felixroos in https://codeberg.org/uzu/strudel/pulls/865 87- more work on vanilla repl: repl web component + package + MicroRepl by @felixroos in https://codeberg.org/uzu/strudel/pulls/866 88- main repl vanillification by @felixroos in https://codeberg.org/uzu/strudel/pulls/873 89- final vanillification by @felixroos in https://codeberg.org/uzu/strudel/pulls/876 90 91## Doc Changes 92 93Plenty of things have been added to the docs, including a [showcase of what people have been done with strudel](https://strudel.cc/intro/showcase/) and the new [Community Bakery](/bakery/)! 94 95<details> 96<summary>show PRs</summary> 97 98- Showcase by @felixroos in https://codeberg.org/uzu/strudel/pulls/885 99- Recipes by @felixroos in https://codeberg.org/uzu/strudel/pulls/742 100- Document striate function by @ilesinge in https://codeberg.org/uzu/strudel/pulls/766 101- Document adsr function by @ilesinge in https://codeberg.org/uzu/strudel/pulls/767 102- Add function params in reference tab by @ilesinge in https://codeberg.org/uzu/strudel/pulls/785 103- Update first-sounds.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/794 104- Update recap.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/797 105- Update pattern-effects.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/796 106- Update first-effects.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/795 107- Document pianoroll by @ilesinge in https://codeberg.org/uzu/strudel/pulls/784 108- Add doc for euclidLegatoRot, wordfall and slider by @ilesinge in https://codeberg.org/uzu/strudel/pulls/801 109- Improve documentation for synonym functions by @ilesinge in https://codeberg.org/uzu/strudel/pulls/800 110- Add and style algolia search by @ilesinge in https://codeberg.org/uzu/strudel/pulls/827 111- Fix a typo by @drewgbarnes in https://codeberg.org/uzu/strudel/pulls/830 112- add mastodon link by @felixroos in https://codeberg.org/uzu/strudel/pulls/884 113- adds a blog by @felixroos in https://codeberg.org/uzu/strudel/pulls/911 114- community bakery by @felixroos in https://codeberg.org/uzu/strudel/pulls/923 115- Blog improvements by @felixroos in https://codeberg.org/uzu/strudel/pulls/919 116- 2 years blog post by @felixroos in https://codeberg.org/uzu/strudel/pulls/929 117 118</details> 119 120## Other Features 121 122<details> 123<summary>There is a lot more</summary> 124 125- mini notation: international alphabets support by @ilesinge in https://codeberg.org/uzu/strudel/pulls/751 126- Add shabda shortcut by @ilesinge in https://codeberg.org/uzu/strudel/pulls/740 127- add play function by @felixroos in https://codeberg.org/uzu/strudel/pulls/758 (superseded by next) 128- tidal style d1 ... d9 functions + more by @felixroos in https://codeberg.org/uzu/strudel/pulls/805 129- add vscode bindings by @Dsm0 in https://codeberg.org/uzu/strudel/pulls/773 130- Implement optional hover tooltip with function documentation by @ilesinge in https://codeberg.org/uzu/strudel/pulls/783 131- samples loading shortcuts: by @felixroos in https://codeberg.org/uzu/strudel/pulls/788 132- add option to disable active line highlighting in Code Settings by @kasparsj in https://codeberg.org/uzu/strudel/pulls/804 133- Color hsl by @felixroos in https://codeberg.org/uzu/strudel/pulls/815 134- Patterns tab + Refactor Panel by @felixroos in https://codeberg.org/uzu/strudel/pulls/769 135- patterns tab: import patterns + style by @felixroos in https://codeberg.org/uzu/strudel/pulls/852 136- Export patterns + ui tweaks by @felixroos in https://codeberg.org/uzu/strudel/pulls/855 137- Pattern organization by @felixroos in https://codeberg.org/uzu/strudel/pulls/858 138- Sound Import from local file system by @daslyfe in https://codeberg.org/uzu/strudel/pulls/839 139- bugfix: suspend and close existing audio context when changing interface by @daslyfe in https://codeberg.org/uzu/strudel/pulls/882 140- add root mode for voicings by @felixroos in https://codeberg.org/uzu/strudel/pulls/887 141- scales can now be anchored by @felixroos in https://codeberg.org/uzu/strudel/pulls/888 142- add dough function for raw dsp by @felixroos in https://codeberg.org/uzu/strudel/pulls/707 (experimental) 143- support mininotation '..' range operator, fixes #715 by @yaxu in https://codeberg.org/uzu/strudel/pulls/716 144- Add pick and squeeze functions by @daslyfe in https://codeberg.org/uzu/strudel/pulls/771 145- support , in < > by @felixroos in https://codeberg.org/uzu/strudel/pulls/886 146- public sharing by @felixroos in https://codeberg.org/uzu/strudel/pulls/910 147- pick, pickmod, inhabit, inhabitmod by @yaxu in https://codeberg.org/uzu/strudel/pulls/921 148- Mini-notation additions towards tidal compatibility by @yaxu in https://codeberg.org/uzu/strudel/pulls/926 149- add pickF and pickmodF by @geikha in https://codeberg.org/uzu/strudel/pulls/924 150- Make splice cps-aware by @yaxu in https://codeberg.org/uzu/strudel/pulls/932 151- Refactor cps functions by @felixroos in https://codeberg.org/uzu/strudel/pulls/933 152- Add useful pattern selection behavior for performing. by @daslyfe in https://codeberg.org/uzu/strudel/pulls/897 153 154</details> 155 156## Other Fixes 157 158<details> 159<summary>show</summary> 160 161- fix: finally repair envelopes by @felixroos in https://codeberg.org/uzu/strudel/pulls/861 162- fix: reverb regenerate loophole by @felixroos in https://codeberg.org/uzu/strudel/pulls/726 163- fix: reverb roomsize not required by @felixroos in https://codeberg.org/uzu/strudel/pulls/731 164- fix: reverb sampleRate by @felixroos in https://codeberg.org/uzu/strudel/pulls/732 165- consume n with scale by @felixroos in https://codeberg.org/uzu/strudel/pulls/727 166- fix: hashes in urls by @felixroos in https://codeberg.org/uzu/strudel/pulls/728 167- [Bug Fix] chooseWith: prevent pattern from stopping audio when selection is >= 1 or < 0 by @daslyfe in https://codeberg.org/uzu/strudel/pulls/741 168- Fix addivite synthesis phases by @felixroos in https://codeberg.org/uzu/strudel/pulls/762 169- fix: scale offset by @felixroos in https://codeberg.org/uzu/strudel/pulls/764 170- fix zen mode logo overlap by @felixroos in https://codeberg.org/uzu/strudel/pulls/760 171- fix: share copy to clipboard + alert by @felixroos in https://codeberg.org/uzu/strudel/pulls/774 172- fix: style issues by @felixroos in https://codeberg.org/uzu/strudel/pulls/781 173- Fix scope pos + document by @felixroos in https://codeberg.org/uzu/strudel/pulls/786 174- don't use anchor links for reference by @felixroos in https://codeberg.org/uzu/strudel/pulls/791 175- remove unwanted cm6 outline for strudelTheme by @kasparsj in https://codeberg.org/uzu/strudel/pulls/802 176- FIXES: palindrome abc -> abccba by @bwagner in https://codeberg.org/uzu/strudel/pulls/831 177- Bug Fix #119: Clock drift by @daslyfe in https://codeberg.org/uzu/strudel/pulls/874 178- bugfix: sound select indexes out of bounds by @daslyfe in https://codeberg.org/uzu/strudel/pulls/871 179- Error tolerance by @felixroos in https://codeberg.org/uzu/strudel/pulls/880 180- fix: make sure n is never undefined before nanFallback by @felixroos in https://codeberg.org/uzu/strudel/pulls/881 181- fix: invisible selection on vim + emacs mode by @felixroos in https://codeberg.org/uzu/strudel/pulls/889 182- fix: autocomplete / tooltip code example bug by @felixroos in https://codeberg.org/uzu/strudel/pulls/898 183- Fix examples page, piano() and a few workshop imgs by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/848 184- fix: trailing slash confusion by @felixroos in https://codeberg.org/uzu/strudel/pulls/743 185- fix: try different trailing slash behavior by @felixroos in https://codeberg.org/uzu/strudel/pulls/744 186- Fix krill build command in README by @ilesinge in https://codeberg.org/uzu/strudel/pulls/748 187- Fix for #1. Enables named instruments for csoundm. by @gogins in https://codeberg.org/uzu/strudel/pulls/662 188- fix: missing hash for links starting with / by @felixroos in https://codeberg.org/uzu/strudel/pulls/845 189- fix: swatch png src by @felixroos in https://codeberg.org/uzu/strudel/pulls/846 190- Fix edge case with rehype-urls and trailing slashes in image file paths by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/849 191- fix: multiple repls by @felixroos in https://codeberg.org/uzu/strudel/pulls/813 192- Fix chunk, add fastChunk and repeatCycles by @yaxu in https://codeberg.org/uzu/strudel/pulls/712 193- Update tauri.yml workflow file by @vasilymilovidov in https://codeberg.org/uzu/strudel/pulls/705 194- vite-vanilla-repl readme fix by @felixroos in https://codeberg.org/uzu/strudel/pulls/737 195- completely revert config mess by @felixroos in https://codeberg.org/uzu/strudel/pulls/745 196- hopefully fix trailing slashes bug by @felixroos in https://codeberg.org/uzu/strudel/pulls/753 197- Update vite pwa by @felixroos in https://codeberg.org/uzu/strudel/pulls/772 198- Update to Astro 3 by @felixroos in https://codeberg.org/uzu/strudel/pulls/775 199- support multiple named serial connections, change default baudrate by @yaxu in https://codeberg.org/uzu/strudel/pulls/551 200- CHANGES: github action checkout v2 -> v4 by @bwagner in https://codeberg.org/uzu/strudel/pulls/837 201- CHANGES: pin pnpm to version 8.3.1 by @bwagner in https://codeberg.org/uzu/strudel/pulls/834 202- CHANGES: github action pnpm version from 7 to 8.3.1 by @bwagner in https://codeberg.org/uzu/strudel/pulls/835 203- ADDS: JetBrains IDE files and directories to .gitignore by @bwagner in https://codeberg.org/uzu/strudel/pulls/840 204- Prevent 404 on Algolia crawls by @ilesinge in https://codeberg.org/uzu/strudel/pulls/838 205- Add in fixes from my fork to slashocalypse branch by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/843 206- improve slashing + base href behavior by @felixroos in https://codeberg.org/uzu/strudel/pulls/842 207- CHANGES: pnpm 8.1.3 to 8.11.0 by @bwagner in https://codeberg.org/uzu/strudel/pulls/850 208- add missing trailing slashes by @felixroos in https://codeberg.org/uzu/strudel/pulls/860 209- move all examples to separate examples folder by @felixroos in https://codeberg.org/uzu/strudel/pulls/878 210- Dependency update by @felixroos in https://codeberg.org/uzu/strudel/pulls/879 211- Update Vite version so hot reload works properly with newest pnpm version by @daslyfe in https://codeberg.org/uzu/strudel/pulls/892 212- prevent vite from complaining about additional exports in jsx files by @daslyfe in https://codeberg.org/uzu/strudel/pulls/891 213- fix some build warnings by @felixroos in https://codeberg.org/uzu/strudel/pulls/902 214- Remove hideHeader for better mobile UI and consistency by @rjulian in https://codeberg.org/uzu/strudel/pulls/894 215- Fix: swatch/[name].png.js static path by @oscarbyrne in https://codeberg.org/uzu/strudel/pulls/916 216- rename @strudel.cycles/_ packages to @strudel/_ by @felixroos in https://codeberg.org/uzu/strudel/pulls/917 217- `pick` now accepts lookup tables, with alternate cycle squeezing behaviour as new `inhabit` function by @yaxu in https://codeberg.org/uzu/strudel/pulls/918 218- Revert "`pick` now accepts lookup tables, with alternate cycle squeezing behaviour as new `inhabit` function" by @yaxu in https://codeberg.org/uzu/strudel/pulls/920 219- Fix pattern tab not showing patterns without created date by @daslyfe in https://codeberg.org/uzu/strudel/pulls/934 220 221</details> 222 223## New Contributors 224 225- @ilesinge made their first contribution in https://codeberg.org/uzu/strudel/pulls/748 226- @Dsm0 made their first contribution in https://codeberg.org/uzu/strudel/pulls/773 227- @kasparsj made their first contribution in https://codeberg.org/uzu/strudel/pulls/802 228- @atfornes made their first contribution in https://codeberg.org/uzu/strudel/pulls/818 229- @drewgbarnes made their first contribution in https://codeberg.org/uzu/strudel/pulls/830 230- @shiyouganai made their first contribution in https://codeberg.org/uzu/strudel/pulls/843 231- @rjulian made their first contribution in https://codeberg.org/uzu/strudel/pulls/894 232- @fnordomat made their first contribution in https://codeberg.org/uzu/strudel/pulls/907 233- @oscarbyrne made their first contribution in https://codeberg.org/uzu/strudel/pulls/916 234- @geikha made their first contribution in https://codeberg.org/uzu/strudel/pulls/924 235 236**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.9.0...v1.0.0