Delphi ASIO & VST sourceforge project

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

Post

Hi again,

I skinned another plugin from the repository. The skin is based on the WaveArts design:
Image
I used KnobMan for prerendering the knob, but the rest is entirely done by the code from the Delphi ASIO & VST project and it should compile out of the box.

Have fun,

Christian

Post

TheSteven wrote: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';
Fixed, thanks. I don't have Delphi 11, so I couldn't check that yet. However with the next release I will add a prefix to every file used by the project to be unique. Then I will rework all the package install files.

Christian

Post

Christian,

Just updated my build from SVN.
No matter what order I install the components I get an error when I try to install DVSTGui_D11. The error message changes depending on whether I try to install it 1st, 2nd, 3rd, etc..

Now that I've installed the other components I'm getting this error:
Cannot load package 'DVSTGui_D11.' It contains unit 'DDspBaseComponent,'which is also contained in package 'AVDDSP_D11'.
Is there preferred installation order of the components?
For example, I've found I have to install HostVST_D11 before I can install VSTPlugin_D11 but haven't noticed any install order relation with the rest.

BTW regarding my testing on loading VSTs to get their information.
At this point I've only been trying to load random plug-ins one at a time. Most load fairly quickly but a few take long time. As we discussed previous its probably based on what the plug-in does when its first initialized, but still, Reaper seems to burn through its plug-in scans incredibly fast - I am curious as to how it does it.

I was thinking that for processing a whole folder that a multi-threaded approach might be the most effective way - where each plugin scan/load is performed on a different thread so that way one or two slow loaders don't bottleneck the whole process. Threading is not my strong point so I'm not sure that this is even viable. If anyone has feedback on this I would appreciate it. I don't mind exploring this possibility, but if it's a known deadend I'd rather not waste my time.

Thanks again,
... Steven
ImageCakewalk/Sonar Plugin Management Tools

Post

TheSteven wrote:Just updated my build from SVN.
No matter what order I install the components I get an error when I try to install DVSTGui_D11. The error message changes depending on whether I try to install it 1st, 2nd, 3rd, etc..

Now that I've installed the other components I'm getting this error:
Cannot load package 'DVSTGui_D11.' It contains unit 'DDspBaseComponent,'which is also contained in package 'AVDDSP_D11'.
Is there preferred installation order of the components?
For example, I've found I have to install HostVST_D11 before I can install VSTPlugin_D11 but haven't noticed any install order relation with the rest.
Well there shouldn't be any problems if the order is wrong. However, I can only check for D10 at the moment. To ensure it is working for other versions of Delphi, I have to check the dependencies and compare those with the dependencies I have in Delphi 10. It is planned for a new release to do so. So far it is more or less up to you to find the best order. Perhaps it is necessary to remove some dependencies and units in every other package (e.g. the unit 'DDspBaseComponent' which supposed to be declared twice. Just include it in either one package (DSP or GUI and install that package first.
TheSteven wrote:BTW regarding my testing on loading VSTs to get their information.
At this point I've only been trying to load random plug-ins one at a time. Most load fairly quickly but a few take long time. As we discussed previous its probably based on what the plug-in does when its first initialized, but still, Reaper seems to burn through its plug-in scans incredibly fast - I am curious as to how it does it.

I was thinking that for processing a whole folder that a multi-threaded approach might be the most effective way - where each plugin scan/load is performed on a different thread so that way one or two slow loaders don't bottleneck the whole process. Threading is not my strong point so I'm not sure that this is even viable. If anyone has feedback on this I would appreciate it. I don't mind exploring this possibility, but if it's a known deadend I'd rather not waste my time.
Generally speaking a multithreaded approach is preferable. Also since a crashing instance will not crashes the main thread then. So you avoid crashes and bottlenecks. As with the bottlenecks it's sometimes a problem, that a VSTi plugin load dozens of samples from the HD, while the CPU is more or less in idle mode anyway. Also you should have at least 2 or 4 threads to effectivly use the multicore architecture (or even more if you have hyperthreating or something like this). Even with those nettop processors you will have multithreating in the future.
Also using the "LoadVSTDLL" rather then activating the plugin will boost the scanning, since definitly not everything will be initialized at that point (but likewise you have to say, that not every information can be aquired at that point).

Christian

Post

Christian,
Is there an error with the svn because after I cleaned my asiovst-svn folder, I took a complete checkout and Tortiose gives me this:
  • In directory 'C:\d2006inc\ASIOVST-SVN\Delphi7'
    Can't open file
    'C:\d2006inc\ASIOVST-SVN\Delphi7\.svn\tmp\text-base\DAV_VstPlugin_D7.dpk.svn-base':
    The system cannot find the file specified.
Anyone noticed this or am I the only one left with an uncomplete asiovst? :(
Image

Post

I had that. I use SmartSVN, and did a 'physical delete' on the file and then update to head.

Don't know what the tortoise would be.. I use Tortoise for CVS, and Smart for SVN to avoid complicated context menus. I assume that there would be some sort of delete facility, then justdate and the file should be added.

HTH
DSP
Image

Post

I've been testing the Asio host component. It makes it surprisingly easy to add asio support to an application. But I just noticed the license for this package is LGPL. Does this mean I can't compile this package into a closed source application?

- Shannon

Post

very angry mobster wrote:I've been testing the Asio host component. It makes it surprisingly easy to add asio support to an application. But I just noticed the license for this package is LGPL. Does this mean I can't compile this package into a closed source application?
No, as far as I understood the LGPL it says you can compile closed source. I wanted to choose a license where you can use it (compile something like closed source) without any costs. What I also want is that someone checks in any changes to the original source. So as long as you inherit from a filter and use this in your closed source project everything is perfecly fine, but if you change something in the base class you should have to let us know of the changes and if it sounds useful it will be added to the original files.

The Delphi community is very small in comparison to the c++ comunity in regards of audio, so I want this project to stick our heads together to create something we all profit from. One day, when lazarus is working flawlessly we'll be able to recompile our projects on osx without further work. At least that's the plan...

Kind regards,

Christian

PS: Btw. anyone interested in this OSX port should contact me. I'm willing to actually do some work here, but not alone!

Post

Ok great. I like those license terms. :) Thanks Christian.

Post

Hi,

just want to use this place to let you know of an important fix of the ASIO-Host that caused crazy access violations. This bug has been fixed in the latest SVN version (was not present in the latest stable version though).

Just to let you know,

Christian

Post

Christian,

Thanks for the update!
ImageCakewalk/Sonar Plugin Management Tools

Post

Hi Christian,

I made some changes to DVSTHost.pas in order to compile it with Delphi 2009. I don't have access to the sourceforge repository - which is the best way to send you the unit?

BTW: Thanks alot for the package and your continuing work on it!

Post

Rolix wrote:Hi Christian,

I made some changes to DVSTHost.pas in order to compile it with Delphi 2009. I don't have access to the sourceforge repository - which is the best way to send you the unit?

BTW: Thanks alot for the package and your continuing work on it!
Hi Rolix,

I'd prefer if you could send me the changes (or a patch). I did some changes as well that haven't been checked-in yet, so I might have some more work ahead in order to check everything in.

Kind regards,

Christian

PS: I'm in the middle of a trip at the moment, so sorry for the short answer.

Post

PM sent. Have a nice trip :)

Post

Hello, I think there is small error in the current version (rev 702) of DAV_VSTModuleWithMidi.pas :in the procedure TVSTModuleWithMidi.MIDI_Out(b1, b2, b3, b4: Byte; offset: Integer) line 136 ; b[0] should be equal to the sum of parameter b1 with b2 ( theorically ? if you look at the others procedures using a predefined status it's clearly that)

Post Reply

Return to “DSP and Plugin Development”