feat: add bar width multiplier (1x–8x horizontal zoom) for track grid
This commit is contained in:
+15
-2
@@ -44,11 +44,15 @@ export class KGProject {
|
||||
@WithDefault([0, 0])
|
||||
private loopingRange: [number, number] = [0, 0]; // [startBar, endBar] - bar indices (0-based)
|
||||
|
||||
@Expose()
|
||||
@WithDefault(1)
|
||||
private barWidthMultiplier: number = 1;
|
||||
|
||||
@Expose()
|
||||
@WithDefault(0)
|
||||
private projectStructureVersion: number = 0;
|
||||
|
||||
public static readonly CURRENT_PROJECT_STRUCTURE_VERSION: number = 4;
|
||||
public static readonly CURRENT_PROJECT_STRUCTURE_VERSION: number = 5;
|
||||
|
||||
@Expose()
|
||||
@Type(() => KGTrack, {
|
||||
@@ -64,7 +68,7 @@ export class KGProject {
|
||||
private tracks: KGTrack[] = [];
|
||||
|
||||
// Constructor
|
||||
constructor(name: string = "Untitled Project", maxBars: number = 32, currentBars: number = 0, bpm: number = 125, timeSignature: TimeSignature = { numerator: 4, denominator: 4 }, keySignature: KeySignature = "C major", selectedMode: string = "ionian", isLooping: boolean = false, loopingRange: [number, number] = [0, 0], tracks: KGTrack[] = [], projectStructureVersion: number = KGProject.CURRENT_PROJECT_STRUCTURE_VERSION) {
|
||||
constructor(name: string = "Untitled Project", maxBars: number = 32, currentBars: number = 0, bpm: number = 125, timeSignature: TimeSignature = { numerator: 4, denominator: 4 }, keySignature: KeySignature = "C major", selectedMode: string = "ionian", isLooping: boolean = false, loopingRange: [number, number] = [0, 0], barWidthMultiplier: number = 1, tracks: KGTrack[] = [], projectStructureVersion: number = KGProject.CURRENT_PROJECT_STRUCTURE_VERSION) {
|
||||
this.name = name;
|
||||
this.maxBars = maxBars;
|
||||
this.currentBars = currentBars;
|
||||
@@ -74,6 +78,7 @@ export class KGProject {
|
||||
this.selectedMode = selectedMode;
|
||||
this.isLooping = isLooping;
|
||||
this.loopingRange = loopingRange;
|
||||
this.barWidthMultiplier = barWidthMultiplier;
|
||||
this.tracks = tracks;
|
||||
this.projectStructureVersion = projectStructureVersion;
|
||||
}
|
||||
@@ -167,5 +172,13 @@ export class KGProject {
|
||||
public setLoopingRange(loopingRange: [number, number]): void {
|
||||
this.loopingRange = loopingRange;
|
||||
}
|
||||
|
||||
public getBarWidthMultiplier(): number {
|
||||
return this.barWidthMultiplier;
|
||||
}
|
||||
|
||||
public setBarWidthMultiplier(barWidthMultiplier: number): void {
|
||||
this.barWidthMultiplier = barWidthMultiplier;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user