[PD-dev] separate the audio-backends

Hans-Christoph Steiner hans at at.or.at
Wed Oct 31 15:11:15 CET 2012


On Oct 31, 2012, at 5:48 AM, IOhannes m zmoelnig wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 2012-10-31 04:11, Hans-Christoph Steiner wrote:
>> 
>> I think this would be super valuable.  libpd already has an
>> implementation of parts of this idea, but making fully separate
>> modules would be quite nice.
>> 
>> Have you talked with Peter Brinkmann at all?  It would be nice to
>> have these efforts synced up since they seem to have the same aim.
> 
> i haven't talked with peter about this recently.
> 
> 
> anyhow, i cleaned up the code a bit and pushed it to my github fork.
> check it out at [1].


What about taking it in this direction fully and making it possible to encapsulate the entire implementation for a given audio API in a single file?  Then having it so s_audio.c is never modified.  I think this is how it is for libpd, but I suppose that's easier there since libpd assumes there is some other program that will handle that stuff.

If there was a "register" function like how loaders are registered, and a very simple load path like a pre-defined folder like pd/lib, then pd -audioapi jack could just look for libaudio-jack.so there and load it.  Or maybe it would be better to use the normal Pd search path.  This would have the extra benefit of making it easy for people to distribute and use alternate implementations of the various APIs.


> currently MIDI has not been touched yet.
> also the preferences system (including startup flags) would need some
> slight modifications (e.g. use something like "-audioapi jack" rather
> than "-jack"; and use symbolic values ("audioapi: jack") in the
> .pdsettings file as well, rather than some weirdo numbers ("audioapi:
> 42" anyone?)


The symbolic values make a lot of sense.  We should leave in the code in Pd that reads the numeric values to support old files, but just have it always write out the symbol values.  That should make the transition easier.

I tried this on Mac OS X, it builds and runs.  Jack works, but portaudio does not.  It does not give me any audio devices when I try to configure portaudio (see attached pic):

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen shot 2012-10-31 at 9.43.01 AM.png
Type: image/png
Size: 23613 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20121031/3cfd64af/attachment-0001.png>
-------------- next part --------------


.hc



More information about the Pd-dev mailing list