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 sp_TopicIcon
Question about GUI
No permission to create posts
October 6, 2013
5:16 pm
Avatar
superbook5
New Member
Members
Forum Posts: 1
Member Since:
October 6, 2013
sp_UserOfflineSmall Offline

Hello , I'm Buker from Thailand
I just buy audio programing book

and I got some question
Is it possible to desing my GUI ?
I mean design some knob or some meter in PhotoShop and import to RackAFX?

THANKs :)
PS.sorry for my wrong gramma

October 8, 2013
10:14 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

Hi Buker

No, you can't add other controls to the RackAFX GUI designer. But if you know how to design your own GUI in Windows you can choose an option to do that - RackAFX will send you messages to open and close your GUI but it is up to you to code and maintain it. Some examples include wxWidgets and wxPython. See

http://www.wxpython.org/

for more info.

Will

October 8, 2013
11:09 pm
Avatar
Peter
Member
Members
Forum Posts: 41
Member Since:
September 12, 2013
sp_UserOfflineSmall Offline

Hi Will, Hi Buker,

I am thinking about writing my own GUI, but maybe this is a lot of work and pain.... What would be your favourite GUI Development program/system to stay most compatible with RackAFX in the future and write GUI for OSX AU/VST and Windows VST?

regards
Peter

October 9, 2013
6:18 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

To be honest, I use native GUI controls on both platforms - I use MFC for Windows and Cocoa for AU/XCode. In fact, RackAFX is written in MFC and every custom control you see is subclassed from MFC controls; either I designed them directly like the LED meters or I used 3rd party objects, which are linked in Help->About. In XCode, I use Cocoa for the AU plug-ins as it seems to be the Apple preferred way these days. It's also easy since we use Cocoa Touch in my iOS programming class.

- Will

EDIT: see the note below regarding changes in the GUI designer in RAFX.

September 2, 2014
6:21 pm
Avatar
derza
Member
Members
Forum Posts: 12
Member Since:
September 2, 2014
sp_UserOfflineSmall Offline

Hi everyone,

I already have experience at GUI programming in C#. Is there any way to implement C# GUI to RackAfx made plugin? It would be good if anyone could give me reference about implementing C# GUI in C++ that I can read..
And one more thing, if I implement my GUI in C# would that make my plugin strongly depending on the .NET version of client's computer?

Thank you!

September 3, 2014
3:30 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

Hi Derza

You can mix C++ and C# in Visual Studio. I asked one of my former students who is now a SW engineer at Microsoft and he confirmed that the plugin would indeed be dependent on the .NET version of the client computer, so that is a drawback.

I should also let you know about a change I am making in RAFX now. I am changing the way the GUI is rendered as well as how the porting functions (Make AU and Make VST) and built-in VST compatibility (Make VST Compatible) will work. This will eventually allow you to design one GUI that is cross platform compatible. You start in RAFX, then tweak and modify on your own time (and in your Pro version of VS). Because the new version uses PNG files instead of BMPs, the graphics look slick and professional. I am using VSTGUI4 which is well documented, has a mailing list server, and is reasonably easy to tweak, update, and customize. VSTGUI4 is a C++ library. It is also the GUI implementation in my new Synth book's VST3 projects. Not sure if that helps you decide on what to do, but thought I'd put it out there.

That said, the ability for you to generate your own GUI independently is still in RAFX. You set a flag in the constructor and override two functions. One gets called when the client wants a GUI. In this call, you are passed a Window Handle of the parent (ie the HWND). The other function gets called when the user has closed the GUI.

All the best,

Will

December 2, 2014
11:11 pm
Avatar
Laden
Member
Members
Forum Posts: 6
Member Since:
December 2, 2014
sp_UserOfflineSmall Offline

Hi Will, how are you ?
i'm very confused! i'm new to this field, all i have is good experience in C and C++, Photoshop, Sound design.
i like to be an audio programmer but really i didn't find any good explanation source. I saw you book but to be honest with you i didn't like the GUI, i like to build vsts like UAD, waves GUI quality .
did you designed rackafx just for learning ( compatible with the book, for better chapters understanding) ?
how the big companies like waves works especially the GUI!
the most motivation i have about your book is ( no DSP boring theory).

i want to mention a note about my c/c++ experience , i never worked with any framework yet just console applications but my skills are good.Laugh

why you didn't mentioned JUCE in your book?

December 3, 2014
11:09 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

The new version of RackAFX that is in Beta testing now has a new GUI designer that is completely rebuilt from the ground up. It uses VSTGUI4, a GUI library for cross-platform compatible GUI design. I've been on the mailing list for a while and there seems to be several professional developers using it. I have former students at Waves, Izotope and SoundToys and they have in-house graphic design artists who handle this. The new RAFX GUIs are cross platform compatible so they are automatically ported to VST and AU via these porting functions and are identical across the platforms and look quite professional.

See the thread here for more information:

http://www.willpirkle.com/foru.....kafx-v6-5/

I urge you to download the JUCE toolkit and have at it! I have several student who use it. As a 3rd party framework, it obscures many details that I think are important if you really want to understand how the APIs differ at a low level, and which are revealed in RackAFX's porting methods (Make VST and Make AU). After downloading, installing, learning and using the JUCE toolkit, please tell me what your experience has been like. Also note that there is already a full textbook on JUCE you can find on Amazon.com. There is no reason to replicate this work.

- Will

December 4, 2014
9:22 pm
Avatar
Laden
Member
Members
Forum Posts: 6
Member Since:
December 2, 2014
sp_UserOfflineSmall Offline

I really appreciate your reply, i'm gonna follow your recommendation.
As i mentioned before, i never worked with any framework library except the Allegro, what i understand from you is first you should familiarize yourself with a GUI library ( i.e JUCE ) then start your learning curve about audio programming ( i.e vsts, synths etc... ) ?
but before i need to remove this confusing idea " JUCE vs WDL -OL "
I heard that JUCE is a high quality API compared to WDL -OL, but with the last framework you can create VST, VST3, AU, RTAS, AAX with the same source code. BOOM! what do you think Will ? Is JUCE have unique features that will make me leave WDL -OL alone ?

about the GUI design you mentioned that waves have artists, I know, me too i can create some cool GUI with Photoshop ( in fact i plan to learn a little about 3DMAX to design more realistic knobs ) but i still ignore the workflow, like did they export the png, jpeg imgs and knobs and they start directly coding into visual studio i.e ?

in school we're learning C# and as you know C# is very flexible when you're coding GUI or apps for windows platform, any idea ? like scripting with C# and using C/C++ for a plugin task that requires performance .Yell
Thank you Will, for your support.

December 5, 2014
7:27 pm
Avatar
Tom
Admin
Forum Posts: 65
Member Since:
April 3, 2014
sp_UserOfflineSmall Offline

Hi Laden,

one main difference between JUCE and WDL-OL is the license. If you want to release a plugin using JUCE, you either have to release the source code (GPL) or buy a JUCE license. WDL-OL is free in this regard. JUCE is not only a Plugin-Library like WDL-OL, but a complete Application-Toolkit, which has a very decent amount of audio-related building blocks, including plugin-abstractions that allow you to build vst/rtas/aax/au plugins from a single source base.

If you want to code a C# UI and have the processing core as C++, it is technically possible, but a LOOONG way to go from scratch. There's a C# library VST.NET which allows you to code VST2 plugins completely in .NET:
http://vstnet.codeplex.com/

But intermixing C# and native C++, especially in a plugin is not worth it imho (unless you already have a .NET application you want to integrate into a VST plugin somwhow...). Again, while technically possible, there is way too much you have to keep in mind and to understand upfront, like C#, .NET, C++/CLI, Win32, Dynamic Libraries, Memory Models, WPF/WindowsForms, how they do and do not interact with Win32/native Message Loops, and no to forget "plain" C++...before you can even start thinking about integrating the DSP or UI/Artwork part.

I think Will's attempt with RackAFX was to prevent exactly this from stopping students to dive into DSP programming ;-)
So I suggest you to just go the C++ route :)

December 6, 2014
2:06 am
Avatar
Laden
Member
Members
Forum Posts: 6
Member Since:
December 2, 2014
sp_UserOfflineSmall Offline

Wow, thank you Tom! your reply was very informative.
I have just 2 more question Yell
What's the workflow of converting your design to a real UI is it like webs you design your PSD template then you code it using HTML/CSS/JS ? in our example using XML !

waves company they don't use RackAFX, so what they have ? everything from scratch ?

December 6, 2014
7:00 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

I have former students who are currently employed as engineers at Waves, iZotope, and SoundToys and they do everything custom, in house, from scratch, with their own custom wrappers. They do not use RackAFX directly (though those students still have copies of it and might do some quick development with it). And, they do not use JUCE either. This information came directly from my interviews with them. I also have former students in the audio divisions of Apple and Microsoft. They reported the same thing.

I originally designed RackAFX for my own use, then I modified it for use in the classroom for teaching plugins as quickly and painlessly as possible. I use it for quickly generating algorithms for writing papers - all the plots in my last 3 AES papers have come directly from RAFX.

However, with the new GUI Designer in v6.5, I am at the point where RackAFX can now be used for professional product development - it still blows me away at the ease of development, GUI design, and porting to VST2/3 and AU which compile right away effortlessly.

And, by using the VST2/3 and AU ports, you get to see the code and can learn and understand how the API works directly. You can also remove the RackAFX stuff from the ports and write your own, purely native code. This is different from 3rd party wrappers that obscure the details of the various APIs.

And, there is actually a Make AAX button that is hidden. There are licensing issues with AAX and I can't enable that functionality just yet - not sure when or if that will happen so please don't ask - I will post a note to the Forum when that can be enabled.

- Will

December 7, 2014
4:47 am
Avatar
Laden
Member
Members
Forum Posts: 6
Member Since:
December 2, 2014
sp_UserOfflineSmall Offline

Thank you Will for your support.

i love and i feel so powerful when i do everything by myself ! i know sometimes there is no need to reinvent the wheel Wink.
that's why i don't want to limit my self in one thing.
after searching in amazon i didn't find so many books in this field, except yours and Richard Boulanger!
you said that one of the reasons of designing rackaFX is studying uses, so i think it's greater for me.

are the API used in rackaFX open to the user for editing and matching and tuning for future coding!
did i need to finish your book then discover JUCE lib ?

you already know that i care to much about the GUI and the professional look,i don't want to feel so so bad when i compare my products with izotope or waves uad etc.
if you did something do it right or don't Frown.
i'm always open to your suggestions, thanks to you and all members.

Laugh in class we're learning c# i know this is out of subject but do you have any motivation, i mean did c# had something great for audio programmers lovers !

December 7, 2014
6:37 pm
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

Email me with the Contact form and I will send you the password for the new beta if you want to try the new GUI designer. The GUIs look fantastic and you can import your own graphics too.

- Will

I have students who started using JUCE after one semester with my FX book.

December 7, 2014
8:31 pm
Avatar
Laden
Member
Members
Forum Posts: 6
Member Since:
December 2, 2014
sp_UserOfflineSmall Offline

it's ok Will, when the final stable release is out i'll be there.Wink

December 8, 2014
3:50 am
Avatar
W Pirkle
Admin
Forum Posts: 143
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

The first couple of videos are posted on the home page here and my You Tube channel.

The KnobMan software was used for the knob control in the second video and the link is in the first post in this topic.

- Will

Forum Timezone: America/New_York

Most Users Ever Online: 36

Currently Online:
3 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Skyler: 47

Peter: 41

Derek: 41

clau_ste: 39

Frodson: 38

Gwen: 32

EZB: 24

lppier: 23

Msaldaña: 18

Jorge: 17

Member Stats:

Guest Posters: 1

Members: 476

Moderators: 1

Admins: 4

Forum Stats:

Groups: 11

Forums: 30

Topics: 482

Posts: 1876

Newest Members:

sam, annaharris, Marie Weaver, kev, Steven, Mr Anderson, mguy, omelc

Moderators: W Pirkle: 143

Administrators: Tom: 65, JD Young: 80, Will Pirkle: 0, W Pirkle: 143