Has anyone figured out a way to do BPM/Tempo detection of loops in Reaktor?

13»

Comments

  • ANDREW221231
    ANDREW221231 Member Posts: 298 Advisor

    yeah... it drives me a bit mad thinking about it because just tapping along is so simple but we don't have a sufficiency way to conceptualize that


    one time with bandpass filters, i tried bandpass filtering a foruier transform with extremely low cutoff and and then re-synthesizing it. that was promising, but, of course, it doing this correctly relied on the precise tuning of the bandpass . i do have some ideas, that involve multiband as you say but its not near mature yet


    in the end you need it to sync up, but you can't sinc to something you also want to ignore. i mean you can but it gets jenky


    @Michael O'Hagan think the real way is to prefilter the hell out of it like it was a wavetable, (but like everything over 10 or 20 hz) then sample it at like a hundred times normal speed exactly like you were using it as a wavetable and then just use zero crossing detection on whatever you get. that's the only reliable way i can see to get the lowest frequency out, in your case you would either detect the fundamental or its 'second harmonic' if it was at double speed


    its is pretty much the same thing colin said but without having to hack a fourier transform. it you make it go fast it'll have a pitch, i made sure and looked

  • Studiowaves
    Studiowaves Member Posts: 453 Advisor

    I made a tap tempo. There's really nothing to it. Simply reset a ramp to zero on the start tap button, then have another button next to it to capture the ramps value. Toss that value into an averaging circuit, (low pass filter) and keep tapping. Read the output of the averaging circuit and it'll tell you the tempo. Not directly but it will give you the average value of your tapping. If you can tap in time it will be a more steady value. An example would be a ramp the increments by one on every clock cycle. If your sample rate is 48k and you tap every second the averaging circuit will output 48k. 48k divided by the sample rate gives you a value of one. If will still work at other sample rates as long as you divide the average by the sample rate. So a value of one is 60 BPM. Your tempo. A value of .5 is 120bpm. So the math is simple. Take the reciprocal of the average and multiply it by 60. 1/.5 =2. 2 times 60 is 120. It ain't rocking science. lol

Back To Top