This commit is contained in:
Felix Roos
2022-03-24 19:46:38 +01:00
parent 6d02f4c264
commit b3c853ee26
7 changed files with 72 additions and 19 deletions
@@ -42743,6 +42743,13 @@ class Pattern {
return binary_pat.fmap((b)=>(val)=>b ? val : undefined
).appRight(this)._removeUndefineds();
}
_color(color) {
return this._withContext((context)=>({
...context,
color
})
);
}
_segment(rate) {
return this.struct(pure(true).fast(rate));
}
@@ -42839,6 +42846,15 @@ class Pattern {
return this.stutWith(times, time, (pat, i)=>pat.velocity(Math.pow(feedback, i))
);
}
// these might change with: https://github.com/tidalcycles/Tidal/issues/902
echoWith(times, time, func) {
return stack(...range(0, times - 1).map((i)=>func(this.late(i * time), i)
));
}
echo(times, time, feedback) {
return this.echoWith(times, time, (pat, i)=>pat.velocity(Math.pow(feedback, i))
);
}
iter(times) {
return slowcat(...range(0, times - 1).map((i)=>this.early(i / times)
));
@@ -42886,7 +42902,8 @@ Pattern.prototype.patternified = [
'duration',
'legato',
'velocity',
'segment'
'segment',
'color'
];
// methods that create patterns, which are added to patternified Pattern methods
Pattern.prototype.factories = {
@@ -136426,17 +136443,23 @@ _strudelMjs.Pattern.prototype.pianoroll = function({ timeframe =10 , inactive ='
ctx.fillRect(0, 0, w, h);
events.forEach((event)=>{
const isActive = event.whole.begin <= t && event.whole.end >= t;
ctx.fillStyle = isActive ? active : inactive;
ctx.fillStyle = event.context?.color || inactive;
ctx.strokeStyle = event.context?.color || active;
ctx.globalAlpha = event.context.velocity ?? 1;
const x = Math.round(event.whole.begin / timeframe * w);
const width = Math.round((event.whole.end - event.whole.begin) / timeframe * w);
const y = Math.round(h - (Number(event.value) - minMidi) / midiRange * h);
const offset = t / timeframe * w;
const margin = 0;
ctx.fillRect(x - offset + margin + 1, y + 1, width - 2, height - 2);
const coords = [
x - offset + margin + 1,
y + 1,
width - 2,
height - 2
];
isActive ? ctx.strokeRect(...coords) : ctx.fillRect(...coords);
});
}, timeframe, 2 // lookaheadCycles
);
}, timeframe, 2);
return this;
};
@@ -172037,6 +172060,7 @@ exports.default = CodeMirror;
const markEvent = (editor)=>(time, event)=>{
const locs = event.context.locations;
if (!locs || !editor) return;
const col = event.context?.color || '#FFCA28';
// mark active event
const marks = locs.map(({ start , end })=>editor.getDoc().markText({
line: start.line - 1,
@@ -172046,7 +172070,7 @@ const markEvent = (editor)=>(time, event)=>{
ch: end.column
}, //{ css: 'background-color: #FFCA28; color: black' } // background-color is now used by parent marking
{
css: 'outline: 1px solid #FFCA28; box-sizing:border-box'
css: 'outline: 1px solid ' + col + '; box-sizing:border-box'
})
);
//Tone.Transport.schedule(() => { // problem: this can be cleared by scheduler...
@@ -183333,4 +183357,4 @@ exports.default = cx;
},{"@parcel/transformer-js/src/esmodule-helpers.js":"gkKU3"}]},["3uVTb"], "3uVTb", "parcelRequire94c2")
//# sourceMappingURL=index.74a36131.js.map
//# sourceMappingURL=index.fbb7f699.js.map
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -11,6 +11,6 @@
<body>
<div id="root"></div>
<noscript>You need to enable JavaScript to run this app.</noscript>
<script src="/tutorial/index.74a36131.js" defer=""></script>
<script src="/tutorial/index.fbb7f699.js" defer=""></script>
</body>
</html>