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