mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-24 12:08:28 +00:00
commit
3e02f0a0ba
@ -2189,6 +2189,14 @@ export const duration = register('duration', function (value, pat) {
|
|||||||
return pat.withHapSpan((span) => new TimeSpan(span.begin, span.begin.add(value)));
|
return pat.withHapSpan((span) => new TimeSpan(span.begin, span.begin.add(value)));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export const hsla = register('hsla', (h, s, l, a, pat) => {
|
||||||
|
return pat.color(`hsla(${h}turn,${s * 100}%,${l * 100}%,${a})`);
|
||||||
|
});
|
||||||
|
|
||||||
|
export const hsl = register('hsl', (h, s, l, pat) => {
|
||||||
|
return pat.color(`hsl(${h}turn,${s * 100}%,${l * 100}%)`);
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the color of the hap in visualizations like pianoroll or highlighting.
|
* Sets the color of the hap in visualizations like pianoroll or highlighting.
|
||||||
* @name color
|
* @name color
|
||||||
|
|||||||
@ -165,10 +165,7 @@ export function pianoroll({
|
|||||||
barThickness = fold ? valueAxis / foldValues.length : valueAxis / valueExtent;
|
barThickness = fold ? valueAxis / foldValues.length : valueAxis / valueExtent;
|
||||||
ctx.fillStyle = background;
|
ctx.fillStyle = background;
|
||||||
ctx.globalAlpha = 1; // reset!
|
ctx.globalAlpha = 1; // reset!
|
||||||
if (!smear) {
|
clearScreen(smear);
|
||||||
ctx.clearRect(0, 0, w, h);
|
|
||||||
ctx.fillRect(0, 0, w, h);
|
|
||||||
}
|
|
||||||
haps.forEach((event) => {
|
haps.forEach((event) => {
|
||||||
const isActive = event.whole.begin <= time && event.endClipped > time;
|
const isActive = event.whole.begin <= time && event.endClipped > time;
|
||||||
let strokeCurrent = stroke ?? (strokeActive && isActive);
|
let strokeCurrent = stroke ?? (strokeActive && isActive);
|
||||||
@ -282,3 +279,13 @@ export function drawPianoroll(options) {
|
|||||||
const { drawTime, ...rest } = options;
|
const { drawTime, ...rest } = options;
|
||||||
pianoroll({ ...getDrawOptions(drawTime), ...rest });
|
pianoroll({ ...getDrawOptions(drawTime), ...rest });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function clearScreen(smear = 0, smearRGB = `0,0,0`) {
|
||||||
|
const ctx = getDrawContext();
|
||||||
|
if (!smear) {
|
||||||
|
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
|
||||||
|
} else {
|
||||||
|
ctx.fillStyle = `rgba(${smearRGB},${1 - smear})`;
|
||||||
|
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user