Audio / MIDI
Wave Generator Synth
0.1.4.9
Wave_Generator (Synth) je polyfonní generátor zvuků / synth aplikace pro Windows/Linux/macOS, postavená na s vestavěným real-time audio enginem pro generování sinusovek, pilovitých a obdélníkových signálů přes software
Co projekt řeší
Wave_Generator (Synth) je polyfonní generátor zvuků / synth aplikace pro Windows/Linux/macOS, postavená na s vestavěným real-time audio enginem pro generování sinusovek, pilovitých a obdélníkových signálů přes software
Typické použití
- Generace geometrických Lissajousových figurek (hudbu pro oči)
- Sinus/pila/obdél signál generace (pro testování, edukaci)
- Polyfonní MIDI synth (hardware/DAW ovládaný)
- Real-time spektrální vizualizace přes XY osciloskop
- Educational tool: DSP algoritmy, polyfonní alokace, MIDI
- Audio signal generation (kalibrační zdroj, generátor signálu)
Jak aplikace funguje a k čemu slouží
Přehled & Pozadí
Wave Generator (Synth) je polyfonní softwarový syntetizér se zaměřením na:
- Vizuální hudbu: Generování Lissajousových figurek přes XY osciloskop na základě frekvencí
- Audio signály: Čisté sinusové, pilovité a obdélníkové signály pro testování a edukaci
- Polyfonní MIDI: Až 16 hlasů s plným CC mappingem a MIDI keyboard ovládáním
- Real-time DSP: Oscilátory s polyBLEP anti-aliasem, per-voice ADSR, soft-clip limitérem
- Flexibilní routing: 2× busy (A=X, B=Y) s 2×2 maticí pro L/R výstup
Use-cases: Generace geometrických obrazců pro ambient hudbu, testování audio zařízení, edukační demonstrace DSP konceptů, generování kalibrační sinusovky, MIDI synth ovládaný hardwarovou klávesnicí.
Účel & Use-Cases
Use-Case A: Lissajousovy figury (DEMO režim)
- Automatické generování progresivně se měnících geometrických obrazců
- X oscilác (BUS A) a Y oscilác (BUS B) vytváří zajímavé křivky v XY osciloskopu
- Ideální pro ambient hudbu, video pozadí, edukaci o sinusoídách
Use-Case B: Polyfonní MIDI synth
- Připojení MIDI hardwarové klávesnice
- Alokace hlasů (max 8–16), každý hlas má vlastní ADSR obálku a fázi
- CC mapování (Volume, Modulation, Rotate angle, Bus gains)
Klíčové vlastnosti
Oscillator Engine
- ✓ 16× VCO (Voltage Controlled Oscillators) s 3 waveformami (SIN, SAW, RECT)
- ✓ Frekvence: 0.01 Hz – 40 kHz
- ✓ Per-VCO gain (0–2.0), pan (-1 až +1)
- ✓ Coarse (±96 semitony) + Fine (±200 centů) tuning
- ✓ Pulse Width Modulation (RECT waveform)
- ✓ PolyBLEP anti-aliasing na SAW/RECT
Voice Allocation & Polyphonie
- ✓ 1–16 hlasů (default 8, konfigurovatelné)
- ✓ First-free voice allocator (starý hlas se ukradne pokud všechny obsazené)
- ✓ Per-voice ADSR (Attack, Decay, Sustain, Release)
- ✓ Per-voice phase tracking
MIDI & Control
- ✓ MIDI Note-On/Off reception
- ✓ CC mapování (10× CC sloty, CC Learning)
- ✓ Pitch Bend support
- ✓ Výběr MIDI input portu (seznam dostupných zařízení)
Routing & Mixing
- ✓ BUS A (výchozí X) a BUS B (výchozí Y)
- ✓ 2×2 matice (A→L, A→R, B→L, B→R pro výstup)
- ✓ Transformace: Rotate angle, Width (L/R spacing)
- ✓ Mode: Swap L/R, Flip X/Y, M/S decode
Osciloskopy
- ✓ Mix XY Scope (L=X, R=Y) s režimy Dot/Line, Normal/Enhanced/Precise
- ✓ Mini scopes (per-VCO, tabbované)
- ✓ Barvy: Accent color, Hue mode, Preset colors
- ✓ Persistence & opacity control (10–100%)
- ✓ Real-time refresh sync'd s audio blokem
Presets & Persistence
- ✓ SQLite DB storage (portable, vedle aplikace)
- ✓ Snapshot images (PNG) pro každý preset
- ✓ Favorite marking, noty k presetu
- ✓ Export/Import batch (JSON format)
- ✓ Persist UI geometrie a stav oken
UI & Graphics
- ✓ Borderless okno (custom header) s OS-level resizem
- ✓ Dark theme + customizable accent color
- ✓ Tray ikona (Minimize/Close to tray)
- ✓ Multi-language: CZ/EN/SK (external .localize)
- ✓ Settings dialog (UI, MIDI, Audio, Presets, About)
Uživatelské rozhraní
Hlavní okno
- Menu bar (File, Tools, Help)
- VCO Tabs: [VCO 0] [VCO 1] ... [VCO 9] s per-VCO sliders (freq, coarse, fine, waveform, gain, pan)
- MatrixPanel: 2×2 bus routing controls
- ScopeTransformPanel: Rotate, Width, Swap, Flip, M/S controls
- BulkAssignPanel: Hromadné úpravy VCO (All Gain, All Freq)
- ClickableOscilloscopeXYWidget: Mix XY scope vizualizace
- MeterBar: Master level visualization
- StatusBar: MIDI messages, step counter
Dialogy
- SettingsDialog: UI, MIDI, Audio, Presets, About tabs
- MixScopeWindow: Large XY scope (mode, color, opacity, persistence)
- DbPresetPickerDialog: Preset browser, save, load, preview
Presets & Management
- SQLite storage:
- Per-preset: All VCO states, bus matrix, routing config
- Preview PNG: snapshot Mix XY scope per preset
- Metadata: Name, Notes, Created timestamp, Favorite flag
- Export/Import: JSON batch operace
Workflow Scénáře
Scénář 1: Lissajousovy figury (interaktivně)
Scénář 2: Polyfonní MIDI synth
Scénář 3: Kalibrační signál
Klávesové zkratky
| F6 | Otevři Mix XY scope window |
|---|---|
| F7 | DEMO režim ON/OFF (auto Lissajous) |
| Ctrl+S | Ulož aktuální preset |
| Ctrl+L | Načti preset ze DB |
| Ctrl+, | Otevři Settings dialog |
| Ctrl+Q | Ukončit aplikaci |
Troubleshooting
Bez zvuku
- Zkontroluj speaker/headphone připojení
- Master Gain slider není 0
- Settings → Audio tab → vyber správné zařízení
- Zkontroluj OS mixer (Windows Volume, macOS Sound)
MIDI keyboard neodpovídá
- Zkontroluj MIDI kabel
- Settings → MIDI → Enable [x], select port
- Zahrát notu → status bar by měl ukázat Note-On
- Windows: Device Manager → Sound devices (MIDI v seznamu?)
Audio je deformovaný/clipping
- Snižuj Master Gain, VCO gains, Bus gains
- Settings → Audio → check Limiter Drive (default 1.2)
- Snižuj počet aktivních VCO nebo hlasů
CPU vysoký, lagy
- Snižuj Visible VCO (Settings → UI → 10 → zdim na 5)
- Redukuj Polyphony (8 → 4)
- Vypni mini scopes (Settings → UI)
- Zavři ostatní aplikace
FAQ
- Q: Lze exportovat zvuk do WAV?
- A: Zatím ne (v plánu). Momentálně lze nahrávat přes OS audio rozhraní (Stereo Mix, Loopback).
- Q: Jaký je rozdíl mezi DEMO režimem a manuálním nastavením?
- A: DEMO automaticky mění frekvence a fáze VCO na vytvoření progresivně se měnících Lissajous figur. Manuální režim umožňuje plnou kontrolu.
- Q: Kolik VCO je min/max?
- A: Engine: max 16. UI: zobrazování je konfigurovatelné (default 10 viditelných, lze zvýšit na 16 pro CPU penalty).
- Q: Jak mapovat CC na vlastní parametr?
- A: Settings → MIDI tab → CC Mapping → [Learn] button, posílej CC z MIDI zařízení, vyber Destination z dropdown.
- Q: Jak zálohovat presets?
- A: Settings → Presets tab → [Export] → JSON file. Pro import: [Import] → vyber JSON.
