import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();
import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();
import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();import { Orchestra } from "auddict/core";const velocity = lerp(pp, ff, expression);if (articulation === "legato") { crossfade(prev, next, 0.12);} function render(samples, ctx) { const buf = ctx.createBuffer(2, len, 48000); for (let i = 0; i < len; i++) { buf[i] = samples[i] * gain; } return buf;} export async function loadPatch(id) { const res = await fetch(`/patches/${id}`); return res.arrayBuffer();} // AI-P processing pipelineclass ResonanceEngine { #sampleRate = 48000; #blockSize = 256; process(input, params) { const wet = this.convolve(input); return mix(input, wet, params.blend); }} const TUNING_A4 = 440;const semitone = (n) => TUNING_A4 * 2 ** (n / 12); await engine.init({ latency: "interactive" });engine.connect(masterBus);engine.start();