Skip to content

Commit 9bd96f3

Browse files
author
Jonathan Zhao
committed
added more frequency options
1 parent 5511c2e commit 9bd96f3

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

audio_visualizer.py

+5-6
Original file line numberDiff line numberDiff line change
@@ -135,14 +135,13 @@ def __init__(self, py_audio, data_format=pyaudio.paInt16,
135135
self.fft_size = int(self.fft_size)
136136

137137
self.max_freq = min(max_frequency, int(self.sample_rate / 2))
138-
self.bass_freq = bass_frequency
139-
140-
if self.max_freq < high_frequency:
141-
high_frequency = self.max_freq
138+
self.low_freq = max(0, low_frequency)
139+
self.high_freq = min(self.max_freq, high_frequency)
140+
self.bass_freq = max(0, bass_frequency)
142141

143142
self.bass_index = int(self.bass_freq / self.max_freq * self.fft_size)
144-
self.low_index = int(low_frequency / self.max_freq * self.fft_size)
145-
self.high_index = int(high_frequency / self.max_freq * self.fft_size)
143+
self.low_index = int(self.low_freq / self.max_freq * self.fft_size)
144+
self.high_index = int(self.high_freq / self.max_freq * self.fft_size)
146145

147146
# sets up QtPy application
148147
signal.signal(signal.SIGINT, signal.SIG_DFL)

custom_qt.py

+33-1
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,20 @@ class SettingsPanel(QtWidgets.QWidget):
8787
def assign_bass_freq(self, text):
8888
self.visualizer.bass_freq = int(text or '0')
8989
self.visualizer.bass_index = int(self.visualizer.bass_freq / self.visualizer.max_freq * self.visualizer.fft_size)
90+
91+
def assign_low_freq(self, text):
92+
self.visualizer.low_freq = int(text or '0')
93+
self.visualizer.low_index = int(self.visualizer.low_freq / self.visualizer.max_freq * self.visualizer.fft_size)
94+
95+
def assign_high_freq(self, text):
96+
self.visualizer.high_freq = int(text or '1')
97+
self.visualizer.high_index = int(self.visualizer.high_freq / self.visualizer.max_freq * self.visualizer.fft_size)
98+
99+
def assign_max_freq(self, text):
100+
self.visualizer.max_freq = int(text or '1')
101+
self.visualizer.bass_index = int(self.visualizer.bass_freq / self.visualizer.max_freq * self.visualizer.fft_size)
102+
self.visualizer.low_index = int(self.visualizer.low_freq / self.visualizer.max_freq * self.visualizer.fft_size)
103+
self.visualizer.high_index = int(self.visualizer.high_freq / self.visualizer.max_freq * self.visualizer.fft_size)
90104

91105
def assign_wav_decay(self, text):
92106
self.visualizer.wav_decay_speed = float(text or '0')
@@ -134,11 +148,29 @@ def __init__(self, button):
134148
layout = QtWidgets.QFormLayout()
135149

136150
bass_freq_field = QtWidgets.QLineEdit()
137-
bass_freq_field.setValidator(QtGui.QIntValidator(0, self.visualizer.max_freq))
151+
bass_freq_field.setValidator(QtGui.QIntValidator(0, self.visualizer.sample_rate // 2))
138152
bass_freq_field.setText(str(self.visualizer.bass_freq))
139153
bass_freq_field.textChanged.connect(self.assign_bass_freq)
140154
layout.addRow("Bass Frequency", bass_freq_field)
141155

156+
low_freq_field = QtWidgets.QLineEdit()
157+
low_freq_field.setValidator(QtGui.QIntValidator(0, self.visualizer.sample_rate // 2))
158+
low_freq_field.setText(str(self.visualizer.low_freq))
159+
low_freq_field.textChanged.connect(self.assign_low_freq)
160+
layout.addRow("Low Frequency", low_freq_field)
161+
162+
high_freq_field = QtWidgets.QLineEdit()
163+
high_freq_field.setValidator(QtGui.QIntValidator(1, self.visualizer.sample_rate // 2))
164+
high_freq_field.setText(str(self.visualizer.high_freq))
165+
high_freq_field.textChanged.connect(self.assign_high_freq)
166+
layout.addRow("High Frequency", high_freq_field)
167+
168+
max_freq_field = QtWidgets.QLineEdit()
169+
max_freq_field.setValidator(QtGui.QIntValidator(1, self.visualizer.sample_rate // 2))
170+
max_freq_field.setText(str(self.visualizer.max_freq))
171+
max_freq_field.textChanged.connect(self.assign_max_freq)
172+
layout.addRow("Max Frequency", max_freq_field)
173+
142174
wav_decay_speed_field = QtWidgets.QLineEdit()
143175
wav_decay_speed_field.setValidator(QtGui.QDoubleValidator(0, 1, 2))
144176
wav_decay_speed_field.setText(str(self.visualizer.wav_decay_speed))

0 commit comments

Comments
 (0)