Загрузка данных


# 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)