Sorry for being a little bit off-topic, but I would like here from everyone on this list as well as Miller himself, because MAX used to run on a DSP core (according to Wikipedia)
This the message that i have posted to alsa-devel list yesturday:
I have a proposal for this Layered Model, which would allow implementation of new audio interfaces with DSP cores, with cross-platform compatibility and audio networking in mind.
it would be a sort of OSI for signal processing, but with some extra stuff to it, such as a common language (library) for hardware programming.
it's not to replace ALSA, but just to bring a different approach for design engineers of professional audio applications. we all know that these days a lot manufactuares chose Linux for their Mixing Consoles (such as Midas, Lawo, Calrec and others), also other products use Linux, but there might be only a few who use ALSA (as far as i could find out there rather NONE in pro-audio Linux devices).
Linux runs on devices such as Blackfin and OMAP, which have DSP cores, but the interface is device-specific, hence low-level.
ALSA had been designed for conventional sound-cards (largely) also there drivers for RME, DigiGram and other pro-interfaces, but the hardware is still proprietary and it isn't quite flexible.
The idea is to bring new concepts to the world, well not 100% new, but new in a way. One of these would be to implement an "open-source" audio processor interface of a kind. It would have configurable channel strips with (multi-band EQ and dynamics).
Another motivating factor is upcomming completition of AVB ethernet standard from IETF/IEEE, there had been no publicaly avaliable code for this, nor i could find any discussions of how it could be implemented in Linux. However i have contact with a professor Richard Foss from Rhodes University, and there they have implemented a library and packet generator for AVB, though they haven't yet published this code.
There also hasn't heppend any wide adoption of OSC, and may be OSC is not that great? I am currently working on "Control and Monitoring Protocol" which could take part in this architercture on it's TOP Layer.
The fallowing are the ABSTRACTION layers that i have thought being most general:
~>> Control, Monitoring and Information (CMI) ACMP (above mentioned above, it's kind of OSC-based) or AES-x170 (both can fit together) also OSC ..or even MIDI but ACMP is more general, it should be good for lighting and other controll applications ..
here is the place for GUI interfaces,
hardware controllers,
control surfaces ...etc
~>> Signal Processing Subsystem (SPS)
~>> Core Signal Bus (CSB) : our inter-connect
it has one common clock
one or more control ports
and one or more signal ports
(a port can be input, output, or both)
the control ports are exposed to CMI layer
the signal prorts can be:
bridged (over Ethernet (i.e. AVB), USB or FireWire)
interfaced (to say I2S, AES/EBU, AES-50 ..MADI, ADAT)
or streamed to a codec or
uncompressed file dumping
Let's call it an Port Exposure Layer
~>> Core Signal Elements (CSE)
the main abstraction for this is
library (our cross-platform API)
compiler (to produce platform dependent code)
interpreter (to configure and glue the blocks)
~>> General Purpose Operating System Of course it is still there ..it could be on a remote machine or anything ..and it could be everywhere around, even General Purpose CPU could be a fall-back option ..well, this is all about abstraction after all :)
This is with parallel audio clustering applications and distributed chain processing in mind.
Looking forward to here some discussion, I would like to set up a wiki and discusion list for this!
Ilya Dmitrichenko Илья Дмитриченко
email: errordeveloper at gmail.com