I’m using JUCE to make a MIDI processor plugin for MacOS AU, and decided to start with GUI elements, since those are needed for me to operate the plugin. No matter what I try, though, I get a blank dark blue window. I tried following what the GUI demos do, but it’s for nought.
This is how I’ve gone about doing things:
- First, stripped out some unnecessary default code from my AudioProcessor-derived class, as I’m focused on MIDI handling, not audio.
- Decided to keep things simple for starters and add a ComboBox that lists MIDI inputs, but otherwise nothing else for the time being.
- Set the AU plugin type to MIDI processor, ‘aumi’
- Set the characteristics to MIDI input and output, nothing else
- Plugin AU is sandbox safe enabled (figured this might help?)
- Builds successfully in Xcode on High Sierra, no warnings
- auval -v aumi DRcm Manu
- Logic Pro X loads it successfully, but no combo box with MIDI inputs, just a blank window
The source code can be found https://github.com/NebuHiiEjamu/CinemixAutomationBridge
AutomationBridgeEditor::resized() is where you need to set size and position of your children components.
Ah, ok! I’ll give that a go. Thanks!
Well, unfortunately, I moved the
setTopLeftPosition call to
resized() and I still get the same result. I even tried
removeFromx calls when setting bounds. Neither worked. However, I did have the MIDI input list output to a log file and it does in fact have data, so, the plugin works, but the GUI is stubborn.
You gave the
inputList a position, but no size… sometimes I brute force something to see if it works at all, and then trim back from there. in this case, just to prove you are on the right track, start with
This will make the combo box take up the entire window, but then you know the when you get it right, this is the right place to do it.
Whoops! lol, thanks again
Hmm okay, well it worked, but as for adjusting it to my liking, I’m unfamiliar with this bounds stuff. I’ve experience with wxWidgets and Qt, which both use layout boxes that hold components (vertical, horizontal, grid, etc) and can be nested. If JUCE also has these, I’m finding no examples of it. Additionally, by default, the combo box, though it took up the window as you said, has no distinguishment other than the selection text and a drop down arrow. Is that one of the themes, or is it due to no theme being explicitly assigned?
Did you try The combobox class tutorial?
There is also tutorial about other ways of coding layout: Responsive GUI layouts using FlexBox and Grid
I was unaware of them. Thanks for the resources!