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 (147)
      • Bezpieczeństwo (19)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (35)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (3)
        • WLAN / WiFi (5)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • WiFi (2)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • WinScreen czyli terminal z wirtualnymi oknami
    • Style Mover czyli przenoszenie stylów HTML
    • Generator obrazów AI za pomocą API
    • Generator modulacji AM i FM
    • Generator plików tekstowych i binarnych
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

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