Audio Programming Environment 0.5.0: C++ DSP directly in your DAW!

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Image

Shouldn't preset load/save be a built-in feature of APE?

Post

Architeuthis wrote: Tue Mar 09, 2021 10:54 pm Shouldn't preset load/save be a built-in feature of APE?
yes, please! that would have been my next feature request as well. and ideally, in a human readable format like xml or json. i was contemplating there to try to add such a feature myself - but that would certainly not come easy, because i would first have to understand the codebase, which is supposedly rather complex. when you find interesting settings of the parameters, it is really not a lot of fun to note them down into a textfile.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

+1 preset load/save, but also panels or containers for the GUI elements or *at least fixable row size*, so that changing the window size (bottom right corner drag) will not wrap the knobs position. Rather it should really zoom the GUI, making widgets larger/smaller.

Post

Music Engineer wrote: Mon Mar 08, 2021 7:10 pmyes. compiles cleanly (no warnings) and works. i was actually positively surprised because up to then, i did not yet compile my library with clang
...
but actually, compilation time is fine. couple of seconds. i'm very pleased with all of this :tu:
That's very cool, happy to hear that.
Architeuthis wrote: Tue Mar 09, 2021 10:54 pmShouldn't preset load/save be a built-in feature of APE?
Music Engineer wrote: Wed Mar 10, 2021 4:56 am yes, please! that would have been my next feature request as well. and ideally, in a human readable format like xml or json. i was contemplating there to try to add such a feature myself - but that would certainly not come easy, because i would first have to understand the codebase, which is supposedly rather complex. when you find interesting settings of the parameters, it is really not a lot of fun to note them down into a textfile.
liqih wrote: Wed Mar 10, 2021 4:26 pm +1 preset load/save
Okay, I have underestimated the use case for this feature for sure. Side-car XML files for sure are a possibility, although it kinda works against my desire to have all parts of the plugin defined in one file. I guess I originally imagined adding something like this to the bottom of the plugin file:

Code: Select all

Preset[] Presets = {
	{ "Fuzz", {"Gain", "5 dB"}, {"Drive", "on"} }
	{ "Mellow", {"Gain","-10 dB" }, {"Drive", "off"} }	
};
And then a GUI widget for this. Of course the user wouldn't really be able to add/rewrite presets... perhaps a hybrid approach.
Music Engineer wrote: Wed Mar 10, 2021 4:56 ami was contemplating there to try to add such a feature myself - but that would certainly not come easy, because i would first have to understand the codebase, which is supposedly rather complex.
Certainly that would be possible for you to do, I already have some widget classes handling this and the (de)serialization automatically. Would it be the most efficient use of time between the two of us? Probably not :)

liqih wrote: Wed Mar 10, 2021 4:26 pm ... but also panels or containers for the GUI elements or *at least fixable row size*, so that changing the window size (bottom right corner drag) will not wrap the knobs position. Rather it should really zoom the GUI, making widgets larger/smaller.
Interesting, I agree the layouting is quite the neglected area of this plugin. How would you ideally imagine defining the layout of your parameters (+ widgets/meters, if you use that stuff)? I guess I would be looking for a really concise way to express that in code.

Post

Yes, ideally the presets would be inside the file.

Post

alright I used APE to digitally breadboard a polivoks-like filter. https://www.elanhickler.com/transfer/so ... ttempt.mp3

edit: it was a nightmare to do this, and also, the fact that the knobs reset when you hit the stop button made it that much worse, but I couldn't have done it without APE, or at least I would have been in much more pain without it. How do you you set knob defaults?

Post

Architeuthis wrote: Fri Mar 12, 2021 8:52 am alright I used APE to digitally breadboard a polivoks-like filter. https://www.elanhickler.com/transfer/so ... ttempt.mp3

edit: it was a nightmare to do this, and also, the fact that the knobs reset when you hit the stop button made it that much worse, but I couldn't have done it without APE, or at least I would have been in much more pain without it. How do you you set knob defaults?
Sounds cool, I'm sorry to hear you experienced so much friction though. Care to elaborate?

You can set default values by assigning to the parameters in your constructor, like so:
https://bitbucket.org/Mayae/ape-snippet ... p#lines-31

Post

Mayae wrote: Thu Mar 11, 2021 6:31 pm
liqih wrote: Wed Mar 10, 2021 4:26 pm ... but also panels or containers for the GUI elements or *at least fixable row size*, so that changing the window size (bottom right corner drag) will not wrap the knobs position. Rather it should really zoom the GUI, making widgets larger/smaller.
Interesting, I agree the layouting is quite the neglected area of this plugin. How would you ideally imagine defining the layout of your parameters (+ widgets/meters, if you use that stuff)? I guess I would be looking for a really concise way to express that in code.
I will prepare a humble proposal today, keeping your fixed "cell" size per control, adding non wrapping panels. Like createPanel(Witdh::2, Height::3); where you can insert the knobs etc...
Later I will upload some pictures and more details.

Post

Here is a proposal for the APE GUI panels.
picture link:
https://nusofting.com/stuff/proposal.png
Image
Referring to that picture:
1) controls should be centered and padded, some pixels, in each "cell"
(cell = fixed size GUI rectangle)

2) panels could be created as (in pseudo code)
createPanel("p_name","[horizontal cells] x [vertical cells]", "optional caption");

3) multiple panels are stacked on GUI just like the declaration of Param now does.

4) the parameters are inserted in a panel with an arg. E.G.
Param<Rate> rate1 { "Rate1", rateNames, "p_name" };
Param<float> offset1{ "offset1" , Range(0, 45), "p_name" };

*if a Param exceed the size of the panel it will be automatically placed
outside the panel.*

5) Panels do not wrap when the window is resized using the mouse.
Optionally they can be attached to a "transform" so that the
JUCE::Component of the panel and the controls inside it
actually zoom (scale size) when the window is resized.

More examples:
examples.png
You do not have the required permissions to view the files attached to this post.

Post

Mayae wrote: Fri Mar 12, 2021 3:13 pmI'm sorry to hear you experienced so much friction though. Care to elaborate?
Yes, it was a nightmare because apparently to get that bubbly chaotic sound the filter needs to interact with itself in a way that is very unstable, and so any time it would destabilize you had to reset the plugin to get the values back to stability. This interaction is super complex leading to runaway oscillations very easily, I think two elements in the filter have to cause impulse oscillations and then dampen those oscillations near simultaneously for this to work.. Now I understand why the polivoks has such a hard-clipped sound, you can't get this kind of filter to stay within a specific voltage range. Chaos + Stability are opposing phenomena and you have to decide how much you want of each. Like I said, without APE it would have been far more difficult.

Post

Feature request: Stop going to controls page when recompiling.

P.S. are you open to development funding for larger feature requests?

Post

liqih wrote: Fri Mar 12, 2021 5:42 pm Here is a proposal for the APE GUI panels...
Thank you so much for your ideas, I hope to be able to integrate something like that soon in next update - partially through some other request, but currently tied up in work
Architeuthis wrote: Fri Mar 12, 2021 6:55 pm
Mayae wrote: Fri Mar 12, 2021 3:13 pmI'm sorry to hear you experienced so much friction though. Care to elaborate?
Yes, it was a nightmare ...
Thanks for sharing your experience, that does sound difficult!
Architeuthis wrote: Fri Apr 16, 2021 12:48 am Feature request: Stop going to controls page when recompiling.
+1
I really dislike that "feature" as well, the plugin page should just persist if possible.
Architeuthis wrote: Fri Apr 16, 2021 12:48 am P.S. are you open to development funding for larger feature requests?
Generally no unfortunately, time is the most precious resource for me. Perhaps you might be able to persuade a freelancer to contribute though?

Post

This is incredible.

For some reason, the VST2 fails to scan in REAPER, though opens perfectly fine in Cakewalk.
Does anyone have a clue why that might be?

Post

Wow this APE thing is quite incredible indeed! Has Janus Thorborg moved on to other things though? I think this has the potential to become an amazing tool, there is really nothing out there like it. Bluecat audio's thing comes close ( it uses some language called Angelscript).

Post

Can we make MIDI plug-ins with APE? Does it support something like processMIDIEvents?

Post Reply

Return to “DSP and Plugin Development”