Delphi ASIO & VST sourceforge project

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

Post

Christian Budde wrote: Well, basically there shouldn't be a difference between the version released in 2005 and the latest version. At least I can tell you so far, that it works on my machine without any problem.
Yes I know, the latest version works fine for me, but my problem is still going on... I hope, if i write what i use in my system then you can tell me the best way!

My compiler is the Turbo Delphi Win32 Pro, OS WinXP Pro(SP2) and install the AVDCommon_D10.dpk and HostASIO_D10.dpk without any changes?
To translate the samples to seconds all you need to do is divide by the samplerate (and multiply by 1000 to get the value in ms).
Thanks alot for your help :-)

I'm still learning about ASIO-VST system with your components then since 2002.

Many, many thanks to you for sharing :-)

Best regards,

midijor

Post

midijor wrote:Yes I know, the latest version works fine for me, but my problem is still going on... I hope, if i write what i use in my system then you can tell me the best way!

My compiler is the Turbo Delphi Win32 Pro, OS WinXP Pro(SP2) and install the AVDCommon_D10.dpk and HostASIO_D10.dpk without any changes?
Yes, only those two are needed. I'm also using Turbo Delphi and it works like a charm on my machine.

Kind regards,

Christian

Post

Thanks alot for your reply:-)

I'll look, where is my mistakes...

Best regards,

midijor

Post

Hi, I was checking out the TVSTHost and I was wondering if there is a way to scan a VST plug-in and not initialize it? Certain plug-ins take a long time to load and all I want is a property list.

I've just started playing with it so maybe it will become self evident as I continue to dig.

Any help would be appreciated.

BTW - Nice project Christian, thanks for all the hard work.
... Steven

Post

TheSteven wrote:Hi, I was checking out the TVSTHost and I was wondering if there is a way to scan a VST plug-in and not initialize it? Certain plug-ins take a long time to load and all I want is a property list.
The amount of information depends on what you do with the plugin. If you only "create" it, you got access to the basic information (numInputs, numOutputs, numParameters, numPrograms). Theoretically you can get even more information, but that depends on the plugin. I mean it is up to the plugin, when to initialize itself completely. Some do that on instanciation (of the DLL), while others need to be opened first.
I'm not that much experienced to tell you what works and what does not work. I can only tell you that with some of my plugins, I only initialize everything completely, when the plugin is effectivly opened. Other things (like the GUI size) I only initialize during display of the plugins GUI. That is not how you should do it, since every request for the size of the GUI prior to its creatuin will result in (0, 0), but it is working very well as far as I know, since there are other plugins out there, that have this flaw as well and most hosts work around this anyway.
TheSteven wrote:BTW - Nice project Christian, thanks for all the hard work.
Thanks. Unfortunately it's not finished completely, but it's improving everyday. Btw. anyone noticed the new website? I've done some work on the GUI part lately and I showed an example using a KnobMan prerendered knob (see screenshot).
Image
It's just an example, but it shows how it basically works. It should compile right out of the box (the SVN one ;-)

Christian

Post

I'd noticed the increase in screenshots via svn.. just had a look @ the front page - very clear :) nice work Mr. B!

DSP
Image

Post

Thanks for the reply.
Some do that on instanciation (of the DLL)
I think thats what I'm running into, when I trace the code it appears to me that that is whats happening. But maybe I'm screwing it up somewhere, here's a code snippit from my test app:

Code: Select all

       if FileExists(sFileName) then
        with VstHost[0] do
         try
          DLLFileName := sFileName;
          Active := True;
          with Memo.Items do
           begin
            Add('VST Name: ' + GetEffectName);
            Add('Unique ID: ' + IntToStr(PVstEffect^.UniqueID));
            Add('Vendor: ' + VendorString + ', Product: ' + ProductString);
            Add('VST Version: ' + IntToStr(GetVstVersion));
            Add('Category: ' + PlugCategory2String(GetPlugCategory));
           end;
         finally
          if not Active
           then Memo.Items.Add('Error while loading: ' + sFileName);
          Active := False;
          UnLoad;
         end;
      end;
As shown in the code I'm looking for VST Name, Unique ID, Vendor & VST Version. With most plug-ins I get the info quickly but with a few it takes a while. If I scan the VST for Addictive Drums - I can go out for a sandwich & coffee before it returns the information.
Btw. anyone noticed the new website?
You must have updated it after my previous visit, looks nice!
I didn't know sourceforge allowed such customization.
... Steven

edit: corrected typo

Post

TheSteven wrote:Thanks for the reply.
Some do that on instanciation (of the DLL)
I think thats what I'm running into, when I trace the code it appears to me that that is whats happening. But maybe I'm screwing it up somewhere, here's a code snippit from my test app:

Code: Select all

       if FileExists(sFileName) then
        with VstHost[0] do
         try
          DLLFileName := sFileName;
          Active := True;
          with Memo.Items do
           begin
            Add('VST Name: ' + GetEffectName);
            Add('Unique ID: ' + IntToStr(PVstEffect^.UniqueID));
            Add('Vendor: ' + VendorString + ', Product: ' + ProductString);
            Add('VST Version: ' + IntToStr(GetVstVersion));
            Add('Category: ' + PlugCategory2String(GetPlugCategory));
           end;
         finally
          if not Active
           then Memo.Items.Add('Error while loading: ' + sFileName);
          Active := False;
          UnLoad;
         end;
      end;
As shown in the code I'm looking for VST Name, Unique ID, Vendor & VST Version. With most plug-ins I get the info quickly but with a few it takes a while. If I scan the VST for Addictive Drums - I can go out for a sandwich & coffee before it returns the information.
For this it should be enough only to instanciate the DLL rather then "activating" it. Up to now there is no difference between instantiation and opening (both are done in one step). However, if you download the latest SVN version, you'll find a dedicated LoadVSTDLL in the code. This should be used instead of Active := True; and instead of Active := False you should use "Unload" (already existing in prior versions).
I haven't tested this in detail and thus I can't say, what information are available at that point, but I'm sure those basics are. Just try it out and report here. It's easier than for me to write a test tool to test it with the limited number of VST plugin I have on my HD.
TheSteven wrote:
Btw. anyone noticed the new website?
You must have updated it after my previous visit, looks nice!
I didn't know sourceforge allowed such customization.
Yes they do. I wanted to do this since ages, but never found the time. I set up a Joomla content manager and it works fine. But since I'm not a web designer any help is appretiated.

Christian

Post

Just another small update:

Image

I made a new GUI for the soft knee feedback compressor (you can find everything in the latest SVN). It also features a new antialiased font label (not very sophisticated, but works as it should).

Christian

Post

Once again one beauty update:
Image (shamelessly ripped of from the GUI in the other thread)...

Christian

Post

Christian,
thanks for the info I'll run some tests later when I get home.

Is 1.3 the latest version? The website says the last update was March 18, 2008.

... Steven

Post

TheSteven wrote:Is 1.3 the latest version? The website says the last update was March 18, 2008.
No, the SVN version is the latest. I don't know whether you are used to Subversion, but with Tortoise it's very easy and comfortable.
However, I should bring out a new version soon, there have been already too many changes. As soon as I got the native WAVE and AIFF loading code done I'll do so.

Christian

Post

No, the SVN version is the latest
Ah...
Yes, I use Tortoise. Downloading as I type...
Thanks
... Steven
ImageCakewalk/Sonar Plugin Management Tools

Post

There might always be some issues with the latest version (e.g. missing files, typos, etc.), but in general it should be easy to fix. With each SVN check-in I always test everything related to that change, but seldom more. Only for real releases.

Christian

Post

Hi Christian

Setting up for my scan VST testing and found minor typo in current SVN copy:

DelphiAsioVST\Delphi11\HostASIO_D11.dproj

is:

Code: Select all

contains
  DASIOHost in '..\Source\DASIOHost.pas',
  OpenASIO in '..\Source\OpenASIO.pas',
  Asio in '..\Source\Asio.pas',
  DASIOConvert in '..\Source\DASIOConvert.pas',
  DASIOGenerator in '..\Source\DASIOGenerator.pas',
  ASIOChannelStrip in '..\Source\ASIOChannelStrip.pas',
  ASIOMixer in '..\Source\ASIOMixer.pas',
  BeRoASIO in '..\Source\BeRoASIO.pas',
  DASIORegister in '..\Source\DASIORegister.pas';
should be:

Code: Select all

contains
  DASIOHost in '..\Source\DASIOHost.pas',
  OpenASIO in '..\Source\OpenASIO.pas',
  DAsio in '..\Source\DAsio.pas',
  DASIOConvert in '..\Source\DASIOConvert.pas',
  DASIOGenerator in '..\Source\DASIOGenerator.pas',
  DASIOChannelStrip in '..\Source\DASIOChannelStrip.pas',
  DASIOMixer in '..\Source\DASIOMixer.pas',
  BeRoASIO in '..\Source\BeRoASIO.pas',
  DASIORegister in '..\Source\DASIORegister.pas';
...Steven
ImageCakewalk/Sonar Plugin Management Tools

Post Reply

Return to “DSP and Plugin Development”