types.ts (1631B)
1 2 interface SourceData { 3 type: string; // "audio" 4 title: string; // "Musescore audio" 5 nid: number; 6 } 7 8 type CommentData = any; 9 10 interface PartData { 11 part: { 12 name: string; 13 program: number; 14 } 15 } 16 17 interface Metadata { 18 title: string; 19 subtitle?: string; 20 composer?: string; 21 poet?: string; 22 pages: number; 23 measures: number; 24 lyrics: number; 25 chordnames: number; 26 keysig: number; 27 duration: number; 28 dimensions: number; 29 parts: PartData[]; 30 } 31 32 interface ScoreJson { 33 id: number; 34 vid: number; 35 dates: { 36 revised: number; 37 }; 38 secret: string; 39 permalink: string; 40 custom_url: string; 41 format: string; // "0" 42 has_custom_audio: 0 | 1; 43 metadata: Metadata; 44 } 45 46 interface UrlsData { 47 midi: string; 48 mp3: string; 49 space: string; 50 image_path: string; 51 media?: string[]; 52 } 53 54 interface AccessControlData { 55 enabled: boolean; 56 hasAccess: boolean; 57 } 58 59 interface PianoKeyboardData extends AccessControlData { 60 midiUrl: string; 61 } 62 63 interface PianoRollData extends AccessControlData { 64 resourcesUrl: string; 65 feedbackUrl: string; 66 forceShow: boolean; 67 } 68 69 export interface ScorePlayerData { 70 embed: boolean; 71 sources: SourceData[]; 72 default_source?: SourceData; 73 mixer?: string; 74 secondaryMixer?: string; 75 bucket?: string; // "https://musescore.com/static/musescore/scoredata" 76 json: ScoreJson; 77 render_vector: boolean; 78 comments: CommentData[]; 79 score_id: number; 80 urls: UrlsData; 81 sendEvents?: boolean; 82 pianoKeyboard: PianoKeyboardData; 83 pianoRoll: PianoRollData; 84 }