Antwortbeispiele
Für jeden oben aufgeführten Endpunkt folgt ein konkretes Beispiel einer JSON-Antwort.
Die Beispiele sind zur besseren Lesbarkeit gekürzt. Tatsächliche Antworten können mehr Datensätze und Felder enthalten; IDs, Anzahlen, URLs und Datumswerte hängen von Ihren Daten und Zugriffsrechten ab.
Ergebnisse für Konto und aggregierten Katalog
GET/api/mobile/me
Beispiel für eine 200-Antwort
{
"id": 42,
"username": "ada",
"email": "ada@example.com",
"roles": [
"ROLE_USER"
],
"personas": [
"musician"
],
"favoriteInstrumentIds": [
10
],
"locale": "en",
"isVerified": true,
"tier": "premium",
"subscriptionPlan": "premium",
"subscriptionTier": "premium",
"subscriptionPlanCode": "premium-monthly",
"groupQuota": 10,
"canMakePrivate": true,
"canUsePaidFeatures": true
}
GET/api/mobile/music-bootstrap
Beispiel für eine 200-Antwort
{
"meta": {
"includes": [
"keys",
"key_scales",
"instruments"
],
"count": {
"keys": 24,
"key_scales": 202,
"instruments": 33
}
},
"data": {
"keys": [
{
"id": 8,
"baseTone": {
"id": 1,
"name": "C",
"midi": 48,
"solfege": "do"
},
"alteration": 0,
"accidentals": 0,
"signature": "",
"frequency": 415.305,
"color": "#ff0000"
}
],
"key_scales": [
{
"id": 1,
"keyId": 8,
"name": "Major (Ionian)",
"type": "scale",
"signature": "1,2,2,1,2,2,2",
"fullName": "C Major (Ionian)",
"keyToneName": "C",
"canonicalPath": "\/chords-and-scales\/c\/major-ionian",
"tones": [
{
"intervalId": 1,
"intervalAbbr": "1",
"noteName": "C",
"midiNumber": 48
},
{
"intervalId": 3,
"intervalAbbr": "2",
"noteName": "D",
"midiNumber": 50
}
]
}
],
"instruments": [
{
"id": 10,
"name": "Bass (4-string)",
"slug": "bass-4-string",
"familyRouteKey": "fretboard",
"familyCode": "FRETBOARD",
"familyName": "Fretboard",
"isPublic": true,
"isPublished": true,
"musicSystemIds": [
1
],
"allowedPlaybackCapabilities": [
"monotonal",
"polytonal"
]
}
]
}
}
GET/api/mobile/entities?include=keys,intervals,instruments
Beispiel für eine 200-Antwort
{
"meta": {
"includes": [
"keys",
"intervals",
"instruments"
],
"count": {
"keys": 24,
"intervals": 25,
"instruments": 33
}
},
"data": {
"keys": [
{
"id": 8,
"baseTone": {
"id": 1,
"name": "C",
"midi": 48,
"solfege": "do"
},
"alteration": 0,
"accidentals": 0,
"signature": "",
"frequency": 415.305,
"color": "#ff0000"
}
],
"intervals": [
{
"id": 5,
"name": "Major Third",
"abbreviation": "M3",
"jazzAbbreviation": "3",
"semitones": 4,
"color": "#FFFF00",
"degree": "III"
}
],
"instruments": [
{
"id": 10,
"name": "Bass (4-string)",
"slug": "bass-4-string",
"familyRouteKey": "fretboard",
"familyCode": "FRETBOARD",
"familyName": "Fretboard",
"isPublic": true,
"isPublished": true,
"musicSystemIds": [
1
],
"allowedPlaybackCapabilities": [
"monotonal",
"polytonal"
]
}
]
}
}
GET/api/mobile/circular-tracks?limit=1
Beispiel für eine 200-Antwort
{
"meta": {
"resource": "circular_tracks",
"count": 1,
"total": 148,
"limit": 1
},
"data": [
{
"id": "rhythm:148",
"kind": "rhythm",
"name": "Circular Dubstep Half Time",
"isPublic": true,
"transport": {
"bpm": 140,
"ppq": 960,
"beatsPerBar": 4,
"beatUnit": 4
},
"ringCount": 4,
"circularTrack": {
"id": "standalone-circular-track",
"type": "CIRCULAR",
"rings": []
},
"source": {
"type": "rhythm",
"rhythmId": 148,
"slug": "circular-dubstep-half-time"
}
}
]
}
Ergebnisse mobiler Sammlungen und Elemente
Musikalische Tonarten.
GET/api/mobile/keys — Sammlungsergebnis
{
"meta": {
"resource": "keys",
"count": 1,
"filters": []
},
"data": [
{
"id": 8,
"baseTone": {
"id": 1,
"name": "C",
"midi": 48,
"solfege": "do"
},
"alteration": 0,
"accidentals": 0,
"signature": "",
"frequency": 415.305,
"color": "#ff0000"
}
]
}
GET/api/mobile/keys/8 — Elementergebnis
{
"meta": {
"resource": "key",
"count": 7,
"filters": []
},
"data": {
"id": 8,
"baseTone": {
"id": 1,
"name": "C",
"midi": 48,
"solfege": "do"
},
"alteration": 0,
"accidentals": 0,
"signature": "",
"frequency": 415.305,
"color": "#ff0000"
}
}
Musikalische Intervalle.
GET/api/mobile/intervals — Sammlungsergebnis
{
"meta": {
"resource": "intervals",
"count": 1,
"filters": []
},
"data": [
{
"id": 5,
"name": "Major Third",
"abbreviation": "M3",
"jazzAbbreviation": "3",
"semitones": 4,
"color": "#FFFF00",
"degree": "III"
}
]
}
GET/api/mobile/intervals/5 — Elementergebnis
{
"meta": {
"resource": "interval",
"count": 7,
"filters": []
},
"data": {
"id": 5,
"name": "Major Third",
"abbreviation": "M3",
"jazzAbbreviation": "3",
"semitones": 4,
"color": "#FFFF00",
"degree": "III"
}
}
Beziehungen zwischen Tonarten und Skalen.
GET/api/mobile/key-scales — Sammlungsergebnis
{
"meta": {
"resource": "key_scales",
"count": 1,
"filters": []
},
"data": [
{
"id": 1,
"keyId": 8,
"name": "Major (Ionian)",
"type": "scale",
"signature": "1,2,2,1,2,2,2",
"fullName": "C Major (Ionian)",
"keyToneName": "C",
"canonicalPath": "\/chords-and-scales\/c\/major-ionian",
"tones": [
{
"intervalId": 1,
"intervalAbbr": "1",
"noteName": "C",
"midiNumber": 48
},
{
"intervalId": 3,
"intervalAbbr": "2",
"noteName": "D",
"midiNumber": 50
}
]
}
]
}
GET/api/mobile/key-scales/1 — Elementergebnis
{
"meta": {
"resource": "key_scale",
"count": 9,
"filters": []
},
"data": {
"id": 1,
"keyId": 8,
"name": "Major (Ionian)",
"type": "scale",
"signature": "1,2,2,1,2,2,2",
"fullName": "C Major (Ionian)",
"keyToneName": "C",
"canonicalPath": "\/chords-and-scales\/c\/major-ionian",
"tones": [
{
"intervalId": 1,
"intervalAbbr": "1",
"noteName": "C",
"midiNumber": 48
},
{
"intervalId": 3,
"intervalAbbr": "2",
"noteName": "D",
"midiNumber": 50
}
]
}
}
Sichtbare Harmonien.
GET/api/mobile/harmonies — Sammlungsergebnis
{
"meta": {
"resource": "harmonies",
"count": 1,
"filters": []
},
"data": [
{
"id": 42,
"name": "Autumn Leaves",
"ownerId": 3,
"ownerUsername": "jolymusic",
"isPublic": true,
"events": [
{
"id": 101,
"startTick": 0,
"durationTick": 3840,
"keyId": 8,
"scaleId": 1,
"label": "Cmaj7"
}
],
"sections": [
{
"id": 12,
"sectionType": "A",
"label": "Theme A",
"position": 0,
"repeatCount": 2
}
],
"ownerTags": [
"jazz"
],
"userTags": []
}
]
}
GET/api/mobile/harmonies/42 — Elementergebnis
{
"meta": {
"resource": "harmony",
"count": 9,
"filters": []
},
"data": {
"id": 42,
"name": "Autumn Leaves",
"ownerId": 3,
"ownerUsername": "jolymusic",
"isPublic": true,
"events": [
{
"id": 101,
"startTick": 0,
"durationTick": 3840,
"keyId": 8,
"scaleId": 1,
"label": "Cmaj7"
}
],
"sections": [
{
"id": 12,
"sectionType": "A",
"label": "Theme A",
"position": 0,
"repeatCount": 2
}
],
"ownerTags": [
"jazz"
],
"userTags": []
}
}
Kreisförmige Rhythmen.
GET/api/mobile/circular-rhythms — Sammlungsergebnis
{
"meta": {
"resource": "circular_rhythms",
"count": 1,
"filters": []
},
"data": [
{
"id": 148,
"name": "Circular Dubstep Half Time",
"slug": "circular-dubstep-half-time",
"isPublic": true,
"ownerTags": [
"dubstep",
"half-time"
],
"state": {
"bpm": 140,
"ppq": 960,
"beatsPerBar": 4
},
"updatedAt": "2026-06-09T00:30:30+00:00"
}
]
}
GET/api/mobile/circular-rhythms/148 — Elementergebnis
{
"meta": {
"resource": "circular_rhythm",
"count": 7,
"filters": []
},
"data": {
"id": 148,
"name": "Circular Dubstep Half Time",
"slug": "circular-dubstep-half-time",
"isPublic": true,
"ownerTags": [
"dubstep",
"half-time"
],
"state": {
"bpm": 140,
"ppq": 960,
"beatsPerBar": 4
},
"updatedAt": "2026-06-09T00:30:30+00:00"
}
}
Metadaten der Klangerzeuger.
GET/api/mobile/sound-engines — Sammlungsergebnis
{
"meta": {
"resource": "sound_engines",
"count": 1,
"filters": []
},
"data": [
{
"id": 1,
"code": "tone",
"label": "Tone.js",
"description": "Browser synthesis and sampling engine",
"isEnabled": true,
"defaultConfig": {
"playMode": "pitched"
},
"supportedPlaybackCapabilities": [
"monotonal",
"polytonal",
"percussion"
]
}
]
}
GET/api/mobile/sound-engines/1 — Elementergebnis
{
"meta": {
"resource": "sound_engine",
"count": 7,
"filters": []
},
"data": {
"id": 1,
"code": "tone",
"label": "Tone.js",
"description": "Browser synthesis and sampling engine",
"isEnabled": true,
"defaultConfig": {
"playMode": "pitched"
},
"supportedPlaybackCapabilities": [
"monotonal",
"polytonal",
"percussion"
]
}
}
Sichtbare Klangvoreinstellungen.
GET/api/mobile/sound-presets — Sammlungsergebnis
{
"meta": {
"resource": "sound_presets",
"count": 1,
"filters": []
},
"data": [
{
"id": 29,
"name": "Tone.js \u2022 Realistic Acoustic Kit",
"color": "#e67e22",
"isPublic": true,
"isKit": true,
"playbackCapability": "percussion",
"engine": {
"id": 1,
"code": "tone",
"label": "Tone.js"
},
"playback": {
"engineCode": "tone",
"playMode": "percussion",
"toneInstrument": "db-tone:29"
}
}
]
}
GET/api/mobile/sound-presets/29 — Elementergebnis
{
"meta": {
"resource": "sound_preset",
"count": 8,
"filters": []
},
"data": {
"id": 29,
"name": "Tone.js \u2022 Realistic Acoustic Kit",
"color": "#e67e22",
"isPublic": true,
"isKit": true,
"playbackCapability": "percussion",
"engine": {
"id": 1,
"code": "tone",
"label": "Tone.js"
},
"playback": {
"engineCode": "tone",
"playMode": "percussion",
"toneInstrument": "db-tone:29"
}
}
}
Veröffentlichte Artikel.
GET/api/mobile/articles — Sammlungsergebnis
{
"meta": {
"resource": "articles",
"count": 1,
"filters": []
},
"data": [
{
"id": 17,
"title": "Understanding tonal gravity",
"slug": "understanding-tonal-gravity",
"content": "<p>Article content\u2026<\/p>",
"published": true,
"createdAt": "2026-01-12T10:00:00+00:00",
"updatedAt": "2026-06-10T14:30:00+00:00",
"tags": [
"harmony",
"theory"
]
}
]
}
GET/api/mobile/articles/17 — Elementergebnis
{
"meta": {
"resource": "article",
"count": 8,
"filters": []
},
"data": {
"id": 17,
"title": "Understanding tonal gravity",
"slug": "understanding-tonal-gravity",
"content": "<p>Article content\u2026<\/p>",
"published": true,
"createdAt": "2026-01-12T10:00:00+00:00",
"updatedAt": "2026-06-10T14:30:00+00:00",
"tags": [
"harmony",
"theory"
]
}
}
Sichtbare Medienmetadaten.
GET/api/mobile/media-assets — Sammlungsergebnis
{
"meta": {
"resource": "media_assets",
"count": 1,
"filters": []
},
"data": [
{
"id": 91,
"title": "Practice backing track",
"nameSlug": "practice-backing-track",
"kind": "audio",
"audience": "public",
"mimeType": "audio\/mpeg",
"path": "\/uploads\/media\/practice-backing-track.mp3",
"durationMs": 182000,
"isPublic": true
}
]
}
GET/api/mobile/media-assets/91 — Elementergebnis
{
"meta": {
"resource": "media_asset",
"count": 9,
"filters": []
},
"data": {
"id": 91,
"title": "Practice backing track",
"nameSlug": "practice-backing-track",
"kind": "audio",
"audience": "public",
"mimeType": "audio\/mpeg",
"path": "\/uploads\/media\/practice-backing-track.mp3",
"durationMs": 182000,
"isPublic": true
}
}
Instrumentenkatalog.
GET/api/mobile/instruments — Sammlungsergebnis
{
"meta": {
"resource": "instruments",
"count": 1,
"filters": []
},
"data": [
{
"id": 10,
"name": "Bass (4-string)",
"slug": "bass-4-string",
"familyRouteKey": "fretboard",
"familyCode": "FRETBOARD",
"familyName": "Fretboard",
"isPublic": true,
"isPublished": true,
"musicSystemIds": [
1
],
"allowedPlaybackCapabilities": [
"monotonal",
"polytonal"
]
}
]
}
GET/api/mobile/instruments/10 — Elementergebnis
{
"meta": {
"resource": "instrument",
"count": 10,
"filters": []
},
"data": {
"id": 10,
"name": "Bass (4-string)",
"slug": "bass-4-string",
"familyRouteKey": "fretboard",
"familyCode": "FRETBOARD",
"familyName": "Fretboard",
"isPublic": true,
"isPublished": true,
"musicSystemIds": [
1
],
"allowedPlaybackCapabilities": [
"monotonal",
"polytonal"
]
}
}
Katalog der Instrumentenreihen.
GET/api/mobile/instrument-rows — Sammlungsergebnis
{
"meta": {
"resource": "instrument_rows",
"count": 1,
"filters": []
},
"data": [
{
"id": 2137,
"instrumentId": 20,
"instrumentName": "Drum Kit",
"familyCode": "DRUMS",
"midi": 36,
"label": "Kick",
"x": 1,
"y": 3,
"z": 0,
"config": {
"drum": "kick",
"midi": 36,
"isPercussion": true
}
}
]
}
GET/api/mobile/instrument-rows/2137 — Elementergebnis
{
"meta": {
"resource": "instrument_row",
"count": 10,
"filters": []
},
"data": {
"id": 2137,
"instrumentId": 20,
"instrumentName": "Drum Kit",
"familyCode": "DRUMS",
"midi": 36,
"label": "Kick",
"x": 1,
"y": 3,
"z": 0,
"config": {
"drum": "kick",
"midi": 36,
"isPercussion": true
}
}
}
Katalog der Musiksysteme.
GET/api/mobile/music-systems — Sammlungsergebnis
{
"meta": {
"resource": "music_systems",
"count": 1,
"filters": []
},
"data": [
{
"id": 1,
"name": "12-tone equal temperament",
"slug": "tet-12",
"systemType": "equal_temperament",
"octaveRatio": 2,
"divisions": 12,
"isPublic": true,
"intervals": [
{
"stepIndex": 0,
"label": "Unison",
"ratio": 1,
"cents": 0,
"color": "#FF0000"
},
{
"stepIndex": 1,
"label": "Minor Second",
"ratio": 1.059463,
"cents": 100,
"color": "#FF6600"
}
]
}
]
}
GET/api/mobile/music-systems/1 — Elementergebnis
{
"meta": {
"resource": "music_system",
"count": 8,
"filters": []
},
"data": {
"id": 1,
"name": "12-tone equal temperament",
"slug": "tet-12",
"systemType": "equal_temperament",
"octaveRatio": 2,
"divisions": 12,
"isPublic": true,
"intervals": [
{
"stepIndex": 0,
"label": "Unison",
"ratio": 1,
"cents": 0,
"color": "#FF0000"
},
{
"stepIndex": 1,
"label": "Minor Second",
"ratio": 1.059463,
"cents": 100,
"color": "#FF6600"
}
]
}
}
Aufgelöster Zustand eines Musiksystems.
GET/api/mobile/music-systems/1/state — Elementergebnis
{
"meta": {
"resource": "music_system_state",
"count": 5,
"filters": []
},
"data": {
"musicSystemId": 1,
"slug": "tet-12",
"divisions": 12,
"octaveRatio": 2,
"tones": [
{
"stepIndex": 0,
"label": "C",
"cents": 0,
"frequency": 261.626
},
{
"stepIndex": 1,
"label": "C\u266f",
"cents": 100,
"frequency": 277.183
}
]
}
}
Ergebnisse öffentlicher Hilfsendpunkte
GET/api/keys
Beispiel für eine 200-Antwort
[
{
"id": 8,
"baseTone": {
"id": 1,
"name": "C",
"midi": 48,
"solfege": "do"
},
"alteration": 0,
"accidentals": 0,
"signature": "",
"frequency": 415.305,
"color": "#ff0000"
}
]
GET/api/instruments
Beispiel für eine 200-Antwort
[
{
"id": 10,
"name": "Bass (4-string)",
"slug": "bass-4-string",
"familyRouteKey": "fretboard",
"familyCode": "FRETBOARD",
"familyName": "Fretboard",
"isPublic": true,
"isPublished": true,
"musicSystemIds": [
1
],
"allowedPlaybackCapabilities": [
"monotonal",
"polytonal"
]
}
]
GET/api/instruments_select
Beispiel für eine 200-Antwort
{
"items": [
{
"id": 10,
"name": "Bass (4-string)",
"familyCode": "FRETBOARD",
"isPublished": true,
"musicSystemIds": [
1
],
"isFavorite": false,
"slug": "bass-4-string"
}
]
}
GET/api/instrument_rows_select?instrumentId=20
Beispiel für eine 200-Antwort
{
"items": [
{
"id": 2137,
"instrumentId": 20,
"instrumentName": "Drum Kit",
"familyCode": "DRUMS",
"midi": 36,
"label": "Kick",
"x": 1,
"y": 3,
"z": 0,
"config": {
"drum": "kick",
"midi": 36,
"isPercussion": true
}
}
]
}
GET/api/drum-folders.json
Beispiel für eine 200-Antwort
{
"folders": [
{
"label": "acoustic-kit",
"path": "\/samples\/drums\/acoustic-kit"
}
]
}
GET/api/drum-folder-files.json?path=/samples/drums/acoustic-kit
Beispiel für eine 200-Antwort
{
"path": "\/samples\/drums\/acoustic-kit",
"files": [
{
"url": "\/samples\/drums\/acoustic-kit\/kick.wav",
"name": "kick.wav"
}
]
}