New Tool (3.0): CDP lua tool

Found a bug.
If i add insert = “brk” to parameter that has checkbox breakpoint button doesn’t show up.

You can find pretty usable breakpoint editor brkedit.exe in _cdprogs folder

Yeah that’s deliberate, I didn’t enable that because I couldn’t find any commands that were both a checkbox parameter and also varied over time. Can you let me know which commands do that and I’ll enable it in the next version.

Also thanks for the heads up on the breakpoint editor, sadly can’t get it for mac though :(

For instance: -ccyclecnt parameter over various distort processes has this feature. Modulating wavecycles number over time should sound cool.

Great work afta :drummer: , am updating my definitions now to include the new functionality.

look at ‘grain duplicate’ for example where gate has a flag, but can also be variated through a .brk ( file:///C:/cdpr7/docs/html/cgrograf.htm )

Great, thanks for the info’s, now fixed in this update. Looking forward to the definitions

Not sure, breakpoint files have fractional numbers in them as well, most likely an incorrect definition, do you remember which command you got this on?

I missed the file formats reference, thats very useful, I think I’m starting to get my head around what is possible now. Examples of command lines or sequences of steps would be helpful for stuff that requires analysis to be created and then that fed into another process.

Good suggestions and I’ll add them to the list, preset list is getting quite huge but a search box is a bit complex. I think but it should be simple to have another dropdown that contains command so you could then filter by command.

Definitely! I wish I had put it in sooner, but we are kind of making this tool up as we go along. I am finding terminal very handy for finding ranges, seems more accurate than the docs in places!

There are a few .bat files under docs\demo\sdbats, I think there are some pointers there?

A snippet from grnflow.bat:

  
rem COPY to generic name  
copysfx frogcdt.wav c1.wav  
copysfx bashdt.wav c2.wav  
  
pvoc anal 1 c c1.ana  
pvoc anal 1 c2 c2.ana  
  
rem REPLACE c2's ENVELOPE with c1's  
envel replace 1 c2 c1 cer 10  
  
rem INTERLEAVE c1 & c2  
combine interleave c1.ana c2.ana ci.ana 10  
pvoc synth ci.ana ci  
  
rem RANDOM MIX based on max amplitude, on window-to-window basis  
combine max c1.ana c2.ana cm.ana  
pvoc synth cm.ana cm  
  
rem SPLICE the three results together: cm+ci+cer in that order  
sfedit join cm ci cer cmcicer  
  
rem FILTER, using pre-edited & existing filterbank data file  
rem (Otherwise create with FILTER BANKFREQS, 100-2000Hz)  
rem cmcicer3h.txt (HARMONIC) cmcicer3a.txt (ALT HARMONICS) or   
rem cmcicer3s.txt (SUBHARMONIC).  
filter userbank 1 cmcicer cmcicerflth cmcicer3h.txt 100 5  
  
rem GRANULATE (only using density parameter)  
modify brassage 5 cmcicerflth cmcicerflthgrn 2  
  
rem GRANULATE WITH GrainMill, opening cmcicerflth.wav (or another   
rem soundfile) and loading day3gm1.grn (if able to do so).   
rem See day3gm1.txt for ascii version.  
rem Outfile is cmcicerflthgm1.wav (cmcicerflthgm2.wav with pitch   
rem range settings, e.g., +7 & -5 to give octave spread)  
  
rem Time-varying spectral SHIFT  
rem (NB: check that timings in shift2 .brk match infile length)  
pvoc anal 1 cmcicerflthgrn.wav cmcicerflthgrn.ana  
strange shift 1 cmcicerflthgrn.ana cmcicerflthgrnshift.ana shift2.brk  
  
rem RESYNTHESISE the shifted analysis file  
pvoc synth cmcicerflthgrnshift.ana cmcicerflthgrnshift.wav  
  

I think it was the “[Doesn’t work?] Stretch - Stretch/Compress duration…” preset somewhere in the bottom with the other non working stuff. I think because when you press process a sample is send to it, while it probably expects another kind of input, maybe the sample is regarded as breakpoint file with the amplitude/time pairs?

I will check what I can find out this weekend, everything is there in the documentation, but a little messy :)/> .

I’ve put all edited definitions (except for your filter presets) and a couple of new additions here;
Attachment 4974 not found.

Will check now if the .brk stuff actually works! :slight_smile:

edit:

would it be possible to auto-scale a .brk file’s values to the set min and max values in the definition? Maybe something to consider when using Renoises automation editor or instrument envelopes to generate these…

Thanks, that is quite useful…

Cool will check it out eventually

That will definitely be the way it works when using Renoise envelopes as they only go from -1 to 1, shouldn’t be too difficult to implement this for input files as well. I’ll probably add something like import to envelope which will import a breakpoint to an instrument envelope and scale it along the way. This way Renoise remains the main workspace for files much like soundshaper/soundloom.

Dope!

About the spectral stuff, maybe have the user making the definitions worry about what processes need pvoc’d .ana files. Have some kind of additional input = “pvoc” argmument which you can insert in the functions cmds portion of definitions that need them.

For example all the blur functions have .ana files as input ( file:///C:/cdpr7/docs/html/cblurfrm.htm ), example of suggestion;

The input = “pvoc”, would trigger the sample to be run through pvoc first which generates the analysis file, the analysis file would have to be passed to the particular function, in this case blur avrg. Blur avrg returns a .ana file as out which needs to be re-synthesized again by pvoc into sound, …maybe :)

cool! going to test this now. thanks.

i’ve only used sound loom and the command line, but it might be worth looking into some of the the MIDI translation options CDP has? http://people.bath.ac.uk/masjpf/CDP/tvinfopg.htm#TVCONTENTS + http://www.trevorwishart.co.uk/MidiData.html

it seems like the Tabula Vigilans program is planned to be released open source as well, but they haven’t yet? maybe if you contacted them? it’s interesting because it says it responds to real time MIDI messages, like velocity.

isn’t supplied in the progs folder.

Cool, I got that working

I will build this into the GUI but it will miss out any intermediate steps you might want to do with an ‘ana’ file before resynthesizing back into a sound file. I guess longer term the GUI will need a way to allow chaining of processes, I do however like this way of removing the user from the hassle of making .ana files. Even with chaining, the tool could auto detect if the input is an ‘ana’ file based on the ‘pvoc’ tag in the definition.

I looked at the docs for this and it seems the only use for it with CDP is to allow a midi kb to set note values where those are needed, in this case we can use the built in midi capabilities of Renoise to replicate similar functionality.

Nice! :drummer:

Is it possible to still send some options pvoc accepts? (see; file:///C:/cdpr7/docs/html/cpvocfrm.htm ) For example, you can set certain flags for ‘pvoc anal’, it has different modes; standard analysis = “pvoc anal 1”, output spectral envelope values only = “pvoc anal 2” et cetera.

More important is you can also set the amount of analysis points with “-Cpoints” flag & amount of overlapping windows with “-ooverlap”. Do you have these pre-build in the gui when accepting analysis files?

points and overlap settings will be added automatically to any command that has the input = ‘pvoc’ flag set

As for the different modes I can add those but not sure what process requires them, the docs seem a bit vague about them, i’ll put them in as options if we can find some use cases for them

legend! Looking forward to implementing the new pvoc definitions :)

Awesome work, afta8. Looking forward to the next version!

Update v0.28

4986 Screenshot 2014-05-05 20.21.36.png

Added support for Spectral Processes that work on files generated by PVOC, it works exactly as suggested by Djeroek

These CDP processes work on .ana which are created by PVOC and then resynthesised into audio, all of this happens behind the scenes, the parameters ‘Points’ and ‘Overlap’ at the bottom are for the PVOC anlysis.

Insert a input = ‘pvoc’ into definitions to enable PVOC analysis and resynthesis. See the bundled Blur Avrg and Blur Drunk for example definitions, I have only tested this on these two processes, so let me know how it performs on others.
Will now look at adding support for processes that require two input files like morph.

Happy Days

Brilliant! :yeah:

In anticipation of this update I already did all the cdp processes that can have one pvoc input, dl here;

Attachment 4987 not found.

Also updated the previously non working “dsp[”[doesn’t work] Stretch - stretch/compress duration of infile without changing the pitch"]", so that one can be replaced.

Now I need to test the parameters as I often just put in some numbers :)

Cheers!

So good!!
Impressive work dude! Checking these out now