New plugin demo project

I’ve just updated the plugin demo, using the new Jucer to generate the project files for it, and have beefed-up its features a bit by adding a synth and delay effect.

As the projects are all new and auto-generated, I’d be interested to hear if anyone has any problems with it…

No problems here. In fact, it compiles “out of the box” for me in OSX, without any modification of the projects, include paths, etc. I have set up my SDKs such that the VST SDK is located at ~/SDK, but still, I am used to having to modify the Demo project to get it to build on my 10.5 system.

The plugin itself works in both VST and AU form in Live 8. If I open both plugins during the same Live session, the GUI gets a little wonky, but this is a known bug, and I don’t think that this problem manifests itself in any other host (and if it’s that big a deal, I’ll just have separate VST and AU builds).

So…built with the new Jucer, huh? I gotta check this out…

Nice work, Jules!

Sean Costello

The cute thing about using the new Jucer is that if you need to edit any of the values in JucePluginCharacteristics.h, or enable VST/RTAS/AU, or change the SDK paths, etc, you can (and should) do all of that in the Jucer, and just re-save the project.

The ultimate aim is that you should never have to modify any project settings directly in XCode or MSVC - those project files should be treated as temporary files, and the jucer should know everything necessary to completely auto-generate them. So if you find a situation where you do need to modify a setting because the jucer can’t do it, let me know and I’ll try to add it to the Jucer’s repertoire.

It would be nice if the FIle browser, remembered the last directory chosen, when adding source files it speeds things up (Xcode does that).

Is it possible to add multiple projects in Xcode, like in VS. I have a lot of plugins and i’d like to do a Batch build within one project (i use xcodebuild). I can add the projects to a project but all that shows up are two targets i can’t really do anything about. Is there a way to merge many projects into one ?

I tried to make the file browser smart, by making it try to figure out the directory to show you based on the files that are already in the group you’re adding to. You know you can just drag-and-drop files into the project, too? That might be easier if you’re doing a lot of them.

Can’t really think how multiple targets could be done in a way that would work across all platforms… Maybe in a future version! But if you’re running a build script, why not just make your script run two different xcodebuilds?

I was able to compile “out of box” on Mac OS 10.6 an I can load the AU and VST in Live 7. When I load it in AU Lab I get an assertion failure from juce_Synthesizer line 157 that samplerate have not been set yet.

Peter

Ah, yes, thanks - that’s a silly mistake which I’ll sort out!

Yes i do batch build using a shell script and it works OK, i just though this is possqible in Xcode.

In terms of directories, once i create a new project in my directory (~/devel/ctrlr/Controllers/Name/Build/Mac) when i try to add sources, it alwyas show a dialog in the Root dir (/), so it’s not THAT smart, after i choose some files, and want to add new ones, once again it’s ROOT (not the last directory), kinda annoying.

Also would it be possible to set the location of the project files created, cause this location kinda determines some of Include Paths i have (relative like …/…/…/) now once i use Jucer, those paths are incorrect (i need to add two more …/…/ to make them work).

Ok, I’ll double-check that. It shouldn’t do what you’re describing.

The ‘target project folder’ already lets you set the location that each exporter puts its files in. Or am I misunderstanding…?

(yeah, sorry, it used to work like I said but I broke it. Will fix asap…)

I’ll check the project dir asap.

I was also wondering would it be possible for different type of audio plugins VST/AU/RTAS/Standalone to have different targets, this helps alot when doing batch builds.

Also there is not Standalone option.

Where can I get this project? I see no the main sourceforge, and the other site, well that looks like just plain text files. Am I missing something?

~Rob.

Can’t really see how you’d separate the different plugin types without just creating more than one jucer project.

Well i have a project, that has 3 plugin types (AU/VST/Standalone) each a different target, the “witch plugin to build” define is in the project preferences as a preprocessor define for the project, so is the ObjC prefix and include paths, the targets are named PluginAU/VST/Standalone but product names remain the same. It works for me and is very convenient.

What’s the advantage of that over building a single product and then renaming it as the different targets?

you can do 3 types of plugin in one batch build, you can debug all 3 easily, AU/RTAS source is not needed in the VST builds, and i think it’s much easier to have all three options before your eyes and have 3 sets of settings for each one, 3 sets of install scripts and so on.

btw, latest tip error when trying to build new jucer

CompileC "build/The Jucer.build/Release/The Jucer.build/Objects-normal/ppc/jucer_DrawableDocument.o" "/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/../../Source/model/jucer_DrawableDocument.cpp" normal ppc c++ com.apple.compilers.gcc.4_0
    cd "/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX"
    /Developer/usr/bin/gcc-4.0 -x c++ -arch ppc -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -O3 -mdynamic-no-pic -Wreturn-type -Wnon-virtual-dtor -Wformat -Wparentheses -Wswitch -Wunused-variable -D_NDEBUG=1 -DNDEBUG=1 -mtune=G5 -fvisibility=hidden -fvisibility-inlines-hidden -mmacosx-version-min=10.4 -iquote "/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/The Jucer.build/Release/The Jucer.build/Jucer-generated-files.hmap" "-I/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/The Jucer.build/Release/The Jucer.build/Jucer-own-target-headers.hmap" "-I/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/The Jucer.build/Release/The Jucer.build/Jucer-all-target-headers.hmap" -iquote "/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/The Jucer.build/Release/The Jucer.build/Jucer-project-headers.hmap" "-F/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/Release" "-I/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/Release/include" "-I/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/The Jucer.build/Release/The Jucer.build/DerivedSources/ppc" "-I/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/The Jucer.build/Release/The Jucer.build/DerivedSources" -c "/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/../../Source/model/jucer_DrawableDocument.cpp" -o "/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/build/The Jucer.build/Release/The Jucer.build/Objects-normal/ppc/jucer_DrawableDocument.o"
/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/../../Source/model/../../JuceLibraryCode/../../../juce_amalgamated.h: In static member function 'static void* juce::Atomic::swapPointers(void* volatile*, void*)':
/Users/atom/devel/juce/extras/Jucer (experimental)/Builds/MacOSX/../../Source/model/../../JuceLibraryCode/../../../juce_amalgamated.h:3111: error: reinterpret_cast from type 'void* volatile*' to type 'int32_t*' casts away constness

Ah, that’s a PPC build error, that’s why I missed it. Thanks, I’ll tidy it up.

Should contain vu meter?

I’m loving the little keyboard sine wave generator! Very useful for testing things like modulated reverbs. The abrupt on/off also provides a nice transient for testing.

Sean

just checked the new jucer and made a new plugin, good work!

small hint: In the VS-project it adds “…\JuceLibraryCode\AppConfig.h” as a additional include directly, i think this should be “…\JuceLibraryCode”