diff --git a/packages/core/draw.mjs b/packages/core/draw.mjs index f63acdf3f..3bfcd37cd 100644 --- a/packages/core/draw.mjs +++ b/packages/core/draw.mjs @@ -4,8 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -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); diff --git a/packages/core/evaluate.mjs b/packages/core/evaluate.mjs index f2879a55d..63f7a58dc 100644 --- a/packages/core/evaluate.mjs +++ b/packages/core/evaluate.mjs @@ -4,8 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -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) => { diff --git a/packages/core/index.mjs b/packages/core/index.mjs index 0a6c32a82..a063307db 100644 --- a/packages/core/index.mjs +++ b/packages/core/index.mjs @@ -4,27 +4,36 @@ Copyright (C) 2022 Strudel contributors - see . */ -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; */ diff --git a/packages/core/pianoroll.mjs b/packages/core/pianoroll.mjs index c383dfe2c..94ad716ec 100644 --- a/packages/core/pianoroll.mjs +++ b/packages/core/pianoroll.mjs @@ -4,8 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -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) => { diff --git a/packages/core/speak.mjs b/packages/core/speak.mjs index 96c8f8a78..a997762a9 100644 --- a/packages/core/speak.mjs +++ b/packages/core/speak.mjs @@ -4,8 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -import { pattern } from './index.mjs'; -const {Pattern, patternify2} = pattern; +import core from './index.mjs'; +const {Pattern, patternify2} = core; let synth; try { diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 036053bc2..556cc914b 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -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'; diff --git a/packages/midi/midi.mjs b/packages/midi/midi.mjs index 10ece6416..eab353633 100644 --- a/packages/midi/midi.mjs +++ b/packages/midi/midi.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: diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index a9a28e52b..93261c563 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -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 function connect() { diff --git a/packages/serial/serial.mjs b/packages/serial/serial.mjs index 8d7785bcd..19077bf1b 100644 --- a/packages/serial/serial.mjs +++ b/packages/serial/serial.mjs @@ -4,8 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -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; diff --git a/packages/soundfonts/sfumato.mjs b/packages/soundfonts/sfumato.mjs index d9770b1e8..f1d6cfb4e 100644 --- a/packages/soundfonts/sfumato.mjs +++ b/packages/soundfonts/sfumato.mjs @@ -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'; diff --git a/packages/tonal/test/tonal.test.mjs b/packages/tonal/test/tonal.test.mjs index cb293cf39..d7ed53243 100644 --- a/packages/tonal/test/tonal.test.mjs +++ b/packages/tonal/test/tonal.test.mjs @@ -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', () => { diff --git a/packages/tonal/tonal.mjs b/packages/tonal/tonal.mjs index 973eeb437..e4ff0aa0f 100644 --- a/packages/tonal/tonal.mjs +++ b/packages/tonal/tonal.mjs @@ -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) { diff --git a/packages/tonal/voicings.mjs b/packages/tonal/voicings.mjs index 62d83457f..cb0edc50b 100644 --- a/packages/tonal/voicings.mjs +++ b/packages/tonal/voicings.mjs @@ -4,8 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -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 diff --git a/packages/tone/test/tone.test.mjs b/packages/tone/test/tone.test.mjs index 586b11931..9c78dc2e0 100644 --- a/packages/tone/test/tone.test.mjs +++ b/packages/tone/test/tone.test.mjs @@ -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', () => { diff --git a/packages/tone/tone.mjs b/packages/tone/tone.mjs index 17f029fb6..a11277d19 100644 --- a/packages/tone/tone.mjs +++ b/packages/tone/tone.mjs @@ -4,8 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -import { pattern } from '@strudel.cycles/core'; -const { Pattern } = pattern; +import core from '@strudel.cycles/core'; +const { Pattern } = core; import * as _Tone from 'tone'; diff --git a/packages/webaudio/webaudio.mjs b/packages/webaudio/webaudio.mjs index 561ee9980..4ebc9116c 100644 --- a/packages/webaudio/webaudio.mjs +++ b/packages/webaudio/webaudio.mjs @@ -4,13 +4,12 @@ Copyright (C) 2022 Strudel contributors - see . */ -// 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'; diff --git a/packages/xen/tune.mjs b/packages/xen/tune.mjs index 1429edfcc..5d693e969 100644 --- a/packages/xen/tune.mjs +++ b/packages/xen/tune.mjs @@ -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(); diff --git a/packages/xen/xen.mjs b/packages/xen/xen.mjs index 63e1ee44f..b05fa8e09 100644 --- a/packages/xen/xen.mjs +++ b/packages/xen/xen.mjs @@ -4,8 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -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)) { diff --git a/repl/src/App.jsx b/repl/src/App.jsx index 0886bd115..a2aaddd6d 100644 --- a/repl/src/App.jsx +++ b/repl/src/App.jsx @@ -4,7 +4,8 @@ Copyright (C) 2022 Strudel contributors - see . */ -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, );