Advanced tap tempo :)

Hi, by a funny coincidence I’ve just finished working under my tap tempo today. It has step sequencer with a few built-in presets for it. “Restart” button restarts sequencer from the first step. Just place a null after a tap tempo container and you will get a timed pulse to use wherever you need :wink:
If you spot any bugs please tell me.

upd: I’ve found a small bug, go inside the component and on the node trigger1 change Attack Length parameter to be 0.1 instead of 0.01. It will cause tap tempo to not skip pulses when the frame rate goes low.

tap_tempo.tox (8.46 KB)

1 Like

Wow dude! This thing looks awesome. Great work. Thank you for sharing.

Thanks a lot!

Thanks so much for this nice little tool :slight_smile:
I tried a few times and never got something this simple and efficient

Here is a version with smaller interface and Attack_Length corrected to 0.1
2015-08-03 10_47_20-_PHISH_2015_MASTER_tap_tempo_container2.png

Thanks again :slight_smile:
Phil
tap_tempo_v2.tox (8.74 KB)

3 Likes

Nice, glad you’ve liked it!)

Thanks Devy!

Hey I’m looking around your tool and I noticed a couple issues.

The speed1 chop that times each of your tap is clamping at 1. This means you can’t reach a bpm lower than 60 because it stops counting time at 1.

Also, when you begin tapping again, it will initially send that. So instead of adjusting your tempo, you throw in an unrelated 1 in the mix, most likely resulting in a dramatic tempo loss.

The fix is easy though. The first tap should be ignored, that way you don’t count the time elapsed between the last time you used the tool and the first tap you just did.

So I raised the clamp on speed1 to 5 and I use this value to skip an incoming tap while speed is equal to 5. This first tap gets skipped but it reset the speed1 CHOP in the process, ready to account for the next tap.

Edit: I just noticed that if I try to use tap while nothing “fetches” the speed1 value. (like if I’m in presentation mode) Every values recorded by the taps will be 0.2 Giving me a bpm of 300. This is weird. Considering this action still interacts with TD’s behavior shouldn’t it be accurate?

Edit2: I know this is related to the changes I did to your .tox.

Edit3: Avoiding to use a speed fixes the issue. I’ve attached my TOX to this post. It’s just the tap tempo segment changing the tempo of TD.
jbl.tap_tempo.tox (2.85 KB)

1 Like

it happens because the speed chop values are referenced in chopexec above, so there’s no direct link between speed1 and anything in the network. That’s why when you stop looking at it it stops cooking. To avoid that just use null chop after speed1 with cooking set to always.

Ah. I assumed something like this because of how TD only “pulls” the data it needs but I didn’t know the exact source. Thanks for the null trick.

Hey, I found this thread hoping to incorporate the tap tempo. However, after downloading the patch does change the tempo of Touch… am I missing something?
Shouldn’t this chop execute script change Touch’s tempo to the tapped tempo?

def valueChange(channel, sampleIndex, val, prev):
op(‘local/time’).par.tempo = round(val, 1)