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

1 like ·   •  0 comments  •  flag
Share on Twitter
Published on January 23, 2017 01:07

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

 •  0 comments  •  flag
Share on Twitter
Published on December 11, 2016 23:11

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

 •  0 comments  •  flag
Share on Twitter
Published on September 20, 2016 03:47

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...
 •  0 comments  •  flag
Share on Twitter
Published on August 30, 2016 01:54

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

 •  0 comments  •  flag
Share on Twitter
Published on August 18, 2016 23:40

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...
 •  0 comments  •  flag
Share on Twitter
Published on August 10, 2016 00:30

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...
 •  0 comments  •  flag
Share on Twitter
Published on August 07, 2016 21:00

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

 •  0 comments  •  flag
Share on Twitter
Published on August 04, 2016 08:10

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

 •  0 comments  •  flag
Share on Twitter
Published on August 04, 2016 08:10

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

 •  0 comments  •  flag
Share on Twitter
Published on July 27, 2016 23:55