waveformonset-detection

adding "audible ticks" to a waveform for onset detection debugging


I'm playing around with some onset/beat detection algorithms on my own. My input is a .wav file and my output is a .wav file; I have access to the entire waveform in chunks of float[] arrays.

I'm having trouble coming up with a good way to debug and evaluate my algorithms. Since my input and output are both auditory, I thought it'd make the most sense if my debugging facility was also auditory, eg. by means of adding audible "ticks" or "beeps" to the .wav file at onset points.

Does anyone have any ideas on how to do this? Ideally, it would be a simple for-loop that I'd run a couple hundred or couple thousand samples through.


Solution

  • float * sample = first sample where beep is to be mixed in
    float const beep_duration = desired beep duration in seconds
    float const sample_rate = sampling rate in samples per second
    float const frequency = desired beep frequency, Hz
    float const PI = 3.1415926..
    float const volume = desired beep volume
    for( int index = 0; index < (int)(beep_duration * sample_rate); index++ )
    {
       sample[index] += 
          sin( float(index) * 2.f * PI * sample_rate / frequency ) * volume;
    }