BUBOUTLW commited on
Commit
235031d
·
verified ·
1 Parent(s): 27c522e

Create beat_generator/midi_tools.py

Browse files
Files changed (1) hide show
  1. beat_generator/midi_tools.py +28 -0
beat_generator/midi_tools.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from midiutil import MIDIFile
2
+ import uuid
3
+ import os
4
+
5
+ def generate_midi_pattern(bpm, pattern_type):
6
+ midi = MIDIFile(1)
7
+ track = 0
8
+ time = 0
9
+ midi.addTempo(track, time, bpm)
10
+
11
+ if pattern_type == "808":
12
+ notes = [36, 38, 40]
13
+ elif pattern_type == "Melody":
14
+ notes = [60, 64, 67, 72]
15
+ else:
16
+ notes = [35, 38]
17
+
18
+ for i, n in enumerate(notes):
19
+ midi.addNote(track, 0, n, i, 1, 100)
20
+
21
+ filename = f"pattern_{uuid.uuid4().hex}.mid"
22
+ path = f"assets/generated_beats/{filename}"
23
+ os.makedirs("assets/generated_beats", exist_ok=True)
24
+
25
+ with open(path, "wb") as f:
26
+ midi.writeFile(f)
27
+
28
+ return path