CDP frontend Reaper extension plugin

edit 26th March 2016 : Changed download links to Google Drive since sucks. No changes compared to pre 8 in the publicly available binaries. (The source code has had some changes done but that stuff is too unfinished for public use by anyone.)

edit 25th April 2015 : Pre 8. Changes :

-Fixes to the plugin window initial positioning.

-Added “Modify Brassage Full Monty” CDP program. This is a more complicated variant of the Brassage Brassage processor. (Due to flaws in the parameters handling in the frontend code, the order of the parameters in the GUI isn’t really sensible, sorry.)

edit 9th February 2015 : Pre 7. Notable changes :

-Presets system. Handled via the button on the top right of the plugin GUI and the drop down box to the left of it. (There are no factory presets.)

-GUI scale can be changed via the Settings button menu. (That is, the sizes of the texts, buttons etc can be changed, instead of just being able to resize the plugin window.) This may be useful for example for Macs with Retina displays since smaller GUI elements can still be usable and have legible text on them.

-Preview playback looping can be turned on/off via the Settings button menu.

-Item import shortcut key was changed to Left Arrow, since the Insert key or equivalent doesn’t exist on Mac keyboards/JUCE’s keyboard handling code.

-Various tweaks and fixes.

edit 16th January 2015 : Pre 6 for Windows and OS-X. Notable changes :

-Thanks to Reaper’s AudioAccessor API, most types of audio items in Reaper can now be processed. This includes items with mp3, FLAC or similar audio files as the source file, as well as items with the loop options or realtime reverse turned on. This might also make the processing a notch faster since more preprocessing steps can be done at the same time.

-Spectral processors now have comboboxes for the FFT size and FFT overlap instead of the sliders

-The upper waveform can be made to fill most of the plugin, for more precise edits, by pressing PageDown. (On OS-X laptops this should be Fn+DownArrow)

-Right clicking on the upper waveform when it’s in the envelope mode, shows a context menu to switch to an available envelope

-Support for Spectral Stretch CDP processor was added

-Unfortunately for now, the feature to automatically follow the selected item in Reaper has been removed. The Import button no longer opens a menu, and rather directly imports the currently selected item in Reaper. (The reasons for this are messy, hopefully the feature can be readded later.)

edit 10th November 2014 : Pre 5 for Windows and OS-X. Notable changes :

-Envelope segments can be curved by Alt+dragging the segments.
-CDP processings which require doing the processing by splitting stereo files into mono files are now processed in parallel, hopefully resulting in speedups
-The plugin adds another action “Xenakios : Reset CDP front-end”, which hopefully will reset the plugin to a fresh state if it ends up not working, without having to restart Reaper.
-OSX version should now display more errors when appropriate, instead of just setting a non-existing file on the output waveform. (This is still not working completely…)

edit 22nd August 2014 : Pre 4 for Windows and OS-X. Preliminary support for processing stereo files with CDP programs that don’t support stereo directly. (Such as all the spectral processors and the processors in the “Distort” group.) Some other tweaks and fixes.

edit 3rd August 2014 : Pre 3 for Windows and OS-X. Modify Speed processor was added. (For resampled pitch/time processing.) More parameters of the Texture Simple processor can be automated. Some misc fixes. OS-X build now only has the 64 bit version.

edit 31st July 2014 : Preliminary OS-X build uploaded. I was able to make the plugin GUI only work so that it stays on top of everything, which is very annoying, but less annoying than it disappearing behind Reaper’s window when clicking outside the plugin GUI…Hopefully that problem can be solved at some point.

edit 29th July 2014 : pre2 builds uploaded. Contains various fixes and the ability to zoom and scroll the input sound waveform. (The zoomscroll-bar is between the input and output waveforms.)

I am finally making the first public release of the C++/Juce based CDP frontend I’ve worked on for the last 5 weeks or so. Thanks to Oli Larkin for working on the OS-X build! (Unfortunately it didn’t materialize for this first release, though.)

If you don’t already know what the Composer’s Desktop Project is, please read before trying to use the plugin to decide if this something you would likely be interested in trying to test :

To use this, you must have the Composer’s Desktop Project installed, available from :

-The plugin allows you to bypass setting the CDP_SOUND_EXT environment variable which is mentioned somewhere in the CDP documentation that it must be set for things to work. (If the environment variable is not set, the plugin sets it temporarily.)

-The plugin will on first run ask you to locate the CDP binaries location. This is the folder with files such as “pvoc.exe”, “modify.exe” and “distort.exe” within the CDP installation.

-The plugin adds one new action into Reaper : “Xenakios : Show/hide CDP front-end” which you should find from the Reaper actions window. The action is not added to any menu in Reaper or given a default keyboard shortcut.

-When the plugin window has focus, the following keyboard shortcuts are active :

Insert-key : Import the selected Reaper media item
Home-key : Toggle automatic rendering after settings (parameter sliders, automation envelopes, the time waveform time selection) have been altered. You might want to have this turned off when you know you want to alter several settings/automation points and the rendering delay is too short to reach the desired GUI elements before the automatic rendering is triggered.
Delete-key : Removes the selected area from the sound file or envelope points of the selected area. (Depending on whether the Waveform or Envelope button in the top left is active.)

Please use this plugin with Reaper 4.7 or newer only! Reaper versions before 4.7 have a bug that crashes during the realtime preview.

The front end has various omissions, quirks and defects at this point, but I hope it will be somewhat useful already. Some of the things are quite tricky to implement ideally because everything works by running command line programs in the background, after all…But I hope I will be able to later implement better solutions to some of the issues.

It only has a limited selection of the CDP processing programs available at this point, as some of them require much more complicated GUIs and logic than is currently implemented. (And some of the suitable programs I just haven’t added yet.)

Many of the CDP programs only process mono files. This has been worked around since Pre 4 by splitting stereo files into mono files, then processing them separately with the mono-only programs and then joining the mono files back to a stereo file. This can in some cases cause the channels to become completely decorrelated and the original stereo image will be lost. But since this workaround is the only possible, it’s provided in the hopes it will be useful/interesting in some situations.

64 bit plugin : (Windows 7 or newer) :

Windows 64 bit

32 bit plugin : (Windows 7 or newer) :

Windows 32 bit

64 bit OS-X plugin : (OS-X 10.9 or newer recommended, might work on 10.7 or 10.8. Don’t ask for 10.6 support, that won’t happen.) :

OS-X 64 bit

To comply with the Juce licensing model, the source code is GPL-licensed and is available from the following link :

This entry was posted in Uncategorized. Bookmark the permalink.

21 Responses to CDP frontend Reaper extension plugin

  1. Greetings ! Great project, I’d like to build the standalone for Linux. Any hints or tips to make it work ? I already have the CDP software installed and working correctly, but alas, the sources for SoundLoom and SoundShaper have not been released. 😦 So your project looks like a solution to my problem, I’d appreciate any guidance you can lend.

    Best regards,

    Dave Phillips

    • xenakios says:

      I haven’t tried building on Linux so I am not sure how that should be set up. With some luck, maybe using Qt Creator with the .pro file in the git repo could work. (You would need to edit the absolute paths in that to point to the source files on your system…) I didn’t yet have luck getting the stand alone program to work on OS-X (it just crashes right away when started), so it could be I haven’t done the stand alone app mode correctly…It seems to work OK on Windows, though. Your best bet at the moment is probably trying to use SoundLoom or SoundShaper via WINE on Linux.

      • Thanks for the note ! I managed to build the plugin for Linux. I ran qmake-qt4 on the .pro file in the top directory, then I ran Introjucer on the jucer file in the juce subdirectory. The Introjucer created a Linux Makefile but I didn’t use it. Introjucer set up the correct paths needed by the top-level Makefile so I ran that one instead. I had to build and install libSwell from the WDL stuff, not a problem, and I changed the path to swell.h in Source/reaper_plugin.h, from “swell.h” to . (I installed the swell stuff to /usr/local). I haven’t run Reaper for a while, I’ll give it a try, but I’d really like to run your project as a standalone. Any advice how to do that ?

  2. Btw, I’m running Fedora 19 x86_64.

  3. xenakios says:

    You could try :


    #TEMPLATE = lib
    TEMPLATE = app

    In principle the WDL/Swell stuff isn’t needed for the standalone application mode, but it doesn’t have proper ifdeffed sections for non-Windows platforms for that.

  4. Thanks for the tips, I’ve got a little further now. Unfortunately the linking breaks with a slew of error like those following this text. My final build line is this:

    g++ -Wl,-O1 -Wl,-z,relro -o reaper_cdp_frontend main.o jcdp_wavecomponent.o jcdp_main_dialog.o jcdp_audio_playback.o jcdp_utilities.o -lX11 -lXext -lfreetype -lasound -ldl -lpthread -Bstatic libJUCELibrary.a

    However, I still receive these errors:

    main.o: In function `pair’:
    /usr/include/c++/4.8.2/bits/stl_pair.h:145: undefined reference to `juce::String::String(juce::String&&)’
    main.o: In function `get_cdp_binaries_location(juce::PropertiesFile*)’:
    /home/dlphilp/src/reaper-cdp-frontend-extension/Source/main.cpp:172: undefined reference to `juce::File::File(juce::File&&)’
    /home/dlphilp/src/reaper-cdp-frontend-extension/Source/main.cpp:167: undefined reference to `juce::File::File(juce::File&&)’
    main.o: In function `CDP_processor_info’:
    /home/dlphilp/src/reaper-cdp-frontend-extension/./jcdp_processor.h:67: undefined reference to `juce::String::String(juce::String&&)’
    /home/dlphilp/src/reaper-cdp-frontend-extension/./jcdp_processor.h:67: undefined reference to `juce::String::String(juce::String&&)’
    /home/dlphilp/src/reaper-cdp-frontend-extension/./jcdp_processor.h:67: undefined reference to `juce::String::String(juce::String&&)’
    /home/dlphilp/src/reaper-cdp-frontend-extension/./jcdp_processor.h:67: undefined reference to `juce::String::String(juce::String&&)’
    main.o: In function `operator=’:
    /home/dlphilp/src/reaper-cdp-frontend-extension/./jcdp_processor.h:67: undefined reference to `juce::String::operator=(juce::String&&)’
    /home/dlphilp/src/reaper-cdp-frontend-extension/./jcdp_processor.h:67: undefined reference to `juce::String::operator=(juce::String&&)’
    /home/dlphilp/src/reaper-cdp-frontend-extension/./jcdp_processor.h:67: undefined reference to `juce::String::operator=(juce::String&&)’
    /home/dlphilp/src/reaper-cdp-frontend-extension/./jcdp_processor.h:67: undefined reference to `juce::String::operator=(juce::String&&)’

    Et cetera. It appears that either something isn’t linking, or perhaps I have a faulty Juce lib ? Any advice will be vastly appreciated. 🙂



    • xenakios says:

      Sorry, no ideas… 😦 Making this work on Linux wasn’t really any consideration, since Reaper doesn’t really have a native Linux version. (And the stand alone application mode exists mostly so I can quickly test things on Windows.) I might look into it building it myself on Linux at some point, but that could take some time. (Read : probably months.)

  5. Barry Dillon says:

    I have tried your ‘CDP frontend Reaper extension plugin’, but with little success. I have followed in install procedure outlined on your blog page and on the Reaper blog, but to no avail. Every thing seems to install correctly, I can even find the extensions in the Reaper window / menu and I click the Run button and nothing happens, No CDP window, no CDP programs listed to the right of the screem.
    The details of my system is Macbook Pro running OSX 10.10 Yosimite. I have reaper 5 running on this system, I have the CDP 7 installed in my home directory, all seems to be in order. Note I have been working with Reaper since 4.1 and I have version 4.5, 5.0, 6.0 and 7.0 of the CDP software, I have a number of years experience with it, behind me. NOTE 2. The system does not give any ‘error messages’, all seems to be working ok. So I don’t know, do you have any ideas as to how I might be able to sort this problem out, and get things (Reaper and the CDP) working on my Mac. Thanks.


    • xenakios says:

      Sorry, I don’t know what could be wrong. Especially if the action to show the CDP frontend is visible in the Reaper actions list. If that wasn’t visible, then I would have suspected the plugin was installed wrong or the CPU architecture didn’t match. (The plugin is available only as a 64 bit build.)

  6. plasticmusic says:

    Just wanted to let you know that it’s running well in 10.10.5 on an old 2008 mac pro with 4GB of ram. Thanks very much.


  7. Thank you for an incredibly useful tool! Save me a lot of time going to and from soundloom and reaper.
    I don’t suppose you have looked at adding any of the multichannel plugins (I often work in 8.1)? The multi brassage is one that doesn’t need any custom text files to run and is a personal favourite ? 🙂

    • xenakios says:

      I can take a look how badly mono/stereo specific the code is in this frontend. Might be there’s too much stuff that would need to be changed to support more than stereo… 😦

      The new frontend that I’ve worked on occasionally during the past year will be better in that regard. Not only can it run the multichannel CDP programs, the CDP programs that are only mono or stereo can be routed suitably to process/produce multichannel outputs.

  8. valankar says:

    OSX download doesn’t work. Google Chrome claims is a malware site. Disabling the check in Chrome still doesn’t allow me to download (clicking on download link doesn’t do anything)

  9. xenakios says:

    Yeah has gone completely crappy and I’ve forgotten to update the download links here…I’ll reupload somewhere else.

  10. enne says:

    Hello, i am on osx 10.9.5, I was using the plugin before formatting, but now, after installed CDP, inserted the plugin in the userplugins folder and after running the plugin and selecting the folder _cdprogs I try to import one waveform and I receive the following error .
    Does the plugin work with the last CDP version? I thought the problem could be the fact that I have the last 2016 july release of cdp?


    • xenakios says:

      I have to check if there’s some problem with the new CDP release. I haven’t tested with the old Reaper front end lately. (All of my recent CDP related development has been for the new frontend…)

    • xenakios says:

      If I understand right from the screenshot, you are using the plugin in a Reaper project that has not yet been saved to a particular location? (Because it attempts to put the file into the generic Reaper Media location…) Does it make any difference if you save the project first?

  11. enne says:

    Ok, solved downloading from here from the link in the central part of the page and not on MAC Version on the right. 😐 It now works

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s