import Value from "./Value"; export default class TimeSignature { public static COMMON_TIME = new TimeSignature(4, Value.QUARTER); private oneBeat: Value; public constructor(private beatsPerMeasure: number, parameter: number | Value) { if (typeof parameter === "number") { this.oneBeat = new Value(Value.Type.fromBaseDuration(1.0 / parameter as number)); } else { this.oneBeat = parameter as Value; } } public getDurationOfMeasure(): number { return this.beatsPerMeasure * this.oneBeat.getDuration(); } public getBeatsPerMeasure(): number { return this.beatsPerMeasure; } public getOneBeat(): Value { return this.oneBeat; } }