Minim core ugens analysis |
||||
Name | noteOn | |||
Examples | /** * This sketch demonstrates how to create synthesized sound with Minim using an AudioOutput and * an Instrument we define. By using the playNote method you can schedule notes to played * at some point in the future, essentially allowing to you create musical scores with code. * Because they are constructed with code, they can be either deterministic or different every time. * This sketch creates a deterministic score, meaning it is the same every time you run the sketch. * <p> * For more complex examples of using playNote check out algorithmicCompExample and compositionExample * in the Synthesis folder. * <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; // to make an Instrument we must define a class // that implements the Instrument interface. class SineInstrument implements Instrument { Oscil wave; Line ampEnv; SineInstrument( float frequency ) { // make a sine wave oscillator // the amplitude is zero because // we are going to patch a Line to it anyway wave = new Oscil( frequency, 0, Waves.SINE ); ampEnv = new Line(); ampEnv.patch( wave.amplitude ); } // this is called by the sequencer when this instrument // should start making sound. the duration is expressed in seconds. void noteOn( float duration ) { // start the amplitude envelope ampEnv.activate( duration, 0.5f, 0 ); // attach the oscil to the output so it makes sound wave.patch( out ); } // this is called by the sequencer when the instrument should // stop making sound void noteOff() { wave.unpatch( 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(); // when providing an Instrument, we always specify start time and duration out.playNote( 0.0, 0.9, new SineInstrument( 97.99 ) ); out.playNote( 1.0, 0.9, new SineInstrument( 123.47 ) ); // we can use the Frequency class to create frequencies from pitch names out.playNote( 2.0, 2.9, new SineInstrument( Frequency.ofPitch( "C3" ).asHz() ) ); out.playNote( 3.0, 1.9, new SineInstrument( Frequency.ofPitch( "E3" ).asHz() ) ); out.playNote( 4.0, 0.9, new SineInstrument( Frequency.ofPitch( "G3" ).asHz() ) ); } 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 ); } } |
|||
Description | Start playing a note. This is called by AudioOutput when this Instrument's note should begin, based on the values passed to playNote. Typically you will patch your UGen chain to your AudioOutput here. | |||
Syntax | noteOn(duration); |
|||
Parameters |
|
|||
Returns | None | |||
Usage | Web & Application | |||
Related | Instrument noteOff ( ) |
|||