Improve ableton export logic and update documentation
This commit is contained in:
@@ -6,9 +6,11 @@ import {
|
||||
FaderParam,
|
||||
Group,
|
||||
GroupFaderParam,
|
||||
MidiPatternEvent,
|
||||
Note,
|
||||
Pad,
|
||||
PadCode,
|
||||
PatternEventKind,
|
||||
ProjectRawData,
|
||||
} from '../src/types/types';
|
||||
|
||||
@@ -222,6 +224,26 @@ test('classifies a pad from its distinct pitches across every exported scene', (
|
||||
assert.ok(result.tracks.some((track) => track.padCode === 'a1' && !track.drumRack));
|
||||
});
|
||||
|
||||
test('keeps pad-specific MIDI expression on an individual track', () => {
|
||||
const data = project();
|
||||
const rawData = new Uint8Array([0, 0, PatternEventKind.Midi, 0xd0, 100, 0, 0, 0]);
|
||||
const event: MidiPatternEvent = {
|
||||
type: 'midi',
|
||||
kind: PatternEventKind.Midi,
|
||||
position: 0,
|
||||
source: 0,
|
||||
flags: 0,
|
||||
rawData,
|
||||
data: rawData.slice(3, 7),
|
||||
};
|
||||
data.scenes[0].patternEvents.a?.events.push(event);
|
||||
const result = abletonTransformer(data, { includeArchivedSamples: true });
|
||||
const a0 = result.tracks.find((track) => track.padCode === 'a0' && !track.drumRack);
|
||||
|
||||
assert.ok(a0);
|
||||
assert.equal(a0.lane?.clips[0].midiEvents.length, 1);
|
||||
});
|
||||
|
||||
test('does not create selector-note racks when samples are excluded', () => {
|
||||
const result = abletonTransformer(project(), {
|
||||
includeArchivedSamples: false,
|
||||
|
||||
Reference in New Issue
Block a user