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
166 lines • 5.1 kB
TypeScript
import { Pitch } from '../data/common';
import { SmoNote } from '../data/note';
import { SmoMeasure, SmoVoice } from '../data/measure';
import { SmoSystemStaff } from '../data/systemStaff';
import { SmoScore } from '../data/score';
import { TimeSignature } from '../data/measureModifiers';
import { SmoSelector } from '../xform/selections';
import { SmoTempoText } from '../data/measureModifiers';
/**
* @category serialization
*/
export interface SlurXml {
startSelector: SmoSelector;
endSelector: SmoSelector;
number: number;
}
/**
* Keep state of the xml document as we are generating it
* @category serialization
*/
export interface SmoState {
divisions: number;
measureNumber: number;
measureIndex: number;
transposeOffset: number;
tickCount: number;
voiceIndex: number;
keySignature: string;
voiceTickIndex: number;
voice?: SmoVoice;
partStaves: SmoSystemStaff[];
staffPartIx: number;
slurs: SlurXml[];
ties: SlurXml[];
tieds: SlurXml[];
lyricState: Record<number, string>;
measureTicks: number;
note?: SmoNote;
beamState: number;
beamTicks: number;
timeSignature?: TimeSignature;
tempo?: SmoTempoText;
currentTupletLevel: number;
}
/**
* Convert {@link SmoScore} object into a music XML serialization
*
* usage: `xdoc: XmlDocument = SmoToXml.convert(score)`
* @category serialization
*/
export declare class SmoToXml {
static get beamStates(): Record<string, number>;
static get defaultState(): SmoState;
/**
* see usage
* @param score
* @returns
*/
static convert(score: SmoScore): XMLDocument;
/**
* /score-partwise/part/measure
* @param measureElement
* @param smoState
* @returns
*/
static measure(measureElement: Element, smoState: SmoState): void;
/**
* /score-partwise/part/measure/barline
* @param measureElement
* @param smoState
* @param start
*/
static barline(measureElement: Element, smoState: SmoState, start: boolean): void;
/**
* /score-partwise/part/measure/note/tie
* @param notationsElement
* @param smoState
*/
static tied(notationsElement: Element, smoState: SmoState): void;
/**
* /score-partwise/part/measure/note/tie
* @param noteElement
* @param smoState
*/
static tie(noteElement: Element, smoState: SmoState): void;
/**
* /score-partwise/part/measure/note/notations/slur
* @param notationsElement
* @param smoState
*/
static slur(notationsElement: Element, smoState: SmoState): void;
/**
* /score-partwise/measure/note/time-modification
* /score-partwise/measure/note/tuplet
*/
static tupletTime(noteElement: Element, note: SmoNote, measure: SmoMeasure, smoState: SmoState): void;
static tupletNotation(notationsElement: Element, note: SmoNote, measure: SmoMeasure, smoState: SmoState): void;
/**
* /score-partwise/measure/note/pitch
* @param pitch
* @param noteElement
*/
static pitch(pitch: Pitch, noteElement: Element): void;
/**
* /score-partwise/measure/beam
* @param noteElement
* @param smoState
* @returns
*/
static beamNote(noteElement: Element, smoState: SmoState): void;
/**
* /score-partwise/measure/direction/direction-type
* @param measureElement
* @param smoState
* @param beforeNote
*/
static direction(measureElement: Element, smoState: SmoState, beforeNote: boolean): void;
/**
* /score-partwise/measure/note/lyric
* @param noteElement
* @param smoState
*/
static lyric(noteElement: Element, smoState: SmoState): void;
/**
* /score-partwise/measure/note
* @param measureElement
* @param smoState
*/
static note(measureElement: Element, measure: SmoMeasure, note: SmoNote, smoState: SmoState): void;
/**
* /score-partwise/measure/attributes/key
* @param attributesElement
* @param smoState
* @returns
*/
static key(attributesElement: Element, measure: SmoMeasure, smoState: SmoState): void;
/**
* /score-partwise/part/measure/attributes/time
* @param attributesElement
* @param smoState
* @returns
*/
static time(attributesElement: Element, smoState: SmoState): void;
/**
* /score-partwise/part/measure/attributes/clef
* @param attributesElement
* @param smoState
* @returns
*/
static clef(attributesElement: Element, smoState: SmoState): void;
/**
* /score-partwise/part/measure/attributes
* @param measureElement
* @param smoState
*/
static attributes(measureElement: Element, measure: SmoMeasure, smoState: SmoState): void;
static staves(attributesElement: Element, smoState: SmoState): void;
/**
* /score-partwise/part/measure/attributes/transpose
* @param attributesElement
* @param smoState
* @returns
*/
static transpose(attributesElement: Element, smoState: SmoState): void;
}
//# sourceMappingURL=smoToXml.d.ts.map