2

I'm working on a couple audio plugins. Right now, they are audio units. And while the "DSP" code won't change for the most part between implementations / ports, I'm not sure how to go about the GUI.

For instance, I was looking at the Apple-supplied AUs in Lion. Does anyone know how did they go about the UI? Like, are the knobs and controls just subclasses of Cocoa controls? are they using some separate framework or coding these knobs and such from scratch?

And then, the plugs I'm working on are going to be available too as VSTs for Windows. I already have them up and running with generic interfaces. But I'm wondering if I should just get over it and recreate all my interfaces with the vstgui code provided by Steinberg or if there's a more practical approach to making the interfaces cross-platform.

SaldaVonSchwartz
  • 3,769
  • 2
  • 41
  • 78

1 Answers1

2

VSTGUI is not very much fun to work with, especially as your interface gets to be more complicated. The source is a mess and you end up with a very hardcoded GUI, which becomes difficult to refactor.

I'd recommend checking out Juce, which includes a nice GUI builder. If your DSP code is well modularized, switching to its architecture won't be so painful. As an added bonus, it will make the x-platform (where "platform" means both OS and underlying plugin platform) jumps a bit easier for you.

Nik Reiman
  • 39,067
  • 29
  • 104
  • 160
  • So for instance, right now, I have my AU and VST versions of the plugin working, but I only made a custom UI for the AU version (using the native OS X resources, basically a mix of CoreGraphics, CoreAnimation and Cocoa). What you suggest is that I forget about this OS X-specific UI and instead try to build a platform-independendent UI with JUCE that then I could use for both the Mac and Windows versions of the plug? – SaldaVonSchwartz Apr 10 '12 at 08:35
  • 2
    If you wish to go VST on Windows, then yeah, I'd suggest going with a more mature x-platform framework. Even the VST on OSX will likely cause a bit of a headache to adapt the AU GUI to it. At a very minimum I'd recommend just checking out Juce; it's a framework I wish I had discovered long ago instead of stubbornly deciding to reinvent all wheels on my own. – Nik Reiman Apr 10 '12 at 08:38
  • Why did you say "if I wish to go VST on Windows"? is there any kinks if I was go to ASIO or some other specific spec that you know of? – SaldaVonSchwartz Apr 11 '12 at 04:41
  • 1
    No, but any platform-specific stuff (such as file locations, constructing GUI windows, etc.) will be more easily handled by Juce. – Nik Reiman Apr 11 '12 at 10:57