Update pattern filtering logic and add faderPattern test case

This commit is contained in:
2026-07-14 10:24:07 +02:00
parent 0a9cb04275
commit 681b526350
2 changed files with 26 additions and 1 deletions

View File

@@ -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) => {

View File

@@ -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<Group, number>,
@@ -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),