creating a max patch that mimics the hc-tt would definitely be fun.
and it sounds like it could be simple enough for a max newbie like me to get their hands dirty.
Seems like this would make a great Arc/Max patch. Load a sample into a buffer~. Use peek~ to read from the buffer.
Knob 1: Control position in the buffer. (Convert Arc range to 0.0 - 1.0. Multiply by the number of samples in the buffer)
Knob 2: Start Point
Knob 3: End Point
Knob 4: Friction?
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.
i like the sound of what you’re describing here, @Rodrigo
will try to spend some time with this on the weekend.
it probably makes sense to build this in stages:
use your posted patch as a starting point to create 4 simple tape players
add friction parameter to the 4 players
add your tape simulation per each of the players once available
bonus feature: add possibility to insert a vst plugin per player incl. wet/dry mix
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.
New update pushed to Github. I glued the BEAP audio recorder onto the end of the signal path. Ended up spending the last half hour recording awesome loops.
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)
Changes:
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.