diff --git a/src/lib/transformers/ableton.ts b/src/lib/transformers/ableton.ts index 818aa91..bfc04f1 100644 --- a/src/lib/transformers/ableton.ts +++ b/src/lib/transformers/ableton.ts @@ -378,7 +378,7 @@ function abletonTransformer(data: ProjectRawData, exporterParams: ExporterParams data.groupPatterns .filter( (pattern) => - pattern.events.length > 0 && + getPatternSources(pattern).length > 0 && !referencedPatterns.has(getPatternKey(pattern.group, pattern.patternNumber)), ) .toSorted((a, b) => { diff --git a/tests/ableton-song.test.ts b/tests/ableton-song.test.ts index 90146b7..18580d6 100644 --- a/tests/ableton-song.test.ts +++ b/tests/ableton-song.test.ts @@ -80,6 +80,30 @@ function pattern( }; } +function faderPattern(group: Group, patternNumber: number): GroupPattern { + return { + group, + patternNumber, + bars: 1, + recordCount: 1, + events: [ + { + type: 'fader', + kind: PatternEventKind.Fader, + position: 0, + source: 0, + flags: 0, + rawData: new Uint8Array(8), + parameter: FaderParam.LPF, + reserved: 0, + rawValue: 0, + value: 0, + }, + ], + notes: {}, + }; +} + function scene( number: number, patternNumbers: Record, @@ -111,6 +135,7 @@ function project(): ProjectRawData { pattern('a', 3, 1, 1, 64), pattern('c', 3, 1, 0, 67), pattern('b', 1, 1, 0, 38), + faderPattern('d', 2), ], scenes: [ scene(1, { a: 1, b: 2, c: 0, d: 0 }, 3, 4),