musescore-downloader/src/types.ts

85 lines
1.5 KiB
TypeScript

interface SourceData {
type: string; // "audio"
title: string; // "Musescore audio"
nid: number;
}
type CommentData = any;
interface PartData {
part: {
name: string;
program: number;
};
}
interface Metadata {
title: string;
subtitle?: string;
composer?: string;
poet?: string;
pages: number;
measures: number;
lyrics: number;
chordnames: number;
keysig: number;
duration: number;
dimensions: number;
parts: PartData[];
}
interface ScoreJson {
id: number;
vid: number;
dates: {
revised: number;
};
secret: string;
permalink: string;
custom_url: string;
format: string; // "0"
has_custom_audio: 0 | 1;
metadata: Metadata;
}
interface UrlsData {
midi: string;
mp3: string;
space: string;
image_path: string;
media?: string[];
}
interface AccessControlData {
enabled: boolean;
hasAccess: boolean;
}
interface PianoKeyboardData extends AccessControlData {
midiUrl: string;
}
interface PianoRollData extends AccessControlData {
resourcesUrl: string;
feedbackUrl: string;
forceShow: boolean;
}
export interface ScorePlayerData {
embed: boolean;
sources: SourceData[];
default_source?: SourceData;
mixer?: string;
secondaryMixer?: string;
bucket?: string; // "https://musescore.com/static/musescore/scoredata"
json: ScoreJson;
render_vector: boolean;
comments: CommentData[];
score_id: number;
urls: UrlsData;
sendEvents?: boolean;
pianoKeyboard: PianoKeyboardData;
pianoRoll: PianoRollData;
}