ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
    • Wykłady IT
  • Firma

Generator plików WAV

Napisane przez Igor Brzeżek on 15 czerwca 2026
Napisane w: Programowanie.

Contents
  1. Generator plików WAV z linii poleceń
  2. Do czego służy gen-files?
  3. Jak to działa – mechanizm wewnętrzny
  4. Wymagania
  5. Instalacja i uruchomienie
  6. Opcje wiersza poleceń – szczegółowy opis
  7. Przykłady użycia
  8. 1. Domyślne uruchomienie
  9. 2. Fala sinusoidalna 2 sekundy
  10. 3. Fala prostokątna 1000 Hz
  11. 4. Fala piłokształtna 220 Hz, pół sekundy, niższa częstotliwość próbkowania
  12. 5. Własna nazwa pliku i długi czas
  13. Pliki w repozytorium
  14. Zatrzymywanie programu
  15. Podsumowanie

Generator plików WAV z linii poleceń

gen-files to lekki generator plików WAV napisany w Pythonie, który pozwala tworzyć próbki dźwiękowe o różnych kształtach fali. Program działa w całości na standardowej bibliotece Pythona – nie wymaga żadnych zewnętrznych bibliotek, wystarczy zainstalowany Python 3.

GitHub: github.com/IgorBrzezek/gen-files

Do czego służy gen-files?

Generator przydaje się zawsze, gdy potrzebujemy szybko uzyskać plik WAV o określonych parametrach – bez uruchamiania ciężkiego DAW (cyfrowej stacji roboczej) czy edytora audio. Przykładowe zastosowania:

  • Testowanie sprzętu audio – generowanie próbek o znanej częstotliwości do pomiarów.
  • Edukacja – pokazanie różnic między falą sinusoidalną, piłokształtną i prostokątną.
  • Prototypowanie – szybkie przygotowanie materiału dźwiękowego do wstępnych testów.
  • Automatyzacja – generowanie sygnałów w skryptach i potokach CI/CD.

Jak to działa – mechanizm wewnętrzny

Program generuje próbkę dźwiękową, wyliczając kolejne próbki w pętli na podstawie wzoru matematycznego odpowiedniego dla wybranego typu fali. Każda próbka to 16-bitowa liczba całkowita ze znakiem (zakres od -32768 do 32767), co daje standardową jakość CD-audio. Gotowe próbki są zapisywane do pliku WAV za pomocą modułu wave z biblioteki standardowej Pythona.

Obsługiwane są trzy typy fali:

  • sinus (sinusoidalna) – gładka, czysta fala, wzór: sin(2 * pi * f * t).
  • piła (piłokształtna) – narastająca rampa, wzór: 2 * (t * f - floor(t * f + 0.5)).
  • kwadrat (prostokątna) – sygnał włącz/wyłącz, wartość 1 gdy sinus >= 0, w przeciwnym razie -1.

Wynikowy plik WAV ma następujący format:

  • Format: RIFF WAV
  • Kanały: mono
  • Próbka: 16-bit
  • Częstotliwość próbkowania: domyślnie 44100 Hz (można zmienić)

Wymagania

  • Python 3.7 lub nowszy
  • Brak zewnętrznych bibliotek – tylko standardowa biblioteka Pythona
  • System operacyjny: dowolny (Linux, Windows, macOS)

Instalacja i uruchomienie

Pobierz plik generate_wav.py z repozytorium i uruchom:

python generate_wav.py [opcje]

Opcje wiersza poleceń – szczegółowy opis

Krótka Długa Opis Domyślnie
-o --output Nazwa pliku wyjściowego output.wav
-d --duration Czas trwania w sekundach 1.0
-f --frequency Częstotliwość w Hz 440
-t --type Typ fali: sinus, piła, kwadrat sinus
-s --sample-rate Częstotliwość próbkowania w Hz 44100

Przykłady użycia

1. Domyślne uruchomienie

python generate_wav.py

Tworzy plik output.wav z falą sinusoidalną 440 Hz (ton A4) o czasie trwania 1 sekunda.

2. Fala sinusoidalna 2 sekundy

python generate_wav.py -d 2 -f 440 -t sinus -o sine.wav

Dwusekundowa fala sinusoidalna o częstotliwości 440 Hz zapisana do pliku sine.wav.

3. Fala prostokątna 1000 Hz

python generate_wav.py -d 1 -f 1000 -t kwadrat -o square.wav

Sekunda fali prostokątnej o częstotliwości 1 kHz.

4. Fala piłokształtna 220 Hz, pół sekundy, niższa częstotliwość próbkowania

python generate_wav.py -d 0.5 -f 220 -t piła -s 22050 -o saw.wav

Półsekundowa fala piłokształtna o częstotliwości 220 Hz próbkowana z częstotliwością 22050 Hz.

5. Własna nazwa pliku i długi czas

python generate_wav.py -o moj_ton.wav -d 5 -f 528

Pięciosekundowy ton 528 Hz zapisany jako moj_ton.wav.

Pliki w repozytorium

Repozytorium zawiera trzy pliki:

  • generate_wav.py – główny skrypt generatora, zawiera całą logikę.
  • data.py – plik pomocniczy (w rozwoju).
  • turbo.py – plik pomocniczy (w rozwoju).

Na obecnym etapie jedynie generate_wav.py jest w pełni funkcjonalny.

Zatrzymywanie programu

Program działa natychmiastowo – generuje plik i kończy działanie. Nie wymaga interakcji użytkownika poza ewentualnym zatrzymaniem przez Ctrl+C, gdyby coś poszło nie tak (co w praktyce nie jest potrzebne, bo wykonanie trwa ułamek sekundy).

Podsumowanie

gen-files to minimalistyczne, ale funkcjonalne narzędzie do generowania plików WAV z linii poleceń. Dzięki wykorzystaniu wyłącznie standardowej biblioteki Pythona jest w pełni przenośne i nie wymaga instalacji dodatkowych pakietów. Trzy dostępne typy fali – sinusoidalna, piłokształtna i prostokątna – w pełni pokrywają podstawowe potrzeby związane z generowaniem próbek dźwiękowych. To dobry przykład, jak napisać praktyczne narzędzie audio w czystym Pythonie bez zewnętrznych zależności.

Źródła: github.com/IgorBrzezek/gen-files

Nawigacja

← Generator liczb (prawie) losowych – trandom.py
Automatyczne kopiowanie tekstów do schowka →
  • Szukaj

  • Kategorie

    • IT ogólnie (158)
      • AI (1)
      • Bezpieczeństwo (20)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (47)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Monitorowanie sieci (3)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (5)
        • Tunelowanie ruchu (6)
          • Tunele GRE (2)
          • Tunele SSH (4)
        • WLAN / WiFi (7)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • Opencode – darmowe kredyty
    • Tunel SSH – zwrotny (remote forwading)
    • GNS3 – Interfejsy sieciowe
    • GNS3 – Konfiguracja urządzenia IOU (L2/L3)
    • Tunel GRE + EoIP na Cisco
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y

Powered by
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by