Submit your tutorial requests


#40 has a pretty excellent example for popup menu creation, which is what the MenuBarComponent displays when you click on a menu title. The popupMenu that the MenuBarComponent displays is provided by the MenuBarModel instance passed to the MenuBarComponent.

regarding ticks for individual menu items:

void PopupMenu::addItem ( int itemResultID,
   const String & 	itemText,
   bool 	isEnabled = true,
   bool 	isTicked = false 

for the isTicked parameter, just do something like this:

myMenu.addItem( idNumber,  //itemResultID
   "menuItemDisplayText",  //itemText
   true, //isEnabled
   someConditional == desiredValueToShowTick ? true : false //isTicked

Hope that helps


I’d love to see a tutorial on how to create a custom JUCE module


it’s easy:

   ID:  MyModule
   vendor: MeMySelfAndI
   version:  1.0
   description: my custom juce module
   license: MIT
   dependences: juce_core
   OSXFrameworks: Accelerate
   iOSFrameworks: Accelerate

//define your header guard here

include everything your module header files require here
#include <juce_core/juce_core.h>
#include <array>
#include <algorithm>

//wrap your module in a namespace
namespace MyModule {
now include each module header file
#include "parts/PartA.h"
#include "parts/PartB.h"
//#endif your header guard


#include MyModule.h
namespace MyModule
now include every .cpp in your module. 
note that your .cpp files must NOT include anything themselves, as the includes at the top of MyModule.h take care of that
#include "parts/PartA.cpp"
#include "parts/PartB.cpp"

that would work for a module with folder hierarchy:



An example of a plugin that uses multiple programs / factory presets (including saving/restoring state of the different parameters) would be helpful to have in the examples folder. It would be handy to have this as a reference plugin (for testing reproducibility in case of issues), and then why not create a tutorial for it while at it?

I know there is an tutorial on adding plugin parameters + one on saving/restoring plugin state, but I didn’t find a plugin example that uses a number of programs > 0.


There’s a pretty detailed doc about it right there in the main repo:


Tutorial(s) on best practices how to use threaded code together with GUI code. (Progress bars, cancellation, callbacks that should happen on the GUI thread when the worker thread has finished etc…)

Just telling people to use ThreadWithProgressWindow doesn’t really cut it. :wink:




Tutorials on how to effectively enter in a Custom PList in the Projucer. Nothing I put in there works. It gets rejected by XCode, so I have to enter it into XCode manually every time I archive my app.


My strategy in regards to using threaded code with GUI code is for the threads to communicate with each other by leaving messages behind:

  1. Thread does processing. Sets flag
  2. Timer (GUI) component checks for flags
  3. Timer component continues processing. Updates graphics.



Could we get a tutorial for how to get setup to use externals. i.e: how to best use static/ dynamic/ frameworks with the Projucer for a cross-platform way of handling externals.

Currently I’m having to rely on patching together other peoples comments on the different processes to make it work for my situation, but one central place (maybe just a forum post?) for this information would be very useful.


did ya see this thread? Xcode "Link Binary with Libraries" and Introducer "External libraries to link" I think you have to do it per platform…


Yeah, this is part of my issue. The only way to get a complete idea of how to do libraries in a cross platform manner is to dive head first into each platform’s build system and figure out how to do it. I’ve still only managed to reliably get Xcode working with any sort of external library so having one location rather than lots of scattered about forum post and stack overflow questions would be beneficial both to beginners and some advanced users who may not have worked extensively with one particular platform.


I agree with this. Coders who have many more years of experience with any particular framework often forget what it is like to be new to it. Forums are useful but they are far from being the most effective way to learn. Having someone write a comprehensive (and up to date) tutorial is extremely helpful, regardless of how many forum posts exist.


Can we get a tutorial that explains how to port your OS X app to iOS and maintain whatever scale you’re getting on OS X to make it look correct on iOS?


Webassemby / (Emscripten or Audioworklet) / Juce — Please :wink:


It would be nice to have a beginners tutorial for synchronous playback and record, I think it is useful for so many applications!


It would be nice to get a tutorial on using the camera to capture photos and/or video.


I’d love to see a beginners tutorial on how to add images to your project and the use of the ImageCache. It was a huge hassle for me to get my first ImageButton to work…


I’m really interested in how to use SVG and PNG files in Juce. My goal is to design knobs, sliders, and buttons as SVG files in Inkscape/Illustrator, and get them into Juce. Then, have them turn, and slide… and work. I’m a newbie, and I’m having trouble finding good tutorials on this.