Skip to content

Score Data & Structure

Access and query score structure, measures, notes, and metadata

Methods

getNbMeasures()

Get the number of measures in the score Retrieves the total count of measures (bars) in the currently loaded score.

typescript
getNbMeasures(): Promise<number>

Returns: Promise<number>

Throws:

  • Error - If no score is loaded

Example:

typescript
const embed = new Embed('container', config);
const nbMeasures = await embed.getNbMeasures();
console.log(nbMeasures);

See also:


getMeasuresUuids()

Get the measure UUIDs of the score Retrieves the unique identifiers for all measures in the score. These UUIDs can be used to reference specific measures in other API calls.

typescript
getMeasuresUuids(): Promise<string[]>

Returns: Promise<string[]>

Throws:

  • Error - If no score is loaded

Example:

typescript
const embed = new Embed('container', config);
const measuresUuids = await embed.getMeasuresUuids();
console.log(measuresUuids);

See also:


getMeasureDetails()

Get detailed measure information Retrieves comprehensive information about the current measure at the cursor position, including time signature, key signature, tempo, and other properties.

typescript
getMeasureDetails(): Promise<MeasureDetails>

Returns: Promise<MeasureDetails>

View MeasureDetails type definition

MeasureDetails

Comprehensive details about a measure

Properties:

  • clef: Clef - Current clef in this measure
  • 'displayed-time': DisplayedTime - Time signature as displayed (can differ for pickup measures, etc.)
  • key: Key - Current key signature
  • tempo: Tempo - Tempo marking (always included, populated from current tempo)
  • time: Time - Actual time signature
  • transpose: Transpose - Transposition settings for this measure

Throws:

  • Error - If no score is loaded or details cannot be retrieved

Example:

typescript
const embed = new Embed('container', config);
const measureDetails = await embed.getMeasureDetails();
console.log(measureDetails);

See also:


getNbParts()

Get the number of parts in the score Retrieves the total count of instrument parts in the currently loaded score.

typescript
getNbParts(): Promise<number>

Returns: Promise<number>

Throws:

  • Error - If no score is loaded

Example:

typescript
const embed = new Embed('container', config);
const nbParts = await embed.getNbParts();
console.log(nbParts);

See also:


getPartsUuids()

Get the part UUIDs of the score Retrieves the unique identifiers for all parts in the score. These UUIDs are used to reference specific parts in volume, mute, and other part-specific operations.

typescript
getPartsUuids(): Promise<string[]>

Returns: Promise<string[]>

Throws:

  • Error - If no score is loaded

Example:

typescript
const embed = new Embed('container', config);
const partsUuids = await embed.getPartsUuids();
console.log(partsUuids);

See also:


getMeasureVoicesUuids()

Get voice UUIDs for a specific measure Retrieves the unique identifiers of all voices present in a specific measure of a part. Voices represent independent melodic lines within a part.

typescript
getMeasureVoicesUuids(parameters: { partUuid: string; measureUuid: string; }): Promise<string[]>

Parameters:

  • parameters.partUuid - string
  • parameters.measureUuid - string

Returns: Promise<string[]>

Throws:

  • Error - If the part or measure UUID is invalid

Example:

typescript
const embed = new Embed('container', config);
const measureVoicesUuids = await embed.getMeasureVoicesUuids({
  partUuid: '00000000-0000-0000-0000-000000000001',
  measureUuid: '00000000-0000-0000-0000-000000000002'
});
console.log(measureVoicesUuids);

See also:


getMeasureNbNotes()

Get the number of notes in a voice Counts the total number of notes (including rests) in a specific voice within a measure. This is useful for iterating through notes or determining voice complexity.

typescript
getMeasureNbNotes(parameters: { partUuid: string; measureUuid: string; voiceUuid: string; }): Promise<number>

Parameters:

  • parameters.partUuid - string
  • parameters.measureUuid - string
  • parameters.voiceUuid - string

Returns: Promise<number>

Throws:

  • Error - If any UUID is invalid

Example:

typescript
const embed = new Embed('container', config);
const measureNbNotes = await embed.getMeasureNbNotes({
  partUuid: '00000000-0000-0000-0000-000000000001',
  measureUuid: '00000000-0000-0000-0000-000000000002',
  voiceUuid: '00000000-0000-0000-0000-000000000003'
});
console.log(measureNbNotes);

See also:


getNoteData()

Get information about a specific note Retrieves detailed information about a note at a specific position, including pitch, duration, articulations, and other musical properties.

typescript
getNoteData(parameters: { partUuid: string; measureUuid: string; voiceUuid: string; noteIdx: number; }): Promise<NoteDetails>

Parameters:

  • parameters.partUuid - string
  • parameters.measureUuid - string
  • parameters.voiceUuid - string
  • parameters.noteIdx - number

Returns: Promise<NoteDetails>

View NoteDetails type definition

NoteDetails

Detailed information about a note or rest Note: The actual structure of complex fields (articulations, harmony, etc.) depends on the score content and Flat's internal representation

Properties:

  • articulations: string[] - List of articulation markings (e.g., 'accent', 'staccato', 'tenuto')
  • classicHarmony: null | RomanNumeralData - Classical harmony notation (Roman numerals, etc.)
  • durationType: string - Duration type in MusicXML format (e.g., 'quarter', 'eighth', 'half', 'whole')
  • dynamicStyle: null | string - Dynamic marking style (e.g., 'p', 'f', 'mf', 'crescendo')
  • ghostNotes: boolean[] - Ghost note status for each pitch in chord (for guitar/drums)
  • hammerOnPullOffs: boolean[] - Hammer-on/pull-off status for each pitch (for guitar)
  • harmony: null | JazzChordData - Jazz/pop chord symbol
  • hasArpeggio: boolean - Whether this note/chord has an arpeggio marking
  • hasGlissando: boolean - Whether this note starts a glissando
  • isChord: boolean - Whether this is a chord (multiple pitches)
  • isInSlur: boolean - Whether this note is part of a slur
  • isRest: boolean - Whether this is a rest (no pitches)
  • isTied: boolean - Whether this note is tied to the next
  • lines: number[] - Staff line positions for each pitch
  • lyrics: LyricLine[] - Lyrics attached to this note
  • nbDots: number - Number of augmentation dots
  • nbGraces: number - Number of grace notes attached
  • ornaments: OrnamentObject - Ornaments on the note
  • pitches: Pitch[] - Array of pitches (empty for rests)
  • technical: string[] - Technical markings (for strings/guitar, e.g., 'up-bow', 'down-bow', 'harmonic')
  • tupletType: null | TupletType - Tuplet information if part of irregular grouping
  • wedgeType: WedgeType - Wedge (hairpin) type if present

Throws:

  • Error - If the position is invalid or note not found

Example:

typescript
const embed = new Embed('container', config);
const noteData = await embed.getNoteData({
  partUuid: '00000000-0000-0000-0000-000000000001',
  measureUuid: '00000000-0000-0000-0000-000000000002',
  voiceUuid: '00000000-0000-0000-0000-000000000003',
  noteIdx: 0
});
console.log(noteData);

See also:


playbackPositionToNoteIdx()

Convert playback position to note index Finds the note index that corresponds to a specific playback position. This is useful for synchronizing visual elements with audio playback.

typescript
playbackPositionToNoteIdx(parameters: { partUuid: string; voiceUuid: string; playbackPosition: PlaybackPosition; }): Promise<number>

Parameters:

  • parameters.partUuid - string
  • parameters.voiceUuid - string
  • parameters.playbackPosition - PlaybackPosition

Returns: Promise<number>

Throws:

  • Error - If the position cannot be mapped to a note

Example:

typescript
const embed = new Embed('container', config);
await embed.playbackPositionToNoteIdx({
  partUuid: '00000000-0000-0000-0000-000000000001',
  voiceUuid: '00000000-0000-0000-0000-000000000003',
  playbackPosition: 
});

See also:


getNoteDetails()

Get note details at cursor position Retrieves detailed information about the note at the current cursor position, including pitch, duration, and musical attributes.

typescript
getNoteDetails(): Promise<NoteDetails>

Returns: Promise<NoteDetails>

View NoteDetails type definition

NoteDetails

Detailed information about a note or rest Note: The actual structure of complex fields (articulations, harmony, etc.) depends on the score content and Flat's internal representation

Properties:

  • articulations: string[] - List of articulation markings (e.g., 'accent', 'staccato', 'tenuto')
  • classicHarmony: null | RomanNumeralData - Classical harmony notation (Roman numerals, etc.)
  • durationType: string - Duration type in MusicXML format (e.g., 'quarter', 'eighth', 'half', 'whole')
  • dynamicStyle: null | string - Dynamic marking style (e.g., 'p', 'f', 'mf', 'crescendo')
  • ghostNotes: boolean[] - Ghost note status for each pitch in chord (for guitar/drums)
  • hammerOnPullOffs: boolean[] - Hammer-on/pull-off status for each pitch (for guitar)
  • harmony: null | JazzChordData - Jazz/pop chord symbol
  • hasArpeggio: boolean - Whether this note/chord has an arpeggio marking
  • hasGlissando: boolean - Whether this note starts a glissando
  • isChord: boolean - Whether this is a chord (multiple pitches)
  • isInSlur: boolean - Whether this note is part of a slur
  • isRest: boolean - Whether this is a rest (no pitches)
  • isTied: boolean - Whether this note is tied to the next
  • lines: number[] - Staff line positions for each pitch
  • lyrics: LyricLine[] - Lyrics attached to this note
  • nbDots: number - Number of augmentation dots
  • nbGraces: number - Number of grace notes attached
  • ornaments: OrnamentObject - Ornaments on the note
  • pitches: Pitch[] - Array of pitches (empty for rests)
  • technical: string[] - Technical markings (for strings/guitar, e.g., 'up-bow', 'down-bow', 'harmonic')
  • tupletType: null | TupletType - Tuplet information if part of irregular grouping
  • wedgeType: WedgeType - Wedge (hairpin) type if present

Throws:

  • Error - If no note is at the cursor position

Example:

typescript
const embed = new Embed('container', config);
const noteDetails = await embed.getNoteDetails();
console.log(noteDetails);

See also:


Copyright © Tutteo Limited