Chimes is a generative art project built on Angular 2, RxJS, and Web Audio. Its purpose is to explore and learn these technologies and to have fun and play with tools that are usually associated with Serious Business Applications™.
I gave a talk about the project at ng-conf 2016. In the talk I describe the motivation behind the app and how it's written.
The following variations should all be playable with a Web Audio capable modern web browser, including Chrome on the desktop and Android, Firefox on the desktop, and Safari on the desktop and iOS.
Played by You
In this variation you play the app by touching or clicking. Each time you touch the screen, a musical note is randomly selected.
Played by "The Wind"
Markov Chain Morrissey
This variation generates Markov Chain poetry seeded from the Angular 2 documentation mixed with the song lyrics of Steven Patrick Morrissey. It occasionally comes up with surprisingly profound statements about life, love, and Angular template syntax.
This variation uses some alternative visuals and sounds that has an altogether more sinister feel. It also makes the wind itself audible using some generated Brownian noise.
The source code for the project is available on Github. It is an Angular 2 application written in TypeScript and packaged with Webpack. It's not exactly the cleanliest codebase imaginable but I hope it can still serve as a basis for further experimentation to anyone interested.
The project is heavily influenced by the work of Brian Eno. I recommend:
- Playing with the iOS generative music apps made by Eno and Peter Chilvers.
- Watching this talk/conversation on generative systems between Eno and Will Wright.
- Watching this conversation with Eno from the Red Bull Music Academy.
- Listening to Music for Airports.
- Matt Pearson's Generative Art book is a nice starting point for generative art making. It uses Processing but all the concepts are readily translatable to the web platform.
- Jenn Schiffer's work, especially the
var t;series of articles.
- The Nature of Code book by Daniel Shiffman.