changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "query": {
+ "type": "string"
+ },
+ "songs": {
+ "description": "Results. Scored fields are present only when rangeLow and rangeHigh were supplied.",
+ "items": {
+ "properties": {
+ "artist": {
+ "type": "string"
+ },
+ "difficultyScore": {
+ "description": "Karaoke difficulty, 0-100. Higher is harder.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "genre": {
+ "type": "string"
+ },
+ "highNote": {
+ "description": "Highest note of the song as a MIDI number.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "highNoteName": {
+ "description": "Same as highNote, as a note name like \"C#5\".",
+ "type": "string"
+ },
+ "likelyVoiceFit": {
+ "type": "string"
+ },
+ "lowNote": {
+ "description": "Lowest note of the song as a MIDI number.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "lowNoteName": {
+ "description": "Same as lowNote, as a note name like \"G2\".",
+ "type": "string"
+ },
+ "matchScore": {
+ "description": "Overall suitability for this voice, 0-100.",
+ "type": "integer"
+ },
+ "rangeConfidence": {
+ "description": "How the range was established. \"verified\" was measured from the recording; \"estimated\" was derived from published sources and should be presented as guidance, not fact; \"unknown\" means no range data.",
+ "type": "string"
+ },
+ "rangeSource": {
+ "description": "Provenance tag for the range, e.g. \"estimated_curated_seed\".",
+ "type": "string"
+ },
+ "riskWarning": {
+ "type": "string"
+ },
+ "slug": {
+ "description": "Catalog slug; the identifier check_song_fit takes.",
+ "type": "string"
+ },
+ "suggestedKey": {
+ "description": "Transposition advice, e.g. \"Try a lower key\".",
+ "type": "string"
+ },
+ "tessituraScore": {
+ "description": "How comfortable the song sits where the voice spends most time, 0-100.",
+ "type": "integer"
+ },
+ "title": {
+ "type": "string"
+ },
+ "url": {
+ "description": "Canonical HumMatch page for the song.",
+ "type": "string"
+ },
+ "vocalFitScore": {
+ "description": "How well the song range sits inside the singer range, 0-100.",
+ "type": "integer"
+ },
+ "voiceTypeFitScore": {
+ "description": "Fit against the voice type lane, 0-100. Can be high while matchScore is low when the range still exceeds the singer.",
+ "type": "integer"
+ },
+ "whyItFits": {
+ "type": "string"
+ },
+ "year": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "slug",
+ "title",
+ "artist",
+ "rangeConfidence"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "query",
+ "songs"
+ ],
+ "type": "object"
+}