/**
* This sketch demonstrates how to use the loadSnippet method of Minim. The loadSnippet
* method allows you to specify the file you want to load with a String. Unlike with loadFile
* and loadSample, you are not able to specify a buffer size because an AudioSnippet doesn't
* give you access to the samples as they are played.
*
* Minim is able to load wav files, au files, aif files, snd files, and mp3
* files. When you call loadSnippet, if you just specify the filename it will try to load the file from
* the data folder of your sketch. However, you can also specify an absolute path (such as "C:\foo\bar\thing.wav") and
* the file will be loaded from that location (keep in mind that won't work from an applet). You can also specify a
* URL (such as "http://www.mysite.com/mp3/song.mp3") but keep in mind that if you run the sketch as an applet you
* may run in to security restrictions if the applet is not on the same domain as the file you want to load. You can
* get around the restriction by signing the applet.
*
* AudioSnippet is a simple wrapper around a JavaSound Clip
* (It isn't called AudioClip because that's an interface defined in the package java.applet).
* It provides almost the exact same functionality, the main difference being that length, position, and cue are
* expressed in milliseconds instead of microseconds. One of the limitations of AudioSnippet is
* that you do not have access to the audio samples as they are played. However, you are spared all
* of the overhead associated with making samples available. An AudioSnippet is a good choice
* if all you need to do is play a short sound at some point. If your aim is to repeatedly trigger a sound, you
* should use an AudioSample instead.
*
* Before you exit your sketch make sure you call the close
* method of any AudioSnippet's you have received from loadSnippet.
*/
import ddf.minim.*;
Minim minim;
AudioSnippet snip;
void setup()
{
size(512, 200, P3D);
minim = new Minim(this);
snip = minim.loadSnippet("groove.mp3");
// play the file
snip.play();
}
void draw()
{
background(0);
// there are no waveforms to draw
}
void stop()
{
// always close Minim audio classes when you are done with them
snip.close();
// always stop Minim before exiting
minim.stop();
super.stop();
}