print("caching data...")
caching = True
+ all_spectrums = np.zeros((segment_count, window_height, window_size, 3), dtype=np.uint8)
+
for segment_index in tqdm(range(segment_count)):
# get the specturm of the current sample
segment_start = segment_index * segment_samples
if segment_index == 10:
cv.imwrite("spectrum_sample.jpg", spectrum)
- np.save(f"cache/frame{segment_index}.npy", spectrum)
+ all_spectrums[segment_index] = spectrum
+ #np.save(f"cache/frame{segment_index}.npy", spectrum)
segment_index = 0
print("cached!")
while segment_index < segment_count:
- spectrum = np.load(f"cache/frame{segment_index}.npy")
+ spectrum = all_spectrums[segment_index]#np.load(f"cache/frame{segment_index}.npy")
# display and capture
camera.display(spectrum)
bigger windows are exponentially better so you should prefer this if possible
obviously the biggest you can use is the size of your display unless you have
some way of arranging the pixles independant of the orrigional spectrogram.
+ This should ideally be one of n^2 (possibly n^2 * m^3????).
+ e.g.: 64 81 100 121 144 169 192 225
- Window height
This is the height of the image, or, the number of ffts performed in one "batch".
This batching is multithreaded and therefore has some effect on process speed.
# define parameters
sample_rate = 22_050
-window_size = 150
+window_size = 144
window_height = 80
+hop_size = window_size // 2
+
caching = False
if __name__ == "__main__":