Stap 3: Codering:-
/**
* Deze schets ziet u hoe u het BeatDetect-object gebruikt ik
importeren van processing.serial.*; importeren van ddf.minim.*; importeren van ddf.minim.analysis.*; importeren van cc.arduino.*;
Minim minim; AudioPlayer lied; BeatDetect verslaan; BeatListener bl; Arduino arduino;
int ledPin = 12;
Aangesloten op digital pin 12 LED
int ledPin2 = 8;
Aangesloten op digital pin 1 LED
int ledPin3 = 2;
LED aangesloten op digital pin 0
float-kickSize, snareSize, hatSize;
VOID Setup {}
grootte (512, 200, P3D); Minim = nieuwe Minim(this);
Arduino = nieuwe Arduino (dit, Arduino.list() [1], 57600);
nummer = minim.loadFile ("freebird.mp3", 2048);
Song.Play(); een beat detectie-object dat is FREQ_ENERGY modus die / / verwacht buffers van de lengte van elk nummer de buffergrootte / / en monsters gevangen met nummers van sample rate
Beat = nieuwe BeatDetect(song.bufferSize(), song.sampleRate()); Stel de gevoeligheid op 300 milliseconden / / nadat een beat is geconstateerd, de algoritme zal wachten op 300 milliseconden / / alvorens een andere beat te worden gemeld. U kunt dit aan het temperen van de / / algoritme als is het geven van te veel vals-positieven. De standaardwaarde is 10, / / die in wezen geen demping. Als u probeert de gevoeligheid instellen op een negatieve waarde, / / een fout wordt gemeld en het zal in plaats daarvan worden ingesteld op 10.
beat.setSensitivity(100);
kickSize = snareSize = hatSize = 16;
Maak een nieuwe beat-listener, zodat we niet elke buffers voor de analyse missen
BL = nieuwe BeatListener (beat, lied); textFont (createFont ("Helvetica", 16)); textAlign(CENTER); arduino.pinMode (ledPin, Arduino.OUTPUT); arduino.pinMode (ledPin2, Arduino.OUTPUT); arduino.pinMode (ledPin3, Arduino.OUTPUT); }
VOID draw() {}
Background(0);
Fill(255);
if(Beat.isKick()) {arduino.digitalWrite (ledPin, Arduino.HIGH); / / set de LED op kickSize = 32;} if(beat.isSnare()) {arduino.digitalWrite (ledPin2, Arduino.HIGH); / / set de LED op snareSize = 32;} if(beat.isHat()) {arduino.digitalWrite (ledPin3, Arduino.HIGH); / / set de LED op hatSize = 32;} arduino.digitalWrite (ledPin, Arduino.LOW); instellen van de LED uit arduino.digitalWrite (ledPin2, Arduino.LOW); verrekening van de LED
arduino.digitalWrite (ledPin3, Arduino.LOW); instellen van de LED uit textSize(kickSize);
tekst ("KICK", breedte/4, hoogte/2);
textSize(snareSize);
tekst ("SNARE", breedte/2, hoogte/2); textSize(hatSize); tekst ("Hoed", 3 * breedte/4, hoogte/2); kickSize = beperken (kickSize * 0.95, 16, 32); snareSize = beperken (snareSize * 0.95, 16, 32); hatSize = beperken (hatSize * 0.95, 16, 32); }
VOID stop() {}
Minim audio klassen altijd sluiten als u klaar met hen bent
Song.Close(); Minim altijd te stoppen voordat u afsluit
Minim.stop(); Dit sluit de schets super.stop(); }