Tero Parviainen's Blog
January 23, 2017
Terry Riley's "In C" - A Journey Through a Musical Possibility Space
In early 2015 I came across a piece of music that was unlike anything I'd ever heard before. It was called "Africa Express Presents: Terry Riley's In C Mali," which didn't ring any bells for me at the time, though it involved a number of musicians I like, including Brian Eno.
When I hit "play," I was surrounded by a cloud of music that seemed to contradict itself at every turn as if it was in a state of suspended animation, but it kept changing all the time. It was filled with energy and...
December 11, 2016
SVG and Canvas Graphics in Angular 2
Most Angular applications are built using good old HTML and CSS. But it just so happens that HTML is only one of the four main rendering pipelines made available on the web platform, the three other ones being SVG, the 2D Canvas, and the 3D WebGL Canvas.
These alternative rendering technologies can be very useful when you are building something highly visual. Icons, charts and other data visualizations, mapping apps, and games are all examples of things that can be difficult to build using ju...
September 20, 2016
Additive Synthesis And the Harmonic Series
Sine waves are simple things and provide a nice entry point to learning audio signal processing. So far we've been able to discuss things like frequency and amplitude using nothing but individual sine wave oscillators.
But the thing is, a solitary sine wave is not very interesting to listen to. It's a blank slate, devoid of any color, character, or drama.
Things start to get much more interesting when we have multiple sine wave oscillators at our disposal. What we can do is combine th...
August 30, 2016
Controlling Amplitude and Loudness
In the previous article we discussed how we can change the frequencies of sounds to alter their pitch. Now we're going to talk about stretching sound waves along another axis, to change their amplitudes. This affects their loudness.
This post is part of a series I'm writing about making sounds and music with the Web Audio API. It is written for JavaScript developers who don't necessarily have any background in music or audio engineering.
Part 0: What Is the Web Audio API? Part 1: Sig...August 18, 2016
What Is the Web Audio API?
Using the Web Audio API you can create and process sounds in any web application, right inside the browser.
The capabilities of the Web Audio API are governed by a W3C draft standard. It was originally proposed by Google and has been under development for several years. The standard is still being worked on, but the API is already widely implemented across desktop and mobile browsers. It is something we can use in our applications today.
This is an introduction to a series I'm writing abou...
August 10, 2016
Controlling Frequency and Pitch
This is the second article in a series I'm writing about making sounds and music with the Web Audio API. It is written for JavaScript developers who don't necessarily have any background in music or audio engineering.
In the first article we constructed sine wave oscillators that had one particular frequency: 440Hz, or the A4 standard note. In this article we'll see how we can vary the frequency and how this results in different audible pitches.
What's The Relationship betwee...August 7, 2016
Angular 2 Hot Loading with @ngrx/store and Webpack
I've been waiting for a hot reloading workflow for Angular 2 to emerge. I was happy to discover that one now exists. This is potentially a very big deal for productivity.
There are four pieces to this puzzle, and all of them are now in place:
@ngrx/store provides Redux style centralized state management on top of RxJS. Webpack's dev server has built-in hot module replacement. PatrickJS has written an angular2-hmr library that integrates the Angular 2 bootstrap process to Webpack HMR...August 4, 2016
Signals and Sine Waves
This is the first in a series of articles I'm planning to write about making sounds and music with the Web Audio API. It is written for JavaScript developers who don't necessarily have any background in music or audio engineering.
In this first edition, we'll talk about how digital audio can be represented and played with Web Audio. We'll make our very first sound, which will be based on the sine wave.
First Things First: What Is A Digital Audio Signal?When you represent a s...
Signals And Sine Waves
This is the first in a series of articles I'm planning to write about making sounds and music with the Web Audio API. It is written for JavaScript developers who don't necessarily have any background in music or audio engineering.
In this first edition, we'll talk about how digital audio can be represented and played with Web Audio. We'll make our very first sound, which will be based on the sine wave.
First Things First: What Is A Digital Audio Signal?When you represent a s...
July 27, 2016
JavaScript Systems Music - Learning Web Audio by Recreating The Works of Steve Reich and Brian Eno
Systems music is an idea that explores the following question: What if we could, instead of making music, design systems that generate music for us?
This idea has animated artists and composers for a long time and emerges in new forms whenever new technologies are adopted in music-making.
In the 1960s and 70s there was a particularly fruitful period. People like Steve Reich, Terry Riley, Pauline Oliveros, and Brian Eno designed systems that resulted in many landmark works of minimal and amb...


