Projektbericht hinzugefügt und % Fortschritt Anzeige grober gemacht

This commit is contained in:
seyffejn 2020-09-28 21:00:25 +02:00
parent 7971322755
commit f05fa4faee
10 changed files with 113 additions and 87 deletions

View File

@ -2,11 +2,11 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="5b3f2136-e422-4072-84be-e86e40fa2d55" name="Default Changelist" comment=""> <list default="true" id="5b3f2136-e422-4072-84be-e86e40fa2d55" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/dictionaries/Julian.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dictionaries/Julian.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/MyTinnitusFreeSong.wav" beforeDir="false" afterPath="$PROJECT_DIR$/MyTinnitusFreeSong.wav" afterDir="false" />
<change beforePath="$PROJECT_DIR$/SoundGenerator.py" beforeDir="false" afterPath="$PROJECT_DIR$/SoundGenerator.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/SoundGenerator.py" beforeDir="false" afterPath="$PROJECT_DIR$/SoundGenerator.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/TinnitusAnalyse_GUI.py" beforeDir="false" afterPath="$PROJECT_DIR$/TinnitusAnalyse_GUI.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/TinnitusAnalyse_GUI.py" beforeDir="false" afterPath="$PROJECT_DIR$/TinnitusAnalyse_GUI.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/TinnitusDaten.csv" beforeDir="false" afterPath="$PROJECT_DIR$/TinnitusDaten.csv" afterDir="false" /> <change beforePath="$PROJECT_DIR$/TinnitusDaten.csv" beforeDir="false" afterPath="$PROJECT_DIR$/TinnitusDaten.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/musikTest.wav" beforeDir="false" afterPath="$PROJECT_DIR$/musikTest.wav" afterDir="false" />
</list> </list>
<ignored path="$PROJECT_DIR$/venv/" /> <ignored path="$PROJECT_DIR$/venv/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@ -16,12 +16,12 @@
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py"> <entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352"> <state>
<caret line="210" lean-forward="true" selection-start-line="210" selection-end-line="210" /> <caret line="234" column="42" selection-start-line="234" selection-start-column="42" selection-end-line="234" selection-end-column="42" />
<folding> <folding>
<element signature="e#0#30#0" expanded="true" /> <element signature="e#0#30#0" expanded="true" />
</folding> </folding>
@ -30,28 +30,10 @@
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/io/wavfile.py"> <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/signal/fir_filter_design.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="275"> <state relative-caret-position="6562">
<caret line="263" selection-start-line="263" selection-end-line="263" /> <caret line="399" selection-start-line="399" selection-end-line="399" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/signal/filter_design.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="66">
<caret line="2278" column="41" selection-start-line="2278" selection-start-column="41" selection-end-line="2278" selection-end-column="41" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="278">
<caret line="1557" selection-start-line="1557" selection-end-line="1557" />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -59,8 +41,8 @@
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/SoundGenerator.py"> <entry file="file://$PROJECT_DIR$/SoundGenerator.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="373"> <state relative-caret-position="583">
<caret line="278" selection-start-line="278" selection-end-line="278" /> <caret line="257" selection-start-line="257" selection-end-line="257" />
<folding> <folding>
<element signature="e#0#42#0" expanded="true" /> <element signature="e#0#42#0" expanded="true" />
</folding> </folding>
@ -68,15 +50,6 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/signal/signaltools.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="275">
<caret line="1694" column="4" selection-start-line="1694" selection-start-column="4" selection-end-line="1694" selection-end-column="4" />
</state>
</provider>
</entry>
</file>
</leaf> </leaf>
</component> </component>
<component name="FileTemplateManagerImpl"> <component name="FileTemplateManagerImpl">
@ -111,9 +84,11 @@
<find>Speichern</find> <find>Speichern</find>
<find>csv</find> <find>csv</find>
<find>order</find> <find>order</find>
<find>feedback</find>
<find>musikTest</find> <find>musikTest</find>
<find>Daten er</find> <find>Daten er</find>
<find>samples</find>
<find>feedback</find>
<find>framerate</find>
</findStrings> </findStrings>
<dirStrings> <dirStrings>
<dir>C:\Users\Julian\PycharmProjects\TinnitusAnalyse</dir> <dir>C:\Users\Julian\PycharmProjects\TinnitusAnalyse</dir>
@ -130,9 +105,9 @@
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectFrameBounds" extendedState="7"> <component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-8" /> <option name="x" value="2520" />
<option name="y" value="-8" /> <option name="y" value="-21" />
<option name="width" value="1294" /> <option name="width" value="1294" />
<option name="height" value="1407" /> <option name="height" value="1407" />
</component> </component>
@ -298,23 +273,23 @@
<servers /> <servers />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-8" y="-8" width="2576" height="1416" extended-state="6" /> <frame x="2552" y="-8" width="1696" height="1026" extended-state="6" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info id="Favorites" side_tool="true" />
<window_info content_ui="combo" id="Project" order="0" weight="0.25" /> <window_info content_ui="combo" id="Project" order="0" weight="0.25" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Version Control" weight="0.32969603" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Python Console" weight="0.32969603" />
<window_info anchor="bottom" id="Terminal" weight="0.32969603" />
<window_info anchor="bottom" id="Event Log" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" /> <window_info anchor="bottom" id="Find" order="1" />
<window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32969603" /> <window_info anchor="bottom" id="Run" order="2" weight="0.47368422" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.3998441" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.3998441" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Version Control" order="7" weight="0.32969603" />
<window_info anchor="bottom" id="Terminal" order="8" weight="0.32969603" />
<window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />
<window_info anchor="bottom" id="Python Console" order="10" weight="0.32969603" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@ -343,13 +318,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="278">
<caret line="1557" selection-start-line="1557" selection-end-line="1557" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.PyCharmCE2019.1/system/python_stubs/-1242442885/builtins.py"> <entry file="file://$USER_HOME$/.PyCharmCE2019.1/system/python_stubs/-1242442885/builtins.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375"> <state relative-caret-position="375">
@ -357,31 +325,45 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/signal/signaltools.py"> <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/io/wavfile.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="275"> <state relative-caret-position="4386">
<caret line="1694" column="4" selection-start-line="1694" selection-start-column="4" selection-end-line="1694" selection-end-column="4" /> <caret line="263" selection-start-line="263" selection-end-line="263" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/signal/filter_design.py"> <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/signal/filter_design.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="66"> <state relative-caret-position="38437">
<caret line="2278" column="41" selection-start-line="2278" selection-start-column="41" selection-end-line="2278" selection-end-column="41" /> <caret line="2278" column="41" selection-start-line="2278" selection-start-column="41" selection-end-line="2278" selection-end-column="41" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/io/wavfile.py"> <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/signal/signaltools.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="275"> <state relative-caret-position="28492">
<caret line="263" selection-start-line="263" selection-end-line="263" /> <caret line="1694" column="4" selection-start-line="1694" selection-start-column="4" selection-end-line="1694" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3474">
<caret line="1557" selection-start-line="1557" selection-end-line="1557" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/site-packages/scipy/signal/fir_filter_design.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="6562">
<caret line="399" selection-start-line="399" selection-end-line="399" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py"> <entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352"> <state>
<caret line="210" lean-forward="true" selection-start-line="210" selection-end-line="210" /> <caret line="234" column="42" selection-start-line="234" selection-start-column="42" selection-end-line="234" selection-end-column="42" />
<folding> <folding>
<element signature="e#0#30#0" expanded="true" /> <element signature="e#0#30#0" expanded="true" />
</folding> </folding>
@ -390,8 +372,8 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/SoundGenerator.py"> <entry file="file://$PROJECT_DIR$/SoundGenerator.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="373"> <state relative-caret-position="583">
<caret line="278" selection-start-line="278" selection-end-line="278" /> <caret line="257" selection-start-line="257" selection-end-line="257" />
<folding> <folding>
<element signature="e#0#42#0" expanded="true" /> <element signature="e#0#42#0" expanded="true" />
</folding> </folding>

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -6,7 +6,7 @@ import sys # für Fehlermeldungen
from scipy import signal from scipy import signal
import csv import csv
import time import time
#import matplotlib.pyplot as plt import matplotlib.pyplot as plt
"""--------------------------------------------------------------------------------------------------------------------- """---------------------------------------------------------------------------------------------------------------------
In .wav-Dateien wird der Ton in absoluten Werte eingetragen. Die Standart-framerate ist 44100 In .wav-Dateien wird der Ton in absoluten Werte eingetragen. Die Standart-framerate ist 44100
@ -151,6 +151,25 @@ class Sound:
# sosfilt filtert das Signal mittels mehrerer 'second order sections' (= Filter 2. Ordnung) die über sos definiert sind # sosfilt filtert das Signal mittels mehrerer 'second order sections' (= Filter 2. Ordnung) die über sos definiert sind
outdata[:, 0] = signal.sosfilt(sos, outdata[:, 0]) outdata[:, 0] = signal.sosfilt(sos, outdata[:, 0])
# Plotten des Filters für Filterentwicklung und Dokumentation nützlich---------
# w, h = signal.sosfreqz(sos, worN=1500)
# plt.subplot(2, 1, 1)
# db = 20 * np.log10(np.maximum(np.abs(h), 1e-5))
# plt.plot(w / np.pi, db)
# plt.ylim(-75, 5)
# plt.grid(True)
# plt.yticks([0, -20, -40, -60])
# plt.ylabel('Gain [dB]')
# plt.title('Frequency Response')
# plt.subplot(2, 1, 2)
# plt.plot(w / np.pi, np.angle(h))
# plt.grid(True)
# plt.yticks([-np.pi, -0.5 * np.pi, 0, 0.5 * np.pi, np.pi],
# [r'$-\pi$', r'$-\pi/2$', '0', r'$\pi/2$', r'$\pi$'])
# plt.ylabel('Phase [rad]')
# plt.xlabel('Normalized frequency (1.0 = Nyquist)')
# plt.show()
# -------------------------------------------------------------------------------
if self.tinnitus.rechtsRauschenLautstaerke: if self.tinnitus.rechtsRauschenLautstaerke:
# (-3dB Grenzen) bzw was der Bandpass durchlässt # (-3dB Grenzen) bzw was der Bandpass durchlässt
fGrenz = [self.tinnitus.rechtsRauschenUntereGrenzfrequenz, fGrenz = [self.tinnitus.rechtsRauschenUntereGrenzfrequenz,
@ -238,11 +257,18 @@ class Sound:
# ------------------------------------- # -------------------------------------
if ll != 0.0: # nur wenn die Lautstärke des linken Tinnitus ungleich 0 ist, wird auf diesem Ohr auch gefiltert if ll != 0.0: # nur wenn die Lautstärke des linken Tinnitus ungleich 0 ist, wird auf diesem Ohr auch gefiltert
b, a = signal.iirfilter(order, cutoff_frequencies, rp=max_ripple_passband, btype='bandstop', ftype='butter', b, a = signal.iirfilter(order, cutoff_frequencies, rp=max_ripple_passband, btype='bandstop', ftype='butter',
fs=self.music_samplerate) # Diese Funktion erstellt den IIR-Bandpassfilter (links) fs=self.music_samplerate) # Diese Funktion erstellt den IIR-Bandpassfilter (links)
music_links = signal.lfilter(b, a, self.music_data[:, 0]) # diese Funktion filtert die Audiodaten music_links = signal.lfilter(b, a, self.music_data[:, 0]) # diese Funktion filtert die Audiodaten
# FIR Filterversuch
# b = signal.firwin(order, cutoff_frequencies, pass_zero="bandstop", fs=self.music_samplerate, width=bandwidth,
# window="hamming")
#
# music_links = signal.lfilter(b, [1.0], self.music_data[:, 0])
else: else:
music_links = self.music_data[:, 0] # ungefiltert, wenn kein Tinnitus angegeben wurde music_links = self.music_data[:, 0] # ungefiltert, wenn kein Tinnitus angegeben wurde
@ -255,6 +281,12 @@ class Sound:
fs=self.music_samplerate) # Diese Funktion erstellt den IIR-Bandpassfilter (rechts) fs=self.music_samplerate) # Diese Funktion erstellt den IIR-Bandpassfilter (rechts)
music_rechts = signal.lfilter(b, a, self.music_data[:, 1]) # rechts music_rechts = signal.lfilter(b, a, self.music_data[:, 1]) # rechts
# FIR Filterversuch
# b = signal.firwin(order, cutoff_frequencies, pass_zero="bandstop", fs=self.music_samplerate, width=bandwidth,
# window="hamming")
#
# music_rechts = signal.lfilter(b, [1.0], self.music_data[:, 1])
else: else:
music_rechts = self.music_data[:, 1] # diese Funktion filtert die Audiodaten(die Tinnitusfreq wird entfernt) music_rechts = self.music_data[:, 1] # diese Funktion filtert die Audiodaten(die Tinnitusfreq wird entfernt)
@ -267,13 +299,18 @@ class Sound:
#Maximum finden (Funktion max(...) ist minimal schneller, macht aber Probleme beim Feedback) #Maximum finden (Funktion max(...) ist minimal schneller, macht aber Probleme beim Feedback)
start_time = time.time() start_time = time.time()
max_ges = 0 max_ges = 0
fortschritt = 0
for i in range(nframes): for i in range(nframes):
if max_ges < abs(music_links[i]): if max_ges < abs(music_links[i]):
max_ges = abs(music_links[i]) max_ges = abs(music_links[i])
if max_ges < abs(music_rechts[i]): if max_ges < abs(music_rechts[i]):
max_ges = abs(music_rechts[i]) max_ges = abs(music_rechts[i])
if i % 50000 == 0: if i % int(nframes/10) == 0: # glaub hier stand 10000 davor oder 50000
fortschritt = i / nframes * 100 # fortschritt = i / nframes * 100
# self.filterfortschritt = 3, round(fortschritt, 1)
# print(" max: ", self.filterfortschritt[1], "%")
fortschritt += 10
self.filterfortschritt = 3, round(fortschritt, 1) self.filterfortschritt = 3, round(fortschritt, 1)
print(" max: ", self.filterfortschritt[1], "%") print(" max: ", self.filterfortschritt[1], "%")
end_time = time.time() end_time = time.time()
@ -310,6 +347,7 @@ class Sound:
# Die Audiosamples schreiben # Die Audiosamples schreiben
print("Musikdatei wird erstellt...") print("Musikdatei wird erstellt...")
fortschritt = 0
for tinnitus_data in range(nframes): #geht jeden Sample-Wert der Musikdatei einzeln durch for tinnitus_data in range(nframes): #geht jeden Sample-Wert der Musikdatei einzeln durch
# Die Audiodaten müssen von float in einen passenden int-Wert umgerechnet werden # Die Audiodaten müssen von float in einen passenden int-Wert umgerechnet werden
packedMusic.append(struct.pack('h', int(music_links[tinnitus_data] * 32767.0))) packedMusic.append(struct.pack('h', int(music_links[tinnitus_data] * 32767.0)))
@ -317,8 +355,8 @@ class Sound:
# wav_obj.writeframes(struct.pack('h', int(music_links[x] * 32767.0))) # Werte für links und rechts werden bei # wav_obj.writeframes(struct.pack('h', int(music_links[x] * 32767.0))) # Werte für links und rechts werden bei
# wav_obj.writeframes(struct.pack('h', int(musicRechts[x] * 32767.0))) # wav abwechselnd eingetragen # wav_obj.writeframes(struct.pack('h', int(musicRechts[x] * 32767.0))) # wav abwechselnd eingetragen
if tinnitus_data % 50000 == 0: if tinnitus_data % int(nframes/10) == 0:
fortschritt = tinnitus_data/nframes*100 fortschritt += 10
self.filterfortschritt = 4, round(fortschritt, 1) self.filterfortschritt = 4, round(fortschritt, 1)
print(" samples: ", self.filterfortschritt[1], "%") print(" samples: ", self.filterfortschritt[1], "%")

View File

@ -209,24 +209,28 @@ def unten_button_filtere_tinnitus_aus_musik():
# Filtern in extra thread, damit sich die GUI nicht aufhängt: (daemon beendet den Thread, wenn das Hauptprogramm beendet wird) # Filtern in extra thread, damit sich die GUI nicht aufhängt: (daemon beendet den Thread, wenn das Hauptprogramm beendet wird)
filter_thread = threading.Thread(target=sound.musik_filtern, daemon=True) filter_thread = threading.Thread(target=sound.musik_filtern, daemon=True)
filter_thread.start() filter_thread.start()
time.sleep(3) # Zeit, damit man das Feedback lesen kann, bevor es gelöscht wird (siehe übernächste Zeile) time.sleep(1) # Zeit, damit man das Feedback lesen kann, bevor es gelöscht wird (siehe übernächste Zeile)
safe_percentage = 0
while filter_thread.is_alive(): while filter_thread.is_alive():
feedback.lineCounter = 11 # "Workaround" um Zeilen überschreiben zu können #feedback.lineCounter = 11 # "Workaround" um Zeilen überschreiben zu können
schritt = sound.filterfortschritt[0] schritt = sound.filterfortschritt[0]
if schritt == 3 or schritt == 4: #Nur bei dem 3. und 4. Schritt wird der Fortschritt in Prozent angezeigt if schritt == 3 or schritt == 4: # Nur bei dem 3. und 4. Schritt wird der Fortschritt in Prozent angezeigt
fb = "Schritt " + str(schritt) + " von 4 (" + str(sound.filterfortschritt[1]) + "%)" fb = "Schritt " + str(schritt) + " von 4 (" + str(sound.filterfortschritt[1]) + "%)"
feedback(fb) if sound.filterfortschritt[1] > safe_percentage:
feedback(fb)
safe_percentage = sound.filterfortschritt[1]
elif schritt < 3: elif schritt < 3:
fb = "Schritt " + str(schritt) + " von 4" fb = "Schritt " + str(schritt) + " von 4"
feedback(fb) feedback(fb)
if sound.filterfortschritt[0] == 5: #ist 5, wenn erfolgreich gefiltert wurde if sound.filterfortschritt[0] == 5: #ist 5, wenn erfolgreich gefiltert wurde
print("-- filtern beendet --") print("-- filtern beendet --")
feedback("Filtervorgang erfolgreich abgeschlossen. \n" feedback("Filtervorgang erfolgreich abgeschlossen. \n"
"Audiodatei unter dem Namen MyTinnitusFreeSong.wav erstellt", "white", "green") "Audiodatei unter dem Namen MyTinnitusFreeSong.wav erstellt", "white", "green")
else: else:
print("Fehler bei Filterfunktion. Siehe Compiler-Meldungen") print("Fehler bei Filterfunktion. Siehe Compiler-Meldungen")
feedback("Fehlgeschlagener Filterversuch!", "red", "white") feedback("Fehlgeschlagener Filterversuch. Ein SWAT-Team gut ausgebildeter Affen ist unterwegs!", "red", "white")
except: except:
feedback("Fehlgeschlagener Filterversuch. Drücke zuerst den Speichern Knopf" feedback("Fehlgeschlagener Filterversuch. Drücke zuerst den Speichern Knopf"
"Stelle sicher, dass die Lautstärke mindestens einer Seite über 0" "Stelle sicher, dass die Lautstärke mindestens einer Seite über 0"

View File

@ -1,14 +1,16 @@
Vorname;asd Vorname;Mustermann
Nachname;asd Nachname;Max
linke Frequenz;5040.0 linke Frequenz;8420.0
linke Lautstärke;0.04 linke Lautstärke;0.5
linkes Rauschen Lautstärke;0.0 linkes Rauschen Lautstärke;0.015
linkes Rauschen untere Grenzfrequenz;10.0 linkes Rauschen untere Grenzfrequenz;7440.0
linkes Rauschen obere Grenzfrequenz;20000.0 linkes Rauschen obere Grenzfrequenz;11910.0
rechte Frequenz;5040.0 rechte Frequenz;0.0
rechte Lautstärke;0.02 rechte Lautstärke;0.0
rechtes Rauschen Lautstärke;0.0 rechtes Rauschen Lautstärke;0.0
rechtes Rauschen untere Grenzfrequenz;10.0 rechtes Rauschen untere Grenzfrequenz;10.0
rechtes Rauschen obere Grenzfrequenz;20000.0 rechtes Rauschen obere Grenzfrequenz;20000.0
Kommentar; Kommentar;Lediglich auf dem linken Ohr höre ich einen hohen Piepston
und ein leises Rauschen (vergleichbar mit einem laufenden
Kühlschrank)

Can't render this file because it has a wrong number of fields in line 14.