Skip to content
j
Jan Dunder
2026Osobní nástroj

Bachata Lab

Self-hosted knihovna, která u bachatové skladby najde tempo a doby a položí přes waveform počítání na osm.

8 dob
navázaných na waveform
2
služby + Postgres
~4,6k
řádků kódu
· STOPA ROZEBRÁNA · TEMPO · 8 DOB · PODTYP ·[ 01 ] TEMPO122.0BPM[ 02 ] PODTYPsensual83 % jistotyINTROSLOKAREFRÉNBREAKSLOKAOUTRO1234567812345678· upload · otisk · tempo · beaty · 8 dob · podtyp ·
/ 01

Proč to vzniklo

Vedle vývoje učím bachatu a příprava hudby znamenala dokola přetáčet stejných třicet vteřin a hledat „jedničku“. Chtěl jsem knihovnu, kde je každá skladba předem popsaná — vidět počítání, vyznačené sekce — abych mohl řadit podle tempa na drily nebo skočit rovnou na refrén bez scrubování.

/ 02

Co to umí

Nahraješ audio soubor nebo vložíš odkaz na YouTube, analyzer vytáhne tempo, doby, downbeaty a strukturní sekce a vrátí stránku skladby s waveformem, navázaným počítáním na osm a panelem na ruční opravu popisků sekcí. Knihovna se filtruje podle tempa a podžánru. Uploady se cestou hashují, takže stejné audio pod jiným názvem se neanalyzuje dvakrát.

/ 03

Jak je to poskládané

pnpm monorepo: Next.js 16 na webu, FastAPI služba kolem librosy a madmomu na samotné zpracování signálu, Postgres na metadata, celé na Docker Compose s CI. Během stavby to dvakrát pivotovalo — nejostřeji, když Spotify zrušilo audio-features pro nové aplikace třetích stran a integrace se Spotify musela pryč. Tak to skončilo postavené na uploadech.

/ 04

Co to není

Není to produkt. Jednouživatelské, nikdy nepublikované a teď spící — postavil jsem to, srovnal si tím knihovnu a nechal být. A jedna věc, na kterou chci být přesný: podžánr je štítek, který nastavuji ručně z pevného seznamu, ne něco, co by analyzer poznal. Pipeline najde tempo, doby a sekce; styl neklasifikuje.

Stack
Next.jsPythonFastAPIAudio
j
Jan Dunder

Píšu produkční systémy v PHP/Symfony a Reactu s TypeScriptem — platební infrastrukturu pro 100+ obcí, platformu pro kybernetickou compliance, které dělám technického leada, a autonomní agenty, kteří běží nad reálnými repozitáři. Ing. z FIT ČVUT, obor Webové inženýrství.

Navigace
ÚvodProjektyŽivotopisO mně
Jinde
LinkedIn ↗GitHub ↗terminál
Kontakt
dunder.jan@gmail.comPraha, ČR
© 2026 Jan DunderVyrobeno v Praze · s Claude Code