HAOS.fm
live · 22050 Hz · 16-bit · arp 2600 chain
manifest // signal

Co jest w bibliotece. Jak to działa.

Wszystkie sample wygenerowane w Pythonie + numpy. Łańcuch DSP: VCO → VCF (drabinka Mooga) → VCA → ADSR + LFO, dokładnie tak jak w 2600.

instrumenty melodyczne
15
nuty łącznie
375
drumy
14
sample rate
22050 Hz

Wygenerowanie biblioteki

Wszystkie WAV-y powstają z determinstycznego rendera w Pythonie. Wystarczy mieć Pythona 3.11+ i numpy.

python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
npm run render                  # domyślnie C3..C5
python3 synth/render.py --range C2 C6
python3 synth/render.py --only piano,bass_2600,kick

Łańcuch sygnału (geneza 2600)

  VCO1 ┐
  VCO2 ├─► MIX ─► VCF (24 dB/oct ladder, res 0..4) ─► VCA ─► OUT
  VCO3 ┘            ▲                                ▲
  NOISE ────────────┤                                │
  LFO ── mod ───────┘                                │
  ADSR ───── env ────────────────────────────────────┘

Implementacja DSP w synth/arp2600.py — VCO z bandlimit (24 harmoniczne), drabinka Mooga z soft-clipem w pętli sprzężenia, ADSR sample-accurate, Schroeder reverb.

Instrumenty melodyczne

Pianino
25 nut
Fortepian addytywny z młoteczkiem.
slug: piano
E-Piano (Rhodes)
25 nut
FM Rhodes — dwa operatory 1:1.
slug: electric_piano
Organy (Hammond)
25 nut
Hammond-style drawbars + leslie tremolo.
slug: organ
Trąbka
25 nut
Trąbka — saw + rezonansowy filtr.
slug: trumpet
Flet
25 nut
Flet — sine + szum oddechu.
slug: flute
Harfa
25 nut
Harfa — szarpany pluck addytywny.
slug: harp
Skrzypce
25 nut
Skrzypce — saw + body resonance.
slug: violin
Wiolonczela
25 nut
Wiolonczela — niski saw, długi atak.
slug: cello
Gitara (Karplus-Strong)
25 nut
Karplus-Strong — gitara akustyczna.
slug: guitar_pluck
Bas ARP 2600
25 nut
ARP 2600 bas — saw + square + filtr.
slug: bass_2600
Lead ARP 2600
25 nut
ARP 2600 lead — detune + filter envelope.
slug: lead_2600
Pad ARP 2600
25 nut
ARP 2600 pad — 3 saws + wolny filtr.
slug: pad_2600
Pluck ARP 2600
25 nut
ARP 2600 pluck — perkusyjny saw + filtr.
slug: pluck_2600
Bell (FM)
25 nut
FM bell — wysoki indeks modulatora.
slug: bell
Sub Bass
25 nut
Sub — czysta sine z soft-clipem.
slug: sub_bass

Drum kit

Kick
Kick — 909-style sine z pitch sweepem.
slug: kick
Snare
Snare — szum + body tones + drut sprężynowy.
slug: snare
Hi-hat (closed)
Closed hat — squares + biały szum HP.
slug: hihat_closed
Hi-hat (open)
Open hat — dłuższy ogon.
slug: hihat_open
Clap
909 clap — 4 transienty szumu + tail.
slug: clap
Tom (low)
Tom niski.
slug: tom_low
Tom (mid)
Tom środkowy.
slug: tom_mid
Tom (high)
Tom wysoki.
slug: tom_high
Ride
Ride — 7 partialów + szum + long tail.
slug: ride
Crash
Crash — masywny szum + metaliczne partiale.
slug: crash
Shaker
Shaker — krótki HP-noise burst.
slug: shaker
Rimshot
Rimshot — krótki sine click.
slug: rimshot
Cowbell
Cowbell — dwa squares + filtr.
slug: cowbell
Perc Zap
Perc zap — pitch sweep + ring mod.
slug: perc_zap