From 71274252da233d420aaa45f674a44453d1748f58 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 13 Jul 2026 05:12:11 +0200 Subject: [PATCH] Update Ableton exporter logic to use AutomationTarget ID for both arrangement and session targets. --- src/lib/exporters/ableton/automation.ts | 2 +- src/lib/exporters/ableton/builders.ts | 18 ++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/lib/exporters/ableton/automation.ts b/src/lib/exporters/ableton/automation.ts index 0a8d10f..c4cf0c8 100644 --- a/src/lib/exporters/ableton/automation.ts +++ b/src/lib/exporters/ableton/automation.ts @@ -41,7 +41,7 @@ export function convertFaderValue( ) { switch (parameter) { case FaderParam.LVL: - if (groupMixer || session) { + if (groupMixer) { return value; } return track.volume * value; diff --git a/src/lib/exporters/ableton/builders.ts b/src/lib/exporters/ableton/builders.ts index 4919d1e..370897c 100644 --- a/src/lib/exporters/ableton/builders.ts +++ b/src/lib/exporters/ableton/builders.ts @@ -94,15 +94,13 @@ function setLive10SampleReference(fileRef: any, sampleName: string) { } function targetFor(parameter: any): { arrangement?: number; session?: number } { + const automationTarget = + parameter?.AutomationTarget?.['@Id'] === undefined + ? undefined + : Number(parameter.AutomationTarget['@Id']); return { - arrangement: - parameter?.AutomationTarget?.['@Id'] === undefined - ? undefined - : Number(parameter.AutomationTarget['@Id']), - session: - parameter?.ModulationTarget?.['@Id'] === undefined - ? undefined - : Number(parameter.ModulationTarget['@Id']), + arrangement: automationTarget, + session: automationTarget, }; } @@ -141,11 +139,11 @@ function trackAutomationTargets(midiTrack: any, includeArrangementMixer: boolean const mixer = midiTrack.DeviceChain.Mixer; addTarget(targets, FaderParam.LVL, { arrangement: includeArrangementMixer ? Number(mixer.Volume.AutomationTarget['@Id']) : undefined, - session: Number(mixer.Volume.ModulationTarget['@Id']), + session: Number(mixer.Volume.AutomationTarget['@Id']), }); addTarget(targets, FaderParam.PAN, { arrangement: includeArrangementMixer ? Number(mixer.Pan.AutomationTarget['@Id']) : undefined, - session: Number(mixer.Pan.ModulationTarget['@Id']), + session: Number(mixer.Pan.AutomationTarget['@Id']), }); const send = mixer.Sends?.TrackSendHolder?.Send;