[PD] PD support for new alsa
karlmac at peabody.jhu.edu
Fri Apr 20 17:59:25 CEST 2001
On Fri, 20 Apr 2001, Winfried Ritsch wrote:
> > This should work with the alsa cvs version as of a few days ago or the
> > newest beta available on the alsa website (www.alsa-project.org). It is
> > currently limited to 16/24 bit interleaved cards - i.e. no hammerfall. I
> > have only tested it on a stereo 16 bit card. Either Winfried Ritsch or I
> > will produce an optimized version for the hammerfall soon (still
> > interested in doing this Winfried?). Finally, you will probably
> > need to set the number of frags to make it work at all. Try this
> > commandline first:
> yes I am on the way, but the alsa-mmap interface was just changed
> again the last days ;-(, even there is one problem, that is you cannot
> allocate a subset of channels in mmap on alsa so always have to use
> all 26 (18) channels, which is not always preferabel. Maybe we just
> should integrate the non-interleaved no-mmap interface also in your
> driver-interface or using "plugin:" for these cases and a special mmap
> one for really low latency for all channels ?
Hmmm, I am adding a command line switch right now to allow the user to
choose the plugin layer. This seems like a good compromise to me - it
will allow the user to choose whether they want performance or
Also, I think I will start separating the perform functions instead of
dumping all possible combinations into 1 long function. Are there any
objections to using the gcc specific inline keyword in the alsa code? If
you are using alsa you _must_ be using gcc as far as I know so this seems
> One other idea is that the driver allocates all channels but fill only
> these which are needed, so an performance improvement could be that
> the adc~/dac~ object reports or are asked in some way if they are
> allocated, so only these channels are copy/converted from/to float
> to/from card-format.
This seems like a good idea as well. Maybe instead of the adc~/dac~ it
can be the number of devices requested on the command line. This would
require fewer changes in the code and be simplier overall.
> > I know this seems like a lot of fragments, but this is comprable latency
> > to OSS on my machine. Please test this and tell me how it works or
> > doesn't work. Miller, if you would like a diff just let me know.
> ok, the option -noadc and -nodac does a:
> pd: pcm_params.c:2081: snd_pcm_hw_refine: Assertion `pcm && params'
This is fixed in my local copy. I will upload another version after I
here from some more people.
> mfg winfried
| Karl W. MacMillan |
| Computer Music Department |
| Peabody Institute of the Johns Hopkins University |
| karlmac at peabody.jhu.edu |
| www.peabody.jhu.edu/~karlmac |
More information about the Pd-list