March 14, 2022
On Thursday, 10 March 2022 at 15:49:36 UTC, Paulo Pinto wrote:
> D, well it has MIR and vibe.d, that is about it.

Dplug is an audio plugin framework with support for Linux/macOS/Windows, VST2/VST3/AAX/LV2/AUv2, with unique features being the following: PBR rendering, UI scripting, manages installers and notarization, ARM compatibility layer at the intrinsics level etc...
making it interesting agains frameworks with a 15 years headstart.

It certainly helps to write it in D, and it helps its users too, who actually prefers it over the (C++) incumbent. Go figure.
March 20, 2022
On Monday, 14 March 2022 at 09:51:34 UTC, Guillaume Piolat wrote:
> On Thursday, 10 March 2022 at 15:49:36 UTC, Paulo Pinto wrote:
>> D, well it has MIR and vibe.d, that is about it.
>
> Dplug is an audio plugin framework with support for Linux/macOS/Windows, VST2/VST3/AAX/LV2/AUv2, with unique features being the following: PBR rendering, UI scripting,

Interesting that you have added PBR, is this real time or for rendering of static images?

March 20, 2022
On Sunday, 20 March 2022 at 10:52:31 UTC, Ola Fosheim Grøstad wrote:
> On Monday, 14 March 2022 at 09:51:34 UTC, Guillaume Piolat wrote:
>> On Thursday, 10 March 2022 at 15:49:36 UTC, Paulo Pinto wrote:
>>> D, well it has MIR and vibe.d, that is about it.
>>
>> Dplug is an audio plugin framework with support for Linux/macOS/Windows, VST2/VST3/AAX/LV2/AUv2, with unique features being the following: PBR rendering, UI scripting,
>
> Interesting that you have added PBR, is this real time or for rendering of static images?

It is optimized (all vector, parallelized tiled, dirty rectangles, mipmapped) but ultimately if you really want 60fps it's better to use the "raw" layer on top to redraw.
(typically: the background of a widget is in the PBR layer, and the curve and points on top are in the Raw layer and real-time updated. This caches the PBR layer output.).
Saving CPU is always useful for general audio stability, so GUI bottlenecks are quite important.

All in all: more GUI work, less filesize, larger memory usage (about 60mb more per instance), a look that can look approximately realistic, and when doing the UI it can feel like sculpting.
March 20, 2022

On Sunday, 20 March 2022 at 11:06:05 UTC, Guillaume Piolat wrote:

>

It is optimized (all vector, parallelized tiled, dirty rectangles, mipmapped) but ultimately if you really want 60fps it's better to use the "raw" layer on top to redraw.
(typically: the background of a widget is in the PBR layer, and the curve and points on top are in the Raw layer and real-time updated. This caches the PBR layer output.).
Saving CPU is always useful for general audio stability, so GUI bottlenecks are quite important.

Sounds nice, so it is all CPU and no GPU if I didn't misinterpret what you wrote. Do you know if any other audio-plugins do this as well? I always assumed they used pre-rendered images for fancy widgets like knobs and sliders.

>

All in all: more GUI work, less filesize, larger memory usage (about 60mb more per instance), a look that can look approximately realistic, and when doing the UI it can feel like sculpting.

Maybe this can be turned into a generic UI library for D? Or is it more geared towards smaller user-interfaces like those commonly found in audio-plugins?

March 20, 2022

On Sunday, 20 March 2022 at 20:00:22 UTC, Ola Fosheim Grøstad wrote:

>

Sounds nice, so it is all CPU and no GPU if I didn't misinterpret what you wrote.

Yes. Using the GPU is not that much of a win since for text and curve you'd end up sending to the driver large amounts of vertices, and the compability headache that the GPU cause are endless. OpenGL is deprecated on macOS, so you need a layer on top, so you need a shader language... it quickly gets hairy.

>

I always assumed they used pre-rendered images for fancy widgets like knobs and sliders.

A lot of them do, the equivalent with PBR is have one image and rotate this, and recompute shadows and reflections from there ; it drastically lowers memory requirements and image decoding time.

>

Maybe this can be turned into a generic UI library for D? Or is it more geared towards smaller user-interfaces like those commonly found in audio-plugins?

It is very specialized and unsuitable for generic UI, where you don't have a reference to thr UX of hardware racks.

April 22, 2022

On Sunday, 20 March 2022 at 20:27:44 UTC, Guillaume Piolat wrote:

>

It is very specialized and unsuitable for generic UI, where you don't have a reference to thr UX of hardware racks.

Btw, I haven't tried this, but there appears to be (experimental?) DPlug support in Faust.

The C++ codegen generates UI-hooks, so I assume the D version does too?

April 22, 2022

On Friday, 22 April 2022 at 15:23:46 UTC, Ola Fosheim Grøstad wrote:

>

The C++ codegen generates UI-hooks, so I assume the D version does too?

I tested. The dlang output is almost the same as the C++ output.

1 2 3 4 5 6
Next ›   Last »