/**
* Get Line In
* by Damien Di Fede.
*
* This sketch demonstrates how to use the getLineIn method of
* Minim. This method returns an AudioInput object.
* An AudioInput represents a connection to the computer's current
* record source (usually the line-in) and is used to monitor audio coming
* from an external source. There are five versions of getLineIn:
*
* getLineIn() * getLineIn(int type) * getLineIn(int type, int bufferSize) * getLineIn(int type, int bufferSize, float sampleRate) * getLineIn(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 the
* sample rate you want to monitor at, and bitDepth specifies what
* bit depth you want to monitor at. type defaults to Minim.STEREO,
* bufferSize defaults to 1024, sampleRate defaults to
* 44100, and bitDepth defaults to 16. If an AudioInput
* cannot be created with the properties you request, Minim will report
* an error and return null.
*
* When you run your sketch as an applet you will need to sign it in order to get an input.
*
* Before you exit your sketch make sure you call the close method
* of any AudioInput's you have received from getLineIn.
*/
import ddf.minim.*;
Minim minim;
AudioInput in;
void setup()
{
size(512, 200, P2D);
minim = new Minim(this);
minim.debugOn();
// get a line in from Minim, default bit depth is 16
in = minim.getLineIn(Minim.STEREO, 512);
}
void draw()
{
background(0);
stroke(255);
// draw the waveforms
for(int i = 0; i < in.bufferSize() - 1; i++)
{
line(i, 50 + in.left.get(i)*50, i+1, 50 + in.left.get(i+1)*50);
line(i, 150 + in.right.get(i)*50, i+1, 150 + in.right.get(i+1)*50);
}
}
void stop()
{
// always close Minim audio classes when you are done with them
in.close();
minim.stop();
super.stop();
}