Angular Chimes

by Tero Parviainen

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™.

The Talk

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 App

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"

In this variation the music and visualization is generated by a stochastic Perlin Noise process that simulates "wind".

Variations

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.

Antarctic Synth

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.

Remixes

DaveChimes

Hannah Howard went and Daved things up in this hilarious remix, clearly inspired by the on-stage banter at ng-conf by MCs Dave Geddes and Aaron Frost.

NativeScript

Nathan Walker, Josh Sommer, Brad Martin, and TJ VanToll ported the project to the NativeScript platform in just a few hours, and it's available on the Google Play store!

The Code

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.

Further Resources

The project is heavily influenced by the work of Brian Eno. I recommend:

Other resources: