VST3 in Delphi

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

I should add that I was not expecting miracles in the speed department, but the final results were indeed disappointing. If the final version was less than 25% slower, that might have been an acceptable trade off. In the end, optimized Pascal was still slower than unoptimized C++.
I started on Logic 5 with a PowerBook G4 550Mhz. I now have a MacBook Air M1 and it's ~165x faster! So, why is my music not proportionally better? :(

Post

syntonica wrote: Sun Mar 15, 2020 4:42 pm I tried Free Pascal with VST 2, but it just wasn't fast enough in the end. No matter how much optimization I tried, it was always about 50% slower, on average, compared to the C++ code.
I also noticed that plugins made on FPC or Delphi, run slower than similar ones made on C++.
And even the use of assembly inserts does not particularly increase speed. For this reason decided to stop making plugins on Pascal. :(

Post

syntonica wrote: Sun Mar 15, 2020 4:51 pm I should add that I was not expecting miracles in the speed department, but the final results were indeed disappointing. If the final version was less than 25% slower, that might have been an acceptable trade off. In the end, optimized Pascal was still slower than unoptimized C++.
Although, once made a plugin in this way - the DSP was made on C++, and the GUI on Delphi with its powerful and convenient VCL, the equivalent of which I did not find in C++. :wink:

Post

I'm thought about implementing a stable VST framework for Delphi, and this thought came - to port from C++ the IPlug2 framework. However, it is very huge work, which is not real without an infusion of finance, as according to approximate subjections can take half a year or even a year. :(
Some remarks: 'My' framework is not stable but does run with Reaper, Fruity Loops, Herman Seib's Host (!), Cantabile(!) and others. It does not run under Cubase At All (??) but I and Kenneth are investigating that. I think I've tackled the most difficult things, like the COM interface and the fact that Delphi does NOT support multiple inheritance (as used in iPlug2 as well). Yet, 'the rest of work' just isn't appealing, lots of frustration and a very small target audience. Moreover, we are doing this for a hobby, and a large fact is not at all fun, just by the way Steinberg is forcing us into something I don't believe in at all. (See the discussion on MIDI legacy CC a while ago or the VST2.4 withdrawal ). I am still waiting for another pluginformat which is really open....and still develop for 2.4 for my fun!

Post

Eduur wrote: Mon Mar 16, 2020 10:58 am the fact that Delphi does NOT support multiple inheritance
Yes, this is not yet a solved Delphi problem.
However, the problem is solved in particular by the use of interfaces and their delegation.
Eduur wrote: Mon Mar 16, 2020 10:58 am Moreover, we are doing this for a hobby, and a large fact is not at all fun, just by the way Steinberg is forcing us into something I don't believe in at all. (See the discussion on MIDI legacy CC a while ago or the VST2.4 withdrawal ). I am still waiting for another pluginformat which is really open....and still develop for 2.4 for my fun!
However, my hobby of using Delphi to create VST plugins ended a few years ago. I am fed up with execution time errors during plugin operation, as well as difficult-to-find bugs and bugs located in wilds of VCL, and actually slow-running DSP code. Among Russian programmers, this is called "гемор" what is hemorrhoids. :(

Although the idea has long been brewing that code written in Pascal can be hidden from the user in C++ and already compiled. As far as I know, translating code from Pascal to C++ is quite real, and the inverse problem is sometimes very difficult (I had to do a lot of porting code from C++ to Pascal once). Therefore, this approach is quite realistic for creating plugins in Pascal. :wink:

Nevertheless, Pascal is my favorite programming language, but it was much less fortunate than C++...

Post

Just stumbled over this, trying to use it now for my Wren thingie, as Vren .. sofar it successfuly generated noise, in Reaper, as in 0.1 * ( 1.0 - 2.0 * random), it shows my screen too .. but that doesn't do a thing yet.

I didnt use plugins much before, let alone make them .. but since I got me a Reaper license a couple of weeks ago I'm somewhat interested in VST.

Anyways .. another pascal user here, and some work to do .. I may have questions later on.
Jan
also .. could someone please turn down the thermostat a bit.
Image

Post

Hi.
I just want to say that I have made a vst3 plugin compiled for 64 and 32 bit Windows using the vst3 wrapper.
It works. The plugin is not processing any sound but use midi and a lot of graphics.

I also have some more ideas that I will build using this framework.

No problem compiling. Using Delphi CE 10.3.
My plugin will be released here when its finished.

Thank you Eduur and all other that have done work the at made it possible to do the delphi vst wrapper.
Regards

Post

Eduur wrote: Tue Feb 05, 2019 5:39 pm So, see subject.
I was wondering if I am the last (wo)man on earth still doing (hobby) VST development in Delphi... I guess I am, because I was not able to find anything related to VST3 / Pascal on the net. So, a few weeks ago I decided to create a VST3 wrapper for my VST2 plugins. You can see the result on my github page: https://github.com/RuudErmers/RMSVST3

Only tested in Reaper and only the basics.
It is a combined Processor/Controller and implements the following:
- Audio processing (synth or effect), two channel only.
- Midi CC processing
- Parameter processing
- Presets
- Tempo / Playstate.

An example Audio Gain which expands the code to any plugin (just a few lines of code) is available.

Anyone interested in something like this? If so, I would like to expand and improve the quality of the code. But, .. maybe ... I am the only one :(
Seemed to be working fine, but I decided to add ReportMemoryLeaksOnShutdown := True to check for any resource leaks. Unfortunately, it shows quite a few memory leaks.

I'm using Delphi 12.1 (CE).

I started working with VST3 this week, so I'm not (yet) sure how to fix this.
Clipboard_08-09-2025_01.jpg
You do not have the required permissions to view the files attached to this post.

Post

Hi, that's bummer, but I am afraid I wasn't paying too much attention to destruction code at that time. My fault, but is a very long time ago! If I had to code it again, I would use the flat interface Steinberg finally releaded many moons later...

Post

Eduur wrote: Sun Aug 10, 2025 1:55 pm Hi, that's bummer, but I am afraid I wasn't paying too much attention to destruction code at that time. My fault, but is a very long time ago! If I had to code it again, I would use the flat interface Steinberg finally releaded many moons later...
You mean the VST3 C API?

I’ll look into it, but I think I’ll go for the CLAP plugin format instead (which was surprisingly easy to get up and running) and possibly use the clap-vst3 wrapper.

Post

Eduur wrote: Thu Mar 12, 2020 3:10 pm (Or just wait for some genius to come up with a simple plugin open source platform, supported by all major DAWs...)
... like CLAP?

Currently supported by many, if not yet all major DAWs.

Post

Yeah, 'Clap' ! (But my post was from 2020, so we did finally get our genius) (I wrote a wrapper for CLAP/Delphi as well, but it is not complete, as a few people noticed here...., and ditched VST3 support...).

Post

Eduur wrote: Mon Aug 11, 2025 8:43 am Yeah, 'Clap' ! (But my post was from 2020, so we did finally get our genius) (I wrote a wrapper for CLAP/Delphi as well, but it is not complete, as a few people noticed here...., and ditched VST3 support...).
After reading through this old topic. That is great to hear. 👍

I agree about the CLAP format and I use it for all my purchased plugins, as and when CLAP support becomes available for them.

It's great there is now a reliable open source alternative to Steinberg. 😁

Post Reply

Return to “DSP and Plugin Development”