Created by Ben Dantowitz, Edward Yufei Du, Thomas Pinella, James Rutledge, and Stephen Watson
We began with an ambitious project goal: to create an application that could synthesize backup music for live music in real-time allowing musicians to practice alone, but still enjoy all the benefits of having musical accompaniment. Its name: JamSesh.
A few test programs later and after hours of research and arduous labor, we finally came to the humbling realization that our initial project vision was beyond our capabilities and time-constraints. Our original goals, which involved raw signal processing and analysis in real-time, were impractical to implement. As much as we loved the idea of real-time accompaniment, we were forced to make the difficult decision to alter our goals. We had to cut back.
So we scrapped the sound analysis portion of the application, turning our project into a purely music synthesis application. Again, we found ourselves immersed in a fascinating but complex field about which we had little prior knowledge. And, just as before, we threw ourselves into research, learning as much as possible about computer-generated music, and evolutionary programming in particular.
Unfortunately, in the world of genetic algorithms, which we found to be the common, and probably best, solution to creating computer-generated music, additional human input is almost always necessary. For its implementation, a human ear is required to tell the computer whether the generated music sounds good or bad so that it can learn and continue to make pleasing music. But the human ear was a necessity we could not tolerate; it went against the spirit of JamSesh. Although our project had already morphed to such a major extent, our original intention of creating an environment in which musicians could enjoy accompaniment was not something we were willing to compromise on. The extra human input needed by the genetic algorithm went against this project value. So we dropped the idea of evolving music using genetic algorithms. We had to look elsewhere for a solution to our problem: how should we generate backup music?
With evolutionary programming off the map, there weren’t many places left to look. So we decided to take a slightly different approach. Instead of attacking this problem from a computer science perspective, we approached it from a music theory perspective. Taking into account the various rules of music theory and common musical structures, we created a unique program that generates chord sequences.
Although the original dream of JamSesh never came to full fruition, we ended up not only learning a lot about the fields of sound processing, evolutionary programming, and even music theory, but we also learned how to work together on a CS team. We learned how to research effectively and efficiently. We learned to accept failures along the way so that we could ultimately succeed.
JamSesh has certainly evolved a lot since its original conception, but we’re happy to say that its spirit remains. With the core goal of creating a tool for musicians to play solo, our end product allows individuals to practice improvisation with the use of JamSesh’s unique chord sequencing. We’re excited to present JamSesh, a musician’s new best friend…Download and Demonstration