smoosic
Version:
<sub>[Github site](https://github.com/Smoosic/smoosic) | [source documentation](https://smoosic.github.io/Smoosic/release/docs/modules.html) | [change notes](https://aarondavidnewman.github.io/Smoosic/changes.html) | [application](https://smoosic.github.i
140 lines • 3.93 kB
TypeScript
import { TupletInfo } from './note';
import { SmoAttrs } from './common';
import { SmoMeasure, SmoVoice } from './measure';
/**
* @category SmoObject
*/
export interface SmoTupletTreeParams {
tuplet: SmoTuplet;
}
/**
* @category serialization
*/
export interface SmoTupletTreeParamsSer {
/**
* constructor
*/
ctor: string;
/**
* root tuplet
*/
tuplet: SmoTupletParamsSer;
}
/**
* @category SmoObject
*/
export declare class SmoTupletTree {
/**
* root tuplet
*/
tuplet: SmoTuplet;
constructor(params: SmoTupletTreeParams);
static syncTupletIds(tupletTrees: SmoTupletTree[], voices: SmoVoice[]): void;
static adjustTupletIndexes(tupletTrees: SmoTupletTree[], voice: number, startTick: number, diff: number): void;
static getTupletForNoteIndex(tupletTrees: SmoTupletTree[], voiceIx: number, noteIx: number): SmoTuplet | null;
static getTupletTreeForNoteIndex(tupletTrees: SmoTupletTree[], voiceIx: number, noteIx: number): SmoTupletTree | null;
static getTupletHierarchyForNoteIndex(tupletTrees: SmoTupletTree[], voiceIx: number, noteIx: number): SmoTuplet[];
static removeTupletForNoteIndex(measure: SmoMeasure, voiceIx: number, noteIx: number): void;
serialize(): SmoTupletTreeParamsSer;
static deserialize(jsonObj: SmoTupletTreeParamsSer): SmoTupletTree;
static clone(tupletTree: SmoTupletTree): SmoTupletTree;
get startIndex(): number;
get endIndex(): number;
get voice(): number;
get totalTicks(): number;
}
/**
* Parameters for tuplet construction
* @param notes - runtime instance of tuplet has an actual instance of
* notes. The note instances are created by the deserilization of the
* measure. We serialize the note parameters so we can identify the correct notes
* when deserializing.
* @category SmoObject
*/
export interface SmoTupletParams {
numNotes: number;
notesOccupied: number;
stemTicks: number;
totalTicks: number;
ratioed: boolean;
bracketed: boolean;
voice: number;
startIndex: number;
endIndex: number;
}
/**
* serializabl bits of SmoTuplet
* @category serialization
*/
export interface SmoTupletParamsSer {
/**
* constructor
*/
ctor: string;
/**
* attributes for ID
*/
attrs: SmoAttrs;
/**
* numNotes in the tuplet (not necessarily same as notes array size)
*/
numNotes: number;
/**
*
*/
notesOccupied: number;
/**
* used to decide how to beam, 2048 for 1/4 triplet for instance
*/
stemTicks: number;
/**
* total ticks to squeeze numNotes
*/
totalTicks: number;
/**
* whether to use the :
*/
ratioed: boolean;
/**
* whether to show the brackets
*/
bracketed: boolean;
/**
* which voice the tuplet applies to
*/
voice: number;
startIndex: number;
endIndex: number;
parentTuplet: TupletInfo | null;
childrenTuplets: SmoTupletParamsSer[];
}
/**
* A tuplet is a container for notes within a measure
* @category SmoObject
*/
export declare class SmoTuplet {
static get defaults(): SmoTupletParams;
attrs: SmoAttrs;
numNotes: number;
notesOccupied: number;
stemTicks: number;
totalTicks: number;
bracketed: boolean;
voice: number;
ratioed: boolean;
parentTuplet: TupletInfo | null;
childrenTuplets: SmoTuplet[];
startIndex: number;
endIndex: number;
get clonedParams(): {};
static get parameterArray(): string[];
serialize(): SmoTupletParamsSer;
static deserialize(jsonObj: SmoTupletParamsSer): SmoTuplet;
static calculateStemTicks(totalTicks: number, numNotes: number): number;
constructor(params: SmoTupletParams);
static get longestTuplet(): number;
get num_notes(): number;
get notes_occupied(): number;
get tickCount(): number;
}
//# sourceMappingURL=tuplet.d.ts.map