Fly Me to the Moon#
初始化Midi对象#
from infmidi import Midi
song = Midi(bpm=123, time_signature='4/4', key_signature='C')
轨道1#
使用 sheet()
快速生成一段和弦进行。
track1 = song.new_track('chord track', instrument="5")
txt = '''
A4:m7 | D4:m9 | G4:7 | C4:M7 |
F4:M7 | B3:m7-5 | E4:7 | A4:m7 A4:7
'''
progression = sheet(txt)
track1.add(progression)
轨道2#
track2 = song.new_track('melody track', instrument="12")
txt = '''
(C5 -) (- B4) (A4 G4) (- F4) | (- -) (- G4) (A4 C5) (- B4) |
- (- A4) (G4 F4) (- E4) | - 0 |
(A4 -) (- G4) (F4 E4) (- D4) | - (- E4) (F4 A4) - |
G#4 (F4 E4) (- D4) (- C4) | - - - C#4
'''
melody = sheet(txt)
track2.add(melody)
完整代码#
1from infmidi import Note, Clip, Track, Midi
2from infmidi import chord, sheet
3from infmidi import FluidSynth, Controller
4from infmidi.effects.rhythm import delay
5
6
7# ====== Initialize ======
8synth = FluidSynth()
9song = Midi(bpm=123, time_signature='4/4')
10
11
12# ====== Track 1 ======
13track1 = song.new_track('chord track', instrument=5)
14
15txt = '''
16 A4:m7 | D4:m9 | G4:7 | C4:M7 |
17 F4:M7 | B3:m7-5 | E4:7 | A4:m7 A4:7
18'''
19progression = sheet(txt)
20track1.add(progression)
21
22# ====== Track 2 ======
23track2 = song.new_track('melody track', instrument=12)
24
25txt = '''
26 (C5 -) (- B4) (A4 G4) (- F4) | (- -) (- G4) (A4 C5) (- B4) |
27 - (- A4) (G4 F4) (- E4) | - 0 |
28 (A4 -) (- G4) (F4 E4) (- D4) | - (- E4) (F4 A4) - |
29 G#4 (F4 E4) (- D4) (- C4) | - - - C#4
30'''
31
32melody = sheet(txt)
33
34delayed_melody = delay(melody, n=3, length=0.3, decay=0.7)
35bass_melody = melody - 24
36
37mixed_melody = delayed_melody + bass_melody
38track2.add(mixed_melody)
39
40# ====== play ======
41synth(song)