Howdy, I have big updates to the ELSE library and my Live Electronics Tutorial!
Raspberry Pi binaries for ELSE are still missing, but it'll be up soon. Find available releases on github while they don't show up in deken.: https://github.com/porres/pd-else/releases/tag/v1.0-beta18
There are 30 new objects in ELSE. This is the first release over 300 objects and there's already 324 of them! I'm shocked on how much it's growing... I realize now how this library is unique in the number of objects towards DSP and audio processing. There are 219 tilde objects, that's more objects than Pd itself has, or all of cyclone...
So, what's the most exciting new stuff?
There's a bunch of reverb objects here - [mono.rev~], [stereo.rev~], [echo.rev~], [giga.rev~], [free.rev~] (check also [fdn.rev~] which wasn't really ready).
There are a few dynamic processors as well: [compress~], [duck~] and [expand~].
A couple of FX like [chorus~] and [phaser~].
A [spectrograph~] object.
Some objects that deal with lists ([regroup], [pick], [sort], [scramble], [merge], [unmerge] & [rand.seq]).
A [trigger2] object that behaves like [trigegr] in Purr Data and Max, that people from time to time request to be in Pd as well (if Pd's trigger includes such functionalities, I'll delete this object).
Check complete changelog here: https://github.com/porres/pd-else/releases/tag/v1.0-beta18 . As usual, I have breaking changes while we're at the beta stage.
As for my Live Electronics tutorial, which is based on this library, most of the changes reflect the new objects from the ELSE library. So then, most importantly, the reverb section just got a major upgrade. I'm also now including an appendix with s quick start on Data Structures! Check it out at https://github.com/porres/Live-Electronic-Music-Tutorial/releases/tag/v1.0-beta-8
Howdy, I'm giving a try at how to implement a compressor as a Pd patch. This is what I came up with, it needs cyclone 0.3! ==> compression~.zip
I'm using rms average to detect the gain level and rampsmooth~ to perform attack/release. I wouldn't know how to do it in Vanilla...
Seems rough and rudimentary. It's more of an intuitive approach, as I don't know much about compressor design.
I'm hoping to get feedback from you people on how to implement a compressor in Pd as a patch and how and why this approach is "ok" and can be improved, or if it's all terribly wrong.
Are there any other attempts to implement compession in Pd out there?
Hi, there, got your email so I'm jumping in. I have to think more about this, but it seems you want the cyclone/wave~ object, that you can use to change the loop points with audio signals. If there's no way to do what you want in ELSE, I'll make sure there's an option for you, just create an issue with a feature request https://github.com/porres/pd-else/issues
Cyclone (the set of objects cloned from MAX/MSP) has a new and stable release.
It took us exactly 3 years to work on this update from cyclone 0.2 (in beta stage) to the current cyclone 0.3 release! The main goal was to update objects to Max 7, but we also created many new objects, fixed numerous bugs and rewrote the whole documentation.
Get it directly from deken or on this link, where you can also see the release notes and browse more about the cyclone project! https://github.com/porres/pd-cyclone/releases/tag/cyclone0.3
17th Beta release of ELSE 1.0 (needs Pd 0.49-0 or above)! See https://github.com/porres/pd-else/releases/tag/v1.0-beta17 - get binaries also directly from Pd (Help => Find Externals).
I haven't been posting every release here so you may want to see earlier changelogs to catch on what's new. The main new thing is that there's a [conv~]* object that performs partitioned convolution and with that my Live Electronics Tutorial now solely depends 100% on the ELSE library, and what makes this release special! Check it out: https://github.com/porres/Live-Electronics-Tutorial/releases/tag/v-1.0beta-7
- The [conv~] object is a partitioned convolution abstraction, but a compiled object should come up sooner or later.
Ok, here's the working vanilla partitioned convolution patch!
there are two subpatches for testing, one is light with a relative big window partition (1024) and a short Impulse Response (2 secs).
The other is quite heavy, it's an 8 sec long IR with a window size of 512! This one takes about 57-58% of my CPU power, and I'm on a last generation macbook pro (2.6Ghz processor)... but I need to increase the Delay (msec) from 5 to 10 in the audio settings, otherwise I get terrible clicks!
William Brent's convolve is ridiculously much more efficient, the same parameters take about 14% of my CPU power and I can use a delay of 5 ms in the audio settings.
But anyway, this is useful for teaching and apps that implement a light convolution reverb (short IR/not too short window) need pure vanilla (libpd/camomille and stuff)
ps. Bug, for some reason, you may need to recreate the object so the sound comes out. I have no idea yet why...
Hi, happy new year.
Here's a vanilla partitioned convolution abstraction https://www.dropbox.com/s/pbkg8xy2yhy9bpo/conv~-vanilla.zip…
It is based on this http://tre.ucsd.edu/wordpress/?p=772
what you think, is it working? Both objects on the help file take about 40% of my CPU power, but I'm on a wild machine
I made some changes on the original work by Tom Erbe. It is supposed to be more efficient because the FFT on the input is only done once! I tried the idea of having each partition work with FFT saved on tables, so we wouldn't need to perform FFTs in different instances of clone, but that doesn't seem to be possible. And, well, it is made as an abstraction and all you need to do is give it the window size and the IR sound file name... it calculates the number of instances on that and I needed to rely on some dinamic patching magic