GetDunne Wiki

Notes from the desk of Shane Dunne, software development consultant

User Tools

Site Tools


getting_started_with_the_projucer

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
getting_started_with_the_projucer [2017/08/29 20:01]
shane [Reopening the project in the Projucer and re-generating the output]
getting_started_with_the_projucer [2017/08/31 12:28] (current)
shane [Getting started with the Projucer]
Line 3: Line 3:
 The JUCE Projucer is a code and IDE-project generator. You specify what kind of project you want (e.g. GUI application, Audio Plug-In, etc.), and the target IDEs you intend to work with (e.g. Visual Studio, XCode), plus some other details such as a project name, and the Projucer will generate a complete project/solution for each IDE, including a few "starter" code files. You can then open each project/solution in the appropriate IDE, click on "Build" and within a few minutes have a working app or plugin for your target platform. The JUCE Projucer is a code and IDE-project generator. You specify what kind of project you want (e.g. GUI application, Audio Plug-In, etc.), and the target IDEs you intend to work with (e.g. Visual Studio, XCode), plus some other details such as a project name, and the Projucer will generate a complete project/solution for each IDE, including a few "starter" code files. You can then open each project/solution in the appropriate IDE, click on "Build" and within a few minutes have a working app or plugin for your target platform.
  
-Well, that's the theory. In practice, there are lots of little details to understand, which can be overwhelming when you're just getting started. On this page I'll take you step-by-step through building a synthesizer plugin for Windows (VST v2.4) and Macintosh (AU v2).+Well, that's the theory. In practice, there are lots of little details to understand, which can be overwhelming when you're just getting started. On this page I'll take you step-by-step through building a synthesizer plugin called **VanillaJUCE** for Windows (VST v2.4) and Macintosh (AU v2).
  
 ===== Creating your first project with the Projucer ===== ===== Creating your first project with the Projucer =====
Line 144: Line 144:
  
 Click on the black button labeled "Set copy-mode for all modules..." and choose "Set all modules to copy locally" from the resulting pop-up menu; all entries in the "Make Local Copy" column will change to "Yes". When you close your Projucer project, not only will the various IDE project/solution files get rebuilt as usual, a new subfolder called //modules// will be added to your project's //JuceLibraryCode// folder, containing all of the JUCE module source files your project requires. Click on the black button labeled "Set copy-mode for all modules..." and choose "Set all modules to copy locally" from the resulting pop-up menu; all entries in the "Make Local Copy" column will change to "Yes". When you close your Projucer project, not only will the various IDE project/solution files get rebuilt as usual, a new subfolder called //modules// will be added to your project's //JuceLibraryCode// folder, containing all of the JUCE module source files your project requires.
 +
 +If you're using GitHub, your next commit will take some time, as //git// absorbs all of the many newly-added JUCE source files. The result will be worth it, though, because it will make your GitHub repository entirely self-contained. When Roli eventually releases the next version of the JUCE library, which quite probably includes code-breaking changes, your published code will continue to use the older versions which have been checked-in along with your own code, and hence won't break.
 +
 +===== Other things you can do with the Projucer =====
 +The Projucer is an evolving software product. It has many other features and capabilities I haven't touched on here, and I encourage you to explore them at your own pace. It includes a "live build" capability, whereby it can work essentially as an IDE, complete with a syntax-coloring source-file editor, but I confess I haven't found this very useful. I'm more comfortable working in Visual Studio or Xcode. The live-build capability seems to be something of an experimental new feature, related to the Projucer's built-in GUI Editor.
 +
 +The Projucer's GUI editing features also appear to be somewhat experimental, and so far, seem mostly useful for creating stand-alone GUI applications. The basic idea is that, in the File explorer tab, you can right-click and choose "Add New GUI Component..." and specify a new class name, and the Projucer will create a ''.h''/''.cpp'' file pair for a new class derived from JUCE's //Component// class. When you click on the ''.cpp'' file in the File explorer, the right window will not only show the C++ code, it will also allow you (with tabs along the top of the edit view) to see and edit a graphical view of the GUI layout. This can even work together with the Projucer's live-build capability, to allow you to open and interact with a live version of whatever kind of GUI view you're defining.
 +
 +This is all very exciting and high-tech, but to be honest, I don't like working this way. It requires that your source-code files be peppered with special comments, which guide the Projucer's GUI Editor in parsing it, and your own additions must be carefully confined to specific regions designated by these comment-tags. I find the Projucer's GUI editing features more useful simply as a tool to generate known-good JUCE GUI code.
 +
 +The way I use the Projucer for GUIs is to create a new GUI Application project, use the GUI editing features to lay out a basic GUI incorporating all the elements I'm interested in (buttons, sliders, etc.), then generate the project and look inside the generated ''.h''/''.cpp'' files for code I can cut-and-paste into the GUI parts of, say, a synthesizer plugin project (working in my trusty IDE). In this respect, the Projucer is simply a dynamite adjunct to the JUCE API documentation, which is pretty complete but doesn't include any working examples. What's great about the Projucer is that it always generates working code. This is how I developed the tabbed GUI used in the VanillaJuce synthesizer plugin.
  
  
getting_started_with_the_projucer.1504036876.txt.gz ยท Last modified: 2017/08/29 20:01 by shane