close

BULBUL

Intro: Bulbul is a procedural music application that generates expressive pieces of music using interactive markov chains. Check it out here.

Bulbul Banner

Screenshot

Context: I’ve always wanted to make music. But, I’m held back by my lacklustre amounts of musical talent. So, I decided to use my thesis project as an oppurtunity to make a computer make music for me.

Bulbul Banner

Guiding Concepts: Two major concepts shaped the development of Bulbul:

  1. A Meta-instrument is a network of ideas and concerns that are ‘played’ in the creative process to make the aesthetics and philosophies of a given project.
  2. Procedural Music is merely composition expressed as a set of principles and procedures. This kind of music composition is exemplified by artists like Steve Reich & Brian Eno. It’s a philosophy for creating art.

Here’s an example of procedural music:

Technical Approach: The Technique/Procedure we used for generating music is called “Interactive Markov Chains”. A Markov chain is a mathematical system that experiences transitions from one state to another according to certain probabilistic rules. An interactive Markov Chain basically allows you to change those probabilistic rules through an interface.

Markov Chains

Design Approach: To create this project I collaborated with Abhishek Cherath a physics student at Stony Brook University. We executed this project by setting goals and conducting three 36 hour development sprints over a semester with user testing between them to properly orient the development process.

Process

Iteration One: The first iteration was a paper prototype. I obscured the interface of a weird synth app on an iPad. This was to encourage users to interact with making music semi-divorced from regular music interfaces. Here’s an excerpt from the testing process:

Iteration Two: Prototype two was my first digital prototype. It was a quick program made with Java in the Processing library. The objective was to compare and contrast the paper prototype with the new digital interface.

Iteration Three: This round of prototyping was more informal. I wanted to test out existing music projects and see what parts resonated with people the most. I concluded that the project needed to strike a balance between the avant-garde & the familiar.

Iteration Four: This is the crystalization of our iterations. It’s an instrument. You have to learn how to use it, practice with it, and how to make the sounds you want to make.

✨Thanks for reading✨