Ik kan geen instrument bespelen. Ik nam pianoles toen ik acht was en stopte na drie maanden omdat ik buiten wilde spelen. Nooit meer opgepakt. Kan geen bladmuziek lezen. Zou je niet kunnen vertellen in welke toonsoort een nummer staat.
Afgelopen weekend bouwde ik iets waarmee ik muziek kan maken door zinnen in een chatvenster te typen.
wat het is
Schwifty is een browser-app. Je typt wat je wilt horen. "Dark techno met acid bas." "Ambient drone met evoluerende texturen." "Iets dat klinkt als verdwaald zijn op een ruimtestation." De AI zet dat om in live code die door je speakers speelt. Geen DAW. Geen plugins. Geen installaties. Je typt, het speelt.
De naam is een Rick and Morty-referentie. Uiteraard.

hoe het eigenlijk werkt
Het geheime ingrediënt is Strudel, een JavaScript-port van TidalCycles. TidalCycles is een livecoding-taal voor algoritmische muziek die bestaat sinds het begin van de jaren 2000. Mensen treden er live mee op, typen code op het podium terwijl het publiek patronen ziet veranderen in real time. Het draait volledig in de browser via de Web Audio API.
Het probleem met Strudel is hetzelfde probleem als met elke livecoding-taal: je moet het eerst leren. De syntax is krachtig maar niet intuïtief als je het nog nooit hebt gezien. Zoiets als:
note("<[c2,g2] [d2,a2] [e2,b2] [f2,c3]>").s('triangle').superimpose(add(.03)).cutoff(sine.slow(12).range(200,1500)).room(.95)
Dat is een ambient drone. Klinkt prachtig. Maar je zou nooit uitvogelen hoe je het moet schrijven tenzij je een paar weekenden documentatie leest.
Schwifty slaat dat allemaal over. GPT-4o heeft een uitgebreide systeemprompt over Strudel-syntax: noten, samples, effecten, euclidische ritmes, filters, alles. Je zegt "ambient drone met evoluerende texturen" en het genereert dat codeblok hierboven. De code draait in een sandboxed iframe, Strudel evalueert het, Web Audio speelt het af. Je hoort muziek.
het deel dat me verraste
Ik verwachtte dat de AI simpele loops zou genereren. Eenvoudige kick-hat patronen, misschien hier en daar een basnoot. Functioneel maar saai.
In plaats daarvan genereert het dingen met gelaagde polyritmes, filtersweeps, galm die over maten heen bloedt, gefaseerde ontstemde oscillatoren. Ik typte "iets dat klinkt als een regenachtige nacht in Tokyo" en kreeg een stuk met zachte FM-bellen, een geshuffeld hi-hat patroon op laag volume, en een sub-bas die pulseert als onweer in de verte. Ik wist niet eens dat Strudel de helft daarvan kon.
Het iteratieve deel is waar het interessant wordt. Je krijgt niet maar één kans. Je zegt "maak het sneller." "Meer bas." "Maak het raar." "Laat alles vallen behalve de hi-hats voor vier maten en breng dan alles terug." Elke prompt wijzigt de draaiende code. Het is minder als prompting en meer als het aansturen van een muzikant die toevallig in milliseconden reageert.
Ik heb op een avond drie uur lang alleen maar prompts getypt en geluisterd. Vergat dat ik eigenlijk aan het bouwen moest zijn.
de presets
Niet iedereen wil typen. Dus zijn er vijf one-click presets die laten zien wat Schwifty kan: Minimal Beat, Acid Bass, Space Vibes, Ambient Pad, Glitch Hop. Klik er op, audio start, code verschijnt aan de rechterkant van het scherm. Je kunt de code lezen terwijl het speelt en beginnen te zien hoe Strudel-patronen werken.
Per ongeluk educatief. Had ik ook niet gepland.
wat dit zegt over AI en creativiteit
Ik blijf dit soort dingen bouwen waar de AI me verrast. Bij Latent Press koos het zijn eigen romanconcept. Bij Schwifty genereert het muziek waar ik in technische termen niet om zou weten te vragen. Ik zeg "maak het raar" en het voegt euclidische ritmes en bitcrushed samples toe waarvan ik niet wist dat ze in de Strudel sample-bibliotheek zaten.
Er is een versie van dit argument waarin AI gewoon trainingsdata remixt. Statistisch waarschijnlijke nootsequenties. Dat is waarschijnlijk waar. Maar als ik luister naar wat er uit een prompt komt als "het gevoel van vroeg van een feestje weggaan" en het genereert iets met een langzaam dalende melodie over een gedempte four-on-the-floor die geleidelijk zijn hoge tonen verliest, kan me het filosofische debat niet meer zoveel schelen. Het klinkt goed.
De kloof tussen "ik wil iets horen" en "ik hoor het" was vroeger jaren oefening. Nu is het een zin. Of dat democratisering of devaluatie is, hangt af van aan welke kant van het instrument je staat.
probeer het
Klik op "Start Audio Engine" onderaan. Typ iets. Kijk wat er gebeurt.
De code is open source op github.com/meeseeks-lab/schwifty. Het is een Next.js-app met een OpenAI API-call en een Strudel iframe. Het geheel is misschien 500 regels echte code.
Soms zijn de simpelste dingen het leukst om te bouwen.
Stay Updated
Get notified about new posts on automation, productivity tips, indie hacking, and web3.
No spam, ever. Unsubscribe anytime.



