Minim |
|
Noise Fields Methods
channelCount ( ) |
A UGen that can generate White, Pink, or Red/Brown noise.
Constructors Constructor for white noise. By default, the amplitude will be 1 and the tint will be WHITE. Noise() Constructor for white noise of the specified amplitude. Noise(float amplitude) Constructor for noise of the specified tint with an amplitude of 1.0. Noise(Noise.Tint noiseType) Constructor for noise of a specific tint with a specified amplitude. Noise(float amplitude, Noise.Tint noiseType) Constructor for noise of a specific tint with a specified amplitude and offset. Noise(float amplitude, float offset, Noise.Tint noiseType) Parameters amplitude — float: the amplitude of the noisenoiseType — Noise.Tint: specifies the tint of the noise (Noise.Tint.WHITE, Noise.Tint.PINK, Noise.Tint.RED, Noise.Tint.BROWN) offset — float: the value that should be added to the noise to offset the "center" Related UGenNoise.Tint Example /* noiseExample<br/> is a example of how to use noise in an instrument. It is shows the different types of noise using a slightly interesting bouncing cyan bar. This is also an example of how to connect the visual aspects of Processing and Minim. <p> For more information about Minim and additional features, visit http://code.compartmental.net/minim/ <p> author:Anderson Mills<br/> Anderson Mills's work was supported by numediart (www.numediart.org). */ // import everything necessary to make sound. import ddf.minim.*; import ddf.minim.ugens.*; // create all of the variables that will need to be accessed in // more than one methods (setup(), draw(), stop()). Minim minim; AudioOutput out; // just plays a burst of noise of the specified tint and amplitude class NoiseInstrument implements Instrument { // create all variables that must be used throughout the class Noise myNoise; // constructors for the intsrument NoiseInstrument( float amplitude, Noise.Tint noiseTint ) { // create new instances of any UGen objects as necessary // white noise is used for this instrument myNoise = new Noise( amplitude, noiseTint ); } // every instrument must have a noteOn( float ) method void noteOn( float dur ) { myNoise.patch( out ); } // every instrument must have a noteOff() method void noteOff() { // unpatch the output // this causes the entire instrument to stop calculating sampleframes // which is good when the instrument is no longer generating sound. myNoise.unpatch( out ); } } // used as instruments NoiseInstrument myWhiteNoise, myPinkNoise, myRedNoise; // used for the drawing color noiseColor; int xa; int xDir; int iFlip; // setup is run once at the beginning void setup() { size( 400, 200, P2D ); // initialize the minim and out objects minim = new Minim(this); // the small buffer size of 512 is chosen to minimize delay between the visual and audio // this may cause problems with buffer underruns on slower systems out = minim.getLineOut(Minim.MONO, 512); // define the notes that will be played myWhiteNoise = new NoiseInstrument( 0.5, Noise.Tint.WHITE ); myPinkNoise = new NoiseInstrument( 0.5, Noise.Tint.PINK ); myRedNoise = new NoiseInstrument( 0.5, Noise.Tint.RED ); // define some variables for making the drawing xa = 10; xDir = 1; iFlip = 0; noiseColor = color( 255, 255, 255 ); } // draw is run many times void draw() { // erase the window to black background(0); // move the bouncing line along one step xa = xa + xDir*4; // if the line is at the right border, make a noise and go left if ( xa > width-1 ) { xDir = -1; // if the iFlip flag is zero make white noise if ( 0 == iFlip ) { out.playNote( 0, 1.5, myWhiteNoise ); noiseColor = color( 255, 255, 255 ); // otherwise make the iFlip flag red noise } else { out.playNote( 0, 1.5, myRedNoise ); noiseColor = color( 255, 0, 0 ); } // flip the value of the iFlip flag iFlip = 1 - iFlip; } // if the line is at the left border, make a noise and go right if ( xa < 1 ) { xDir = 1; out.playNote( 0, 1.5, myPinkNoise ); noiseColor = color( 255, 128, 128 ); } // color the drawing the same as the noise tint stroke( noiseColor ); for(int i = 0; i < out.bufferSize() - 1; i++) { float x1 = map(i, 0, out.bufferSize(), 0, width); float x2 = map(i+1, 0, out.bufferSize(), 0, width); line(x1, 50 + out.left.get(i)*50, x2, 50 + out.left.get(i+1)*50); line(x1, 150 + out.right.get(i)*50, x2, 150 + out.right.get(i+1)*50); } // make the cyan bouncing line and it's inverse stroke( 0, 255, 255 ); line( xa, 0, xa, 100 ); line( width-xa, 100, width-xa, 200 ); } Usage Web & Application |