mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-11 13:48:34 +00:00
the big rename: @strudel.cycles/* -> @strudel/*
This commit is contained in:
parent
b10612da5c
commit
96bafa7f0b
@ -114,7 +114,7 @@ You can run the same check with `pnpm check`
|
|||||||
## Package Workflow
|
## Package Workflow
|
||||||
|
|
||||||
The project is split into multiple [packages](https://github.com/tidalcycles/strudel/tree/main/packages) with independent versioning.
|
The project is split into multiple [packages](https://github.com/tidalcycles/strudel/tree/main/packages) with independent versioning.
|
||||||
When you run `pnpm i` on the root folder, [pnpm workspaces](https://pnpm.io/workspaces) will install all dependencies of all subpackages. This will allow any js file to import `@strudel.cycles/<package-name>` to get the local version,
|
When you run `pnpm i` on the root folder, [pnpm workspaces](https://pnpm.io/workspaces) will install all dependencies of all subpackages. This will allow any js file to import `@strudel/<package-name>` to get the local version,
|
||||||
allowing to develop multiple packages at the same time.
|
allowing to develop multiple packages at the same time.
|
||||||
|
|
||||||
## Package Publishing
|
## Package Publishing
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
/>
|
/>
|
||||||
<div id="output"></div>
|
<div id="output"></div>
|
||||||
<script type="module">
|
<script type="module">
|
||||||
const strudel = await import('https://cdn.skypack.dev/@strudel.cycles/core@0.6.8');
|
const strudel = await import('https://cdn.skypack.dev/@strudel/core@0.6.8');
|
||||||
Object.assign(window, strudel); // assign all strudel functions to global scope to use with eval
|
Object.assign(window, strudel); // assign all strudel functions to global scope to use with eval
|
||||||
const input = document.getElementById('text');
|
const input = document.getElementById('text');
|
||||||
const getEvents = () => {
|
const getEvents = () => {
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
/>
|
/>
|
||||||
<canvas id="canvas"></canvas>
|
<canvas id="canvas"></canvas>
|
||||||
<script type="module">
|
<script type="module">
|
||||||
const strudel = await import('https://cdn.skypack.dev/@strudel.cycles/core@0.6.8');
|
const strudel = await import('https://cdn.skypack.dev/@strudel/core@0.6.8');
|
||||||
// this adds all strudel functions to the global scope, to be used by eval
|
// this adds all strudel functions to the global scope, to be used by eval
|
||||||
Object.assign(window, strudel);
|
Object.assign(window, strudel);
|
||||||
// setup elements
|
// setup elements
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
import { StrudelMirror } from '@strudel/codemirror';
|
import { StrudelMirror } from '@strudel/codemirror';
|
||||||
import { funk42 } from './tunes';
|
import { funk42 } from './tunes';
|
||||||
import { drawPianoroll, evalScope, controls } from '@strudel.cycles/core';
|
import { drawPianoroll, evalScope, controls } from '@strudel/core';
|
||||||
import './style.css';
|
import './style.css';
|
||||||
import { initAudioOnFirstClick } from '@strudel.cycles/webaudio';
|
import { initAudioOnFirstClick } from '@strudel/webaudio';
|
||||||
import { transpiler } from '@strudel.cycles/transpiler';
|
import { transpiler } from '@strudel/transpiler';
|
||||||
import { getAudioContext, webaudioOutput, registerSynthSounds } from '@strudel.cycles/webaudio';
|
import { getAudioContext, webaudioOutput, registerSynthSounds } from '@strudel/webaudio';
|
||||||
import { registerSoundfonts } from '@strudel.cycles/soundfonts';
|
import { registerSoundfonts } from '@strudel/soundfonts';
|
||||||
|
|
||||||
// init canvas
|
// init canvas
|
||||||
const canvas = document.getElementById('roll');
|
const canvas = document.getElementById('roll');
|
||||||
@ -26,10 +26,10 @@ const editor = new StrudelMirror({
|
|||||||
initAudioOnFirstClick(); // needed to make the browser happy (don't await this here..)
|
initAudioOnFirstClick(); // needed to make the browser happy (don't await this here..)
|
||||||
const loadModules = evalScope(
|
const loadModules = evalScope(
|
||||||
controls,
|
controls,
|
||||||
import('@strudel.cycles/core'),
|
import('@strudel/core'),
|
||||||
import('@strudel.cycles/mini'),
|
import('@strudel/mini'),
|
||||||
import('@strudel.cycles/tonal'),
|
import('@strudel/tonal'),
|
||||||
import('@strudel.cycles/webaudio'),
|
import('@strudel/webaudio'),
|
||||||
);
|
);
|
||||||
await Promise.all([loadModules, registerSynthSounds(), registerSoundfonts()]);
|
await Promise.all([loadModules, registerSynthSounds(), registerSoundfonts()]);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -13,11 +13,11 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/codemirror": "workspace:*",
|
"@strudel/codemirror": "workspace:*",
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/mini": "workspace:*",
|
"@strudel/mini": "workspace:*",
|
||||||
"@strudel.cycles/soundfonts": "workspace:*",
|
"@strudel/soundfonts": "workspace:*",
|
||||||
"@strudel.cycles/tonal": "workspace:*",
|
"@strudel/tonal": "workspace:*",
|
||||||
"@strudel.cycles/transpiler": "workspace:*",
|
"@strudel/transpiler": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*"
|
"@strudel/webaudio": "workspace:*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { controls, repl, evalScope } from '@strudel.cycles/core';
|
import { controls, repl, evalScope } from '@strudel/core';
|
||||||
import { getAudioContext, webaudioOutput, initAudioOnFirstClick } from '@strudel.cycles/webaudio';
|
import { getAudioContext, webaudioOutput, initAudioOnFirstClick } from '@strudel/webaudio';
|
||||||
import { transpiler } from '@strudel.cycles/transpiler';
|
import { transpiler } from '@strudel/transpiler';
|
||||||
import tune from './tune.mjs';
|
import tune from './tune.mjs';
|
||||||
|
|
||||||
const ctx = getAudioContext();
|
const ctx = getAudioContext();
|
||||||
@ -10,10 +10,10 @@ initAudioOnFirstClick();
|
|||||||
|
|
||||||
evalScope(
|
evalScope(
|
||||||
controls,
|
controls,
|
||||||
import('@strudel.cycles/core'),
|
import('@strudel/core'),
|
||||||
import('@strudel.cycles/mini'),
|
import('@strudel/mini'),
|
||||||
import('@strudel.cycles/webaudio'),
|
import('@strudel/webaudio'),
|
||||||
import('@strudel.cycles/tonal'),
|
import('@strudel/tonal'),
|
||||||
);
|
);
|
||||||
|
|
||||||
const { evaluate } = repl({
|
const { evaluate } = repl({
|
||||||
|
|||||||
@ -13,10 +13,10 @@
|
|||||||
"vite": "^5.0.10"
|
"vite": "^5.0.10"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/mini": "workspace:*",
|
"@strudel/mini": "workspace:*",
|
||||||
"@strudel.cycles/transpiler": "workspace:*",
|
"@strudel/transpiler": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*",
|
"@strudel/webaudio": "workspace:*",
|
||||||
"@strudel.cycles/tonal": "workspace:*"
|
"@strudel/tonal": "workspace:*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
14
package.json
14
package.json
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/monorepo",
|
"name": "@strudel/monorepo",
|
||||||
"version": "0.5.0",
|
"version": "0.5.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Port of tidalcycles to javascript",
|
"description": "Port of tidalcycles to javascript",
|
||||||
@ -45,12 +45,12 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://strudel.cc",
|
"homepage": "https://strudel.cc",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/mini": "workspace:*",
|
"@strudel/mini": "workspace:*",
|
||||||
"@strudel.cycles/tonal": "workspace:*",
|
"@strudel/tonal": "workspace:*",
|
||||||
"@strudel.cycles/transpiler": "workspace:*",
|
"@strudel/transpiler": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*",
|
"@strudel/webaudio": "workspace:*",
|
||||||
"@strudel.cycles/xen": "workspace:*"
|
"@strudel/xen": "workspace:*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"dependency-tree": "^10.0.9",
|
"dependency-tree": "^10.0.9",
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
# Packages
|
# Packages
|
||||||
|
|
||||||
Each folder represents one of the @strudel.cycles/* packages [published to npm](https://www.npmjs.com/org/strudel.cycles).
|
Each folder represents one of the @strudel/* packages [published to npm](https://www.npmjs.com/org/strudel).
|
||||||
|
|
||||||
To understand how those pieces connect, refer to the [Technical Manual](https://github.com/tidalcycles/strudel/wiki/Technical-Manual) or the individual READMEs.
|
To understand how those pieces connect, refer to the [Technical Manual](https://github.com/tidalcycles/strudel/wiki/Technical-Manual) or the individual READMEs.
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import {
|
|||||||
lineNumbers,
|
lineNumbers,
|
||||||
drawSelection,
|
drawSelection,
|
||||||
} from '@codemirror/view';
|
} from '@codemirror/view';
|
||||||
import { Pattern, Drawer, repl, cleanupDraw } from '@strudel.cycles/core';
|
import { Pattern, Drawer, repl, cleanupDraw } from '@strudel/core';
|
||||||
import { isAutoCompletionEnabled } from './autocomplete.mjs';
|
import { isAutoCompletionEnabled } from './autocomplete.mjs';
|
||||||
import { isTooltipEnabled } from './tooltip.mjs';
|
import { isTooltipEnabled } from './tooltip.mjs';
|
||||||
import { flash, isFlashEnabled } from './flash.mjs';
|
import { flash, isFlashEnabled } from './flash.mjs';
|
||||||
|
|||||||
@ -45,7 +45,7 @@
|
|||||||
"@replit/codemirror-emacs": "^6.0.1",
|
"@replit/codemirror-emacs": "^6.0.1",
|
||||||
"@replit/codemirror-vim": "^6.1.0",
|
"@replit/codemirror-vim": "^6.1.0",
|
||||||
"@replit/codemirror-vscode-keymap": "^6.0.2",
|
"@replit/codemirror-vscode-keymap": "^6.0.2",
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@uiw/codemirror-themes": "^4.21.21",
|
"@uiw/codemirror-themes": "^4.21.21",
|
||||||
"@uiw/codemirror-themes-all": "^4.21.21",
|
"@uiw/codemirror-themes-all": "^4.21.21",
|
||||||
"nanostores": "^0.9.5"
|
"nanostores": "^0.9.5"
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { ref, pure } from '@strudel.cycles/core';
|
import { ref, pure } from '@strudel/core';
|
||||||
import { WidgetType, ViewPlugin, Decoration } from '@codemirror/view';
|
import { WidgetType, ViewPlugin, Decoration } from '@codemirror/view';
|
||||||
import { StateEffect, StateField } from '@codemirror/state';
|
import { StateEffect, StateField } from '@codemirror/state';
|
||||||
|
|
||||||
|
|||||||
@ -1,19 +1,17 @@
|
|||||||
# @strudel.cycles/core
|
# @strudel/core
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/core](https://www.npmjs.com/package/@strudel/core).
|
|
||||||
|
|
||||||
This package contains the bare essence of strudel.
|
This package contains the bare essence of strudel.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm i @strudel.cycles/core --save
|
npm i @strudel/core --save
|
||||||
```
|
```
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import { sequence } from '@strudel.cycles/core';
|
import { sequence } from '@strudel/core';
|
||||||
|
|
||||||
const pattern = sequence('a', ['b', 'c']);
|
const pattern = sequence('a', ['b', 'c']);
|
||||||
|
|
||||||
@ -35,7 +33,7 @@ b: 3/2 - 7/4
|
|||||||
c: 7/4 - 2
|
c: 7/4 - 2
|
||||||
```
|
```
|
||||||
|
|
||||||
- [play with @strudel.cycles/core on codesandbox](https://codesandbox.io/s/strudel-core-test-forked-9ywhv7?file=/src/index.js).
|
- [play with @strudel/core on codesandbox](https://codesandbox.io/s/strudel-core-test-forked-9ywhv7?file=/src/index.js).
|
||||||
- [open color pattern example](https://raw.githack.com/tidalcycles/strudel/main/packages/core/examples/canvas.html)
|
- [open color pattern example](https://raw.githack.com/tidalcycles/strudel/main/packages/core/examples/canvas.html)
|
||||||
- [open minimal repl example](https://raw.githack.com/tidalcycles/strudel/main/packages/core/examples/vanilla.html)
|
- [open minimal repl example](https://raw.githack.com/tidalcycles/strudel/main/packages/core/examples/vanilla.html)
|
||||||
- [open minimal vite example](./examples/vite-vanilla-repl/)
|
- [open minimal vite example](./examples/vite-vanilla-repl/)
|
||||||
@ -30,12 +30,12 @@ export { default as drawLine } from './drawLine.mjs';
|
|||||||
// below won't work with runtime.mjs (json import fails)
|
// below won't work with runtime.mjs (json import fails)
|
||||||
/* import * as p from './package.json';
|
/* import * as p from './package.json';
|
||||||
export const version = p.version; */
|
export const version = p.version; */
|
||||||
logger('🌀 @strudel.cycles/core loaded 🌀');
|
logger('🌀 @strudel/core loaded 🌀');
|
||||||
if (globalThis._strudelLoaded) {
|
if (globalThis._strudelLoaded) {
|
||||||
console.warn(
|
console.warn(
|
||||||
`@strudel.cycles/core was loaded more than once...
|
`@strudel/core was loaded more than once...
|
||||||
This might happen when you have multiple versions of strudel installed.
|
This might happen when you have multiple versions of strudel installed.
|
||||||
Please check with "npm ls @strudel.cycles/core".`,
|
Please check with "npm ls @strudel/core".`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
globalThis._strudelLoaded = true;
|
globalThis._strudelLoaded = true;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/core",
|
"name": "@strudel/core",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Port of Tidal Cycles to JavaScript",
|
"description": "Port of Tidal Cycles to JavaScript",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
|
|||||||
@ -1154,8 +1154,8 @@ export function isPattern(thing) {
|
|||||||
/* if (!thing instanceof Pattern) {
|
/* if (!thing instanceof Pattern) {
|
||||||
console.warn(
|
console.warn(
|
||||||
`Found Pattern that fails "instanceof Pattern" check.
|
`Found Pattern that fails "instanceof Pattern" check.
|
||||||
This may happen if you are using multiple versions of @strudel.cycles/core.
|
This may happen if you are using multiple versions of @strudel/core.
|
||||||
Please check by running "npm ls @strudel.cycles/core".`,
|
Please check by running "npm ls @strudel/core".`,
|
||||||
);
|
);
|
||||||
console.log(thing);
|
console.log(thing);
|
||||||
} */
|
} */
|
||||||
|
|||||||
@ -1,3 +1 @@
|
|||||||
# @strudel.cycles/csound
|
# @strudel/csound
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/csound](https://www.npmjs.com/package/@strudel/csound).
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { getFrequency, logger, register } from '@strudel.cycles/core';
|
import { getFrequency, logger, register } from '@strudel/core';
|
||||||
import { getAudioContext } from '@strudel.cycles/webaudio';
|
import { getAudioContext } from '@strudel/webaudio';
|
||||||
import csd from './project.csd?raw';
|
import csd from './project.csd?raw';
|
||||||
// import livecodeOrc from './livecode.orc?raw';
|
// import livecodeOrc from './livecode.orc?raw';
|
||||||
import presetsOrc from './presets.orc?raw';
|
import presetsOrc from './presets.orc?raw';
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/csound",
|
"name": "@strudel/csound",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "csound bindings for strudel",
|
"description": "csound bindings for strudel",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
@ -33,8 +33,8 @@
|
|||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@csound/browser": "6.18.7",
|
"@csound/browser": "6.18.7",
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*"
|
"@strudel/webaudio": "workspace:*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vite": "^5.0.10"
|
"vite": "^5.0.10"
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Invoke } from './utils.mjs';
|
import { Invoke } from './utils.mjs';
|
||||||
import { Pattern, noteToMidi } from '@strudel.cycles/core';
|
import { Pattern, noteToMidi } from '@strudel/core';
|
||||||
|
|
||||||
const ON_MESSAGE = 0x90;
|
const ON_MESSAGE = 0x90;
|
||||||
const OFF_MESSAGE = 0x80;
|
const OFF_MESSAGE = 0x80;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { parseNumeral, Pattern } from '@strudel.cycles/core';
|
import { parseNumeral, Pattern } from '@strudel/core';
|
||||||
import { Invoke } from './utils.mjs';
|
import { Invoke } from './utils.mjs';
|
||||||
|
|
||||||
Pattern.prototype.osc = function () {
|
Pattern.prototype.osc = function () {
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
"url": "https://github.com/tidalcycles/strudel/issues"
|
"url": "https://github.com/tidalcycles/strudel/issues"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@tauri-apps/api": "^1.5.3"
|
"@tauri-apps/api": "^1.5.3"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme"
|
"homepage": "https://github.com/tidalcycles/strudel#readme"
|
||||||
|
|||||||
@ -1,15 +1,13 @@
|
|||||||
# @strudel.cycles/embed
|
# @strudel/embed
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/embed](https://www.npmjs.com/package/@strudel/embed).
|
|
||||||
|
|
||||||
This package contains a embeddable web component for the Strudel REPL.
|
This package contains a embeddable web component for the Strudel REPL.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Either install with `npm i @strudel.cycles/embed` or just use a cdn to import the script:
|
Either install with `npm i @strudel/embed` or just use a cdn to import the script:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="https://unpkg.com/@strudel.cycles/embed@latest"></script>
|
<script src="https://unpkg.com/@strudel/embed@latest"></script>
|
||||||
<strudel-repl>
|
<strudel-repl>
|
||||||
<!--
|
<!--
|
||||||
note(`[[e5 [b4 c5] d5 [c5 b4]]
|
note(`[[e5 [b4 c5] d5 [c5 b4]]
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/embed",
|
"name": "@strudel/embed",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Embeddable Web Component to load a Strudel REPL into an iframe",
|
"description": "Embeddable Web Component to load a Strudel REPL into an iframe",
|
||||||
"main": "embed.js",
|
"main": "embed.js",
|
||||||
|
|||||||
@ -27,7 +27,7 @@ npm i @strudel/hydra
|
|||||||
Then add the import to your evalScope:
|
Then add the import to your evalScope:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import { evalScope } from '@strudel.cycles/core';
|
import { evalScope } from '@strudel/core';
|
||||||
|
|
||||||
evalScope(
|
evalScope(
|
||||||
import('@strudel/hydra')
|
import('@strudel/hydra')
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { getDrawContext } from '@strudel.cycles/core';
|
import { getDrawContext } from '@strudel/core';
|
||||||
|
|
||||||
let latestOptions;
|
let latestOptions;
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"hydra-synth": "^1.3.29"
|
"hydra-synth": "^1.3.29"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
# @strudel.cycles/midi
|
# @strudel/midi
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/midi](https://www.npmjs.com/package/@strudel/midi).
|
|
||||||
|
|
||||||
This package adds midi functionality to strudel Patterns.
|
This package adds midi functionality to strudel Patterns.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm i @strudel.cycles/midi --save
|
npm i @strudel/midi --save
|
||||||
```
|
```
|
||||||
|
|||||||
@ -5,8 +5,8 @@ This program is free software: you can redistribute it and/or modify it under th
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import * as _WebMidi from 'webmidi';
|
import * as _WebMidi from 'webmidi';
|
||||||
import { Pattern, isPattern, logger, ref } from '@strudel.cycles/core';
|
import { Pattern, isPattern, logger, ref } from '@strudel/core';
|
||||||
import { noteToMidi } from '@strudel.cycles/core';
|
import { noteToMidi } from '@strudel/core';
|
||||||
import { Note } from 'webmidi';
|
import { Note } from 'webmidi';
|
||||||
// if you use WebMidi from outside of this package, make sure to import that instance:
|
// if you use WebMidi from outside of this package, make sure to import that instance:
|
||||||
export const { WebMidi } = _WebMidi;
|
export const { WebMidi } = _WebMidi;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/midi",
|
"name": "@strudel/midi",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Midi API for strudel",
|
"description": "Midi API for strudel",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
@ -29,8 +29,8 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*",
|
"@strudel/webaudio": "workspace:*",
|
||||||
"webmidi": "^3.1.8"
|
"webmidi": "^3.1.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@ -1,19 +1,17 @@
|
|||||||
# @strudel.cycles/mini
|
# @strudel/mini
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/mini](https://www.npmjs.com/package/@strudel/mini).
|
|
||||||
|
|
||||||
This package contains the mini notation parser and pattern generator.
|
This package contains the mini notation parser and pattern generator.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm i @strudel.cycles/mini --save
|
npm i @strudel/mini --save
|
||||||
```
|
```
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import { mini } from '@strudel.cycles/mini';
|
import { mini } from '@strudel/mini';
|
||||||
|
|
||||||
const pattern = mini('a [b c*2]');
|
const pattern = mini('a [b c*2]');
|
||||||
|
|
||||||
@ -30,7 +28,7 @@ yields:
|
|||||||
(7/8 -> 1/1, 7/8 -> 1/1, c)
|
(7/8 -> 1/1, 7/8 -> 1/1, c)
|
||||||
```
|
```
|
||||||
|
|
||||||
[Play with @strudel.cycles/mini codesandbox](https://codesandbox.io/s/strudel-mini-example-oe9wcu?file=/src/index.js)
|
[Play with @strudel/mini codesandbox](https://codesandbox.io/s/strudel-mini-example-oe9wcu?file=/src/index.js)
|
||||||
|
|
||||||
## Mini Notation API
|
## Mini Notation API
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@ This program is free software: you can redistribute it and/or modify it under th
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import * as krill from './krill-parser.js';
|
import * as krill from './krill-parser.js';
|
||||||
import * as strudel from '@strudel.cycles/core';
|
import * as strudel from '@strudel/core';
|
||||||
|
|
||||||
const randOffset = 0.0003;
|
const randOffset = 0.0003;
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/mini",
|
"name": "@strudel/mini",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Mini notation for strudel",
|
"description": "Mini notation for strudel",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
@ -32,7 +32,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*"
|
"@strudel/core": "workspace:*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"peggy": "^3.0.2",
|
"peggy": "^3.0.2",
|
||||||
|
|||||||
@ -5,7 +5,7 @@ This program is free software: you can redistribute it and/or modify it under th
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { getLeafLocation, getLeafLocations, mini, mini2ast } from '../mini.mjs';
|
import { getLeafLocation, getLeafLocations, mini, mini2ast } from '../mini.mjs';
|
||||||
import '@strudel.cycles/core/euclid.mjs';
|
import '@strudel/core/euclid.mjs';
|
||||||
import { describe, expect, it } from 'vitest';
|
import { describe, expect, it } from 'vitest';
|
||||||
|
|
||||||
describe('mini', () => {
|
describe('mini', () => {
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
# @strudel.cycles/osc
|
# @strudel/osc
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/osc](https://www.npmjs.com/package/@strudel/osc).
|
|
||||||
|
|
||||||
OSC output for strudel patterns! Currently only tested with super collider / super dirt.
|
OSC output for strudel patterns! Currently only tested with super collider / super dirt.
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ This program is free software: you can redistribute it and/or modify it under th
|
|||||||
|
|
||||||
import OSC from 'osc-js';
|
import OSC from 'osc-js';
|
||||||
|
|
||||||
import { logger, parseNumeral, Pattern } from '@strudel.cycles/core';
|
import { logger, parseNumeral, Pattern } from '@strudel/core';
|
||||||
|
|
||||||
let connection; // Promise<OSC>
|
let connection; // Promise<OSC>
|
||||||
function connect() {
|
function connect() {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/osc",
|
"name": "@strudel/osc",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "OSC messaging for strudel",
|
"description": "OSC messaging for strudel",
|
||||||
"main": "osc.mjs",
|
"main": "osc.mjs",
|
||||||
@ -36,7 +36,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"osc-js": "^2.4.0"
|
"osc-js": "^2.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@ -33,13 +33,13 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/midi": "workspace:*",
|
"@strudel/midi": "workspace:*",
|
||||||
"@strudel.cycles/mini": "workspace:*",
|
"@strudel/mini": "workspace:*",
|
||||||
"@strudel.cycles/soundfonts": "workspace:*",
|
"@strudel/soundfonts": "workspace:*",
|
||||||
"@strudel.cycles/tonal": "workspace:*",
|
"@strudel/tonal": "workspace:*",
|
||||||
"@strudel.cycles/transpiler": "workspace:*",
|
"@strudel/transpiler": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*",
|
"@strudel/webaudio": "workspace:*",
|
||||||
"@strudel/codemirror": "workspace:*",
|
"@strudel/codemirror": "workspace:*",
|
||||||
"@strudel/hydra": "workspace:*"
|
"@strudel/hydra": "workspace:*"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,22 +1,22 @@
|
|||||||
import { controls, noteToMidi, valueToMidi, Pattern, evalScope } from '@strudel.cycles/core';
|
import { controls, noteToMidi, valueToMidi, Pattern, evalScope } from '@strudel/core';
|
||||||
import { registerSynthSounds, registerZZFXSounds, samples } from '@strudel.cycles/webaudio';
|
import { registerSynthSounds, registerZZFXSounds, samples } from '@strudel/webaudio';
|
||||||
import * as core from '@strudel.cycles/core';
|
import * as core from '@strudel/core';
|
||||||
|
|
||||||
export async function prebake() {
|
export async function prebake() {
|
||||||
const modulesLoading = evalScope(
|
const modulesLoading = evalScope(
|
||||||
// import('@strudel.cycles/core'),
|
// import('@strudel/core'),
|
||||||
core,
|
core,
|
||||||
import('@strudel.cycles/mini'),
|
import('@strudel/mini'),
|
||||||
import('@strudel.cycles/tonal'),
|
import('@strudel/tonal'),
|
||||||
import('@strudel.cycles/webaudio'),
|
import('@strudel/webaudio'),
|
||||||
import('@strudel/codemirror'),
|
import('@strudel/codemirror'),
|
||||||
import('@strudel/hydra'),
|
import('@strudel/hydra'),
|
||||||
import('@strudel.cycles/soundfonts'),
|
import('@strudel/soundfonts'),
|
||||||
import('@strudel.cycles/midi'),
|
import('@strudel/midi'),
|
||||||
// import('@strudel.cycles/xen'),
|
// import('@strudel/xen'),
|
||||||
// import('@strudel.cycles/serial'),
|
// import('@strudel/serial'),
|
||||||
// import('@strudel.cycles/csound'),
|
// import('@strudel/csound'),
|
||||||
// import('@strudel.cycles/osc'),
|
// import('@strudel/osc'),
|
||||||
controls, // sadly, this cannot be exported from core directly (yet)
|
controls, // sadly, this cannot be exported from core directly (yet)
|
||||||
);
|
);
|
||||||
// load samples
|
// load samples
|
||||||
@ -26,10 +26,10 @@ export async function prebake() {
|
|||||||
registerSynthSounds(),
|
registerSynthSounds(),
|
||||||
registerZZFXSounds(),
|
registerZZFXSounds(),
|
||||||
//registerSoundfonts(),
|
//registerSoundfonts(),
|
||||||
// need dynamic import here, because importing @strudel.cycles/soundfonts fails on server:
|
// need dynamic import here, because importing @strudel/soundfonts fails on server:
|
||||||
// => getting "window is not defined", as soon as "@strudel.cycles/soundfonts" is imported statically
|
// => getting "window is not defined", as soon as "@strudel/soundfonts" is imported statically
|
||||||
// seems to be a problem with soundfont2
|
// seems to be a problem with soundfont2
|
||||||
import('@strudel.cycles/soundfonts').then(({ registerSoundfonts }) => registerSoundfonts()),
|
import('@strudel/soundfonts').then(({ registerSoundfonts }) => registerSoundfonts()),
|
||||||
samples(`${ds}/tidal-drum-machines.json`),
|
samples(`${ds}/tidal-drum-machines.json`),
|
||||||
samples(`${ds}/piano.json`),
|
samples(`${ds}/piano.json`),
|
||||||
samples(`${ds}/Dirt-Samples.json`),
|
samples(`${ds}/Dirt-Samples.json`),
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { getDrawContext, silence } from '@strudel.cycles/core';
|
import { getDrawContext, silence } from '@strudel/core';
|
||||||
import { transpiler } from '@strudel.cycles/transpiler';
|
import { transpiler } from '@strudel/transpiler';
|
||||||
import { getAudioContext, webaudioOutput } from '@strudel.cycles/webaudio';
|
import { getAudioContext, webaudioOutput } from '@strudel/webaudio';
|
||||||
import { StrudelMirror, codemirrorSettings } from '@strudel/codemirror';
|
import { StrudelMirror, codemirrorSettings } from '@strudel/codemirror';
|
||||||
import { prebake } from './prebake.mjs';
|
import { prebake } from './prebake.mjs';
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
# @strudel.cycles/serial
|
# @strudel/serial
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/serial](https://www.npmjs.com/package/@strudel/serial).
|
|
||||||
|
|
||||||
This package adds webserial functionality to strudel Patterns, for e.g. sending messages to arduino microcontrollers.
|
This package adds webserial functionality to strudel Patterns, for e.g. sending messages to arduino microcontrollers.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/serial",
|
"name": "@strudel/serial",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Webserial API for strudel",
|
"description": "Webserial API for strudel",
|
||||||
"main": "serial.mjs",
|
"main": "serial.mjs",
|
||||||
@ -29,7 +29,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*"
|
"@strudel/core": "workspace:*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vite": "^5.0.10"
|
"vite": "^5.0.10"
|
||||||
|
|||||||
@ -4,7 +4,7 @@ Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/st
|
|||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Pattern, isPattern } from '@strudel.cycles/core';
|
import { Pattern, isPattern } from '@strudel/core';
|
||||||
|
|
||||||
var writeMessagers = {};
|
var writeMessagers = {};
|
||||||
var choosing = false;
|
var choosing = false;
|
||||||
|
|||||||
@ -1,3 +1 @@
|
|||||||
# @strudel.cycles/soundfonts
|
# @strudel/soundfonts
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/soundfonts](https://www.npmjs.com/package/@strudel/soundfonts).
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { noteToMidi, freqToMidi, getSoundIndex } from '@strudel.cycles/core';
|
import { noteToMidi, freqToMidi, getSoundIndex } from '@strudel/core';
|
||||||
import {
|
import {
|
||||||
getAudioContext,
|
getAudioContext,
|
||||||
registerSound,
|
registerSound,
|
||||||
@ -6,7 +6,7 @@ import {
|
|||||||
getADSRValues,
|
getADSRValues,
|
||||||
getPitchEnvelope,
|
getPitchEnvelope,
|
||||||
getVibratoOscillator,
|
getVibratoOscillator,
|
||||||
} from '@strudel.cycles/webaudio';
|
} from '@strudel/webaudio';
|
||||||
import gm from './gm.mjs';
|
import gm from './gm.mjs';
|
||||||
|
|
||||||
let loadCache = {};
|
let loadCache = {};
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/soundfonts",
|
"name": "@strudel/soundfonts",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Soundsfont support for strudel",
|
"description": "Soundsfont support for strudel",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
@ -30,8 +30,8 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*",
|
"@strudel/webaudio": "workspace:*",
|
||||||
"sfumato": "^0.1.2",
|
"sfumato": "^0.1.2",
|
||||||
"soundfont2": "^0.4.0"
|
"soundfont2": "^0.4.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Pattern, getPlayableNoteValue, noteToMidi } from '@strudel.cycles/core';
|
import { Pattern, getPlayableNoteValue, noteToMidi } from '@strudel/core';
|
||||||
import { getAudioContext, registerSound } from '@strudel.cycles/webaudio';
|
import { getAudioContext, registerSound } from '@strudel/webaudio';
|
||||||
import { loadSoundfont as _loadSoundfont, startPresetNote } from 'sfumato';
|
import { loadSoundfont as _loadSoundfont, startPresetNote } from 'sfumato';
|
||||||
|
|
||||||
Pattern.prototype.soundfont = function (sf, n = 0) {
|
Pattern.prototype.soundfont = function (sf, n = 0) {
|
||||||
|
|||||||
@ -1,20 +1,18 @@
|
|||||||
# @strudel.cycles/tonal
|
# @strudel/tonal
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/tonal](https://www.npmjs.com/package/@strudel/tonal).
|
|
||||||
|
|
||||||
This package adds tonal / harmonic functions to strudel Patterns.
|
This package adds tonal / harmonic functions to strudel Patterns.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm i @strudel.cycles/tonal --save
|
npm i @strudel/tonal --save
|
||||||
```
|
```
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import { sequence } from '@strudel.cycles/core';
|
import { sequence } from '@strudel/core';
|
||||||
import '@strudel.cycles/tonal';
|
import '@strudel/tonal';
|
||||||
|
|
||||||
const pattern = sequence(0, [1, 2]).scale('C major');
|
const pattern = sequence(0, [1, 2]).scale('C major');
|
||||||
|
|
||||||
@ -29,7 +27,7 @@ yields:
|
|||||||
(3/4 -> 1/1, 3/4 -> 1/1, E3)
|
(3/4 -> 1/1, 3/4 -> 1/1, E3)
|
||||||
```
|
```
|
||||||
|
|
||||||
[play with @strudel.cycles/tonal codesandbox](https://codesandbox.io/s/strudel-tonal-example-rgc5if?file=/src/index.js)
|
[play with @strudel/tonal codesandbox](https://codesandbox.io/s/strudel-tonal-example-rgc5if?file=/src/index.js)
|
||||||
|
|
||||||
## Tonal API
|
## Tonal API
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/tonal",
|
"name": "@strudel/tonal",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Tonal functions for strudel",
|
"description": "Tonal functions for strudel",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
@ -31,7 +31,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@tonaljs/tonal": "^4.7.2",
|
"@tonaljs/tonal": "^4.7.2",
|
||||||
"chord-voicings": "^0.0.1",
|
"chord-voicings": "^0.0.1",
|
||||||
"webmidi": "^3.1.8"
|
"webmidi": "^3.1.8"
|
||||||
|
|||||||
@ -7,7 +7,7 @@ This program is free software: you can redistribute it and/or modify it under th
|
|||||||
// import { strict as assert } from 'assert';
|
// import { strict as assert } from 'assert';
|
||||||
|
|
||||||
import '../tonal.mjs'; // need to import this to add prototypes
|
import '../tonal.mjs'; // need to import this to add prototypes
|
||||||
import { pure, controls, seq } from '@strudel.cycles/core';
|
import { pure, controls, seq } from '@strudel/core';
|
||||||
import { describe, it, expect } from 'vitest';
|
import { describe, it, expect } from 'vitest';
|
||||||
import { mini } from '../../mini/mini.mjs';
|
import { mini } from '../../mini/mini.mjs';
|
||||||
const { n } = controls;
|
const { n } = controls;
|
||||||
|
|||||||
@ -5,7 +5,7 @@ This program is free software: you can redistribute it and/or modify it under th
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { Note, Interval, Scale } from '@tonaljs/tonal';
|
import { Note, Interval, Scale } from '@tonaljs/tonal';
|
||||||
import { register, _mod, silence, logger, pure, isNote } from '@strudel.cycles/core';
|
import { register, _mod, silence, logger, pure, isNote } from '@strudel/core';
|
||||||
import { stepInNamedScale } from './tonleiter.mjs';
|
import { stepInNamedScale } from './tonleiter.mjs';
|
||||||
|
|
||||||
const octavesInterval = (octaves) => (octaves <= 0 ? -1 : 1) + octaves * 7 + 'P';
|
const octavesInterval = (octaves) => (octaves <= 0 ? -1 : 1) + octaves * 7 + 'P';
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { isNote, isNoteWithOctave, _mod, noteToMidi, tokenizeNote } from '@strudel.cycles/core';
|
import { isNote, isNoteWithOctave, _mod, noteToMidi, tokenizeNote } from '@strudel/core';
|
||||||
import { Interval, Scale } from '@tonaljs/tonal';
|
import { Interval, Scale } from '@tonaljs/tonal';
|
||||||
|
|
||||||
// https://codesandbox.io/s/stateless-voicings-g2tmz0?file=/src/lib.js:0-2515
|
// https://codesandbox.io/s/stateless-voicings-g2tmz0?file=/src/lib.js:0-2515
|
||||||
|
|||||||
@ -4,7 +4,7 @@ Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/st
|
|||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { stack, register, silence, logger } from '@strudel.cycles/core';
|
import { stack, register, silence, logger } from '@strudel/core';
|
||||||
import { renderVoicing } from './tonleiter.mjs';
|
import { renderVoicing } from './tonleiter.mjs';
|
||||||
import _voicings from 'chord-voicings';
|
import _voicings from 'chord-voicings';
|
||||||
import { complex, simple } from './ireal.mjs';
|
import { complex, simple } from './ireal.mjs';
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
# @strudel.cycles/transpiler
|
# @strudel/transpiler
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/transpiler](https://www.npmjs.com/package/@strudel/transpiler).
|
|
||||||
|
|
||||||
This package contains a JS code transpiler with the following features:
|
This package contains a JS code transpiler with the following features:
|
||||||
|
|
||||||
@ -11,14 +9,14 @@ This package contains a JS code transpiler with the following features:
|
|||||||
## Install
|
## Install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm i @strudel.cycles/transpiler
|
npm i @strudel/transpiler
|
||||||
```
|
```
|
||||||
|
|
||||||
## Use
|
## Use
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import { transpiler } from '@strudel.cycles/core';
|
import { transpiler } from '@strudel/core';
|
||||||
import { evaluate } from '@strudel.cycles/core';
|
import { evaluate } from '@strudel/core';
|
||||||
|
|
||||||
transpiler('note("c3 [e3,g3]")', { wrapAsync: false, addReturn: false, simpleLocs: true });
|
transpiler('note("c3 [e3,g3]")', { wrapAsync: false, addReturn: false, simpleLocs: true });
|
||||||
/* mini('c3 [e3,g3]').withMiniLocation(7,17) */
|
/* mini('c3 [e3,g3]').withMiniLocation(7,17) */
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { evaluate as _evaluate } from '@strudel.cycles/core';
|
import { evaluate as _evaluate } from '@strudel/core';
|
||||||
import { transpiler } from './transpiler.mjs';
|
import { transpiler } from './transpiler.mjs';
|
||||||
export * from './transpiler.mjs';
|
export * from './transpiler.mjs';
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/transpiler",
|
"name": "@strudel/transpiler",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Transpiler for strudel user code. Converts syntactically correct but semantically meaningless JS into evaluatable strudel code.",
|
"description": "Transpiler for strudel user code. Converts syntactically correct but semantically meaningless JS into evaluatable strudel code.",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
@ -30,8 +30,8 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/mini": "workspace:*",
|
"@strudel/mini": "workspace:*",
|
||||||
"acorn": "^8.11.3",
|
"acorn": "^8.11.3",
|
||||||
"escodegen": "^2.1.0",
|
"escodegen": "^2.1.0",
|
||||||
"estree-walker": "^3.0.1"
|
"estree-walker": "^3.0.1"
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import escodegen from 'escodegen';
|
import escodegen from 'escodegen';
|
||||||
import { parse } from 'acorn';
|
import { parse } from 'acorn';
|
||||||
import { walk } from 'estree-walker';
|
import { walk } from 'estree-walker';
|
||||||
import { isNoteWithOctave } from '@strudel.cycles/core';
|
import { isNoteWithOctave } from '@strudel/core';
|
||||||
import { getLeafLocations } from '@strudel.cycles/mini';
|
import { getLeafLocations } from '@strudel/mini';
|
||||||
|
|
||||||
export function transpiler(input, options = {}) {
|
export function transpiler(input, options = {}) {
|
||||||
const { wrapAsync = false, addReturn = true, emitMiniLocations = true, emitWidgets = true } = options;
|
const { wrapAsync = false, addReturn = true, emitMiniLocations = true, emitWidgets = true } = options;
|
||||||
|
|||||||
@ -33,11 +33,11 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/mini": "workspace:*",
|
"@strudel/mini": "workspace:*",
|
||||||
"@strudel.cycles/tonal": "workspace:*",
|
"@strudel/tonal": "workspace:*",
|
||||||
"@strudel.cycles/transpiler": "workspace:*",
|
"@strudel/transpiler": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*"
|
"@strudel/webaudio": "workspace:*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vite": "^5.0.10"
|
"vite": "^5.0.10"
|
||||||
|
|||||||
@ -1,25 +1,25 @@
|
|||||||
export * from '@strudel.cycles/core';
|
export * from '@strudel/core';
|
||||||
export * from '@strudel.cycles/webaudio';
|
export * from '@strudel/webaudio';
|
||||||
//export * from '@strudel.cycles/soundfonts';
|
//export * from '@strudel/soundfonts';
|
||||||
export * from '@strudel.cycles/transpiler';
|
export * from '@strudel/transpiler';
|
||||||
export * from '@strudel.cycles/mini';
|
export * from '@strudel/mini';
|
||||||
export * from '@strudel.cycles/tonal';
|
export * from '@strudel/tonal';
|
||||||
export * from '@strudel.cycles/webaudio';
|
export * from '@strudel/webaudio';
|
||||||
import { Pattern, evalScope, controls } from '@strudel.cycles/core';
|
import { Pattern, evalScope, controls } from '@strudel/core';
|
||||||
import { initAudioOnFirstClick, registerSynthSounds, webaudioScheduler } from '@strudel.cycles/webaudio';
|
import { initAudioOnFirstClick, registerSynthSounds, webaudioScheduler } from '@strudel/webaudio';
|
||||||
// import { registerSoundfonts } from '@strudel.cycles/soundfonts';
|
// import { registerSoundfonts } from '@strudel/soundfonts';
|
||||||
import { evaluate as _evaluate } from '@strudel.cycles/transpiler';
|
import { evaluate as _evaluate } from '@strudel/transpiler';
|
||||||
import { miniAllStrings } from '@strudel.cycles/mini';
|
import { miniAllStrings } from '@strudel/mini';
|
||||||
|
|
||||||
// init logic
|
// init logic
|
||||||
export async function defaultPrebake() {
|
export async function defaultPrebake() {
|
||||||
const loadModules = evalScope(
|
const loadModules = evalScope(
|
||||||
evalScope,
|
evalScope,
|
||||||
controls,
|
controls,
|
||||||
import('@strudel.cycles/core'),
|
import('@strudel/core'),
|
||||||
import('@strudel.cycles/mini'),
|
import('@strudel/mini'),
|
||||||
import('@strudel.cycles/tonal'),
|
import('@strudel/tonal'),
|
||||||
import('@strudel.cycles/webaudio'),
|
import('@strudel/webaudio'),
|
||||||
{ hush, evaluate },
|
{ hush, evaluate },
|
||||||
);
|
);
|
||||||
await Promise.all([loadModules, registerSynthSounds() /* , registerSoundfonts() */]);
|
await Promise.all([loadModules, registerSynthSounds() /* , registerSoundfonts() */]);
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
# @strudel.cycles/webaudio
|
# @strudel/webaudio
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/webaudio](https://www.npmjs.com/package/@strudel/webaudio).
|
|
||||||
|
|
||||||
This package contains helpers to make music with strudel and the Web Audio API.
|
This package contains helpers to make music with strudel and the Web Audio API.
|
||||||
It is a thin binding to [superdough](https://www.npmjs.com/package/superdough).
|
It is a thin binding to [superdough](https://www.npmjs.com/package/superdough).
|
||||||
@ -8,14 +6,14 @@ It is a thin binding to [superdough](https://www.npmjs.com/package/superdough).
|
|||||||
## Install
|
## Install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm i @strudel.cycles/webaudio --save
|
npm i @strudel/webaudio --save
|
||||||
```
|
```
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import { repl, controls } from "@strudel.cycles/core";
|
import { repl, controls } from "@strudel/core";
|
||||||
import { initAudioOnFirstClick, getAudioContext, webaudioOutput } from "@strudel.cycles/webaudio";
|
import { initAudioOnFirstClick, getAudioContext, webaudioOutput } from "@strudel/webaudio";
|
||||||
const { note } = controls;
|
const { note } = controls;
|
||||||
|
|
||||||
initAudioOnFirstClick();
|
initAudioOnFirstClick();
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/webaudio",
|
"name": "@strudel/webaudio",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Web Audio helpers for Strudel",
|
"description": "Web Audio helpers for Strudel",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
@ -34,7 +34,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"superdough": "workspace:*"
|
"superdough": "workspace:*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { Pattern, getDrawContext, clamp } from '@strudel.cycles/core';
|
import { Pattern, getDrawContext, clamp } from '@strudel/core';
|
||||||
import { analyser, getAnalyzerData } from 'superdough';
|
import { analyser, getAnalyzerData } from 'superdough';
|
||||||
|
|
||||||
export function drawTimeScope(
|
export function drawTimeScope(
|
||||||
|
|||||||
@ -4,7 +4,7 @@ Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/st
|
|||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import * as strudel from '@strudel.cycles/core';
|
import * as strudel from '@strudel/core';
|
||||||
import { superdough, getAudioContext, setLogger, doughTrigger } from 'superdough';
|
import { superdough, getAudioContext, setLogger, doughTrigger } from 'superdough';
|
||||||
const { Pattern, logger } = strudel;
|
const { Pattern, logger } = strudel;
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
# @strudel.cycles/xen
|
# @strudel/xen
|
||||||
|
|
||||||
**DEPRECATION NOTE**: This package is old and won't get any updates! The newer version goes by the name of [@strudel/xen](https://www.npmjs.com/package/@strudel/xen).
|
|
||||||
|
|
||||||
This package adds xenharmonic / microtonal functions to strudel Patterns. Further documentation + examples will follow.
|
This package adds xenharmonic / microtonal functions to strudel Patterns. Further documentation + examples will follow.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm i @strudel.cycles/xen --save
|
npm i @strudel/xen --save
|
||||||
```
|
```
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/xen",
|
"name": "@strudel/xen",
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
"description": "Xenharmonic API for strudel",
|
"description": "Xenharmonic API for strudel",
|
||||||
"main": "index.mjs",
|
"main": "index.mjs",
|
||||||
@ -30,7 +30,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel.cycles/core": "workspace:*"
|
"@strudel/core": "workspace:*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vite": "^5.0.10",
|
"vite": "^5.0.10",
|
||||||
|
|||||||
@ -5,7 +5,7 @@ This program is free software: you can redistribute it and/or modify it under th
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import Tune from './tunejs.js';
|
import Tune from './tunejs.js';
|
||||||
import { register } from '@strudel.cycles/core';
|
import { register } from '@strudel/core';
|
||||||
|
|
||||||
export const tune = register('tune', (scale, pat) => {
|
export const tune = register('tune', (scale, pat) => {
|
||||||
const tune = new Tune();
|
const tune = new Tune();
|
||||||
|
|||||||
@ -4,7 +4,7 @@ Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/st
|
|||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { register, _mod, parseNumeral } from '@strudel.cycles/core';
|
import { register, _mod, parseNumeral } from '@strudel/core';
|
||||||
|
|
||||||
export function edo(name) {
|
export function edo(name) {
|
||||||
if (!/^[1-9]+[0-9]*edo$/.test(name)) {
|
if (!/^[1-9]+[0-9]*edo$/.test(name)) {
|
||||||
|
|||||||
210
pnpm-lock.yaml
generated
210
pnpm-lock.yaml
generated
@ -8,22 +8,22 @@ importers:
|
|||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:packages/core
|
version: link:packages/core
|
||||||
'@strudel.cycles/mini':
|
'@strudel/mini':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:packages/mini
|
version: link:packages/mini
|
||||||
'@strudel.cycles/tonal':
|
'@strudel/tonal':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:packages/tonal
|
version: link:packages/tonal
|
||||||
'@strudel.cycles/transpiler':
|
'@strudel/transpiler':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:packages/transpiler
|
version: link:packages/transpiler
|
||||||
'@strudel.cycles/webaudio':
|
'@strudel/webaudio':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:packages/webaudio
|
version: link:packages/webaudio
|
||||||
'@strudel.cycles/xen':
|
'@strudel/xen':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:packages/xen
|
version: link:packages/xen
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@ -72,27 +72,27 @@ importers:
|
|||||||
|
|
||||||
examples/codemirror-repl:
|
examples/codemirror-repl:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../packages/core
|
|
||||||
'@strudel.cycles/mini':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../packages/mini
|
|
||||||
'@strudel.cycles/soundfonts':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../packages/soundfonts
|
|
||||||
'@strudel.cycles/tonal':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../packages/tonal
|
|
||||||
'@strudel.cycles/transpiler':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../packages/transpiler
|
|
||||||
'@strudel.cycles/webaudio':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../packages/webaudio
|
|
||||||
'@strudel/codemirror':
|
'@strudel/codemirror':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/codemirror
|
version: link:../../packages/codemirror
|
||||||
|
'@strudel/core':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../packages/core
|
||||||
|
'@strudel/mini':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../packages/mini
|
||||||
|
'@strudel/soundfonts':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../packages/soundfonts
|
||||||
|
'@strudel/tonal':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../packages/tonal
|
||||||
|
'@strudel/transpiler':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../packages/transpiler
|
||||||
|
'@strudel/webaudio':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../packages/webaudio
|
||||||
devDependencies:
|
devDependencies:
|
||||||
vite:
|
vite:
|
||||||
specifier: ^5.0.10
|
specifier: ^5.0.10
|
||||||
@ -110,19 +110,19 @@ importers:
|
|||||||
|
|
||||||
examples/minimal-repl:
|
examples/minimal-repl:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/core
|
version: link:../../packages/core
|
||||||
'@strudel.cycles/mini':
|
'@strudel/mini':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/mini
|
version: link:../../packages/mini
|
||||||
'@strudel.cycles/tonal':
|
'@strudel/tonal':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/tonal
|
version: link:../../packages/tonal
|
||||||
'@strudel.cycles/transpiler':
|
'@strudel/transpiler':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/transpiler
|
version: link:../../packages/transpiler
|
||||||
'@strudel.cycles/webaudio':
|
'@strudel/webaudio':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/webaudio
|
version: link:../../packages/webaudio
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@ -178,7 +178,7 @@ importers:
|
|||||||
'@replit/codemirror-vscode-keymap':
|
'@replit/codemirror-vscode-keymap':
|
||||||
specifier: ^6.0.2
|
specifier: ^6.0.2
|
||||||
version: 6.0.2(@codemirror/autocomplete@6.11.1)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.0)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)
|
version: 6.0.2(@codemirror/autocomplete@6.11.1)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.0)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
'@uiw/codemirror-themes':
|
'@uiw/codemirror-themes':
|
||||||
@ -213,10 +213,10 @@ importers:
|
|||||||
'@csound/browser':
|
'@csound/browser':
|
||||||
specifier: 6.18.7
|
specifier: 6.18.7
|
||||||
version: 6.18.7(eslint@8.56.0)
|
version: 6.18.7(eslint@8.56.0)
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
'@strudel.cycles/webaudio':
|
'@strudel/webaudio':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../webaudio
|
version: link:../webaudio
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@ -226,7 +226,7 @@ importers:
|
|||||||
|
|
||||||
packages/desktopbridge:
|
packages/desktopbridge:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
'@tauri-apps/api':
|
'@tauri-apps/api':
|
||||||
@ -237,7 +237,7 @@ importers:
|
|||||||
|
|
||||||
packages/hydra:
|
packages/hydra:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
hydra-synth:
|
hydra-synth:
|
||||||
@ -253,10 +253,10 @@ importers:
|
|||||||
|
|
||||||
packages/midi:
|
packages/midi:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
'@strudel.cycles/webaudio':
|
'@strudel/webaudio':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../webaudio
|
version: link:../webaudio
|
||||||
webmidi:
|
webmidi:
|
||||||
@ -269,7 +269,7 @@ importers:
|
|||||||
|
|
||||||
packages/mini:
|
packages/mini:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@ -285,7 +285,7 @@ importers:
|
|||||||
|
|
||||||
packages/osc:
|
packages/osc:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
osc-js:
|
osc-js:
|
||||||
@ -301,33 +301,33 @@ importers:
|
|||||||
|
|
||||||
packages/repl:
|
packages/repl:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../core
|
|
||||||
'@strudel.cycles/midi':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../midi
|
|
||||||
'@strudel.cycles/mini':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../mini
|
|
||||||
'@strudel.cycles/soundfonts':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../soundfonts
|
|
||||||
'@strudel.cycles/tonal':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../tonal
|
|
||||||
'@strudel.cycles/transpiler':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../transpiler
|
|
||||||
'@strudel.cycles/webaudio':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../webaudio
|
|
||||||
'@strudel/codemirror':
|
'@strudel/codemirror':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../codemirror
|
version: link:../codemirror
|
||||||
|
'@strudel/core':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../core
|
||||||
'@strudel/hydra':
|
'@strudel/hydra':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../hydra
|
version: link:../hydra
|
||||||
|
'@strudel/midi':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../midi
|
||||||
|
'@strudel/mini':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../mini
|
||||||
|
'@strudel/soundfonts':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../soundfonts
|
||||||
|
'@strudel/tonal':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../tonal
|
||||||
|
'@strudel/transpiler':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../transpiler
|
||||||
|
'@strudel/webaudio':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../webaudio
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@rollup/plugin-replace':
|
'@rollup/plugin-replace':
|
||||||
specifier: ^5.0.5
|
specifier: ^5.0.5
|
||||||
@ -341,7 +341,7 @@ importers:
|
|||||||
|
|
||||||
packages/serial:
|
packages/serial:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@ -351,10 +351,10 @@ importers:
|
|||||||
|
|
||||||
packages/soundfonts:
|
packages/soundfonts:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
'@strudel.cycles/webaudio':
|
'@strudel/webaudio':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../webaudio
|
version: link:../webaudio
|
||||||
sfumato:
|
sfumato:
|
||||||
@ -383,7 +383,7 @@ importers:
|
|||||||
|
|
||||||
packages/tonal:
|
packages/tonal:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
'@tonaljs/tonal':
|
'@tonaljs/tonal':
|
||||||
@ -405,10 +405,10 @@ importers:
|
|||||||
|
|
||||||
packages/transpiler:
|
packages/transpiler:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
'@strudel.cycles/mini':
|
'@strudel/mini':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../mini
|
version: link:../mini
|
||||||
acorn:
|
acorn:
|
||||||
@ -430,19 +430,19 @@ importers:
|
|||||||
|
|
||||||
packages/web:
|
packages/web:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
'@strudel.cycles/mini':
|
'@strudel/mini':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../mini
|
version: link:../mini
|
||||||
'@strudel.cycles/tonal':
|
'@strudel/tonal':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../tonal
|
version: link:../tonal
|
||||||
'@strudel.cycles/transpiler':
|
'@strudel/transpiler':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../transpiler
|
version: link:../transpiler
|
||||||
'@strudel.cycles/webaudio':
|
'@strudel/webaudio':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../webaudio
|
version: link:../webaudio
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@ -452,7 +452,7 @@ importers:
|
|||||||
|
|
||||||
packages/webaudio:
|
packages/webaudio:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
superdough:
|
superdough:
|
||||||
@ -465,7 +465,7 @@ importers:
|
|||||||
|
|
||||||
packages/xen:
|
packages/xen:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@strudel.cycles/core':
|
'@strudel/core':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../core
|
version: link:../core
|
||||||
devDependencies:
|
devDependencies:
|
||||||
@ -511,51 +511,51 @@ importers:
|
|||||||
'@nanostores/react':
|
'@nanostores/react':
|
||||||
specifier: ^0.7.1
|
specifier: ^0.7.1
|
||||||
version: 0.7.1(nanostores@0.9.5)(react@18.2.0)
|
version: 0.7.1(nanostores@0.9.5)(react@18.2.0)
|
||||||
'@strudel.cycles/core':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/core
|
|
||||||
'@strudel.cycles/csound':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/csound
|
|
||||||
'@strudel.cycles/midi':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/midi
|
|
||||||
'@strudel.cycles/mini':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/mini
|
|
||||||
'@strudel.cycles/osc':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/osc
|
|
||||||
'@strudel.cycles/serial':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/serial
|
|
||||||
'@strudel.cycles/soundfonts':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/soundfonts
|
|
||||||
'@strudel.cycles/tonal':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/tonal
|
|
||||||
'@strudel.cycles/transpiler':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/transpiler
|
|
||||||
'@strudel.cycles/webaudio':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/webaudio
|
|
||||||
'@strudel.cycles/xen':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../packages/xen
|
|
||||||
'@strudel/codemirror':
|
'@strudel/codemirror':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../packages/codemirror
|
version: link:../packages/codemirror
|
||||||
|
'@strudel/core':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/core
|
||||||
|
'@strudel/csound':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/csound
|
||||||
'@strudel/desktopbridge':
|
'@strudel/desktopbridge':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../packages/desktopbridge
|
version: link:../packages/desktopbridge
|
||||||
'@strudel/hydra':
|
'@strudel/hydra':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../packages/hydra
|
version: link:../packages/hydra
|
||||||
|
'@strudel/midi':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/midi
|
||||||
|
'@strudel/mini':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/mini
|
||||||
|
'@strudel/osc':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/osc
|
||||||
'@strudel/repl':
|
'@strudel/repl':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../packages/repl
|
version: link:../packages/repl
|
||||||
|
'@strudel/serial':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/serial
|
||||||
|
'@strudel/soundfonts':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/soundfonts
|
||||||
|
'@strudel/tonal':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/tonal
|
||||||
|
'@strudel/transpiler':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/transpiler
|
||||||
|
'@strudel/webaudio':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/webaudio
|
||||||
|
'@strudel/xen':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/xen
|
||||||
'@supabase/supabase-js':
|
'@supabase/supabase-js':
|
||||||
specifier: ^2.39.1
|
specifier: ^2.39.1
|
||||||
version: 2.39.1
|
version: 2.39.1
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# @strudel.cycles/tauri
|
# @strudel/tauri
|
||||||
|
|
||||||
Rust source files for building native desktop apps using Tauri
|
Rust source files for building native desktop apps using Tauri
|
||||||
|
|
||||||
|
|||||||
@ -3,25 +3,25 @@
|
|||||||
// it might require mocking more stuff when tunes added that use other functions
|
// it might require mocking more stuff when tunes added that use other functions
|
||||||
|
|
||||||
// import * as tunes from './tunes.mjs';
|
// import * as tunes from './tunes.mjs';
|
||||||
import { evaluate } from '@strudel.cycles/transpiler';
|
import { evaluate } from '@strudel/transpiler';
|
||||||
import { evalScope } from '@strudel.cycles/core';
|
import { evalScope } from '@strudel/core';
|
||||||
import * as strudel from '@strudel.cycles/core';
|
import * as strudel from '@strudel/core';
|
||||||
import * as webaudio from '@strudel.cycles/webaudio';
|
import * as webaudio from '@strudel/webaudio';
|
||||||
import controls from '@strudel.cycles/core/controls.mjs';
|
import controls from '@strudel/core/controls.mjs';
|
||||||
// import gist from '@strudel.cycles/core/gist.js';
|
// import gist from '@strudel/core/gist.js';
|
||||||
import { mini, m } from '@strudel.cycles/mini/mini.mjs';
|
import { mini, m } from '@strudel/mini/mini.mjs';
|
||||||
// import * as voicingHelpers from '@strudel.cycles/tonal/voicings.mjs';
|
// import * as voicingHelpers from '@strudel/tonal/voicings.mjs';
|
||||||
// import euclid from '@strudel.cycles/core/euclid.mjs';
|
// import euclid from '@strudel/core/euclid.mjs';
|
||||||
// import '@strudel.cycles/midi/midi.mjs';
|
// import '@strudel/midi/midi.mjs';
|
||||||
import * as tonalHelpers from '@strudel.cycles/tonal';
|
import * as tonalHelpers from '@strudel/tonal';
|
||||||
import '@strudel.cycles/xen/xen.mjs';
|
import '@strudel/xen/xen.mjs';
|
||||||
// import '@strudel.cycles/xen/tune.mjs';
|
// import '@strudel/xen/tune.mjs';
|
||||||
// import '@strudel.cycles/core/euclid.mjs';
|
// import '@strudel/core/euclid.mjs';
|
||||||
// import '@strudel.cycles/core/speak.mjs'; // window is not defined
|
// import '@strudel/core/speak.mjs'; // window is not defined
|
||||||
// import '@strudel.cycles/osc/osc.mjs';
|
// import '@strudel/osc/osc.mjs';
|
||||||
// import '@strudel.cycles/webaudio/webaudio.mjs';
|
// import '@strudel/webaudio/webaudio.mjs';
|
||||||
// import '@strudel.cycles/serial/serial.mjs';
|
// import '@strudel/serial/serial.mjs';
|
||||||
// import controls from '@strudel.cycles/core/controls.mjs';
|
// import controls from '@strudel/core/controls.mjs';
|
||||||
import '../website/src/repl/piano';
|
import '../website/src/repl/piano';
|
||||||
|
|
||||||
class MockedNode {
|
class MockedNode {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@strudel.cycles/website",
|
"name": "@strudel/website",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.6.0",
|
"version": "0.6.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
@ -23,17 +23,17 @@
|
|||||||
"@heroicons/react": "^2.1.1",
|
"@heroicons/react": "^2.1.1",
|
||||||
"@nanostores/persistent": "^0.9.1",
|
"@nanostores/persistent": "^0.9.1",
|
||||||
"@nanostores/react": "^0.7.1",
|
"@nanostores/react": "^0.7.1",
|
||||||
"@strudel.cycles/core": "workspace:*",
|
"@strudel/core": "workspace:*",
|
||||||
"@strudel.cycles/csound": "workspace:*",
|
"@strudel/csound": "workspace:*",
|
||||||
"@strudel.cycles/midi": "workspace:*",
|
"@strudel/midi": "workspace:*",
|
||||||
"@strudel.cycles/mini": "workspace:*",
|
"@strudel/mini": "workspace:*",
|
||||||
"@strudel.cycles/osc": "workspace:*",
|
"@strudel/osc": "workspace:*",
|
||||||
"@strudel.cycles/serial": "workspace:*",
|
"@strudel/serial": "workspace:*",
|
||||||
"@strudel.cycles/soundfonts": "workspace:*",
|
"@strudel/soundfonts": "workspace:*",
|
||||||
"@strudel.cycles/tonal": "workspace:*",
|
"@strudel/tonal": "workspace:*",
|
||||||
"@strudel.cycles/transpiler": "workspace:*",
|
"@strudel/transpiler": "workspace:*",
|
||||||
"@strudel.cycles/webaudio": "workspace:*",
|
"@strudel/webaudio": "workspace:*",
|
||||||
"@strudel.cycles/xen": "workspace:*",
|
"@strudel/xen": "workspace:*",
|
||||||
"@strudel/codemirror": "workspace:*",
|
"@strudel/codemirror": "workspace:*",
|
||||||
"@strudel/desktopbridge": "workspace:*",
|
"@strudel/desktopbridge": "workspace:*",
|
||||||
"@strudel/hydra": "workspace:*",
|
"@strudel/hydra": "workspace:*",
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import useEvent from '@src/useEvent.mjs';
|
import useEvent from '@src/useEvent.mjs';
|
||||||
import useFrame from '@src/useFrame.mjs';
|
import useFrame from '@src/useFrame.mjs';
|
||||||
import { getAudioContext } from '@strudel.cycles/webaudio';
|
import { getAudioContext } from '@strudel/webaudio';
|
||||||
import { midi2note } from '@strudel.cycles/core';
|
import { midi2note } from '@strudel/core';
|
||||||
import { useState, useRef, useEffect } from 'react';
|
import { useState, useRef, useEffect } from 'react';
|
||||||
import Claviature from '@components/Claviature';
|
import Claviature from '@components/Claviature';
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { colorMap } from '@strudel.cycles/core/color.mjs';
|
import { colorMap } from '@strudel/core/color.mjs';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
const Colors = () => {
|
const Colors = () => {
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import { useState, useRef, useCallback, useMemo, useEffect } from 'react';
|
import { useState, useRef, useCallback, useMemo, useEffect } from 'react';
|
||||||
import { Icon } from './Icon';
|
import { Icon } from './Icon';
|
||||||
import { silence, getPunchcardPainter, noteToMidi } from '@strudel.cycles/core';
|
import { silence, getPunchcardPainter, noteToMidi } from '@strudel/core';
|
||||||
import { transpiler } from '@strudel.cycles/transpiler';
|
import { transpiler } from '@strudel/transpiler';
|
||||||
import { getAudioContext, webaudioOutput } from '@strudel.cycles/webaudio';
|
import { getAudioContext, webaudioOutput } from '@strudel/webaudio';
|
||||||
import { StrudelMirror } from '@strudel/codemirror';
|
import { StrudelMirror } from '@strudel/codemirror';
|
||||||
// import { prebake } from '@strudel/repl';
|
// import { prebake } from '@strudel/repl';
|
||||||
import { prebake } from '../repl/prebake.mjs';
|
import { prebake } from '../repl/prebake.mjs';
|
||||||
|
|||||||
@ -4,7 +4,7 @@ layout: ../../../layouts/MainLayout.astro
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { MiniRepl } from '@src/docs/MiniRepl';
|
import { MiniRepl } from '@src/docs/MiniRepl';
|
||||||
import { midi2note } from '@strudel.cycles/core/';
|
import { midi2note } from '@strudel/core/';
|
||||||
import Box from '@components/Box.astro';
|
import Box from '@components/Box.astro';
|
||||||
import QA from '@components/QA';
|
import QA from '@components/QA';
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { createCanvas } from 'canvas';
|
import { createCanvas } from 'canvas';
|
||||||
import { pianoroll } from '@strudel.cycles/core';
|
import { pianoroll } from '@strudel/core';
|
||||||
import { evaluate } from '@strudel.cycles/transpiler';
|
import { evaluate } from '@strudel/transpiler';
|
||||||
import '../../../../test/runtime.mjs';
|
import '../../../../test/runtime.mjs';
|
||||||
import * as tunes from '../../repl/tunes.mjs';
|
import * as tunes from '../../repl/tunes.mjs';
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,6 @@ layout: ../../layouts/MainLayout.astro
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { MiniRepl } from '../../docs/MiniRepl';
|
import { MiniRepl } from '../../docs/MiniRepl';
|
||||||
import { JsDoc } from '../../docs/JsDoc';
|
|
||||||
import { samples } from '@strudel.cycles/webaudio';
|
|
||||||
|
|
||||||
see https://strudel.cc/?zMEo5kowGrFc
|
see https://strudel.cc/?zMEo5kowGrFc
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,6 @@ layout: ../../layouts/MainLayout.astro
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { MiniRepl } from '../../docs/MiniRepl';
|
import { MiniRepl } from '../../docs/MiniRepl';
|
||||||
import { JsDoc } from '../../docs/JsDoc';
|
|
||||||
import { samples } from '@strudel.cycles/webaudio';
|
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { createCanvas } from 'canvas';
|
import { createCanvas } from 'canvas';
|
||||||
import { pianoroll } from '@strudel.cycles/core';
|
import { pianoroll } from '@strudel/core';
|
||||||
import { evaluate } from '@strudel.cycles/transpiler';
|
import { evaluate } from '@strudel/transpiler';
|
||||||
import '../../../../test/runtime.mjs';
|
import '../../../../test/runtime.mjs';
|
||||||
import { getMyPatterns } from '../../my_patterns';
|
import { getMyPatterns } from '../../my_patterns';
|
||||||
|
|
||||||
|
|||||||
@ -16,16 +16,16 @@ The purpose of the multiple packages is to
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
[See the latest published packages on npm](https://www.npmjs.com/search?q=%40strudel.cycles).
|
[See the latest published packages on npm](https://www.npmjs.com/search?q=%40strudel).
|
||||||
Here is an overview of all the packages:
|
Here is an overview of all the packages:
|
||||||
|
|
||||||
### Essential Packages
|
### Essential Packages
|
||||||
|
|
||||||
These package are the most essential. You might want to use all of those if you're using strudel in your project:
|
These package are the most essential. You might want to use all of those if you're using strudel in your project:
|
||||||
|
|
||||||
- [core](https://github.com/tidalcycles/strudel/tree/main/packages/core#strudelcyclescore): tidal pattern engine with core primitives
|
- [core](https://github.com/tidalcycles/strudel/tree/main/packages/core#strudelcore): tidal pattern engine with core primitives
|
||||||
- [mini](https://github.com/tidalcycles/strudel/tree/main/packages/mini#strudelcyclesmini): mini notation parser + core bindings
|
- [mini](https://github.com/tidalcycles/strudel/tree/main/packages/mini#strudelmini): mini notation parser + core bindings
|
||||||
- [transpiler](https://github.com/tidalcycles/strudel/tree/main/packages/transpiler#strudelcyclestranspiler): user code transpiler. syntax sugar + highlighting
|
- [transpiler](https://github.com/tidalcycles/strudel/tree/main/packages/transpiler#strudeltranspiler): user code transpiler. syntax sugar + highlighting
|
||||||
|
|
||||||
### Language Extensions
|
### Language Extensions
|
||||||
|
|
||||||
@ -38,23 +38,24 @@ These packages extend the pattern language by specific functions
|
|||||||
|
|
||||||
These packages provide bindings for different ways to output strudel patterns:
|
These packages provide bindings for different ways to output strudel patterns:
|
||||||
|
|
||||||
- [webaudio](https://github.com/tidalcycles/strudel/tree/main/packages/webaudio#strudelcycleswebaudio): the default webaudio output
|
- [webaudio](https://github.com/tidalcycles/strudel/tree/main/packages/webaudio#strudelwebaudio): the default webaudio output
|
||||||
- [osc](https://github.com/tidalcycles/strudel/tree/main/packages/osc#strudelcyclesosc): bindings to communicate via OSC
|
- [osc](https://github.com/tidalcycles/strudel/tree/main/packages/osc#strudelosc): bindings to communicate via OSC
|
||||||
- [midi](https://github.com/tidalcycles/strudel/tree/main/packages/midi#strudelcyclesmidi): webmidi bindings
|
- [midi](https://github.com/tidalcycles/strudel/tree/main/packages/midi#strudelmidi): webmidi bindings
|
||||||
- [csound](https://github.com/tidalcycles/strudel/tree/main/packages/csound#strudelcyclescsound): csound bindings
|
- [csound](https://github.com/tidalcycles/strudel/tree/main/packages/csound#strudelcsound): csound bindings
|
||||||
- [soundfonts](https://github.com/tidalcycles/strudel/tree/main/packages/serial#strudelcyclessoundfonts): Soundfont support
|
- [soundfonts](https://github.com/tidalcycles/strudel/tree/main/packages/serial#strudelsoundfonts): Soundfont support
|
||||||
- [serial](https://github.com/tidalcycles/strudel/tree/main/packages/serial#strudelcyclesserial): webserial bindings
|
- [serial](https://github.com/tidalcycles/strudel/tree/main/packages/serial#strudelserial): webserial bindings
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
- [embed](https://github.com/tidalcycles/strudel/tree/main/packages/embed#strudelcyclesembed): embeddable REPL web component
|
- [embed](https://github.com/tidalcycles/strudel/tree/main/packages/embed#strudelembed): embeddable REPL web component
|
||||||
- [react](https://github.com/tidalcycles/strudel/tree/main/packages/react#strudelcyclesreact): react hooks and components for strudel
|
|
||||||
|
|
||||||
### No Longer Maintained
|
### No Longer Maintained
|
||||||
|
|
||||||
|
- [react](https://github.com/tidalcycles/strudel/tree/main/packages/react#strudelreact): react hooks and components for strudel
|
||||||
- [eval](https://www.npmjs.com/package/@strudel.cycles/eval): old code transpiler
|
- [eval](https://www.npmjs.com/package/@strudel.cycles/eval): old code transpiler
|
||||||
- [tone](https://www.npmjs.com/package/@strudel.cycles/tone): bindings for Tone.js instruments and effects
|
- [tone](https://www.npmjs.com/package/@strudel.cycles/tone): bindings for Tone.js instruments and effects
|
||||||
- [webdirt](https://www.npmjs.com/package/@strudel.cycles/webdirt): webdirt bindings, replaced by webaudio package
|
- [webdirt](https://www.npmjs.com/package/@strudel.cycles/webdirt): webdirt bindings, replaced by webaudio package
|
||||||
|
- any `@strudel.cycles/*` packages have been renamed to `@strudel/*` since version 0.10.0.
|
||||||
|
|
||||||
## Tools
|
## Tools
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ layout: ../../layouts/MainLayout.astro
|
|||||||
---
|
---
|
||||||
|
|
||||||
import { MiniRepl } from '@src/docs/MiniRepl';
|
import { MiniRepl } from '@src/docs/MiniRepl';
|
||||||
import { midi2note } from '@strudel.cycles/core/';
|
import { midi2note } from '@strudel/core';
|
||||||
import Box from '@components/Box.astro';
|
import Box from '@components/Box.astro';
|
||||||
import QA from '@components/QA';
|
import QA from '@components/QA';
|
||||||
|
|
||||||
|
|||||||
@ -4,10 +4,10 @@ Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/st
|
|||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { code2hash, getDrawContext, logger, silence } from '@strudel.cycles/core';
|
import { code2hash, getDrawContext, logger, silence } from '@strudel/core';
|
||||||
import cx from '@src/cx.mjs';
|
import cx from '@src/cx.mjs';
|
||||||
import { transpiler } from '@strudel.cycles/transpiler';
|
import { transpiler } from '@strudel/transpiler';
|
||||||
import { getAudioContext, initAudioOnFirstClick, webaudioOutput } from '@strudel.cycles/webaudio';
|
import { getAudioContext, initAudioOnFirstClick, webaudioOutput } from '@strudel/webaudio';
|
||||||
import { defaultAudioDeviceName } from '../settings.mjs';
|
import { defaultAudioDeviceName } from '../settings.mjs';
|
||||||
import { getAudioDevices, setAudioDevice } from './util.mjs';
|
import { getAudioDevices, setAudioDevice } from './util.mjs';
|
||||||
import { StrudelMirror, defaultSettings } from '@strudel/codemirror';
|
import { StrudelMirror, defaultSettings } from '@strudel/codemirror';
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import {
|
|||||||
onTriggerSample,
|
onTriggerSample,
|
||||||
getAudioContext,
|
getAudioContext,
|
||||||
loadBuffer,
|
loadBuffer,
|
||||||
} from '@strudel.cycles/webaudio';
|
} from '@strudel/webaudio';
|
||||||
|
|
||||||
let TAURI;
|
let TAURI;
|
||||||
if (typeof window !== 'undefined') {
|
if (typeof window !== 'undefined') {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { registerSound, onTriggerSample } from '@strudel.cycles/webaudio';
|
import { registerSound, onTriggerSample } from '@strudel/webaudio';
|
||||||
import { isAudioFile } from './files.mjs';
|
import { isAudioFile } from './files.mjs';
|
||||||
import { logger } from '@strudel.cycles/core';
|
import { logger } from '@strudel/core';
|
||||||
|
|
||||||
//utilites for writing and reading to the indexdb
|
//utilites for writing and reading to the indexdb
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import XMarkIcon from '@heroicons/react/20/solid/XMarkIcon';
|
import XMarkIcon from '@heroicons/react/20/solid/XMarkIcon';
|
||||||
import { logger } from '@strudel.cycles/core';
|
import { logger } from '@strudel/core';
|
||||||
import useEvent from '@src/useEvent.mjs';
|
import useEvent from '@src/useEvent.mjs';
|
||||||
import cx from '@src/cx.mjs';
|
import cx from '@src/cx.mjs';
|
||||||
import { nanoid } from 'nanoid';
|
import { nanoid } from 'nanoid';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import useEvent from '@src/useEvent.mjs';
|
import useEvent from '@src/useEvent.mjs';
|
||||||
import { useStore } from '@nanostores/react';
|
import { useStore } from '@nanostores/react';
|
||||||
import { getAudioContext, soundMap, connectToDestination } from '@strudel.cycles/webaudio';
|
import { getAudioContext, soundMap, connectToDestination } from '@strudel/webaudio';
|
||||||
import React, { useMemo, useRef } from 'react';
|
import React, { useMemo, useRef } from 'react';
|
||||||
import { settingsMap, useSettings } from '../../settings.mjs';
|
import { settingsMap, useSettings } from '../../settings.mjs';
|
||||||
import { ButtonGroup } from './Forms.jsx';
|
import { ButtonGroup } from './Forms.jsx';
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { Pattern, noteToMidi, valueToMidi } from '@strudel.cycles/core';
|
import { Pattern, noteToMidi, valueToMidi } from '@strudel/core';
|
||||||
|
|
||||||
const maxPan = noteToMidi('C8');
|
const maxPan = noteToMidi('C8');
|
||||||
const panwidth = (pan, width) => pan * width + (1 - width) / 2;
|
const panwidth = (pan, width) => pan * width + (1 - width) / 2;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Pattern, noteToMidi, valueToMidi } from '@strudel.cycles/core';
|
import { Pattern, noteToMidi, valueToMidi } from '@strudel/core';
|
||||||
import { registerSynthSounds, registerZZFXSounds, samples } from '@strudel.cycles/webaudio';
|
import { registerSynthSounds, registerZZFXSounds, samples } from '@strudel/webaudio';
|
||||||
import { registerSamplesFromDB } from './idbutils.mjs';
|
import { registerSamplesFromDB } from './idbutils.mjs';
|
||||||
import './piano.mjs';
|
import './piano.mjs';
|
||||||
import './files.mjs';
|
import './files.mjs';
|
||||||
@ -15,10 +15,10 @@ export async function prebake() {
|
|||||||
registerZZFXSounds(),
|
registerZZFXSounds(),
|
||||||
registerSamplesFromDB(),
|
registerSamplesFromDB(),
|
||||||
//registerSoundfonts(),
|
//registerSoundfonts(),
|
||||||
// need dynamic import here, because importing @strudel.cycles/soundfonts fails on server:
|
// need dynamic import here, because importing @strudel/soundfonts fails on server:
|
||||||
// => getting "window is not defined", as soon as "@strudel.cycles/soundfonts" is imported statically
|
// => getting "window is not defined", as soon as "@strudel/soundfonts" is imported statically
|
||||||
// seems to be a problem with soundfont2
|
// seems to be a problem with soundfont2
|
||||||
import('@strudel.cycles/soundfonts').then(({ registerSoundfonts }) => registerSoundfonts()),
|
import('@strudel/soundfonts').then(({ registerSoundfonts }) => registerSoundfonts()),
|
||||||
samples(`${baseNoTrailing}/piano.json`, `${baseNoTrailing}/piano/`, { prebake: true }),
|
samples(`${baseNoTrailing}/piano.json`, `${baseNoTrailing}/piano/`, { prebake: true }),
|
||||||
// https://github.com/sgossner/VCSL/
|
// https://github.com/sgossner/VCSL/
|
||||||
// https://api.github.com/repositories/126427031/contents/
|
// https://api.github.com/repositories/126427031/contents/
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { controls, evalScope, hash2code, logger } from '@strudel.cycles/core';
|
import { controls, evalScope, hash2code, logger } from '@strudel/core';
|
||||||
import { settingPatterns, defaultAudioDeviceName } from '../settings.mjs';
|
import { settingPatterns, defaultAudioDeviceName } from '../settings.mjs';
|
||||||
import { getAudioContext, initializeAudioOutput, setDefaultAudioContext } from '@strudel.cycles/webaudio';
|
import { getAudioContext, initializeAudioOutput, setDefaultAudioContext } from '@strudel/webaudio';
|
||||||
|
|
||||||
import { isTauri } from '../tauri.mjs';
|
import { isTauri } from '../tauri.mjs';
|
||||||
import './Repl.css';
|
import './Repl.css';
|
||||||
@ -79,16 +79,16 @@ export function getRandomTune() {
|
|||||||
|
|
||||||
export function loadModules() {
|
export function loadModules() {
|
||||||
let modules = [
|
let modules = [
|
||||||
import('@strudel.cycles/core'),
|
import('@strudel/core'),
|
||||||
import('@strudel.cycles/tonal'),
|
import('@strudel/tonal'),
|
||||||
import('@strudel.cycles/mini'),
|
import('@strudel/mini'),
|
||||||
import('@strudel.cycles/xen'),
|
import('@strudel/xen'),
|
||||||
import('@strudel.cycles/webaudio'),
|
import('@strudel/webaudio'),
|
||||||
import('@strudel/codemirror'),
|
import('@strudel/codemirror'),
|
||||||
import('@strudel/hydra'),
|
import('@strudel/hydra'),
|
||||||
import('@strudel.cycles/serial'),
|
import('@strudel/serial'),
|
||||||
import('@strudel.cycles/soundfonts'),
|
import('@strudel/soundfonts'),
|
||||||
import('@strudel.cycles/csound'),
|
import('@strudel/csound'),
|
||||||
];
|
];
|
||||||
if (isTauri()) {
|
if (isTauri()) {
|
||||||
modules = modules.concat([
|
modules = modules.concat([
|
||||||
@ -97,7 +97,7 @@ export function loadModules() {
|
|||||||
import('@strudel/desktopbridge/oscbridge.mjs'),
|
import('@strudel/desktopbridge/oscbridge.mjs'),
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
modules = modules.concat([import('@strudel.cycles/midi'), import('@strudel.cycles/osc')]);
|
modules = modules.concat([import('@strudel/midi'), import('@strudel/osc')]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return evalScope(
|
return evalScope(
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
import { atom } from 'nanostores';
|
import { atom } from 'nanostores';
|
||||||
import { persistentMap, persistentAtom } from '@nanostores/persistent';
|
import { persistentMap, persistentAtom } from '@nanostores/persistent';
|
||||||
import { useStore } from '@nanostores/react';
|
import { useStore } from '@nanostores/react';
|
||||||
import { register } from '@strudel.cycles/core';
|
import { register } from '@strudel/core';
|
||||||
import * as tunes from './repl/tunes.mjs';
|
import * as tunes from './repl/tunes.mjs';
|
||||||
import { logger } from '@strudel.cycles/core';
|
import { logger } from '@strudel/core';
|
||||||
|
|
||||||
export let $publicPatterns = atom([]);
|
export let $publicPatterns = atom([]);
|
||||||
export let $featuredPatterns = atom([]);
|
export let $featuredPatterns = atom([]);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user