Hello Will and all,
First of all: your book and RackAFX are awesome. It just gave me the jump start I needed to create my first own VST synth in very short time.
But after having the synth working fine in RackAFX (6.2.6) with a custom GUI, I somehow fail to make the VST plugin work in VST Hosts/clients.
Here are my main issues:
1) I cannot manage to bring the GUI desiged with the RackAFX GUI designer to work in the VST plugin in the VST host applicaton. Within RackAFX it works perfectly though.
In the project settings I enabled “Make VST2 compatible” and “Use RackAFX Custom GUI” and exported the VSTwithout problems (well I had to migrate the generated VS Project from VS 10 to VS 13 which I am using - is that an issue?). But after building the VSTs dll there is no custom GUI available for the plugin. I tested it in VSThost and Reaper which both support custom GUIs. I tried 32 and 64bit builds. What I noticed is that in the generated VST .cpp the line // cEffect.flags |= effFlagsHasEditor; is still commented out. Is that right? When manually uncommenting and rebulding I get the option for a custom GUI in the VSThost apps but an empty window comes up when using it.
Any ideas on this one?
2) Even more a problem: as I am developing a synth plugin I checked “Output-only synth plugin”. I tested that on two different PCs – while that works in RackAFX on the one machine it does not on the other. The second PC has an external audio Interface with ASIO drivers installed. When loading the plugin in RackAFX here, no sound is generated. But when I load and play an audio file from the menu it suddenly works. To me this seems to be related to the output-only handling, Can that be the case? When using the Microsoft Sound Mapper as output device it seems to work – but this not helpful for VSTs then.
When generating the VST plugin sound output fails on both PCs. The plugn just remains silent. I don’t know it is related but in the generated VSP .cpp I found // stereo IN etNumInputs(2);. which I found remarkable as I chose it to be an output only plugin.
3) Is there a maximum number of controls on a custom GUI? I used all predefined sliders and defined some more in the alpha wheel that I added as knobs to the custom GUI. But after having 50 on the GUI it will not let me add another one. OK – 50 is a lot I know ...
Any help is very much appreciated.
P.S: I know VST synths are more a subject of your new book that is not yet available (at least here in Germany) – this is why I already pre-orderd it on Amazon. I am looking forward especially to the sections about creating anti-aliased (saw!) waves which I found quite hard to get right but finally managed it with a Poly BLEP approach
regarding 1): I stumbled across this, too. The RackAFX-GUI is built into the DLL RackAFX itself uses. It will "be" a VST2-DLL when the MakeVSTCompatible option is set. The EXPORTED Vst Project only contains the DSP part, no UI. But you can directly load the RackAFX DLL located in the rackafx-plugin folder (Menu->PlugIn->Open PlugIns Folder) into your (32 bit) VSTHost. Notice the difference in filesize to the VST dll generated from the Export VST project. That's the RackAFX UI
Hope this helps
Thomas is correct: in the current version of RackAFX, the GUI will only be exported for the Make VST Compatible option, and you get a VST2 Plug-in. If you use Make VST (or Make AU) then you are responsible for the GUI. And yes there is a limit of 40 knobs/sliders in the current version for the GUI (there are also only 40 sliders on the main UI). However, you can always embed 1024 more controls in the "LCD Control."
But there is good news:
I am working on a new version that will be released to coincide with the synth book. The GUI designer is completely re-designed and the GUIs look very slick and you can add your own graphics too. In this new version, the GUI will be exported to all ported projects.
Make VST Compatible: you get one DLL that works as RAFX, VST2 and VST3 with GUI exported.
Make VST (Button): you get an exported project that will compile as both VST2 and VST3 with the GUI exported also.
Make AU (Button): you get an exported AU project with GUI exported also.
There is no limit to the number of knobs/sliders in the new GUI Designer.
The porting work is all done, I am currently finishing up the GUI Designer.
PS: my students and I have tested the Make VST Compatible option on many VST clients and we have not found a VST client that will not load the VST2 DLL, however, at least one client (Reaper, I think) does not show the GUI exactly correct.
Hello Will and Thomas,
thank you so much for the quick replies. I have it working now with your help.
I somehow misinterpreted the concept of "exporting to VST". The copied DLL from the plugin folder shows the GUI correct in the VST client.
From there I was also able to narrow down my second problem. It was caused by a coding error in the plugin's processAudioFrame method. By mistake I somehow changed the value of pInputBuffer (ouch!) which caused some problems in the VST clients. It is remarkable that this did not seem to be any problem within RackAFX.
I am looking forward to the new features in the GUI designer. It will be cool to use own designed backgrounds and controls.
in the current version of RackAFX, the GUI will only be exported for the Make VST Compatible option, and you get a VST2 Plug-in. If you use Make VST (or Make AU) then you are responsible for the GUI. And yes there is a limit of 40 knobs/sliders in the current version for the GUI (there are also only 40 sliders on the main UI). However, you can always embed 1024 more controls in the "LCD Control."
in my plugin I have now 152 parameters. Most of them I added in the LCD Control. The code compiles fine and the plugin works great with all parameters.
But: I am no longer able to change newly added parameters - this is unchanged from RackAFX 6.2x to 6.5.x The Alpha Wheel setup only shows ~ 130 parameters. This is a problem of course when I need to change the parameter settings. I could of course do it in the cpp code manually but this would break RackAFX editor compatibility / changes will be always overwritten.
As far as I have seen - the truth for the parameters in RackAFX is not solely in the plugin's main cpp file. You also store the meta data in the .prj prohect file, correct?
Can it be that my .prj file is somehow out of sync with the coding? Is there a way to generate a new .prj file out of the code?
Yes the .prj file contains a duplicate plugin and the flow always goes from .prj to plugin. When you hit the "Resync Code" button this process occurs. It also occurs programmatically whenever you add/remove/edit the GUI controls. There is nothing I know of in the Alpha Wheel setup that would limit the number of controls.
I would like to take a look at your project - don't worry, I am only interested in the RackAFX part - just the sliders and the project .h and .cpp file -- you can delete all the synth "guts" if you want (or leave it - I don't care).
Use the Contact form to send me an email if you don't already have my address and we can set something up via dropbox so that I can replicate your problem. I have never put more than ~25 controls in the LCD.
thanks for the offer. It seems that I was able to correct it on my own. The last slider that was displayed in the alpha wheel setup was an UINT 0..1 slider. All sliders I added afterwards were not displayed.
I just deleted and recreated this slider in the alpha wheel setup and now everything is there again.
Thanks for the help.
Most Users Ever Online: 152
Currently Browsing this Page:
Guest Posters: 1
Newest Members:Tania, markburrell, Roland, Paris Stam, Caleb, Alan Miller, ben_farrelly, stevo3985, Conrad, Andrii
Moderators: W Pirkle: 411
Administrators: Tom: 74, JD Young: 80, Will Pirkle: 0, W Pirkle: 411