【Processing】minimを使ってみる(4)〜フィードバックを見る〜


フィードバックを見る

公式サンプルのディレイをいじって遊んだ。
オーディオインして、ディレイしてフィードバック。
気がついたら1時間くらい遊んでた。

マシンのスピーカーとマイクだからローファイだけど、
ちゃんとオーディオインターフェース噛ませたら綺麗なフィードバックがおこるのかな。
や、ローファイだからこんな感じなのかな。

最近仕事がつらいので、コメントアウトはお休み。

import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;


Minim minim;
AudioOutput out;
LiveInput in;
Delay myDelay;


void setup()
{
  size( 1000, 500 );
  blendMode(ADD);
  minim = new Minim(this);
  out = minim.getLineOut();

  AudioStream inputStream = minim.getInputStream( Minim.MONO, 
    out.bufferSize(), 
    out.sampleRate(), 
    out.getFormat().getSampleSizeInBits()
    );
  in = new LiveInput( inputStream );
  //in.patch( out );直で出力はしない

  myDelay = new Delay( 0.1, 0.1, true, true );
  in.patch( myDelay ).patch( out );
}
void draw()
{  
  background( 0 );
  stroke(255, 150);
  strokeWeight(1);

  for ( int i = 0; i < out.bufferSize() - 1; i++ )
  {
    float x1  =  map( i, 0, out.bufferSize(), 0, width );
    float x2  =  map( i+1, 0, out.bufferSize(), 0, width );
    line( x1, height/2 + out.left.get(i)*50, x2, height/2 + out.left.get(i+1)*50);
  }

  text( "Delay time is " + myDelay.delTime.getLastValue(), 5, 15 );
  text( "Delay amplitude (feedback) is " + myDelay.delAmp.getLastValue(), 5, 30 );
}

void mouseMoved()
{
  float delayTime = map( mouseX, 0, width, 0.0001, 5.0 );
  myDelay.setDelTime( delayTime );
  float feedbackFactor = map( mouseY, 0, height, 0.99, 0.0 );
  myDelay.setDelAmp( feedbackFactor );
}


フルはこちら
https://www.youtube.com/watch?v=aycuunfimo8&feature=youtu.be