It would be relatively easy to make, and using groove~ would make things quite simple as well.
Here’s a bit of a patch I built for something else that lets you essentially ‘scratch’ through a buffer (speed of 0 = stop, speed of 1 = normal playback, speed of -1 = reverse).
So all you’d need is a friction type parameter to slowly reset it back to zero when not being touched, and you’re good to go.
You wouldn’t need control over start/end (unless you specifically wanted to), but taking the tape paradigm, all you have control of is moving the playhead forwards or backwards from where it currently is. So you could have four hc-tts going at once with an arc4.
Unless someone has done it by then, I’ll probably do this as my first arc4 app (when I finally manage to get one), using a bunch of the tape emulation stuff I’ve been building for TPV2.
My original idea for The Chocolate Grinder was to have a CD mode, a tape mode, a vinyl mode etc…, but I only built the CD mode. With what I know how it would be quite easy to make, even with the extra saturation/noise/emulation components.
Okay, here’s a fun starting point. I took Rodrigo’s recommendation for using groove~:
EDIT: dropbox link removed, see github link.
-Friction hasn’t been implemented yet, so knob 1 just kind of sets a playback speed.
-Start/Length precision could be tweaked.
-You need to wiggle the Length knob after loading to get the start/end indicators to appear correctly (and playback to work properly).
Thanks! Just pushed an update with extremely rudimentary friction. I don’t have access to my Arc again until late next week, so I haven’t tested how well it works from the controller. The speed box on the interface can be set manually by the mouse. If you set it that way, it ignores friction.
When I get my Arc back, I’ll tweak the start and length reactions to feel nicer. In the meantime, feel free to copy this code for your own projects and/or send in pull requests.
I was thinking about this some on the bikeride to work, so I’ll start putting together something for this as well. I’m mainly picturing something that works along the lines of the hc-tt, so nothing happens when you’re not touching the knobs, so like “tape turntables”. But then also adding control for ramp up/down times, so with that you can ‘spin’ them and leave them going for a bit while they drift down.
And for the LEDs I’m picturing using the little spindle thing from the tag innards (whatever it’s called!) and having that mirror the speed of playback.
Pushed an update to Github today…
-Friction is improved, but not variable yet. 0 = no friction. >0 = yes friction. I need to improve the function, but it definitely feels a lot nicer.
-Added a “Stretch/Tape” switch. Stretch mode disables pitch changes. Pretty fun, bizarre effect for this performance control set.
I’d love to, but I don’t have a good workflow for doing so. It would be cell-phone shaky cam, unfortunately. When I get a chance to finalize the friction behavior, I’ll try to put something together then.
Ok, downloaded it and had a quick play. I’ve made some modifications/tweaks/additions, in a quick/hacky way.
(I wasn’t able to get my old arc to connect on my mac mini, so I’ve not tested it with the arc, or messed with any of the led stuff)
Added tape saturation and compression from TPV2 modes
Added random dips in volume and random filtering (also from TPV2)
Added wow/flutter to general speed playback
Swapped BEAP record for plain sfrecord~ (that pop up thing was killing me!)
Added signal rate smoothing to all playback speed (super important, as it otherwise sounds steppy (you were smoothing with regular line 0. before instead of line~) (smoothing is from Cut Glove where the overall smoothing comes from the controller input, so the slower you move, the slower the smoothing, the faster you move, the faster the smoothing))
Rejigged how ‘friction’ works. Rather than it being the general smoothing, it’s instead the amount of time before the playhead comes back to rest. So kind of an inertial ‘stop’. I want to implement this better, but this kind of works how I imagined.
I was sketching some stuff the other day on how to handle the LEDs too, but haven’t figured it out quite yet (basically imitating the tape wheel cogs, and then spinning/interpolating that).
So yeah, have a tinker with this to see what you think.