mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-24 03:58:53 +00:00
build
This commit is contained in:
parent
f95f181301
commit
57d85ee7de
10
docs/dist/App.js
vendored
10
docs/dist/App.js
vendored
@ -10,7 +10,12 @@ import hot from "../hot.js";
|
|||||||
import {isNote} from "../_snowpack/pkg/tone.js";
|
import {isNote} from "../_snowpack/pkg/tone.js";
|
||||||
import {useWebMidi} from "./midi.js";
|
import {useWebMidi} from "./midi.js";
|
||||||
const [_, codeParam] = window.location.href.split("#");
|
const [_, codeParam] = window.location.href.split("#");
|
||||||
const decoded = atob(decodeURIComponent(codeParam || ""));
|
let decoded;
|
||||||
|
try {
|
||||||
|
decoded = atob(decodeURIComponent(codeParam || ""));
|
||||||
|
} catch (err) {
|
||||||
|
console.warn("failed to decode", err);
|
||||||
|
}
|
||||||
const getHotCode = async () => {
|
const getHotCode = async () => {
|
||||||
return fetch("/hot.js").then((res) => res.text()).then((src) => {
|
return fetch("/hot.js").then((res) => res.text()).then((src) => {
|
||||||
return src.split("export default").slice(-1)[0].trim();
|
return src.split("export default").slice(-1)[0].trim();
|
||||||
@ -39,6 +44,7 @@ function App() {
|
|||||||
const [activePattern, setActivePattern] = useState();
|
const [activePattern, setActivePattern] = useState();
|
||||||
const dirty = code !== activeCode;
|
const dirty = code !== activeCode;
|
||||||
const activateCode = (_code = code) => {
|
const activateCode = (_code = code) => {
|
||||||
|
!cycle.started && cycle.start();
|
||||||
if (activeCode && !dirty) {
|
if (activeCode && !dirty) {
|
||||||
setError(void 0);
|
setError(void 0);
|
||||||
return;
|
return;
|
||||||
@ -57,7 +63,6 @@ function App() {
|
|||||||
try {
|
try {
|
||||||
setActivePattern(() => _pattern);
|
setActivePattern(() => _pattern);
|
||||||
window.location.hash = "#" + encodeURIComponent(btoa(code));
|
window.location.hash = "#" + encodeURIComponent(btoa(code));
|
||||||
!cycle.started && cycle.start();
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
setError(err);
|
setError(err);
|
||||||
}
|
}
|
||||||
@ -106,6 +111,7 @@ function App() {
|
|||||||
switch (e.code) {
|
switch (e.code) {
|
||||||
case "Enter":
|
case "Enter":
|
||||||
activateCode();
|
activateCode();
|
||||||
|
!cycle.started && cycle.start();
|
||||||
break;
|
break;
|
||||||
case "Period":
|
case "Period":
|
||||||
cycle.stop();
|
cycle.stop();
|
||||||
|
|||||||
4
docs/dist/shapeshifter.js
vendored
4
docs/dist/shapeshifter.js
vendored
@ -24,3 +24,7 @@ export default (code) => {
|
|||||||
});
|
});
|
||||||
return codegen(shifted);
|
return codegen(shifted);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// TODO: turn x.groove['[~ x]*2'] into x.groove('[~ x]*2'.m)
|
||||||
|
// and ['c1*2'].xx into 'c1*2'.m.xx ??
|
||||||
|
// or just all templated strings?? x.groove(`[~ x]*2`)
|
||||||
61
docs/dist/tunes.js
vendored
61
docs/dist/tunes.js
vendored
@ -357,3 +357,64 @@ export const caverave = `() => {
|
|||||||
synths
|
synths
|
||||||
).slow(2);
|
).slow(2);
|
||||||
}`;
|
}`;
|
||||||
|
export const caveravefuture = `() => {
|
||||||
|
const delay = new FeedbackDelay(1/8, .4).chain(vol(0.5), out);
|
||||||
|
const kick = new MembraneSynth().chain(vol(.8), out);
|
||||||
|
const snare = new NoiseSynth().chain(vol(.8), out);
|
||||||
|
const hihat = new MetalSynth().set(adsr(0, .08, 0, .1)).chain(vol(.3).connect(delay),out);
|
||||||
|
const bass = new Synth().set({ ...osc('sawtooth'), ...adsr(0, .1, .4) }).chain(lowpass(900), vol(.5), out);
|
||||||
|
const keys = new PolySynth().set({ ...osc('sawtooth'), ...adsr(0, .5, .2, .7) }).chain(lowpass(1200), vol(.5), out);
|
||||||
|
|
||||||
|
const drums = stack(
|
||||||
|
\`c1*2\`.tone(kick).bypass(\`<0@7 1>/8\`),
|
||||||
|
\`~ <x!7 [x@3 x]>\`.tone(snare).bypass(\`<0@7 1>/4\`),
|
||||||
|
\`[~ c4]*2\`.tone(hihat)
|
||||||
|
);
|
||||||
|
|
||||||
|
const thru = (x) => x.transpose(\`<0 1>/8\`).transpose(-1);
|
||||||
|
const synths = stack(
|
||||||
|
\`<eb4 d4 c4 b3>/2\`.scale(timeCat([3,'C minor'],[1,'C melodic minor']).slow(8)).groove(\`[~ x]*2\`)
|
||||||
|
.edit(
|
||||||
|
scaleTranspose(0).early(0),
|
||||||
|
scaleTranspose(2).early(1/8),
|
||||||
|
scaleTranspose(7).early(1/4),
|
||||||
|
scaleTranspose(8).early(3/8)
|
||||||
|
).edit(thru).tone(keys).bypass(\`<1 0>/16\`),
|
||||||
|
\`<C2 Bb1 Ab1 [G1 [G2 G1]]>/2\`.groove(\`x [~ x] <[~ [~ x]]!3 [x x]>@2\`).edit(thru).tone(bass),
|
||||||
|
\`<Cm7 Bb7 Fm7 G7b13>/2\`.groove(\`~ [x@0.5 ~]\`.fast(2)).voicings().edit(thru).every(2, early(1/8)).tone(keys).bypass(\`<0@7 1>/8\`.early(1/4)),
|
||||||
|
)
|
||||||
|
return stack(
|
||||||
|
drums.fast(2),
|
||||||
|
synths
|
||||||
|
).slow(2);
|
||||||
|
}`;
|
||||||
|
export const caveravefuture2 = `const delay = new FeedbackDelay(1/8, .4).chain(vol(0.5), out);
|
||||||
|
const kick = new MembraneSynth().chain(vol(.8), out);
|
||||||
|
const snare = new NoiseSynth().chain(vol(.8), out);
|
||||||
|
const hihat = new MetalSynth().set(adsr(0, .08, 0, .1)).chain(vol(.3).connect(delay),out);
|
||||||
|
const bass = new Synth().set({ ...osc('sawtooth'), ...adsr(0, .1, .4) }).chain(lowpass(900), vol(.5), out);
|
||||||
|
const keys = new PolySynth().set({ ...osc('sawtooth'), ...adsr(0, .5, .2, .7) }).chain(lowpass(1200), vol(.5), out);
|
||||||
|
|
||||||
|
const drums = stack(
|
||||||
|
"c1*2".tone(kick).bypass("<0@7 1>/8"),
|
||||||
|
"~ <x!7 [x@3 x]>".tone(snare).bypass("<0@7 1>/4"),
|
||||||
|
"[~ c4]*2".tone(hihat)
|
||||||
|
);
|
||||||
|
|
||||||
|
const thru = (x) => x.transpose("<0 1>/8").transpose(-1);
|
||||||
|
const synths = stack(
|
||||||
|
"<eb4 d4 c4 b3>/2".scale(timeCat([3, 'C minor'], [1, 'C melodic minor']).slow(8)).groove("[~ x]*2")
|
||||||
|
.edit(
|
||||||
|
scaleTranspose(0).early(0),
|
||||||
|
scaleTranspose(2).early(1/8),
|
||||||
|
scaleTranspose(7).early(1/4),
|
||||||
|
scaleTranspose(8).early(3/8)
|
||||||
|
).edit(thru).tone(keys).bypass("<1 0>/16"),
|
||||||
|
"<C2 Bb1 Ab1 [G1 [G2 G1]]>/2".groove("x [~ x] <[~ [~ x]]!3 [x x]>@2").edit(thru).tone(bass),
|
||||||
|
"<Cm7 Bb7 Fm7 G7b13>/2".groove("~ [x@0.5 ~]".fast(2)).voicings().edit(thru).every(2, early(1/8)).tone(keys).bypass("<0@7 1>/8".early(1/4)),
|
||||||
|
)
|
||||||
|
$: stack(
|
||||||
|
drums.fast(2),
|
||||||
|
synths
|
||||||
|
).slow(2);
|
||||||
|
`;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user