Minim
core
ugens
analysis
 
Name getLineOut
Examples
/**
  * This sketch demonstrates how to create synthesized sound with Minim 
  * using an AudioOutput and an Oscil. An Oscil is a UGen object, 
  * one of many different types included with Minim. By using 
  * the numbers 1 thru 5, you can change the waveform being used
  * by the Oscil to make sound. These basic waveforms are the 
  * basis of much audio synthesis. 
  * 
  * For many more examples of UGens included with Minim, 
  * have a look in the Synthesis folder of the Minim examples.
  * <p>
  * For more information about Minim and additional features, 
  * visit http://code.compartmental.net/minim/
  */

import ddf.minim.*;
import ddf.minim.ugens.*;

Minim       minim;
AudioOutput out;
Oscil       wave;

void setup()
{
  size(512, 200, P3D);
  
  minim = new Minim(this);
  
  // use the getLineOut method of the Minim object to get an AudioOutput object
  out = minim.getLineOut();
  
  // create a sine wave Oscil, set to 440 Hz, at 0.5 amplitude
  wave = new Oscil( 440, 0.5f, Waves.SINE );
  // patch the Oscil to the output
  wave.patch( out );
}

void draw()
{
  background(0);
  stroke(255);
  strokeWeight(1);
  
  // draw the waveform of the output
  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 );
  }

  // draw the waveform we are using in the oscillator
  stroke( 128, 0, 0 );
  strokeWeight(4);
  for( int i = 0; i < width-1; ++i )
  {
    point( i, height/2 - (height*0.49) * wave.getWaveform().value( (float)i / width ) );
  }
}

void mouseMoved()
{
  // usually when setting the amplitude and frequency of an Oscil
  // you will want to patch something to the amplitude and frequency inputs
  // but this is a quick and easy way to turn the screen into
  // an x-y control for them.
  
  float amp = map( mouseY, 0, height, 1, 0 );
  wave.setAmplitude( amp );
  
  float freq = map( mouseX, 0, width, 110, 880 );
  wave.setFrequency( freq );
}

void keyPressed()
{ 
  switch( key )
  {
    case '1': 
      wave.setWaveform( Waves.SINE );
      break;
     
    case '2':
      wave.setWaveform( Waves.TRIANGLE );
      break;
     
    case '3':
      wave.setWaveform( Waves.SAW );
      break;
    
    case '4':
      wave.setWaveform( Waves.SQUARE );
      break;
      
    case '5':
      wave.setWaveform( Waves.QUARTERPULSE );
      break;
     
    default: break; 
  }
}
Description An AudioOutput is used to generate sound in real-time and output it to the soundcard. Usually, the sound generated by an AudioOutput will be heard through the speakers or headphones attached to a computer. The default parameters for an AudioOutput are STEREO sound, a 1024 sample buffer (ie the size of the left, right, and mix buffers), a sample rate of 44100, and a bit depth of 16. To actually generate sound with an AudioOutput you need to patch at least one sound generating UGen to it, such as an Oscil.

Using setOutputMixer you can also create AudioOutputs that send sound to specific output channels of a soundcard.

Syntax
getLineOut();
getLineOut(type);
getLineOut(type, bufferSize);
getLineOut(type, bufferSize, sampleRate);
getLineOut(type, bufferSize, sampleRate, bitDepth);
Parameters
type   Minim.MONO or Minim.STEREO
bufferSize   int: how long you want the AudioOutput's sample buffer to be (ie the size of the left, right, and mix buffers)
sampleRate   float: the desired sample rate in Hertz (typically 44100)
bitDepth   int: the desired bit depth (typically 16)
Returns an AudioOutput that can be used to generate audio
Usage Web & Application
Related AudioOutput
UGen