I originally planned on releasing v6.6 in May 2015 with bug fixes and some new features, then another version (6.7) around September to kick off the fall semester. However, while implementing some of the new GUI designer features I received an email from a user who had an interesting request - the ability to do some simple manipulation of the GUI from within the plugin itself. I took that idea and ran with it, creating a new sort of GUI sub-API in addition to adding the often requested TABBED GUI feature using the UIViewSwitchContainer. Here's a list of what's coming in v6.6 which should be released before the end of July 2015:
New GUI Features:
- create tabbed GUIs that are as professional looking/feeling as any plugin GUI you've used; you can also embed tabbed containers inside each other
- off-screen-views give you an infinite drag-and-drop area for composing your view containers for the tabbed view switching
- added the VSTGUI4 Vertical and Horizontal switches for implementing both the tabs for view switching, and also for highly customized radio button controls or other UINT selection controls
- added the VSTGUI CView object (see GUI sub-API below)
- added horizontal LED meters, both normal and inverted (right to left)
- added support for log and volt/octave controls
- added support for non-square knob control graphics (thanks Davis Sprague)
- attack/release on meter ballistics now work properly in GUIs (thanks JD Young)
- RAFX, AU and VST2/3 meters now all react identically with the same ballistics and timing
- added knob-mode override so you can dictate how the mouse controls the knob (linear, circular, relative circular or let-host-decide) Thanks again, Davis Sprague.
New GUI Sub-API has three levels:
A) Beginner (no knowledge of VSTGUI4 required)
Easily manipulate GUI controls from within your plugin to show/hide controls, move controls around, change the size of controls, change the text on text labels and change GUI graphics (for example, you can change a knob graphic based on a control selection, or you can change the background graphics, etc...). This is done with minimal coding and you don't need to know VSTGUI programming. Thanks to Bruno at Xhun Audio for the idea!
B) Intermediate (some knowledge of VSTGUI required)
I added the "custom view" paradigm from VSTGUI4 which allows you to subclass any GUI control to override control behavior (I use several custom views in the Make VST and Make AU ports -- now you can too). This lets you alter the way the control responds to mouse clicks or change the way the control draws itself.
For example, the default behavior of the momentary button/switch (CKickButton) is to deliver 3 click notifications for each left mouse button click; I show you how to subclass this control and fix it to only deliver one click notification (altering mouse reaction). In another example, I show you how to subclass the knob control to make it operate in reverse (move mouse up, knob turns counterclockwise) as an example of overriding the drawing functions.
*** CView ***
The real power of the custom view paradigm happens when you subclass the CView base class object - this allows you to:
1) implement VSTGUI4 controls that are not available in the RackAFX GUI Designer such as the check-box control, OpenGL Animation control, row/column control (aka ListControl (WinOS) or TableView (MacOS)), splitter-view control, or any other control you like.
2) create custom graph controls for your data - you can plot audio waveforms, FFT results, or whatever you like - I'll show you how to make a super cool scrolling audio waveform view like the DAWs use and you will be surprised at how little coding it actually takes. You can also create oscilloscope or other dynamic, animated controls.
3) create any kind of custom control that displays data for the user - you can make simple animations, a SMPTE time indicator window, or anything else you can dream up - completely open ended!
4) create any kind of custom control that the user interacts with, for example a combination knob/button where the center of the knob is actually a button that can be clicked - likewise completely open ended!
You can now roll your own GUI from scratch using any platform independent GUI library you wish - I will give you an example of a fully custom GUI using VSTGUI4 coded entirely in your plugin. For some people, creating your GUI programmatically might be a turn-off, but this is the way many of the professional companies design their GUIs. If you want full control and the most professional GUI, this may be your best option. For example, you can do things like launch file-open dialogs, create modal dialogs - the sky is the limit with this option. With my example code, you may be pleasantly surprised to find out that VSTGUI4 coding is actually not crazy-difficult.
- added Preset support so your first 16 RackAFX presets automatically get transferred to VST2/3 ports; this is also true for the native VST2/3 RAFX DLLs as well. This works the same way for both WinOS and MacOS VST2/3 ports. The presets were already working properly for Make AU.
- fixed bug in CWaveData when opening some exotic kinds of .WAV files that are missing core information
- fixed LED Meter bug (thanks Hector) that caused re-painting issues for the inverted meters as well as flickering for meters that have outlines
- fixed the RMS mode in CEnvelopeDetector -- it now works properly and has a nice affect on compressor designs! Thanks Tom Beer!
- fixed multiple issues with the LCD Control involving it suddenly disappearing; I also removed the ability for you to accidentally move items out of the LCD guts into your GUI which also caused confusion with some people when using this control; also fixed a crashing bug when text labels are added to the GUI after the LCD control (Thanks Akhil)
- fixed issue with lookuptables.h not copying properly for some Make AU ports
- other minor bug-fixes and enhancements to improve usability
I'm now working on the libraries (Sock2VST3) and implementing the new GUI features for the AU ports - I am SUPER-STOKED about this new release! While the v6.5 GUI Designer was certainly a major step up from the old non-platform independent version, it still lacked the tabbed view ability and other advanced features that users have requested. v6.6 finishes off the GUI designer, giving you advanced control and design for the most professional looking GUIs you've ever implemented!
June 25, 2015
One Question regarding the new version.
I would like to keep my 6.27 Version installed, because it is very easy to test new ideas there. But the new versions are ueing the same working dir's etc, so that it is difficult to switch between 6.27 and 6.5 or 6.6.
Do you see any solution for my problem ?
Well, I would recommend upgrading to v6.5 or v6.6 as soon as it is released. There is nothing in v6.6 (or v6.5) that makes it more difficult to use that v6.2. The advanced GUI API is only for people who need move advanced GUI capabilities.
Nothing regarding the ease of testing algorithms has changed in these new versions.
But if you are still determined to keep v6.2 then I think the options would be to either 1) change the location of the installation during the initial phase of the installer, or 2) rename your v6.2 folder to ../Program Files (x86)/RackAFX v6.2, then do the installation as normal. RackAFX should run out of the v6.2 directory as normal (though the link on the desktop will not work) - I do not use the Registry nor do I hardcode the RackAFX exe path in the code.
All the best,
I upgraded to the newest 6.6 version, and this version is really great!!
Nevertheless I would like to keep my 6.27 installed.... The Problem is:
Both 6.27 and 6.6 get their dir path's (as far as I can see) from the first installed path - and this is allways the same for example c:\doc ... \user..\appdata...\RackAFX (- if the computer has only one user, or if RackAFX is installed for all users.)
If Ichange the dir path's in Preferences for one version the other one has the same settings. The Plugins folder cannot be changed at all.
Is there a file, where this dir path's are taken from? Socket.log ??
RackAFX conforms to the Win7 and greater paradigm of using the appdata folder for app specific stuff. RAFX queries the operating system for the app data folder and uses what it receives as the path. RAFX does not attempt to create separate version-specific appdata sub-folders; doing so would be a nightmare.
socket.log does indeed contain the paths of the various directories such as wave file, and VST/AU ports. However, the Plugins folder can not be renamed (neither can the IR1024, Skin nor Stock Objects folder).
The appdata folder contains stuff that is supposed to be version-non-specific, but it sound like you want to keep everything separate. There are a couple of approaches here.
The easiest way to do that is to copy and rename the appdata/RackAFX folder to RackAFXv6.6 or something like that. When you want to use a specific version, rename the proper appdata sub-folder to RackAFX .
Another option is to have two socket.log files, one for each version that you likewise would need to rename when switching versions of RackAFX. But, you would still have only one plugins folder.
BTW - the v6.6 plugins you write are backwards compatible, so v6.2 will still load v6.6 plugins, but the new Custom Views will be blank. And of course v6.6 will load v6.2 plugins.
Most Users Ever Online: 55
Currently Browsing this Page:
Guest Posters: 1
Newest Members:frankthetank, dhodgson, Wanderer, mister1234, Evan Galvanek, Rowan Fraser, patrickbarr1984, Ray C., Jon R., Pat
Moderators: W Pirkle: 344
Administrators: Tom: 69, JD Young: 80, Will Pirkle: 0, W Pirkle: 344