-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconfig.py
101 lines (81 loc) · 2.17 KB
/
config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import array
from pydub import AudioSegment
INPUT_PATH = 'music/'
OUTPUT_PATH = 'nfts/'
LIST_PATH = 'list.txt'
JSON_PATH = 'metadata.json'
BASS_PATH = 'basses/'
VIS_PATH = "sound.png"
CLIP_LENGTH = 20
FADE_DURATION = 2
LOW_CUTOFF = 100
HIGH_CUTOFF = 200
VOLUME = 20
BASS_VOLUME = 10
ATTENUATE_DB = 0
ACCENTUATE_DB = 5
FRAME_RATE = 60
saved_song = 'song.mp3'
bass_song = 'bass.mp3'
# rarity je kater bass - beat ma neka pesem, to se skriva pod bass
features = ['Fade In & Out', 'Bass Emphasized', 'VolumeUp', 'Apply Beat', 'Low Pass Filter', 'High Pass Filter', 'Stereo Gain', '8D']
def song_length(filename):
song = AudioSegment.from_mp3(filename)
return int(song.duration_seconds)
def getInfoOnTrack(song):
d = {}
d["Length"] = int(song.duration_seconds)
d['Frame_rate'] = song.frame_rate
d['Channels'] = song.channels
d['Sample_Width'] = song.sample_width
return d
def createMemberList():
with open(LIST_PATH, 'r') as f:
return [line.split('\n')[0] for line in f.readlines()]
def findUser(username, list):
for k in list:
if k == username: return True
return False
# dictf = {
# "P1" : (lambda x: low_pass_filter()),
# "P2" : (lambda x: high_pass_filter()),
# "P3" : (lambda x: emphasise_bass()),
# "P4" : (lambda x: volume_up()),
# "P5" : (lambda x: apply_gain_stereo()),
# "P6" : (lambda x: apply_basses()),
# }
items = ["P"+ str(k) for k in range(1, 7)]
def get_frame_width(bit_depth):
return FRAME_WIDTHS[bit_depth]
def get_array_type(bit_depth, signed=True):
t = ARRAY_TYPES[bit_depth]
if not signed:
t = t.upper()
return t
def get_min_max_value(bit_depth):
return ARRAY_RANGES[bit_depth]
FRAME_WIDTHS = {
8: 1,
16: 2,
32: 4,
}
ARRAY_TYPES = {
8: "b",
16: "h",
32: "i",
}
ARRAY_RANGES = {
8: (-0x80, 0x7f),
16: (-0x8000, 0x7fff),
32: (-0x80000000, 0x7fffffff),
}
def db_to_float(db, using_amplitude=True):
"""
Converts the input db to a float, which represents the equivalent
ratio in power.
"""
db = float(db)
if using_amplitude:
return 10 ** (db / 20)
else: # using power
return 10 ** (db / 10)