learning the ropes

things I made at ITP and after: sketches, prototypes, and other documentation

Thursday, October 11, 2007

Physical Theater

The second half of our class on Tuesday evening was spent working on physical theater at Judson Church. This was quite possibly the highlight of my week. We enjoyed an hour and a half of movement and really worked as a group in a way I hadn’t experienced in a class before.

I wanted to capture some of the energy of that experience, so I made some sketches yesterday evening on the bus.

movements

posted by Michael at 1:26 pm  

Thursday, October 11, 2007

Sonifying Datasets: Microsoft vs. Google

After we worked on sonifying EEG data in class, I wanted to try something on my own. I liked the “spectral” and ghostly qualities of the EEG sounds, but wondered what would happen if I tried to map the sounds of two competing sets of data — specifically stock prices. What would the Microsoft vs. Google race sound like?

I found stock quotes for the two companies at http://quotes.nasdaq.com and then massaged the downloaded data into a format I could easily read into a modified version of the Processing patch we were using in class. I made the mistake of trying to graph the data sets (containing over 2000 datapoints) using a spreadsheet program. It took forever.

What follows here are some of my notes as I worked through the process.

- Multiplied all values by 100 and rounded to get rid of decimal places
- sorted in ascending date order
- I want Google and Microsoft to duel, so I will insert blanks for dates that are missing from Google’s history.
- in ultraedit, I replace all CR/LFs with spaces so the existing program can easily read the data.

- I don’t really want to use different octave ranges for the two stocks; that might seem to give primacy to one over the other; perhaps I can change the type of base sound wave… one is a square, the other is a triangle
- what is going to happen when I scale the ranges? I can either take the total range or allow each dataset to use its own range

Initial Experiments
v1: [ listen ] google remains constant at a single pitch throughout the piece. Each dataset is using its own scale. I’m not sure I like the frequency range, either. I think I would like lower frequencies. First, I’ll try to get google out of the mud by choosing a different range…

v2: [ listen ] I changed the starting time so google doesn’t stay on 8.02 (D above middle C) the entire time. I needed to move later in the dataset since I only have 38 months of Google.

v3: [ listen ] Tried removing the drone from the times before Google starts rising, but I didn’t hear much difference

v4: [ listen ] made the scaling aware of both datasets. Now microsoft drones as google rises

v5: [ listen ] going for a longer dataset — nicer; I had the idea to do short snippets of this — making the composition out of corporate battles…. msft vs google; gm vs ford

v6: [ listen ] lower frequencies — and spread apart by a fifth (.07 in octave pitch class)

v7: [ listen ] changes the frequency relationship (spread out by .04) — I don’t like it

v8: [ listen ] lower frequency + a wider frequency spread (.11). I like the low, but the interval is weird. what would an octave and the original .07 feel like? I’d like to try different harmonics

v9: [ listen ] Interesting — but too short. I can only get 10 years of data right now. It might also be interesting to use daily market data — which could contain much more raw data for a 10 year period. The other alternative is to render fewer data points per second

Using More Data from the Dataset — Including Daily Stock Trading Volumes
I thought it might be interesting to control the intensity of the sound with the daily trading volume

My dataset looks like:
[round(closing price * 100)],[volume]
656,36140900
638,27227700
641,34314300
644,18598400
633,45610400
619,38191300
628,36933400
636,18076800
659,38905600

I’ll remove the CR/LF’s again and replace them with spaces so I’ll have:

656,36140900 638,27227700 641,34314300 644,18598400 633,45610400 619,38191300 628,36933400 636,18076800 659,38905600

After struggling for a bit to deal with the multiple sets of arrays, I decided to convert the program so it uses classes. This makes the data easier to access and the code more readable.

v10: [ listen ] don’t remember what I did here…

google vs msft v11: pushed the google and microsoft data through my revised code (now using volume information). I realized that frequencies were backwards, though. I want microsoft to be the low frequency.

v12: [ listen ]

Other Potential Experiments
- microsoft – left channel; google – right channel
- use the S&P500 or another index as the base level and then render the two competing stocks somewhere else in the frequency space

posted by Michael at 12:13 am  

Powered by WordPress