Update Ableton exporter builders to correctly initialize track and project structures

This commit is contained in:
2026-07-13 05:01:21 +02:00
parent c4d6cbf317
commit cab49a37ec

View File

@@ -850,6 +850,8 @@ async function buildReturnTrack(
returnTrack.Name.EffectiveName['@Value'] = EFFECTS[projectData.effects.effectType] || ''; returnTrack.Name.EffectiveName['@Value'] = EFFECTS[projectData.effects.effectType] || '';
returnTrack.Name.UserName['@Value'] = EFFECTS[projectData.effects.effectType] || ''; returnTrack.Name.UserName['@Value'] = EFFECTS[projectData.effects.effectType] || '';
setColorValue(returnTrack, 28); setColorValue(returnTrack, 28);
returnTrack.DeviceChain.Mixer.Sends = {};
returnTrack.DeviceChain.DeviceChain.Devices = {} as any;
if (projectData.effects.effectType === EffectType.Reverb) { if (projectData.effects.effectType === EffectType.Reverb) {
const effectReverbTemplate = await loadTemplate<ALSReverb>('effectReverb', abletonVersion); const effectReverbTemplate = await loadTemplate<ALSReverb>('effectReverb', abletonVersion);
@@ -974,11 +976,13 @@ export async function buildProject(projectData: ProjectRawData, exporterParams:
`${projectData.scenesSettings.timeSignature.numerator}/${projectData.scenesSettings.timeSignature.denominator}` `${projectData.scenesSettings.timeSignature.numerator}/${projectData.scenesSettings.timeSignature.denominator}`
] || TIME_SIGNATURES['4/4']; ] || TIME_SIGNATURES['4/4'];
project.Ableton.LiveSet.Tracks['#'] = await buildTracks( const tracks = await buildTracks(
transformedData.tracks, transformedData.tracks,
transformedData.groupLanes,
transformedData.scenes.length, transformedData.scenes.length,
exporterParams, exporterParams,
); );
project.Ableton.LiveSet.Tracks = { '#': tracks } as any;
if (exporterParams.sendEffects) { if (exporterParams.sendEffects) {
const returnTrack = await buildReturnTrack( const returnTrack = await buildReturnTrack(
@@ -1007,14 +1011,16 @@ export async function buildProject(projectData: ProjectRawData, exporterParams:
if (exporterParams.sendEffects) { if (exporterParams.sendEffects) {
project.Ableton.LiveSet.SendsPre = { project.Ableton.LiveSet.SendsPre = {
SendPreBool: { SendPreBool: {
'@Id': 1, '@Id': 0,
'@Value': 'false', '@Value': 'false',
}, },
}; };
} else {
project.Ableton.LiveSet.SendsPre = {} as any;
} }
const fixedRoot = fixIds(project); const fixedRoot = fixIds(project);
fixedRoot.Ableton.LiveSet.NextPointeeId['@Value'] = getId() + 1; fixedRoot.Ableton.LiveSet.NextPointeeId['@Value'] = getId();
if (import.meta.env.DEV) { if (import.meta.env.DEV) {
console.log('ROOT', fixedRoot); console.log('ROOT', fixedRoot);