Softcut~

How difficult or different would the process be in porting Softcut to Pure Data?

should be pretty easy

Nice, I’m relatively new to Pure Data, but this may be a good way to learn about creating externals. Sorry to interrupt your thread @Andrew. :slight_smile:

haha - I feel like this would be a decent location to work on the pd external. might make sense to share the repo too. anyway I imagine there’s like 200 max external to pd external guides. I wonder if any part of the cyclone source is useful for this? or were those all manual ports?

i have a c++ template to dig up and then its just replacing the wrapper file

[update]

i added a puredata c++ template here. it’s rough and ready but should help getting started. tested on linux only here but it should be ok on other platforms.

[ https://github.com/catfact/audio-externals/tree/master/pd_cpp_template ]

haven’t worked out tabread~ style table access, never did it before.

(of course there well be better resources out there)

1 Like

anyway just a mega-appreciation post for the max port.

I’ve been experimenting today with feedback loops between multiple voices and downsamplers (which also use the source) and it’s been incredibly beautiful/inspiring/getting me out of a creative block with performance. softcut embodies so much of what I want to express.

11 Likes

Thanks @zebra for the pointer. I’ve been looking over the code as well as this repo: https://github.com/pure-data/externals-howto

So we would need to use these but not the other header files (those seem to be max specific)?

#include "m_pd.h"
#include "src/SoftCutVoice.h"
#include "src/FadeCurves.h"

The format of the Max SDK and Puredata wrappers is very similar, which makes me think I’d be better starting from scratch.

Also, would we keep the src code changes you made for Andrew’s repo?

hey sorry for late response been busy

yes, that is certainly the best resource for actually learing the PD api.

the main reason for me to make that template is just to have a simple makefile with all the right linker invocations for c++ shared lib and no addditional fuss in the build setup

yes

yes. at least some should be upstreamed also. likewise i have some changes in pipeline for norns version that should be propagated down. so it seems well past time for softcut to be factored out into its own repo, built as an external lib with an actual public header and stuff. (realistically, i don’t think i’m gonna get to that this week, but it’s not impossible.)

if things like customizing the xfade shapes is wanted that can be exposed. (bearing in mind that the tricky part is how the xfade applies to rec/pre levels. i made some posts on GH describing the issue, and the compromise i arrived at; the parameters of this scheme (call it “delayed raised-cosine”) are those exposed in FadeCurves etc.

1 Like

Is this possible to use this in M4L on a Mac?

2 Likes

You can build a M4L device with it or use ekphras that andrew also shared :slight_smile:

Nice sounds! Are you using an external input as the source material for softcut, or norns synth engines? Either way, nice work :slight_smile:

piano sample and kalimba for the first two, operator for the second two. anachronism, dirge, and assonance doing the processing. the trick was that the voices feeding back were reading and writing to the same buffer, and passing through dirge repeatedly, which gets weird.

2 Likes

I’m getting the Error 126 when trying to load the windows versions. some looking around seems to suggest a dll i’m missing.

paging @taubaland for this, as I’ve not yet messed with windows myself

Hi @zaqwithaq,

As far as I can tell, the reason it isn’t working for you is a lack of a Microsoft VS Redistributable.

Try installing from here:

https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

Hey,

Just checking if this worked? Not sure if I need to look into to the Windows version more!

If anyone can chime in with if they have the Windows version working apart from me?

Just coming into this (after interviewing Andrew…). It’s been a minute since I messed with softcut on the norns, and I’d like to try this in Max. I got a good compile using the 8.0.3 SDK, but the test patch doesn’t do much for me.

What’s a good step-by-step testing procedure to figure out if I’ve got it? It just might be that I don’t know (or can’t remember) what I’m supposed to do…

[ddg]

1 Like

the compiled binaries are under releases if you want to try that first ! there are a couple things that need to be initialized to get it going - I think they’re in the help patcher but it’s been a sec

Ekphras might be a better test/reference than the help patcher, it’s literally just all the ins/outs plugged into a m4l device

Yeah, man - that helps. Interesting to see the softcut parameters laid out like that…

[ddg]

tiny update: PR’d a phase poll message (get_position) and a data outlet to go with it. will test further via new app but it probably works ! !

4 Likes