Sunday, October 25, 2009

Max Code for Serial reading and display (awfully blurry)

Weeks 6 and 7 - the busy times

DMSS5 Wk6

Things are getting busy but I get by. So this week we discussed mapping, the connection between the player and the instrument and however they are to interact, i.e. what the interface is controlling.


The importance of parameter mapping to the electronic instrument...

There are different mapping strategies, all of which are pretty self-explanatory:
  • one to one
  • one to many
  • many to many
"Instrument gesture mapping strategies as expressity determinance in computer music parameters." (1997)


DMSS5 Wk7

All we really did this week so far is learn some code to reading serial in a different way by splitting up the total into separate bytes for a more accurate read.

Serial.print(analogData >> 7, BYTE);
Serial.print(analogData % 128, BYTE);

The first line shifts the first three digits to the end of the binary code, and the second line gets the remainder needed to make the total, e.g.

analogData = 1111111111

Byte1 = 00000111
Byte2 = 01111111

Monday, October 19, 2009

Mapping performer parameters to synthesis engines ANDY HUNT† and MARCELO M. WANDERLEY‡

It's been awhile because of the time off last week, but in the meantime we had to read a paper by Hunt and Wanderly about different mapping strategies for electronic insturments; that is, mapping to the player.

I honest to God found the paper a little monotonous in that there was a lot of saying what had already been said (well duh I hear you say :) ).

But I guess there were some interesting findings and views, in particular the experiment revealing that people prefered and excelled at the harder task, in this case, the more complex instrument (where are all the lazy people gone to?)

The idea of mapping is certainly something I figure though that I should consider when making my project, though with the ideas in mind, it shouldn't be so complex, but the points made in the paper about one-to-one ect made me think.

Friday, October 9, 2009

Forgot something...

Almost forgot, we watched this crazy fella called Ray Edgar who played this horrible sounding pole yolk that made sound based on the hands proximity to each other, tilt, and buttons pushed on the device. It was called the Flexonica 2. The video link is below:

http://www.youtube.com/watch?v=HSWXEwRdECk

Adding Max to the equation...

DMSS5 Wk5

Using variables

  • Makes our code more human readable
  • Necessary for storing a value
  • A variable is a way of naming and storing a value for later use by the program, such as data from an analog pin
  • Variables must be declared before use
Just started with some recap on the use of variables and the theory.

Also discussed the notion of the pull-up resistor built into the Arduino pins and the obvious difference from the pull-down resistor. Looks a little something like the diagram below:


As stated in the diagram code is used to open the switch. The full code is below with the line to open the switch in bold.

void setup()
{
pinMode(3, INPUT);
digitalWrite(3, HIGH);
}

void loop()
{
int digiinput = digitalRead(3);
}



Got into Arduino Serail for the first time today (Tuesday) also. Was interesting, and simple what it boils down to is:

  • allows Arduino to talk to the computer
Programs to read Arduino Serail include:

  1. zterm
  2. hyperterminal
  3. cornflake (apparantly the best one)
New function for use with Serial:
Serial.print(1, BYTE)

Monday, October 5, 2009

Moving onward...

DMSS5 Wk3

Went on a trip back in time so to speak here, going back to basic elctronics, which I unfortunately hadn't only briefly touched on since my JC back in '02. However, I found the stuff relatively easy to manage and understand. Rough notes taken are below.

  • electricity - voltage and current
  • for a given voltage the resistance of the circuit will set the current
  • large resistance will restrict the current more than a small resistance
  • Ohms Law: I = V/R
Resistors in series: Rt = R1 + R2

Resistors in parallel: 1/Rt = 1/R1 + 1/R2

Examples of equations and diagrams:
  • 2 resistors each of 1kOhm are connected in series with an SV battery across them:
  • current is the same everywhere as there is only one path
  • Potential Divider - useful for simple sensor circuits
  • Arduino - open-source physical computing platform based on a simple i/o board
  • based around a programmable microcontroller (Atmega168)
  • i/o = input/output
  • digital + analog (+ serial)
  • IDE = integrated development environment
  • Firmware is software that is embedded in a hardware device such as a microcontroller
  1. Write our firmware
  2. Compile
  3. Debug
  4. Compile
  5. Debug
  6. Compile
  7. Upload to arduino
  • solenoid is an electronic switch
http://www.arduino.cc/playground/projects/arduinousers

HIGH = 5v
LOW = 0v

Anode +
Cathode -


We later looked at some makezine tutorials on youtube (makezine.com)

In this lectue we were introduced to the idea of critiquing performances. We started off with a performance by Michael Waiswisz, with his NIME called the Hands. If was too sort of paddle like glove devices with buttons and sensors. It also has a microphone for him to input the original sounds before he altered and played them using the device. He seemed a bit crazy to say the least, but he definitely knew what he was doing, and I liked it, (despite my usual distaste for all things more noisy than straight-up musical).

Watch the video here: http://www.youtube.com/watch?v=SIfumZa2TKY


DMSS5 Wk4

Today we just continued on the arduino stuff, so just some diagrams and simple notes to be shared today.

  • Arduino Pin 13 has a built in resistor

  • Resistors used like in the diagram to the above right are called pull down resistors


Principles for designing computer music controllers - by Perry Cook

The paper is based around observation Cook makes on the different factors that are involved in the creation of new digital music controllers.

Overall, his principles given toward the start of the paper gave me the impression that we were talking about very simplistic instruments; nothing unnecessarily fancy! (use of wires, hatred of programmability). I found the concept of human bandwidth interesting, that is, that some players have spare bandwidth while other don't, such as how a guitar player has his feet spare, whereas a drummer or pianist have nothing (unless they want to start bashing their head against something :P) He also had a valid point about how algorithms and controller design go hand in, each one inspiring the other.

Many digital instrument designs were presented, but my favourite had to be SPASM, a voice synthesizer. Capable of manipulating the voice, it could change the parameters and output in real-time, which I thought was really cool.