---
title: 'Release Notes v1.0.0'
description: ''
date: '2024-01-22'
tags: ['meta']
author: froos
---

These are the release notes for Strudel 1.0.0 aka "Geburtstagskuchen"

This release marks the 2 year anniversary of the project, the first commit was on the 22nd January 2022 by Alex McLean.

If you generally need a heads up on what happened to Strudel in the last year, read the [2023 recap](/blog/#year-2)

import { Youtube } from '@src/components/Youtube';

<Youtube client:only="react" id="ByPFmSBqQk0" />

A lot has happened since then, and also since the last release 16 weeks ago.

Let me write up some of the highlights:

## Breaking Change

This version changes the default cps value from 1 to 0.5 to give patterns a little bit more time by default.
If 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!

- make 0.5hz cps the default by @yaxu in https://codeberg.org/uzu/strudel/pulls/931

## New Domain

Strudel is now available under [strudel.cc](https://strudel.cc/). The old domain still works but you might not get the most recent version.

- replace strudel.tidalcycles.org with strudel.cc by @felixroos in https://codeberg.org/uzu/strudel/pulls/768

## Strudel on Mastodon

Strudel now has a mastodon presence: https://social.toplap.org/@strudel

## New Audio Engine Features

superdough, the audio engine of strudel has gotten some new features:

- Create phaser effect by @daslyfe in https://codeberg.org/uzu/strudel/pulls/798
- Multichannel audio by @daslyfe in https://codeberg.org/uzu/strudel/pulls/820
- Audio device selection by @daslyfe in https://codeberg.org/uzu/strudel/pulls/854
- Better convolution reverb by generating impulse responses by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/718
- Add 'white', 'pink' and 'brown' oscillators + refactor synth by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/713
- New noise type: "crackle" by @Bubobubobubobubo in https://codeberg.org/uzu/strudel/pulls/806
- Add support for using samples as impulse response buffers for the reverb by @vasilymilovidov in https://codeberg.org/uzu/strudel/pulls/717
- Compressor by @felixroos in https://codeberg.org/uzu/strudel/pulls/729
- Adding vibrato to Superdough sampler by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/706
- Further Envelope improvements by @daslyfe in https://codeberg.org/uzu/strudel/pulls/868
- Add more vowel qualities for the vowels function by @fnordomat in https://codeberg.org/uzu/strudel/pulls/907
- pitch envelope by @felixroos in https://codeberg.org/uzu/strudel/pulls/913

## Slider Controls

The new `slider` function inlines a draggable slider element into the code, bridging the gap between code and GUI.

- widgets by @felixroos in https://codeberg.org/uzu/strudel/pulls/714
- Slider afterthoughts by @felixroos in https://codeberg.org/uzu/strudel/pulls/723
- add xfade by @felixroos in https://codeberg.org/uzu/strudel/pulls/780

## Improved MIDI integration

Pattern 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.

- Midi in by @felixroos in https://codeberg.org/uzu/strudel/pulls/699
- add midi clock support by @felixroos in https://codeberg.org/uzu/strudel/pulls/710

## hydra

[hydra](https://hydra.ojack.xyz), the live coding video synth [can now be used directly inside the strudel REPL](https://strudel.cc/learn/hydra/).

- Hydra integration by @felixroos in https://codeberg.org/uzu/strudel/pulls/759
- add options param to initHydra by @kasparsj in https://codeberg.org/uzu/strudel/pulls/808
- Hydra fixes and improvements by @atfornes in https://codeberg.org/uzu/strudel/pulls/818

## Vanilla REPL

The codemirror editor and the repl abstraction have been refactored from react to vanilla JS!
This should give some performance improvements and less dependency / maintenance burden:

- Vanilla repl 2 by @felixroos in https://codeberg.org/uzu/strudel/pulls/863
- Vanilla repl 3 by @felixroos in https://codeberg.org/uzu/strudel/pulls/865
- more work on vanilla repl: repl web component + package + MicroRepl by @felixroos in https://codeberg.org/uzu/strudel/pulls/866
- main repl vanillification by @felixroos in https://codeberg.org/uzu/strudel/pulls/873
- final vanillification by @felixroos in https://codeberg.org/uzu/strudel/pulls/876

## Doc Changes

Plenty 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/)!

<details>
<summary>show PRs</summary>

- Showcase by @felixroos in https://codeberg.org/uzu/strudel/pulls/885
- Recipes by @felixroos in https://codeberg.org/uzu/strudel/pulls/742
- Document striate function by @ilesinge in https://codeberg.org/uzu/strudel/pulls/766
- Document adsr function by @ilesinge in https://codeberg.org/uzu/strudel/pulls/767
- Add function params in reference tab by @ilesinge in https://codeberg.org/uzu/strudel/pulls/785
- Update first-sounds.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/794
- Update recap.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/797
- Update pattern-effects.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/796
- Update first-effects.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/795
- Document pianoroll by @ilesinge in https://codeberg.org/uzu/strudel/pulls/784
- Add doc for euclidLegatoRot, wordfall and slider by @ilesinge in https://codeberg.org/uzu/strudel/pulls/801
- Improve documentation for synonym functions by @ilesinge in https://codeberg.org/uzu/strudel/pulls/800
- Add and style algolia search by @ilesinge in https://codeberg.org/uzu/strudel/pulls/827
- Fix a typo by @drewgbarnes in https://codeberg.org/uzu/strudel/pulls/830
- add mastodon link by @felixroos in https://codeberg.org/uzu/strudel/pulls/884
- adds a blog by @felixroos in https://codeberg.org/uzu/strudel/pulls/911
- community bakery by @felixroos in https://codeberg.org/uzu/strudel/pulls/923
- Blog improvements by @felixroos in https://codeberg.org/uzu/strudel/pulls/919
- 2 years blog post by @felixroos in https://codeberg.org/uzu/strudel/pulls/929

</details>

## Other Features

<details>
<summary>There is a lot more</summary>

- mini notation: international alphabets support by @ilesinge in https://codeberg.org/uzu/strudel/pulls/751
- Add shabda shortcut by @ilesinge in https://codeberg.org/uzu/strudel/pulls/740
- add play function by @felixroos in https://codeberg.org/uzu/strudel/pulls/758 (superseded by next)
- tidal style d1 ... d9 functions + more by @felixroos in https://codeberg.org/uzu/strudel/pulls/805
- add vscode bindings by @Dsm0 in https://codeberg.org/uzu/strudel/pulls/773
- Implement optional hover tooltip with function documentation by @ilesinge in https://codeberg.org/uzu/strudel/pulls/783
- samples loading shortcuts: by @felixroos in https://codeberg.org/uzu/strudel/pulls/788
- add option to disable active line highlighting in Code Settings by @kasparsj in https://codeberg.org/uzu/strudel/pulls/804
- Color hsl by @felixroos in https://codeberg.org/uzu/strudel/pulls/815
- Patterns tab + Refactor Panel by @felixroos in https://codeberg.org/uzu/strudel/pulls/769
- patterns tab: import patterns + style by @felixroos in https://codeberg.org/uzu/strudel/pulls/852
- Export patterns + ui tweaks by @felixroos in https://codeberg.org/uzu/strudel/pulls/855
- Pattern organization by @felixroos in https://codeberg.org/uzu/strudel/pulls/858
- Sound Import from local file system by @daslyfe in https://codeberg.org/uzu/strudel/pulls/839
- bugfix: suspend and close existing audio context when changing interface by @daslyfe in https://codeberg.org/uzu/strudel/pulls/882
- add root mode for voicings by @felixroos in https://codeberg.org/uzu/strudel/pulls/887
- scales can now be anchored by @felixroos in https://codeberg.org/uzu/strudel/pulls/888
- add dough function for raw dsp by @felixroos in https://codeberg.org/uzu/strudel/pulls/707 (experimental)
- support mininotation '..' range operator, fixes #715 by @yaxu in https://codeberg.org/uzu/strudel/pulls/716
- Add pick and squeeze functions by @daslyfe in https://codeberg.org/uzu/strudel/pulls/771
- support , in < > by @felixroos in https://codeberg.org/uzu/strudel/pulls/886
- public sharing by @felixroos in https://codeberg.org/uzu/strudel/pulls/910
- pick, pickmod, inhabit, inhabitmod by @yaxu in https://codeberg.org/uzu/strudel/pulls/921
- Mini-notation additions towards tidal compatibility by @yaxu in https://codeberg.org/uzu/strudel/pulls/926
- add pickF and pickmodF by @geikha in https://codeberg.org/uzu/strudel/pulls/924
- Make splice cps-aware by @yaxu in https://codeberg.org/uzu/strudel/pulls/932
- Refactor cps functions by @felixroos in https://codeberg.org/uzu/strudel/pulls/933
- Add useful pattern selection behavior for performing. by @daslyfe in https://codeberg.org/uzu/strudel/pulls/897

</details>

## Other Fixes

<details>
<summary>show</summary>

- fix: finally repair envelopes by @felixroos in https://codeberg.org/uzu/strudel/pulls/861
- fix: reverb regenerate loophole by @felixroos in https://codeberg.org/uzu/strudel/pulls/726
- fix: reverb roomsize not required by @felixroos in https://codeberg.org/uzu/strudel/pulls/731
- fix: reverb sampleRate by @felixroos in https://codeberg.org/uzu/strudel/pulls/732
- consume n with scale by @felixroos in https://codeberg.org/uzu/strudel/pulls/727
- fix: hashes in urls by @felixroos in https://codeberg.org/uzu/strudel/pulls/728
- [Bug Fix] chooseWith: prevent pattern from stopping audio when selection is >= 1 or < 0 by @daslyfe in https://codeberg.org/uzu/strudel/pulls/741
- Fix addivite synthesis phases by @felixroos in https://codeberg.org/uzu/strudel/pulls/762
- fix: scale offset by @felixroos in https://codeberg.org/uzu/strudel/pulls/764
- fix zen mode logo overlap by @felixroos in https://codeberg.org/uzu/strudel/pulls/760
- fix: share copy to clipboard + alert by @felixroos in https://codeberg.org/uzu/strudel/pulls/774
- fix: style issues by @felixroos in https://codeberg.org/uzu/strudel/pulls/781
- Fix scope pos + document by @felixroos in https://codeberg.org/uzu/strudel/pulls/786
- don't use anchor links for reference by @felixroos in https://codeberg.org/uzu/strudel/pulls/791
- remove unwanted cm6 outline for strudelTheme by @kasparsj in https://codeberg.org/uzu/strudel/pulls/802
- FIXES: palindrome abc -> abccba by @bwagner in https://codeberg.org/uzu/strudel/pulls/831
- Bug Fix #119: Clock drift by @daslyfe in https://codeberg.org/uzu/strudel/pulls/874
- bugfix: sound select indexes out of bounds by @daslyfe in https://codeberg.org/uzu/strudel/pulls/871
- Error tolerance by @felixroos in https://codeberg.org/uzu/strudel/pulls/880
- fix: make sure n is never undefined before nanFallback by @felixroos in https://codeberg.org/uzu/strudel/pulls/881
- fix: invisible selection on vim + emacs mode by @felixroos in https://codeberg.org/uzu/strudel/pulls/889
- fix: autocomplete / tooltip code example bug by @felixroos in https://codeberg.org/uzu/strudel/pulls/898
- Fix examples page, piano() and a few workshop imgs by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/848
- fix: trailing slash confusion by @felixroos in https://codeberg.org/uzu/strudel/pulls/743
- fix: try different trailing slash behavior by @felixroos in https://codeberg.org/uzu/strudel/pulls/744
- Fix krill build command in README by @ilesinge in https://codeberg.org/uzu/strudel/pulls/748
- Fix for #1. Enables named instruments for csoundm. by @gogins in https://codeberg.org/uzu/strudel/pulls/662
- fix: missing hash for links starting with / by @felixroos in https://codeberg.org/uzu/strudel/pulls/845
- fix: swatch png src by @felixroos in https://codeberg.org/uzu/strudel/pulls/846
- Fix edge case with rehype-urls and trailing slashes in image file paths by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/849
- fix: multiple repls by @felixroos in https://codeberg.org/uzu/strudel/pulls/813
- Fix chunk, add fastChunk and repeatCycles by @yaxu in https://codeberg.org/uzu/strudel/pulls/712
- Update tauri.yml workflow file by @vasilymilovidov in https://codeberg.org/uzu/strudel/pulls/705
- vite-vanilla-repl readme fix by @felixroos in https://codeberg.org/uzu/strudel/pulls/737
- completely revert config mess by @felixroos in https://codeberg.org/uzu/strudel/pulls/745
- hopefully fix trailing slashes bug by @felixroos in https://codeberg.org/uzu/strudel/pulls/753
- Update vite pwa by @felixroos in https://codeberg.org/uzu/strudel/pulls/772
- Update to Astro 3 by @felixroos in https://codeberg.org/uzu/strudel/pulls/775
- support multiple named serial connections, change default baudrate by @yaxu in https://codeberg.org/uzu/strudel/pulls/551
- CHANGES: github action checkout v2 -> v4 by @bwagner in https://codeberg.org/uzu/strudel/pulls/837
- CHANGES: pin pnpm to version 8.3.1 by @bwagner in https://codeberg.org/uzu/strudel/pulls/834
- CHANGES: github action pnpm version from 7 to 8.3.1 by @bwagner in https://codeberg.org/uzu/strudel/pulls/835
- ADDS: JetBrains IDE files and directories to .gitignore by @bwagner in https://codeberg.org/uzu/strudel/pulls/840
- Prevent 404 on Algolia crawls by @ilesinge in https://codeberg.org/uzu/strudel/pulls/838
- Add in fixes from my fork to slashocalypse branch by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/843
- improve slashing + base href behavior by @felixroos in https://codeberg.org/uzu/strudel/pulls/842
- CHANGES: pnpm 8.1.3 to 8.11.0 by @bwagner in https://codeberg.org/uzu/strudel/pulls/850
- add missing trailing slashes by @felixroos in https://codeberg.org/uzu/strudel/pulls/860
- move all examples to separate examples folder by @felixroos in https://codeberg.org/uzu/strudel/pulls/878
- Dependency update by @felixroos in https://codeberg.org/uzu/strudel/pulls/879
- Update Vite version so hot reload works properly with newest pnpm version by @daslyfe in https://codeberg.org/uzu/strudel/pulls/892
- prevent vite from complaining about additional exports in jsx files by @daslyfe in https://codeberg.org/uzu/strudel/pulls/891
- fix some build warnings by @felixroos in https://codeberg.org/uzu/strudel/pulls/902
- Remove hideHeader for better mobile UI and consistency by @rjulian in https://codeberg.org/uzu/strudel/pulls/894
- Fix: swatch/[name].png.js static path by @oscarbyrne in https://codeberg.org/uzu/strudel/pulls/916
- rename @strudel.cycles/_ packages to @strudel/_ by @felixroos in https://codeberg.org/uzu/strudel/pulls/917
- `pick` now accepts lookup tables, with alternate cycle squeezing behaviour as new `inhabit` function by @yaxu in https://codeberg.org/uzu/strudel/pulls/918
- 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
- Fix pattern tab not showing patterns without created date by @daslyfe in https://codeberg.org/uzu/strudel/pulls/934

</details>

## New Contributors

- @ilesinge made their first contribution in https://codeberg.org/uzu/strudel/pulls/748
- @Dsm0 made their first contribution in https://codeberg.org/uzu/strudel/pulls/773
- @kasparsj made their first contribution in https://codeberg.org/uzu/strudel/pulls/802
- @atfornes made their first contribution in https://codeberg.org/uzu/strudel/pulls/818
- @drewgbarnes made their first contribution in https://codeberg.org/uzu/strudel/pulls/830
- @shiyouganai made their first contribution in https://codeberg.org/uzu/strudel/pulls/843
- @rjulian made their first contribution in https://codeberg.org/uzu/strudel/pulls/894
- @fnordomat made their first contribution in https://codeberg.org/uzu/strudel/pulls/907
- @oscarbyrne made their first contribution in https://codeberg.org/uzu/strudel/pulls/916
- @geikha made their first contribution in https://codeberg.org/uzu/strudel/pulls/924

**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.9.0...v1.0.0
