Delphi ASIO & VST sourceforge project

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

Post

Hi Rola,

this is planned, but it is not a main goal of the project. Right now there are the last major changes towards releasing an official version 1.4. All milestones are done so far, but I'm not satisfied with the internal structure yet.

Kind regards,

Christian

Post

rola wrote:Hi Christian,

Thanks for this great project.
Do you have any plans to add support for other audio interfaces like DirectSound? I think support for standard audio interfaces would be a good thing to have, especially for potential users who are not into pro-audio and (1)don't have ASIO drivers installed on their system. (2)Also I think most stand-alone synths feature DirectSound and MME support.
Sadly, I wouldn't know how to add this myself.

Thanks,
rola
(1) Asio4all is made for those - http://www.asio4all.com

(2) Have you ever tried that path?


Juha

Post

Hi Christian,

I noticed some problems compiling projects if range checking and overflow checking are enabled.
For example TDAVSingleFixedArray could be defined as
TDAVSingleFixedArray = Array [0..(maxint shr 2)-1] of Single;
Instead of
TDAVSingleFixedArray = Array [0..0] of Single;

It would be good to be able to compile projects with range checking because it allows you to catch bugs that would otherwise go unnoticed.


Rola.

Post

hmm.. rola, that would mean that every time a TDAVSingleFixedArray is used a huge slice of memory is allocated, this isn't a great thing.

The [0..0] notation allocates an array one 'Single' deep, which is then altered using setlength. In trusth it should be decalred as just 'Array of Single'.

The notation used is for compatability with older compilers, tho' I think the DAV project is only looking back to D5 (which is now 10 years ago), and D5 has the facility for dynamic arrays to be declared without the [0..0]. It will also work with range checking.

I assume that you are only using the range checking during debugging cycles, and turning it off for release builds, since there is a significant overhead involved when rnage checking is enabled, both in terms of performance and executable size. :)

HTH
DSP
Image

Post

No i think it's not used to allocate memory. It's used for referencing the values of the array (PDAVSingleFixedArray[x]). You would use a dyamic array for allocating memory(TDAVSingleDynArray).

Yeah range checking is of course only used for debugging

rola

Post

hmmm yes, sorry, long day. Kettle's on for a nice cup of tea, I'll be clearer headed then ;)
Image

Post

I just added an additional ifdef so that you can enable and disable the ranges yourself now. Just drop a modified version of 'DAV_CompilerSwitches.inc' in your local project directory and rebuild the whole project ([Shift] + F9).

Christian

Post

Cool Thanks.

rola

Post

Hi, Christian!!

first of all - Thank you for your great work and that you made me happy - because I always wanted to make my own VST effects.

So i want to ask you a question.

I am using Delphi 2007, Windows Vista SP1, host - Cubase 5 and VST-ASIO pack 1.4 beta that you made. I'm just starting at VST programming and making NO GUI delay effect.

It's working - making delays and everything is beautyfull. But when I
try to change parameters (from host's own editor) several times - it gives me 'access violation' error. I compiled some of your examples with no GUI from MDA folder - the same error!!!

Is it host's fault, or windows' or delphi's problem?

Thank you!!
Last edited by kartalex on Thu Dec 03, 2009 1:23 am, edited 1 time in total.

Post

Hi Kartalex,
kartalex wrote:It's working - making delays and everything is beautyfull. But when I
try to change parameters (from host's own editor) several times - it gives me 'access violation' error. I compiled some of your examples with no GUI from MDA folder - the same error!!!

Is it host's fault, or windows' or delphi's problem?
It might be due to the fact that the beta I made wasn't much tested. I just decided to release some intermediate step towards version 1.4. At the moment all internal milestones are reached in order to call it 1.4. Now I only need to make it stable enough for an official release.

However, as I only use this project to make my work more transparent and more structured, I did not find the time yet to spend about 1-2 weeks to decide what parts to include and what parts still contain too many bugs.

For now I can only suggest to download the latest SVN release and see if the problem persists. If so, I recommend to download the madshi packages (google for it) and send me the bug report it creates. in case of a crash. It contains a complete stack frame, so that I can see what's wrong there.

I do not have Cubase 5 to check by myself, but so far I have heard that the examples should work with Cubase.

Btw. some of the MDA plugins have not been tested yet. I only translated them as close as possible to the framework without checking the functionality in detail. It's because the lack of time. If you (or anyone else) wants to chain in, feel free to do so. I will surely help where possible, but for me it's to much work for something I do not really need at the moment.

Kind regards,

Christian

Post

Thank you, Christian!

I found it, it wasn't beta's fault...

I just put my compiler from 'Debug' to 'Release' mode in 'Project Options' and everything is working fine now! And even CPU changed from 4% to 0%.

But.... how do I get the host's tempo? I want to make my delay tempo-synced, and can't find a way...

Post

kartalex wrote:But.... how do I get the host's tempo? I want to make my delay tempo-synced, and can't find a way...
Try:

Code: Select all

TempoAt(Pos)
Where position is the sample position. However, this is deprecated in VST version 2.4. As I haven't used the tempo sync yet I have no further idea right now.

Kind regards,

Christian

Post

Or query the VstTimeInfo (using GetTimeInfo), which contains the tempo as well. However, please refer to the original VST SDK for further information.

Also feel free to contribute your work back to the project, so that anyone can see how it is done.

Kind regards,

Christian

Post

Thanks!

I'll try it!
Also feel free to contribute your work back to the project, so that anyone can see how it is done.
I'll be glad to be a part of the project!!!

Alex Kartoyev.

Post

Hi,

this is just another call for users (I made the last call one year ago and it was not very successful). I guess some users want to remain into the unknown or there are in fact only a couple of users.

However, if you are using this project, feel free to register an account on ohloh and sign for this project. Even though there are no real benefits for you as user, but it might be nice for me to see who is actually using this.

The last time I asked whether I should set up a mailing list or a forum there were only 3 people responding and all of them were 'known', which is why I did not see any benefit from this.

But to make it short here's the link for ohloh:

http://www.ohloh.net/p/DAV

It features some nice code statistics. For example according to ohloh, the project would be worth about 5 million dollar! Unfortunately this does not really pay of, but nice to know...

I hope to 'meet' some of the users there,

Christian

Post Reply

Return to “DSP and Plugin Development”