Skip to content

abstract

09-Feb-08

the chakakhantroller is here

Improvised electronic music is what I want to create. For my thesis, I will build a hardware controller that allows me to manipulate sounds and loops I have created in an application like Max Msp, Logic, or Ableton Live. A component of the controller will allow theramin-like control of midi signals and effects.

While my controller will be specialized for my personal use, I desire for others to be able to approach and use without any difficulty or prior knowledge. The theramin influenced aspect of the controller makes this an easily achieved addition.

With a background in jazz performance and theory, as well as experience in contemporary music production and performance, I have developed my own particular tastes and formulas for the type of music I like to hear. Rhythm, tonal progression, tension and release, texture, and overall tonal color are the most important facets, in my opinion. In fact, these musical adjectives could also be described in their summation as ‘soul’. Music is a reflection of something unseen, and like looking into the eyes of a human, when a human creates, the hands reflect the inner workings.. the soul.

Creating computer soul music is the goal, metaphorically speaking. In this quest, I need a controller that will allow me to do as such in a compact manner where I can comfortably experiment. I hope to create a sonic experience for the listener that accurately describes the condition of my soul in its aural form.

context

08-Feb-08

I started out rhyming and singing in a hip hop band at 15, then moved on to singing jazz standards in my early 20s. I started home recording with a tascam four-track, then upgraded to a powermac in the early 90s running Studio Vision/ early ProTools. I eventually canned the band concept entirely to explore electronic composition, then really started getting into midi in early 2000. My thesis is rooted in an ongoing search for the perfect way to perform my electronic compositions, in as compact a process as possible, without staring into a computer screen. Whatever form this controller takes needs to be visually stimulating, for me.. so design and construction is important. I want to manipulate triggers like I’m manipulating an instrument.. so I require a particular structure and tactile response.

I have experimented with many different styles of performance: with a band, singing with a backing track, live pa. What would be ideal is a new type of sound system… actually its not a new concept at all.. sound systems have been alive since the 50s where they first were born in Jamaica. So a combination of a traditional DJ sound system (turntables) with the Jamaican rock steady sound system (DJ, selector, and large speakers), is what, due to advances in technology, I can recreate with significantly less equipment. the one-man-band concept is not an option. I need a tool that can allow me to add something to my own vocal performance, not distract the audience from the quality of the music. In other words, it cannot be a gimmick or novelty, and must have complete function and purpose.

critical path

08-Feb-08

click image to view fullscreen

critical path

reference

30-Jan-08
  • Martin, George. Making Music. First Ed. New York: Quill Press, 1983.
  • Levitin, Daniel J. This is Your Brain on Music. London: Plume Printing, 2007.
  • Ascher, Marcia. Mathematics Elsewhere: An Exploration of Ideas Across Cultures. Princeton and Oxford: Princeton University Press, 2002.
  • P. Hall, Manly. The Secret Teachings of All Ages. Los Angeles: Philosophical Research Society, 1928.
  • Sound on Sound Magazine. Synth Secrets Part 12: An Introduction to Frequency Modulation. January 2000. www.soundonsound.com/sos/apr00/articles/synthsecrets.htm
  • Bourke, Paul. An Introduction to Fractals. May 1991. local.wasp.uwa.edu.au/~pbourke//fractals/fracintro/
  • Beyst, Stefan. Tones and Noises, Three Kinds of Soundscape, One Music. August 2004. d-sites.net/English/soundscape.htm

related projects

29-Jan-08

The Kneeslapper (2006, collab w/ Chris Jennings): midi controller project that could attach to your knee and trigger drum samples by slapping the pads.

Picture 2.png

inspiration

28-Jan-08

Sascha Neudeck’s subtlenoisemaker

picture-2.png

Dafna Naphtali created series of custom max patches for sound processing

Jamie Lidell uses vocal effects and looping in his performances

Daedalus, who built his own controller to trigger samples

Colleen, who plays live with looping and effects
Juana Molina, who also uses looping and manual manipulation during performance

Jen Lewin, whose light harps add magic to manipulating sound

Sawako, audio visual live performer/sound artist

my life in the bush of ghosts

Marshall McLuhan would have loved the concept: sample the global media blitz, edit, add polyethnic rhythm tracks, name the results after a novel by Nigerian author Amos Tutuola and recycle them into the blitz. Talking Heads’ David Byrne and audio eclectic Brian Eno have made vocal tracks from snippets of radio broadcasts and Middle Eastern music (the way Robert Fripp turned his neighbors’ fighting into “NY3″), then set them in and against percussive, repetitive mind-funk designed more for listening than dancing. My Life in the Bush of Ghosts is an undeniably awesome feat of tape editing and rhythmic ingenuity. But, like most “found” art, it raises stubborn questions about context, manipulation and cultural imperialism. [rolling stone review 1981]

rafael toral sine wave manipulation, oscillation, theramin control

rute praca organically manipulated computer music with traditional instruments

sciajno sk and twc: electronic experimental, detailed panning

monome controllers:

rick newton controllers, made with doepfer parts

kerri chandler plays laser lights:

Jean Michel Jarre laser harp:

stephen hobley laser harp

crunc tesla:

ideas for tones:

sound of healing monaural
crystal bowls
tibetan meditation bowls
carillon bell

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Sensor Report: Triangulation of Sound Pt. 2

10-Apr-07

I started with one snooper to see if I could read the incoming data… I hooked up the speaker out wires, scratched the surface of the mic, and heard the response through the a speaker from an answering machine.

snoopwithspeaker.jpg

I used the oscilloscope to check the signal as well.

oscillo.jpg

The values were jumping all over the place, so I added a smoothing function to the code and a 10k resistor, and then the values smoothed out a bit, and jumped nicely when a sound was made. Room noise may still be a problem.

When I tested all four of the snoopers, one stopped working, and the other three had two completely different volume input levels. Then one of the three I had left stopped working as well, I think I soldered too close to the microphone head. The problem turned out to be a bad battery, so I still had three snoopers to work with, even with the one casualty.

The plan was to place the snoopers in a triangle two feet from each other, hit the claves in the center, then use the incoming data to determine the exact position of the noise.
snooperplan.png

I had a friend stand in the middle of the triangle and strike the claves once, count to 5, strike again, etc. I used Tom Igoe’s Datalogger Multi code to view the incoming data, and all three of the readings from the snoopers looked the same, even with the smoothing value function I had added to the Arduino code. The snoopers were unable to pick up the clave noise, and had too much noise in general to be effective, and an accurate distance to signal ratio is necessary to triangulate. The three different colors in the diagram each represent a unique snooper signal, but they did not read unique data.

snooper_datalog.png

The appropriate process for triangulation of sound would be:

1. Find the average of the readings made by the clave sound
2. In the event that the snoopers are reading adequate data, you can use the distance formula to triangulate the sound emitted and subsequently find its location:
distancce_formula.png
3. Diagram of triangulation scenario:

triang_scenario.png

(R0_x, R0_y) = coordinates of snooper 1
(R1_x, R1_y) = coordinates of snooper 2
(R2_x, R2_y) = coordinates of snooper 3
D0 = distance of sound source to snooper 1
D1 = distance of sound source to snooper 2
D2 = distance of sound source to snooper 3
S = location of clave sound

4. Use distance formula to create 3 equations:

KEY: ^2 = to the 2nd power
P = S (average of clave reading )

A: (Px – R0_x)^2 + (Py – R0_y)^2 = D0^2
B: (Px – R1_x)^2 + (Py – R1_y)^2 = D1^2
C: (Px – R2_x)^2 + (Py – R2_y)^2 = D2^2

5. Then reduce to two equations where a, b, c, d, e are constants:

A – B: a*Px + b*Py = e
B – C: c*Px + d*Py = f

6. Use Cramer’s Rule to solve the two equations:

cramer.jpg

7. Px and Py will give you the location of the clave sound, and triangulation of sound is accomplished.

Arduino Code
Processing Code
Distance Formula Calculator
Triangulation Equation adapted from this Bluetooth Triangulation report (pdf)
Successful sound triangulation reports:
3D Acoustic Source Localization
Sound Triangulation (pdf)

Arduino Code For Triangulation Report

09-Apr-07

int superSnooper = 0; // select the input pin for the Super Snooper
int superSnooper2 = 1;
int superSnooper3 = 2;

int ledPin = 13; // select the pin for the LED
int val = 0; // variable to store the value coming from the sensor
int val2 = 0;
int val3 = 0;

/*long smoothValue = 0;// to smoothen out analog value
long smoothValue2 = 0;
long smoothValue3 = 0;
*/
void setup() {
pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT
pinMode(superSnooper, INPUT); // reads analog value for speaker
pinMode(superSnooper2, INPUT);
pinMode(superSnooper3, INPUT);

Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}

void loop() {
digitalWrite(ledPin, HIGH); // sets the LED off
val = analogRead(superSnooper/4); // read the value from the sensor
val2 = analogRead(superSnooper2/4);
val3 = analogRead(superSnooper3/4);

Serial.print(“A\t”); //
Serial.print(val, DEC); // print as an ASCII-encoded decimal
Serial.print(10, BYTE);// terminating character

Serial.print(“B\t”);
Serial.print(val2, DEC);
Serial.print(10, BYTE);

Serial.print(“C\t”);
Serial.print(val3, DEC);
Serial.print(10, BYTE);

//delay(20);
delay(10);

smoothValue = 0;
for(int i = 0; i < 10; i++){
smoothValue += analogRead(superSnooper);
//delayMillisecond()
}
smoothValue2 = 0;
for(int i = 0; i < 10; i++){
smoothValue2 += analogRead(superSnooper2);
//delayMillisecond()
}
smoothValue3 = 0;
for(int i = 0; i < 10; i++){
smoothValue3 += analogRead(superSnooper3);
//delayMillisecond()
}
smoothValue = smoothValue/10;
smoothValue2 = smoothValue2/10;
smoothValue3 = smoothValue3/10;
}