# Drum constants
DRUM_SNARE = 1
DRUM_BASS = 2
DRUM_SIDE_STICK = 3
DRUM_CRASH_CYMBAL = 4
DRUM_OPEN_HI_HAT = 5
DRUM_CLOSED_HI_HAT = 6
DRUM_TAMBOURINE = 7
DRUM_HAND_CLAP = 8
DRUM_CLAVES = 9
DRUM_WOOD_BLOCK = 10
DRUM_COWBELL = 11
DRUM_TRIANGLE = 12
DRUM_BONGO = 13
DRUM_CONGA = 14
DRUM_CABASA = 15
DRUM_GUIRO = 16
DRUM_VIBRASLAP = 17
DRUM_CUICA = 18

# Instrument constants
INSTRUMENT_PIANO = 1
INSTRUMENT_ELECTRIC_PIANO = 2
INSTRUMENT_ORGAN = 3
INSTRUMENT_GUITAR = 4
INSTRUMENT_ELECTRIC_GUITAR = 5
INSTRUMENT_BASS = 6
INSTRUMENT_PIZZICATO = 7
INSTRUMENT_CELLO = 8
INSTRUMENT_TROMBONE = 9
INSTRUMENT_CLARINET = 10
INSTRUMENT_SAXOPHONE = 11
INSTRUMENT_FLUTE = 12
INSTRUMENT_WOODEN_FLUTE = 13
INSTRUMENT_BASSOON = 14
INSTRUMENT_CHOIR = 15
INSTRUMENT_VIBRAPHONE = 16
INSTRUMENT_MUSIC_BOX = 17
INSTRUMENT_STEEL_DRUM = 18
INSTRUMENT_MARIMBA = 19
INSTRUMENT_SYNTH_LEAD = 20
INSTRUMENT_SYNTH_PAD = 21


def play_drum(drum: int) -> None:
    assert 1 <= drum <= 18, "Drum must be between 1 and 18"


def play_instrument(instrument: int, note: int, duration: int) -> None:
    assert 1 <= instrument <= 21, "Instrument must be between 1 and 21"
    assert 1 <= note <= 130, "Note must be between 1 and 130"
