Update documentation and logic regarding Ableton export limitations (ATK, REL, etc.)

This commit is contained in:
2026-07-14 10:47:08 +02:00
parent 6b735ae0e4
commit 95d670d28f
4 changed files with 37 additions and 7 deletions

View File

@@ -207,6 +207,12 @@ test('serializes nested Live 10 Simplers without artificial empty Session clips'
try {
const { buildProject } = await server.ssrLoadModule('/src/lib/exporters/ableton/builders.ts');
const data = project();
data.pads.a.forEach((item) => {
item.attack = 200;
item.release = 20;
});
data.settings.groupFaderParams.a[FaderParam.ATK] = 0.66;
data.settings.groupFaderParams.a[FaderParam.REL] = 0.87;
delete data.groupPatterns[0].notes[1];
delete data.groupPatterns[1].notes[0];
data.groupPatterns[1].notes[1] = [note(67, 48), note(68, 96)];
@@ -229,6 +235,29 @@ test('serializes nested Live 10 Simplers without artificial empty Session clips'
assert.ok(simplerTags.length > 0);
assert.ok(simplerTags.every((tag) => /\sId="\d+"/.test(tag)));
const simplerBlocks = [...xml.matchAll(/<OriginalSimpler\b[\s\S]*?<\/OriginalSimpler>/g)].map(
(match) => match[0],
);
assert.ok(
simplerBlocks.every((simpler) =>
/<FadeInTime>[\s\S]*?<Manual Value="0"\s*\/>/.test(simpler),
),
);
assert.ok(
simplerBlocks.every((simpler) =>
/<FadeOutTime>[\s\S]*?<Manual Value="5"\s*\/>/.test(simpler),
),
);
assert.ok(
simplerBlocks.every((simpler) =>
/<Envelope>[\s\S]*?<AttackTime>[\s\S]*?<Manual Value="0.1"\s*\/>/.test(simpler),
),
);
assert.ok(
simplerBlocks.every((simpler) =>
/<Envelope>[\s\S]*?<ReleaseTime>[\s\S]*?<Manual Value="50"\s*\/>/.test(simpler),
),
);
assert.ok(rackTags.length > 0);
assert.ok(rackTags.every((rack) => /<LockId Value="0"\s*\/>/.test(rack)));
assert.ok(rackTags.every((rack) => /<LockSeal Value="0"\s*\/>/.test(rack)));