diff --git a/.gitignore b/.gitignore index 15fe31b..fc126c9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ TinnitusAnalyse/.idea/dictionaries/Julian.xml TinnitusAnalyse/.idea/workspace.xml TinnitusAnalyse/eggs.csv +TinnitusAnalyse/.idea/workspace.xml diff --git a/TinnitusAnalyse/.idea/dictionaries/Julian.xml b/TinnitusAnalyse/.idea/dictionaries/Julian.xml index ee120ee..4a62725 100644 --- a/TinnitusAnalyse/.idea/dictionaries/Julian.xml +++ b/TinnitusAnalyse/.idea/dictionaries/Julian.xml @@ -8,7 +8,9 @@ definieren frequenz kommentare + lautstaerke lautstärke + liefert linkem linken linkes @@ -23,6 +25,7 @@ rechter rechtes rechts + speicherversuch variablen vorname zwischen diff --git a/TinnitusAnalyse/.idea/workspace.xml b/TinnitusAnalyse/.idea/workspace.xml index f7d9086..44775cb 100644 --- a/TinnitusAnalyse/.idea/workspace.xml +++ b/TinnitusAnalyse/.idea/workspace.xml @@ -2,8 +2,12 @@ + + + + \ No newline at end of file diff --git a/TinnitusAnalyse/27130.png b/TinnitusAnalyse/27130.png deleted file mode 100644 index 3ccf6fe..0000000 Binary files a/TinnitusAnalyse/27130.png and /dev/null differ diff --git a/TinnitusAnalyse/Headphones Icon.ico b/TinnitusAnalyse/Headphones Icon.ico deleted file mode 100644 index 5f3629a..0000000 Binary files a/TinnitusAnalyse/Headphones Icon.ico and /dev/null differ diff --git a/TinnitusAnalyse/SoundGenerator.py b/TinnitusAnalyse/SoundGenerator.py index e326e09..82f45ac 100644 --- a/TinnitusAnalyse/SoundGenerator.py +++ b/TinnitusAnalyse/SoundGenerator.py @@ -9,7 +9,7 @@ import time #nur für die Tests, um Zeit zum Anhören der Sounds einzubauen #das heißt für jede Sekunde an Ton gibt es 44100 Werte, die die Tonwelle über die Zeit beschreiben class Tinnitus: #beinhaltet alle Werte, die vom Nutzer eingestellt werden - def __init__(self, l_freq=600, r_freq=600, l_amp=1, r_amp=1, l_rausch=0, r_rausch=0, ear=0): + def __init__(self, l_freq=600, r_freq=600, l_amp=0, r_amp=0, l_rausch=0, r_rausch=0, ear=0): self.linksFrequenz = l_freq self.rechtsFrequenz = r_freq self.linksLautstaerke = l_amp @@ -38,7 +38,7 @@ class Tinnitus: #beinhaltet alle Werte, die vom Nutzer eingestellt werden #Die Klasse beinhaltet alle Werte, die zum Erstellen einer .wav-Datei benötigt werden und ein Tinnitus-Objekt, das beim Initialisieren übergeben werden muss. #Die Audiodaten werden in das Array "audio" geschrieben class Sound: - def __init__(self, tinnitus, name="sound.wav", audio=None, nchannels=1, sampwidth=2, framerate=44100, comptype="NONE", compname="not compressed"): + def __init__(self, tinnitus, name="sound.wav", audio=None, nchannels=1, sampwidth=2, framerate=44100, comptype="NONE", compname="not compressed", mute=True): if audio is None: audio = [] self.tinnitus = tinnitus @@ -50,6 +50,7 @@ class Sound: self.nframes = len(audio) #Anzahl der Sound-Werte -> Muss bei jeder audio-Änderung aktuallisiert werden self.comptype = comptype self.compname = compname + self.mute = True # wenn der mute boolean auf true gesetzt ist, sollte kein Ton ausgegeben werden return def neu_audio(self): #Schreibt Werte in das audio-Array. Soll später abhängig sein von den Tinnitus-Werten(Frequenz, Rauschen, ...) @@ -92,38 +93,41 @@ class Sound: def play(self): self.neu_audio() - sd.play(self.audio, self.framerate, loop=1) + if not self.mute: # NEVER play sound when patient mutes GUI + sd.play(self.audio, self.framerate, loop=1) return + def stop(self): + sd.stop() + return - -tinnitus1 = Tinnitus() -sound = Sound(tinnitus1) - -if(0): - print("======abnehmende Lautstärke==========") - for x in range(10): - print(" Lautstärke = ", tinnitus1.linksLautstaerke) - sound.play() - time.sleep(0.6) - tinnitus1.linksLautstaerke -= 0.1 - print("\n\n") - time.sleep(1) - tinnitus1.linksLautstaerke = 1 - - - -if(0): - print("=========RauschTest============") - for x in range(10): - tinnitus1.linksRauschenLautstaerke += 0.01 - print(" Rauschen = ", tinnitus1.linksRauschenLautstaerke) - sound.play() - time.sleep(1) - -if(0): - tinnitus1.speichern() - -sd.stop() -print("ENDE") +# tinnitus1 = Tinnitus() +# sound = Sound(tinnitus1) +# +# if(1): +# print("======abnehmende Lautstärke==========") +# for x in range(10): +# print(" Lautstärke = ", tinnitus1.linksLautstaerke) +# sound.play() +# time.sleep(0.6) +# tinnitus1.linksLautstaerke -= 0.1 +# print("\n\n") +# time.sleep(1) +# tinnitus1.linksLautstaerke = 1 +# +# +# +# if(0): +# print("=========RauschTest============") +# for x in range(10): +# tinnitus1.linksRauschenLautstaerke += 0.01 +# print(" Rauschen = ", tinnitus1.linksRauschenLautstaerke) +# sound.play() +# time.sleep(1) +# +# if(0): +# tinnitus1.speichern() +# +# sd.stop() +# print("ENDE") diff --git a/TinnitusAnalyse/TinnitusAnalyse_GUI.py b/TinnitusAnalyse/TinnitusAnalyse_GUI.py index d9950a7..9428f32 100644 --- a/TinnitusAnalyse/TinnitusAnalyse_GUI.py +++ b/TinnitusAnalyse/TinnitusAnalyse_GUI.py @@ -1,5 +1,6 @@ from tkinter.ttk import Frame, Label, Button, LabelFrame, Combobox, Style, Checkbutton, Entry, Panedwindow, Separator from tkinter import * +from SoundGenerator import * import csv @@ -8,28 +9,33 @@ import csv def links_scale_lautstärke_change(self): - linksLautstärke = float(linksScaleLautstärke.get()) - print("Links Lautstärke =", linksLautstärke) + tinnitus.linksLautstaerke = float(linksScaleLautstärke.get())/100 # scale liefert 0-100%, tinnitus.lautstärke 0-1 + print("Links Lautstärke =", tinnitus.linksLautstaerke*100) + sound.play() def links_scale_frequenz_change(self): - linksFrequenz = float(linksScaleFrequenz.get()) + #tinnitus.linksFrequenz = float(linksScaleFrequenz.get())/1000 # scale liefert 20-20kHz, tinnitus.frequenz in Hz print("Links Frequenz = ", linksFrequenz) + sound.play() def links_scale_rauschen_lautstärke_change(self): linksRauschenLautstärke = float(linksScaleRauschenLautstärke.get()) print("Links Rauschen Lautstärke = ", linksRauschenLautstärke) + sound.play() def links_scale_rauschen_mittelfrequenz_change(self): linksRauschenMittelfrequenz = float(linksScaleRauschenMittelFrequenz.get()) print("Links Rauschen Mittelfrequenz = ", linksRauschenMittelfrequenz) + sound.play() def links_scale_rauschen_bandbreite_change(self): linksRauschenBandbreite = float(linksScaleRauschenBandbreite.get()) print("Links Rauschen Bandbreite = ", linksRauschenBandbreite) + sound.play() """----------Funktionen rechts----------""" @@ -38,26 +44,31 @@ def links_scale_rauschen_bandbreite_change(self): def rechts_scale_lautstärke_change(self): rechtsLautstärke = float(rechtsScaleLautstärke.get()) print("Rechts Lautstärke =", rechtsLautstärke) + sound.play() def rechts_scale_frequenz_change(self): rechtsFrequenz = float(rechtsScaleFrequenz.get()) print("Rechts Frequenz= ", rechtsFrequenz) + sound.play() def rechts_scale_rauschen_lautstärke_change(self): rechtsRauschenLautstärke = float(rechtsScaleRauschenLautstärke.get()) print("Rechts Rauschen Lautstärke = ", rechtsRauschenLautstärke) + sound.play() def rechts_scale_rauschen_mittelfrequenz_change(self): rechtsRauschenMittelfrequenz = float(rechtsScaleRauschenMittelFrequenz.get()) print("Rechts Rauschen Mittelfrequenz = ", rechtsRauschenMittelfrequenz) + sound.play() def rechts_scale_rauschen_bandbreite_change(self): rechtsRauschenBandbreite = float(rechtsScaleRauschenBandbreite.get()) print("Rechts Rauschen Bandbreite = ", rechtsRauschenBandbreite) + sound.play() """--------------Funktionen unten------------------""" @@ -89,18 +100,28 @@ def unten_button_speichern_press(): (untenEntryNachname == "Erst Namen..") or (untenEntryVorname == "..eintragen bitte"): nachname.set("Erst Namen..") vorname.set("..eintragen bitte") + print("fehlgeschlagener Speicherversuch - Keine Eingaben gemacht") else: - print("TEST") + print("Speichere Patientendaten, siehe TinnitusDaten.csv") + tinnitus.speichern() def unten_button_play_press(): - print("button play pressed") - + print("button play pressed -> mute=false") + sound.mute = False + sound.play() def unten_button_stop_press(): - print("button stop press") + print("button stop press -> mute=true") + sound.mute = True + sound.stop() +"""""" +tinnitus = Tinnitus() +sound = Sound(tinnitus) +print("test") + """------------------------------------------ AUFBAU DES ROOT WINDOWS -----------------------------------------------""" root = Tk() # build the main window root.title("Tinnitus Analyse") diff --git a/TinnitusAnalyse/__pycache__/SoundGenerator.cpython-35.pyc b/TinnitusAnalyse/__pycache__/SoundGenerator.cpython-35.pyc new file mode 100644 index 0000000..1812ae9 Binary files /dev/null and b/TinnitusAnalyse/__pycache__/SoundGenerator.cpython-35.pyc differ