A collection of examples & workflow tips related to the C++ libary JUCE.
- Intro
- Disclaimer
- Code license
- Contribute
- How to read
- How to run examples
- Why JUCE
- Other libraries
- Online resources
- C++
- Getting started
- UI
- DSP
- MVC
- File IO
- Network IO
- OpenGL
- Custom modules
- Tracktion engine
- Unit tests
- Continuous integration
- Publish
- My wishlist for JUCE
- What next
- Related resources
I started using JUCE because I wanted to make my own audio plugins and after doing a little bit research JUCE seemed to be the way to go.
Over the last couple of years, I have collected all of the resources related to JUCE that I could find. The list of bookmarked pages & code snippets have grown to quite a collection, so I decided to publish them as a cheatsheet for myself and everybody else who uses or wants to use JUCE.
I started with programming at the age of 10. C++ was my first and primary language for the first couple of years. I have since then used Python, JS & Golang. I currently studying computer science with a focus on embedded systems in Berlin.
I'm definitely not an expert in JUCE or C++. I do have a job as a C++ developer, but unfortunatly not using JUCE. So if you find any problems in my examples, feel free to open an issue.
JUCE is published under a dual license, it is free for open source & small projects. You can find their license for JUCE 5 here.
All of my example code in this repository is published to the public domain under the Creative Commons CC0 1.0 license.
If you find any bugs or design problems in my examples feel free to open up an issue on Github.
If you want to add examples or resources to this collection you can eather push a pull request directly or open up an issue first, if you have any questions.
- Each chapter can be read individually
- Windows
- Mac
- Linux
- Cross platform
- Collection of GUI widgets
- Easially customizable
- Solves common application problems (File IO, Network & Undo)
- Wraps all common plugin types.
- Basic DSP & Analysis
- Vector instructions for x86 and ARM
- Easilly use C++ for both Android & iOS
- Use native features
- Not really intended for realtime audio
- To big
- expensive
- very simple
- intended for games
- very simple
- intented for simple widgets
- works well with SFML
- cpp_box
The two most importanted resources when developing with JUCE are the official JUCE documentation & the JUCE forum
- Book
- Discord
- New to C++
- Modern standard
- JUCE >= C++14
- C++17 Features
- C++20 Features
- Resources
- CppWeekly
- TheCherno
- CppCon, etc.
- Books
- Idiums
- Inheritence
- virtual / override
- Lambdas
- Constexpr
- Smart Pointer (unique & shared)
- Container (vectors & arrays)
- noexcept where possible
- const where possible
- Inheritence
- Tools
- IDE
- Visual Studio
- XCode
- Makefile
- Visual Studio Code
- CodeBlocks
- compiler
- warnings are your friend
- clang from source
- cross platform different warnings
- old versions in distros
- clang-tidy
- Visual Studio
- from terminal/python script
- clang-format
- A must
- Pick a standard
- Visual Studio integration
- python script
- compiler-explorer
- sanitizers
- gcc & clang
- Makefile/Scripts
- IDE
- AudioApp
- Plugin
- Projucer
- AudioPluginHost
- IDE Integration
- git submodules
- living at head
- comments
- Github Pages
- Doxygen
- readthedocs
- Linux
- Dependencies
- Ubuntu
- Arch
- Fedora
- Raspberry PI
- Basic Components
- Top list
- Projucer live build
- Tricks
- Animations
- LookAndFeel
- DSP module
- Gain example
- Compressor example
- AudioProcessor
- Plugins
- VST/AU
- ValueTree/Undo
- Why
- Example
- Talk
- Record/Playback
- Sampler
- OSC
- Arduino
- JUCE unit tests
- How to run them in a plugin build
- Catch2
- pluginval
- macOS
- linux
- windows
- docs
- app/plugin
- Github releases
- zip
- installer/package
- FreeBSD support
- Build system
- More widgets
- Read the docs
- Read the source
- Read other app written in juce
- modEQ
- helm
- temper
- Faust
- Youtube
- std::audio