Update MIDI clip duration calculations using loopDuration instead of bar counts
This commit is contained in:
@@ -8,6 +8,7 @@ import {
|
|||||||
} from '../../../types/types';
|
} from '../../../types/types';
|
||||||
import { EFFECTS } from '../../constants';
|
import { EFFECTS } from '../../constants';
|
||||||
import abletonTransformer, {
|
import abletonTransformer, {
|
||||||
|
AblArrangementSection,
|
||||||
AblClip,
|
AblClip,
|
||||||
AblGroupLane,
|
AblGroupLane,
|
||||||
AblScene,
|
AblScene,
|
||||||
@@ -305,13 +306,9 @@ async function buildMidiClip(
|
|||||||
const midiClipTemplate = await loadTemplate<ALSMidiClip>('midiClip', abletonVersion);
|
const midiClipTemplate = await loadTemplate<ALSMidiClip>('midiClip', abletonVersion);
|
||||||
const midiClip = structuredClone(midiClipTemplate.MidiClip);
|
const midiClip = structuredClone(midiClipTemplate.MidiClip);
|
||||||
|
|
||||||
const beats = getQuarterNotesPerBar(
|
const time = koClip.offset;
|
||||||
koClip.timeSignature.numerator,
|
|
||||||
koClip.timeSignature.denominator,
|
|
||||||
);
|
|
||||||
const time = koClip.offset * beats;
|
|
||||||
const start = time;
|
const start = time;
|
||||||
const end = time + koClip.sceneBars * beats;
|
const end = time + koClip.duration;
|
||||||
|
|
||||||
midiClip['@Id'] = clipIdx;
|
midiClip['@Id'] = clipIdx;
|
||||||
midiClip['@Time'] = time;
|
midiClip['@Time'] = time;
|
||||||
@@ -319,12 +316,12 @@ async function buildMidiClip(
|
|||||||
midiClip.CurrentEnd['@Value'] = end;
|
midiClip.CurrentEnd['@Value'] = end;
|
||||||
midiClip.Loop.LoopOn['@Value'] = 'true';
|
midiClip.Loop.LoopOn['@Value'] = 'true';
|
||||||
midiClip.Loop.LoopStart['@Value'] = 0;
|
midiClip.Loop.LoopStart['@Value'] = 0;
|
||||||
midiClip.Loop.LoopEnd['@Value'] = koClip.bars * beats;
|
midiClip.Loop.LoopEnd['@Value'] = koClip.loopDuration;
|
||||||
if (midiClip.Loop.OutMarker) {
|
if (midiClip.Loop.OutMarker) {
|
||||||
midiClip.Loop.OutMarker['@Value'] = koClip.bars * beats;
|
midiClip.Loop.OutMarker['@Value'] = koClip.loopDuration;
|
||||||
}
|
}
|
||||||
midiClip.Loop.HiddenLoopStart['@Value'] = 0;
|
midiClip.Loop.HiddenLoopStart['@Value'] = 0;
|
||||||
midiClip.Loop.HiddenLoopEnd['@Value'] = koClip.bars * beats;
|
midiClip.Loop.HiddenLoopEnd['@Value'] = koClip.loopDuration;
|
||||||
setColorValue(midiClip, color);
|
setColorValue(midiClip, color);
|
||||||
midiClip.Name['@Value'] = koClip.sceneName;
|
midiClip.Name['@Value'] = koClip.sceneName;
|
||||||
midiClip.TimeSignature.TimeSignatures.RemoteableTimeSignature.Numerator['@Value'] =
|
midiClip.TimeSignature.TimeSignatures.RemoteableTimeSignature.Numerator['@Value'] =
|
||||||
@@ -335,7 +332,7 @@ async function buildMidiClip(
|
|||||||
if (clipForLauncher) {
|
if (clipForLauncher) {
|
||||||
midiClip['@Time'] = 0;
|
midiClip['@Time'] = 0;
|
||||||
midiClip.CurrentStart['@Value'] = 0;
|
midiClip.CurrentStart['@Value'] = 0;
|
||||||
midiClip.CurrentEnd['@Value'] = koClip.bars * beats;
|
midiClip.CurrentEnd['@Value'] = koClip.loopDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ableton group notes
|
// ableton group notes
|
||||||
|
|||||||
Reference in New Issue
Block a user