Real-time synchronized musical performances.
ImprovScore is a web application that serves as a digital score and algorithmic conductor for groups of improvising musicians. It is the result of years of performance experience in the San Francisco Bay Area creative music community, as well as my own experimentation with utilizing technology in musical performance.
I began performing live using a similar (but much simpler) application in 2017. At the time I had a vision for how the app might evolve into what ImprovScore is now, but I lacked the coding skills required to build it. The advent of vibe coding has enabled me to bring my initial vision to life.
I created the alpha version of ImprovScore using ChatGPT, having had previous success creating simpler apps in a single HTML/CSS/JS file. This version was a proof of concept only (it was not usable for performance), but helped me start making decisions about the UI, compositional controls, and performance tuning.
Progress improved once I switched to a full-stack architecture. Working on different parts of the app in isolation helped me overcome the limits of the model's context window size. Eventually I learned to recognize the signs when a new chat session is likely to be more productive.
I switched to Cursor for the beta release. Technical aspects of the app that had previously been insurmountable for me (like the websockets.io implementation that powers the session/lobby interaction) were completed quickly by AI. The app was up and functional in under an hour, but tuning the performance aspects turned out to be a much larger challenge.
Ultimately, the application is a musical score: if the resulting music isn't satisfying, the technical novelty is of little consequence. Testing the score with large ensembles (of up to 12 musicians) and with lengthy performances (of up to 1 hour) would be complicated and time-consuming.
To address these challenges, I implemented a simulation mode. This enabled me to evaluate sessions of any length in any group size in seconds, with thorough reporting. I was able to accomplish in a few days what a traditional composer would require months to do.
If you would like to try ImprovScore with your own group, the beta version is live now. Contact me if you would like to be notified of live performances in the San Francisco Bay Area.