Browse Source

Ladestatus beim Datei-Erstellen wird auf der Kommandozeile ausgegeben

master
Heiko Ommert 4 years ago
parent
commit
dda42f6bc4
1 changed files with 10 additions and 3 deletions
  1. 10
    3
      TinnitusAnalyse/SoundGenerator.py

+ 10
- 3
TinnitusAnalyse/SoundGenerator.py View File

@@ -203,12 +203,13 @@ class Sound:
w0 = float(lf/(self.music_samplerate/2)) # Frequency to remove from a signal. If fs is specified, this is in the same units as fs. By default, it is a normalized scalar that must satisfy 0 < w0 < 1, with w0 = 1 corresponding to half of the sampling frequency.
Q = 30.0 # Quality factor. Dimensionless parameter that characterizes notch filter -3 dB bandwidth bw relative to its center frequency, Q = w0/bw.

self.music_data = self.music_data/32767 # convert array from int16 to float
self.music_data = self.music_data/32767 * 0.8 # convert array from int16 to float

b, a = signal.iirnotch(lf, Q, fs=self.music_samplerate)
if ll != 0.0:
print(self.music_data[20000:20010])
print("Links wird gefiltert...")
musicLinks = signal.lfilter(b, a , self.music_data[:, 0]) # links
print("Filtern beendet")
else:
musicLinks = self.music_data[:, 0] # ungefiltert, wenn kein Tinnitus angegeben wurde

@@ -232,7 +233,9 @@ class Sound:

b, a = signal.iirnotch(rf, Q, fs=self.music_samplerate)
if rl != 0.0:
print("Rechts wird gefiltert...")
musicRechts = signal.lfilter(b, a, self.music_data[:, 1]) # rechts
print("Filtern beendet")
else:
musicRechts = self.music_data[:, 1] # ungefiltert, wenn kein Tinnitus angegeben wurde

@@ -248,10 +251,14 @@ class Sound:


# Die Audiosamples schreiben
for x in range(self.music_samplerate*5): #Kann mit nframes ersetzt werden, für den ganzen Song
print("Musikdatei wird erstellt...")
for x in range(self.music_samplerate * 20): #Kann mit nframes ersetzt werden, für den ganzen Song
# Die Audiodaten müssen von float in einen passenden int-Wert umgerechnet werden
wav_obj.writeframes(struct.pack('h', int(musicLinks[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
if x % 10000 == 0:
fortschritt = x/(self.music_samplerate*20)*100
print(" ", round(fortschritt, 1), "%")

wav_obj.close()
print("Speichern beendet.")

Loading…
Cancel
Save