mirror of
https://github.com/eliasstepanik/strudel.git
synced 2026-01-11 13:48:40 +00:00
Merge pull request #461 from bwagner/main
FIXES: Warning about jsxBracketSameLine deprecation
This commit is contained in:
commit
924e8a764a
@ -7,7 +7,7 @@
|
||||
"jsxSingleQuote": false,
|
||||
"trailingComma": "all",
|
||||
"bracketSpacing": true,
|
||||
"jsxBracketSameLine": false,
|
||||
"bracketSameLine": false,
|
||||
"arrowParens": "always",
|
||||
"proseWrap": "preserve",
|
||||
"htmlWhitespaceSensitivity": "css",
|
||||
|
||||
@ -71,3 +71,5 @@ You can freely mix JS patterns, mini patterns and values! For example, this patt
|
||||
|
||||
While mini notation is almost always shorter, it only has a handful of modifiers: \* / ! @.
|
||||
When using JS patterns, there is a lot more you can do.
|
||||
|
||||
What [Pattern Constructors](/learn/factories) does Strudel offer?
|
||||
|
||||
@ -160,3 +160,5 @@ x(sine.range(0, 200)).y(cosine.range(0, 200));
|
||||
/>
|
||||
|
||||
Note that these params will not do anything until you give them meaning in your custom output!
|
||||
|
||||
From modifying parameters we transition to the concept of [Signals](/learn/signals).
|
||||
|
||||
@ -31,3 +31,5 @@ import { JsDoc } from '../../docs/JsDoc';
|
||||
## stut
|
||||
|
||||
<JsDoc client:idle name="stut" h={0} />
|
||||
|
||||
There are also [Tonal Modifiers](/learn/tonal).
|
||||
|
||||
@ -59,3 +59,5 @@ import { JsDoc } from '../../docs/JsDoc';
|
||||
## invert
|
||||
|
||||
<JsDoc client:idle name="invert" h={0} />
|
||||
|
||||
After Conditional Modifiers, let's see what [Accumulation Modifiers](/learn/accumulation) have to offer.
|
||||
|
||||
@ -150,3 +150,5 @@ In the future, the integration could be improved by passing all patterned contro
|
||||
This could work by a unique [channel](https://kunstmusik.github.io/icsc2022-csound-web/tutorial2-interacting-with-csound/#step-4---writing-continuous-data-channels)
|
||||
for each value. Channels could be read [like this](https://github.com/csound/csound/blob/master/Android/CsoundForAndroid/CsoundAndroidExamples/src/main/res/raw/multitouch_xy.csd).
|
||||
Also, it might make sense to have a standard library of csound instruments for strudel's effects.
|
||||
|
||||
Now, let's dive into the [Functional JavaScript API](/functions/intro)
|
||||
|
||||
@ -146,3 +146,5 @@ global effects use the same chain for all events of the same orbit:
|
||||
## roomsize
|
||||
|
||||
<JsDoc client:idle name="roomsize" h={0} />
|
||||
|
||||
Next, we'll look at strudel's support for [Csound](/learn/csound).
|
||||
|
||||
@ -64,3 +64,5 @@ As a chained function:
|
||||
## run
|
||||
|
||||
<JsDoc client:idle name="run" h={0} punchcard />
|
||||
|
||||
After Pattern Constructors, let's see what [Time Modifiers](/learn/time-modifiers) are available.
|
||||
|
||||
@ -69,3 +69,5 @@ The following functions can be used with [SuperDirt](https://github.com/musikinf
|
||||
Please refer to [Tidal Docs](https://tidalcycles.org/) for more info.
|
||||
|
||||
<br />
|
||||
|
||||
But can we use Strudel [offline](/learn/pwa)?
|
||||
|
||||
@ -235,3 +235,5 @@ Starting with this one `n`, can you make a _pattern string_ that uses every sing
|
||||
<MiniRepl client:idle tune={`n("60")`} />
|
||||
|
||||
<br />
|
||||
|
||||
Next: How do [Samples](/learn/samples) play into this?
|
||||
|
||||
@ -7,3 +7,5 @@ layout: ../../layouts/MainLayout.astro
|
||||
|
||||
You can use Strudel even without a network! When you first visit the [Strudel REPL](strudel.tidalcycles.org/),
|
||||
your browser will download the whole web app including documentation.
|
||||
|
||||
Ok, what are [Patterns](/technical-manual/patterns) all about?
|
||||
|
||||
@ -322,3 +322,5 @@ Sampler effects are functions that can be used to change the behaviour of sample
|
||||
### speed
|
||||
|
||||
<JsDoc client:idle name="speed" h={0} />
|
||||
|
||||
After samples, let's see what [Synths](/learn/synths) afford us.
|
||||
|
||||
@ -106,3 +106,5 @@ These methods add random behavior to your Patterns.
|
||||
## always
|
||||
|
||||
<JsDoc client:idle name="Pattern.always" h={0} />
|
||||
|
||||
Next up: [Conditional Modifiers](/learn/conditional-modifiers)
|
||||
|
||||
@ -144,3 +144,5 @@ You can get the same tempo as tidal with:
|
||||
```
|
||||
note("c a f e").fast(.5625);
|
||||
```
|
||||
|
||||
Next up: the [REPL](/technical-manual/repl)
|
||||
|
||||
@ -105,3 +105,5 @@ Some of these have equivalent operators in the Mini Notation:
|
||||
## ribbon
|
||||
|
||||
<JsDoc client:idle name="ribbon" h={0} />
|
||||
|
||||
Apart from modifying time, there are ways to [Control Parameters](functions/value-modifiers).
|
||||
|
||||
@ -70,3 +70,5 @@ Together with layer, struct and voicings, this can be used to create a basic bac
|
||||
x => x.rootNotes(2).note().s('sawtooth').cutoff(800)
|
||||
)`}
|
||||
/>
|
||||
|
||||
So far, we've stayed within the browser. [MIDI and OSC](/learn/input-output) are ways to break out of it.
|
||||
|
||||
@ -45,3 +45,5 @@ This makes way for other ways to align the pattern, and several are already defi
|
||||
- `trigzero` is similar to `trig`, but the pattern is 'triggered' from its very first cycle, rather than from the current cycle. `trig` and `trigzero` therefore only give different results where the leftmost pattern differs from one cycle to the next.
|
||||
|
||||
We will save going deeper into the background, design and practicalities of these alignment functions for future publications. However in the next section, we take them as a case study for looking at the different design affordances offered by Haskell to Tidal, and JavaScript to Strudel.
|
||||
|
||||
Ok, so how do Strudel and Tidal [compare](/learn/strudel-vs-tidal)?
|
||||
|
||||
@ -74,3 +74,5 @@ Documentation is written with [jsdoc](https://jsdoc.app/) comments. Example:
|
||||
- To regenerate the `doc.json` file manually, run `npm run jsdoc-json`
|
||||
- The file is used by the `JsDoc` component to find the documentation by name
|
||||
- Also, it is used for the `examples.test.mjs` snapshot test
|
||||
|
||||
How does Strudel do its [Testing](/technical-manual/testing)?
|
||||
|
||||
@ -37,3 +37,5 @@ Each event has a value, a begin time and an end time, where time is represented
|
||||
Note that the query function is not just a way to access a pattern, but true to the principles of functional programming, is the pattern itself. This means that in theory there is no way to change a pattern, it is opaque as a pure function. In practice though, Strudel and Tidal are all about transforming patterns, so how is this done? The answer is, by replacing the pattern with a new one, that calls the old one. This new one is only able to manipulate the query before passing it to the old pattern, and manipulate the results from it before returning them to caller. But, this is enough to support all the temporal and structural manipulations provided by Strudel (and Tidal's) extensive library of functions.
|
||||
|
||||
The above examples do not represent how Strudel is used in practice. In the live coding editor, the user only has to type in the pattern itself, the querying will be handled by the scheduler. The scheduler will repeatedly query the pattern for events, which are then scheduled as sound synthesis or other event triggers.
|
||||
|
||||
Can we [align](/technical-manual/alignment) patterns?
|
||||
|
||||
@ -186,3 +186,5 @@ function onTrigger(hap, deadline, duration) {
|
||||
```
|
||||
|
||||
The above example will create an `OscillatorNode` for each event, where the frequency is controlled by the `note` param. In essence, this is how the WebAudio API output of Strudel works, only with many more parameters to control synths, samples and effects.
|
||||
|
||||
I want to help, how do I contribute to the [Docs](/technical-manual/docs)?
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user