
Hiphopbeats maken in de browser
Met Google Lyria RealTime als oneindige platenkast: het model maakt de plaat, jij samplet.
- Product
- Route
- Onderwerp
- Platform
- Jaar
Sampling begint bij spitten: uren platen doorspoelen tot je twee maten hoort die niemand als hook had bedoeld. Sinds er modellen zijn die muziek stréámen in plaats van afleveren, kan die plaat ook ter plekke ontstaan. GROOVE zet het model op de plek van de plaat: drums en bas rendert hij lokaal en deterministisch, en het enige dat een model maakt is het materiaal waar je in gaat knippen.
- Web Audio API
- Lyria RealTime
- TypeScript
- Vite
- WAV 16-bit PCM
- MIDI
- Playwright
In het kort
- 402
- 34
- 71
- 35 s
- 0
Wat er lag
Sampling begint bij spitten: uren platen doorspoelen tot je twee maten hoort die niemand als hook had bedoeld. Er zijn nu modellen die muziek stréámen in plaats van afleveren, dus die plaat kan ook ter plekke ontstaan. De opgave: het model op de plek van de plaat zetten en al het andere bij de mens laten. Drums en bas lokaal en deterministisch, en alleen het bronmateriaal uit Lyria RealTime.
Drie details die het verschil maken



Het product in drie schermen

De sampler: elke stem een rij, elke stap een blokje in zijn eigen kleur, en het lied altijd in beeld. 
De kast: de digging grounds per schap, en elke plaat die het model heeft gemaakt als sample die je kunt knippen. 
De bas opengeklapt: zeven bewegingen en vier knoppen. Je kiest een beweging, geen noten.
Hoe het is gemaakt
De crate is niet meer eindig
De SP-1200 en de MPC hebben een generatie iets geleerd wat je nergens anders leert: een plaat is grondstof. Sampling is geen kopiëren maar hóren: twee maten uit een intro die niemand als hook had bedoeld, en dan het geduld om ze te vinden.
Wat er veranderde: er zijn nu modellen die op vraag muziek stréámen. Lyria RealTime levert geen liedje van drie minuten met een intro en een refrein af, maar blijft muziek maken zolang je de verbinding openhoudt. Het is geen jukebox maar een kraan.
De vraag van dit experiment is dus niet of AI een beat kan maken. Dat kan hij, en het resultaat is meestal niemands beat. De vraag is wat er gebeurt als je het model op de plek van de plaat zet, en al het andere bij de mens laat.
Het model maakt alleen de plaat
We begonnen andersom, want dat leek logischer: laat een model een hele beat maken en trek hem daarna uit elkaar. Dat werkte niet, en het faalde op een leerzame manier: je krijgt iets dat klinkt als een beat, maar je hebt er geen enkele greep op. Verander één ding en alles verschuift mee.
Dus draaiden we het om. In GROOVE worden drums en bas lokaal gerenderd: jouw patroon, jouw kit, deterministisch, elke keer hetzelfde. Het enige dat een model maakt is de gesamplede plaat.
Die beperking is de reden dat het werkt. Je houdt de controle over het ding dat je aan het maken bent, en het model doet het ene dat een mens niet in dertig seconden kan: een plaat laten bestaan die nog nooit bestond.
Het model is niet de producer. Het is de plaat.
Vraag om een plaat, niet om een genre
Vraag een model om “boom bap” en je krijgt iets: een stijve loop, het gemiddelde van alles wat ooit zo genoemd is. Vraag om de textuur (warm bandgeruis, een kamer die je hoort, mono, opgenomen alsof het 1972 is) en je krijgt materiaal waar je iets mee kunt.
Toen deden we de meting die het pijnlijkst was, want de fout lag bij ons: we hebben onze eigen recepten geteld. Eenentwintig van de eenentwintig beschrijven textuur. Vijftien vragen expliciet om géén akkoorden en géén melodie. Nul vragen om iets zingbaars.
En de woordenlijst waarmee we het model aanstuurden had een blinde vlek die je pas ziet als je telt: acht van de tien genoemde platen waren Angelsaksisch. De woorden wezen dus naar dezelfde bak waar iedereen al in graait. Daar staan nu vierendertig digging grounds tegenover, over zeven schappen: India en Pakistan, Anatolië en Perzië, Zuidoost- en Oost-Azië, Afrika, Latijns-Amerika, Europa, en de rare planken.
Elk digging ground draagt zijn eigen materiaalbeschrijving mee, want een genrenaam is een sterke instructie voor een model dat hem kent en niets voor een model dat hem niet kent. Dus reist de beschrijving mee met de naam.
Alles moet stapelen, op één grid
Hier zit het echte werk, en het is het werk dat een sampler altijd al deed, alleen nu op materiaal dat vijf seconden oud is. Een plaat komt terug als een mix, in een tempo dat het model heeft gekozen, en die moet op jouw grid komen te liggen.
Eén val kostte ons een middag en is het onthouden waard: een loop kan zichzelf niet crossfaden. Voor een onhoorbare naad heb je de audio ná het venster nodig; vouw je het venster op zichzelf, dan versterk je juist de klik die je wilde wegwerken.
Tempo, fase en downbeat liggen daarom vast op het moment dat een plaat de kast in gaat. Daarom stapelt later alles: drums, bas, break en sample staan op hetzelfde grid, en niets daarvan berust op hoop.

Eén scherm, en het lied staat er altijd
Alles hierboven zou niets waard zijn als het gereedschap niet als gereedschap voelt. Dus: één scherm. Boven de stemmen (kick, bas, hi-hat, de plaat die je net hebt laten maken), onder het lied, altijd zichtbaar.
De onderste rij van je toetsenbord is een pad per drumstem, op fysieke toetspositie, zodat een Belgisch toetsenbord dezelfde pads speelt. Een reeks aanslagen landt als één stap in het patroon.
En er is een uitgang, want dit is geen gesloten doosje: de mix als WAV, elke stem apart als stems in één zip, en de patronen als MIDI. GROOVE maakt de loop; FL Studio of Logic maakt de track af.

Wat we eruit hebben geleerd
- 01
Een leeg veld is ook een resultaat. We wilden de toonsoort van elke gegenereerde plaat weten, zodat een baslijn er vanzelf onder past. De detector die we bouwden haalde het niet, en dus staat het toonsoortveld leeg op alle 402 platen in de kast. Een getal dat je niet kunt vertrouwen is erger dan geen getal, want er komt gegarandeerd een baslijn overheen.
- 02
Bouwen met een model erin verleidt tot zelfbedrog, want er komt altijd géluid uit. De enige remedie die wij hebben gevonden is meten, en het meetgereedschap net zo serieus nemen als het product: eenenzeventig tests die op een verse browser klikken, slepen en typen, en die het resultaat op de bytes controleren.
- 03
Controleer ook je meetopstelling zelf. Onze tempo-meting scoorde zes van de zes op zelfgemaakte toontjes en zeventien procent op echte platen. Sindsdien geldt: een synthetische test bewijst niets over de werkelijkheid.
- 04
En de sleutel. Een generatief model draait op een sleutel, en een browser-app heeft geen geheime plek: wat je in een build-variabele zet, staat in het bestand dat iedereen downloadt. De build faalt daarom zelf zodra er iets sleutelvormigs in de uitvoermap staat.
Letters en kleuren
- Interface
- Inter
- Waarden en labels
- JetBrains Mono
- #0a0a0dde achtergrond: een studio is donker
- #ff453ade rij van de kick
- #ff9f0ade rij van de snare
- #ffd60ade rij van de hi-hat
- #bf5af2de rij van de bas
- #fffffftekst, op 95 procent
- Elke stem heeft één kleur en houdt die overal: in de rij, in de chips en in het lied. Zo lees je de vorm van een nummer zonder één label.
- De vier kleuren zijn de systeemkleuren van iOS in de nachtstand, zodat de app op een telefoon in de studio niet vloekt met het systeem.
- De waarden komen uit de CSS van de app, 7 september 2026.
Waar het van gemaakt is
- Geluid
- Web Audio API
- Deterministische drums en bas
- Eén grid
- Model
- Lyria RealTime
- 402 platen
- 34 digging grounds
- Bouw
- TypeScript
- Vite
- Statische export
- Uitgang
- WAV 16-bit PCM
- Stems in één zip
- MIDI
- Kwaliteit
- Playwright
- 71 tests op een verse browser
Voor wie verder wil lezen
Waar het nu ophoudt
Vijfendertig seconden is nog geen real-time.
Vijfendertig seconden is nog geen real-time. De stream is real-time; de plaat is dat pas als je hem hebt, en eenendertig van die seconden zijn simpelweg muziek die moet klínken voordat je hem kunt knippen.
One-shots komen niet uit dit model. Een losse hit knip je niet uit een mix, want alles in die mix zit in die hit. De kit blijft dus samengesteld uit echte, geselecteerde samples tot er een route is die niet honderden generaties per stem kost.
Wat we nog niet hebben geprobeerd en wat het spannendst is: het model laten luisteren naar wat er al ligt. De aanvraag draagt nu al de kamer mee: een dunne beat vraagt om iets dat de ruimte vult, een volle beat om iets dat wegblijft.

Maakt AI hier de beat?
Nee. Drums en bas worden lokaal en deterministisch gerenderd, jouw patroon en jouw kit. Het model maakt alleen de plaat waar je in knipt.
Hoe lang duurt een plaat?
Vijfendertig seconden, waarvan eenendertig gewoon muziek is die moet klinken voordat je hem kunt knippen. Real-time is de stream, niet de plaat.
Kan ik het in mijn DAW gebruiken?
Ja: de mix als WAV, elke stem apart als stems in één zip, en de patronen als MIDI. MP3 en FLAC staan er grijs bij, zonder encoder.
Waarom staat de toonsoort leeg?
De detector die we bouwden haalde het niet, en een getal dat je niet kunt vertrouwen is erger dan geen getal, want er komt gegarandeerd een baslijn overheen.
Kan ik het proberen?
Het is een experiment en het staat niet online. Wil je het zien, dan laten we het zien in een videocall.


