/** * "Load Sample" * by Damien Di Fede. * remixed by Tom Wayne. * * * * * * * * * * * * * * * * * * * Press 'd' for Definitely. * Press 'k' for Kazuaki One Two Three. * Press 't' for Ten Little BOB Groupies. * Press 'w' for Winnie. * Press 's' for Super-Mega-Very Special, Ultra Extra Ordinary Tom. * Press 'b' for Brand New Song. * Press 'a' for Such A Much Better Place. * Press 'i' for The Idea Is Good, But The World Is Not Ready Yet. * Press 'n' for Nobody Told. * Press 'c' for Tomorrow, When The Sun Comes Down * Press 'h' for The Closing Song. * Press them all together, again and again, faster and faster. BOB */ import ddf.minim.*; Minim minim; AudioSample kick; AudioSample kick2; AudioSample kick3; AudioSample kick4; AudioSample kick5; AudioSample kick6; AudioSample kick7; AudioSample kick8; AudioSample kick9; AudioSample kick10; AudioSample kick11; void setup() { size(512, 200, P2D); // always start Minim before you do anything with it minim = new Minim(this); // load BD.mp3 from the data folder with a 1024 sample buffer // kick = Minim.loadSample("BD.mp3"); // load BD.mp3 from the data folder, with a 512 sample buffer kick = minim.loadSample("01_definitely_tomcut.mp3", 2048); kick2 = minim.loadSample("02_Kazuaki 123_tomcut.mp3", 2048); kick3 = minim.loadSample("03_Ten Little BOB Groupies_tomcut.mp3", 2048); kick4 = minim.loadSample("04_Winnie_tomcut.mp3", 2048); kick5 = minim.loadSample("05_Super-Mega-Very Special, Ultra Extra Ordinary Tom_tomcut.mp3", 2048); kick6 = minim.loadSample("06_BrandNewSong_tomcut.mp3", 2048); kick7 = minim.loadSample("07_SuchAMuchBetterPlace_tomcut.mp3", 2048); kick8 = minim.loadSample("08_The Idea Is Good, But The World Is Not Ready Yet_tomcut.mp3", 2048); kick9 = minim.loadSample("09_NobodyTold_tomcut.mp3", 2048); kick10 = minim.loadSample("10_Tomorrow, when the sun comes down_tomcut.mp3", 2048); kick11 = minim.loadSample("11_TheClosingSong_tomcut.mp3", 2048); } void draw() { background(0); stroke(255); // use the mix buffer to draw the waveforms. // because these are MONO files, we could have used the left or right buffers and got the same data for (int i = 0; i < kick.bufferSize() - 1; i++) { line(i, 100 - kick.left.get(i)*50, i+1, 100 - kick.left.get(i+1)*50); } for (int j = 0; j < kick2.bufferSize() - 1; j++) { line(j, 100 - kick2.left.get(j)*50, j+1, 100 - kick2.left.get(j+1)*50); } for (int j = 0; j < kick3.bufferSize() - 1; j++) { line(j, 100 - kick3.left.get(j)*50, j+1, 100 - kick3.left.get(j+1)*50); } for (int j = 0; j < kick4.bufferSize() - 1; j++) { line(j, 100 - kick4.left.get(j)*50, j+1, 100 - kick4.left.get(j+1)*50); } for (int j = 0; j < kick5.bufferSize() - 1; j++) { line(j, 100 - kick5.left.get(j)*50, j+1, 100 - kick5.left.get(j+1)*50); } for (int j = 0; j < kick6.bufferSize() - 1; j++) { line(j, 100 - kick6.left.get(j)*50, j+1, 100 - kick6.left.get(j+1)*50); } for (int j = 0; j < kick7.bufferSize() - 1; j++) { line(j, 100 - kick7.left.get(j)*50, j+1, 100 - kick7.left.get(j+1)*50); } for (int j = 0; j < kick8.bufferSize() - 1; j++) { line(j, 100 - kick8.left.get(j)*50, j+1, 100 - kick8.left.get(j+1)*50); } for (int j = 0; j < kick9.bufferSize() - 1; j++) { line(j, 100 - kick9.left.get(j)*50, j+1, 100 - kick9.left.get(j+1)*50); } for (int j = 0; j < kick10.bufferSize() - 1; j++) { line(j, 100 - kick10.left.get(j)*50, j+1, 100 - kick10.left.get(j+1)*50); } for (int j = 0; j < kick11.bufferSize() - 1; j++) { line(j, 100 - kick11.left.get(j)*50, j+1, 100 - kick11.left.get(j+1)*50); } } void keyPressed() { if ( key == 'd' ) kick.trigger(); if ( key == 'k' ) kick2.trigger(); if ( key == 't' ) kick3.trigger(); if ( key == 'w' ) kick4.trigger(); if ( key == 's' ) kick5.trigger(); if ( key == 'b' ) kick6.trigger(); if ( key == 'a' ) kick7.trigger(); if ( key == 'i' ) kick8.trigger(); if ( key == 'n' ) kick9.trigger(); if ( key == 'c' ) kick10.trigger(); if ( key == 'h' ) kick11.trigger(); } void stop() { // always close Minim audio classes when you are done with them kick.close(); kick2.close(); kick3.close(); kick4.close(); kick5.close(); kick6.close(); kick7.close(); kick8.close(); kick9.close(); kick10.close(); kick11.close(); minim.stop(); super.stop(); }