#!/usr/bin/python3
import glob
import os
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
from scipy.io import wavfile

def wav_zu_png(wav_pfad, png_pfad):
    samplerate, data = wavfile.read(wav_pfad)

    if len(data.shape) > 1:
        data = data[:, 0]

    dauer = len(data) / samplerate
    zeit = np.linspace(0, dauer, num=len(data))

    plt.figure(figsize=(48, 4))  # Breite und Hoehe des Bildes festlegen
    plt.plot(zeit, data, color="blue", linewidth=0.5)

    plt.title(f"Amplitudenverlauf: {wav_pfad}")
    plt.xlabel("Zeit (Sekunden)")
    plt.ylabel("Amplitude")
    
    plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(0.5))
    plt.gca().xaxis.set_minor_locator(ticker.MultipleLocator(0.1))

    plt.grid(True, which='both', linestyle="--", alpha=0.6)
    plt.xlim(0, dauer)
    plt.tight_layout()
    plt.savefig(png_pfad, dpi=150)  # dpi=150
    plt.close()

    print(f"Erfolgreich gespeichert unter: {png_pfad}")

# Alle Dateien suchen, die mit 'input_' beginnen und auf '.wav' enden
wav_dateien = glob.glob("input_*.wav")

if not wav_dateien:
    print("Keine passenden Dateien gefunden.")

for wav_pfad in wav_dateien:
    # 'input_001.wav' -> 'input_001'
    dateiname_ohne_endung = os.path.splitext(wav_pfad)[0]
    
    # Ziel-PNG-Pfad zusammenbauen: 'input_01.png'
    png_pfad = f"{dateiname_ohne_endung}.png"
    
    wav_zu_png(wav_pfad, png_pfad)
