a little saturation abstraction with an example patch. works fine for me, although i'm not really sure, what i've done there!
Works pretty well. A while back I made a nonlinear compressor (saturator) external for pd. It uses polynomial functions to generate the nonlinear component.
Like a compressor time is also a variable
wow, i don't have a clue about c, but i'd really like to - looks amazing, so many lines of code!
a question: how can i add the external to pd?
i just use pd for some weeks (although i've been interested for a whole while before), and i never added a new external to it....
are you running Linux, Mac or Windows?
most of the time on win, but would be good to know how it works on linux too....
ok, it should be here build/winxp-pd-0.4.03/saturator.dll
You need to copy that and help-saturator~.pd to your PD's path. If you have PD-Extended you should automatically have on in your user's folder
Then you have to add "saturator" to your startup in order to load the classes. You can do this manually by creating a [saturator] object. If everything works properly you should see this in PD's console:
saturator: saturator~, saturator_vu~, saturator_thresh~
For linux you have to build it. You can do this by running the command "make" in the unzipped folder. Then copy saturator.pd_linux to PD's path and at it to the startup.
ok, but how do i add something to the startup? i know, there is a startup entry in the file-menu, but when i'm there, it asks me for a new startup-"command".... what do i have to enter there? the path to the dll?
sorry, i have no idea...
That's it. You click on "new" and then type in "saturator"
What startup does is load an object of that name. It's no different than opening a new patch and creating a [saturator] object.
thnx! that works! however, the help patch commits error messages when tweaking attacktime... but i only had a short view to it, so, i'll get deeper into it when i've got more time - but looks pretty cool!
how long did it take you, to code that thing? i tried to get into c some months ago, but i stuck.... the longest code i've written was a gui-less "tic-tac-toe" for the shell, hahaha!
error: unpack: type mismatch?
Don't worry about that.
3 months on and off. Figuring the math out took much longer than the actual code.
AFAIK this is just tanh(x*y*e).. Is that correct? I tried
and pretty much got the same thing. Where did you find this equation, by the way? I'm just finishing up calculus and would love to read more on this topic.
to be honest, i tried to adapt a saturation circuit from a reaktor ensemble but i couldn't figure out how, and i was not patient enough to check all modules used in the ensemble for their counterpart in pd, so i was just experimenting a bit with some of the parts (this is why i used this particular float).... that's why i typed in my first post, that i did not really know what i've done in this patch....
nothing but the truth!