Stap 3: Beat detectie, muziek visualisatie, Arduino en Processing
In eerste instantie wilde ik het hoofd te detecteren beats met een microfoon. Helaas, ik had moeite om de die ik had om te functioneren met de Arduino, zodat ik overgeschakeld naar een andere ingangsbron was ik zin om mee te spelen: verwerking. Als een bijkomend voordeel, had ik geen uitfilteren van eventuele omringend lawaai!
Ik gebruikte om te controleren de Arduino van verwerking, Firmata (een generieke bibliotheek voor het beheersen van microcontrollers vanaf een PC). De Firmata-code voor Android en verwerking, en een korte tutorial hier: http://playground.arduino.cc/interfacing/processing.
Verwerking van schepen met de Minim-bibliotheek voor omgaan met audio, en er een voorbeeld was voorzien met behulp van de Fast Fourier Transform (FFT) naar het spectrum analyseren. Ik vond de output moet worden vrij niet-intuïtieve, dus schreef ik een muziek visualizer om te helpen me "zien" de muziek, en probeer te visueel identificeren wanneer een beat had plaatsgevonden.
Ik begon steeds vrij goede resultaten door te zoeken naar grote veranderingen in om het even welk van de FFT "emmers", die ruwweg met octaven corresponderen. Dwz, als een octaaf is al een tijdje op hetzelfde volume (meestal stil), en vervolgens plotseling geluid heeft, gissingen mijn software dat er een beat. Als niet een beat, besteden iets interessant dat je waarschijnlijk aandacht aan!
Als u een kleur, is elke emmer toegewezen een bereik op het kleurenwiel (die langzaam draait met de tijd.) Wanneer de beat gebeurt in een emmer, het Arduino/hoofd is verlicht met de emmer de bijbehorende kleur. Daarnaast is er een vrij snel fall-off zodat elke hartslag binnen een seconde of zo verdwijnt. De kleur van de beat worden verzonden naar de Arduino wordt aangegeven door de horizontale balk aan de onderkant van de visualizer.
Het programma heeft ook enkele opties voor toetsenbordbediening aan te passen van de verticale schaal van de visualizer, de rotatie van de kleur, of de gevoeligheid van de beat detectie.
Ten slotte analyseert de Processing Schets audio uit de standaard Audio-ingang poort van de computer. Het besturingssysteem van de computer bepaalt of dit de microfoon of de ingang van de geluidskaart is. Op mijn Mac gebruikte ik SoundFlower aan van de computer regelmatig audio (zoals vanaf iTunes) doorsturen naar een virtuele poort van de Audio-ingang waardoor ik de systeemstandaard, zodat de Processing Schets kan analyseren. Zeker lastige maar het werkte.