JK dizajn ← Všetky projekty info@jkdizajn.sk

Case study · produkt

CIRCLE
MIDI sekvencer

Jeden TypeScript engine, dve hostiteľské prostredia: prehliadač a DAW. Generuje iba MIDI — groove je v časovaní, nie v zvuku. Krokový grid, piano roll a sedem generátorov; export .mid priamo v prehliadači.

rok
2026
rola
návrh + engine + plugin
testy
173
závislosti engine
0
MIDI OUT 173 TESTOV

Kontext

Hudobník píše techno, progressive alebo dub. Nechce ďalší syntetizátor — chce groove, ktorý vloží do svojho obľúbeného nástroja. Preto CIRCLE generuje iba MIDI: žiadny audio engine, žiadne samples, žiadne efekty.

Čo rieši

  • Lane: bass, lead, drums, pad, perc, other — každá s vlastnou dĺžkou, kanálom a pitch poolom; kratšie lane vytvárajú polyrytmy.
  • Tri spôsoby skladania: step grid, piano roll a sedem generátorov (Euclidean, acid, techno drive, dub sparse, off-beat, arp, random) s deterministickým seedom.
  • Groove: master swing, mikro posun lane, humanize timing/velocity/gate, probability, ratchets, dub gaps, ghost notes.
  • Dub delay: doznievajúce echo noty sa zapíšu priamo do MIDI súboru, vrátane wrapu okolo loopu.
  • Evolution: loop 1 zostane presne tak, ako bol napísaný; loop 2..N sa posúva — dlhé loopy zostanú hypnotické.
  • Export: .mid (SMF format 1), clipboard base64, pattern JSON a nástroj pre Renoise.

Architektúra

Engine je čistý TypeScript bez závislostí a bez browser/Node API. Preto beží nezmenený v prehliadači, v Node (testy, CLI, sidecar) aj v C++ plugine cez vložený JS runtime.

  • packages/engine — timing, lane model, MIDI, serializácia, validácia, evolúcia.
  • apps/web — Next.js 15 / React 19; MIDI sa kóduje v prehliadači (Uint8Array + Blob), nikdy nejde na server.
  • plugin — VST3 + AU (JUCE) ako MIDI efekt, bez audio zberníc.
  • Most — JSON protokol circle-host-v1; obal neobsahuje hudobnú logiku, takže web a plugin sa nemôžu rozísť.

„Jeden engine, dva hosty“ je overené testom: bundlovaný artefakt vydá byte-identical MIDI ako zdroje.

Testy

161 testov enginu a 12 testov webu. MIDI sa overuje na úrovni bajtov nezávislým SMF parserom — nielen „súbor sa vytvoril“.

  • Timing math, render pipeline, validácia a repair untrusted JSON.
  • Plugin protokol a pull-based player.
  • Renoise tool overený proti Renoise 3.5.4 (27 API symbolov, 167 nôt, 139 note-off, 35 delay hodnôt).
  • auval na tomto stroji: AU VALIDATION SUCCEEDED.

Čo to nie je

  • Nie je to syntetizátor — zvuk robí nástroj, ktorý si vyberieš.
  • Nie je to DAW — je to generátor patternov a MIDI.
  • Plugin je MIDI efekt, nie nástroj s audio výstupom.

Stav

Engine, web, testy, bundling a JSON host sú hotové a overené (pnpm verify). VST3 + AU wrapper je postavený, nainštalovaný a prechádza Apple AU validáciou.