MInimのInstrumentインターフェースを使ってみる
キーを押すとサイン波が2秒間鳴る.
/** * Using Minim Instrument * * @author aa_debdeb * @date 2015/12/06 */ 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; MyInstrument myInstrument; void setup(){ size(512, 200); minim = new Minim(this); out = minim.getLineOut(); myInstrument = new MyInstrument(); } void draw(){ background(0); stroke(255); strokeWeight(1); for(int i = 0; i < out.bufferSize() - 1; i++){ line(i, 50 + out.left.get(i) * 50, i + 1, 50 + out.left.get(i + 1) * 50); line(i, 150 + out.right.get(i) * 50, i + 1, 150 + out.right.get(i + 1) * 50); } } void mousePressed(){ saveFrame("images/image.jpg"); } void keyPressed(){ out.playNote(0.0, 2.0, myInstrument); } class MyInstrument implements Instrument { Oscil sineWave; MyInstrument(){ sineWave = new Oscil(Frequency.ofPitch("A4"), 0.5, Waves.SINE); } void noteOn(float duration){ sineWave.patch(out); } void noteOff(){ sineWave.unpatch(out); } }