This commit is contained in:
Felix Roos 2022-03-19 12:05:27 +01:00
parent 61e81a4e60
commit 77fd516b15
12 changed files with 2073 additions and 1490 deletions

2
docs/dist/draw.js vendored
View file

@ -26,7 +26,7 @@ Pattern.prototype.draw = function(callback, cycleSpan, lookaheadCycles = 1) {
cycle = currentCycle;
const begin = currentCycle * cycleSpan;
const end = (currentCycle + lookaheadCycles) * cycleSpan;
events = this._asNumber(true).query(new State(new TimeSpan(begin, end))).filter((event) => event.part.begin.valueOf() === event.whole.begin.valueOf());
events = this._asNumber(true).query(new State(new TimeSpan(begin, end))).filter((event) => event.part.begin.equals(event.whole.begin));
}
}
callback(ctx, events, t, cycleSpan, time);

3
docs/dist/euclid.js vendored
View file

@ -1,6 +1,7 @@
import {Pattern, timeCat} from "../_snowpack/link/strudel.js";
import bjork from "../_snowpack/pkg/bjork.js";
import {rotate} from "../_snowpack/link/util.js";
import Fraction from "../_snowpack/pkg/fractionjs.js";
const euclid = (pulses, steps, rotation = 0) => {
const b = bjork(steps, pulses);
if (rotation) {
@ -15,6 +16,6 @@ Pattern.prototype.euclidLegato = function(pulses, steps, rotation = 0) {
const bin_pat = euclid(pulses, steps, rotation);
const firstOne = bin_pat.indexOf(1);
const gapless = rotate(bin_pat, firstOne).join("").split("1").slice(1).map((s) => [s.length + 1, true]);
return this.struct(timeCat(...gapless)).late(firstOne / steps);
return this.struct(timeCat(...gapless)).late(Fraction(firstOne).div(steps));
};
export default euclid;

2
docs/dist/parse.js vendored
View file

@ -10,7 +10,7 @@ const applyOptions = (parent) => (pat, i) => {
if (operator) {
switch (operator.type_) {
case "stretch":
const speed = new Fraction(operator.arguments_.amount).inverse().valueOf();
const speed = new Fraction(operator.arguments_.amount).inverse();
return reify(pat).fast(speed);
case "bjorklund":
return pat.euclid(operator.arguments_.pulse, operator.arguments_.step, operator.arguments_.rotation);

2
docs/dist/static.js vendored
View file

@ -14,7 +14,7 @@ async function playStatic(code) {
console.log("evaluate took", took, "ms");
console.log("querying..");
start = performance.now();
const events = pat?.query(new State(new TimeSpan(0, seconds)))?.filter((event) => event.part.begin.valueOf() === event.whole.begin.valueOf())?.map((event) => ({
const events = pat?.query(new State(new TimeSpan(0, seconds)))?.filter((event) => event.part.begin.equals(event.whole.begin))?.map((event) => ({
time: event.whole.begin.valueOf(),
duration: event.whole.end.sub(event.whole.begin).valueOf(),
value: event.value,

View file

@ -17,7 +17,7 @@ function useCycle(props) {
Tone.getTransport().schedule(() => {
query(cycle + 1);
}, t);
events?.filter((event) => event.part.begin.valueOf() === event.whole.begin.valueOf()).forEach((event) => {
events?.filter((event) => event.part.begin.equals(event.whole.begin)).forEach((event) => {
Tone.getTransport().schedule((time) => {
const toneEvent = {
time: event.whole.begin.valueOf(),