mirror of
https://github.com/processing/processing4.git
synced 2026-02-11 17:40:48 +01:00
44 lines
1.3 KiB
Plaintext
44 lines
1.3 KiB
Plaintext
/**
|
|
* This sketch demonstrates how to play a file with Minim using an AudioPlayer. <br />
|
|
* It's also a good example of how to draw the waveform of the audio.
|
|
*/
|
|
|
|
import ddf.minim.*;
|
|
|
|
Minim minim;
|
|
AudioPlayer player;
|
|
|
|
void setup()
|
|
{
|
|
size(512, 200, P3D);
|
|
|
|
// we pass this to Minim so that it can load files from the data directory
|
|
minim = new Minim(this);
|
|
|
|
// loadFile will look in all the same places as loadImage does.
|
|
// this means you can find files that are in the data folder and the
|
|
// sketch folder. you can also pass an absolute path, or a URL.
|
|
player = minim.loadFile("marcus_kellis_theme.mp3");
|
|
|
|
// play the file
|
|
player.play();
|
|
}
|
|
|
|
void draw()
|
|
{
|
|
background(0);
|
|
stroke(255);
|
|
|
|
// draw the waveforms
|
|
// the values returned by left.get() and right.get() will be between -1 and 1,
|
|
// so we need to scale them up to see the waveform
|
|
// note that if the file is MONO, left.get() and right.get() will return the same value
|
|
for(int i = 0; i < player.bufferSize() - 1; i++)
|
|
{
|
|
float x1 = map( i, 0, player.bufferSize(), 0, width );
|
|
float x2 = map( i+1, 0, player.bufferSize(), 0, width );
|
|
line( x1, 50 + player.left.get(i)*50, x2, 50 + player.left.get(i+1)*50 );
|
|
line( x1, 150 + player.right.get(i)*50, x2, 150 + player.right.get(i+1)*50 );
|
|
}
|
|
}
|