Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2013-11

VST

6 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael Schnell

Did anybody ever do a "VST plugin" by means of Lazarus/fpc ?

==============================
A VST plugin is a DLL, that can receive and send MIDI and/or Audio data streams and features a GUI ( ->
http://en.wikipedia.org/wiki/Virtual_Studio_Technology ). There are hundreds of VST plugins (commercial and non-commercial) and there are a lot of (commercial and non-commercial) programs that can host such VST plugins, on Windows and on Mac.

The API of such DLL is defined (by Steinberg) as well for Windows as for MAC (but not for Linux), as well for 32 Bit as for 64 Bit systems. Steinberg provides a C SDK that allows for easily creating such VSTs.

Some years ago someone did a (freely available) Delphi SDK for creating 32 Bit VSTs for Windows. I already tried same with "Turbo Delphi" and was able to get something working.
==============================

Question:
What about doing such VST plugins with Lazarus ?

In fact I would like to do some 64 Bit VSTs for Windows.

Are there any obvious problems to do that (e.g. porting the SDK to Lazarus, porting the API interface unit to 64 Bit and/or doing a DLL that provides it's stand alone GUI.)

Any comments ?
Thanks,

-Michael

Mark Morgan Lloyd
to Michael Schnell
Michael Schnell wrote 29 lines
Did anybody ever do a "VST plugin" by means of Lazarus/fpc ? ============================== A VST plugin is a DLL, that can receive and send MIDI and/or Audio data streams and features a GUI ( -> http://en.wikipedia.org/wiki/Virtual_Studio_Technology ). There are hundreds of VST plugins (commercial and non-commercial) and there are a lot of (commercial and non-commercial) programs that can host such VST plugins, on Windows and on Mac. The API of such DLL is defined (by Steinberg) as well for Windows as for MAC (but not for Linux), as well for 32 Bit as for 64 Bit systems. Steinberg provides a C SDK that allows for easily creating such VSTs. Some years ago someone did a (freely available) Delphi SDK for creating 32 Bit VSTs for Windows. I already tried same with "Turbo Delphi" and was able to get something working. ============================== Question: What about doing such VST plugins with Lazarus ? In fact I would like to do some 64 Bit VSTs for Windows. Are there any obvious problems to do that (e.g. porting the SDK to Lazarus, porting the API interface unit to 64 Bit and/or doing a DLL that provides it's stand alone GUI.) Any comments ?

I've played with special-purpose MIDI filters in a DLL/so, but the only GUI element was that menu entries were copied from a form in the DLL to the main form. There's been a couple of threads in this list about VST, I presume that this is the SDK you mentioned above.

Below from an older thread:

Show quoted text 11 lines
Christian Budde set up DelphiAsioVST (http://sourceforge.net/projects/delphiasiovst/) to help with VST development in Object Pascal. It has alot of classes which you can use, or you can just use Frederick Vanmol's translation of the SDK, and implement everything yourself. Over the last couple of years there have been some problems, but mostly you can use FPC now. However, at the moment these will only be able to use the host's default UI. I am mid flow sorting out the code so that a plugin can supply it's own UI, then full XPlatform VST development will be possible using Laz/FPC :-)

Also:

- VST is in Lazarus-CCR, but an older v4 version. VST porting is hindered by not accepting changes (like a sane IFDEF system) upstream, which makes every port an one off change.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]
Michael Schnell
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote
I've played with special-purpose MIDI filters in a DLL/so, but the only GUI element was that menu entries were copied from a form in the DLL to the main form.

The Host program I use just requires that the VST plugin in fact does have a GUI. I suppose the VST API definition provides some means to integrate the VTS's GUI with the Host's GUI and same need to be decently provided.

At this point of time I also intend to do simple MIDI filters.

There's been a couple of threads in this list about VST, I presume that this is the SDK you mentioned above.

I seem to remember that I got mine from some other source, but supposedly it's the same header translation.

Show quoted text 14 lines
Below from an older thread: > Christian Budde set up DelphiAsioVST > (http://sourceforge.net/projects/delphiasiovst/) to help with VST > development in Object Pascal. It has alot of classes which you can use, > or you can just use Frederick Vanmol's translation of the SDK, and > implement everything yourself. > > Over the last couple of years there have been some problems, but mostly > you can use FPC now. However, at the moment these will only be able to > use the host's default UI. I am mid flow sorting out the code so that a > plugin can supply it's own UI, then full XPlatform VST development will > be possible using Laz/FPC :-)

Did you "play with" the SDK in Delphi or did you in fact manage to get something decently running in FPC/Lazarus ?

It you really did, I would be very grateful, if you could provide me with some example code to get started.

Show quoted text 7 lines
Also: - VST is in Lazarus-CCR, but an older v4 version. VST porting is hindered by not accepting changes (like a sane IFDEF system) upstream, which makes every port an one off change.

Here: http://sourceforge.net/projects/lazarus-ccr/?source=directory I only see "TZMSQL" which obviously is some other beast.

and here http://svn.code.sf.net/p/lazarus-ccr/svn/components/

I don't see anything related to VST,

Can I search somewhere else ?

Thanks a lot,
-Michael

Mark Morgan Lloyd
to Michael Schnell
Michael Schnell wrote 8 lines
On 11/26/2013 06:01 PM, Mark Morgan Lloyd wrote: > > I've played with special-purpose MIDI filters in a DLL/so, but the > only GUI element was that menu entries were copied from a form in the > DLL to the main form. Did you "play with" the SDK in Delphi or did you in fact manage to get something decently running in FPC/Lazarus ?

No, I didn't use VST at all- I only mentioned it because I recalled the earlier discussion. What I was doing was in part an exploration of loading/unloading DLLs on the fly, and in particular of DLL versioning etc. to protect the API.

Show quoted text 8 lines
Here: http://sourceforge.net/projects/lazarus-ccr/?source=directory I only see "TZMSQL" which obviously is some other beast. and here http://svn.code.sf.net/p/lazarus-ccr/svn/components/ I don't see anything related to VST, Can I search somewhere else ?

"Pascal" and "Lazarus" are far too common as names to make Googling easy, and some people use VST as an abbreviation of VirtualStringTree. But I suspect you already know that :-/

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]
Mark Morgan Lloyd
to Michael Schnell
Michael Schnell wrote
My question was meant as: Do you suggest that CCR should contain more than just TZMSQL.

No, I was going from what had appeared in the ML without direct reference to CCR.

Do you have an idea where I could find that additional content ?

Not knowing, can't say. There's sufficient broken links in CCR that finding stuff that's known to be in there can be a challenge.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]