Processing
Børre Stenseth
Skisser >Lyd2

Illustrasjon av lyd

Hva

Her skal vi bruke Minim-biblioteket til å vise amplituden til en sang. Minim, og hvordan du kopler det til er beskrevet på siden Lyd . Hvis du vil eksperimentere mer med dette så kopier de to pde-filene nedenfor inn i en katalog du kaller lydIllustrasjon. Inne i kataloger plasserer du også en data-katalog der du legger den sangen du vil se/høre.

Relevante Skisser
lydillustrasjon

Vi vil vise amplituden på to forskjellige måter. Det blir slik, litt forminsket:

lydillustrasjon

Hovedskissen:

_lydillustrasjon.pde
/*
lydillustrasjon
*/
import ddf.minim.*;
Minim minim;
AudioPlayer player;
pinneMann[] korps;
boolean showKorps=false;
void setup(){
  size(600,300);  
  // sett opp korpset
  korps=new pinneMann[6];
  for(int ix=0;ix<korps.length;ix++){
    korps[ix]=new pinneMann(50+ix*100,100);
  }
  // player
  minim = new Minim(this);
  // bytt filnavnet til din fil
  player = minim.loadFile("BruceSpringsteenHungryHeart.mp3");
  player.play();  
  frameRate(10);
}
void draw(){
  background(255);
  if(showKorps)
    drawKorpset();
  else
   drawKurver();
}
void drawKorpset(){
  for(int i=0;i < korps.length;i++){
    korps[i].tegn(player.left.get(0),
                  player.right.get(0));
  }
}
void mousePressed(){
  showKorps=!showKorps;
}

Kurvene:

_kurver.pde
void drawKurver(){
  translate(0,100);
  strokeWeight(1);
  stroke(255,0,0);
  for(int i = 0; i < player.bufferSize()/2; i++)
  {
    float x1 = map( i,   0, player.bufferSize()/2, 0, width );
    float x2 = map( i+1, 0, player.bufferSize()/2, 0, width );
    line(x1,player.left.get(i)*   70,
         x2,player.left.get(i+1)*   70);
  }
  translate(0,100);
  stroke(0,0,255);
  for(int i = 0; i < player.bufferSize()/2; i++)
  {
    float x1 = map( i,   0, player.bufferSize()/2, 0, width );
    float x2 = map( i+1, 0, player.bufferSize()/2, 0, width );
    line(x1,player.right.get(i)*   70,
         x2,player.right.get(i+1)*  70);
  }
 }

Jeg har også lagt inn en option slik at du kan se en alternativ form, en PinneMann. Denne er i betse fall uferdig. Du kan jo se om du kan forbedre den. Pinemannen er laget slik:

_pinneMann.pde
Skisser >Lyd2