working TG YT TW

This commit is contained in:
sShemet
2026-01-07 02:22:34 +05:00
parent 62263b713a
commit 7561e6f411
7 changed files with 592 additions and 534 deletions

Binary file not shown.

69
midi/midi.py Normal file
View File

@@ -0,0 +1,69 @@
from midiutil import MIDIFile
# Параметры
tempo = 112 # BPM оригинала
volume = 100
# Создаём MIDI файл: 1 трек
midi = MIDIFile(1)
track = 0
channel = 0 # Пианино
time = 0
midi.addTempo(track, time, tempo)
# Функция для добавления нот (note, duration в долях такта, volume)
def add_notes(notes, duration=1, vol=volume):
global time
for pitch in notes if isinstance(notes, list) else [notes]:
midi.addNote(track, channel, pitch, time, duration, vol)
time += duration
# Простая версия Verse (Куплет) - 4 повторения прогрессии
# Аккорды: Bdim7 (бас Ab), Gm6, F#m7, Bm7
# Мелодия упрощённая, фокус на мотиве A A B B (A4=69, B4=71)
# Один цикл куплета (4 такта)
for _ in range(4): # x4
# 1. Bdim7 с басом Ab3 (44)
add_notes(44, 1) # бас Ab3
add_notes([71, 74, 77, 80], 0.5) # B4 D5 F5 Ab5 (пример voicing)
add_notes([69, 69, 71, 71], 0.5) # мотив A A B B в мелодии
# 2. Gm6
add_notes(43, 1) # бас G3=43
add_notes([67, 70, 74, 76], 1) # G Bb D E
# 3. F#m7
add_notes(42, 1) # бас F#3=42
add_notes([66, 69, 73, 76], 1) # F# A C# E
# 4. Bm7
add_notes(47, 1) # бас B3=47
add_notes([71, 74, 78, 81], 1) # B D F# A (выше)
# Chorus (Припев) - упрощённо 4 цикла
# Аккорды: GM7 - F#m7 - Em7 - Dmaj7
for _ in range(4):
# GM7
add_notes(55, 1) # бас G3
add_notes([71, 74, 78, 81], 1) # G B D F#
# F#m7
add_notes(54, 1) # F#3
add_notes([69, 73, 76, 78], 1)
# Em7
add_notes(52, 1) # E3
add_notes([64, 67, 71, 74], 1)
# Dmaj7 с развитием мелодии
add_notes(50, 1) # D3
add_notes([69, 71, 73, 74], 0.5) # A B C# D (развитие мотива)
add_notes([74], 0.5) # финал
# Записываем в файл
with open("kimi_no_kioku_simple.mid", "wb") as output_file:
midi.writeFile(output_file)
print("MIDI файл успешно создан: kimi_no_kioku_simple.mid")