Tuesday, November 17, 2009

Week10

DMSS5 - Wk10


//**************************************************************************//
int analogData; // outgoing ADC value
int digitalPin;
int i; //used for the loop
byte x = 0; //byte to store digital status


void setup() {
//setup serial baudrate is set at the highest speed for USB connection
Serial.begin(57600);
//enable digital pullups. All digital pins are set high
//and will only output change when connected to ground
for(i=2;i<8;++i)>
{
digitalPin = i;
pinMode(digitalPin, INPUT);
digitalWrite(digitalPin, HIGH); //enable internal pullups
}
}

//Main Loop
void loop() { //read the digital pins in one go
x = PIND;
x = x >> 2; // Shift by 2 to avoid TX and RX pins
Serial.print(x, BYTE);

/* get analog in, for the number enabled */
analogData = analogRead(0); // Read current analog pin value
Serial.print(analogData >> 7, BYTE); // shift high bits into output byte
Serial.print(analogData % 128, BYTE); // mod by 128 for the small byte

analogData = analogRead(1); // Read current analog pin value
Serial.print(analogData >> 7, BYTE); // shift high bits into output byte
Serial.print(analogData % 128, BYTE); // mod by 128 for the small byte

Serial.print(255, BYTE); // end of digital signifier
delay(10);

}




Sunday, November 1, 2009

Accelerometer and proximity reader

DMSS5 Wk8

This week we just got familiar and tested out the acceleometer and the proximity sensor. They wererelatively simple and the diagrams below pretty much explain it all:

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.

Time to catch up...

DMSS5 Wk1

NIME = New Interfaces for Musical Expression (nime.org)

The aim of the module will be to ultimately create our own unique instrument and perform it (yay :( *sarcasm off*) for the class. I have a few ideas, but only time will tell if they are really possible; God knows I suck at these sort of modules.

Some interesting instruments seen in the first lab:
  • Sonic Banana - bending a tube controlled the length of notes while pushing a button could change the pitch, Mr. Personality himself played it, what a legend :P
  • Accordiatron - strange looking springy thing with buttons, was like playing with a slinky only it made eerie sounds - mimetic instrument
We came into the debate of whether something is to be classed as an instrument or a performance system, I suppose it helps with the whole developing our critical opinions arc

Discussed augmented instruments (one's that play by expanding our natural human limits), and talked about the importance of audience awareness and understanding, which really can be both mitigating and pushing factors in opinionising a performance.

As our first piece of homework (possibly in three yrs), we read a Perry Cook paper, which I will make a completely separate post about.

And guess who missed wk2 :(

A new direction

Just to say I've finally found use for this thing is great. I will be using the blog over the next two months to document my progress through my DMSS5 module in college, that is to say, it should have started by now, but between being in surgery and going back for constant check-ups and referals to make sure all really went well has stretched me quite thin, and so one month after the module actually began, I am about to cram all I have gotten so far into the next post. Afterward I have a lot of catching up to do that will need to go in here too, so bare with me please :)

Monday, February 23, 2009

A Simple Design

Welcome to my blog.

This is the first post for what will be my spot for my many random musings, among other things.

Just thought however that I would say hi to get things kicked off. Hope many of you will enjoy the future articles and works.


Cheers,
J.