mirror of
https://codeberg.org/uzu/strudel
synced 2026-09-04 14:51:26 -04:00
failing attempt at bundling everything into a single core object
This commit is contained in:
@@ -4,8 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { pattern, getTime } from './index.mjs';
|
||||
const { Pattern } = pattern;
|
||||
import core from './index.mjs';
|
||||
const { Pattern } = core;
|
||||
|
||||
export const getDrawContext = (id = 'test-canvas') => {
|
||||
let canvas = document.querySelector('#' + id);
|
||||
|
||||
@@ -4,8 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { pattern } from './index.mjs';
|
||||
const { isPattern, Pattern } = pattern;
|
||||
import core from './index.mjs';
|
||||
const { isPattern, Pattern } = core;
|
||||
|
||||
let scoped = false;
|
||||
export const evalScope = async (...args) => {
|
||||
|
||||
+28
-19
@@ -4,27 +4,36 @@ 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/>.
|
||||
*/
|
||||
|
||||
import pattern from './pattern.mjs';
|
||||
import controls from './controls.mjs';
|
||||
export * from './euclid.mjs';
|
||||
import Fraction from './fraction.mjs';
|
||||
|
||||
import drawLine from './drawLine.mjs';
|
||||
import gist from './gist.js';
|
||||
import { logger } from './logger.mjs';
|
||||
export { Fraction, controls, pattern };
|
||||
export * from './hap.mjs';
|
||||
export * from './signal.mjs';
|
||||
export * from './state.mjs';
|
||||
export * from './timespan.mjs';
|
||||
export * from './util.mjs';
|
||||
export * from './speak.mjs';
|
||||
export * from './evaluate.mjs';
|
||||
export * from './repl.mjs';
|
||||
export * from './logger.mjs';
|
||||
export * from './time.mjs';
|
||||
export * from './draw.mjs';
|
||||
export * from './pianoroll.mjs';
|
||||
export * from './ui.mjs';
|
||||
export { default as drawLine } from './drawLine.mjs';
|
||||
export { default as gist } from './gist.js';
|
||||
// Fraction: Fraction, drawLine: drawline, gist: gist, logger: logger,
|
||||
|
||||
import controls from './controls.mjs';
|
||||
import pattern from './pattern.mjs';
|
||||
|
||||
import * as draw from './draw.mjs';
|
||||
import * as euclid from './euclid.mjs';
|
||||
import * as evaluate from './evaluate.mjs';
|
||||
import * as hap from './hap.mjs';
|
||||
import * as repl from './repl.mjs';
|
||||
import * as pianoroll from './pianoroll.mjs';
|
||||
import * as signal from './signal.mjs';
|
||||
import * as speak from './speak.mjs';
|
||||
import * as state from './state.mjs';
|
||||
import * as time from './time.mjs';
|
||||
import * as timespan from './timespan.mjs';
|
||||
import * as ui from './ui.mjs';
|
||||
import * as util from './util.mjs';
|
||||
|
||||
const core = { ...controls, ...pattern, ...draw, ...euclid,
|
||||
...evaluate, ...hap, ...logger, ...repl, ...pianoroll, ...signal, ...speak,
|
||||
...state, ...time, ...timespan, ...ui, ...util
|
||||
};
|
||||
export default core;
|
||||
|
||||
// below won't work with runtime.mjs (json import fails)
|
||||
/* import * as p from './package.json';
|
||||
export const version = p.version; */
|
||||
|
||||
@@ -4,8 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { pattern } from './index.mjs';
|
||||
const { Pattern } = pattern;
|
||||
import core from './index.mjs';
|
||||
const { Pattern } = core;
|
||||
|
||||
const scale = (normalized, min, max) => normalized * (max - min) + min;
|
||||
const getValue = (e) => {
|
||||
|
||||
@@ -4,8 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { pattern } from './index.mjs';
|
||||
const {Pattern, patternify2} = pattern;
|
||||
import core from './index.mjs';
|
||||
const {Pattern, patternify2} = core;
|
||||
|
||||
let synth;
|
||||
try {
|
||||
|
||||
@@ -8,22 +8,7 @@ import Fraction from 'fraction.js';
|
||||
|
||||
import { describe, it, expect } from 'vitest';
|
||||
|
||||
import { pattern,
|
||||
TimeSpan,
|
||||
Hap,
|
||||
State,
|
||||
saw,
|
||||
saw2,
|
||||
isaw,
|
||||
isaw2,
|
||||
sine,
|
||||
sine2,
|
||||
square,
|
||||
square2,
|
||||
tri,
|
||||
tri2,
|
||||
time,
|
||||
} from '../index.mjs';
|
||||
import core from '../index.mjs';
|
||||
|
||||
const {
|
||||
Pattern,
|
||||
@@ -46,7 +31,20 @@ const {
|
||||
id,
|
||||
ply,
|
||||
rev,
|
||||
} = pattern;
|
||||
TimeSpan,
|
||||
Hap,
|
||||
State,
|
||||
saw,
|
||||
saw2,
|
||||
isaw,
|
||||
isaw2,
|
||||
sine,
|
||||
sine2,
|
||||
square,
|
||||
square2,
|
||||
tri,
|
||||
tri2,
|
||||
time} = core;
|
||||
|
||||
import { steady } from '../signal.mjs';
|
||||
|
||||
|
||||
@@ -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 { pattern, logger } from '@strudel.cycles/core';
|
||||
const { Pattern, isPattern, isNote, getPlayableNoteValue } = pattern;
|
||||
import core from '@strudel.cycles/core';
|
||||
const { Pattern, isPattern, isNote, getPlayableNoteValue, logger } = core;
|
||||
import { getAudioContext } from '@strudel.cycles/webaudio';
|
||||
|
||||
// if you use WebMidi from outside of this package, make sure to import that instance:
|
||||
|
||||
@@ -5,8 +5,8 @@ This program is free software: you can redistribute it and/or modify it under th
|
||||
*/
|
||||
|
||||
import OSC from 'osc-js';
|
||||
import { logger, parseNumeral, pattern } from '@strudel.cycles/core';
|
||||
const { Pattern } = pattern;
|
||||
import core from '@strudel.cycles/core';
|
||||
const { Pattern, logger, parseNumeral } = core;
|
||||
|
||||
let connection; // Promise<OSC>
|
||||
function connect() {
|
||||
|
||||
@@ -4,8 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { pattern } from '@strudel.cycles/core';
|
||||
const { Pattern, isPattern } = pattern;
|
||||
import core from '@strudel.cycles/core';
|
||||
const { Pattern, isPattern } = core;
|
||||
|
||||
var serialWriter;
|
||||
var choosing = false;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { pattern } from '@strudel.cycles/core';
|
||||
const { Pattern } = pattern;
|
||||
import strudel from '@strudel.cycles/core';
|
||||
const { Pattern } = strudel;
|
||||
|
||||
import { loadSoundfont as _loadSoundfont, startPresetNote } from 'sfumato';
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ This program is free software: you can redistribute it and/or modify it under th
|
||||
// import { strict as assert } from 'assert';
|
||||
|
||||
import '../tonal.mjs'; // need to import this to add prototypes
|
||||
import { pattern } from '@strudel.cycles/core';
|
||||
const { pure } = pattern;
|
||||
import core from '@strudel.cycles/core';
|
||||
const { pure } = core;
|
||||
import { describe, it, expect } from 'vitest';
|
||||
|
||||
describe('tonal', () => {
|
||||
|
||||
@@ -5,8 +5,8 @@ This program is free software: you can redistribute it and/or modify it under th
|
||||
*/
|
||||
|
||||
import { Note, Interval, Scale } from '@tonaljs/tonal';
|
||||
import { pattern, mod } from '@strudel.cycles/core';
|
||||
const { Pattern } = pattern;
|
||||
import core from '@strudel.cycles/core';
|
||||
const { Pattern, pattern, mod } = core;
|
||||
|
||||
// transpose note inside scale by offset steps
|
||||
// function scaleOffset(scale: string, offset: number, note: string) {
|
||||
|
||||
@@ -4,8 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { pattern, Hap } from '@strudel.cycles/core';
|
||||
const { Pattern, stack, reify } = pattern
|
||||
import core from '@strudel.cycles/core';
|
||||
const { Pattern, stack, reify, Hap } = core
|
||||
|
||||
import _voicings from 'chord-voicings';
|
||||
const { dictionaryVoicing, minTopNoteDiff, lefthand } = _voicings.default || _voicings; // parcel module resolution fuckup
|
||||
|
||||
@@ -5,8 +5,8 @@ This program is free software: you can redistribute it and/or modify it under th
|
||||
*/
|
||||
|
||||
import '../tone.mjs';
|
||||
import { pattern } from '@strudel.cycles/core';
|
||||
const { pure } = pattern;
|
||||
import strudel from '@strudel.cycles/core';
|
||||
const { pure } = strudel;
|
||||
import { describe, it, expect } from 'vitest';
|
||||
|
||||
describe('tone', () => {
|
||||
|
||||
@@ -4,8 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { pattern } from '@strudel.cycles/core';
|
||||
const { Pattern } = pattern;
|
||||
import core from '@strudel.cycles/core';
|
||||
const { Pattern } = core;
|
||||
|
||||
import * as _Tone from 'tone';
|
||||
|
||||
|
||||
@@ -4,13 +4,12 @@ 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/>.
|
||||
*/
|
||||
|
||||
// import { Pattern, getFrequency, patternify2 } from '@strudel.cycles/core';
|
||||
import * as strudel from '@strudel.cycles/core';
|
||||
import strudel from '@strudel.cycles/core';
|
||||
import { fromMidi, logger, toMidi } from '@strudel.cycles/core';
|
||||
import './feedbackdelay.mjs';
|
||||
import './reverb.mjs';
|
||||
import { getSampleBufferSource } from './sampler.mjs';
|
||||
const { Pattern } = strudel.pattern;
|
||||
const { Pattern } = strudel;
|
||||
import './vowel.mjs';
|
||||
import workletsUrl from './worklets.mjs?url';
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ This program is free software: you can redistribute it and/or modify it under th
|
||||
*/
|
||||
|
||||
import Tune from './tunejs.js';
|
||||
import { pattern } from '@strudel.cycles/core';
|
||||
const { Pattern } = pattern;
|
||||
import core from '@strudel.cycles/core';
|
||||
const { Pattern } = core;
|
||||
|
||||
Pattern.prototype._tune = function (scale, tonic = 220) {
|
||||
const tune = new Tune();
|
||||
|
||||
@@ -4,8 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { pattern, mod } from '@strudel.cycles/core';
|
||||
const { Pattern } = pattern;
|
||||
import core from '@strudel.cycles/core';
|
||||
const { Pattern, mod } = core;
|
||||
|
||||
export function edo(name) {
|
||||
if (!/^[1-9]+[0-9]*edo$/.test(name)) {
|
||||
|
||||
+3
-3
@@ -4,7 +4,8 @@ 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/>.
|
||||
*/
|
||||
|
||||
import { cleanupDraw, cleanupUi, controls, evalScope, logger, pattern } from '@strudel.cycles/core';
|
||||
import core from '@strudel.cycles/core';
|
||||
const { cleanupDraw, cleanupUi, evalScope, logger } = core;
|
||||
import { CodeMirror, cx, flash, useHighlighting, useStrudel } from '@strudel.cycles/react';
|
||||
import {
|
||||
getAudioContext,
|
||||
@@ -46,8 +47,7 @@ const modules = [
|
||||
|
||||
evalScope(
|
||||
// Tone,
|
||||
controls, // sadly, this cannot be exported from core direclty
|
||||
pattern,
|
||||
core,
|
||||
{ WebDirt },
|
||||
...modules,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user