-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2012-07-03 23:11, Miller Puckette wrote:
Hi all,
Pd version 0.43-3 is available on http://crca.ucsd.edu/~msp/software.htm
cool.
I'm ready to start hacking on 0.44. The most urgent thing seems to be for me to go back and work on the audio system (and perhaps tweak MIDI a bit more too).
i have a project lying on my hardisk for >1 year (iirc, shortly before the 0.32.0 release), that is related to that: separating the audio system(s) from Pd-core.
background: currently Pd supports a number of audio-backends. while these backends are mainly separated into several source files (e.g. s_audio_alsa.c for ALSA), there is a lot of theoretically backend-agnostic code (s_audio, s_midi, s_main) cluttered with "#ifdef USEAPI_ALSA" and the like. this makes the current code badly readable and thus maintainable, it also makes it hard to add new audio systems as backends (and the more you add, the more complicated the codebase gets).
more background: currently all audio backends are linked to the main "Pd" binary. if your version of Pd is compiled for alsa, jack, OSS and portaudio (the default on debian), you have quite a number of dependencies. (as maintainer of the "puredata" debian package i prefer to keep necessary dependencies at a minimum).
furthermore, Pd supports outdated/deprecated backends like OSS (both audio and midi). in practice i haven't used OSS-midi for a number of years (and i doubt whether it is actually still supported by the mainline kernels), and i used OSS-audio only seldomly in very specific setups. from this i follow, that the majority of people have to fight their way through a lot of dead options that are more confusing than helpful, and which should probably be removed in most cases.
suggestion: so what i ended up doing, was separate the audio-backends from the pd-core code a bit more, in a similar way to how Pd's object registration works. the means that people could write new audio-backends and load them on-demand, just like "externals". it also means that Pd's non-audiosystem codebase has only a minimum of "#ifdef USEAPI_ALSA" (there's only one, when it comes to loading the "internal" audio-system at startup).
all this also applies to MIDI.
if there's interest, i could cleanup the patches (and make them work again with 0.43.3) and submit them for review.
if there's confusion, i could try to try again and explain what i want.
fgmasdr IOhannes