FLASH LED'S (3 / 3 steg)
Steg 3: Kodning:-
/**
* Denna skiss visar hur du använder objektet BeatDetect jag
import processing.serial.*; import ddf.minim.*; import ddf.minim.analysis.*; import cc.arduino.*;
Minim minim; AudioPlayer låten; BeatDetect slå; BeatListener bl; Arduino arduino;
int ledPin = 12;
LED är ansluten till digital stift 12
int ledPin2 = 8;
LED är ansluten till digital stift 1
int ledPin3 = 2;
LED är ansluten till digital pin 0
float kickSize, snareSize, hatSize;
void setup() {
storlek (512, 200, P3D); Minim = nya Minim(this);
Arduino = nya Arduino (denna, Arduino.list() [1], 57600);
Låt = minim.loadFile ("freebird.mp3", 2048);
Song.Play(); ett beat upptäckt objekt som är FREQ_ENERGY läge som / / förväntar sig buffertar längden på låtens buffertstorlek / / och prover tagna på låtars samplingsfrekvens
slå = nya BeatDetect(song.bufferSize(), song.sampleRate()); ställa in känsligheten till 300 millisekunder / / efter ett beat har upptäckts, algoritmen väntar på 300 millisekunder / / innan du tillåter en annan beat rapporteras. Du kan använda detta för att dämpa den / / algoritm om det ger för många falskt positiva resultat. Standardvärdet är 10, / / som är i grunden ingen dämpning. Om du försöker ställa in känsligheten till ett negativt värde, / / ett fel rapporteras och det kommer att sättas till 10 istället.
beat.setSensitivity(100);
kickSize = snareSize = hatSize = 16.
göra en ny beat lyssnare, så att vi inte missar någon buffertar för analys
bl = nya BeatListener (beat, sång); 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); / / Ställ lampan på kickSize = 32.} if(beat.isSnare()) {arduino.digitalWrite (ledPin2, Arduino.HIGH); / / Ställ lampan på snareSize = 32.} if(beat.isHat()) {arduino.digitalWrite (ledPin3, Arduino.HIGH); / / Ställ lampan på hatSize = 32.} arduino.digitalWrite (ledPin, Arduino.LOW); Set LED av arduino.digitalWrite (ledPin2, Arduino.LOW); iväg för LED
arduino.digitalWrite (ledPin3, Arduino.LOW); Set LED av textSize(kickSize);
text ("KICK", bredd/4, höjd/2);
textSize(snareSize);
text ("Virvel", bredd/2, höjd/2); textSize(hatSize); text ("Hatt", 3 * bredd/4, höjd/2); kickSize = begränsa (kickSize * 0,95, 16, 32); snareSize = begränsa (snareSize * 0,95, 16, 32); hatSize = begränsa (hatSize * 0,95, 16, 32); }
void stop() {
alltid stänga Minim ljud klasser när du är klar med dem.
Song.Close(); alltid stoppa Minim innan spännande
Minim.stop(); Detta stänger skiss super.stop(); }