Add AM modulation support to parser and exporter

This commit is contained in:
c0dev0id
2026-06-24 16:19:24 +02:00
parent 1706404b7e
commit 923aa5d41a
2 changed files with 15 additions and 1 deletions

View File

@@ -47,6 +47,7 @@ function basicPropLines(bp) {
const r = serializeShape(bp.R);
if (r) lines.push(`R: "${r}"`);
for (const fm of (bp.fmModulations ?? [])) lines.push(`FM: "${serializeFm(fm)}"`);
for (const am of (bp.amModulations ?? [])) lines.push(`AM: "${serializeFm(am)}"`);
return lines;
}
@@ -76,6 +77,7 @@ function variationLines(v) {
const timbre = serializeShape(v.timbre);
if (timbre) lines.push(`TIMBRE: "${timbre}"`);
for (const fm of (v.fmModulations ?? [])) lines.push(`FM: "${serializeFm(fm)}"`);
for (const am of (v.amModulations ?? [])) lines.push(`AM: "${serializeFm(am)}"`);
for (const sv of (v.subvariations ?? [])) lines.push(...variationLines(sv));
return lines;
}
@@ -89,7 +91,8 @@ function variationLines(v) {
function instrCharacterLines(instr) {
const variations = instr.variations ?? [];
const hasRootProps = instr.basicProperties || instr.volumes || instr.timbre ||
(instr.fmModulations ?? []).length > 0;
(instr.fmModulations ?? []).length > 0 ||
(instr.amModulations ?? []).length > 0;
const syntheticRoot = hasRootProps
? {
basicProperties: instr.basicProperties,
@@ -98,6 +101,7 @@ function instrCharacterLines(instr) {
volumes: instr.volumes,
timbre: instr.timbre,
fmModulations: instr.fmModulations ?? [],
amModulations: instr.amModulations ?? [],
}
: null;