Monday, November 16, 2009

Interesting Mappings



Here is an experiment in mappings using the mouse as an example sensor. I am trying out some of the suggested mappings in 'Mapping performer parameters to synthesis engines' by Andy Hunt and Marcelo M. Wanderley.

In this example max patch I am using the speed of mouse movement (rate of change) with the mouse button pressed to control volume. I have taken the rate of change in both the vertical and horizontal mouse data and added them (I suspect this is not the most appropriate method, but seems to work ok). I have added them so that both horizontal and vertical movements can account for an increase in volume, thus removing the necessity to be exact with any one direction. This data is then fed into an [if] conditional statement, which ensures that the data will be fed through once the mouse button is pressed and wont when it is not pressed.

On the signal end of the patch I am using a binaural type construct where 2 [cycle~] objects are combined using these expressions in either channel:

Channel 1 = x + (y/2)
Channel 2 = x - (y/2)

I have set the parameters so that, with the mouse button not pressed, the horizontal movement of the mouse controls the y value and the vertical movement controls the x value. This is fairly simple mapping but the use of movement, along with the matching of cycles through the expression results in interesting sounds and control.

Tuesday, November 10, 2009

NIME Chair




Items in the NIME chair patch (above)

Rough first NIME Chair patch (above)

Wednesday, October 7, 2009

Week 5 - Using Arduino's Internal Pull-ups


Potential Divider (above)

Top - Pull-up resistor

Bottom - Pull-down resistor


Potential Divider: v2 = (r2/(r1+r2))*v1............where v1 is volatge in and v2 is voltage out


Pull-up resistor:

This is used in conjunction with an internal switch inside the Arduino. It pulls the voltage towards the 5V if no external connection is made.

Using variables in Arduino code:

Variables make our code more human readable. They are necessary for coding a value. More importantly, it is a way of naming and storing a value.

int - 16 bit integers
long - 32 bit integers
byte - 8 bit integers

Arduino Serial:
Serial data is data in the form of ascending bits or bits that are sent one after another. Bits are sent as 1s and 0s.
The Arduino is hard-wired to "talk" to its serial port. Mac OS and Windows also read from serial ports.
Software that read serial information from Arduino include:
  • Terminal
  • Zterm
  • Hyperterminal
  • Cornflake
  • Serial monitor on Arduino IDE
  • Pd
  • Max/MSP
Some firmware to send serial information:


I = current - amps (flow)
V=voltage - volts (pressure)
R=Resistance - ohms

V/I x R

Variable resistor/Parallel resistors

R1 x R2/R1 + R2= total ohms of resistor.

series R1+R2+R3 = total ohms of resistor.

Friday, October 2, 2009

My musical aspirations for NIME Performance

At time of writing, my musical aspirations for this are still a "work-in-progress", or unsure for short. After watching and critiquing a number of NIME performances I am quite sure of what I like and what I do not like.

I do not like making noises just for the sake of making noises. A controller or an instrument can be very clever and unique, but it doesn't mean a performance with it amounts to interesting music. My musical aspirations for my NIME performance would be that it would have to make some kind of sense. So far, I have been very impressed by the Hyperflute performance at the NIME Performance 2008. This would be very close to what I would like to accomplish, either for my NIME performance or in my own time.

www.youtube.com/watch?v=qfEFzWtTLXs&feature=related

Joseph Malloch - T-stick

Some performances are just showcases of instruments and some are just vehicles for an artist. This performance shows how the use of drama in a performance can sometimes add volumes to the overall experience.

This performance showed a very obvious correlation between movement and sound. I thought the element of drama added by the artist was great, it really suited the piece and performance. In a way, it seemed like it was an essential aspect to the performance. Some of the physical sweeps showed a mastery and total control over the instrument that was really very impressive. The slow movement of the body twins the eerie atmospheric layers of sound being outputted while the quick, aggressive, action or fight-like movements are highlighted with various sharp tones and noises.

NIME Performance 2008: Natasha - Hyperflute

This impressive performance uses a flute and sensors to create a variety of different sounds and wind-like effects. I like this an awful lot. The movement of the player really matches the sounds being output. As the player swings the flute, it creates rhythmical patterns and the wind effects on top of these rhythms create gutteral, even animal sounds. The piece as a whole sounds like a living thing doing something, which impressed me very much.

The audience can see, through the movements of the player, that there's a very obvious connection between the music, the instrument and the instrumentalist. As the movements of the player get more intense and aggressive, so does the music. This is definately what I would look for in a controller design.

Micheal Waisvisz - The Hands

This performance was very impressive. Well, I'm not so sure about the animal noises. No need for those I say!

Otherwise, the use of his voice in creating tribal drones for the introduction was great, and he appeared to be in total control of his sounds. Although, he might not have been in control at all. Be it his choice of sounds, or his choice of structure and overall 'feel' of the piece, it wasn't very obvious to me what he was controlling and manipulating and what he was not. It was transparent to me, and I'm sure anyone watching, that his voice was a main sound-source for the piece. Yet his movements, arm and especially finger movements, were not making apparent enough changes to the piece. To my eyes anyway. I'm sure there's someone out there who could associate his bodily movements to the music being created here.

After watching this performance for the first time I was left impressed by the sound of the piece and the idea that Waisvisz was controlling the sounds with a controller on each hand and buttons under each finger, but was left wanting more detail. I would rather see a more obvious correlation between movement and sound. I also felt distracted by facial expressions, which is not a good thing when you're supposed to be appreciating a piece of music created through movements of the body and voice.

But maybe I'm being too critical now...

Perry Cook - Principles for designing computer music controllers

This article is a good source for someone looking for ideas on innovative and interesting computer music controllers. It is a chronological account of a number of attempts at designing controllers in ways not already done. It describes challenges and forms some simple rules to adhere to when trying to design easy to use controllers. Perry Cook seems to have learned some important lessons during the research period, one most important lesson, in my opinion, is to try not to make the same mistake twice! It seems to me that through the design and implementation of the designs that one will learn from their mistakes.

One major "principle" gathered from these designs that strikes me the most is the one termed "Smart instruments are often not smart". This stresses the point that sometimes (mostly in my view), an instrument that can be just picked up and played with both simple and expert knowledge at hand is a good instrument. Controllers or instruments that have a sharp learning curve often prove to be frustrating to the novice. This in many cases leads to the instrument being binned. I'm not forgetting the fact that it is very rewarding to learn a difficult thing and eventually be an expert at it, but nowhere does it say that one cannot enjoy the best of both worlds: an instrument that rewards the amateur and the expert alike.

Cooks views on making a piece, not an instrument are quite interesting also. He refers to the HIRN wind controller and its huge bandwidth not necessarily being a good thing. What I gather from this is the view that too many parameters being available to control does not lead to good music if there is no prior composition at hand. I have seen good use of a wind controller however, which I will be referring to in a later post.

Thursday, October 1, 2009

Week 4

Circuit building

I began building a simple circuit using:
  • A breadboard
  • A 10K and 150K resistor
  • A switch (part no. MCTH4-47S2-V)
  • An LED
  • The Arduino
  • Some wires
In order to make the job of building the circuit easier, I followed the circuit diagram that I drew which showed the chain of actions and flow of current that would be present in the final circuit. It is advisable to build circuits step by step ie in sequence as opposed to starting at the end, the middle or skipping to and from either.

Pins, when not connected, are in an indeterminate state ie output can be either HIGH or LOW. For this we use a pull-down resistor to hold the output to 0 or LOW when not connected.





Colour code for a 10K resistor:
  • Brown/Black/Orange
Arduino Code:

void setup()
{
pinMode(10, OUTPUT);
pinMode(5, INPUT);
}

void loop()
{
int state = 0;
state = digitalRead(5);
digitalWrite(10, state);
}

Tuesday, September 29, 2009

Week 4

Using the Breadboard:
  • 5 hole horizontal rows - connected
  • 5 hole vertical columns - connected
  • No other combinations connected
Resistors:
  • 10K - Brown/Black/Orange
  • 150K - Brown/Green/Brown
LED:
  • long leg (+)
  • short leg (-)
Switch: MCTH4-47S2-V

Wednesday, September 23, 2009

Week 3

Arduino:
  • mid-level microcontroller
  • easily programmed to do many things
  • based around the Atmega 8 and Atmega 168 microcontrollers
Micro-controller:
  • I/O - Input/Output
Inputs - digital inputs, serial inputs...
- analogue inputs

Outputs - digital outputs, serial output...
- analogue outputs

IDE - Integrated Development Environment
Firmware - Software embedded in a hardware device

Traditionally, programming involved learning assembly language
Atmal developed libraries for programming in C++
Arduino wrote functions for easier programming

Steps for programming:
  1. Write our firmware
  2. Compile it
  3. Fix errors
  4. Compile it
  5. Fix errors
  6. Compile it
  7. Upload it to Arduino
Once uploaded, the program is kept in the Arduino's memory until it is over-written...

Example: Washing machine -
Inputs
  • water temp
  • start/stop
  • program select
  • door state
.....to Microcontroller

Outputs
  • motor rotation
  • solonoid for water
  • drain solonoid
  • heater
Coding Arduino:
  • HIGH = 5
  • LOW = 0
Compiling:
  • select type of Arduino in tools - board
  • select serial port in tools - serial port
Some common terms:
  • pinMode
  • digitalWrite
  • delay
N.B. Pins, when not connected, are in an indetermined state ie can be both HIGH or LOW

Performance - aesthetic
Electronics - technical

Critique a peformance:
  • understandable/non-understandable
  • opaque/transparent
  • noise/melodic

Friday, September 18, 2009

Week 2 - Class Notes

Max/MSP:
  • Objects - functions
  • Messages - telling object how to behave
  • Object with ~ = signal
  • Object without ~ = message or control rate
  • cycle~ object - constantly spewing output
  • 44100 numbers every second - digital audio - samples
  • Amplitude = multiplication/division
  • Offset = addition/subtraction
Electronics:
  • Current = flowrate - measured in Amps - I eg. 300A
  • Voltage = pressure - measured in Volts - V eg. 330V
  • Resistance = diameter (of pipe) - measured in Ohms - R
  • Ohms law - V=IR, V/I=R, V/R=I
  • Voltage drop across a resistor...

Week 1 - Class notes (rough)

  • NIME.org
  • Chi - Computer Human Interaction
  • NIME - Sub-group - involved in designing musical interfaces
  • NIME - New Interfaces for Musical Expression - Sonic Banana
  • Sensors that are sensitive to light, used to work Pd - now analogue
  • Overhead projector to shine light down and even create own visuals
  • Closer to circuit bending approach
  • Instrument vs. Performance
  • Q. Is the audiences perception of an error important?
  • Excellerometer on bow - extra avenues for expression
  • Fits into idea of augmented instruments
  • PERRY COOKE! - "Principles for Designing Music Controllers" - READ IT!!!
  • Length of screen - scale or divide
  • Same with pitch - use scale, eg. 0 - 1000 info 20 - 20000