Minor fixes to convert_tuple

This commit is contained in:
Thibaud 2024-05-28 17:21:02 +02:00
parent 3ed980795b
commit ee5e9db9e1
1 changed files with 8 additions and 6 deletions

View File

@ -380,26 +380,28 @@ def test_sample(timelist):
#BPM = 140 #BPM = 140
#Length = 32*60/BPM-0.01 #Length = 32*60/BPM-0.01
def convert_tuple(datares): def convert_tuple(datares, freq):
""" """
Takes datares and converts it to a list of tuples (amplitude, time in ms) Takes datares and converts it to a list of tuples (amplitude, time in ms)
""" """
return [(i, datares[i]) for i in range(len(datares)) if datares[i] > 0] return [(i, datares[i], freq[i]) for i in range(len(datares)) if datares[i] > 0]
def process_song(filename, offset, bpm, div_len_factor=60, n_iter=48, threshold=0.5, divisor=4): def process_song(filename, offset, bpm, div_len_factor=60, n_iter=48, threshold=0.5, divisor=4):
#zaejzlk
div_len = div_len_factor/bpm-0.01 div_len = div_len_factor/bpm-0.01
filtered_name = f"{filename}_trimmed.wav" filtered_name = f"{filename}_trimmed.wav"
void_freq(filename, offset, offset+div_len*(n_iter+1)+0.01, 4*60/bpm, minfreq=0, maxfreq=330, upperthr=5000, ampthr=60, ampfreq = 1200, ampval = 7.27, leniency = 0.005, write=True, output_file=filtered_name) void_freq(filename, offset, offset+div_len*(n_iter+1)+0.01, 4*60/bpm, minfreq=0, maxfreq=330, upperthr=5000, ampthr=60, ampfreq = 1200, ampval = 7.27, leniency = 0.005, write=True, output_file=filtered_name)
datares = filter_n_percent_serial(filtered_name, offset, n_iter, div_len, threshold) datares = filter_n_percent_serial(filtered_name, offset, n_iter, div_len, threshold)
datares = snap(datares, 44100, bpm, 4) datares = snap(datares, 44100, bpm, 4, True)
frequencies = get_freq(filtered_name, offset, div_len, div_len*n_iter, datares) frequencies = get_freq(filtered_name, offset, div_len, div_len*n_iter, datares, True)
Path(f"{filename}_trimmed.wav").unlink() Path(f"{filename}_trimmed.wav").unlink()
return convert_tuple(datares), frequencies return convert_tuple(datares, frequencies)
def main(): def main():
data, freq = process_song("tetris_4.wav", 0, 160) data = process_song("tetris_4.wav", 0, 160)
print(data) print(data)
print("Program finished with return 0") print("Program finished with return 0")