[linux-audio-dev] Fwd: Opinions on running VST or DirectX plugins

chrismorgan at rcn.com chrismorgan at rcn.com
Wed Oct 23 13:37:36 CDT 2002

Just so people don't think the code has fallen off of the face of the planet ;-)

Currently I'm working on two things with the wine jack driver , one of which needs to be complete before I submit the patch, the other can wait until some ongoing jack support is complete.

1. The driver currently closes and opens jack connections synchronously with wodOpen and wodClose.  The problem is that jack doesn't actually close the clients right away, sometimes it can take many seconds for this to occur.  Apparently this is a known jack bug but I'm also wondering if this is a problem in wines pthread implementation of conditions(there is no support for them right now).  Either way I've implemented a workaround that basically consists of opening jack connections and marking them as in-use or available as apps open or close audio devices.  This behavior can be enabled/disabled via a define in the driver.  This isn't complete yet but it should be soon and would prevent the lockups and delays that currently make things a pain.

2. I don't know of an easy way to do resampling so the input audio matches the sample rate that jack expects.  What I want is to be able to do something along the lines of:

set_sample_rates(input_rate, jack_output_rate);
set_resample_algorithm(x); /* pick a reasonable algorithm based on the current cpu and latency requirements */

And then in the callback routine something like:
resample(audio_data_in, *audio_data_out);

I haven't found anything even close to this simple as of yet, if anyone has any suggestions feel free to mail me about them.  There is someone on the jack mailing list working on a resampling library that is supposed to be easy to use and flexable.  Either way, this isn't critical although your music sounds funny if your sample rates don't line up very well ;-)

Otherwise I'm also looking into a crash with using the jack driver and directsound that might be due to the client process and memory allocation.

After working on the arts driver I realized that the future of audio servers really is callback based.  It is quite frustrating to see so little use of jack and so much use of poor solutions like direct hardware drivers(alsa/oss) or high latency servers like artsd.  No offense intended to people that work on or use either of those audio solutions, it just doesn't make sense when you want to have multiple apps outputting audio at the same time or if you need low latency(high end audio, games?, etc).  I'll see what I can do to get things cleaned up and a patch submitted in the next week, conditional of course upon Alexandre accepting jack support into wine.  At least now I have someone other than myself with an interest in using jack and wine together ;-)


> From: "Kjetil S. Matheussen" <k.s.matheussen at notam02.no>
> Date: 2002/10/23 Wed PM 12:18:13 EDT
> To: linux-audio-dev at music.columbia.edu
> CC: wine-devel at winehq.com
> Subject: Re: [linux-audio-dev] Fwd: Opinions on running VST or DirectX plugins
>  on Linux in real time
> On Wed, 23 Oct 2002, Taybin Rutkin wrote:
> > On Wed, 23 Oct 2002, Kjetil S. Matheussen wrote:
> >
> > > Could it be possible to overcome all problems mentioned just by simply
> > > adding jack-support to the wine-server? Then someone could make a simple
> > > windows-program for chaining directx and vst plug-ins.
> >
> > Someone has done this, I believe:
> > http://kt.zork.net/wine/wn20021011_139.html#2
> >
> Wow, it allready exist. Hey, wine-people, this driver is really needed for
> real-time audio-work, and for programs as sound-editors, multitrackers
> and interactive dsp programs as pd, jmax, and a lot of others. Artsd
> (f.ex) is not an alternative in its current form, and probably never will
> be either. Its something else. I guess Paul or some other competant person
> can explain a bit more why jack is so important.
> -- 

More information about the wine-devel mailing list