Improve fader value conversion and support target max value in Ableton exports

This commit is contained in:
2026-07-13 08:47:34 +02:00
parent dc7a09188f
commit a5b61b9443
2 changed files with 69 additions and 25 deletions

View File

@@ -104,7 +104,7 @@ function setLive10SampleReference(fileRef: any, sampleName: string) {
fileRef.LivePackId = { '@Value': '' };
}
function targetFor(parameter: any): { arrangement?: number; session?: number } {
function targetFor(parameter: any, maxValue?: number) {
const automationTarget =
parameter?.AutomationTarget?.['@Id'] === undefined
? undefined
@@ -112,6 +112,7 @@ function targetFor(parameter: any): { arrangement?: number; session?: number } {
return {
arrangement: automationTarget,
session: automationTarget,
maxValue,
};
}
@@ -186,10 +187,29 @@ function trackAutomationTargets(midiTrack: any, includeArrangementMixer: boolean
}
findSimplers(midiTrack.DeviceChain.DeviceChain.Devices).forEach((simpler) => {
const oneshot = Number(simpler.Globals.PlaybackMode['@Value']) === 1;
addTarget(targets, FaderParam.PTC, targetFor(simpler.Pitch.TransposeKey));
addTarget(targets, FaderParam.TUNE, targetFor(simpler.Pitch.TransposeFine));
addTarget(targets, FaderParam.ATK, targetFor(simpler.VolumeAndPan.Envelope.AttackTime));
addTarget(targets, FaderParam.REL, targetFor(simpler.VolumeAndPan.Envelope.ReleaseTime));
addTarget(
targets,
FaderParam.ATK,
targetFor(
oneshot
? simpler.VolumeAndPan.OneShotEnvelope.FadeInTime
: simpler.VolumeAndPan.Envelope.AttackTime,
oneshot ? 2000 : undefined,
),
);
addTarget(
targets,
FaderParam.REL,
targetFor(
oneshot
? simpler.VolumeAndPan.OneShotEnvelope.FadeOutTime
: simpler.VolumeAndPan.Envelope.ReleaseTime,
oneshot ? 2000 : undefined,
),
);
addTarget(targets, FaderParam.MOD, targetFor(simpler.Pitch.PitchLfoAmount));
});