mirror of
https://codeberg.org/uzu/strudel
synced 2026-07-23 13:42:56 -04:00
Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a72ea94b1 | |||
| eac6f27ca4 | |||
| f2330a2307 | |||
| b1aba294ad | |||
| 63ac80eb79 | |||
| 860bb58d61 | |||
| d58b3e490b | |||
| 0003ce174e | |||
| 8e0f23e081 | |||
| 71e60ed8de | |||
| e2a29914c7 | |||
| a9a3d491a2 | |||
| a750764f88 | |||
| 5b397009ab | |||
| e68df9e789 | |||
| 4d3bbd5057 | |||
| 81ca199a96 | |||
| 8d8b8ab99e | |||
| a4f10d5339 | |||
| 33a73c37bc | |||
| 4e6d39666a | |||
| a5b6022506 |
+1
-1
@@ -17,7 +17,7 @@ git remote set-url origin git@codeberg.org:uzu/strudel.git
|
|||||||
|
|
||||||
To get in touch with the contributors, either
|
To get in touch with the contributors, either
|
||||||
|
|
||||||
- [join the Tidal Discord Channel](https://discord.gg/remJ6gQA) and go to the #strudel channel
|
- [join the Tidal Discord Channel](https://discord.com/invite/HGEdXmRkzT) and go to the #strudel channel
|
||||||
- Find related discussions on the [tidal club forum](https://club.tidalcycles.org/)
|
- Find related discussions on the [tidal club forum](https://club.tidalcycles.org/)
|
||||||
|
|
||||||
## Ask a Question
|
## Ask a Question
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ This project is organized into many [packages](./packages), which are also avail
|
|||||||
|
|
||||||
Read more about how to use these in your own project [here](https://strudel.cc/technical-manual/project-start).
|
Read more about how to use these in your own project [here](https://strudel.cc/technical-manual/project-start).
|
||||||
|
|
||||||
You will need to abide by the terms of the [GNU Affero Public Licence v3](LICENSE.md). As such, Strudel code can only be shared within free/open source projects under the same license -- see the license for details.
|
You will need to abide by the terms of the [GNU Affero Public Licence v3](LICENSE). As such, Strudel code can only be shared within free/open source projects under the same license -- see the license for details.
|
||||||
|
|
||||||
Licensing info for the default sound banks can be found over on the [dough-samples](https://github.com/felixroos/dough-samples/blob/main/README.md) repository.
|
Licensing info for the default sound banks can be found over on the [dough-samples](https://github.com/felixroos/dough-samples/blob/main/README.md) repository.
|
||||||
|
|
||||||
|
|||||||
@@ -114,8 +114,9 @@ export function repl({
|
|||||||
* all(x => x.pianoroll())
|
* all(x => x.pianoroll())
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
|
let allTransforms = [];
|
||||||
const all = function (transform) {
|
const all = function (transform) {
|
||||||
allTransform = transform;
|
allTransforms.push(transform);
|
||||||
return silence;
|
return silence;
|
||||||
};
|
};
|
||||||
/** Applies a function to each of the running patterns separately. This is intended for future use with upcoming 'stepwise' features. See `all` for a version that applies the function to all the patterns stacked together into a single pattern.
|
/** Applies a function to each of the running patterns separately. This is intended for future use with upcoming 'stepwise' features. See `all` for a version that applies the function to all the patterns stacked together into a single pattern.
|
||||||
@@ -191,6 +192,7 @@ export function repl({
|
|||||||
await injectPatternMethods();
|
await injectPatternMethods();
|
||||||
setTime(() => scheduler.now()); // TODO: refactor?
|
setTime(() => scheduler.now()); // TODO: refactor?
|
||||||
await beforeEval?.({ code });
|
await beforeEval?.({ code });
|
||||||
|
allTransforms = []; // reset all transforms
|
||||||
shouldHush && hush();
|
shouldHush && hush();
|
||||||
|
|
||||||
if (mondo) {
|
if (mondo) {
|
||||||
@@ -207,8 +209,10 @@ export function repl({
|
|||||||
} else if (eachTransform) {
|
} else if (eachTransform) {
|
||||||
pattern = eachTransform(pattern);
|
pattern = eachTransform(pattern);
|
||||||
}
|
}
|
||||||
if (allTransform) {
|
if (allTransforms.length) {
|
||||||
pattern = allTransform(pattern);
|
for (let i in allTransforms) {
|
||||||
|
pattern = allTransforms[i](pattern);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!isPattern(pattern)) {
|
if (!isPattern(pattern)) {
|
||||||
const message = `got "${typeof evaluated}" instead of pattern`;
|
const message = `got "${typeof evaluated}" instead of pattern`;
|
||||||
|
|||||||
@@ -37,6 +37,13 @@ describe('tonal', () => {
|
|||||||
.firstCycleValues.map((h) => h.note),
|
.firstCycleValues.map((h) => h.note),
|
||||||
).toEqual(['C3', 'D3', 'E3']);
|
).toEqual(['C3', 'D3', 'E3']);
|
||||||
});
|
});
|
||||||
|
it('scale without tonic', () => {
|
||||||
|
expect(
|
||||||
|
n(seq(0, 1, 2))
|
||||||
|
.scale('major')
|
||||||
|
.firstCycleValues.map((h) => h.note),
|
||||||
|
).toEqual(['C3', 'D3', 'E3']);
|
||||||
|
});
|
||||||
it('scale with mininotation colon', () => {
|
it('scale with mininotation colon', () => {
|
||||||
expect(
|
expect(
|
||||||
n(seq(0, 1, 2))
|
n(seq(0, 1, 2))
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ function scaleStep(step, scale) {
|
|||||||
scale = scale.replaceAll(':', ' ');
|
scale = scale.replaceAll(':', ' ');
|
||||||
step = Math.ceil(step);
|
step = Math.ceil(step);
|
||||||
let { intervals, tonic, empty } = Scale.get(scale);
|
let { intervals, tonic, empty } = Scale.get(scale);
|
||||||
if ((empty && isNote(scale)) || (!empty && !tonic)) {
|
if ((empty && isNote(scale)) || (empty && !tonic)) {
|
||||||
throw new Error(`incomplete scale. Make sure to use ":" instead of spaces, example: .scale("C:major")`);
|
throw new Error(`incomplete scale. Make sure to use ":" instead of spaces, example: .scale("C:major")`);
|
||||||
} else if (empty) {
|
} else if (empty) {
|
||||||
throw new Error(`invalid scale "${scale}"`);
|
throw new Error(`invalid scale "${scale}"`);
|
||||||
|
|||||||
@@ -0,0 +1,317 @@
|
|||||||
|
---
|
||||||
|
title: 'Release Notes v1.1.0'
|
||||||
|
description: ''
|
||||||
|
date: '2024-06-02'
|
||||||
|
tags: ['meta']
|
||||||
|
author: froos
|
||||||
|
---
|
||||||
|
|
||||||
|
These are the release notes for Strudel 1.1.0 aka "Bananensplit".
|
||||||
|
|
||||||
|
The last release was over 19 weeks ago, so a lot of things have happened!
|
||||||
|
|
||||||
|
First, here's a little demo, teasing some of the new features:
|
||||||
|
|
||||||
|
import { Youtube } from '@src/components/Youtube';
|
||||||
|
|
||||||
|
<Youtube client:only="react" id="2Qu5lMHruio" />
|
||||||
|
|
||||||
|
Let's write up some of the highlights:
|
||||||
|
|
||||||
|
## New DSP Features
|
||||||
|
|
||||||
|
### Stereo Supersaw
|
||||||
|
|
||||||
|
with spread, unison, and detune parameters
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
note("d f a a# a d3").fast(2)
|
||||||
|
.s("supersaw").spread(".8").detune(.3).unison("2 7")
|
||||||
|
```
|
||||||
|
|
||||||
|
### Analog "ladder" filter type
|
||||||
|
|
||||||
|
works great for acid basslines and vibey tones
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
note("{d d d a a# d3 f4}%16".sub(12)).gain(1).s("sawtooth")
|
||||||
|
.lpf(200).lpenv(slider(1.36,0,8)).lpq(7).distort("1.5:.7")`
|
||||||
|
.ftype('ladder')
|
||||||
|
```
|
||||||
|
|
||||||
|
### stereo distortion effect
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
note("{g g a# g g4}%8".add("{0 7 12 0}%8")).lpf(500)
|
||||||
|
.s("supersaw").dist("4:.2")
|
||||||
|
```
|
||||||
|
|
||||||
|
## Editor Features
|
||||||
|
|
||||||
|
### inline viz
|
||||||
|
|
||||||
|
The editor now supports multiple visuals within the code, using the `_` prefix for viz functions:
|
||||||
|
|
||||||
|
<img
|
||||||
|
width="595"
|
||||||
|
alt="Screenshot 2024-06-01 at 01 23 51"
|
||||||
|
src="https://codeberg.org/uzu/strudel/assets/12023032/978fee85-e533-4da6-a245-d20d0083f57e"
|
||||||
|
/>
|
||||||
|
|
||||||
|
- `._pianoroll()`: inline pianoroll
|
||||||
|
- `._punchcard()`: inline punchcard
|
||||||
|
- `._scope()`: inline scope
|
||||||
|
- `._pitchwheel()`: inline pitchwheel
|
||||||
|
|
||||||
|
For more info, check out the new [Visual Feedback Page](https://strudel.cc/learn/visual-feedback/)
|
||||||
|
|
||||||
|
### label notation
|
||||||
|
|
||||||
|
This new notation simplifies writing patterns at the top level:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
d1: s("bd*4")
|
||||||
|
d2: s("[- hh]*4")
|
||||||
|
```
|
||||||
|
|
||||||
|
This is equivalent to:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
stack(
|
||||||
|
s("bd*4"),
|
||||||
|
s("[- hh]*4")
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
The labels you choose are arbitrary, the above `d1` and `d2` are a typical thing you'd write in tidal, for example `d1 $ s "bd*4"`.
|
||||||
|
If the same label is used multiple times, the last one wins:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
d1: s("bd*4")
|
||||||
|
d1: s("[- hh]*4") // <-- only this plays
|
||||||
|
```
|
||||||
|
|
||||||
|
There is a special label anonymous label `$`, which can appear multiple times without overriding itself:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
// both of these will play:
|
||||||
|
$: s("bd*4")
|
||||||
|
$: s("[- hh]*4")
|
||||||
|
```
|
||||||
|
|
||||||
|
You can mute a pattern by prefixing `_`:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
_$: s("bd*4") // <-- this one is muted
|
||||||
|
$: s("[- hh]*4")
|
||||||
|
```
|
||||||
|
|
||||||
|
To run a transformation on all patterns, you can use `all`:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
$: s("bd*4")
|
||||||
|
$: s("[- hh]*4")
|
||||||
|
all(x=>x.room(.5))
|
||||||
|
```
|
||||||
|
|
||||||
|
This notation is now the recommended way to [play patterns in parallel](https://strudel.cc/workshop/first-notes/#playing-multiple-patterns)
|
||||||
|
|
||||||
|
### Clock sync between multiple instances
|
||||||
|
|
||||||
|
timing has received a major overhaul, and is now much more accurate on all browsers. Additionally, you can now sync timing across multiple windows.
|
||||||
|

|
||||||
|
|
||||||
|
### Better sample upload support
|
||||||
|
|
||||||
|
you can now upload large amounts of samples much faster across all browsers including on IOS devices. supported filetypes now include: ogg flac mp3 wav aac m4a
|
||||||
|
|
||||||
|
### experimental tidal syntax
|
||||||
|
|
||||||
|
The new `tidal` function allows you to write strudel patterns in tidal syntax:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
await initTidal()
|
||||||
|
|
||||||
|
tidal`
|
||||||
|
d1 $ s "bd*4"
|
||||||
|
|
||||||
|
d2 $ s "[- hh]*4"
|
||||||
|
`
|
||||||
|
```
|
||||||
|
|
||||||
|
As we're looking to improve compatibility with tidal, we're happy to hear feedback.
|
||||||
|
|
||||||
|
## breaking changes
|
||||||
|
|
||||||
|
This release comes with a bunch of breaking changes. If you find your patterns to sound different, check out the PRs below for guidance on how to update them. Most of these changes shouldn't affect a lot of patterns.
|
||||||
|
In case of doubt, add the line `// @version 1.0` to your old pattern.
|
||||||
|
If you're having problems, please let us know!
|
||||||
|
|
||||||
|
- remove legacy legato + duration implementations by @felixroos in https://codeberg.org/uzu/strudel/pull/965
|
||||||
|
- Velocity in value by @felixroos in https://codeberg.org/uzu/strudel/pull/974
|
||||||
|
- use ireal as default voicing dict by @felixroos https://codeberg.org/uzu/strudel/pull/967
|
||||||
|
- Color in hap value by @felixroos https://codeberg.org/uzu/strudel/pull/1007
|
||||||
|
- rename trig -> reset, trigzero -> restart by @felixroos https://codeberg.org/uzu/strudel/pull/1010
|
||||||
|
- remove dangerous arithmetic feature by @felixroos https://codeberg.org/uzu/strudel/pull/1030
|
||||||
|
- change fanchor to 0 by @daslyfe https://codeberg.org/uzu/strudel/pull/1107
|
||||||
|
|
||||||
|
## superdough features
|
||||||
|
|
||||||
|
- replace shape with distort in learn doc by @daslyfe https://codeberg.org/uzu/strudel/pull/982
|
||||||
|
- Worklet Improvents / fixes by @daslyfe https://codeberg.org/uzu/strudel/pull/963
|
||||||
|
- supersaw oscillator by @daslyfe https://codeberg.org/uzu/strudel/pull/978
|
||||||
|
- Add analog-style ladder filter by @daslyfe https://codeberg.org/uzu/strudel/pull/1103
|
||||||
|
- Calculate phaser modulation phase based on time by @daslyfe https://codeberg.org/uzu/strudel/pull/1110
|
||||||
|
- rollback phaser by @daslyfe https://codeberg.org/uzu/strudel/pull/1113
|
||||||
|
|
||||||
|
## editor / ui features
|
||||||
|
|
||||||
|
- 'Enable Bracket Matching' option in Codemirror by @eefano https://codeberg.org/uzu/strudel/pull/956
|
||||||
|
- REPL sync between windows by @daslyfe https://codeberg.org/uzu/strudel/pull/900
|
||||||
|
- inline viz / widgets package by @felixroos https://codeberg.org/uzu/strudel/pull/989
|
||||||
|
- Inline punchcard + spiral by @felixroos https://codeberg.org/uzu/strudel/pull/1008
|
||||||
|
- More fonts by @felixroos https://codeberg.org/uzu/strudel/pull/1023
|
||||||
|
- better theme integration for visuals + various fixes by @felixroos https://codeberg.org/uzu/strudel/pull/1024
|
||||||
|
- add setting for sync flag by @felixroos https://codeberg.org/uzu/strudel/pull/1025
|
||||||
|
- add closeBrackets setting by @felixroos https://codeberg.org/uzu/strudel/pull/1031
|
||||||
|
- add font file types to offline cache by @felixroos https://codeberg.org/uzu/strudel/pull/1032
|
||||||
|
- pitchwheel visual by @felixroos https://codeberg.org/uzu/strudel/pull/1041
|
||||||
|
- repl: set document.title from @title by @kasparsj https://codeberg.org/uzu/strudel/pull/1090
|
||||||
|
- Samples tab improvements by @daslyfe https://codeberg.org/uzu/strudel/pull/1102
|
||||||
|
|
||||||
|
## language features
|
||||||
|
|
||||||
|
- pickOut(), pickRestart(), pickReset() by @eefano https://codeberg.org/uzu/strudel/pull/950
|
||||||
|
- Auto await samples by @felixroos https://codeberg.org/uzu/strudel/pull/955
|
||||||
|
- feat: can now invert euclid pulses with negative numbers by @felixroos https://codeberg.org/uzu/strudel/pull/959
|
||||||
|
- Nested controls by @felixroos https://codeberg.org/uzu/strudel/pull/973
|
||||||
|
- alias - for ~ by @yaxu https://codeberg.org/uzu/strudel/pull/981
|
||||||
|
- Beat-oriented functionality by @yaxu https://codeberg.org/uzu/strudel/pull/976
|
||||||
|
- Labeled statements by @felixroos https://codeberg.org/uzu/strudel/pull/991
|
||||||
|
- accidentals in scale degrees by @eefano https://codeberg.org/uzu/strudel/pull/1000
|
||||||
|
- Feature: tactus marking by @yaxu https://codeberg.org/uzu/strudel/pull/1021
|
||||||
|
- Tactus tidy by @yaxu https://codeberg.org/uzu/strudel/pull/1027
|
||||||
|
- Wax, wane, taper and taperlist by @yaxu https://codeberg.org/uzu/strudel/pull/1042
|
||||||
|
- transpose: support all combinations of numbers and strings for notes and intervals by @felixroos https://codeberg.org/uzu/strudel/pull/1048
|
||||||
|
- anonymous patterns + muting by @felixroos https://codeberg.org/uzu/strudel/pull/1059
|
||||||
|
- add swing + swingBy by @felixroos https://codeberg.org/uzu/strudel/pull/1038
|
||||||
|
- Stepwise functions from Tidal by @yaxu https://codeberg.org/uzu/strudel/pull/1060
|
||||||
|
- Tactus tweaks - fixes for maintaining tactus and highlight locations by @yaxu https://codeberg.org/uzu/strudel/pull/1065
|
||||||
|
- Fix stepjoin by @yaxu https://codeberg.org/uzu/strudel/pull/1067
|
||||||
|
- More tactus tidying by @yaxu https://codeberg.org/uzu/strudel/pull/1071
|
||||||
|
- Tactus calculation toggle and breaking change to tactus calculation in fast/slow/hurry by @yaxu https://codeberg.org/uzu/strudel/pull/1081
|
||||||
|
- hs2js package / tidal parser by @felixroos https://codeberg.org/uzu/strudel/pull/870
|
||||||
|
- Add the mousex and mousey signal by @Enelg52 https://codeberg.org/uzu/strudel/pull/1112
|
||||||
|
- can now access strudelMirror from repl by @felixroos https://codeberg.org/uzu/strudel/pull/1117
|
||||||
|
|
||||||
|
## sampler
|
||||||
|
|
||||||
|
If you have nodejs installed on your system, you can now use [@strudel/sampler](https://www.npmjs.com/package/@strudel/sampler) to serve samples from disk to the REPL or flok.
|
||||||
|
|
||||||
|
- local sample server cli by @felixroos https://codeberg.org/uzu/strudel/pull/1033
|
||||||
|
- Fix sampler paths by @felixroos https://codeberg.org/uzu/strudel/pull/1034
|
||||||
|
- Fix sampler windows by @felixroos https://codeberg.org/uzu/strudel/pull/1108
|
||||||
|
- fix sampler on windows by @geikha https://codeberg.org/uzu/strudel/pull/1109
|
||||||
|
|
||||||
|
## docs
|
||||||
|
|
||||||
|
- V1 release notes by @felixroos https://codeberg.org/uzu/strudel/pull/935
|
||||||
|
- Minor documentation error: Update first-sounds.mdx by @mhetrick https://codeberg.org/uzu/strudel/pull/941
|
||||||
|
- Update synths.mdx by @andresgottlieb https://codeberg.org/uzu/strudel/pull/984
|
||||||
|
- using strudel in your project guide + cleanup examples by @felixroos https://codeberg.org/uzu/strudel/pull/1006
|
||||||
|
- Document signals by @ilesinge https://codeberg.org/uzu/strudel/pull/1015
|
||||||
|
- improve tutorial + custom samples doc by @felixroos https://codeberg.org/uzu/strudel/pull/1053
|
||||||
|
- fix cr typo on first-sounds.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1068
|
||||||
|
- fix first sounds typo by @cleary https://codeberg.org/uzu/strudel/pull/1069
|
||||||
|
- add `<...>` to first-sounds.mdx recap by @cleary https://codeberg.org/uzu/strudel/pull/1070
|
||||||
|
- add nesting to `off` example variation in pattern-effects.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1075
|
||||||
|
- fix translation issue in first-effects.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1072
|
||||||
|
- add signals to recap in first-effects.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1073
|
||||||
|
- fix docs on alignment.mdx by @diegodorado https://codeberg.org/uzu/strudel/pull/1076
|
||||||
|
- fix little dub tune example by @lukad https://codeberg.org/uzu/strudel/pull/1104
|
||||||
|
- clarify `off` in pattern-effects.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1074
|
||||||
|
- Fixes drawPianoroll import in codemirror example by @giohappy https://codeberg.org/uzu/strudel/pull/1116
|
||||||
|
- Migrate tutorial fanchor by @felixroos https://codeberg.org/uzu/strudel/pull/1122
|
||||||
|
|
||||||
|
## internals
|
||||||
|
|
||||||
|
- remove cjs builds by @felixroos https://codeberg.org/uzu/strudel/pull/945
|
||||||
|
- controls refactoring: simplify exports by @felixroos https://codeberg.org/uzu/strudel/pull/962
|
||||||
|
- move canvas related helpers from core to new draw package by @felixroos https://codeberg.org/uzu/strudel/pull/971
|
||||||
|
- remove canvas, externalize samples, delete junk by @felixroos https://codeberg.org/uzu/strudel/pull/1003
|
||||||
|
- Improve performance of ! (replicate) by @yaxu https://codeberg.org/uzu/strudel/pull/1084
|
||||||
|
- Benchmarks by @yaxu https://codeberg.org/uzu/strudel/pull/1079
|
||||||
|
|
||||||
|
## fixes
|
||||||
|
|
||||||
|
- fix midi issue on firefox and added quote error by @Enelg52 https://codeberg.org/uzu/strudel/pull/936
|
||||||
|
- fix: pianoroll sorting by @felixroos https://codeberg.org/uzu/strudel/pull/938
|
||||||
|
- account for cps in midi time duration by @daslyfe https://codeberg.org/uzu/strudel/pull/954
|
||||||
|
- fix script importable packages (web + repl) by @felixroos https://codeberg.org/uzu/strudel/pull/957
|
||||||
|
- fix: reset global fx on pattern change by @felixroos https://codeberg.org/uzu/strudel/pull/960
|
||||||
|
- add debounce to logger by @felixroos https://codeberg.org/uzu/strudel/pull/968
|
||||||
|
- fix for transpose(): preserve hap value object structure by @eefano https://codeberg.org/uzu/strudel/pull/966
|
||||||
|
- fix: clear hydra on reset by @felixroos https://codeberg.org/uzu/strudel/pull/983
|
||||||
|
- little fix for withVal by @eefano https://codeberg.org/uzu/strudel/pull/980
|
||||||
|
- fix: share now shares what's visible instead of active by @felixroos https://codeberg.org/uzu/strudel/pull/985
|
||||||
|
- Fix pure mini highlight by @yaxu https://codeberg.org/uzu/strudel/pull/994
|
||||||
|
- fix: await injectPatternMethods by @felixroos https://codeberg.org/uzu/strudel/pull/1012
|
||||||
|
- update undocumented script by @felixroos https://codeberg.org/uzu/strudel/pull/1013
|
||||||
|
- eliminate chromium clock jitter by @felixroos https://codeberg.org/uzu/strudel/pull/1004
|
||||||
|
- Repl sync fixes by @daslyfe https://codeberg.org/uzu/strudel/pull/1014
|
||||||
|
- hotfix for 1017 by @daslyfe https://codeberg.org/uzu/strudel/pull/1020
|
||||||
|
- fix cyclist fizzling out by @felixroos https://codeberg.org/uzu/strudel/pull/1046
|
||||||
|
- Midi Time hotfix for scheduler updates by @daslyfe https://codeberg.org/uzu/strudel/pull/1047
|
||||||
|
- fix: do not reset cc input values on each eval by @felixroos https://codeberg.org/uzu/strudel/pull/1054
|
||||||
|
- Fix wchooseCycles not picking the whole pattern by @ilesinge https://codeberg.org/uzu/strudel/pull/1061
|
||||||
|
- fix OSC timing for recent scheduler updates by @daslyfe https://codeberg.org/uzu/strudel/pull/1062
|
||||||
|
- clarify license by @yaxu https://codeberg.org/uzu/strudel/pull/1064
|
||||||
|
- fix failing format test by @daslyfe https://codeberg.org/uzu/strudel/pull/1077
|
||||||
|
- fix: url parsing with extra params by @felixroos https://codeberg.org/uzu/strudel/pull/1083
|
||||||
|
- fix: csound + dough timing by @felixroos https://codeberg.org/uzu/strudel/pull/1086
|
||||||
|
- fix: missing events due to premature worklet cleanup by @felixroos https://codeberg.org/uzu/strudel/pull/1089
|
||||||
|
- Use sessionStorage for viewingPatternData and activePattern by @kasparsj https://codeberg.org/uzu/strudel/pull/1091
|
||||||
|
- osc: couple of fixes by @kasparsj https://codeberg.org/uzu/strudel/pull/1093
|
||||||
|
- web package fixes by @felixroos https://codeberg.org/uzu/strudel/pull/1044
|
||||||
|
- Fix audio worklets by @daslyfe https://codeberg.org/uzu/strudel/pull/1114
|
||||||
|
- fix: use full repl in web package by @felixroos https://codeberg.org/uzu/strudel/pull/1119
|
||||||
|
- [BUG FIX] Audio worklets sometimes dont load by @daslyfe https://codeberg.org/uzu/strudel/pull/1121
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
|
||||||
|
- @mhetrick made their first contribution https://codeberg.org/uzu/strudel/pull/941
|
||||||
|
- @eefano made their first contribution https://codeberg.org/uzu/strudel/pull/956
|
||||||
|
- @Enelg52 made their first contribution https://codeberg.org/uzu/strudel/pull/936
|
||||||
|
- @andresgottlieb made their first contribution https://codeberg.org/uzu/strudel/pull/984
|
||||||
|
- @cleary made their first contribution https://codeberg.org/uzu/strudel/pull/1068
|
||||||
|
- @diegodorado made their first contribution https://codeberg.org/uzu/strudel/pull/1076
|
||||||
|
- @lukad made their first contribution https://codeberg.org/uzu/strudel/pull/1104
|
||||||
|
- @giohappy made their first contribution https://codeberg.org/uzu/strudel/pull/1116
|
||||||
|
|
||||||
|
A huge thanks to all contributors!!!
|
||||||
|
|
||||||
|
## Packages
|
||||||
|
|
||||||
|
- @strudel/codemirror@1.1.0
|
||||||
|
- @strudel/core@1.1.0
|
||||||
|
- @strudel/csound@1.1.0
|
||||||
|
- @strudel/draw@1.1.0
|
||||||
|
- @strudel/embed@1.1.0
|
||||||
|
- hs2js@0.1.0
|
||||||
|
- @strudel/hydra@1.1.0
|
||||||
|
- @strudel/midi@1.1.0
|
||||||
|
- @strudel/mini@1.1.0
|
||||||
|
- @strudel/osc@1.1.0
|
||||||
|
- @strudel/repl@1.1.0
|
||||||
|
- @strudel/sampler@0.1.0
|
||||||
|
- @strudel/serial@1.1.0
|
||||||
|
- @strudel/soundfonts@1.1.0
|
||||||
|
- superdough@1.1.0
|
||||||
|
- @strudel/tidal@0.1.0
|
||||||
|
- @strudel/tonal@1.1.0
|
||||||
|
- @strudel/transpiler@1.1.0
|
||||||
|
- @strudel/web@1.1.0
|
||||||
|
- @strudel/webaudio@1.1.0
|
||||||
|
- @strudel/xen@1.1.0
|
||||||
|
|
||||||
|
**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v1.0.0...v1.1.0
|
||||||
@@ -0,0 +1,186 @@
|
|||||||
|
---
|
||||||
|
title: 'Release Notes v1.2.0'
|
||||||
|
description: ''
|
||||||
|
date: '2025-05-01'
|
||||||
|
tags: ['meta']
|
||||||
|
author: froos
|
||||||
|
---
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
|
||||||
|
## highlights
|
||||||
|
|
||||||
|
- [stepwise functions](https://strudel.cc/learn/stepwise/) ([PR](https://github.com/tidalcycles/strudel/pull/1262))
|
||||||
|
- [midimaps](https://strudel.cc/learn/input-output/#midimaps) ([PR](https://github.com/tidalcycles/strudel/pull/1274))
|
||||||
|
- [spectrum](https://strudel.cc/learn/visual-feedback/#spectrum) ([PR](https://github.com/tidalcycles/strudel/pull/1213))
|
||||||
|
- [mqtt](https://strudel.cc/learn/input-output/#mqtt) ([PR](https://github.com/tidalcycles/strudel/pull/1224))
|
||||||
|
- pulse oscillator (todo: https://github.com/tidalcycles/strudel/issues/1336) ([PR](https://github.com/tidalcycles/strudel/pull/1304))
|
||||||
|
- theme improvements
|
||||||
|
|
||||||
|
## breaking changes
|
||||||
|
|
||||||
|
- [breaking change] Sample signals from query onset, rather than midpoint by @yaxu in https://github.com/tidalcycles/strudel/pull/1278
|
||||||
|
- change behaviour of polymeter, and remove polymeterSteps by @yaxu in https://github.com/tidalcycles/strudel/pull/1302
|
||||||
|
- Polish, rename, and document stepwise functions by @yaxu in https://github.com/tidalcycles/strudel/pull/1262
|
||||||
|
|
||||||
|
### superdough
|
||||||
|
|
||||||
|
- feat: Create Pulse Oscillator with variable PWM by @daslyfe in https://github.com/tidalcycles/strudel/pull/1304
|
||||||
|
- add num samples (edited numbers) by @yaxu in https://github.com/tidalcycles/strudel/pull/1309
|
||||||
|
- Add num samples from 0 up to 20 by @yaxu in https://github.com/tidalcycles/strudel/pull/1310
|
||||||
|
- feat: add max polyphony feature for superdough by @daslyfe in https://github.com/tidalcycles/strudel/pull/1317
|
||||||
|
|
||||||
|
### docs
|
||||||
|
|
||||||
|
- doc: visual functions + refactor onPaint by @felixroos in https://github.com/tidalcycles/strudel/pull/1125
|
||||||
|
- Labeled statements doc by @felixroos in https://github.com/tidalcycles/strudel/pull/1126
|
||||||
|
- Correct spelling mistakes by @EdwardBetts in https://github.com/tidalcycles/strudel/pull/1183
|
||||||
|
- remove redundant example for cat, update snapshot by @kdiab in https://github.com/tidalcycles/strudel/pull/1189
|
||||||
|
- chore: Edit run locally instructions in README.md by @ChinoUkaegbu in https://github.com/tidalcycles/strudel/pull/1206
|
||||||
|
- suggested changes to voicings.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/1231
|
||||||
|
- Documentation for all/each, and bugfix for each by @yaxu in https://github.com/tidalcycles/strudel/pull/1233
|
||||||
|
- Update documentation for param value modification by @gillespi314 in https://github.com/tidalcycles/strudel/pull/1238
|
||||||
|
- fix docs for beat function by @daslyfe in https://github.com/tidalcycles/strudel/pull/1248
|
||||||
|
- understand voicings page by @felixroos in https://github.com/tidalcycles/strudel/pull/1230
|
||||||
|
- add reference package by @felixroos in https://github.com/tidalcycles/strudel/pull/1252
|
||||||
|
- Stepwise documentation tweaks, with mridangam samples by @yaxu in https://github.com/tidalcycles/strudel/pull/1275
|
||||||
|
- showcase tweaks by @yaxu in https://github.com/tidalcycles/strudel/pull/1291
|
||||||
|
- Signpost licenses for source code and samples a bit more, ref #1277 by @yaxu in https://github.com/tidalcycles/strudel/pull/1289
|
||||||
|
- Fix misplaced ending sentence by @makmanalp in https://github.com/tidalcycles/strudel/pull/1296
|
||||||
|
- Fix typo pattnr by @ReneNyffenegger in https://github.com/tidalcycles/strudel/pull/1316
|
||||||
|
- update docs to reflect import sounds tab change by @hpunq in https://github.com/tidalcycles/strudel/pull/1332
|
||||||
|
|
||||||
|
### ui improvements
|
||||||
|
|
||||||
|
- Udels (MultiFrame Strudel) Revisited by @daslyfe in https://github.com/tidalcycles/strudel/pull/1132
|
||||||
|
- Create audio target selector for OSC/Superdirt by @daslyfe in https://github.com/tidalcycles/strudel/pull/1160
|
||||||
|
- Add a search bar to the REPL Reference tab by @netux in https://github.com/tidalcycles/strudel/pull/1165
|
||||||
|
- Adding search bar (soundtab.jsx) by @Bubobubobubobubo in https://github.com/tidalcycles/strudel/pull/1185
|
||||||
|
- add 2 new ui settings by @felixroos in https://github.com/tidalcycles/strudel/pull/1200
|
||||||
|
- Theme glowup by @felixroos in https://github.com/tidalcycles/strudel/pull/1268
|
||||||
|
- Create Pattern Page Pagination by @daslyfe in https://github.com/tidalcycles/strudel/pull/1287
|
||||||
|
- feat: Theme improvements by @daslyfe in https://github.com/tidalcycles/strudel/pull/1295
|
||||||
|
- feat: new themes + theme improvements by @daslyfe in https://github.com/tidalcycles/strudel/pull/1326
|
||||||
|
- Add new "import-sounds" tab with explanation on folder import by @hpunq in https://github.com/tidalcycles/strudel/pull/1329
|
||||||
|
- Add Icon to import sample button by @daslyfe in https://github.com/tidalcycles/strudel/pull/1331
|
||||||
|
- better spacing in zen mode by @felixroos in https://github.com/tidalcycles/strudel/pull/1147
|
||||||
|
- Screenreader improvements by @yaxu in https://github.com/tidalcycles/strudel/pull/1158
|
||||||
|
- colorize console + tweak header by @felixroos in https://github.com/tidalcycles/strudel/pull/1203
|
||||||
|
- Menu Panel Improvements! by @daslyfe in https://github.com/tidalcycles/strudel/pull/1193
|
||||||
|
- Make panel hover behavior optional by @daslyfe in https://github.com/tidalcycles/strudel/pull/1199
|
||||||
|
- REPL: solo and sync configuration by @bthj in https://github.com/tidalcycles/strudel/pull/1214
|
||||||
|
- enhancement: make error messages easier to read by @daslyfe in https://github.com/tidalcycles/strudel/pull/1315
|
||||||
|
|
||||||
|
### mqtt
|
||||||
|
|
||||||
|
- MQTT support by @yaxu in https://github.com/tidalcycles/strudel/pull/1224
|
||||||
|
- MQTT - if password isn't provided, prompt for one by @yaxu in https://github.com/tidalcycles/strudel/pull/1249
|
||||||
|
- MQTT - support adding hap duration and cps metadata to JSON messages by @yaxu in https://github.com/tidalcycles/strudel/pull/1279
|
||||||
|
- make mqtt topic patternable by @yaxu in https://github.com/tidalcycles/strudel/pull/1280
|
||||||
|
- Bugfix: update mqtt connections dictionary by @yaxu in https://github.com/tidalcycles/strudel/pull/1281
|
||||||
|
- mqtt bugfix - connection check by @yaxu in https://github.com/tidalcycles/strudel/pull/1282
|
||||||
|
|
||||||
|
### new functions
|
||||||
|
|
||||||
|
- Add scramble and shuffle by @yaxu in https://github.com/tidalcycles/strudel/pull/1167
|
||||||
|
- polyJoin by @yaxu in https://github.com/tidalcycles/strudel/pull/1168
|
||||||
|
- Add seqPLoop from Tidal by @yaxu in https://github.com/tidalcycles/strudel/pull/1182
|
||||||
|
- add filter + filterWhen + within by @felixroos in https://github.com/tidalcycles/strudel/pull/1039
|
||||||
|
- Add bite function by @yaxu in https://github.com/tidalcycles/strudel/pull/1187
|
||||||
|
- markcss by @felixroos in https://github.com/tidalcycles/strudel/pull/1202
|
||||||
|
- "beat" function for "step sequencer" style rhythm notation by @daslyfe in https://github.com/tidalcycles/strudel/pull/1237
|
||||||
|
- Add s_zip for 'cat'-ing patterns together step-by-step, bugfix `steps` by @yaxu in https://github.com/tidalcycles/strudel/pull/1208
|
||||||
|
- "stretch" function (phase vocoder) by @daslyfe in https://github.com/tidalcycles/strudel/pull/1130
|
||||||
|
- add basic spectrum function by @felixroos in https://github.com/tidalcycles/strudel/pull/1213
|
||||||
|
- Add onKey function for custom key commands for patterns by @daslyfe in https://github.com/tidalcycles/strudel/pull/1235
|
||||||
|
- Add binary and binaryN by @heerman in https://github.com/tidalcycles/strudel/pull/1226
|
||||||
|
- midimaps by @felixroos in https://github.com/tidalcycles/strudel/pull/1274
|
||||||
|
- small feat: Add alias for segment and ribbon by @daslyfe in https://github.com/tidalcycles/strudel/pull/1314
|
||||||
|
- feat: Create scrub function for scrubbing an audio file by @daslyfe in https://github.com/tidalcycles/strudel/pull/1321
|
||||||
|
- feat: Improve gain curve by @daslyfe in https://github.com/tidalcycles/strudel/pull/1318
|
||||||
|
- Chop chop by @yaxu in https://github.com/tidalcycles/strudel/pull/1078
|
||||||
|
|
||||||
|
### more
|
||||||
|
|
||||||
|
- Make `all()` post-stack again, and add `each()` for pre-stack by @yaxu in https://github.com/tidalcycles/strudel/pull/1229
|
||||||
|
- Add stepBind, and some toplevel aliases for binds and withValue by @yaxu in https://github.com/tidalcycles/strudel/pull/1241
|
||||||
|
- Make cps patternable by @eefano in https://github.com/tidalcycles/strudel/pull/1001
|
||||||
|
- Allow wchooseCycles probabilities to be patterned by @yaxu in https://github.com/tidalcycles/strudel/pull/1292
|
||||||
|
- @strudel/sampler improvements by @felixroos in https://github.com/tidalcycles/strudel/pull/1288
|
||||||
|
|
||||||
|
### refactor
|
||||||
|
|
||||||
|
- expose comment commands by @felixroos in https://github.com/tidalcycles/strudel/pull/1136
|
||||||
|
- containerize/seperate out boolean checks for repl types/Repl logic into bespoke components. by @daslyfe in https://github.com/tidalcycles/strudel/pull/1163
|
||||||
|
- Improve + simplify neocyclist timing by @daslyfe in https://github.com/tidalcycles/strudel/pull/1164
|
||||||
|
- Make phaser control consistent with superdirt by @daslyfe in https://github.com/tidalcycles/strudel/pull/1178
|
||||||
|
- Revert "Make phaser control consistent with superdirt" by @daslyfe in https://github.com/tidalcycles/strudel/pull/1179
|
||||||
|
- make phaser control match superdirt by @daslyfe in https://github.com/tidalcycles/strudel/pull/1180
|
||||||
|
- refactor sampler by @felixroos in https://github.com/tidalcycles/strudel/pull/1101
|
||||||
|
- update lockfile + minor versions by @felixroos in https://github.com/tidalcycles/strudel/pull/1198
|
||||||
|
- Preserve tactus for 'degrade' and friends, and tidy up 'pick' and friends by @yaxu in https://github.com/tidalcycles/strudel/pull/1205
|
||||||
|
- Apply `all` function to individual patterns rather than final stack by @yaxu in https://github.com/tidalcycles/strudel/pull/1209
|
||||||
|
- Revert "Fix sometimes" by @yaxu in https://github.com/tidalcycles/strudel/pull/1267
|
||||||
|
- patchday by @felixroos in https://github.com/tidalcycles/strudel/pull/1264
|
||||||
|
- Rename repeat back to extend by @yaxu in https://github.com/tidalcycles/strudel/pull/1285
|
||||||
|
- Send delta in OSC message in seconds, to match tidal/superdirt by @yaxu in https://github.com/tidalcycles/strudel/pull/1323
|
||||||
|
|
||||||
|
### fixes
|
||||||
|
|
||||||
|
- Fix clock worker dependency path in module builds by @matthewkaney in https://github.com/tidalcycles/strudel/pull/1129
|
||||||
|
- Fix bug in Fraction.lcm by @yaxu in https://github.com/tidalcycles/strudel/pull/1133
|
||||||
|
- Fix tactus marking in mininotation by @yaxu in https://github.com/tidalcycles/strudel/pull/1144
|
||||||
|
- Fix loopAt tactus by @yaxu in https://github.com/tidalcycles/strudel/pull/1145
|
||||||
|
- Fix OSC clock jitter by @daslyfe in https://github.com/tidalcycles/strudel/pull/1157
|
||||||
|
- [CORS HOTFIX] by @daslyfe in https://github.com/tidalcycles/strudel/pull/1162
|
||||||
|
- Fixes fit so it works after a chop or slice by @yaxu in https://github.com/tidalcycles/strudel/pull/1171
|
||||||
|
- fix sample speed when using splice and fit with superdirt by @daslyfe in https://github.com/tidalcycles/strudel/pull/1172
|
||||||
|
- handle midin device not found error by @felixroos in https://github.com/tidalcycles/strudel/pull/1146
|
||||||
|
- Fix serial timing by @yaxu in https://github.com/tidalcycles/strudel/pull/1188
|
||||||
|
- Fix regression for d1, p1, p(n) by @yaxu in https://github.com/tidalcycles/strudel/pull/1227
|
||||||
|
- Fix sometimes by @yaxu in https://github.com/tidalcycles/strudel/pull/1243
|
||||||
|
- Fix sf2 timing by @felixroos in https://github.com/tidalcycles/strudel/pull/1272
|
||||||
|
- Fix "squeezejoin" and functions using it, including "bite" by @yaxu in https://github.com/tidalcycles/strudel/pull/1286
|
||||||
|
- Fixes inverted triangle wave by renaming it to "itri", making non-inverted "tri" by @yaxu in https://github.com/tidalcycles/strudel/pull/1283
|
||||||
|
- Hotfix: prevent undefined pattern code from crashing strudel on load by @daslyfe in https://github.com/tidalcycles/strudel/pull/1297
|
||||||
|
- Fix test error #1297 by @nkymut in https://github.com/tidalcycles/strudel/pull/1298
|
||||||
|
- bugfix zoom stepcount by @yaxu in https://github.com/tidalcycles/strudel/pull/1301
|
||||||
|
- bugfix: Allow single param to be used in the as function by @daslyfe in https://github.com/tidalcycles/strudel/pull/1312
|
||||||
|
- fix: replace empty spaces in registered sound keys by @daslyfe in https://github.com/tidalcycles/strudel/pull/1319
|
||||||
|
- FIX: Multichannel Audio by @daslyfe in https://github.com/tidalcycles/strudel/pull/1322
|
||||||
|
- fix: udels header by @daslyfe in https://github.com/tidalcycles/strudel/pull/1325
|
||||||
|
- fix: disable astro toolbar by default by @daslyfe in https://github.com/tidalcycles/strudel/pull/1324
|
||||||
|
- FIX: sound import order by @daslyfe in https://github.com/tidalcycles/strudel/pull/1333`
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
|
||||||
|
- @EdwardBetts made their first contribution in https://github.com/tidalcycles/strudel/pull/1183
|
||||||
|
- @netux made their first contribution in https://github.com/tidalcycles/strudel/pull/1165
|
||||||
|
- @kdiab made their first contribution in https://github.com/tidalcycles/strudel/pull/1189
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v1.1.0...v1.1.1
|
||||||
|
|
||||||
|
## packages
|
||||||
|
|
||||||
|
- @strudel/codemirror@1.2.0
|
||||||
|
- @strudel/core@1.2.0
|
||||||
|
- @strudel/csound@1.2.0
|
||||||
|
- @strudel/draw@1.2.0
|
||||||
|
- @strudel/gamepad@1.2.0
|
||||||
|
- @strudel/hydra@1.2.0
|
||||||
|
- @strudel/midi@1.2.0
|
||||||
|
- @strudel/mini@1.2.0
|
||||||
|
- @strudel/motion@1.2.0
|
||||||
|
- @strudel/mqtt@1.2.0
|
||||||
|
- @strudel/osc@1.2.0
|
||||||
|
- @strudel/reference@1.2.0
|
||||||
|
- @strudel/repl@1.2.0
|
||||||
|
- @strudel/sampler@0.2.0
|
||||||
|
- @strudel/serial@1.2.0
|
||||||
|
- @strudel/soundfonts@1.2.0
|
||||||
|
- superdough@1.2.0
|
||||||
|
- @strudel/tonal@1.2.0
|
||||||
|
- @strudel/transpiler@1.2.0
|
||||||
|
- @strudel/web@1.2.0
|
||||||
|
- @strudel/webaudio@1.2.0
|
||||||
|
- @strudel/xen@1.2.0
|
||||||
@@ -20,7 +20,7 @@ export function WelcomeTab({ context }) {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
{/* To learn more about what this all means, check out the{' '} */}
|
{/* To learn more about what this all means, check out the{' '} */}
|
||||||
To get started, check out the
|
To get started, check out the{' '}
|
||||||
<a href={`${baseNoTrailing}/workshop/getting-started/`} target="_blank">
|
<a href={`${baseNoTrailing}/workshop/getting-started/`} target="_blank">
|
||||||
interactive tutorial
|
interactive tutorial
|
||||||
</a>
|
</a>
|
||||||
@@ -43,7 +43,7 @@ export function WelcomeTab({ context }) {
|
|||||||
</a>
|
</a>
|
||||||
. You can find the source code at{' '}
|
. You can find the source code at{' '}
|
||||||
<a href="https://codeberg.org/uzu/strudel" target="_blank">
|
<a href="https://codeberg.org/uzu/strudel" target="_blank">
|
||||||
github
|
codeberg
|
||||||
</a>
|
</a>
|
||||||
. You can also find <a href="https://github.com/felixroos/dough-samples/blob/main/README.md">licensing info</a>{' '}
|
. You can also find <a href="https://github.com/felixroos/dough-samples/blob/main/README.md">licensing info</a>{' '}
|
||||||
for the default sound banks there. Please consider to{' '}
|
for the default sound banks there. Please consider to{' '}
|
||||||
|
|||||||
Reference in New Issue
Block a user