fundamentals of programming

12
FUNDAMENTALS OF PROGRAMMING SM1204 SEMESTER A 2012

Upload: merton

Post on 22-Feb-2016

25 views

Category:

Documents


0 download

DESCRIPTION

Fundamentals of Programming. SM1204 Semester A 2012. Due date 21 Dec 2012 Collection via ACS. Assignment 3. Requirements. Create your own music visualization (20%) Select your audio / music Design your visualization Use of Minim audio library (30%) Program complexity (20%) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Fundamentals of Programming

FUNDAMENTALSOF PROGRAMMINGSM1204 SEMESTER A 2012

Page 2: Fundamentals of Programming

ASSIGNMENT 3DUE DATE 21 DEC 2012COLLECTION VIA ACS

Page 3: Fundamentals of Programming

REQUIREMENTSoCreate your own music visualization (20%)oSelect your audio / musicoDesign your visualization

oUse of Minim audio library (30%)

oProgram complexity (20%)

oCreative graphics (30%)

Page 4: Fundamentals of Programming

EXAMPLEhttp://www.youtube.com/watch?v=KW5D9IVfb1k&feature=related

Page 5: Fundamentals of Programming

EXAMPLEhttp://www.youtube.com/watch?v=1JkN3Uwgqi4&feature=related

Page 6: Fundamentals of Programming

EXAMPLEhttp://www.youtube.com/watch?v=0AVyhytUy7k&feature=related

Page 7: Fundamentals of Programming

SAMPLE PROGRAM

Page 8: Fundamentals of Programming

SAMPLE PROGRAM

Import libraryDefine player and beat detector objects

import ddf.minim.*;import ddf.minim.analysis.*;

Minim minim;AudioPlayer player;BeatDetect beat;int n = 5;float[][] a = new float[n][n];

Page 9: Fundamentals of Programming

SAMPLE PROGRAMCreate objects & Initialize array elementsvoid setup() { size(400, 400); minim = new Minim(this); player = minim.loadFile("test2.mp3"); beat = new BeatDetect( player.bufferSize(), player.sampleRate() ); player.play();

// initialize item size for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { a[i][j] = 40; } }}

Page 10: Fundamentals of Programming

SAMPLE PROGRAMBeat detection and renderingvoid draw() { beat.detect(player.mix); background(0);

strokeWeight(4); for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { // enlarge corresponding circle if onset if (beat.isOnset(i*5+j)) { a[i][j] = 80; }

float s = a[i][j]; float c = map(s, 40, 80, 200, 255); noFill(); stroke(c); ellipse(i*80+40, j*80+40, s, s); fill(c); noStroke(); ellipse(i*80+40, j*80+40, s / 2, s / 2); // decrease circle sizes if (a[i][j] > 40) { a[i][j] *= 0.95; } } }}

Page 11: Fundamentals of Programming

SAMPLE PROGRAM

Do not forget to add the stop( ) function

void stop() { player.close(); minim.stop(); super.stop();}

Page 12: Fundamentals of Programming

USEFUL FUNCTIONS & REFERENCESomap (value, low1, high1, low2, high2)oRe-maps a number from one range to another

oconstrain(value, min, max)oConstrains a value to not exceed a maximum and

minimum value.

oabs(value)oCalculates the absolute value (always position) of a

number.