Minim |
|
createSample |
Description Creates an AudioSample using the provided sample data and AudioFormat. When a buffer size is not provided, it defaults to 1024. The buffer size of a sample controls the size of the left, right, and mix AudioBuffer fields of the returned AudioSample.Signature AudioSample createSample(float[] sampleData, AudioFormat format) AudioSample createSample(float[] sampleData, AudioFormat format, int bufferSize) AudioSample createSample(float[] leftSampleData, float[] rightSampleData, AudioFormat format) AudioSample createSample(float[] leftSampleData, float[] rightSampleData, AudioFormat format, int bufferSize) Parameters sampleData — float[]: the single channel of sample dataformat — the AudioFormat describing the sample data bufferSize — int: the output buffer size to use, which controls the size of the left, right, and mix AudioBuffer fields of the returned AudioSample. leftSampleData — float[]: the left channel of the sample data rightSampleData — float[]: the right channel of the sample data Returns an AudioSample that can be triggered to make sound Related AudioSampleExample /** * This sketch demonstrates how to use the <code>createSample</code> method of <code>Minim</code>. * The <code>createSample</code> method allows you to create an <code>AudioSample</code> by provided * either one or two float arrays, which are the sound you want be able to trigger. * <p> * See the loadSample example for more information about <code>AudioSample</code>s. * <p> * Press 't' to trigger the sample. * <p> * For more information about Minim and additional features, visit http://code.compartmental.net/minim/ */ import ddf.minim.*; import ddf.minim.ugens.*; // we must import this package to create an AudioFormat object import javax.sound.sampled.*; Minim minim; AudioSample wave; void setup() { size(512, 200, P3D); minim = new Minim(this); // we'll make a MONO sample, but there is also a version // of createSample that you can pass two float arrays to: // which will be used for the left and right channels // of a stereo sample. float[] samples = new float[1024*8]; float waveFrequency = 220f; float waveSampleRate = 44100f; // generate the sample by using Waves.SINE float lookUp = 0; float lookUpStep = waveFrequency / waveSampleRate; for( int i = 0; i < samples.length; ++i ) { samples[i] = Waves.SINE.value(lookUp); lookUp = (lookUp + lookUpStep) % 1.0f; } // when we create a sample we need to provide an AudioFormat so // the sound will be played back correctly. AudioFormat format = new AudioFormat( waveSampleRate, // sample rate 16, // sample size in bits 1, // channels true, // signed true // bigEndian ); // finally, create the AudioSample wave = minim.createSample( samples, // the samples format, // the format 1024 // the output buffer size ); } void draw() { background(0); stroke(255); // use the mix buffer to draw the waveforms. for (int i = 0; i < wave.bufferSize() - 1; i++) { line(i, 100 - wave.left.get(i)*50, i+1, 100 - wave.left.get(i+1)*50); } } void keyPressed() { if ( key == 't' ) { wave.trigger(); } } Usage Web & Application |