Capstarc: Hc-tt for arc4

Continuing the discussion from FS (US) hc-tt (sold):

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.

@trickyflemming’s suggested approach:

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?

4 Likes

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.


----------begin_max5_patcher----------
1364.3ocyYkzjahCE9r8uBJp4XOtPfAamays4+PpTtDfLVIBIFIQujTo+sOZ
gUavF6l3jCMz98zx688Vk3GKW3FydEIbc9jymcVr3GKWrvPRSXQ0uW3lCeMg
.Elg4dfvnk4tOYYcfwygRMinJJJlXJAIMiFTQr.JSNhoY64nDoc2B2sx6IGv
1M5Wgd5m99q7b9R65vJk0KjeyBwg4HIhuGQgwDjlmWEObpQ.Ywe8uAqqEP6Z
Heq.Y2VW2mbbigzL2lcRHeytPttZB+b4R8imlHdjiDBXFpd+jnWMJnKGUPfI
Mz6AK9iCKf0Aq1rMbiWjBOB.q1DNAzAL.B3ONBLSZN56ovj2uUEzZ2WCBLuB
qeNhlMfsswz9wjdJ5E0pclYqvgvfost2To.+cyt.T3+P5p2ELldF8Kv2plA2
gYbSWQgp78Mr9GNFRtMCbWoDwq.lJjQs5XB5YDWfYzNRxBWXQQGxK5LEMb9U
lYg17TCIL0RxugDG8Ltd9gMTgbEVIU.UI2JeutMxscYXoHNsDaDEKQkgcY8B
VCuVXMxlHYMvft.uV3U4BjQXIeCk1wNovqBDESK3HAhJgxJYqgcJ5.rjH2Or
suO+C5H7wl7fVqEtYbbJipEhdHslb81o7bLpFHrqxXFAEVLvjUtJJTYDlBkR
VJhgbsgnJmYs8wUxXj9rZlGAcPVwt.SomfhRVw3L43riWXtwLEy7Ks1FNh8k
TK28pvV4dA749nsDRHUww8W9WgTrptDRhsl.euFl15FGEIbFgzSesbdd.NoJ
e3DzK3T4QyF00YPMbbQsSjaiUNEmgDx9zjvLQeJmEepHUFWEitWhxU0PjmLf
dUr6FP1MiWO5WrhU+zeDFqvAzk0HgAikxerTgAlvynssIBAa63bOZxvQqre4
jhWIw3P0OVTWCoJcycht8pqbJ3BSMsdbGvKXJvafuAjssK3cOv6GAc60U0uP
D1twteHjBDDY.ov5mW.p7FwSLxcXUsC0DVdtpHynPPaxcBlNVTsQIz7GFaDr
RdRsMnxF5zWeTYojXZSotO2FJcx.OhSSQzSU5TrPmYzlidRFxaUjASVlilIY
14KK61Vgqt1R5dacz8PojiiKkVKR29jto78plOhgjpr4MARWJ4eaEhksx67z
XKLV79szV6UO5VUWsAat8tZWGbGc0JvYTE6Y5vKifRLJpfQPuqSe57ue+V.r
qdlG+cAq7UGmC3EcGGDX2ucHarS59W.kJMuHU0Aeq5o+1.psy0IllOuJclv2
mWDJBrRAPAQS7dS5BPg2umzLe2Ii.WX5A16NpPwYJeEXWX6cpTGD5es7V6NG
5tGWqCpt9jZfifEl2MDlx+n+Cqaf3WJfGWd3.hOqPd2qwx5qtAb69p9eD.+A
3olwYrmQ2LvEb0ZqQ1tT8tm36OT38EJYbacJECE3DYIEqMBexY85lyLePc7Z
1K1lizGwk06v6laTlJSXbMnb5kynOeJhlZEay4bbyEtcZiVwWHgb4niPe2RV
mds.1z4EiiyTsaRHHZl8T90yVhS9V2EndjMhNvuyEBTbDJPWZ5EXkMeDs6+J
gDr7sADO8EYHjbjZtUKdSCrc7lM6R+iRXctOse7JW7qzG9X8fus2fNq+6y68
9rfsIKO9SPd7eXhitu0qCOONzYBRi1fB9iRZdLXi1GMZBVJ+KHMILh81rqhk
ae.5jPNGmVvT0nqB472FsxupxWfpAVSyFgglt0L+rUnlMk0umQdXk8AFztaJ
dBAON4Y6ThZCuh7zwY.LtyvLJ0a9yJWS3TDmc2o7XKbcxGaRKJm7QlN4CLc9
GWZ7OrzoeTI0N+yk+O7zp7m.
-----------end_max5_patcher-----------
1 Like

[quote=“myecholalia, post:1, topic:4836”]
and it sounds like it could be simple enough for a max newbie like me
[/quote]that makes two of us

I’m going to watch how this develops and see if i can learn from ya’ll

2 Likes

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.

8 Likes

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
2 Likes

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).

EDIT: Github link: https://github.com/mhetrick/capstarc

3 Likes

13 Likes

Idea to first code in less than 24hrs?!?! Great work!

3 Likes

exactly why this place is the best

i wanna see demos but if it works the way i’m thinking then arc 4 just got 1000 times sexier

4 Likes

wowowo! looks great :slight_smile:

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.

7 Likes

Just got my Arc back today. I’m going to sit down tonight and fix the friction behavior. It works fine for a hack, but it could be a whole lot better!

4 Likes

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.

3 Likes

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.

8 Likes

(I want to sit down and have a play with this, but been knee deep in moving house shit which is occupying more time and headspace than I want…)

2 Likes

Any video/audio online to whet appetites? :relaxed:

1 Like

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.

1 Like

¡man, that looks great :slight_smile:

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.

arcTape.maxpat (328.3 KB)

7 Likes