/** * This sketch demonstrates how to use the getLineOut method of Minim. This method * returns an AudioOutput object. An AudioOutput represents a connection to the * computer's speakers and is used to generate audio with AudioSignals. There are five versions of * getLineOut: *
  * getLineOut()
  * getLineOut(int type) 
  * getLineOut(int type, int bufferSize) 
  * getLineOut(int type, int bufferSize, float sampleRate) 
  * getLineOut(int type, int bufferSize, float sampleRate, int bitDepth)  
  * 
* The value you can use for type is either Minim.MONO or Minim.STEREO. * bufferSize specifies how large you want the sample buffer to be, sampleRate specifies * what the sample rate of the audio you will be generating is, and bitDepth specifies what the bit * depth of the audio you will be generating is (8 or 16). type defaults to Minim.STEREO, * bufferSize defaults to 1024, sampleRate defaults to 44100, and bitDepth * defaults to 16. * * Before you exit your sketch make sure you call the close method of any AudioOutput's * you have received from getLineOut. */ import ddf.minim.*; import ddf.minim.signals.*; Minim minim; AudioOutput out; SineWave sine; void setup() { size(512, 200, P3D); minim = new Minim(this); // get a line out from Minim, default sample rate is 44100, default bit depth is 16 out = minim.getLineOut(Minim.STEREO, 2048); // create a sine wave Oscillator, set to 440 Hz, at 0.5 amplitude, sample rate 44100 to match the line out sine = new SineWave(440, 0.5, out.sampleRate()); // add the oscillator to the line out out.addSignal(sine); } void draw() { background(0); stroke(255); // draw the waveforms 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 stop() { // always close Minim audio classes when you are done with them out.close(); minim.stop(); super.stop(); }