Minim core | ugens | analysis |
Summer Methods channelCount ( ) generate ( ) getLastValues ( ) patch ( ) printInputs ( ) sampleRate ( ) setChannelCount ( ) setSampleRate ( ) tick ( ) unpatch ( ) | A Summer allows you to sum the outputs of multiple UGens to be sent further down the chain. Unlike most UGen effects, you can patch more than one UGen to a Summer. Constructors
    Constructs a Summer that you can patch multiple UGens to.
    Summer()
Related Example
    /**
      * This sketch demonstrates how to patch more than one UGen
      * to a Summer. It works just like patching any other two
      * UGens together, the difference being that a Summer
      * can have more than one UGen patched to it and will
      * output the sum of all signals, whereas most other UGens
      * allow only one input.
      *
      * 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;

    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();

      Summer sum = new Summer();

      // create some Oscils to patch to the Summer
      Oscil wave = new Oscil( Frequency.ofPitch("A4"), 0.3f, Waves.SINE );
      // patch the Oscil to the Summer
      wave.patch( sum );

      wave = new Oscil( Frequency.ofPitch("C#5"), 0.3f, Waves.SINE );
      wave.patch( sum );

      wave = new Oscil( Frequency.ofPitch("E5"), 0.3f, Waves.SINE );
      wave.patch( sum );

      // and the Summer to the output and you should hear a major chord
      sum.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 );
      }
    }
Usage Web & Application