MIDI- I have written a code for a song need you

import struct

— Helper functions —

def write_var_len(value):
“”“Convert an integer into a MIDI variable-length quantity.”“”
buffer =
buffer.append(value & 0x7F)
value >>= 7
while value:
buffer.insert(0, (value & 0x7F) | 0x80)
value >>= 7
return bytes(buffer)

def note_on(note, velocity, delta=0):
return write_var_len(delta) + bytes([0x90, note, velocity])

def note_off(note, delta=0):
return write_var_len(delta) + bytes([0x80, note, 0])

def make_track(events):
data = b’‘.join(events) + b’\x00\xFF\x2F\x00’ # End of track
return b’MTrk’ + struct.pack(‘>I’, len(data)) + data

def make_midi(track_data):
ticks_per_beat = 480
header = b’MThd’ + struct.pack(‘>IHHH’, 6, 1, 1, ticks_per_beat)
return header + track_data

def save_midi(filename, track_data):
midi_data = make_midi(track_data)
with open(filename, “wb”) as f:
f.write(midi_data)
print(f":white_check_mark: Saved {filename}")

— Common settings —

ticks_per_beat = 480

— PAD CHORDS —

chords = [
[57, 60, 64, 67], # Am7
[62, 65, 69, 72], # Dm7
[65, 69, 72], # F
[64, 68, 71, 74] # E7
]

pad_events =
for i, chord in enumerate(chords):
for note in chord:
pad_events.append(note_on(note, 85, 0))
for note in chord:
pad_events.append(note_off(note, ticks_per_beat * 4 if note == chord[-1] else 0))
pad_track = make_track(pad_events)
save_midi(“Amapiano_Pad_Chords.mid”, pad_track)

— LOG DRUM / BASS —

bass_notes = [
(45, 57), # A2→A3
(38, 50), # D2→D3
(41, 53), # F2→F3
(40, 52) # E2→E3
]

bass_events =
for i, (low, high) in enumerate(bass_notes):
bass_events.append(note_on(low, 100, 0))
bass_events.append(note_off(low, int(ticks_per_beat * 0.5)))
bass_events.append(note_on(high, 85, int(ticks_per_beat * 1.5)))
bass_events.append(note_off(high, int(ticks_per_beat * 0.5)))
bass_track = make_track(bass_events)
save_midi(“Amapiano_LogDrum_Bass.mid”, bass_track)

— LEAD MELODY —

lead_sequence = [69, 72, 74, 76, 77, 79, 81, 79]
lead_events =
for note in lead_sequence:
lead_events.append(note_on(note, 80, 0))
lead_events.append(note_off(note, int(ticks_per_beat * 0.45)))
lead_track = make_track(lead_events)
save_midi(“Amapiano_Lead_Melody.mid”, lead_track)

print(“\n🎶 All done! Import them into FL Studio and set instruments:”)
print(" - Pad: Warm electric piano or soft pad")
print(" - Log drum: Amapiano log drum preset")
print(" - Lead: Soft pluck or airy string")