Baz00k@
Ikona Wave Generator Synth
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

F6Otevři Mix XY scope window
F7DEMO režim ON/OFF (auto Lissajous)
Ctrl+SUlož aktuální preset
Ctrl+LNačti preset ze DB
Ctrl+,Otevři Settings dialog
Ctrl+QUkonč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.