Add GroupPattern, SongPosition, and update ProjectRawData structure

This commit is contained in:
2026-07-14 09:26:57 +02:00
parent 048dde39b5
commit 4cba5227d0

View File

@@ -123,6 +123,15 @@ export type PatternEvent =
| MidiPatternEvent | MidiPatternEvent
| UnknownPatternEvent; | UnknownPatternEvent;
export type GroupPattern = {
group: Group;
patternNumber: number;
bars: number;
recordCount: number;
events: PatternEvent[];
notes: Record<number, Note[]>;
};
export type SceneGroupPatternData = { export type SceneGroupPatternData = {
group: Group; group: Group;
patternNumber: number; patternNumber: number;
@@ -132,11 +141,19 @@ export type SceneGroupPatternData = {
}; };
export type Scene = { export type Scene = {
number: number;
name: string; name: string;
patternNumbers: Record<Group, number>;
timeSignature: TimeSignature;
patterns: Pattern[]; patterns: Pattern[];
patternEvents: Partial<Record<Group, SceneGroupPatternData>>; patternEvents: Partial<Record<Group, SceneGroupPatternData>>;
}; };
export type SongPosition = {
position: number;
sceneNumber: number;
};
export type Note = { export type Note = {
note: number; note: number;
position: number; position: number;
@@ -170,7 +187,9 @@ export type Pad = {
export type ProjectRawData = { export type ProjectRawData = {
pads: Record<string, Pad[]>; pads: Record<string, Pad[]>;
groupPatterns: GroupPattern[];
scenes: Scene[]; scenes: Scene[];
songPositions: SongPosition[];
settings: ProjectSettings; settings: ProjectSettings;
effects: Effects; effects: Effects;
sounds: Sound[]; sounds: Sound[];
@@ -231,6 +250,7 @@ export type ExporterParams = {
allScenes?: boolean; // export all scenes allScenes?: boolean; // export all scenes
selectedScenes?: string[]; // export only selected scenes (when allScenes is false) selectedScenes?: string[]; // export only selected scenes (when allScenes is false)
customSceneNames?: Record<string, string>; customSceneNames?: Record<string, string>;
keepUnusedPatterns?: boolean;
}; };
export type SoundInfo = { export type SoundInfo = {