play
Execute MIDI music playback with customizable BPM and instrument tracks, generating audio output from composed scores.
Instructions
Plays a music score
Input Schema
Name | Required | Description | Default |
---|---|---|---|
bpm | Yes | The BPM of the song | |
midiOuputName | No | The MIDI output name to use. Don't add unless requested. | |
tracks | Yes | Array of tracks to play. - If you want to make it a drum track, set the instrumentName to 'drums'. and Use the 'drums' proprerty in notation. - Otherwise, use the 'note' property in 'notes'. - Unless asked otherwise, add 10 bars assuming 4/4 time signature. - Unless asked otherwise, make sure that each has the same number of bars. - Sometimes you make some tracks longer or shorter than others. Avoid that. |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bpm": {
"description": "The BPM of the song",
"type": "number"
},
"midiOuputName": {
"description": "The MIDI output name to use. Don't add unless requested.",
"type": "string"
},
"tracks": {
"description": "Array of tracks to play.\n \n - If you want to make it a drum track, set the instrumentName to 'drums'. and Use the 'drums' proprerty in notation. \n - Otherwise, use the 'note' property in 'notes'.\n - Unless asked otherwise, add 10 bars assuming 4/4 time signature.\n - Unless asked otherwise, make sure that each has the same number of bars.\n - Sometimes you make some tracks longer or shorter than others. Avoid that.\n ",
"items": {
"additionalProperties": false,
"properties": {
"channel": {
"description": "The MIDI channel of the track. Don't add unless requested.",
"type": "number"
},
"instrumentName": {
"description": "The instrument of the track. Available instruments: acoustic_grand_piano, bright_acoustic_piano, electric_grand_piano, honky_tonk_piano, electric_piano_1, electric_piano_2, harpsichord, clavinet, celesta, glockenspiel, music_box, vibraphone, marimba, xylophone, tubular_bells, dulcimer, drawbar_organ, percussive_organ, rock_organ, church_organ, reed_organ, accordion, harmonica, tango_accordion, acoustic_guitar_nylon, acoustic_guitar_steel, electric_guitar_jazz, electric_guitar_clean, electric_guitar_muted, overdriven_guitar, distortion_guitar, guitar_harmonics, acoustic_bass, electric_bass_finger, electric_bass_pick, fretless_bass, slap_bass_1, slap_bass_2, synth_bass_1, synth_bass_2, violin, viola, cello, contrabass, tremolo_strings, pizzicato_strings, orchestral_harp, timpani, string_ensemble_1, string_ensemble_2, synth_strings_1, synth_strings_2, choir_aahs, voice_oohs, synth_voice, orchestra_hit, trumpet, trombone, tuba, muted_trumpet, french_horn, brass_section, synth_brass_1, synth_brass_2, soprano_sax, alto_sax, tenor_sax, baritone_sax, oboe, english_horn, bassoon, clarinet, piccolo, flute, recorder, pan_flute, blown_bottle, shakuhachi, whistle, ocarina, lead_1_square, lead_2_sawtooth, lead_3_calliope, lead_4_chiff, lead_5_charang, lead_6_voice, lead_7_fifths, lead_8_bass_lead, pad_1_new_age, pad_2_warm, pad_3_polysynth, pad_4_choir, pad_5_bowed, pad_6_metallic, pad_7_halo, pad_8_sweep, fx_1_rain, fx_2_soundtrack, fx_3_crystal, fx_4_atmosphere, fx_5_brightness, fx_6_goblins, fx_7_echoes, fx_8_sci_fi, sitar, banjo, shamisen, koto, kalimba, bag_pipe, fiddle, shanai, tinkle_bell, agogo, steel_drums, woodblock, taiko_drum, melodic_tom, synth_drum, reverse_cymbal, guitar_fret_noise, breath_noise, seashore, bird_tweet, telephone_ring, helicopter, applause, gunshot. If you want to make it a drum track, set the instrumentName to 'drums'.",
"enum": [
"drums",
"acoustic_grand_piano",
"bright_acoustic_piano",
"electric_grand_piano",
"honky_tonk_piano",
"electric_piano_1",
"electric_piano_2",
"harpsichord",
"clavinet",
"celesta",
"glockenspiel",
"music_box",
"vibraphone",
"marimba",
"xylophone",
"tubular_bells",
"dulcimer",
"drawbar_organ",
"percussive_organ",
"rock_organ",
"church_organ",
"reed_organ",
"accordion",
"harmonica",
"tango_accordion",
"acoustic_guitar_nylon",
"acoustic_guitar_steel",
"electric_guitar_jazz",
"electric_guitar_clean",
"electric_guitar_muted",
"overdriven_guitar",
"distortion_guitar",
"guitar_harmonics",
"acoustic_bass",
"electric_bass_finger",
"electric_bass_pick",
"fretless_bass",
"slap_bass_1",
"slap_bass_2",
"synth_bass_1",
"synth_bass_2",
"violin",
"viola",
"cello",
"contrabass",
"tremolo_strings",
"pizzicato_strings",
"orchestral_harp",
"timpani",
"string_ensemble_1",
"string_ensemble_2",
"synth_strings_1",
"synth_strings_2",
"choir_aahs",
"voice_oohs",
"synth_voice",
"orchestra_hit",
"trumpet",
"trombone",
"tuba",
"muted_trumpet",
"french_horn",
"brass_section",
"synth_brass_1",
"synth_brass_2",
"soprano_sax",
"alto_sax",
"tenor_sax",
"baritone_sax",
"oboe",
"english_horn",
"bassoon",
"clarinet",
"piccolo",
"flute",
"recorder",
"pan_flute",
"blown_bottle",
"shakuhachi",
"whistle",
"ocarina",
"lead_1_square",
"lead_2_sawtooth",
"lead_3_calliope",
"lead_4_chiff",
"lead_5_charang",
"lead_6_voice",
"lead_7_fifths",
"lead_8_bass_lead",
"pad_1_new_age",
"pad_2_warm",
"pad_3_polysynth",
"pad_4_choir",
"pad_5_bowed",
"pad_6_metallic",
"pad_7_halo",
"pad_8_sweep",
"fx_1_rain",
"fx_2_soundtrack",
"fx_3_crystal",
"fx_4_atmosphere",
"fx_5_brightness",
"fx_6_goblins",
"fx_7_echoes",
"fx_8_sci_fi",
"sitar",
"banjo",
"shamisen",
"koto",
"kalimba",
"bag_pipe",
"fiddle",
"shanai",
"tinkle_bell",
"agogo",
"steel_drums",
"woodblock",
"taiko_drum",
"melodic_tom",
"synth_drum",
"reverse_cymbal",
"guitar_fret_noise",
"breath_noise",
"seashore",
"bird_tweet",
"telephone_ring",
"helicopter",
"applause",
"gunshot"
],
"type": "string"
},
"notes": {
"description": "\"Array of notes or drums to play with timing. \n \n - If you want to play a drum track, use the drums property. \n - If you want to play a non-drum instrument, use the note property.\n \n Example:\n \n [{note: ['C2', 'E2'], noteDuration: '1/8'}, {note: [], noteDuration: '1/8'}, {note: ['G2'], noteDuration: '1/8'}, {note: null, noteDuration: '1/8'}]. \n \n Or \n \n [{drums: ['bass_drum_1', 'closed_hi_hat'], noteDuration: '1/8'}, {drums: ['closed_hi_hat'], noteDuration: '1/8'}, {drums: ['closed_hi_hat', 'acoustic_snare'], noteDuration: '1/8'}, {drums: ['closed_hi_hat'], noteDuration: '1/8'}]. \n \n An array could be a bar or several bars.\n --------------------------------------------------------------------------------\n \n IMPORTANT FOR FOR DRUM TRACKS:\n \n - notes are played one after another. \n - we wait until the whole duration of a note before we play another one. \n - So don't do this: \"notes\" :[{\"drums: [\"bass_drum_1\", \"closed_hi_hat\"], noteDuration: '1/4'},{\"drums: [ \"closed_hi_hat\"], noteDuration: '1/4'} {drums: ['closed_hi_hat', 'acoustic_snare'], noteDuration: '1/4'}...].",
"items": {
"additionalProperties": false,
"properties": {
"drums": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "The drums to play. Use array for multiple drums. Use an empty array for rest/silence. Available drums: acoustic_bass_drum, bass_drum_1, side_stick, acoustic_snare, hand_clap, electric_snare, low_floor_tom, closed_hi_hat, high_floor_tom, pedal_hi_hat, low_tom, open_hi_hat, low_mid_tom, hi_mid_tom, crash_cymbal_1, high_tom, ride_cymbal_1, chinese_cymbal, ride_bell, tambourine, splash_cymbal, cowbell, crash_cymbal_2, vibraslap, ride_cymbal_2, hi_bongo, low_bongo, mute_hi_conga, open_hi_conga, low_conga, high_timbale, low_timbale, high_agogo, low_agogo, cabasa, maracas, short_whistle, long_whistle, short_guiro, long_guiro, claves, hi_wood_block, low_wood_block, mute_cuica, open_cuica, mute_triangle, open_triangle"
},
"note": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "The notes to play. Use array for chords. Or put one element for single note. Use an empty array for rest/silence"
},
"noteDuration": {
"description": "The note duration, e.g.: 1/32, 1/16, 1/8, 1/4, 1/2, 1",
"type": "string"
}
},
"required": [
"noteDuration"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"instrumentName",
"notes"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"bpm",
"tracks"
],
"type": "object"
}