core | ugens | analysis




An AudioInput is used when you want to monitor the active audio input of the computer. On a laptop, for instance, this will typically be the built-in microphone. On a desktop it might be the line-in port on the soundcard. The default values are for a stereo input with a 1024 sample buffer (ie the size of left, right, and mix buffers), sample rate of 44100 and bit depth of 16. Generally speaking, you will not want to specify these things, but it's there if you need it.


AudioInput getLineIn()
AudioInput getLineIn(int type)
AudioInput getLineIn(int type, int bufferSize)
AudioInput getLineIn(int type, int bufferSize, float sampleRate)
AudioInput getLineIn(int type, int bufferSize, float sampleRate, int bitDepth)


type — Minim.MONO or Minim.STEREO
bufferSize — int: how long you want the AudioInput's sample buffer to be (ie the size of left, right, and mix buffers)
sampleRate — float: the desired sample rate in Hertz (typically 44100)
bitDepth — int: the desired bit depth (typically 16)


an AudioInput that reads from the active audio input of the soundcard




  * This sketch demonstrates how to monitor the currently active audio input 
  * of the computer using an AudioInput. What you will actually 
  * be monitoring depends on the current settings of the machine the sketch is running on. 
  * Typically, you will be monitoring the built-in microphone, but if running on a desktop
  * it's feasible that the user may have the actual audio output of the computer 
  * as the active audio input, or something else entirely.
  * <p>
  * Press 'm' to toggle monitoring on and off.
  * <p>
  * When you run your sketch as an applet you will need to sign it in order to get an input.
  * <p>
  * For more information about Minim and additional features, 
  * visit 

import ddf.minim.*;

Minim minim;
AudioInput in;

void setup()
  size(512, 200, P3D);

  minim = new Minim(this);
  // use the getLineIn method of the Minim object to get an AudioInput
  in = minim.getLineIn();

void draw()
  // draw the waveforms so we can see what we are monitoring
  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 );
  String monitoringState = in.isMonitoring() ? "enabled" : "disabled";
  text( "Input monitoring is currently " + monitoringState + ".", 5, 15 );

void keyPressed()
  if ( key == 'm' || key == 'M' )
    if ( in.isMonitoring() )


Web & Application