# 1. Сначала установим библиотеку
!pip install midiutil
# 2. Ипортируем и генерируем MIDI
from midiutil import MIDIFile
from google.colab import files
bpm = 90
track = 0
channel = 0
midi = MIDIFile(1)
midi.addTempo(track, 0, bpm)
# === 1. 808 ===
def add_808():
notes = [27] # Ab0 / G#0
for i in range(32):
midi.addNote(track, channel, notes[0], i*4, 4, 110)
if i % 4 == 0:
midi.addNote(track, channel, notes[0] + 2, i*4 + 3.5, 0.5, 90)
add_808()
# === 2. Kick ===
for i in range(64):
midi.addNote(track, channel, 36, i*2, 0.5, 105)
# === 3. Snare ===
for i in range(64):
midi.addNote(track, channel, 38, i*2 + 1, 0.5, 95)
# === 4. Hi-Hats ===
for i in range(128):
vel = 70 if i % 2 == 0 else 50
midi.addNote(track, channel, 42, i*0.5, 0.3, vel)
# === 5. Мелодия ===
melody_notes = [59, 63, 66]
melody_time = 8.0
for i in range(12):
t = melody_time + i*4
midi.addNote(track, channel, melody_notes[0], t, 1.5, 85)
midi.addNote(track, channel, melody_notes[1], t + 1.5, 1.0, 80)
midi.addNote(track, channel, melody_notes[2], t + 2.5, 2.0, 90)
# === 6. Pad ===
pad_chord = [51, 55, 58]
for i in range(8):
t = i * 8
for note in pad_chord:
midi.addNote(track, channel, note, t, 8, 65)
# Сохранение и скачивание
filename = "wisdom_style_beat.mid"
with open(filename, "wb") as output_file:
midi.writeFile(output_file)
print("Готово! Скачиваем файл...")
files.download(filename)