Submit your tutorial requests

tutorials

#38

Ok I guess you know better


#39

The code for ProJucer and JuceDemo are indeed full of examples. However, they are also packed full of code that often has nothing to do with what you are trying to learn.

To many, it is easier to learn from isolated, specific examples. So, I would vote for individual tutorials on any topic that will be helpful to the learning effort.


#40

https://docs.juce.com/master/classPopupMenu.html#details 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


#41

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


#42

it’s easy:

///myModule.h
BEGIN_JUCE_MODULE_DECLARATION
   ID:  MyModule
   vendor: MeMySelfAndI
   version:  1.0
   description: my custom juce module
   website:  https://mymodule.com
   license: MIT
   dependences: juce_core
   OSXFrameworks: Accelerate
   iOSFrameworks: Accelerate

END_JUCE_MODULE_DECLARATION
//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

and

///MyModule.cpp
#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:

./parts/PartA.h
./parts/PartA.cpp
./parts/PartB.h
./parts/PartB.cpp
./MyModule.h
./MyModule.cpp

#43

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?

PS
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.


#44

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


#45

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:


#46

Seconded.


#47

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.


#48

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.

#49

#50

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.


#51

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…


#52

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.


#53

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.


#54

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?


#55

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


#56

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


#57

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