Crypt: A simple open-source cross-platform CMake-build JUCE synth example with CI/CD

Hi everyone! I come from a programming background, but I’m relatively new to JUCE. Along my learning journey I figured out a bunch of stuff that I couldn’t find such good information on myself, so I thought my work might also be useful to other people developing with JUCE, especially those working with the (relatively new) CMake interface.

The synth I came up with I think is a good example of a simple plugin which can be built with just one C++ file, the CMakeLists.txt and image resources; and the project layout should make a lot more sense for somebody like me who comes from more of a systems programming rather than app development background. It has parameters and a GUI and makes some pretty cool sounds, but comes in at only 400 lines of relatively well documented code.

It includes JUCE as a Git submodule, which means it doesn’t have any non-standard dependencies for the build process, and as such it was relatively straightforward to get it building in the Github Actions CI/CD system. That means whenever I push a commit to Git it builds both a Mac and Windows version of the plugin automatically; and when I push a tag it automatically creates a release.

I hope some of you might find it a useful example to use for getting started with plugin development, or using the new CMake interface, or getting CI/CD working with your plugin development process. It’s licensed under the GPL3, and it’s online on GitHub here:

Crypt on GitHub

9 Likes

Great, as adding GitHub actions support to my CMake based plugin is the next step on my roadmap, I’m happy to see this one, seems like it could be a great resource to get started with that. Thank you for sharing it with the community :slight_smile:

Thanks for sharing!