Quantcast
Channel: EngineerZone: Message List
Viewing all articles
Browse latest Browse all 22030

Re: Discrimination, BPM and SPL for ADAU1761

$
0
0

     Hello Paul,

 

     The ADAU1761's toolbox includes a Voice Activity Detector (VAD).  If you haven't already tried it, perhaps you could press this into service as your beat detector.  Its description is at Voice Activity Detector [Analog Devices Wiki]  I don't have -1761 hardware to try this out, however I did test a similar idea on the ADAU1701.  This chip has no VAD in its toolbox so I made my own some time ago (see VAD for ADAU170x ).  I tried a modified version as a beat detector, the signal flow appears below:

Beat-detector-sch_pic.png

     With a music signal applied, the circuit blinks a LED on the ADAU1701MINIZ board at peaks in the music.  You could instead route this signal to a microcontroller's digital input pin and run an algorithm to figure average beats/min.  Music with an obvious disco-like beat (such as Rod Stewart's Forever Young) blinks the LED fairly reliably, less so with a more subtle beat.

 

     The SPL meter is relatively easy to do, simply filter the audio for the A-curve, a roughly approximate filter is shown above.  Then use a dynamic envelope follower (with slow or fast dynamics as you choose) to drive a readback block, which your microcontroller can read via I2C and interpret as dB SPL.  This should work fine within a reasonable dynamic range (such as 60 dB).  For quiet music, you could set your mic gain (etc) for a SPL range of 40 to 100.  If instead you're in a "live club music" situation, of course you'll need to calibrate it for a much higher range (for example, 70 to 130 dB).

 

     Be aware that smartphone beat counting and SPL apps are readily available -- depending on your application this may squeeze the economic viability of building a self-contained unit.

 

     Best regards,

 

     Bob


Viewing all articles
Browse latest Browse all 22030

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>