Thursday, December 11, 2008

Final Product

I've created a way to choose whether the wind chime sounds bypass the asd envelope or not as well as a way to make the temperature data change randomly based on one over f. This may not be a true representation of actual wave data, but the sound is much more interesting and dynamic. Instead of being a strict sonification of the wave data, it becomes somewhat of a musical score that develops based on the data.
The wind chimes would also stop playing part of the way through a cycle, so I created a simple over lap to make a grain-like continuous sound for the chimes. The resulting effect is that the wind chimes are being continuously played.

I was unable to complete the automatic update of data, but overall I'm much happier with the sound of the final product.

Monday, November 24, 2008

Refining the sound

It's been a while since I've posted because I'm getting busier and busier with all of my projects. I will post more information when I get the chance.

Since my last post I've changed the ASD envelope to be a Hann window (just a raised cosine wave) to eliminate any choppiness associated with amplitude change, I've added FM synthesis to each of the temperature tones which are controlled by the ASD envelope to add some harmonics to the sound, added a wind-chime sampler to add to the sound and fixed various bugs throughout the patch. Take a listen to the new samples here, here and here.

I'm currently working on a way to automatically retrieve the real-time weather data. This way a user can turn on the application and listen to the wave data immediately rather than punch in each number.

Monday, November 3, 2008

Pure Data Crash

I learned my lesson...

I was developing some extra features on my application tonight when I received a stack overflow message from pd. Somehow I had created an infinite loop or saved too much data and pd imploded. I lost all of my new work, some of my old work and all of the connections on the first window. After I calmed down a bit I realized that I had assigned too many variables and sent too many messages for pd to handle.

After coping with the fact that I had been shot back about four weeks worth of work I sat back down and rewrote the important bits of code. I'm back to where I was before the crash and I eliminated the unnecessary section that caused all of the trouble.

Since the last update, I set up a way for the frequency of notes to play randomly based on 1/f noise. In this way the timing changes between each note randomly, but still correlates to the average wave period.

I've also turned the ADSR envelope into a simpler ASD (Attack, Sustain, Decay) one and made it controlled by the average wave period and wave height.

There is now an option to store about fifty historical data points for temperature and play them back to listen for patterns. The changing frequencies make for some interesting dissonant intervals.

I've learned my lesson... I'm creating several back-ups of my work so far and taking more screenshots to document where I am now so that if I mess up again I'll bounce back a little faster.

Take a listen to the last 24 hours of temperature data here.





Tuesday, October 21, 2008

First Draft

I have created a PD patch to use real wave data to shape two oscillator tones, the amplitude, and tempo of a synthesizer. I also have created a system of controlling an ADSR envelope (attack, decay, sustain and release), but have not decided which wave data to use for controls.

The sound output samples can be found here and here. Both utilize real data from times in the last week. The data are taken from the NOAA website (National Oceanic and Atmospheric Administration) for wave data in La Jolla and Torrey Pines. What I find interesting is the relationship of the two temperature readings that are so close, but provide different enough tones to create a harmonic relationship.



My next task is to decide how to control the ADSR envelope, figure out how to pull real time data from the NOAA websites, create a standalone application to run the synthesizer for users that don't have PD, test alternative sound inputs besides sine wave oscillators and implement filters using wind data.

I'm happy with this draft. I like the output because it sounds like waves, but I'd like to add more levels of complexity to it with a wind data filter, a different sound input and perhaps more data sites running simultaneously to create a more dense sound texture.

Tuesday, October 7, 2008

Project Decision and Timeline

I have decided that this quarter I'll be developing my proposal for creating synthesizers that are controlled by real time data for wind, tides and traffic to create a "song of a city." This project will explore how to describe these sets of data with sound instead of measurements.

Timeline:

3rd Week--Research programming possibilities and decide on logistics (Flash, PD, C++, etc.)

4th Week--Begin programming and decide on synthesizer sounds

5th Week--Continue programming and decide on distribution of sounds (web or recording)

6th Week--Continue programming (depending on progress, start developing graphics)

7th Week--Continue programming (if progress allows, continue graphics and create song for multiple cities)

8th Week--Finish up programming, master the sounds, beautify the graphics

9th Week--Distribute content via the web

10th Week--Develop presentation schedule, ways of demonstration and description

Finals Week--Present the project

Wednesday, October 1, 2008

Project Ideas

I have three ideas to narrow down into an ICAM 160 senior project:

1. Not webcams, but webmics: Live, streaming microphones set up around campus to describe different areas with sound. A website will allow users to select different areas and listen in.

2. Digital, video controlled theremin: Use Flash or MAX to video track hand motions to control different aspects of a synthesized sound.

3. Real time data controlled synths: Create a "song of a city" by utilizing real time tide levels, wind speed and traffic to control parameters of separate synthesizers.

My goal for this week is to choose a project and decide on a time line of completion.