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

Create beat_generator/riffusion_cpu.py

Browse files
Files changed (1) hide show
  1. beat_generator/riffusion_cpu.py +31 -0
beat_generator/riffusion_cpu.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import scipy.io.wavfile as wav
3
+ import uuid
4
+ import os
5
+
6
+ def generate_audio_loop(style, bpm):
7
+ # fake riffusion-style sinewave for CPU-budget
8
+ sr = 44100
9
+ sec = 10
10
+ t = np.linspace(0, sec, sr*sec)
11
+
12
+ if style == "Country Rap":
13
+ freq = 90 + (bpm / 3)
14
+ elif style == "Trap":
15
+ freq = 120 + (bpm / 2)
16
+ elif style == "Dark Outlaw":
17
+ freq = 55 + (bpm / 4)
18
+ elif style == "Drill":
19
+ freq = 140 + (bpm / 1.5)
20
+ else:
21
+ freq = 100
22
+
23
+ wave = 0.4 * np.sin(2*np.pi*freq*t)
24
+ wave = (wave * 32767).astype(np.int16)
25
+
26
+ filename = f"generated_{uuid.uuid4().hex}.wav"
27
+ path = f"assets/generated_beats/{filename}"
28
+ os.makedirs("assets/generated_beats", exist_ok=True)
29
+ wav.write(path, sr, wave)
30
+
31
+ return path