I got a VST plug-in working under Lazarus!

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Bump

I saw some activity in the freepascal development bug list.

Anyone else made any progress on this yet?

Paul
Image

Post

Just to let you know about my progress.

I'm currently learning for an exam about operating systems, so I decided to get some practice. I implemented some missing parts to be able to compile libraries with lazarus.

In my eyes, it's still lightyears away from being useful for VST plugins. Anyway I'm already able to host VST Plugins, since I've already ported the TVSTHost component successfully. Also the VST Plugin Wizard has been ported. Unfortunately there are several bugs concerning DLLs, so it is not useful right now.

I've got a good overview at the moment, so if there are any questions just PM me.

Christian

Post

Just wanted to bump this very interesting thread. Space Boy, duncanparsons, anything new to report on the Lazarus VST front?
I'm Kieran, aka dblue, aka illformed | illformed.com | Glitch 2 now available for Windows, Mac and Linux!

Post

Right now I'm about to get ASIO working in Lazarus. The VST Plugin Wizard is basically working as well, but for some reason, Lazarus won't save the properties. Also I still got several errors, which is very annoying.
I'll do more work here today, so stay tuned.

Christian

P.S.: Finally the LCL is now working inside DLLs, so there definitly IS some progress already...

Post

Awesome! Out of curiosity, did you have to heavily modify much of your stuff to get it working, or was most of it related to things which the Lazarus team had to fix first? Your plugin wizard and Tobybear's template which I've used in the past are both excellent, but I'm actually doing my own little framework now based on the VST 2.4 SDK - I feel that I can learn more by digging around at a lower level myself. Did you have to modify any of the VST SDK files or anything like that?
I'm Kieran, aka dblue, aka illformed | illformed.com | Glitch 2 now available for Windows, Mac and Linux!

Post

If you have had a closer look at the latest VST Plugin Wizard, then you might see, that I've done a mix between VST 2.3 and 2.4. The best of both worlds and it is working excellent.

The thing with lazarus is, that it doesn't support storing information for other objects then forms by now. Since the plugin itself is based internally on a Datamodule, it looses its settings everytime.
For the ASIO thing I had to apply one of the latest AllocateHWnd patch and rewrite it heavily using delphi code. We're now about to rewrite it from scratch, but there are several problems. But looking forward to have an official patch.

Post

Ok, it seems as if the patch is applied to the SVN version of lazarus within the next days. From that day on you can finally create your ASIO applications with Lazarus.
The next thing would be to get the VSTHost working properly right out of the box. In that case I'll directly port the Minihost example for Lazarus!

Post

Christian Budde wrote:Ok, it seems as if the patch is applied to the SVN version of lazarus within the next days. From that day on you can finally create your ASIO applications with Lazarus.
The next thing would be to get the VSTHost working properly right out of the box. In that case I'll directly port the Minihost example for Lazarus!
Hi Christian,

Just installed the latest Lazarus and downloaded your VST package from Sourceforge. Any chance you could provide a readme with some installation instructions for the Lazarus VST packages. I find myself changing paths, re-compiling Lazarus and finally get to the point that certain functions are not found when I try and install the VST host package etc. .

It would be handy if there were some hints as to installing the packages i.e. which order, what to check for etc.

I also tried the Delphi 6 packages (on my play computer) - they don't install at all. Also, here again,some instructions would be helpful.

I know you're busy so, when you get round to it :wink:
Image

Post

Today I finaly got a small and simple VST-ASIO-Host running. It can host a single VST Plugin and stream all audio via ASIO. Nothing fency though, but it does work!

Here's a small, incomplete howto:

1. Download the latest version over SVN.
2. Copy it into a directory containing only 8.3 names (old DOS-Format, important for the damn GNU-debugger), e.g. C:\ASIOVST
3. Download the latest Lazarus version via SVN. Apply the patch: http://www.freepascal.org/mantis/view.php?id=8563 (applying the patch worked fine yesterday, but since today you'll probably need some manual changes: simply merge both files ('mine' and 'theirs') to have nothing twice, but containing everything.
4. Recompile the LCL (after applying the patch) -> Rebuild Lazarus
5. Open the DSPBaseLaz.lpk and install it. (automatic rebuild of Lazarus, which takes some time again...)
6. Continue in the same manner with all the other packages. There might be some issues with the
'VSTPluginLaz.lpk' and the 'VSTPluginLazIDE.pas'. Both are working fine on my notebook (that's why I already converted some plugins), but they fail on my desktop ('LCLIntf not found'?!?)
7. Load one of the projects (like the 'Metronome' or the 'Standalone Editor')
8. Have fun :-)

If there are still some questions feel free to nag me. Currently I do have some free time.

Christian

[EDIT]P.S.: Just got the MiniHost Core working from within Lazarus :-D [/EDIT]

Post

kalmovax wrote:Space Boy, your instructions work perfectly, but why is the dll so large? (3815 kb)
Basically, this is debugging information...
See Project->Compiler options (Linking, Code Generation etc.)
Or cmd -> strip project.exe (then upx project.exe)
Strip.exe included in FreePascal.
The cat has four paws: in, out, ground and power supply )
Listen to my music

Post

I can't imagine he didn't work it out on his own in 6 years...

http://www.youtube.com/watch?v=6CQJywegNzE

... especially fitting for a dead thread regarding "Lazarus" ;-)
"Until you spread your wings, you'll have no idea how far you can walk." Image

Post Reply

Return to “DSP and Plugin Development”