Skip to content
This repository has been archived by the owner on Jul 27, 2023. It is now read-only.

ffAudio/PluginGuiMagic

Repository files navigation

PluginGuiMagic - by Foleys Finest Audio

NOTE: the examples of this repository are now part of the foleys_gui_magic repository.
Please clone that repository instead if you didn't do that already.

This repository is now obsolete and will no longer be maintained.

old content below

Plugin GUI Magic is a live editor for JUCE GUIs, focussed on Audio Plugins. The main features are:

  • Offer a default GUI from the audio processor parameters
  • Uses audio parameter groups for the layout
  • completely styleable via CSS-like structures
  • Arranging of layout via drag and drop
  • Out-of-the-box visualisers, including an FFT-Analyser and Oscilloscope
  • Extensible with your own Components

EqualizerExample Screenshot

main branch: CMake develop branch: CMake

Pre-requisites

This editor works for JUCE GUIs. Best use the JUCE project templates generated with Projucer, although it is no different from integrating any other JUCE module.

The PluginGuiMagic can connect to any juce::AudioProcessorParameter, the AudioProcessorValueTreeState is no longer a requirement.

To add the GUI, add the foleys_gui_magic as submodule in the Projucer to the project. To learn how to integrate the MagicPluginEditor, have a look in the examples folder, the SignalGenerator example is a good starting point.

Examples

SignalGenerator

examples/SignalGenerator

This example demonstrates how to add a editable GUI for an AudioProcessor without writing code for the GUI, only implementing the processor.

ExtendingExample

examples/ExtendingExample

This example shows, how you can add your custom components into the generated GUI. There is a Component where you can edit the colours, as well as a Component, that accesses a typesafe back reference to the AudioProcessor.

EqualizerExample

examples/EqualizerExample

An example of a 6 band IIR equalizer with complete plot curves, analysers and more features following (this is the reference implementation for new features).

FoleysSynth

examples/FoleysSynth

An example additive synthesiser to show the MidiKeyboardComponent and how to create a nice GUI with PluginGuiMagic.

FoleysSynth Screenshot

Deploying

In the module there is a define called FOLEYS_SHOW_GUI_EDITOR_PALLETTE. By setting this to 0, the editor is completely excluded from the build.

You can save your GUI to an XML and add it via BinaryData to the project. Alternatively you can supply only a style definition and let the GUI components be automatically generated each time.

Licensing

The code is supplied under the BSD-3 clause license, free to use for non-commercial purposes.

To use PluginGuiMagic in commercial products, you should buy a license on our web-page.

To check the pricing and buy licenses please look at https://foleysfinest.com/developer/pluginguimagic

License holders will get priority on bug reports and feature requests.

Contributing

Any contribution in form of feedback, suggestions, criticism, test results and code pull requests are very welcome and highly appreciated.

Enjoy using the GUI editor and let me know, how it goes.

Daniel - developer@foleysfinest.com