Should I be juced?


#1

Hey all,

I’ve been using ‘Flowstone/Synthmkaer’ for producing some Windows based PC plugins, and pretty much loved it.
I’m now interested in moving to ‘C++’ environment - the advantage is better coding ability.

Presuming that I can handle C++ and the code itself… There is still a gap for me.

Before I jump into ‘Juce’ I want to ask you guys:

  1. GUI
    For a newbie like myself, how much time (work days) would it take to build an active GUI, like ‘drag and drop’ EQ (GUI example: FabFilter ProQ, Ablteon live ‘EQ Eight’, etc.) ?

  2. Port to *.EXE or *.VST
    Can I port to *.EXE for a stand alone plugin (example: music player with MP3 decoding)?

  3. Connecting to Windows APO
    Assuming I would like to design an EQ for my windows based PC. It should run with any player (windows media player, VLC, etc.). I therefore need to ‘install’ the EQ between the player and the PC’s hardware, which is done by Windows APO. Is this supported some how?

Appreciated !


#2

Hi Malc,

Some very rough estimates from me:

  1. If you use a lot of the code from the examples I think you could have a fairly advanced GUI running in about a week. Making it nice to use and beautiful could take you anywhere between another week and another six months, depending on your requirements, design abilities and perfectionism :slight_smile: I encourage you to just jump in and start - I found the process a lot of fun when I was starting out.

  2. Yes, this isn’t too much work. The Demo Host example is a good starting point.

  3. I’m afraid I’ve not come across Windows APO before - someone else might be able to chime in here.


#3

As Tom, I’ve never worked with Windows APO myself either…
But maybe you can find some inspiration here: https://sourceforge.net/projects/equalizerapo/
It doesn’t seem to be Juce-based, but it might give some clues.
I never read anything on the Juce forum about support for this, so I don’t think Juce has some built-in support for this kind of “plugin”.


#4

I was browsing into the project, and it seems to me, that APO is not a windows API nor SDK, but the name Jonas Thedering made up for his project, as @KoenT already linked. If not I would appreciate a link to the API, it’s not listed in microsofts api listing, at least I couldn’t find it…

I am missing this chance to hook into the signal flow as well on either plattforms, CoreAudio and Windows, so I would be interested too, if there is a generic way.
The only idea I have is to setup a virtual device which feeds to your audio app (which is one thing what ASIO is made for I think, or some DAWs install so called “AggregateDevices” e.g. ProTools).


#5

Ah, but It is a Microsoft thing, and it’s close to the driver-level.
Here is their description: "Windows allows OEMs and third-party audio hardware manufacturers to include custom digital signal processing effects as part of their audio driver’s value-added features. These effects are packaged as user-mode system effect Audio Processing Objects (APOs)."
And here is the Microsoft page I found with more info:
https://msdn.microsoft.com/en-us/library/windows/hardware/mt243885(v=vs.85).aspx
And there is some “Sample Code to Accelerate the Development Process” here:
https://msdn.microsoft.com/en-us/library/windows/hardware/mt243894(v=vs.85).aspx


#6

Cool, thanks for the link.
So seems like duckduckgo led me to an outdated api listing, and didn’t find the one you link. I might need to search with more than one web searches… Never trust the internet :wink:
I will read into that api, but at the moment I am on mac…

So looking at that page, it should be possible to create an AudioProcessorAPOPlayer like the AudioProcessorPlayer, which hooks into the system signal flow instead of the AudioIODevice. Sounds very cool.
Unfortunately I am busy with several other stuff at the moment…