SONIA

A biblioteca SONIA criada por Amit Pitaru permite o processamento de ficheiros de som externos e som criado em tempo real dentro do proce55ing.

Biblioteca SONIA

Sketches Sonia

exemplo:

import pitaru.soniav29.*;

/* Processing Workshop atmosferas.net David Pereira 26-30 Setembro 2005 */

// Mouse Functions // by REAS

float bx;

float by;

int bs = 20;

boolean bover = false;

boolean locked = false;

float bdifx = 0.0;

float bdify = 0.0;

Sample mySample;

void setup(){

size(400,300);

background(250,150,150);

// sonia começa

Sonia.start(this);

// cria o sample

mySample = new Sample(”sine.aiff”);

//

framerate(30);

rectMode(CORNER);

fill(150,100,100);

stroke(230,230,230);

}

void draw()

{

background(250,150,150);

// Test if the cursor is over the box

if (mouseX > bx-bs && mouseX < bx+bs && mouseY > by-bs && mouseY < by+bs) {

bover = true;  

if(!locked) { 

  stroke(255); 

  fill(153); 

}

} else {

stroke(153); 

fill(153); 

bover = false;

}

// Draw the box

rect(bx, by, bs, bs);

}

void mousePressed() {

if(bover) {

locked = true; 

fill(255, 255, 255);

} else {

locked = false;

}

bdifx = mouseX-bx;

bdify = mouseY-by;

}

void mouseDragged() {

if(locked) {

setRate();

   mySample.repeat();

bx = mouseX-bdifx; 

by = mouseY-bdify;

}

}

void mouseReleased() {

locked = false;

}

void setRate(){

// set the speed (sampling rate) of the sample.

// Values:

// 0 -> very low pitch (slow playback).

// 88200 -> very high pitch (fast playback).

float rate = (height - mouseY)*88200/(height);

mySample.setRate(rate);

}