Let's Discuss CDP

Afta8 (and Djeroek)'s CDP frontend is a game-changer for me. I’ve been digging deeper, and was thinking this would be a dope place to discuss tips, workflows, and maybe even shell scripts :slight_smile:

whos down?

Okay, my initial curiosity has been caught on CDP.

I read a tiny bit about CDP

http://composersdesktop.com/about.html

https://www.renoise.com/tools/cdp-interface

So, is it a bunch of stand alone utilities to do offline manipulation of sounds?

What exactly do you use it for, and how does it fit in your workflows, especially with Renoise?

EDIT:

Okay, i found the sound design post on this forum and read about this example.

http://vorpalsound.com/vs/combining-approaches/

So it seems like a workflow with Renoise+CDP would be create a sound/phrase in Renoise, then use the cdp interface to bounce that sound through separate CDP tools, which has parameters described usually in sliders, lists of numbers, etc. Then play with it some more in Renoise, bounce it again through CDP for other effects etc. Is this the basic workflow?

Hmm… Sounds nice too. I’ll have to give it a try some time.

NIce that those two donated us with such a good Frontend tool.

Tbh I still have no clue what for I should use cdp. Could u give me some practical examples to use cdp capabilities while music production?

:slight_smile: Nice to see you enthusiastic about the CDP tool Misk.

Tbh I still have no clue what for I should use cdp. Could u give me some practical examples to use cdp capabilities while music production?

You can use it to mangle, offline process your samples in Renoise’s sample editor, same as you could process samples with vst using the ‘fx’ icon. It is a nice tool for sound design, with some unique effects.

When using breakpoint files for certain CDP tools parameters (grabbed from Renoise envelope device), you can define change over time, it would be similar as rendering a selection in pattern which uses automation.

I use it a lot for creating different variations of the same sound or sound effects, with most ‘go to’ processes being distort & modify, also the extend & reverb processes get often use, obviously combining these, layering them is the key for less standard results.

Pro-tip would be to have the manual at hand when trying out the processes as there are a lot of processes which use data input, with special syntax which can be read up on in the html instructions. Also you’re prone to run into parameter mis-matches as the documentation was not always clear on mix-max boundaries, or these are dependent on sample size. In those cases the terminal inside the tool gui can give handy information what is the problem, what parameter needs to be change.

Note that if you process a sound using the tool, then select a different instrument in Renoise and use the tool again, the previous selected instrument will be effected again! The tool gui doesn’t automatically change the input & output parameters when changing instruments in Renoise. You either need to change them yourself in the tool dropdown selectors, or press the swirling arrow’ish icon to the left of ‘process’ when selecting a new sound.

Not sure if we need a new topic but since you’ve brought it up, afta once mentioned a feature where each CDP process you use gets written into the sample as comments (which was another tool I guess?) so that you never forget what the hell you did to get that awesome sound. I’d like to see that implemented! :smiley:

Your envelope editor idea was pretty good. I don’t really end up using the copy envelope function that much.

Also Xenakios was doing some awesome CDP stuff for Reaper but I’m not sure whatever happened to that.

Tbh I still have no clue what for I should use cdp. Could u give me some practical examples to use cdp capabilities while music production?

Saw my tuts? I did many sounds which are demonstrated step by step.

Yeah, I can’t recommend emre_k’s tutorials enough! tbh that’s what initially made me curious, and after getting it installed correctly (arguably the hardest part) - i’ve been getting into what you can do with the tools beyond just the front end. Soundloom is absolutely awful, and though I can understand how amazing it could be with CDP if you took the time to learn it, I prefer using either the Renoise front end, or the command line.

What I also find REALLY cool is being able to batch process sound files with compound terminal commands, or basic shell scripts. I’ve tossed a few aliases into my .bash_profile to make things quicker (alias mod=“modify” etc), and it’s really nice to be able to say, extract amplitude enveope data from a whole directory of sounds with one or two commands, and then redirect that data into a text file for later viewing.

also, there’s plenty of commands that aren’t really available with the frontend yet that i’ve played around with, like cantor, and hover that are really cool!

It’s really just nice to have CLI-based tools available for sound file manipulation available on my computer - if I had my way they’d be bundled with OS X, just because they’re so useful, but that would put quite a few software companies out of business (soundminer as an example, definitely not Renoise!).

With regards to envelope data being translated to breakpoint files—yeah the instrument envelope scaling is AWESOME. The only thing I’ve noticed with it is that it is very dependent on the sound being processed, and there have been many times i’ve had error messages in the terminal (in the Renoise frontend) because i tried to modify speed wrong and i just changed the text manually.

time speed(pitch
0.0 0.0
0.5 1.5
2.3 3

as an example, here’s 3 breakpoints, and you’ll get an error in modify speed based on the first speed parameter, because it doesn’t actually go down to 0.0, but the minimum is actually 0.0038 or something, so I’ll just change it to 0.01 - that’s close enough for me!

I’ve found another environment variable too, I dont know if it affects CDP in a positive or negative way, but CDP_MEMORY_BBSIZE is an environment variable that affects how much memory you want to allocate to the buffer for CDP. I’ve got 16GB so i figured i’d try 200000 (value is in Kb, so thats 200 Mb). I just put it in my launchd.conf file.

also i’ve altered the script for the frontend so PVOC processes analyze at 4096 points by default, which I find is better for accuracy.

Sure these are ‘offline’ but that just means you can utilize more computing power for each process instead of being limited by real-time stuff—which means some pretty incredible spectral morph results!!

Oh, also each process is very particular—so start by going through emre’s tutorials, and see what you can do with just one or two at first (modify speed is a great place to start).

Anyone tried any of the processes that require different filetypes (formant, pitch, or one of the other 50 different filetypes)? also, it’s not clearly specified anywhere i’ve read, but a breakpoint file is just plaintext with two columns of numbers (time, and a parameter) separated by a space, and line breaks (see code example). no weird headers or anything, just make sure you save the file with the extension .brk not .txt!

It’s really easy to generate 50 usable new samples for sound design in a few hours if your focused, which I love, as I’ve got a sound design deadline looming!

That reminds me, Do you guys need any help with more definitions? i don’t speak lua but i understand programming enough to be somewhat capable, and editing key-value pairs isn’t a biggie :slight_smile:

Very cool. Sample mangling just took on a whole 'nother dimension … :slight_smile:

.

That reminds me, Do you guys need any help with more definitions? i don’t speak lua but i understand programming enough to be somewhat capable, and editing key-value pairs isn’t a biggie :slight_smile:

Sure! The more the merrier imo :slight_smile: , better contact/pm Afta if you have new additions so he can add them for a future version.

Be aware though there are a bunch of definitions already made, but grayed out in the definition file, not listed in the tool because they’re not working, for example (slicing) processes which output more then one file. So, before you make an effort trying to implement missing processes, be sure to check out the definitions file first.

Sure! The more the merrier imo :slight_smile: , better contact/pm Afta if you have new additions so he can add them for a future version.

Be aware though there are a bunch of definitions already made, but grayed out in the definition file, not listed in the tool because they’re not working, for example (slicing) processes which output more then one file. So, before you make an effort trying to implement missing processes, be sure to check out the definitions file first.

yeah I noticed that you had quite a few commented out! good that their there :slight_smile:

I threw together a little shell script that runs a command on all wav files in a directory—i then went and extracted binary envelope information from every file. These samples were all stereo sounds of distant and close thunder. applying those envelopes to sounds I’d previously designed… fucking INCREDIBLE, and super fast.

i’m not gonna put shell scripts up here, and mine is super basic (and renames the output files poorly) but when i’ve gottime to make it work well i’ll toss the code up here. it uses envel extract. It’s amazing how quickly i can burn through a (copied) directory of samples I have and just steal all the formant data, or pitch, or whatever, and then convert that data into breakpoint files, and assign that data to parameters for other processes. it’s like clicking on a sound and being able to create an automation envelope that is an exact replica of that sample’s amplitude… shit’s fucking INSANE when you apply it to something like pitch.

for the record though, there’s a process you’ll need to run on breakpoint data called ‘columns’, that shifts the numeric data to a specific range. It’d be awesome to see this feature in a future version of the front end tool— transforming numeric data in the envelope box regardless as to whether it’s data from an instrument envelope or columns of text.

as a matter or fact, what’d be AWESOME, would be if you could create envelopes in renoise based on breakpoint data imported from text files or entered into the tools awesome text box.(or binary envelope data, or formant data, or any of the other 30+ filetypes generated/used by CDP)

I downloaded the CDP source, I’ll check the ‘columns’ command to see what can be used from there for the frontend :slight_smile:

for the record though, there’s a process you’ll need to run on breakpoint data called ‘columns’, that shifts the numeric data to a specific range.

You’re still talking about your shell scripts right, applying envelopes in between processes that need the data in a certain format?

So columns is an in between conversion step, just like pvoc is used to create/re-synthesize .ana files which is handled automatically by the CDP tool for the fft processes, you’re looking for a similar automatic use of columns for certain processes?

I skipped the whole SYSUTILS tree because some processes were mac or pc specific and/or I doubted the ‘musical application’ :slight_smile: . Quick look at columns in the documentation, it looks like it can be added as you can input and output textfiles, though I’m a little rusty on understanding all the possible flags, and how to best implement the @ symbol, which ‘indicates a numeric value supplied by the user’ and setting the thresholds and specify operations. If you’re not already going for a definition version, maybe I can look at it this weekend after I finish some music? :slight_smile:

as a matter or fact, what’d be AWESOME, would be if you could create envelopes in renoise based on breakpoint data imported from text files or entered into the tools awesome text box.(or binary envelope data, or formant data, or any of the other 30+ filetypes generated/used by CDP)

Hah, you mean using the load option in the CDP tools breakpoint window to open an envelope file for use in the automation editor/instrument editor? Would be nice indeed and doesn’t sound impossible . An envelope file in CDP consists out of just time and amplitude values, in Renoise these are enclosed in xml which surely an able scripter can filter out :drummer:.

wow ! amazing tool. thanks a lot for this port. :w00t:

yeah, columns essentially performs math functions on list data, and allows you to extract and merge a column in a list from/to other lists. I’ll dig into the definitions file - you guys made it nice and straightforward in your comments, so thanks for that! the only tweak i’ve made is setting up pvoc to default to 4096 because I got tired of retyping it every time - but that’s just a little personal preference!

i’m no coder, or scripter, most of my experience is in bash and max, and even that is limited! re: shell scripts - the only thing im finding them good for is processing a large number of audio files to extract useful data from.

Greetings,

If anyone asks what can you do with the CDP software I usually point to Trevor Wishart’s work. Fascinating music, definitely not the Usual Stuff, and almost all based on tools he developed and incorporated into the CDP.

https://en.wikipedia.org/wiki/Trevor_Wishart

https://www.youtube.com/results?search_query=trevor+wishart

His writings are as interesting as his music and software. Search Google for “Audible Design PDF”, or peruse the catalog of his publications at http://www.digital-music-archives.com/.

Best,

dp

thanks for the links Dave! I’ve been listening to a lot of Trevor’s stuff lately, and his work is really mind blowing! I started as a skratch dj, back in the day, but spent plenty of time in academia (electro-acoustic composition), so i was somewhat familiar with his work, but man, some of his pieces are just incredible!