Repository navigation
Expand file tree
/
Copy pathFinalProject_Controller.py
More file actions
66 lines (47 loc) · 2.81 KB
/
Copy pathFinalProject_Controller.py
File metadata and controls
66 lines (47 loc) · 2.81 KB
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
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
class Controller:
def __init__(self, model, view):
self.model = model
self.view = view
def laf(self, file):
try:
# laf function from the model
self.model.file = file
self.model.laf()
figFFT = self.model.plotFFT()
chart = FigureCanvasTkAgg(figFFT, self.view.tab3)
chart.get_tk_widget().grid(row=0, column=0)
figWave = self.model.plotTimeAmp()
chart = FigureCanvasTkAgg(figWave, self.view.tab1)
chart.get_tk_widget().grid(row=0, column=0)
figSpec = self.model.plotSpectrogram()
chart = FigureCanvasTkAgg(figSpec, self.view.tab2)
chart.get_tk_widget().grid(row=0, column=0)
figRT60mid = self.model.plotRT60mid()
chart = FigureCanvasTkAgg(figRT60mid, self.view.tab5)
chart.get_tk_widget().grid(row=0, column=0)
figRT60low = self.model.plotRT60low()
chart = FigureCanvasTkAgg(figRT60low, self.view.tab4)
chart.get_tk_widget().grid(row=0, column=0)
figRT60high = self.model.plotRT60high()
chart = FigureCanvasTkAgg(figRT60high, self.view.tab6)
chart.get_tk_widget().grid(row=0, column=0)
figRT60combined = self.model.plotRT60Combined()
chart = FigureCanvasTkAgg(figRT60combined, self.view.tab7)
chart.get_tk_widget().grid(row=0, column=0)
# show a success message
self.view.show_success(f'The file {file} has been saved as mono_channel.wav!')
self.view.T.configure(state='normal')
self.view.T.delete('1.0','end')
self.view.T.insert('1.0', f'{round(self.model.rt60high,4)} seconds is the RT60 for high frequency.\n')
self.view.T.insert('2.0', f'{round(self.model.rt60mid,4)} seconds is the RT60 for mid frequency.\n')
self.view.T.insert('3.0', f'{round(self.model.rt60low,4)} seconds is the RT60 for low frequency.\n')
self.view.T.insert('4.0', f'{round(self.model.high_frequency,4)} hz is the high frequency.\n')
self.view.T.insert('5.0', f'{round(self.model.mid_frequency,4)} hz is the mid frequency.\n')
self.view.T.insert('6.0', f'{round(self.model.low_frequency,4)} hz is the low frequency.\n')
self.view.T.insert('7.0', f'{round(self.model.resonance_frequency,4)} hz is the resonance frequency.\n')
self.view.T.insert('8.0', f'{round(self.model.length,4)} seconds is the length of the sound file.\n')
self.view.T.configure(state='disabled')
except ValueError as error:
# show an error message
self.view.show_error(error)