[LAD] handling data streams: file vs callback

Dave Robillard drobilla at connect.carleton.ca
Mon Aug 6 23:25:15 UTC 2007


On Sun, 2007-08-05 at 17:12 +0700, Patrick Shirkey wrote:
> Dirk Jagdmann wrote:
> > Hello Patrick,
> > 
> >> I'm trying to jackify xwax. Xwax is a linux based emulator for Rane 
> >> serato and Final scratch.
> >> I have successfully adapted the code from jackEQ to allow xwax to 
> >> register and connect several JACK i/o's.
> >> However the original system uses file descriptors for handling the 
> >> data (oss/alsa) internally and this is not instantly compatible with 
> >> the JACK callback system. At least it's not obvious to me how to link the 
> > 
> > I don't know xwax, but since it currently has oss and alsa output I 
> > guess it is using a "blocking IO" model instead of the "callback" model 
> > of jack. Restructuring the logic from blocking to callbacks can be 
> > complicated. I you want to have a first result have a look at
> > http://bio2jack.sourceforge.net/ which should fill your gap.
> > 
> 
> Hi,
> 
> Thanks for your suggestion. However I want to get multiple i/o's working 
> natively.
> 
> I'm fairly certain the code doesn't need restructuring. It's more a case 
> of how to  connect the internal data stream which is read from disk to 
> jack outputs or jack inputs to the internal stream.

Read from the disk to a ringbuffer (Jack includes one) in some thread
other than the Jack thread, then in the process callback (Jack thread)
read from that ringbuffer and write it to the port buffers.

Cheers,

-DR-





More information about the Linux-audio-dev mailing list