Update Ableton exporter to use explicit automation targets
This commit is contained in:
@@ -15,6 +15,7 @@ import abletonTransformer, {
|
||||
} from '../../transformers/ableton';
|
||||
import { getQuarterNotesPerBar } from '../utils';
|
||||
import {
|
||||
AbletonAutomationTarget,
|
||||
AbletonAutomationTargets,
|
||||
buildArrangementEnvelopes,
|
||||
buildClipEnvelopes,
|
||||
@@ -176,7 +177,7 @@ function findAutoFilters(node: any, result: any[] = []): any[] {
|
||||
function addTarget(
|
||||
targets: AbletonAutomationTargets,
|
||||
parameter: FaderParam,
|
||||
target: { arrangement?: number; session?: number },
|
||||
target: AbletonAutomationTarget,
|
||||
) {
|
||||
if (target.arrangement === undefined && target.session === undefined) {
|
||||
return;
|
||||
@@ -187,14 +188,14 @@ function addTarget(
|
||||
function trackAutomationTargets(midiTrack: any, includeArrangementMixer: boolean) {
|
||||
const targets: AbletonAutomationTargets = {};
|
||||
const mixer = midiTrack.DeviceChain.Mixer;
|
||||
addTarget(targets, FaderParam.LVL, {
|
||||
arrangement: includeArrangementMixer ? Number(mixer.Volume.AutomationTarget['@Id']) : undefined,
|
||||
session: Number(mixer.Volume.AutomationTarget['@Id']),
|
||||
});
|
||||
addTarget(targets, FaderParam.PAN, {
|
||||
arrangement: includeArrangementMixer ? Number(mixer.Pan.AutomationTarget['@Id']) : undefined,
|
||||
session: Number(mixer.Pan.AutomationTarget['@Id']),
|
||||
});
|
||||
const volumeTarget = targetFor(mixer.Volume);
|
||||
const panTarget = targetFor(mixer.Pan);
|
||||
if (!includeArrangementMixer) {
|
||||
volumeTarget.arrangement = undefined;
|
||||
panTarget.arrangement = undefined;
|
||||
}
|
||||
addTarget(targets, FaderParam.LVL, volumeTarget);
|
||||
addTarget(targets, FaderParam.PAN, panTarget);
|
||||
|
||||
const send = mixer.Sends?.TrackSendHolder?.Send;
|
||||
if (send) {
|
||||
|
||||
Reference in New Issue
Block a user