mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-16 08:08:34 +00:00
25 lines
804 B
JavaScript
25 lines
804 B
JavaScript
import { createCanvas } from 'canvas';
|
|
import { pianoroll } from '@strudel/canvas';
|
|
import { evaluate } from '@strudel/transpiler';
|
|
import '../../../../test/runtime.mjs';
|
|
import * as tunes from '../../repl/tunes.mjs';
|
|
|
|
export async function GET({ params, request }) {
|
|
const { name } = params;
|
|
const tune = tunes[name];
|
|
const { pattern } = await evaluate(tune);
|
|
const haps = pattern.queryArc(0, 4);
|
|
const canvas = createCanvas(800, 800);
|
|
const ctx = canvas.getContext('2d');
|
|
pianoroll({ time: 4, haps, ctx, playhead: 1, fold: 1, background: 'transparent', playheadColor: 'transparent' });
|
|
const buffer = canvas.toBuffer('image/png');
|
|
return new Response(buffer);
|
|
}
|
|
export function getStaticPaths() {
|
|
return Object.keys(tunes).map((name) => ({
|
|
params: {
|
|
name,
|
|
},
|
|
}));
|
|
}
|