I decided to start learning plugin development with CMake/CLion, mostly because CLion just clicks with me, but it does sound like the ProJucer does have some nice debugging goodies. For instance, I hear that you can send audio into standalone plugins and get debug messages all right in the projucer. My (probably crazy) workflow has just been: make the basic plugin, build, open on Logic Pro, listen to what it sounds like (sometimes look at the output on an oscilloscope), make some tweaks on CLion, build again, etc, etc. It seems like it would be nice to, for instance, be able to look at the data inside the buffers, or print out a little message sometimes, or things along those lines.
How do people working on CLion debug? I was thinking of making some generic sample object (a little guitar strum or something like that) that I could send into the plugin when I ran it as a standalone just to get things going, but really the ideal would be if I could get some sort of debug output while testing the plugin in Logic. Is this kind of thing possible?
CMake allows you to build a standalone plugin too (just add “Standalone” to the list of targets. IMO this is the easiest way for debugging most things.
You can also attach CLion to Logic - but because Logic runs the plugin out of process you would need to attach it (using debug->attach to process) to the xps hosting service, and only after it’s launched - which makes it pretty annoying.
I would suggest other than standalone debugging, to use another DAW that lets you attach immediately. In that case, you just set that DAW as the executable to launch the VST3 target in CLion, and whenever you hit ‘debug’ it will build the plugin/run the DAW and attach immediately.
A few DAWs that I find very pleasant for debugging are Reaper, the JUCE AudioPluginHost, and our free host, Plugin Buddy by Modalics:
Just checking in to say that I long ago moved to CLion/CMake and debug with REAPER quite happily, but since I also have “Standalone” in my targets list, I can easily debug the standalone .app version of my projects with CLioin, and it Just Plain Works™ most of the time. For GUI debugging, I use the Standalone target - for everything else, I debug with REAPER first, and then when that dust settles, I test on all of the other DAW’s. Note, even though I target Windows, MacOS and Linux (all plugin formats), I’m doing most of my develop with CLion on MacOS - I also have a Windows system where this configuration (CLion/CMake/REAPER) works very well for my needs as well.