Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
RackAFX1 is Officially Sunsetted - RackAFX7 will be released by Jan 1, 2019
Avatar
W Pirkle
Admin
November 10, 2018 - 5:03 pm
Member Since: January 28, 2017
Forum Posts: 362
sp_UserOfflineSmall Offline

The current version of RackAFX v6.9.3.0 is the last version that will be available. It will remain download-able to support the original FX and Synth books, but no further development or maintenance will occur. This version requires VST SDK 3.6.10 and AAX SDK 2p3p0 and will not be updated to any future VST or AAX SDKs. If you intend on continued use, then be sure to find, save, and backup the VST and AAX SDKs above. 

RackAFX7 will be released on or before Jan 1, 2019. This version will support the latest VST and AAX SDKs and it will export projects in the new ASPiK format. 

While RackAFX1 has well served many newcomers to plugin programming, the plugin project core has code that dates to 2004 and does not conform to C++11 standards. In addition, it requires linking to a massive library to allow dual functionality as a VST2 or VST3 plugin, and this bloats the plugin size.

RackAFX7 is specifically designed to use the ASPiK framework - this is a separate product, designed independently of RackAFX, and will have its own website, Git, etc... This new framework removes the limitations and outdated code base of the original product.

There will be numerous tutorial videos for both existing RackAFX users as well as newcomers. The main interface to RackAFX has changed slightly, but only in a good way that allows even faster prototyping of your plugin core and proto-GUI. The integration with VSTGUI is pure - it only uses the approved UIDescription mechanism and there are no custom coded VST Editor objects as there were with the AU and AAX ported projects that RackAFX1 exported. This is not only easier for me (no more hacking of VSTGUI editor objects, and re-hacking them with each new VSTGUI4 release that breaks the old code) but it is also lean, clean and mean. Each RackAFX plugin, and its associated ASPiK exported project, fully contains all the VSTGUI implementation that is required in a completely proper and legal manner. 

Videos will be posted in the coming months to get you up to speed - if you already use RackAFX then it will be easier than you think!

- Will

Avatar
Eddie
Member
Members
November 12, 2018 - 11:04 am
Member Since: July 11, 2017
Forum Posts: 18
sp_UserOfflineSmall Offline

Will we still have to use  CMAKE?

Yell

Avatar
W Pirkle
Admin
November 12, 2018 - 11:42 am
Member Since: January 28, 2017
Forum Posts: 362
sp_UserOfflineSmall Offline

Yes - CMake, as archaic as it may seem, is an amazing tool and a big lifesaver for me, RackAFX7 and ASPiK. 

Have you seen the AAX SDK? They do not use CMake and instead have to ship kludged up VS and XCode project files.

- Will

Avatar
TheSmile
Member
Members
November 13, 2018 - 9:27 pm
Member Since: June 25, 2018
Forum Posts: 43
sp_UserOfflineSmall Offline

So VST2 won't be supported anymore?

Avatar
W Pirkle
Admin
November 14, 2018 - 9:29 am
Member Since: January 28, 2017
Forum Posts: 362
sp_UserOfflineSmall Offline

The RAFX2 plugin not run automatically as a VST2 or VST3 plugin - those days are over. But you can always export the project as ASPiK/VST3 and build it separately, and properly - lean. 

As of VST3 SDK 3.6.11, the old base class VST2 files are no longer there (the wrapper is, and the derived classes are too). Steinberg wants VST2 to go away and you now need to have a license to distribute VST2 plugins - it is only for developers that already had one so they are grandfathered in. 

In addition the VST2 obsolete wording also involves prohibiting of "reverse engineering" the VST2 SDK and I'm not sure that the old Sock2VST library the RAFX1 plugins link with would qualify or not - but I don't want to find out! 

- Will

Avatar
haydonc
Member
Members
December 4, 2018 - 5:10 pm
Member Since: January 5, 2016
Forum Posts: 5
sp_UserOfflineSmall Offline

Will RAFX7 be more compatible with multichannel plugins?

Avatar
W Pirkle
Admin
December 5, 2018 - 8:30 am
Member Since: January 28, 2017
Forum Posts: 362
sp_UserOfflineSmall Offline

RackAFX itself is still setup for mono/stereo. However, the ASPiK exported projects will allow you to access all of the multi-channel formats via the various APIs. In fact, ASPiK was designed with multi-channel support at the top of the feature list. And, different APIs support different channel formats - e.g. VST3 supports some of the higher channel count formats (22.1) while AAX supports some of the really obscure Ambisonics formats.

There are a couple of issues involved - one is that RackAFX is designed to be a rapid algorithm design tool and does not try to be a DAW. Another has to do with the various sub-formats and fold-down variations that a DAW is ultimately suited for and RackAFX was never designed for.

That said, I still do plan on adding multi-channel I/O in the future - this seems especially important to grad students who do multi-channel processing. 

- Will

Avatar
abeodesee72
Member
Members
January 2, 2019 - 5:59 am
Member Since: March 13, 2017
Forum Posts: 15
sp_UserOfflineSmall Offline

i've reading your new book is due around may can pre-order on amazon it says, just wondering any updates on ASPiK ?

Avatar
W Pirkle
Admin
January 2, 2019 - 10:38 am
Member Since: January 28, 2017
Forum Posts: 362
sp_UserOfflineSmall Offline

Putting the finishing touches on ASPiK right now and putting up a new website for it. Steinberg released SDK3.6.12, which caused a delay as they changed a bunch of stuff in their CMake implementations that I had do wrestle with - but it is all working correctly now. Avid also released a new SDK 2.3.1 which is also integrated and working properly - that was an easy one.

My new self-imposed deadline for ASPiK has been pushed to Jan 14 of this year, which is also the first day of the semester at the U where I teach. The majority of this time is in the website development and a couple of sample plugins to get people started, as well as 3 sets of video tutorials; I want to have all of that in place prior to launch. I have also completed the doxygen documentation so that ASPiK is fully self contained. Lastly, I have added two utilities for Mac and Windows; the AspiKreator and ControlKoder which allow you to generate fresh projects as well as write a bunch of the parameter init code for you (basically what RackAFX does, but completely independent and stand-alone).

Once ASPiK and its website are up, I will then move to release RackAFX7. We'll be using it in my plugins class so it will also be up by Jan 21 at the latest.

I will post the ASPiK website link here, and RackAFX is also getting its own dedicated site as well (yet another one for me to put up...) 

- Will

Avatar
abeodesee72
Member
Members
January 2, 2019 - 4:36 pm
Member Since: March 13, 2017
Forum Posts: 15
sp_UserOfflineSmall Offline

cheers for all your hard work and info.

Avatar
Werner
Member
Members
January 11, 2019 - 10:57 am
Member Since: March 23, 2016
Forum Posts: 4
sp_UserOfflineSmall Offline

Hi Will,

thank you very much for bringing ASPiK very soon, I can't wait:)

But I'm also interessted in your new book. Amazon still states May 25, 2019.

Is this correct, will it still take so long?

Werner

Avatar
TheSmile
Member
Members
May 19, 2019 - 2:25 am
Member Since: June 25, 2018
Forum Posts: 43
sp_UserOfflineSmall Offline

W Pirkle said
...

In addition the VST2 obsolete wording also involves prohibiting of "reverse engineering" the VST2 SDK and I'm not sure that the old Sock2VST library the RAFX1 plugins link with would qualify or not - but I don't want to find out! 

- Will  

Means - I can't finish a project with RackAFX7 that I started with RackAFX6?

Getting Error: cannot open file 'Sock2VST3_blabla.lib" ...

Avatar
W Pirkle
Admin
May 20, 2019 - 9:39 am
Member Since: January 28, 2017
Forum Posts: 362
sp_UserOfflineSmall Offline

Yes, that is correct. The two products and their plugin projects are completely separated. However there is one thing that is common to both and that is how the project's GUI controls and settings are stored in the project file (.prj) -- this file only contains GUI control lists and settings that are abstracted from either of the APIs. 

So, one thing you can do is to start a new RAFX7 project and then use the familiar File -> Import UI Controls from Project

This will pull in all of your GUI controls, and add them to the plugin core in the ASPiK plugin parameter format. So that is 1/2 of the conversion. 

Then, you can move the code from your RAFX6 project into your RAFX7 project:

prepareForPlay( ) - these sample rate dependent inits are now done in PluginCore::reset( )

processAudioFrame( ) - this function has the same name, but is completely different from RAFX6; you can see the pass-thru code to understand how to pick up input samples, etc... 

userInterfaceChange( ) - this function does not exist directly in RAFX7. It was a sore-point for me, because the function originally caused a thread-safety issue (that was fixed around RAFX5). The GUI updates will automatically happen in a threadsafe manner so when you are processing audio you can access these GUI linking variables to use in the processing. 

I will be putting up some tutorial videos over the next week that will help explain how the new system works, and exactly what its relationship is to ASPiK. This will help you transition to RAFX7. 

The complete separation of RAFX6 and RAFX7 apis was planned from the beginning to update RAFX to more modern programming paradigms and much safer/easier operation. 

Standby for some videos coming up...

- Will

Avatar
TheSmile
Member
Members
July 24, 2019 - 4:06 am
Member Since: June 25, 2018
Forum Posts: 43
sp_UserOfflineSmall Offline

I tried to convert a RackAFX6 project to RackAFX7. The GUI controls are updated fine but the GUI itself is not existent, what in my case means to rebuild the GUI from scratch with about 300+x controls :-/
Any work arround?

Avatar
W Pirkle
Admin
July 26, 2019 - 3:41 pm
Member Since: January 28, 2017
Forum Posts: 362
sp_UserOfflineSmall Offline

RackAFX7 projects were not designed to be updated from RackAFX6 projects. That design decision was difficult, but there were just too many issues with the old GUI embedded libraries.

There isn't a simple way to update the custom GUI all at once, BUT the custom GUI is still contained in the XML file as before. For most users, it is easier to rebuild the GUI from scratch. However it is possible to do with manual editing of the XML file, though this won't be easy and you should definitely make backups of all your files before doing anything. 

The GUI code generator is all now contained in your ASPiK core, which is part of the RAFX7 project, rather than inside of a massive static LIB that your old RAFX6 plugin carried around with it. My advice would be to do a couple of simple GUIs and experiments first, then note how to cobble the GUI back together in XML. 

Control IDs: these are preserved and if you open, then close the GUI designer, the IDs will be updated to match your RackAFX ID values. You can see those in the control-tag chunk of the XML file (PluginGUI.uidesc). 

PNGs: if you look in your old XML file from your RAFX6 project (also .uidesc) you can see how the names of the PNGs connect to the GUI controls. You would need to re-import all of these PNG files back into your new GUI Designer, and for that you'd need to do an export from the old RackAFX for AU, VST or AAX. In those exported projects, you can find the resources folder that has all of the stock PNG files that went into the old RAFX6 GUIs. You would nee to import those files, plus any new files that you created yourself (see the video tutorial for that). In RAFX7, the PNG data is absorbed into the XML file so that you never need to bother with adding resources to Visual Studio or Xcode. 

GUI Control Elements: these are all of the rest of the stuff you did to create the GUI. You can actually cut and paste the XML file code from the old GUI to the new one, but that is going to require finesse and will take time (though maybe not as much as rebuilding the GUI from scratch).

So you would first want to do some experiments with the GUI designer to get good at understanding how the new one packages the PNG data, then copy the elements from the old file over. 

Right now, that is all the advice I can give you, but if I have time in the next few weeks I will address moving the custom GUI from v6 to v7 (currently I am on vacation).

Will 

Avatar
TheSmile
Member
Members
July 27, 2019 - 1:57 am
Member Since: June 25, 2018
Forum Posts: 43
sp_UserOfflineSmall Offline

Hi Will,

thanks for your answer - it's just what i figured out the last days so I rebuilt the whole GUI and changed everything in guiParameterChanged() and so on (my fingers are bleeding).
Now I ran into a few things: 

Strange button behavior: (imported) on/off buttons behave like:
start value = 0 ->0
pressed(should be 1) ->0
pressed again (should be 0) -> 1

Momentary buttons fire 1 on press and release :/

Edit: This is about guiParameterChanged() I think. When I read a button in processAudioFrame() it's okay but as I call methods/functions that's not how it should be (not talking about checking about 250 parameters for changes every frame) ...

I can't access buttons and knobs in the prototype editor which had RackAFX6 ids higher than 1.600 or so (and most buttons start at 3072). Is there another way to access them?
Edit: At least buttons seem not to show up in the Prototype editor. I.e.: I've one button with control number 45. In the editor it shows up as Knob Grp 45 (like nothing there). When i choose to make a new control here and select 2-State-Switchit shows me the values of the original Button ...

midiNoteOn() and m_HostProcessInfo and so on are gone - I'm poking arround :-/
edit: m_HostProcessInfo is now processFrameInfo.hostInfo & audioProcDescriptor.
Btw - you have a funny typo there: processFrameInfo.hostInfo->uTimeSigDenomintor

Every change in the GUI editor needs a complete Rebuild, what is really time consuming.

The edit windows (GUI editor) are to small - in RackAFX 6 the control link was just the controls name -now it's controlID::nameOfTheVariable so in my case it doesn't fit and I can't change the value with the keyboard because I can't read the whole name (extra mouse action).

As in RackAFX6 there's no way to declare variable names of controls as array. That would be a great feature even if the user had to declare the array himself.

There's a few more things - but I'm still investigating 😉

I'm trying to buy your new book - but the fastest delivery (as I don't own a kindle) is in about 3-4 months ...

Sorry to disturb your vacation - have fun!

Avatar
W Pirkle
Admin
July 31, 2019 - 3:17 pm
Member Since: January 28, 2017
Forum Posts: 362
sp_UserOfflineSmall Offline

Hey man - OK, I have a break to answer a couple of things, but will be back in the office next week.

For the momentary button issue: one change I made was to make some of the stuff I had added to VSTGUI more transparent so that users did not get confused over the behavior of some controls, which differed from the stock VSTGUI stuff, and the VSTGUI documentation. The old custom controls are now visible to you (they had been in a static library) which means that you can modify them as you like. The ASPiK documentation shows these new objects here:

http://aspikplugins.com/sdkdoc.....trols.html

The CKickButtonEx object overrides the stock VSTGUI4 object, which has the behavior you are seeing. To override this behavior, you enter a CustomView name in the RAFX GUI Designer. The mouseAction enum handles this. You enter one of the values in the enumeration:

http://aspikplugins.com/sdkdoc.....ec8bb1bf6f

For example, if you only want a button click notification on mouse up, you use a CustomView name of mouseDirUp. When you enter that for the custom view name, the system will search for the custom view code (which you can find in its entirety in PluginGUI::createView( )) and then create a custom object with the custom view name string. In RAFX6, that was all more or less hidden from the users. Once you enter mouseDirUp for the custom view, it will show up in the XML file as a custom-view data value. With that, and a bit of txt file hackery, you can paste that custom view name into all buttons whose behavior you wish to modify (rather than using the RAFX GUI Designer). When you open the GUI in the GUI Designer, it will parse that custom view name and you'll see it in the standard location. 

And, yes, the old RAFX prototype editor using non-sequential control tag values (which is legal) while the new version uses sequential values, BUT I did put code in place that should relocate those controls to different panels in the new prototype panel. Use the up/down buttons to scroll across the panels and you should be able to find them again. Let me know if any are still hidden. 

OK, gotta run again, but will be back soon. In the meantime, get the buttons fixed and we can do more conversion work later.

Will

Avatar
TheSmile
Member
Members
August 13, 2019 - 2:49 am
Member Since: June 25, 2018
Forum Posts: 43
sp_UserOfflineSmall Offline

hi,

until now I can't access imported Buttons and Meters and changing the CustomView name for imported buttons didn't make the trick.
New buttons work fine. So I can't delete the controls and make new ones (what would be the cleanest way). If there's no solution I'll need to make complete new Buttons with new vars and let the old ones as trash in the solution or so 😀

Forum Timezone: America/New_York

Most Users Ever Online: 85

Currently Online:
6 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Skyler: 48

Derek: 46

Frodson: 45

TheSmile: 43

Peter: 41

clau_ste: 39

JimmyM: 33

Gwen: 32

EZB: 24

lppier: 23

Member Stats:

Guest Posters: 1

Members: 579

Moderators: 1

Admins: 4

Forum Stats:

Groups: 12

Forums: 36

Topics: 595

Posts: 2377

Newest Members:

haslo, tomr, Noah, Dave, acv, Vasil992, Vasil92, dowsed, Simple, Chris_1

Moderators: W Pirkle: 362

Administrators: Tom: 73, JD Young: 80, Will Pirkle: 0, W Pirkle: 362