Any CDP users here? I’m not one, but I’ve heard many good things about it over the years. It would be great to learn about some of the gems.

Since the project has been open source for many years now, it would be interesting to learn about any re-implementations or forks of various algorithms from CDP.

I myself have been tempted off and on for many years to try to do some cleaner re-implementations of some of the algos, but I really wouldn’t know which ones to start with.

2 Likes

One of the popular Trevor wishart algorithms is the waveset transform. There is some supercollider implementation but nothing as exhaustive as in cdp.

https://books.google.com/books/about/Microsound.html?id=YxnqcAR7xjkC

http://www.trevorwishart.co.uk/transformation.html

Obviously a fan of wave sets here, that’s why I suggest it :slight_smile:

2 Likes

Great links. Will have to read them later. It seems like there is way more to wavesets than I initially thought.

My only experience with wavesets has been with the waveset opcode in Csound.

More info on the waveset Csound opcode here:

http://www.csounds.com/manual/html/waveset.html

A more portable version of it has been made into a Soundpipe module:

1 Like

What sorts of things can CDP do that supercollider can’t do with the waveset implementation?

Wishart’s Audible Design book has been a great reference for me in exploring his various ideas w/r/t wavesets. One cool and pretty easy to implement idea is waveset subsitutions. In his book he describes the process as walking through each waveset, and replacing it with some other arbitrary waveform of exactly the same length and magnitude of the original. Here’s Linus Torvalds explaining how to pronounce linux where each waveset has been replaced by a sinewave:

And here’s the same clip, but with the wavesets reversed – so the final waveset is recompressed to be the same length and magnitude as the first, and so on reading the lengths & magnitudes forward and the wavesets backward. (I don’t know if this is something CDP does, but it seemed like a natural next step!)

Other transformation he’s mentioned in Audible Design:

Waveset normalization
Waveset time-stretching
Waveset reversal
Waveset harmonic distortion
Waveset transposition
Waveset morphing
Waveset inversion

I’m not a CDP user either but I’ve looked at Alberto de Campo’s SuperCollider waveset ugen and I think if I remember correctly it basically implements the segmentation and leaves the transformations up to the user? (His chapter in The SuperCollider Book explores a lot of other interesting microsound transformation ideas with some example code too.)

Thanks for making this thread! I’m really curious about CDP too.

Edit: ah yeah the page @slumenta linked above mentions all this stuff too! The book goes into lots of detail – it’s also free on Wishart’s site: http://www.trevorwishart.co.uk/AuD.html

Also, hopefully I’m not getting too off topic but I’ve been following with great interest Hiroki Nishino’s development of a ChucK-inspired language called LC, which is aimed at being a DSL for microsound. This paper discusses how his language approaches waveset manipulations a bit, with some diagrams taken directly from the Wishart book: https://www.academia.edu/1797723/LCSynth_A_Strongly-Timed_Synthesis_Language_that_Integrates_Objects_and_Manipulations_for_Microsounds

1 Like