diff --git a/main.py b/main.py index e795421..e395801 100644 --- a/main.py +++ b/main.py @@ -18,7 +18,7 @@ def main(): timings, amplitudes, freqs = [x[0] for x in data], [x[1] for x in data], [x[2] for x in data] beatmap._hit_objects = place.greedy(bpm, offset, timings, amplitudes) - beatmap.display_name = "TIPE's Extra" + #beatmap.display_name = "TIPE's Extra" #beatmap._hit_objects = [sl.Slider(sl.Position(0, 0), timedelta(milliseconds=3), timedelta(milliseconds=130), 0, sl.curve.Linear([sl.Position(0, 0), sl.Position(100, 100)], 100), 100, 2, 1, 1, 1, timing.ms_per_beat, [], [],)] beatmap.write_path("rewrite.osu") diff --git a/sound_process.py b/sound_process.py index da8b1c6..650201f 100755 --- a/sound_process.py +++ b/sound_process.py @@ -456,20 +456,23 @@ def snap2(data, sample_rate, bpm, first_offset=0, div=4, show=False): k = 0 current_t = first_offset - for i in range(len(data)): + while(current_t < 0): + k += 1 + current_t = first_offset + k*60/(bpm*div) - if(i/sample_rate > current_t): - k += 1 - current_t = first_offset + k*60/(bpm*div) - - x = int(current_t*1000) - if(x < len(new)): - new[x] = max(new[x], data[i]) + while(current_t < len(data)/sample_rate): + for i in range(int(sample_rate*current_t), int(min(len(new)-1, sample_rate*(current_t + 60/(bpm*div))))): + new[min(int(sample_rate*current_t), len(new)-1)] = max(new[min(int(current_t*sample_rate), len(new)-1)], data[i]) + k += 1 + current_t = first_offset + k*60/(bpm*div) if(show): t = [j/1000+first_offset for j in range(len(new))] beats = [0 for j in range(len(new))] k = 0 + while(first_offset + k*60/(bpm*div) < 0): + k += 1 + current_offset = first_offset + k*60/(bpm*div) while((first_offset + k*60/(bpm*div)*1000 < len(new))): beats[int(first_offset + k*60/(bpm*div)*1000)] = 16384 k += 1