Can I Pick And Choose The Pieces of Juce That I Use?


#1

I came across it while investigating creating VST and AU hosts for audio apps. The time required to develop multiplatform plugin hosting would make the commercial license for Juce worth it in itself, so I’m strongly considering picking up Juce development. I’m an expert with wxWidgets and have a large number of applications that use it, and am still using it for current development. So here are my two burning questions:

  1. Can Juce be used in small chunks, just individual pieces/modules, and can it be used without the GUI components? Maybe I only want to use the AU/VST host support in one app, maybe only the MIDI pieces in one app.

  2. Can it coexist peacefully in the same app with wxWidgets or Qt? I have code that has been written in both, but would see Juce as a good way to fill in gaps that those toolkits don’t support well (mostly audio, but some other pieces too).


#2

Well, you can obviously use as many or as few classes as you want to, and it all lives in its own namespace so can’t see why it’d be a problem to mix it up with other libraries.

(There is an option for compiling a non-GUI version, which basically leaves out all the messaging/UI classes so you can use it in a command-line app. But obviously plugins make heavy use of the UI code, so that wouldn’t be an option).


#3

I have a similar question WRT the commercial license and JUCE: is it possible to exclude some classes/code and still use JUCE?
In other words, assuming I have a commercial license, and is it possible to use JUCE without another commercial license? Can it be done to exclude any code/class that requires a commercial license other than JUCE? I know that for ASIO SDK, there is a specific license requirement from Steinberg.

Here is the (incomplete) list of things I do not want to include in my development:
Cryptography
Large prime number generator
RSA Key generator and encrypter
BlowFish codec
MD5 hashcode creation class
Miscellaneous
Zip file format parser can decompress and create zip files.
128-bit GUID generator
Various platform-specific utilities, e.g. registry read/write functions on Windows; NSString converters on the Mac.
High-accuracy performance counter class allows timing of code sections and averaging over multiple runs.


#4

As far as I’m aware juce is bundled only with free 3-rd party libraries (flac, ogg etc.) this means that you can build a project with juce and don’t need any other licences apart from the juce one. If you choose to use some 3-rd party libraries which you download yourself you are responsible for any licensing terms that need to be met.

The one caveat I can think of to this is the MP3AudioFormat class which you may need to licence yourself. On Windows or Mac you can always use the native AudioFormats for MP3 reading anyway.


#5

Once you go JUCE you will never look back


#6

[quote=“dave96”]As far as I’m aware juce is bundled only with free 3-rd party libraries (flac, ogg etc.) this means that you can build a project with juce and don’t need any other licences apart from the juce one. If you choose to use some 3-rd party libraries which you download yourself you are responsible for any licensing terms that need to be met.

The one caveat I can think of to this is the MP3AudioFormat class which you may need to licence yourself. On Windows or Mac you can always use the native AudioFormats for MP3 reading anyway.[/quote]
Dave, thanks for the quick reply. Where can I get an official reply from Rawmaterials? By emailing the same question to Jules?


#7

The only things that’d require a 3rd-party license would be ASIO, VST and MP3. But I’ve disabled MP3 by default, and it’s impossible to compile the VST or ASIO bits if you don’t have their SDKs, so there’s no danger of “accidentally” including them!


#8

Thanks for the quick response. I looked at the code, and found that I might modify the source code of JUCE. Does the commercial license allow the modifications?
Another thing is about the mixed mode development: technically, is it possible to mix JUCE with another framework? For example, on Windows, can MFC/ATL/COM be used along with JUCE? How about Win32 APIs? Also does the commercial license cover this kind of usage?


#9

[quote]Does the commercial license allow the modifications?
Another thing is about the mixed mode development: technically, is it possible to mix JUCE with another framework? For example, on Windows, can MFC/ATL/COM be used along with JUCE? How about Win32 APIs? Also does the commercial license cover this kind of usage?[/quote]

Of course - I don’t care what else you put in your app, that’s your own business!


#10

[quote=“jules”][quote]Does the commercial license allow the modifications?
Another thing is about the mixed mode development: technically, is it possible to mix JUCE with another framework? For example, on Windows, can MFC/ATL/COM be used along with JUCE? How about Win32 APIs? Also does the commercial license cover this kind of usage?[/quote]

Of course - I don’t care what else you put in your app, that’s your own business![/quote]
Thanks! Our company is very strict when it comes to license.