openobject.org

Sound element summary

From Physical Programming

Image:Sound_element_title.jpg

Contents

initial sound element

Sound element project started with the idea of a living sound visualizer which contains a certain sound that will replicate through out the life span of the element. Each element would carry a specific range of frequency of a sound and react visually accordance with the property of the sound. Each of the sound element would have a life span and when they meet with another sound element they would have an offspring. The sound elements would eventually die out when they get to their end of lifespan.

progress

As a beginner of using Quartz Composer(QC), a lot of project outlines above were great challenge. So, the project was divided into smaller tasks

  • extraction of frequency information from QC to be used to represent the sound visually
  • design of the visual aspects of the sound element
  • defining and assigning properties to the sound element
  • rendering multiple sound element
  • defining and assigning sounds to each of the sound element

the key patch within QC to be used through the project is the Audio input patch.


Image:Audio_input.jpg

single version

single sound element QC

Using audio input patch and cubes as a visualization elements. a single diamond shape element reacts to the sound that is input by the mic of the computer. 12 cubes correspond to 12 frequencies of the sound. The element maneuvers around the screen depending on the amplitude of each frequency and its orientation around the element.

multiple version

multiple sound element QC

Image:QC_composition.jpg

while single version of the sound element rely on patches to do calculations for the element's visual output and its position, in order to make the elements multiple and render elements on one screen, a large number of calculations needed to be done in javascript patch. Inputs from the left hand side patches are audio frequency data and input from mouse and keyboard. Mouse and keyboard inputs were to be used to setup the initial positions of the elements. However, complication with the javascript was a challenge. Image iterator on the right hand side goes through iteration of generating images of the element accordance with the property changes that was calculated inside the javascript patch.

sound element javascript pdf

Image:12cubes.jpg

12 cubes are rendered as images. Properties of each cube represents the amplication of frequency.

Image:imagegenerator.jpg

The structure of data is passed on to image renderer in sequence. Inside the image iterator, the data that was calculated in javascript patches are translated into visual element.

Image:colour.jpg

A small functional patch that I created to assign colours onto each cubes. It represents the intensity of the each frequency. *White:Min - Green:low mid - Blue:high mid - Red:Max

There are three rendered elements that each has their own frequency range from low, mid to high. Each of them are different in size, movement direction and speed.

improvement

The project ended with only satisfying small part of requirements that was expected at the start. It would be good to take this project into further to implement offspring function, life sapn function and actual sound generation.