add pianoroll widget

This commit is contained in:
Felix Roos 2024-03-15 01:40:21 +01:00
parent 094b30cd26
commit 48e0691eec
8 changed files with 62 additions and 23 deletions

View file

@ -29,14 +29,14 @@ export const getDrawContext = (id = 'test-canvas', options) => {
return canvas.getContext(contextType);
};
Pattern.prototype.draw = function (callback, { from, to, onQuery } = {}) {
Pattern.prototype.draw = function (callback, { from, to, onQuery, ctx } = {}) {
if (typeof window === 'undefined') {
return this;
}
if (window.strudelAnimation) {
cancelAnimationFrame(window.strudelAnimation);
}
const ctx = getDrawContext();
ctx = ctx || getDrawContext();
let cycle,
events = [];
const animate = (time) => {

View file

@ -30,7 +30,7 @@ const getValue = (e) => {
};
Pattern.prototype.pianoroll = function (options = {}) {
let { cycles = 4, playhead = 0.5, overscan = 1, hideNegative = false } = options;
let { cycles = 4, playhead = 0.5, overscan = 1, hideNegative = false, ctx } = options;
let from = -cycles * playhead;
let to = cycles * (1 - playhead);
@ -49,6 +49,7 @@ Pattern.prototype.pianoroll = function (options = {}) {
{
from: from - overscan,
to: to + overscan,
ctx,
},
);
return this;