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

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

    # Falls das Audio Stereo ist (2 Kanäle), nehmen wir nur den ersten Kanal
    if len(data.shape) > 1:
        data = data[:, 0]

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

    plt.figure(figsize=(12, 4))  # Breite und Höhe des Bildes festlegen
    plt.plot(zeit, data, color="blue", linewidth=0.5)

    # Beschriftungen und Design
    plt.title(f"Amplitudenverlauf: {wav_pfad}")
    plt.xlabel("Zeit (Sekunden)")
    plt.ylabel("Amplitude")
    plt.grid(True, linestyle="--", alpha=0.6)
    plt.xlim(0, dauer)  # Achse exakt auf die Audiolänge begrenzen

    plt.tight_layout()  # Optimiert die Ränder, damit nichts abgeschnitten wird
    plt.savefig(png_pfad, dpi=300)  # dpi=300 sorgt für eine scharfe Auflösung
    plt.close()

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

wav_zu_png("morse_text.wav", "amplitudenverlauf.png")
