Add AM modulation support to parser and exporter
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user