No se tocar ningun instrumento. Tome clases de piano a los ocho y las deje a los tres meses porque queria jugar afuera. Nunca lo retome. No se leer partituras. No podria decirte en que tonalidad esta una cancion.
El fin de semana pasado construi algo que me permite hacer musica escribiendo frases en un chat.
que es
Schwifty es una app de navegador. Escribes lo que quieres escuchar. "Dark techno con bajo acid." "Drone ambient con texturas evolutivas." "Algo que suene como estar perdido en una estacion espacial." La IA convierte eso en codigo en vivo que suena por tus altavoces. Sin DAW. Sin plugins. Sin instalaciones. Escribes, suena.
El nombre es una referencia a Rick and Morty. Obviamente.

como funciona realmente
El ingrediente secreto es Strudel, un port en JavaScript de TidalCycles. TidalCycles es un lenguaje de livecoding para musica algoritmica que existe desde principios de los 2000. La gente hace sets en vivo con el, escribiendo codigo en el escenario mientras el publico ve los patrones transformarse en tiempo real. Corre completamente en el navegador usando la Web Audio API.
El problema con Strudel es el mismo problema que con cualquier lenguaje de livecoding: primero tienes que aprenderlo. La sintaxis es potente pero no es intuitiva si nunca la has visto. Algo como:
note("<[c2,g2] [d2,a2] [e2,b2] [f2,c3]>").s('triangle').superimpose(add(.03)).cutoff(sine.slow(12).range(200,1500)).room(.95)
Eso es un drone ambient. Suena precioso. Pero nunca sabrias como escribirlo a menos que pases un par de fines de semana leyendo documentacion.
Schwifty se salta todo eso. GPT-4o tiene un prompt de sistema extenso que cubre la sintaxis de Strudel: notas, samples, efectos, ritmos euclidianos, filtros, todo. Dices "drone ambient con texturas evolutivas" y genera ese bloque de codigo de arriba. El codigo corre en un iframe aislado, Strudel lo evalua, Web Audio lo reproduce. Escuchas musica.
la parte que me sorprendio
Esperaba que la IA generara loops basicos. Patrones simples de kick-hat, quiza una nota de bajo aqui y alla. Funcional pero aburrido.
En cambio genera cosas con polirritmias superpuestas, barridos de filtro, colas de reverb que se desbordan entre compases, osciladores desintonizados en fase. Escribi "algo que suene como una noche lluviosa en Tokyo" y obtuve una pieza con campanas FM suaves, un patron de hi-hat shuffleado a bajo volumen, y un sub-bajo que pulsa como un trueno lejano. No sabia que Strudel podia hacer ni la mitad de eso.
La parte iterativa es donde se pone interesante. No tienes una sola oportunidad. Dices "hazlo mas rapido." "Anade mas bajo." "Hazlo raro." "Quita todo menos los hi-hats durante cuatro compases y luego trae todo de vuelta." Cada prompt modifica el codigo que esta corriendo. Es menos como hacer prompting y mas como dirigir a un musico que responde en milisegundos.
Pase tres horas una noche solo escribiendo prompts y escuchando. Se me olvido que se suponia que estaba construyendo la cosa.
los presets
No todo el mundo quiere escribir. Asi que hay cinco presets de un clic que demuestran lo que Schwifty puede hacer: Minimal Beat, Acid Bass, Space Vibes, Ambient Pad, Glitch Hop. Haces clic en uno, el audio arranca, el codigo aparece en el lado derecho de la pantalla. Puedes leer el codigo mientras suena y empezar a ver como funcionan los patrones de Strudel.
Accidentalmente educativo. Eso tampoco lo planee.
que dice esto sobre la IA y la creatividad
No paro de construir estas cosas donde la IA me sorprende. Con Latent Press eligio su propia premisa para una novela. Con Schwifty genera musica que no sabria como pedir en terminos tecnicos. Digo "hazlo raro" y anade ritmos euclidianos y samples con bitcrush que no sabia que existian en la biblioteca de samples de Strudel.
Hay una version de este argumento donde la IA solo esta remezclando datos de entrenamiento. Secuencias de notas estadisticamente probables. Probablemente sea cierto. Pero cuando escucho lo que sale de un prompt como "la sensacion de irte de una fiesta antes de tiempo" y genera algo con una melodia que desciende lentamente sobre un four-on-the-floor amortiguado que poco a poco pierde sus agudos, el debate filosofico ya no me importa mucho. Suena bien.
La brecha entre "quiero escuchar algo" y "lo estoy escuchando" solia ser anos de practica. Ahora es una frase. Si eso es democratizacion o devaluacion depende de en que lado del instrumento estes parado.
pruebalo
Haz clic en "Start Audio Engine" en la parte inferior. Escribe algo. Mira que pasa.
El codigo es open source en github.com/meeseeks-lab/schwifty. Es una app de Next.js con una llamada a la API de OpenAI y un iframe de Strudel. Todo el asunto son unas 500 lineas de codigo real.
A veces las cosas mas simples son las mas divertidas de construir.
Stay Updated
Get notified about new posts on automation, productivity tips, indie hacking, and web3.
No spam, ever. Unsubscribe anytime.



