rename org to strudel.cycles
This commit is contained in:
parent
ff4beaeb2c
commit
75097594b2
42 changed files with 140 additions and 140 deletions
72
package-lock.json
generated
72
package-lock.json
generated
|
|
@ -1543,31 +1543,31 @@
|
||||||
"@octokit/openapi-types": "^11.2.0"
|
"@octokit/openapi-types": "^11.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@strudel/core": {
|
"node_modules/@strudel.cycles/core": {
|
||||||
"resolved": "packages/core",
|
"resolved": "packages/core",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/@strudel/eval": {
|
"node_modules/@strudel.cycles/eval": {
|
||||||
"resolved": "packages/eval",
|
"resolved": "packages/eval",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/@strudel/midi": {
|
"node_modules/@strudel.cycles/midi": {
|
||||||
"resolved": "packages/midi",
|
"resolved": "packages/midi",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/@strudel/mini": {
|
"node_modules/@strudel.cycles/mini": {
|
||||||
"resolved": "packages/mini",
|
"resolved": "packages/mini",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/@strudel/tonal": {
|
"node_modules/@strudel.cycles/tonal": {
|
||||||
"resolved": "packages/tonal",
|
"resolved": "packages/tonal",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/@strudel/tone": {
|
"node_modules/@strudel.cycles/tone": {
|
||||||
"resolved": "packages/tone",
|
"resolved": "packages/tone",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/@strudel/xen": {
|
"node_modules/@strudel.cycles/xen": {
|
||||||
"resolved": "packages/xen",
|
"resolved": "packages/xen",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
|
|
@ -8277,7 +8277,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/core": {
|
"packages/core": {
|
||||||
"name": "@strudel/core",
|
"name": "@strudel.cycles/core",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -8290,11 +8290,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/eval": {
|
"packages/eval": {
|
||||||
"name": "@strudel/eval",
|
"name": "@strudel.cycles/eval",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/core": "*",
|
"@strudel.cycles/core": "*",
|
||||||
"estraverse": "^5.3.0",
|
"estraverse": "^5.3.0",
|
||||||
"shift-ast": "^6.1.0",
|
"shift-ast": "^6.1.0",
|
||||||
"shift-codegen": "^7.0.3",
|
"shift-codegen": "^7.0.3",
|
||||||
|
|
@ -8304,7 +8304,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/hooks": {
|
"packages/hooks": {
|
||||||
"name": "@strudel/hooks",
|
"name": "@strudel.cycles/hooks",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"extraneous": true,
|
"extraneous": true,
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
|
|
@ -8317,22 +8317,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/midi": {
|
"packages/midi": {
|
||||||
"name": "@strudel/midi",
|
"name": "@strudel.cycles/midi",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/tone": "*",
|
"@strudel.cycles/tone": "*",
|
||||||
"tone": "^14.7.77",
|
"tone": "^14.7.77",
|
||||||
"webmidi": "^2.5.2"
|
"webmidi": "^2.5.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/mini": {
|
"packages/mini": {
|
||||||
"name": "@strudel/mini",
|
"name": "@strudel.cycles/mini",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/eval": "*",
|
"@strudel.cycles/eval": "*",
|
||||||
"@strudel/tone": "*"
|
"@strudel.cycles/tone": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/repl-react": {
|
"packages/repl-react": {
|
||||||
|
|
@ -8387,30 +8387,30 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/tonal": {
|
"packages/tonal": {
|
||||||
"name": "@strudel/tonal",
|
"name": "@strudel.cycles/tonal",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/core": "*"
|
"@strudel.cycles/core": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/tone": {
|
"packages/tone": {
|
||||||
"name": "@strudel/tone",
|
"name": "@strudel.cycles/tone",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/core": "*",
|
"@strudel.cycles/core": "*",
|
||||||
"@tonejs/piano": "^0.2.1",
|
"@tonejs/piano": "^0.2.1",
|
||||||
"chord-voicings": "^0.0.1",
|
"chord-voicings": "^0.0.1",
|
||||||
"tone": "^14.7.77"
|
"tone": "^14.7.77"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/xen": {
|
"packages/xen": {
|
||||||
"name": "@strudel/xen",
|
"name": "@strudel.cycles/xen",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/core": "*"
|
"@strudel.cycles/core": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -9677,7 +9677,7 @@
|
||||||
"@octokit/openapi-types": "^11.2.0"
|
"@octokit/openapi-types": "^11.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@strudel/core": {
|
"@strudel.cycles/core": {
|
||||||
"version": "file:packages/core",
|
"version": "file:packages/core",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bjork": "^0.0.1",
|
"bjork": "^0.0.1",
|
||||||
|
|
@ -9686,10 +9686,10 @@
|
||||||
"ramda": "^0.28.0"
|
"ramda": "^0.28.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@strudel/eval": {
|
"@strudel.cycles/eval": {
|
||||||
"version": "file:packages/eval",
|
"version": "file:packages/eval",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@strudel/core": "*",
|
"@strudel.cycles/core": "*",
|
||||||
"estraverse": "^5.3.0",
|
"estraverse": "^5.3.0",
|
||||||
"shift-ast": "^6.1.0",
|
"shift-ast": "^6.1.0",
|
||||||
"shift-codegen": "^7.0.3",
|
"shift-codegen": "^7.0.3",
|
||||||
|
|
@ -9698,40 +9698,40 @@
|
||||||
"shift-traverser": "^1.0.0"
|
"shift-traverser": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@strudel/midi": {
|
"@strudel.cycles/midi": {
|
||||||
"version": "file:packages/midi",
|
"version": "file:packages/midi",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@strudel/tone": "*",
|
"@strudel.cycles/tone": "*",
|
||||||
"tone": "^14.7.77",
|
"tone": "^14.7.77",
|
||||||
"webmidi": "^2.5.2"
|
"webmidi": "^2.5.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@strudel/mini": {
|
"@strudel.cycles/mini": {
|
||||||
"version": "file:packages/mini",
|
"version": "file:packages/mini",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@strudel/eval": "*",
|
"@strudel.cycles/eval": "*",
|
||||||
"@strudel/tone": "*"
|
"@strudel.cycles/tone": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@strudel/tonal": {
|
"@strudel.cycles/tonal": {
|
||||||
"version": "file:packages/tonal",
|
"version": "file:packages/tonal",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@strudel/core": "*"
|
"@strudel.cycles/core": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@strudel/tone": {
|
"@strudel.cycles/tone": {
|
||||||
"version": "file:packages/tone",
|
"version": "file:packages/tone",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@strudel/core": "*",
|
"@strudel.cycles/core": "*",
|
||||||
"@tonejs/piano": "^0.2.1",
|
"@tonejs/piano": "^0.2.1",
|
||||||
"chord-voicings": "^0.0.1",
|
"chord-voicings": "^0.0.1",
|
||||||
"tone": "^14.7.77"
|
"tone": "^14.7.77"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@strudel/xen": {
|
"@strudel.cycles/xen": {
|
||||||
"version": "file:packages/xen",
|
"version": "file:packages/xen",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@strudel/core": "*"
|
"@strudel.cycles/core": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@tonaljs/abc-notation": {
|
"@tonaljs/abc-notation": {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
# @strudel/core
|
# @strudel.cycles/core
|
||||||
|
|
||||||
This package contains the bare essence of strudel.
|
This package contains the bare essence of strudel.
|
||||||
|
|
|
||||||
4
packages/core/package-lock.json
generated
4
packages/core/package-lock.json
generated
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/core",
|
"name": "@strudel.cycles/core",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@strudel/core",
|
"name": "@strudel.cycles/core",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/core",
|
"name": "@strudel.cycles/core",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Port of Tidal Cycles to JavaScript",
|
"description": "Port of Tidal Cycles to JavaScript",
|
||||||
"main": "strudel.mjs",
|
"main": "strudel.mjs",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# @strudel/eval
|
# @strudel.cycles/eval
|
||||||
|
|
||||||
This package contains the strudel code transformer and evaluator.
|
This package contains the strudel code transformer and evaluator.
|
||||||
It allows creating strudel patterns from input code that is optimized for minimal keystrokes and human readability.
|
It allows creating strudel patterns from input code that is optimized for minimal keystrokes and human readability.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import shapeshifter from './shapeshifter.mjs';
|
import shapeshifter from './shapeshifter.mjs';
|
||||||
import * as strudel from '@strudel/core';
|
import * as strudel from '@strudel.cycles/core';
|
||||||
|
|
||||||
const { isPattern } = strudel;
|
const { isPattern } = strudel;
|
||||||
|
|
||||||
|
|
|
||||||
4
packages/eval/package-lock.json
generated
4
packages/eval/package-lock.json
generated
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/eval",
|
"name": "@strudel.cycles/eval",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@strudel/eval",
|
"name": "@strudel.cycles/eval",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/eval",
|
"name": "@strudel.cycles/eval",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Code evaluator for strudel",
|
"description": "Code evaluator for strudel",
|
||||||
"main": "evaluate.mjs",
|
"main": "evaluate.mjs",
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/core": "*",
|
"@strudel.cycles/core": "*",
|
||||||
"estraverse": "^5.3.0",
|
"estraverse": "^5.3.0",
|
||||||
"shift-ast": "^6.1.0",
|
"shift-ast": "^6.1.0",
|
||||||
"shift-codegen": "^7.0.3",
|
"shift-codegen": "^7.0.3",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import {
|
||||||
import shiftCodegen from 'shift-codegen';
|
import shiftCodegen from 'shift-codegen';
|
||||||
const codegen = shiftCodegen.default || shiftCodegen; // parcel module resolution fuckup
|
const codegen = shiftCodegen.default || shiftCodegen; // parcel module resolution fuckup
|
||||||
|
|
||||||
import * as strudel from '@strudel/core/strudel.mjs';
|
import * as strudel from '@strudel.cycles/core/strudel.mjs';
|
||||||
|
|
||||||
const { Pattern } = strudel;
|
const { Pattern } = strudel;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { strict as assert } from 'assert';
|
import { strict as assert } from 'assert';
|
||||||
import { evaluate, extend } from '../evaluate.mjs';
|
import { evaluate, extend } from '../evaluate.mjs';
|
||||||
import { mini } from '@strudel/mini';
|
import { mini } from '@strudel.cycles/mini';
|
||||||
import * as strudel from '@strudel/core';
|
import * as strudel from '@strudel.cycles/core';
|
||||||
|
|
||||||
const { cat } = strudel;
|
const { cat } = strudel;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
# @strudel/midi
|
# @strudel.cycles/midi
|
||||||
|
|
||||||
This package adds midi functionality to strudel Patterns.
|
This package adds midi functionality to strudel Patterns.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { isNote } from 'tone';
|
import { isNote } from 'tone';
|
||||||
import _WebMidi from 'webmidi';
|
import _WebMidi from 'webmidi';
|
||||||
import { Pattern, isPattern } from '@strudel/core/strudel.mjs';
|
import { Pattern, isPattern } from '@strudel.cycles/core/strudel.mjs';
|
||||||
import { Tone } from '@strudel/tone';
|
import { Tone } from '@strudel.cycles/tone';
|
||||||
|
|
||||||
// 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;
|
||||||
|
|
|
||||||
4
packages/midi/package-lock.json
generated
4
packages/midi/package-lock.json
generated
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/midi",
|
"name": "@strudel.cycles/midi",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@strudel/midi",
|
"name": "@strudel.cycles/midi",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/midi",
|
"name": "@strudel.cycles/midi",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Midi API for strudel",
|
"description": "Midi API for strudel",
|
||||||
"main": "midi.mjs",
|
"main": "midi.mjs",
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/tone": "*",
|
"@strudel.cycles/tone": "*",
|
||||||
"tone": "^14.7.77",
|
"tone": "^14.7.77",
|
||||||
"webmidi": "^2.5.2"
|
"webmidi": "^2.5.2"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
# @strudel/mini
|
# @strudel.cycles/mini
|
||||||
|
|
||||||
This package contains the mini notation parser and pattern generator.
|
This package contains the mini notation parser and pattern generator.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import * as krill from './krill-parser.js';
|
import * as krill from './krill-parser.js';
|
||||||
import * as strudel from '@strudel/core/strudel.mjs';
|
import * as strudel from '@strudel.cycles/core/strudel.mjs';
|
||||||
import { addMiniLocations } from '@strudel/eval/shapeshifter.mjs';
|
import { addMiniLocations } from '@strudel.cycles/eval/shapeshifter.mjs';
|
||||||
|
|
||||||
const { pure, Pattern, Fraction, stack, slowcat, sequence, timeCat, silence, reify } = strudel;
|
const { pure, Pattern, Fraction, stack, slowcat, sequence, timeCat, silence, reify } = strudel;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/mini",
|
"name": "@strudel.cycles/mini",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Mini notation for strudel",
|
"description": "Mini notation for strudel",
|
||||||
"main": "mini.mjs",
|
"main": "mini.mjs",
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/tone": "*",
|
"@strudel.cycles/tone": "*",
|
||||||
"@strudel/eval": "*"
|
"@strudel.cycles/eval": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { strict as assert } from 'assert';
|
import { strict as assert } from 'assert';
|
||||||
import { mini } from '../mini.mjs';
|
import { mini } from '../mini.mjs';
|
||||||
import '@strudel/core/euclid.mjs';
|
import '@strudel.cycles/core/euclid.mjs';
|
||||||
|
|
||||||
describe('mini', () => {
|
describe('mini', () => {
|
||||||
const minV = (v) => mini(v)._firstCycleValues;
|
const minV = (v) => mini(v)._firstCycleValues;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
# @strudel/tonal
|
# @strudel.cycles/tonal
|
||||||
|
|
||||||
This package adds tonal / harmonic functions to strudel Patterns.
|
This package adds tonal / harmonic functions to strudel Patterns.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/tonal",
|
"name": "@strudel.cycles/tonal",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Tonal functions for strudel",
|
"description": "Tonal functions for strudel",
|
||||||
"main": "tonal.mjs",
|
"main": "tonal.mjs",
|
||||||
|
|
@ -25,6 +25,6 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/core": "*"
|
"@strudel.cycles/core": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
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 } from '@strudel/core/strudel.mjs';
|
import { pure } from '@strudel.cycles/core/strudel.mjs';
|
||||||
|
|
||||||
describe('tonal', () => {
|
describe('tonal', () => {
|
||||||
it('Should run tonal functions ', () => {
|
it('Should run tonal functions ', () => {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { Note, Interval, Scale } from '@tonaljs/tonal';
|
import { Note, Interval, Scale } from '@tonaljs/tonal';
|
||||||
import { Pattern as _Pattern } from '@strudel/core/strudel.mjs';
|
import { Pattern as _Pattern } from '@strudel.cycles/core/strudel.mjs';
|
||||||
import { mod } from '@strudel/core/util.mjs';
|
import { mod } from '@strudel.cycles/core/util.mjs';
|
||||||
|
|
||||||
const Pattern = _Pattern; // as any;
|
const Pattern = _Pattern; // as any;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Pattern as _Pattern, stack, Hap, reify } from '@strudel/core/strudel.mjs';
|
import { Pattern as _Pattern, stack, Hap, reify } from '@strudel.cycles/core/strudel.mjs';
|
||||||
import _voicings from 'chord-voicings';
|
import _voicings from 'chord-voicings';
|
||||||
const { dictionaryVoicing, minTopNoteDiff, lefthand } = _voicings.default || _voicings; // parcel module resolution fuckup
|
const { dictionaryVoicing, minTopNoteDiff, lefthand } = _voicings.default || _voicings; // parcel module resolution fuckup
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# @strudel/tone
|
# @strudel.cycles/tone
|
||||||
|
|
||||||
This package adds Tone.js functions to strudel Patterns.
|
This package adds Tone.js functions to strudel Patterns.
|
||||||
|
|
||||||
## Dev Notes
|
## Dev Notes
|
||||||
|
|
||||||
- `@tonejs/piano` has peer dependency on `webmidi@^2.5.1`! A newer version of webmidi will break.
|
- `@tonejs/piano` has peer dependency on `webmidi@^2.5.1`! A newer version of webmidi will break.
|
||||||
- If you use Tone in another package, make sure to `import { Tone } from '@strudel/tone`, to ensure you get the same AudioContext.
|
- If you use Tone in another package, make sure to `import { Tone } from '@strudel.cycles/tone`, to ensure you get the same AudioContext.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Tone } from './tone.mjs';
|
import { Tone } from './tone.mjs';
|
||||||
import { Pattern } from '@strudel/core';
|
import { Pattern } from '@strudel.cycles/core';
|
||||||
|
|
||||||
export const getDrawContext = (id = 'test-canvas') => {
|
export const getDrawContext = (id = 'test-canvas') => {
|
||||||
let canvas = document.querySelector('#' + id);
|
let canvas = document.querySelector('#' + id);
|
||||||
|
|
|
||||||
4
packages/tone/package-lock.json
generated
4
packages/tone/package-lock.json
generated
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/tone",
|
"name": "@strudel.cycles/tone",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@strudel/tone",
|
"name": "@strudel.cycles/tone",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/tone",
|
"name": "@strudel.cycles/tone",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Tone.js API for strudel",
|
"description": "Tone.js API for strudel",
|
||||||
"main": "tone.mjs",
|
"main": "tone.mjs",
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/core": "*",
|
"@strudel.cycles/core": "*",
|
||||||
"@tonejs/piano": "^0.2.1",
|
"@tonejs/piano": "^0.2.1",
|
||||||
"chord-voicings": "^0.0.1",
|
"chord-voicings": "^0.0.1",
|
||||||
"tone": "^14.7.77"
|
"tone": "^14.7.77"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Pattern } from '@strudel/core';
|
import { Pattern } from '@strudel.cycles/core';
|
||||||
|
|
||||||
Pattern.prototype.pianoroll = function ({
|
Pattern.prototype.pianoroll = function ({
|
||||||
timeframe = 10,
|
timeframe = 10,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { strict as assert } from 'assert';
|
import { strict as assert } from 'assert';
|
||||||
import '../tone.mjs';
|
import '../tone.mjs';
|
||||||
import { pure } from '@strudel/core/strudel.mjs';
|
import { pure } from '@strudel.cycles/core/strudel.mjs';
|
||||||
import Tone from 'tone';
|
import Tone from 'tone';
|
||||||
|
|
||||||
describe('tone', () => {
|
describe('tone', () => {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Pattern as _Pattern } from '@strudel/core';
|
import { Pattern as _Pattern } from '@strudel.cycles/core';
|
||||||
import * as _Tone from 'tone';
|
import * as _Tone from 'tone';
|
||||||
|
|
||||||
// import Tone from here, to make sure to get the same AudioContext
|
// import Tone from here, to make sure to get the same AudioContext
|
||||||
|
|
@ -26,7 +26,7 @@ const {
|
||||||
} = Tone;
|
} = Tone;
|
||||||
import * as tonePiano from '@tonejs/piano';
|
import * as tonePiano from '@tonejs/piano';
|
||||||
const { Piano } = tonePiano;
|
const { Piano } = tonePiano;
|
||||||
import { getPlayableNoteValue } from '@strudel/core/util.mjs';
|
import { getPlayableNoteValue } from '@strudel.cycles/core/util.mjs';
|
||||||
|
|
||||||
// "balanced" | "interactive" | "playback";
|
// "balanced" | "interactive" | "playback";
|
||||||
// Tone.setContext(new Tone.Context({ latencyHint: 'playback', lookAhead: 1 }));
|
// Tone.setContext(new Tone.Context({ latencyHint: 'playback', lookAhead: 1 }));
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
# @strudel/xen
|
# @strudel.cycles/xen
|
||||||
|
|
||||||
This package adds xenharmonic / microtonal functions to strudel Patterns.
|
This package adds xenharmonic / microtonal functions to strudel Patterns.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/xen",
|
"name": "@strudel.cycles/xen",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Xenharmonic API for strudel",
|
"description": "Xenharmonic API for strudel",
|
||||||
"main": "xen.mjs",
|
"main": "xen.mjs",
|
||||||
|
|
@ -24,6 +24,6 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@strudel/core": "*"
|
"@strudel.cycles/core": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import Tune from './tunejs.js';
|
import Tune from './tunejs.js';
|
||||||
import { Pattern } from '@strudel/core/strudel.mjs';
|
import { Pattern } from '@strudel.cycles/core/strudel.mjs';
|
||||||
|
|
||||||
Pattern.prototype._tune = function (scale, tonic = 220) {
|
Pattern.prototype._tune = function (scale, tonic = 220) {
|
||||||
const tune = new Tune();
|
const tune = new Tune();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Pattern } from '@strudel/core/strudel.mjs';
|
import { Pattern } from '@strudel.cycles/core/strudel.mjs';
|
||||||
import { mod } from '@strudel/core/util.mjs';
|
import { mod } from '@strudel.cycles/core/util.mjs';
|
||||||
|
|
||||||
export function edo(name) {
|
export function edo(name) {
|
||||||
if (!/^[1-9]+[0-9]*edo$/.test(name)) {
|
if (!/^[1-9]+[0-9]*edo$/.test(name)) {
|
||||||
|
|
|
||||||
4
repl/package-lock.json
generated
4
repl/package-lock.json
generated
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/repl",
|
"name": "@strudel.cycles/repl",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@strudel/repl",
|
"name": "@strudel.cycles/repl",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@testing-library/jest-dom": "^5.16.3",
|
"@testing-library/jest-dom": "^5.16.3",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@strudel/repl",
|
"name": "@strudel.cycles/repl",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://strudel.tidalcycles.org",
|
"homepage": "https://strudel.tidalcycles.org",
|
||||||
|
|
|
||||||
|
|
@ -3,31 +3,31 @@ import CodeMirror, { markEvent, markParens } from './CodeMirror';
|
||||||
import cx from './cx';
|
import cx from './cx';
|
||||||
import logo from './logo.svg';
|
import logo from './logo.svg';
|
||||||
import playStatic from './static.mjs';
|
import playStatic from './static.mjs';
|
||||||
import { defaultSynth } from '@strudel/tone';
|
import { defaultSynth } from '@strudel.cycles/tone';
|
||||||
import * as tunes from './tunes.mjs';
|
import * as tunes from './tunes.mjs';
|
||||||
import useRepl from './useRepl.mjs';
|
import useRepl from './useRepl.mjs';
|
||||||
import { useWebMidi } from './useWebMidi';
|
import { useWebMidi } from './useWebMidi';
|
||||||
import './App.css';
|
import './App.css';
|
||||||
// eval stuff start
|
// eval stuff start
|
||||||
import { evaluate, extend } from '@strudel/eval';
|
import { evaluate, extend } from '@strudel.cycles/eval';
|
||||||
import * as strudel from '@strudel/core/strudel.mjs';
|
import * as strudel from '@strudel.cycles/core/strudel.mjs';
|
||||||
import gist from '@strudel/core/gist.js';
|
import gist from '@strudel.cycles/core/gist.js';
|
||||||
import { mini } from '@strudel/mini/mini.mjs';
|
import { mini } from '@strudel.cycles/mini/mini.mjs';
|
||||||
import { Tone } from '@strudel/tone';
|
import { Tone } from '@strudel.cycles/tone';
|
||||||
import * as toneHelpers from '@strudel/tone/tone.mjs';
|
import * as toneHelpers from '@strudel.cycles/tone/tone.mjs';
|
||||||
import * as voicingHelpers from '@strudel/tonal/voicings.mjs';
|
import * as voicingHelpers from '@strudel.cycles/tonal/voicings.mjs';
|
||||||
import * as uiHelpers from '@strudel/tone/ui.mjs';
|
import * as uiHelpers from '@strudel.cycles/tone/ui.mjs';
|
||||||
import * as drawHelpers from '@strudel/tone/draw.mjs';
|
import * as drawHelpers from '@strudel.cycles/tone/draw.mjs';
|
||||||
import euclid from '@strudel/core/euclid.mjs';
|
import euclid from '@strudel.cycles/core/euclid.mjs';
|
||||||
import '@strudel/tone/tone.mjs';
|
import '@strudel.cycles/tone/tone.mjs';
|
||||||
import '@strudel/midi/midi.mjs';
|
import '@strudel.cycles/midi/midi.mjs';
|
||||||
import '@strudel/tonal/voicings.mjs';
|
import '@strudel.cycles/tonal/voicings.mjs';
|
||||||
import '@strudel/tonal/tonal.mjs';
|
import '@strudel.cycles/tonal/tonal.mjs';
|
||||||
import '@strudel/xen/xen.mjs';
|
import '@strudel.cycles/xen/xen.mjs';
|
||||||
import '@strudel/xen/tune.mjs';
|
import '@strudel.cycles/xen/tune.mjs';
|
||||||
import '@strudel/core/euclid.mjs';
|
import '@strudel.cycles/core/euclid.mjs';
|
||||||
import '@strudel/tone/pianoroll.mjs';
|
import '@strudel.cycles/tone/pianoroll.mjs';
|
||||||
import '@strudel/tone/draw.mjs';
|
import '@strudel.cycles/tone/draw.mjs';
|
||||||
|
|
||||||
extend(Tone, strudel, strudel.Pattern.prototype.bootstrap(), toneHelpers, voicingHelpers, drawHelpers, uiHelpers, {
|
extend(Tone, strudel, strudel.Pattern.prototype.bootstrap(), toneHelpers, voicingHelpers, drawHelpers, uiHelpers, {
|
||||||
gist,
|
gist,
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { Tone } from '@strudel/tone';
|
import { Tone } from '@strudel.cycles/tone';
|
||||||
import { State, TimeSpan } from '@strudel/core';
|
import { State, TimeSpan } from '@strudel.cycles/core';
|
||||||
import { getPlayableNoteValue } from '@strudel/core/util.mjs';
|
import { getPlayableNoteValue } from '@strudel.cycles/core/util.mjs';
|
||||||
import { evaluate } from '@strudel/eval';
|
import { evaluate } from '@strudel.cycles/eval';
|
||||||
import { defaultSynth } from '@strudel/tone';
|
import { defaultSynth } from '@strudel.cycles/tone';
|
||||||
|
|
||||||
// this is a test to play back events with as less runtime code as possible..
|
// this is a test to play back events with as less runtime code as possible..
|
||||||
// the code asks for the number of seconds to prequery
|
// the code asks for the number of seconds to prequery
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,29 @@
|
||||||
import React, { useCallback, useMemo, useState } from 'react';
|
import React, { useCallback, useMemo, useState } from 'react';
|
||||||
import { Tone } from '@strudel/tone';
|
import { Tone } from '@strudel.cycles/tone';
|
||||||
import useRepl from '../useRepl.mjs';
|
import useRepl from '../useRepl.mjs';
|
||||||
import CodeMirror, { markEvent } from '../CodeMirror';
|
import CodeMirror, { markEvent } from '../CodeMirror';
|
||||||
import cx from '../cx';
|
import cx from '../cx';
|
||||||
|
|
||||||
// eval stuff start
|
// eval stuff start
|
||||||
import { extend } from '@strudel/eval';
|
import { extend } from '@strudel.cycles/eval';
|
||||||
import * as strudel from '@strudel/core/strudel.mjs';
|
import * as strudel from '@strudel.cycles/core/strudel.mjs';
|
||||||
import gist from '@strudel/core/gist.js';
|
import gist from '@strudel.cycles/core/gist.js';
|
||||||
import { mini } from '@strudel/mini/mini.mjs';
|
import { mini } from '@strudel.cycles/mini/mini.mjs';
|
||||||
import { Tone } from '@strudel/tone';
|
import { Tone } from '@strudel.cycles/tone';
|
||||||
import * as toneHelpers from '@strudel/tone/tone.mjs';
|
import * as toneHelpers from '@strudel.cycles/tone/tone.mjs';
|
||||||
import * as voicingHelpers from '@strudel/tonal/voicings.mjs';
|
import * as voicingHelpers from '@strudel.cycles/tonal/voicings.mjs';
|
||||||
import * as uiHelpers from '@strudel/tone/ui.mjs';
|
import * as uiHelpers from '@strudel.cycles/tone/ui.mjs';
|
||||||
import * as drawHelpers from '@strudel/tone/draw.mjs';
|
import * as drawHelpers from '@strudel.cycles/tone/draw.mjs';
|
||||||
import euclid from '@strudel/core/euclid.mjs';
|
import euclid from '@strudel.cycles/core/euclid.mjs';
|
||||||
import '@strudel/tone/tone.mjs';
|
import '@strudel.cycles/tone/tone.mjs';
|
||||||
import '@strudel/midi/midi.mjs';
|
import '@strudel.cycles/midi/midi.mjs';
|
||||||
import '@strudel/tonal/voicings.mjs';
|
import '@strudel.cycles/tonal/voicings.mjs';
|
||||||
import '@strudel/tonal/tonal.mjs';
|
import '@strudel.cycles/tonal/tonal.mjs';
|
||||||
import '@strudel/xen/xen.mjs';
|
import '@strudel.cycles/xen/xen.mjs';
|
||||||
import '@strudel/xen/tune.mjs';
|
import '@strudel.cycles/xen/tune.mjs';
|
||||||
import '@strudel/core/euclid.mjs';
|
import '@strudel.cycles/core/euclid.mjs';
|
||||||
import '@strudel/tone/pianoroll.mjs';
|
import '@strudel.cycles/tone/pianoroll.mjs';
|
||||||
import '@strudel/tone/draw.mjs';
|
import '@strudel.cycles/tone/draw.mjs';
|
||||||
|
|
||||||
extend(Tone, strudel, strudel.Pattern.prototype.bootstrap(), toneHelpers, voicingHelpers, drawHelpers, uiHelpers, {
|
extend(Tone, strudel, strudel.Pattern.prototype.bootstrap(), toneHelpers, voicingHelpers, drawHelpers, uiHelpers, {
|
||||||
gist,
|
gist,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { Tone } from '@strudel/tone';
|
import { Tone } from '@strudel.cycles/tone';
|
||||||
import { State, TimeSpan } from '@strudel/core';
|
import { State, TimeSpan } from '@strudel.cycles/core';
|
||||||
|
|
||||||
/* export declare interface UseCycleProps {
|
/* export declare interface UseCycleProps {
|
||||||
onEvent: ToneEventCallback<any>;
|
onEvent: ToneEventCallback<any>;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { useCallback, useState, useMemo } from 'react';
|
import { useCallback, useState, useMemo } from 'react';
|
||||||
import { evaluate } from '@strudel/eval';
|
import { evaluate } from '@strudel.cycles/eval';
|
||||||
import { getPlayableNoteValue } from '@strudel/core/util.mjs';
|
import { getPlayableNoteValue } from '@strudel.cycles/core/util.mjs';
|
||||||
import useCycle from './useCycle.mjs';
|
import useCycle from './useCycle.mjs';
|
||||||
import usePostMessage from './usePostMessage.mjs';
|
import usePostMessage from './usePostMessage.mjs';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { enableWebMidi, WebMidi } from '@strudel/midi'
|
import { enableWebMidi, WebMidi } from '@strudel.cycles/midi'
|
||||||
|
|
||||||
export function useWebMidi(props) {
|
export function useWebMidi(props) {
|
||||||
const { ready, connected, disconnected } = props;
|
const { ready, connected, disconnected } = props;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue