feat(codegen): P5 — TS emission targets manifold/src/modes/generated/
- generate.ts re-activates the TS emitters against manifold (types.ts, per-mode <id>_schema.ts, index.ts); 9 schemas emitted - firmware-fit check: exactly 3 hidden layers (fixed 4-layer topology) and every dim within (0, 4096] (the browser kMaxDim) - golden test restores the TS case against the manifold path (byte- identical to the retained P1-era snapshot)
This commit is contained in:
parent
bd35432797
commit
c45b91a5f9
13 changed files with 3920 additions and 14 deletions
|
|
@ -7,11 +7,12 @@
|
|||
*
|
||||
* Writes: nisps/modes/generated/<mode_id>_schema.hpp
|
||||
* nisps/modes/generated/schema_types.hpp
|
||||
* manifold/src/modes/generated/<mode_id>_schema.ts
|
||||
* manifold/src/modes/generated/types.ts
|
||||
* manifold/src/modes/generated/index.ts
|
||||
*
|
||||
* The TS emission target (formerly playground/src/modes/generated/) was
|
||||
* removed with the playground at P1 of
|
||||
* docs/specs/plans/one-core-engine-refactor.md; the TS emitters below are
|
||||
* retained and re-targeted at manifold/src/modes/generated/ in P5.
|
||||
* (The TS target moved playground → manifold at P5 of
|
||||
* docs/specs/plans/one-core-engine-refactor.md.)
|
||||
*
|
||||
* Idempotent: regenerating the same schemas yields byte-identical output.
|
||||
* Exits non-zero on validation failure.
|
||||
|
|
@ -66,6 +67,7 @@ const SCHEMAS_DIR = join(REPO_ROOT, "schemas");
|
|||
const MODES_DIR = join(SCHEMAS_DIR, "modes");
|
||||
const META_SCHEMA_PATH = join(SCHEMAS_DIR, "schema.json");
|
||||
const CPP_OUT_DIR = join(REPO_ROOT, "nisps", "modes", "generated");
|
||||
const TS_OUT_DIR = join(REPO_ROOT, "manifold", "src", "modes", "generated");
|
||||
|
||||
// ----- Helpers --------------------------------------------------------------
|
||||
|
||||
|
|
@ -375,8 +377,6 @@ function emitModeHpp(schema: ModeSchema, sourceFile: string): string {
|
|||
}
|
||||
|
||||
// ----- Per-mode TS emission -------------------------------------------------
|
||||
// Currently unused: the playground TS target was removed at P1; these emitters
|
||||
// return in P5 targeting manifold/src/modes/generated/ (one-core-engine plan).
|
||||
|
||||
function emitModeTs(schema: ModeSchema, sourceFile: string): string {
|
||||
const constName = `${toPascalCase(schema.mode_id)}Schema`;
|
||||
|
|
@ -533,6 +533,26 @@ function main(): number {
|
|||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
// Firmware-fit check (one-core-engine P5): the fixed firmware MLP template
|
||||
// is exactly 4 layers (3 hidden); the browser's runtime-shaped MLP caps
|
||||
// every dimension at 4096 (bindings kMaxDim).
|
||||
if (schema.ml.hidden_layers.length !== 3) {
|
||||
console.error(
|
||||
`error: ${f}: ml.hidden_layers must have exactly 3 entries ` +
|
||||
`(fixed 4-layer topology); got ${schema.ml.hidden_layers.length}`
|
||||
);
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
{
|
||||
const dims = [schema.ml.input_size, ...schema.ml.hidden_layers, schema.ml.output_size];
|
||||
const bad = dims.find(d => d <= 0 || d > 4096);
|
||||
if (bad !== undefined) {
|
||||
console.error(`error: ${f}: ml dimension ${bad} outside (0, 4096]`);
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
schemas.push({ source: f, schema });
|
||||
}
|
||||
if (errorCount > 0) {
|
||||
|
|
@ -548,9 +568,22 @@ function main(): number {
|
|||
writeFileSync(out, emitModeHpp(schema, source));
|
||||
}
|
||||
|
||||
// 5. Report
|
||||
// 5. Emit TS outputs
|
||||
ensureDir(TS_OUT_DIR);
|
||||
writeFileSync(join(TS_OUT_DIR, "types.ts"), emitSharedTsTypes());
|
||||
for (const { source, schema } of schemas) {
|
||||
const out = join(TS_OUT_DIR, `${schema.mode_id}_schema.ts`);
|
||||
writeFileSync(out, emitModeTs(schema, source));
|
||||
}
|
||||
writeFileSync(
|
||||
join(TS_OUT_DIR, "index.ts"),
|
||||
emitTsIndex(schemas.map(s => s.schema.mode_id).sort())
|
||||
);
|
||||
|
||||
// 6. Report
|
||||
console.log(`OK ${schemas.length} mode schema(s) processed.`);
|
||||
console.log(` C++ -> ${CPP_OUT_DIR}`);
|
||||
console.log(` TS -> ${TS_OUT_DIR}`);
|
||||
for (const { schema } of schemas) {
|
||||
console.log(
|
||||
` - ${schema.mode_id}: ${schema.params.length} params, ` +
|
||||
|
|
|
|||
|
|
@ -1,17 +1,14 @@
|
|||
#!/usr/bin/env bun
|
||||
/**
|
||||
* Golden test: re-runs codegen and asserts that the freshly-generated
|
||||
* paf_synth_schema.hpp is byte-identical to the snapshot in
|
||||
* codegen/tests/golden/.
|
||||
*
|
||||
* (The TS golden case was removed with the playground target at P1 of
|
||||
* docs/specs/plans/one-core-engine-refactor.md; it returns in P5 against
|
||||
* manifold/src/modes/generated/. The golden/paf_synth_schema.ts snapshot is
|
||||
* kept as the P5 template reference.)
|
||||
* paf_synth_schema.{hpp,ts} files are byte-identical to the snapshots in
|
||||
* codegen/tests/golden/. (The TS target moved playground → manifold at P5
|
||||
* of docs/specs/plans/one-core-engine-refactor.md.)
|
||||
*
|
||||
* If you change the codegen template intentionally, regenerate the goldens:
|
||||
* bun run generate.ts
|
||||
* cp ../nisps/modes/generated/paf_synth_schema.hpp tests/golden/
|
||||
* cp ../manifold/src/modes/generated/paf_synth_schema.ts tests/golden/
|
||||
*/
|
||||
|
||||
import { readFileSync, existsSync } from "node:fs";
|
||||
|
|
@ -35,6 +32,11 @@ const CASES: Case[] = [
|
|||
generatedPath: join(REPO_ROOT, "nisps", "modes", "generated", "paf_synth_schema.hpp"),
|
||||
goldenPath: join(GOLDEN_DIR, "paf_synth_schema.hpp"),
|
||||
},
|
||||
{
|
||||
name: "paf_synth_schema.ts",
|
||||
generatedPath: join(REPO_ROOT, "manifold", "src", "modes", "generated", "paf_synth_schema.ts"),
|
||||
goldenPath: join(GOLDEN_DIR, "paf_synth_schema.ts"),
|
||||
},
|
||||
];
|
||||
|
||||
function diff(name: string, expected: string, actual: string): string {
|
||||
|
|
|
|||
596
manifold/src/modes/generated/breakor_schema.ts
Normal file
596
manifold/src/modes/generated/breakor_schema.ts
Normal file
|
|
@ -0,0 +1,596 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/breakor.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface BreakorParams {
|
||||
readonly kick_ratio0: number;
|
||||
readonly kick_ratio1: number;
|
||||
readonly kick_ratio2: number;
|
||||
readonly kick_pmul: number;
|
||||
readonly kick_poff: number;
|
||||
readonly kick_amp0: number;
|
||||
readonly kick_amp1: number;
|
||||
readonly snare_ratio0: number;
|
||||
readonly snare_ratio1: number;
|
||||
readonly snare_ratio2: number;
|
||||
readonly snare_pmul: number;
|
||||
readonly snare_poff: number;
|
||||
readonly snare_amp0: number;
|
||||
readonly snare_amp1: number;
|
||||
readonly tom_ratio0: number;
|
||||
readonly tom_ratio1: number;
|
||||
readonly tom_ratio2: number;
|
||||
readonly tom_pmul: number;
|
||||
readonly tom_poff: number;
|
||||
readonly tom_amp0: number;
|
||||
readonly tom_amp1: number;
|
||||
readonly lowtom_ratio0: number;
|
||||
readonly lowtom_ratio1: number;
|
||||
readonly lowtom_ratio2: number;
|
||||
readonly lowtom_pmul: number;
|
||||
readonly lowtom_poff: number;
|
||||
readonly lowtom_amp0: number;
|
||||
readonly lowtom_amp1: number;
|
||||
readonly rim_ratio0: number;
|
||||
readonly rim_ratio1: number;
|
||||
readonly rim_ratio2: number;
|
||||
readonly rim_pmul: number;
|
||||
readonly rim_poff: number;
|
||||
readonly rim_amp0: number;
|
||||
readonly rim_amp1: number;
|
||||
readonly hat_ratio0: number;
|
||||
readonly hat_ratio1: number;
|
||||
readonly hat_ratio2: number;
|
||||
readonly hat_pmul: number;
|
||||
readonly hat_poff: number;
|
||||
readonly hat_amp0: number;
|
||||
readonly hat_amp1: number;
|
||||
readonly ophat_ratio0: number;
|
||||
readonly ophat_ratio1: number;
|
||||
readonly ophat_ratio2: number;
|
||||
readonly ophat_pmul: number;
|
||||
readonly ophat_poff: number;
|
||||
readonly ophat_amp0: number;
|
||||
readonly ophat_amp1: number;
|
||||
readonly perc_ratio0: number;
|
||||
readonly perc_ratio1: number;
|
||||
readonly perc_ratio2: number;
|
||||
readonly perc_pmul: number;
|
||||
readonly perc_poff: number;
|
||||
readonly perc_amp0: number;
|
||||
readonly perc_amp1: number;
|
||||
}
|
||||
|
||||
export const BreakorSchema: ModeSchema = {
|
||||
mode_id: 'breakor',
|
||||
engine_id: 'breakor',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 4,
|
||||
hidden_layers: [
|
||||
10,
|
||||
14,
|
||||
18,
|
||||
],
|
||||
output_size: 56,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'kick_ratio0',
|
||||
label: 'Kick Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'kick',
|
||||
},
|
||||
{
|
||||
name: 'kick_ratio1',
|
||||
label: 'Kick Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'kick',
|
||||
},
|
||||
{
|
||||
name: 'kick_ratio2',
|
||||
label: 'Kick Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'kick',
|
||||
},
|
||||
{
|
||||
name: 'kick_pmul',
|
||||
label: 'Kick Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'kick',
|
||||
},
|
||||
{
|
||||
name: 'kick_poff',
|
||||
label: 'Kick Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'kick',
|
||||
},
|
||||
{
|
||||
name: 'kick_amp0',
|
||||
label: 'Kick Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'kick',
|
||||
},
|
||||
{
|
||||
name: 'kick_amp1',
|
||||
label: 'Kick Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'kick',
|
||||
},
|
||||
{
|
||||
name: 'snare_ratio0',
|
||||
label: 'Snare Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'snare',
|
||||
},
|
||||
{
|
||||
name: 'snare_ratio1',
|
||||
label: 'Snare Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'snare',
|
||||
},
|
||||
{
|
||||
name: 'snare_ratio2',
|
||||
label: 'Snare Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'snare',
|
||||
},
|
||||
{
|
||||
name: 'snare_pmul',
|
||||
label: 'Snare Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'snare',
|
||||
},
|
||||
{
|
||||
name: 'snare_poff',
|
||||
label: 'Snare Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'snare',
|
||||
},
|
||||
{
|
||||
name: 'snare_amp0',
|
||||
label: 'Snare Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'snare',
|
||||
},
|
||||
{
|
||||
name: 'snare_amp1',
|
||||
label: 'Snare Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'snare',
|
||||
},
|
||||
{
|
||||
name: 'tom_ratio0',
|
||||
label: 'Tom Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'tom',
|
||||
},
|
||||
{
|
||||
name: 'tom_ratio1',
|
||||
label: 'Tom Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'tom',
|
||||
},
|
||||
{
|
||||
name: 'tom_ratio2',
|
||||
label: 'Tom Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'tom',
|
||||
},
|
||||
{
|
||||
name: 'tom_pmul',
|
||||
label: 'Tom Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'tom',
|
||||
},
|
||||
{
|
||||
name: 'tom_poff',
|
||||
label: 'Tom Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'tom',
|
||||
},
|
||||
{
|
||||
name: 'tom_amp0',
|
||||
label: 'Tom Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'tom',
|
||||
},
|
||||
{
|
||||
name: 'tom_amp1',
|
||||
label: 'Tom Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'tom',
|
||||
},
|
||||
{
|
||||
name: 'lowtom_ratio0',
|
||||
label: 'LowTom Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'lowtom',
|
||||
},
|
||||
{
|
||||
name: 'lowtom_ratio1',
|
||||
label: 'LowTom Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'lowtom',
|
||||
},
|
||||
{
|
||||
name: 'lowtom_ratio2',
|
||||
label: 'LowTom Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'lowtom',
|
||||
},
|
||||
{
|
||||
name: 'lowtom_pmul',
|
||||
label: 'LowTom Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'lowtom',
|
||||
},
|
||||
{
|
||||
name: 'lowtom_poff',
|
||||
label: 'LowTom Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'lowtom',
|
||||
},
|
||||
{
|
||||
name: 'lowtom_amp0',
|
||||
label: 'LowTom Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'lowtom',
|
||||
},
|
||||
{
|
||||
name: 'lowtom_amp1',
|
||||
label: 'LowTom Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'lowtom',
|
||||
},
|
||||
{
|
||||
name: 'rim_ratio0',
|
||||
label: 'Rim Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'rim',
|
||||
},
|
||||
{
|
||||
name: 'rim_ratio1',
|
||||
label: 'Rim Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'rim',
|
||||
},
|
||||
{
|
||||
name: 'rim_ratio2',
|
||||
label: 'Rim Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'rim',
|
||||
},
|
||||
{
|
||||
name: 'rim_pmul',
|
||||
label: 'Rim Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'rim',
|
||||
},
|
||||
{
|
||||
name: 'rim_poff',
|
||||
label: 'Rim Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'rim',
|
||||
},
|
||||
{
|
||||
name: 'rim_amp0',
|
||||
label: 'Rim Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'rim',
|
||||
},
|
||||
{
|
||||
name: 'rim_amp1',
|
||||
label: 'Rim Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'rim',
|
||||
},
|
||||
{
|
||||
name: 'hat_ratio0',
|
||||
label: 'Hat Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'hat',
|
||||
},
|
||||
{
|
||||
name: 'hat_ratio1',
|
||||
label: 'Hat Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'hat',
|
||||
},
|
||||
{
|
||||
name: 'hat_ratio2',
|
||||
label: 'Hat Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'hat',
|
||||
},
|
||||
{
|
||||
name: 'hat_pmul',
|
||||
label: 'Hat Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'hat',
|
||||
},
|
||||
{
|
||||
name: 'hat_poff',
|
||||
label: 'Hat Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'hat',
|
||||
},
|
||||
{
|
||||
name: 'hat_amp0',
|
||||
label: 'Hat Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'hat',
|
||||
},
|
||||
{
|
||||
name: 'hat_amp1',
|
||||
label: 'Hat Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'hat',
|
||||
},
|
||||
{
|
||||
name: 'ophat_ratio0',
|
||||
label: 'OpenHat Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'openhat',
|
||||
},
|
||||
{
|
||||
name: 'ophat_ratio1',
|
||||
label: 'OpenHat Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'openhat',
|
||||
},
|
||||
{
|
||||
name: 'ophat_ratio2',
|
||||
label: 'OpenHat Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'openhat',
|
||||
},
|
||||
{
|
||||
name: 'ophat_pmul',
|
||||
label: 'OpenHat Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'openhat',
|
||||
},
|
||||
{
|
||||
name: 'ophat_poff',
|
||||
label: 'OpenHat Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'openhat',
|
||||
},
|
||||
{
|
||||
name: 'ophat_amp0',
|
||||
label: 'OpenHat Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'openhat',
|
||||
},
|
||||
{
|
||||
name: 'ophat_amp1',
|
||||
label: 'OpenHat Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'openhat',
|
||||
},
|
||||
{
|
||||
name: 'perc_ratio0',
|
||||
label: 'Perc Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'perc',
|
||||
},
|
||||
{
|
||||
name: 'perc_ratio1',
|
||||
label: 'Perc Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'perc',
|
||||
},
|
||||
{
|
||||
name: 'perc_ratio2',
|
||||
label: 'Perc Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'perc',
|
||||
},
|
||||
{
|
||||
name: 'perc_pmul',
|
||||
label: 'Perc Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'perc',
|
||||
},
|
||||
{
|
||||
name: 'perc_poff',
|
||||
label: 'Perc Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'perc',
|
||||
},
|
||||
{
|
||||
name: 'perc_amp0',
|
||||
label: 'Perc Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'perc',
|
||||
},
|
||||
{
|
||||
name: 'perc_amp1',
|
||||
label: 'Perc Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'perc',
|
||||
},
|
||||
],
|
||||
voice_spaces: [],
|
||||
ui: {
|
||||
primary_input: 'xy_pad',
|
||||
show_voice_space_selector: false,
|
||||
show_synth_visualizer: false,
|
||||
},
|
||||
};
|
||||
283
manifold/src/modes/generated/channel_strip_schema.ts
Normal file
283
manifold/src/modes/generated/channel_strip_schema.ts
Normal file
|
|
@ -0,0 +1,283 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/channel_strip.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface ChannelStripParams {
|
||||
readonly pre_gain: number;
|
||||
readonly peak0_freq: number;
|
||||
readonly p02: number;
|
||||
readonly p03: number;
|
||||
readonly peak1_freq: number;
|
||||
readonly peak_q: number;
|
||||
readonly peak_gain: number;
|
||||
readonly in_lpf_cutoff: number;
|
||||
readonly in_hpf_cutoff: number;
|
||||
readonly p09: number;
|
||||
readonly comp_threshold: number;
|
||||
readonly comp_ratio: number;
|
||||
readonly comp_attack: number;
|
||||
readonly comp_release: number;
|
||||
readonly lowshelf_freq: number;
|
||||
readonly lowshelf_q: number;
|
||||
readonly lowshelf_gain: number;
|
||||
readonly highshelf_freq: number;
|
||||
readonly highshelf_q: number;
|
||||
readonly highshelf_gain: number;
|
||||
readonly p20: number;
|
||||
readonly p21: number;
|
||||
readonly p22: number;
|
||||
readonly post_gain: number;
|
||||
}
|
||||
|
||||
export const ChannelStripSchema: ModeSchema = {
|
||||
mode_id: 'channel_strip',
|
||||
engine_id: 'channel_strip',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 4,
|
||||
hidden_layers: [
|
||||
10,
|
||||
10,
|
||||
14,
|
||||
],
|
||||
output_size: 24,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'pre_gain',
|
||||
label: 'Pre Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'square',
|
||||
group: 'gain',
|
||||
},
|
||||
{
|
||||
name: 'peak0_freq',
|
||||
label: 'Peak0 Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'p02',
|
||||
label: 'Param 02',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'p03',
|
||||
label: 'Param 03',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'peak1_freq',
|
||||
label: 'Peak1 Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'peak_q',
|
||||
label: 'Peak Q',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'linear',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'peak_gain',
|
||||
label: 'Peak Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'in_lpf_cutoff',
|
||||
label: 'Input LPF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.7,
|
||||
curve: 'square',
|
||||
group: 'filters',
|
||||
},
|
||||
{
|
||||
name: 'in_hpf_cutoff',
|
||||
label: 'Input HPF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.2,
|
||||
curve: 'square',
|
||||
group: 'filters',
|
||||
},
|
||||
{
|
||||
name: 'p09',
|
||||
label: 'Param 09',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'comp_threshold',
|
||||
label: 'Comp Threshold',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'comp',
|
||||
},
|
||||
{
|
||||
name: 'comp_ratio',
|
||||
label: 'Comp Ratio',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'comp',
|
||||
},
|
||||
{
|
||||
name: 'comp_attack',
|
||||
label: 'Comp Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.1,
|
||||
curve: 'linear',
|
||||
group: 'comp',
|
||||
},
|
||||
{
|
||||
name: 'comp_release',
|
||||
label: 'Comp Release',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'comp',
|
||||
},
|
||||
{
|
||||
name: 'lowshelf_freq',
|
||||
label: 'Lowshelf Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'lowshelf_q',
|
||||
label: 'Lowshelf Q',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'linear',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'lowshelf_gain',
|
||||
label: 'Lowshelf Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'highshelf_freq',
|
||||
label: 'Highshelf Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'highshelf_q',
|
||||
label: 'Highshelf Q',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'linear',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'highshelf_gain',
|
||||
label: 'Highshelf Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'eq',
|
||||
},
|
||||
{
|
||||
name: 'p20',
|
||||
label: 'Param 20',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'p21',
|
||||
label: 'Param 21',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'p22',
|
||||
label: 'Param 22',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'post_gain',
|
||||
label: 'Post Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'square',
|
||||
group: 'gain',
|
||||
},
|
||||
],
|
||||
voice_spaces: [
|
||||
'WannabeNeve66',
|
||||
'SSL 4K G-ist',
|
||||
'SSL 9K-inda',
|
||||
'MaleVox',
|
||||
'FemaleVox',
|
||||
'Neve 80',
|
||||
],
|
||||
ui: {
|
||||
primary_input: 'joystick',
|
||||
show_voice_space_selector: true,
|
||||
show_synth_visualizer: false,
|
||||
},
|
||||
};
|
||||
436
manifold/src/modes/generated/elysiamorf_schema.ts
Normal file
436
manifold/src/modes/generated/elysiamorf_schema.ts
Normal file
|
|
@ -0,0 +1,436 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/elysiamorf.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface ElysiamorfParams {
|
||||
readonly fm0_carrier: number;
|
||||
readonly fm0_mod_freq: number;
|
||||
readonly fm0_mod_index: number;
|
||||
readonly fm0_phasor_mul: number;
|
||||
readonly fm0_phase_off: number;
|
||||
readonly fm1_carrier: number;
|
||||
readonly fm1_mod_freq: number;
|
||||
readonly fm1_mod_index: number;
|
||||
readonly fm1_phasor_mul: number;
|
||||
readonly fm1_phase_off: number;
|
||||
readonly fm2_carrier: number;
|
||||
readonly fm2_mod_freq: number;
|
||||
readonly fm2_mod_index: number;
|
||||
readonly fm2_phasor_mul: number;
|
||||
readonly fm2_phase_off: number;
|
||||
readonly fm3_carrier: number;
|
||||
readonly fm3_mod_freq: number;
|
||||
readonly fm3_mod_index: number;
|
||||
readonly fm3_phasor_mul: number;
|
||||
readonly fm3_phase_off: number;
|
||||
readonly fm4_carrier: number;
|
||||
readonly fm4_mod_freq: number;
|
||||
readonly fm4_mod_index: number;
|
||||
readonly fm4_phasor_mul: number;
|
||||
readonly fm4_phase_off: number;
|
||||
readonly fm5_carrier: number;
|
||||
readonly fm5_mod_freq: number;
|
||||
readonly fm5_mod_index: number;
|
||||
readonly fm5_phasor_mul: number;
|
||||
readonly fm5_phase_off: number;
|
||||
readonly fm6_carrier: number;
|
||||
readonly fm6_mod_freq: number;
|
||||
readonly fm6_mod_index: number;
|
||||
readonly fm6_phasor_mul: number;
|
||||
readonly fm6_phase_off: number;
|
||||
readonly fm7_carrier: number;
|
||||
readonly fm7_mod_freq: number;
|
||||
readonly fm7_mod_index: number;
|
||||
readonly fm7_phasor_mul: number;
|
||||
readonly fm7_phase_off: number;
|
||||
}
|
||||
|
||||
export const ElysiamorfSchema: ModeSchema = {
|
||||
mode_id: 'elysiamorf',
|
||||
engine_id: 'elysiamorf',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 4,
|
||||
hidden_layers: [
|
||||
10,
|
||||
14,
|
||||
18,
|
||||
],
|
||||
output_size: 40,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'fm0_carrier',
|
||||
label: 'FM0 Carrier',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm0',
|
||||
},
|
||||
{
|
||||
name: 'fm0_mod_freq',
|
||||
label: 'FM0 Mod Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm0',
|
||||
},
|
||||
{
|
||||
name: 'fm0_mod_index',
|
||||
label: 'FM0 Mod Index',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm0',
|
||||
},
|
||||
{
|
||||
name: 'fm0_phasor_mul',
|
||||
label: 'FM0 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm0',
|
||||
},
|
||||
{
|
||||
name: 'fm0_phase_off',
|
||||
label: 'FM0 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm0',
|
||||
},
|
||||
{
|
||||
name: 'fm1_carrier',
|
||||
label: 'FM1 Carrier',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm1',
|
||||
},
|
||||
{
|
||||
name: 'fm1_mod_freq',
|
||||
label: 'FM1 Mod Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm1',
|
||||
},
|
||||
{
|
||||
name: 'fm1_mod_index',
|
||||
label: 'FM1 Mod Index',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm1',
|
||||
},
|
||||
{
|
||||
name: 'fm1_phasor_mul',
|
||||
label: 'FM1 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm1',
|
||||
},
|
||||
{
|
||||
name: 'fm1_phase_off',
|
||||
label: 'FM1 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm1',
|
||||
},
|
||||
{
|
||||
name: 'fm2_carrier',
|
||||
label: 'FM2 Carrier',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm2',
|
||||
},
|
||||
{
|
||||
name: 'fm2_mod_freq',
|
||||
label: 'FM2 Mod Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm2',
|
||||
},
|
||||
{
|
||||
name: 'fm2_mod_index',
|
||||
label: 'FM2 Mod Index',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm2',
|
||||
},
|
||||
{
|
||||
name: 'fm2_phasor_mul',
|
||||
label: 'FM2 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm2',
|
||||
},
|
||||
{
|
||||
name: 'fm2_phase_off',
|
||||
label: 'FM2 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm2',
|
||||
},
|
||||
{
|
||||
name: 'fm3_carrier',
|
||||
label: 'FM3 Carrier',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm3',
|
||||
},
|
||||
{
|
||||
name: 'fm3_mod_freq',
|
||||
label: 'FM3 Mod Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm3',
|
||||
},
|
||||
{
|
||||
name: 'fm3_mod_index',
|
||||
label: 'FM3 Mod Index',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm3',
|
||||
},
|
||||
{
|
||||
name: 'fm3_phasor_mul',
|
||||
label: 'FM3 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm3',
|
||||
},
|
||||
{
|
||||
name: 'fm3_phase_off',
|
||||
label: 'FM3 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm3',
|
||||
},
|
||||
{
|
||||
name: 'fm4_carrier',
|
||||
label: 'FM4 Carrier',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm4',
|
||||
},
|
||||
{
|
||||
name: 'fm4_mod_freq',
|
||||
label: 'FM4 Mod Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm4',
|
||||
},
|
||||
{
|
||||
name: 'fm4_mod_index',
|
||||
label: 'FM4 Mod Index',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm4',
|
||||
},
|
||||
{
|
||||
name: 'fm4_phasor_mul',
|
||||
label: 'FM4 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm4',
|
||||
},
|
||||
{
|
||||
name: 'fm4_phase_off',
|
||||
label: 'FM4 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm4',
|
||||
},
|
||||
{
|
||||
name: 'fm5_carrier',
|
||||
label: 'FM5 Carrier',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm5',
|
||||
},
|
||||
{
|
||||
name: 'fm5_mod_freq',
|
||||
label: 'FM5 Mod Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm5',
|
||||
},
|
||||
{
|
||||
name: 'fm5_mod_index',
|
||||
label: 'FM5 Mod Index',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm5',
|
||||
},
|
||||
{
|
||||
name: 'fm5_phasor_mul',
|
||||
label: 'FM5 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm5',
|
||||
},
|
||||
{
|
||||
name: 'fm5_phase_off',
|
||||
label: 'FM5 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm5',
|
||||
},
|
||||
{
|
||||
name: 'fm6_carrier',
|
||||
label: 'FM6 Carrier',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm6',
|
||||
},
|
||||
{
|
||||
name: 'fm6_mod_freq',
|
||||
label: 'FM6 Mod Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm6',
|
||||
},
|
||||
{
|
||||
name: 'fm6_mod_index',
|
||||
label: 'FM6 Mod Index',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm6',
|
||||
},
|
||||
{
|
||||
name: 'fm6_phasor_mul',
|
||||
label: 'FM6 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm6',
|
||||
},
|
||||
{
|
||||
name: 'fm6_phase_off',
|
||||
label: 'FM6 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm6',
|
||||
},
|
||||
{
|
||||
name: 'fm7_carrier',
|
||||
label: 'FM7 Carrier',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm7',
|
||||
},
|
||||
{
|
||||
name: 'fm7_mod_freq',
|
||||
label: 'FM7 Mod Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'fm7',
|
||||
},
|
||||
{
|
||||
name: 'fm7_mod_index',
|
||||
label: 'FM7 Mod Index',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm7',
|
||||
},
|
||||
{
|
||||
name: 'fm7_phasor_mul',
|
||||
label: 'FM7 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm7',
|
||||
},
|
||||
{
|
||||
name: 'fm7_phase_off',
|
||||
label: 'FM7 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'fm7',
|
||||
},
|
||||
],
|
||||
voice_spaces: [],
|
||||
ui: {
|
||||
primary_input: 'xy_pad',
|
||||
show_voice_space_selector: false,
|
||||
show_synth_visualizer: false,
|
||||
},
|
||||
};
|
||||
13
manifold/src/modes/generated/index.ts
Normal file
13
manifold/src/modes/generated/index.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
// AUTOGENERATED — do not edit. Run `bun run codegen/generate.ts` to regenerate.
|
||||
// Re-exports every generated mode schema.
|
||||
|
||||
export * from './types';
|
||||
export * from './breakor_schema';
|
||||
export * from './channel_strip_schema';
|
||||
export * from './elysiamorf_schema';
|
||||
export * from './memlcelium_schema';
|
||||
export * from './paf_synth_schema';
|
||||
export * from './slp_workshop_schema';
|
||||
export * from './sound_analysis_midi_schema';
|
||||
export * from './verb_fx_schema';
|
||||
export * from './xiasri_schema';
|
||||
598
manifold/src/modes/generated/memlcelium_schema.ts
Normal file
598
manifold/src/modes/generated/memlcelium_schema.ts
Normal file
|
|
@ -0,0 +1,598 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/memlcelium.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface MemlceliumParams {
|
||||
readonly seq0_ratio0: number;
|
||||
readonly seq0_ratio1: number;
|
||||
readonly seq0_ratio2: number;
|
||||
readonly seq0_phasor_mul: number;
|
||||
readonly seq0_phase_off: number;
|
||||
readonly seq0_amp0: number;
|
||||
readonly seq0_amp1: number;
|
||||
readonly seq1_ratio0: number;
|
||||
readonly seq1_ratio1: number;
|
||||
readonly seq1_ratio2: number;
|
||||
readonly seq1_phasor_mul: number;
|
||||
readonly seq1_phase_off: number;
|
||||
readonly seq1_amp0: number;
|
||||
readonly seq1_amp1: number;
|
||||
readonly v0_base_freq: number;
|
||||
readonly v0_paf0_cf: number;
|
||||
readonly v0_paf1_cf: number;
|
||||
readonly v0_paf2_cf: number;
|
||||
readonly v0_paf0_bw: number;
|
||||
readonly v0_paf1_bw: number;
|
||||
readonly v0_paf2_bw: number;
|
||||
readonly v0_paf_vib: number;
|
||||
readonly v0_paf_vfr: number;
|
||||
readonly v0_paf0_shift: number;
|
||||
readonly v0_paf1_shift: number;
|
||||
readonly v0_paf2_shift: number;
|
||||
readonly v0_amp_attack: number;
|
||||
readonly v0_amp_decay: number;
|
||||
readonly v0_amp_sustain: number;
|
||||
readonly v0_amp_release: number;
|
||||
readonly v0_pitch_attack: number;
|
||||
readonly v0_pitch_decay: number;
|
||||
readonly v0_pitch_emph: number;
|
||||
readonly v0_shape_gain: number;
|
||||
readonly v0_shape_asym: number;
|
||||
readonly v0_shape_mix: number;
|
||||
readonly v0_rm_gain: number;
|
||||
readonly v1_base_freq: number;
|
||||
readonly v1_detune1: number;
|
||||
readonly v1_detune2: number;
|
||||
readonly v1_paf0_cf: number;
|
||||
readonly v1_paf1_cf: number;
|
||||
readonly v1_paf2_cf: number;
|
||||
readonly v1_paf0_bw: number;
|
||||
readonly v1_paf1_bw: number;
|
||||
readonly v1_paf2_bw: number;
|
||||
readonly v1_paf0_shift: number;
|
||||
readonly v1_paf1_shift: number;
|
||||
readonly v1_paf2_shift: number;
|
||||
readonly v1_amp_attack: number;
|
||||
readonly v1_amp_decay: number;
|
||||
readonly v1_amp_sustain: number;
|
||||
readonly v1_amp_release: number;
|
||||
readonly v1_pitch_attack: number;
|
||||
readonly v1_pitch_decay: number;
|
||||
readonly v1_pitch_emph: number;
|
||||
}
|
||||
|
||||
export const MemlceliumSchema: ModeSchema = {
|
||||
mode_id: 'memlcelium',
|
||||
engine_id: 'memlcelium',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 4,
|
||||
hidden_layers: [
|
||||
10,
|
||||
14,
|
||||
18,
|
||||
],
|
||||
output_size: 56,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'seq0_ratio0',
|
||||
label: 'Seq0 Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_ratio1',
|
||||
label: 'Seq0 Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_ratio2',
|
||||
label: 'Seq0 Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_phasor_mul',
|
||||
label: 'Seq0 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_phase_off',
|
||||
label: 'Seq0 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_amp0',
|
||||
label: 'Seq0 Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_amp1',
|
||||
label: 'Seq0 Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_ratio0',
|
||||
label: 'Seq1 Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_ratio1',
|
||||
label: 'Seq1 Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_ratio2',
|
||||
label: 'Seq1 Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_phasor_mul',
|
||||
label: 'Seq1 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_phase_off',
|
||||
label: 'Seq1 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_amp0',
|
||||
label: 'Seq1 Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_amp1',
|
||||
label: 'Seq1 Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'v0_base_freq',
|
||||
label: 'V0 Base Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf0_cf',
|
||||
label: 'V0 PAF0 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf1_cf',
|
||||
label: 'V0 PAF1 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf2_cf',
|
||||
label: 'V0 PAF2 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf0_bw',
|
||||
label: 'V0 PAF0 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf1_bw',
|
||||
label: 'V0 PAF1 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf2_bw',
|
||||
label: 'V0 PAF2 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf_vib',
|
||||
label: 'V0 PAF Vib',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf_vfr',
|
||||
label: 'V0 PAF Vib Rate',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'square',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf0_shift',
|
||||
label: 'V0 PAF0 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf1_shift',
|
||||
label: 'V0 PAF1 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf2_shift',
|
||||
label: 'V0 PAF2 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_amp_attack',
|
||||
label: 'V0 Amp Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_amp_decay',
|
||||
label: 'V0 Amp Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_amp_sustain',
|
||||
label: 'V0 Amp Sustain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_amp_release',
|
||||
label: 'V0 Amp Release',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_pitch_attack',
|
||||
label: 'V0 Pitch Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_pitch_decay',
|
||||
label: 'V0 Pitch Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_pitch_emph',
|
||||
label: 'V0 Pitch Emph',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_shape_gain',
|
||||
label: 'V0 Shape Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_shape_asym',
|
||||
label: 'V0 Shape Asym',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_shape_mix',
|
||||
label: 'V0 Shape Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_rm_gain',
|
||||
label: 'V0 RingMod Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_base_freq',
|
||||
label: 'V1 Base Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_detune1',
|
||||
label: 'V1 Detune 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_detune2',
|
||||
label: 'V1 Detune 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf0_cf',
|
||||
label: 'V1 PAF0 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf1_cf',
|
||||
label: 'V1 PAF1 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf2_cf',
|
||||
label: 'V1 PAF2 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf0_bw',
|
||||
label: 'V1 PAF0 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf1_bw',
|
||||
label: 'V1 PAF1 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf2_bw',
|
||||
label: 'V1 PAF2 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf0_shift',
|
||||
label: 'V1 PAF0 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf1_shift',
|
||||
label: 'V1 PAF1 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf2_shift',
|
||||
label: 'V1 PAF2 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_amp_attack',
|
||||
label: 'V1 Amp Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_amp_decay',
|
||||
label: 'V1 Amp Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_amp_sustain',
|
||||
label: 'V1 Amp Sustain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_amp_release',
|
||||
label: 'V1 Amp Release',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_pitch_attack',
|
||||
label: 'V1 Pitch Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_pitch_decay',
|
||||
label: 'V1 Pitch Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_pitch_emph',
|
||||
label: 'V1 Pitch Emph',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_env',
|
||||
},
|
||||
],
|
||||
voice_spaces: [
|
||||
'Direct',
|
||||
],
|
||||
ui: {
|
||||
primary_input: 'xy_pad',
|
||||
show_voice_space_selector: false,
|
||||
show_synth_visualizer: true,
|
||||
},
|
||||
};
|
||||
374
manifold/src/modes/generated/paf_synth_schema.ts
Normal file
374
manifold/src/modes/generated/paf_synth_schema.ts
Normal file
|
|
@ -0,0 +1,374 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/paf_synth.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface PafSynthParams {
|
||||
readonly p00: number;
|
||||
readonly p01: number;
|
||||
readonly paf0_cf: number;
|
||||
readonly paf1_cf: number;
|
||||
readonly p04: number;
|
||||
readonly paf0_bw: number;
|
||||
readonly paf1_bw: number;
|
||||
readonly p07: number;
|
||||
readonly paf0_vib: number;
|
||||
readonly paf1_vib: number;
|
||||
readonly p10: number;
|
||||
readonly paf0_vfr: number;
|
||||
readonly paf1_vfr: number;
|
||||
readonly p13: number;
|
||||
readonly paf0_shift: number;
|
||||
readonly paf1_shift: number;
|
||||
readonly p16: number;
|
||||
readonly dl1mix: number;
|
||||
readonly p18: number;
|
||||
readonly dlfb: number;
|
||||
readonly env_decay: number;
|
||||
readonly p21: number;
|
||||
readonly p22: number;
|
||||
readonly p23: number;
|
||||
readonly p24: number;
|
||||
readonly p25: number;
|
||||
readonly shape_gain: number;
|
||||
readonly shape_asym: number;
|
||||
readonly shape_mix: number;
|
||||
readonly rm_gain: number;
|
||||
readonly env_attack: number;
|
||||
readonly env_sustain: number;
|
||||
readonly env_release: number;
|
||||
}
|
||||
|
||||
export const PafSynthSchema: ModeSchema = {
|
||||
mode_id: 'paf_synth',
|
||||
engine_id: 'paf_synth',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 4,
|
||||
hidden_layers: [
|
||||
10,
|
||||
10,
|
||||
14,
|
||||
],
|
||||
output_size: 33,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'p00',
|
||||
label: 'Param 00',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'p01',
|
||||
label: 'Param 01',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'paf0_cf',
|
||||
label: 'PAF0 Center Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'operators',
|
||||
},
|
||||
{
|
||||
name: 'paf1_cf',
|
||||
label: 'PAF1 Center Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'operators',
|
||||
},
|
||||
{
|
||||
name: 'p04',
|
||||
label: 'Param 04',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'paf0_bw',
|
||||
label: 'PAF0 Bandwidth',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'operators',
|
||||
},
|
||||
{
|
||||
name: 'paf1_bw',
|
||||
label: 'PAF1 Bandwidth',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'operators',
|
||||
},
|
||||
{
|
||||
name: 'p07',
|
||||
label: 'Param 07',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'paf0_vib',
|
||||
label: 'PAF0 Vibrato Depth',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'modulation',
|
||||
},
|
||||
{
|
||||
name: 'paf1_vib',
|
||||
label: 'PAF1 Vibrato Depth',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'modulation',
|
||||
},
|
||||
{
|
||||
name: 'p10',
|
||||
label: 'Param 10',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'paf0_vfr',
|
||||
label: 'PAF0 Vibrato Rate',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'square',
|
||||
group: 'modulation',
|
||||
},
|
||||
{
|
||||
name: 'paf1_vfr',
|
||||
label: 'PAF1 Vibrato Rate',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'square',
|
||||
group: 'modulation',
|
||||
},
|
||||
{
|
||||
name: 'p13',
|
||||
label: 'Param 13',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'paf0_shift',
|
||||
label: 'PAF0 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'operators',
|
||||
},
|
||||
{
|
||||
name: 'paf1_shift',
|
||||
label: 'PAF1 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'operators',
|
||||
},
|
||||
{
|
||||
name: 'p16',
|
||||
label: 'Param 16',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'dl1mix',
|
||||
label: 'Delay Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'delay',
|
||||
},
|
||||
{
|
||||
name: 'p18',
|
||||
label: 'Param 18',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'dlfb',
|
||||
label: 'Delay Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'delay',
|
||||
},
|
||||
{
|
||||
name: 'env_decay',
|
||||
label: 'Env Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'envelope',
|
||||
},
|
||||
{
|
||||
name: 'p21',
|
||||
label: 'Param 21',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'p22',
|
||||
label: 'Param 22',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'p23',
|
||||
label: 'Param 23',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'p24',
|
||||
label: 'Param 24',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'p25',
|
||||
label: 'Param 25',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'shape_gain',
|
||||
label: 'Sine Shape Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'shaper',
|
||||
},
|
||||
{
|
||||
name: 'shape_asym',
|
||||
label: 'Sine Shape Asym',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'shaper',
|
||||
},
|
||||
{
|
||||
name: 'shape_mix',
|
||||
label: 'Sine Shape Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'shaper',
|
||||
},
|
||||
{
|
||||
name: 'rm_gain',
|
||||
label: 'Ring Mod Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'shaper',
|
||||
},
|
||||
{
|
||||
name: 'env_attack',
|
||||
label: 'Env Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'envelope',
|
||||
},
|
||||
{
|
||||
name: 'env_sustain',
|
||||
label: 'Env Sustain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'envelope',
|
||||
},
|
||||
{
|
||||
name: 'env_release',
|
||||
label: 'Env Release',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'linear',
|
||||
group: 'envelope',
|
||||
},
|
||||
],
|
||||
voice_spaces: [
|
||||
'Ellipticacacia',
|
||||
'Rowantares',
|
||||
'Neemeda',
|
||||
'Aquillow',
|
||||
'Magnetarch',
|
||||
'Elderstar',
|
||||
'Ipeleiades',
|
||||
],
|
||||
ui: {
|
||||
primary_input: 'xy_pad',
|
||||
show_voice_space_selector: true,
|
||||
show_synth_visualizer: true,
|
||||
},
|
||||
};
|
||||
598
manifold/src/modes/generated/slp_workshop_schema.ts
Normal file
598
manifold/src/modes/generated/slp_workshop_schema.ts
Normal file
|
|
@ -0,0 +1,598 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/slp_workshop.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface SlpWorkshopParams {
|
||||
readonly seq0_ratio0: number;
|
||||
readonly seq0_ratio1: number;
|
||||
readonly seq0_ratio2: number;
|
||||
readonly seq0_phasor_mul: number;
|
||||
readonly seq0_phase_off: number;
|
||||
readonly seq0_amp0: number;
|
||||
readonly seq0_amp1: number;
|
||||
readonly seq1_ratio0: number;
|
||||
readonly seq1_ratio1: number;
|
||||
readonly seq1_ratio2: number;
|
||||
readonly seq1_phasor_mul: number;
|
||||
readonly seq1_phase_off: number;
|
||||
readonly seq1_amp0: number;
|
||||
readonly seq1_amp1: number;
|
||||
readonly v0_base_freq: number;
|
||||
readonly v0_paf0_cf: number;
|
||||
readonly v0_paf1_cf: number;
|
||||
readonly v0_paf2_cf: number;
|
||||
readonly v0_paf0_bw: number;
|
||||
readonly v0_paf1_bw: number;
|
||||
readonly v0_paf2_bw: number;
|
||||
readonly v0_paf_vib: number;
|
||||
readonly v0_paf_vfr: number;
|
||||
readonly v0_paf0_shift: number;
|
||||
readonly v0_paf1_shift: number;
|
||||
readonly v0_paf2_shift: number;
|
||||
readonly v0_amp_attack: number;
|
||||
readonly v0_amp_decay: number;
|
||||
readonly v0_amp_sustain: number;
|
||||
readonly v0_amp_release: number;
|
||||
readonly v0_pitch_attack: number;
|
||||
readonly v0_pitch_decay: number;
|
||||
readonly v0_pitch_emph: number;
|
||||
readonly v0_shape_gain: number;
|
||||
readonly v0_shape_asym: number;
|
||||
readonly v0_shape_mix: number;
|
||||
readonly v0_rm_gain: number;
|
||||
readonly v1_base_freq: number;
|
||||
readonly v1_detune1: number;
|
||||
readonly v1_detune2: number;
|
||||
readonly v1_paf0_cf: number;
|
||||
readonly v1_paf1_cf: number;
|
||||
readonly v1_paf2_cf: number;
|
||||
readonly v1_paf0_bw: number;
|
||||
readonly v1_paf1_bw: number;
|
||||
readonly v1_paf2_bw: number;
|
||||
readonly v1_paf0_shift: number;
|
||||
readonly v1_paf1_shift: number;
|
||||
readonly v1_paf2_shift: number;
|
||||
readonly v1_amp_attack: number;
|
||||
readonly v1_amp_decay: number;
|
||||
readonly v1_amp_sustain: number;
|
||||
readonly v1_amp_release: number;
|
||||
readonly v1_pitch_attack: number;
|
||||
readonly v1_pitch_decay: number;
|
||||
readonly v1_pitch_emph: number;
|
||||
}
|
||||
|
||||
export const SlpWorkshopSchema: ModeSchema = {
|
||||
mode_id: 'slp_workshop',
|
||||
engine_id: 'memlcelium',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 4,
|
||||
hidden_layers: [
|
||||
10,
|
||||
14,
|
||||
18,
|
||||
],
|
||||
output_size: 56,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'seq0_ratio0',
|
||||
label: 'Seq0 Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_ratio1',
|
||||
label: 'Seq0 Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_ratio2',
|
||||
label: 'Seq0 Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_phasor_mul',
|
||||
label: 'Seq0 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_phase_off',
|
||||
label: 'Seq0 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_amp0',
|
||||
label: 'Seq0 Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq0_amp1',
|
||||
label: 'Seq0 Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_ratio0',
|
||||
label: 'Seq1 Ratio 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_ratio1',
|
||||
label: 'Seq1 Ratio 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_ratio2',
|
||||
label: 'Seq1 Ratio 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_phasor_mul',
|
||||
label: 'Seq1 Phasor Mul',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_phase_off',
|
||||
label: 'Seq1 Phase Off',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_amp0',
|
||||
label: 'Seq1 Amp 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'seq1_amp1',
|
||||
label: 'Seq1 Amp 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'sequencer',
|
||||
},
|
||||
{
|
||||
name: 'v0_base_freq',
|
||||
label: 'V0 Base Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf0_cf',
|
||||
label: 'V0 PAF0 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf1_cf',
|
||||
label: 'V0 PAF1 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf2_cf',
|
||||
label: 'V0 PAF2 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf0_bw',
|
||||
label: 'V0 PAF0 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf1_bw',
|
||||
label: 'V0 PAF1 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf2_bw',
|
||||
label: 'V0 PAF2 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf_vib',
|
||||
label: 'V0 PAF Vib',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf_vfr',
|
||||
label: 'V0 PAF Vib Rate',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'square',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf0_shift',
|
||||
label: 'V0 PAF0 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf1_shift',
|
||||
label: 'V0 PAF1 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_paf2_shift',
|
||||
label: 'V0 PAF2 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_amp_attack',
|
||||
label: 'V0 Amp Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_amp_decay',
|
||||
label: 'V0 Amp Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_amp_sustain',
|
||||
label: 'V0 Amp Sustain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_amp_release',
|
||||
label: 'V0 Amp Release',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_pitch_attack',
|
||||
label: 'V0 Pitch Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_pitch_decay',
|
||||
label: 'V0 Pitch Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_pitch_emph',
|
||||
label: 'V0 Pitch Emph',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_env',
|
||||
},
|
||||
{
|
||||
name: 'v0_shape_gain',
|
||||
label: 'V0 Shape Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_shape_asym',
|
||||
label: 'V0 Shape Asym',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_shape_mix',
|
||||
label: 'V0 Shape Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v0_rm_gain',
|
||||
label: 'V0 RingMod Gain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v0_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_base_freq',
|
||||
label: 'V1 Base Freq',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_detune1',
|
||||
label: 'V1 Detune 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_detune2',
|
||||
label: 'V1 Detune 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf0_cf',
|
||||
label: 'V1 PAF0 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf1_cf',
|
||||
label: 'V1 PAF1 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf2_cf',
|
||||
label: 'V1 PAF2 CF',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf0_bw',
|
||||
label: 'V1 PAF0 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf1_bw',
|
||||
label: 'V1 PAF1 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf2_bw',
|
||||
label: 'V1 PAF2 BW',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf0_shift',
|
||||
label: 'V1 PAF0 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf1_shift',
|
||||
label: 'V1 PAF1 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_paf2_shift',
|
||||
label: 'V1 PAF2 Shift',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_synth',
|
||||
},
|
||||
{
|
||||
name: 'v1_amp_attack',
|
||||
label: 'V1 Amp Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_amp_decay',
|
||||
label: 'V1 Amp Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_amp_sustain',
|
||||
label: 'V1 Amp Sustain',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_amp_release',
|
||||
label: 'V1 Amp Release',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_pitch_attack',
|
||||
label: 'V1 Pitch Attack',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_pitch_decay',
|
||||
label: 'V1 Pitch Decay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.3,
|
||||
curve: 'square',
|
||||
group: 'v1_env',
|
||||
},
|
||||
{
|
||||
name: 'v1_pitch_emph',
|
||||
label: 'V1 Pitch Emph',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'v1_env',
|
||||
},
|
||||
],
|
||||
voice_spaces: [
|
||||
'Direct',
|
||||
],
|
||||
ui: {
|
||||
primary_input: 'xy_pad',
|
||||
show_voice_space_selector: false,
|
||||
show_synth_visualizer: true,
|
||||
},
|
||||
};
|
||||
122
manifold/src/modes/generated/sound_analysis_midi_schema.ts
Normal file
122
manifold/src/modes/generated/sound_analysis_midi_schema.ts
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/sound_analysis_midi.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface SoundAnalysisMidiParams {
|
||||
readonly midi_cc0: number;
|
||||
readonly midi_cc1: number;
|
||||
readonly midi_cc2: number;
|
||||
readonly midi_cc3: number;
|
||||
readonly midi_cc4: number;
|
||||
readonly midi_cc5: number;
|
||||
readonly midi_cc6: number;
|
||||
readonly midi_cc7: number;
|
||||
}
|
||||
|
||||
export const SoundAnalysisMidiSchema: ModeSchema = {
|
||||
mode_id: 'sound_analysis_midi',
|
||||
engine_id: 'thru',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'audio_pitch',
|
||||
'audio_aperiodicity',
|
||||
'audio_energy',
|
||||
'audio_attack',
|
||||
'audio_brightness',
|
||||
'audio_energy_crude',
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 10,
|
||||
hidden_layers: [
|
||||
10,
|
||||
10,
|
||||
14,
|
||||
],
|
||||
output_size: 8,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'midi_cc0',
|
||||
label: 'MIDI CC 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'midi',
|
||||
},
|
||||
{
|
||||
name: 'midi_cc1',
|
||||
label: 'MIDI CC 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'midi',
|
||||
},
|
||||
{
|
||||
name: 'midi_cc2',
|
||||
label: 'MIDI CC 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'midi',
|
||||
},
|
||||
{
|
||||
name: 'midi_cc3',
|
||||
label: 'MIDI CC 3',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'midi',
|
||||
},
|
||||
{
|
||||
name: 'midi_cc4',
|
||||
label: 'MIDI CC 4',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'midi',
|
||||
},
|
||||
{
|
||||
name: 'midi_cc5',
|
||||
label: 'MIDI CC 5',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'midi',
|
||||
},
|
||||
{
|
||||
name: 'midi_cc6',
|
||||
label: 'MIDI CC 6',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'midi',
|
||||
},
|
||||
{
|
||||
name: 'midi_cc7',
|
||||
label: 'MIDI CC 7',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'midi',
|
||||
},
|
||||
],
|
||||
voice_spaces: [],
|
||||
ui: {
|
||||
primary_input: 'audio_in',
|
||||
show_voice_space_selector: false,
|
||||
show_synth_visualizer: false,
|
||||
},
|
||||
};
|
||||
54
manifold/src/modes/generated/types.ts
Normal file
54
manifold/src/modes/generated/types.ts
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
// AUTOGENERATED — do not edit. Run `bun run codegen/generate.ts` to regenerate.
|
||||
// Shared TypeScript types for generated mode schemas.
|
||||
|
||||
export type Curve =
|
||||
| 'linear'
|
||||
| 'exp'
|
||||
| 'log'
|
||||
| 'square'
|
||||
| 'sqrt'
|
||||
| 'sigmoid'
|
||||
| 'cubic';
|
||||
|
||||
export type PrimaryInput =
|
||||
| 'xy_pad'
|
||||
| 'joystick'
|
||||
| 'sliders'
|
||||
| 'audio_in'
|
||||
| 'midi_in'
|
||||
| 'none';
|
||||
|
||||
export interface Param {
|
||||
readonly name: string;
|
||||
readonly label: string;
|
||||
readonly min: number;
|
||||
readonly max: number;
|
||||
readonly default: number;
|
||||
readonly curve: Curve;
|
||||
readonly group: string;
|
||||
}
|
||||
|
||||
export interface MLConfig {
|
||||
readonly input_channels: readonly string[];
|
||||
readonly input_size: number;
|
||||
readonly hidden_layers: readonly number[];
|
||||
readonly output_size: number;
|
||||
readonly default_spread: number;
|
||||
readonly default_learning_rate: number;
|
||||
readonly default_max_iterations: number;
|
||||
}
|
||||
|
||||
export interface UIConfig {
|
||||
readonly primary_input: PrimaryInput;
|
||||
readonly show_voice_space_selector: boolean;
|
||||
readonly show_synth_visualizer: boolean;
|
||||
}
|
||||
|
||||
export interface ModeSchema {
|
||||
readonly mode_id: string;
|
||||
readonly engine_id: string;
|
||||
readonly ml: MLConfig;
|
||||
readonly params: readonly Param[];
|
||||
readonly voice_spaces: readonly string[];
|
||||
readonly ui: UIConfig;
|
||||
}
|
||||
519
manifold/src/modes/generated/verb_fx_schema.ts
Normal file
519
manifold/src/modes/generated/verb_fx_schema.ts
Normal file
|
|
@ -0,0 +1,519 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/verb_fx.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface VerbFxParams {
|
||||
readonly fb_delay_xfade: number;
|
||||
readonly lp0_fb: number;
|
||||
readonly lp0_cutoff: number;
|
||||
readonly lp1_fb: number;
|
||||
readonly lp1_cutoff: number;
|
||||
readonly lp2_fb: number;
|
||||
readonly lp2_cutoff: number;
|
||||
readonly lp3_fb: number;
|
||||
readonly lp3_cutoff: number;
|
||||
readonly lp4_fb: number;
|
||||
readonly lp4_cutoff: number;
|
||||
readonly lp5_fb: number;
|
||||
readonly lp5_cutoff: number;
|
||||
readonly lp6_fb: number;
|
||||
readonly lp6_cutoff: number;
|
||||
readonly lp7_fb: number;
|
||||
readonly lp7_cutoff: number;
|
||||
readonly allp0_fb: number;
|
||||
readonly allp1_fb: number;
|
||||
readonly allp2_fb: number;
|
||||
readonly allp3_fb: number;
|
||||
readonly fbank_f0: number;
|
||||
readonly fbank_f1: number;
|
||||
readonly fbank_f2: number;
|
||||
readonly fbank_f3: number;
|
||||
readonly fbank_f4: number;
|
||||
readonly fbank_f5: number;
|
||||
readonly fbank_f6: number;
|
||||
readonly fbank_f7: number;
|
||||
readonly fbank_res0: number;
|
||||
readonly fbank_res1: number;
|
||||
readonly fbank_res2: number;
|
||||
readonly fbank_res3: number;
|
||||
readonly fbank_res4: number;
|
||||
readonly fbank_res5: number;
|
||||
readonly fbank_res6: number;
|
||||
readonly fbank_res7: number;
|
||||
readonly delay0_time: number;
|
||||
readonly delay0_fb: number;
|
||||
readonly delay1_time: number;
|
||||
readonly delay1_fb: number;
|
||||
readonly delay2_time: number;
|
||||
readonly delay2_fb: number;
|
||||
readonly verb_vs_delay: number;
|
||||
readonly delay_to_verb: number;
|
||||
readonly delay_morph: number;
|
||||
readonly delay_blend: number;
|
||||
}
|
||||
|
||||
export const VerbFxSchema: ModeSchema = {
|
||||
mode_id: 'verb_fx',
|
||||
engine_id: 'verb_fx',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 4,
|
||||
hidden_layers: [
|
||||
10,
|
||||
14,
|
||||
18,
|
||||
],
|
||||
output_size: 47,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'fb_delay_xfade',
|
||||
label: 'Bank/Delay XFade',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'routing',
|
||||
},
|
||||
{
|
||||
name: 'lp0_fb',
|
||||
label: 'LP Comb 0 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp0_cutoff',
|
||||
label: 'LP Comb 0 Cutoff',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp1_fb',
|
||||
label: 'LP Comb 1 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp1_cutoff',
|
||||
label: 'LP Comb 1 Cutoff',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp2_fb',
|
||||
label: 'LP Comb 2 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp2_cutoff',
|
||||
label: 'LP Comb 2 Cutoff',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp3_fb',
|
||||
label: 'LP Comb 3 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp3_cutoff',
|
||||
label: 'LP Comb 3 Cutoff',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp4_fb',
|
||||
label: 'LP Comb 4 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp4_cutoff',
|
||||
label: 'LP Comb 4 Cutoff',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp5_fb',
|
||||
label: 'LP Comb 5 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp5_cutoff',
|
||||
label: 'LP Comb 5 Cutoff',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp6_fb',
|
||||
label: 'LP Comb 6 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp6_cutoff',
|
||||
label: 'LP Comb 6 Cutoff',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp7_fb',
|
||||
label: 'LP Comb 7 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'lp7_cutoff',
|
||||
label: 'LP Comb 7 Cutoff',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp0_fb',
|
||||
label: 'Allpass 0 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp1_fb',
|
||||
label: 'Allpass 1 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp2_fb',
|
||||
label: 'Allpass 2 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp3_fb',
|
||||
label: 'Allpass 3 FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'fbank_f0',
|
||||
label: 'Filterbank Freq 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_f1',
|
||||
label: 'Filterbank Freq 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_f2',
|
||||
label: 'Filterbank Freq 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_f3',
|
||||
label: 'Filterbank Freq 3',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_f4',
|
||||
label: 'Filterbank Freq 4',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_f5',
|
||||
label: 'Filterbank Freq 5',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_f6',
|
||||
label: 'Filterbank Freq 6',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_f7',
|
||||
label: 'Filterbank Freq 7',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_res0',
|
||||
label: 'Filterbank Res 0',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_res1',
|
||||
label: 'Filterbank Res 1',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_res2',
|
||||
label: 'Filterbank Res 2',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_res3',
|
||||
label: 'Filterbank Res 3',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_res4',
|
||||
label: 'Filterbank Res 4',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_res5',
|
||||
label: 'Filterbank Res 5',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_res6',
|
||||
label: 'Filterbank Res 6',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'fbank_res7',
|
||||
label: 'Filterbank Res 7',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'filterbank',
|
||||
},
|
||||
{
|
||||
name: 'delay0_time',
|
||||
label: 'Long Delay Time',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'delay0_fb',
|
||||
label: 'Long Delay FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'delay1_time',
|
||||
label: 'Med Delay Time',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'delay1_fb',
|
||||
label: 'Med Delay FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'delay2_time',
|
||||
label: 'Short Delay Time',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'delay2_fb',
|
||||
label: 'Short Delay FB',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'verb_vs_delay',
|
||||
label: 'Verb vs Delay',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'routing',
|
||||
},
|
||||
{
|
||||
name: 'delay_to_verb',
|
||||
label: 'Delay→Verb Send',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'routing',
|
||||
},
|
||||
{
|
||||
name: 'delay_morph',
|
||||
label: 'Delay Morph',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'delay_blend',
|
||||
label: 'Delay Blend',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
],
|
||||
voice_spaces: [
|
||||
'Default',
|
||||
'Resonant',
|
||||
'Soft',
|
||||
'Cathedral',
|
||||
'Shimmer',
|
||||
'Chamber',
|
||||
'Metallic',
|
||||
'Granular',
|
||||
'Diffuse',
|
||||
'Dark',
|
||||
'Bright',
|
||||
'Harmonic',
|
||||
],
|
||||
ui: {
|
||||
primary_input: 'joystick',
|
||||
show_voice_space_selector: true,
|
||||
show_synth_visualizer: false,
|
||||
},
|
||||
};
|
||||
278
manifold/src/modes/generated/xiasri_schema.ts
Normal file
278
manifold/src/modes/generated/xiasri_schema.ts
Normal file
|
|
@ -0,0 +1,278 @@
|
|||
// AUTOGENERATED — do not edit. Source: schemas/modes/xiasri.json. Run `bun run codegen/generate.ts` to regenerate.
|
||||
import type { ModeSchema } from './types';
|
||||
|
||||
export interface XiasriParams {
|
||||
readonly dl1_mix: number;
|
||||
readonly dl2_mix: number;
|
||||
readonly dl3_mix: number;
|
||||
readonly p03: number;
|
||||
readonly allp1_fb: number;
|
||||
readonly allp2_fb: number;
|
||||
readonly comb1_fb: number;
|
||||
readonly comb2_fb: number;
|
||||
readonly dl1_fb: number;
|
||||
readonly dl2_fb: number;
|
||||
readonly dl3_fb: number;
|
||||
readonly wetdry_mix: number;
|
||||
readonly pitch_transp: number;
|
||||
readonly pitch_mix: number;
|
||||
readonly allp3_fb: number;
|
||||
readonly allp4_fb: number;
|
||||
readonly allp5_fb: number;
|
||||
readonly allp6_fb: number;
|
||||
readonly allp3_mix: number;
|
||||
readonly allp4_mix: number;
|
||||
readonly allp5_mix: number;
|
||||
readonly allp6_mix: number;
|
||||
readonly dl4_mix: number;
|
||||
readonly dl4_fb: number;
|
||||
}
|
||||
|
||||
export const XiasriSchema: ModeSchema = {
|
||||
mode_id: 'xiasri',
|
||||
engine_id: 'xiasri',
|
||||
ml: {
|
||||
input_channels: [
|
||||
'joy_x',
|
||||
'joy_y',
|
||||
'joy_z',
|
||||
'joy_w',
|
||||
],
|
||||
input_size: 4,
|
||||
hidden_layers: [
|
||||
10,
|
||||
10,
|
||||
14,
|
||||
],
|
||||
output_size: 24,
|
||||
default_spread: 0.6,
|
||||
default_learning_rate: 1,
|
||||
default_max_iterations: 1000,
|
||||
},
|
||||
params: [
|
||||
{
|
||||
name: 'dl1_mix',
|
||||
label: 'Delay 1 Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'dl2_mix',
|
||||
label: 'Delay 2 Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'dl3_mix',
|
||||
label: 'Delay 3 Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'p03',
|
||||
label: 'Param 03',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'general',
|
||||
},
|
||||
{
|
||||
name: 'allp1_fb',
|
||||
label: 'Allpass 1 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp2_fb',
|
||||
label: 'Allpass 2 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'comb1_fb',
|
||||
label: 'Comb 1 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'comb2_fb',
|
||||
label: 'Comb 2 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'dl1_fb',
|
||||
label: 'Delay 1 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'dl2_fb',
|
||||
label: 'Delay 2 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'dl3_fb',
|
||||
label: 'Delay 3 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'wetdry_mix',
|
||||
label: 'Wet/Dry Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'mix',
|
||||
},
|
||||
{
|
||||
name: 'pitch_transp',
|
||||
label: 'Pitch Transpose',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0.5,
|
||||
curve: 'linear',
|
||||
group: 'pitch',
|
||||
},
|
||||
{
|
||||
name: 'pitch_mix',
|
||||
label: 'Pitch Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'pitch',
|
||||
},
|
||||
{
|
||||
name: 'allp3_fb',
|
||||
label: 'Allpass 3 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp4_fb',
|
||||
label: 'Allpass 4 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp5_fb',
|
||||
label: 'Allpass 5 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp6_fb',
|
||||
label: 'Allpass 6 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp3_mix',
|
||||
label: 'Allpass 3 Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp4_mix',
|
||||
label: 'Allpass 4 Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp5_mix',
|
||||
label: 'Allpass 5 Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'allp6_mix',
|
||||
label: 'Allpass 6 Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'verb',
|
||||
},
|
||||
{
|
||||
name: 'dl4_mix',
|
||||
label: 'Delay 4 Mix',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'square',
|
||||
group: 'delays',
|
||||
},
|
||||
{
|
||||
name: 'dl4_fb',
|
||||
label: 'Delay 4 Feedback',
|
||||
min: 0,
|
||||
max: 1,
|
||||
default: 0,
|
||||
curve: 'linear',
|
||||
group: 'delays',
|
||||
},
|
||||
],
|
||||
voice_spaces: [
|
||||
'Direct',
|
||||
],
|
||||
ui: {
|
||||
primary_input: 'joystick',
|
||||
show_voice_space_selector: false,
|
||||
show_synth_visualizer: false,
|
||||
},
|
||||
};
|
||||
Loading…
Reference in a new issue