ssj71 wrote:As I understand, Jeff, your point is ALSA has some issues and should be replaced or fixed (which is difficult due to the poor documentation), and JACK is adding a broken front-end on top of a broken back-end.
Yes! I could kiss you! (Are you cute?) Finally someone taking time to read and respond to my points, rather than arbitrarily dismissing them and instead trying to impune something about my motives.
But how would you recommend app->app audio be mixed such as JACK allows?
Excellent question.
I would not recommend app->app audio... at all. The unix paradigm of piping data across discrete apps works well for a lot of tasks... except realtime tasks. Imagine how dogslow video playback would be if an app couldn't pass graphics data to an os function like XDrawBitmap which then wrote it to the video card (driver). Instead, the app had to connect to a "graphics server", and send/wait for "requests" to get anything done, and this involved crossing process boundaries.
OMG! I just described X Windows! (Never underestimate a unix programmer's ability to design a realtime system that ain't realtime). So we go over to Phorunix(?) and look at the video benchmarks of x versus win and mac, and say "This X kind of sucks.". If only we integrated things more to eliminate the unixisms, it could be faster, smoother, etc. Wayland to the rescue! Die X server die! Die jack server! Die Mir and Canonical! Ahem.
The thing is, not once have I ever heard a Win/Mac user say:
I got 40 eq effects, and 40 reverbs, and 40 compressors, and 40 of every other thing, all made by various folks. And all of them work with my DAW. And my seq. And everybody else's DAW and seq... except this Non thing. Etc, I just go to the app's Plug-in menu, and there they all are -- ready to be "inserted" wherever I want right within the app. Damn this inflexible monolithic system! I'd give it all up if only... to use this reverb with my daw I had to run them both as separate apps. And then I had to use a 3rd app to "connect" nebulously named ports together to get them to work (and I don't even know what a port is since it's an abstract software concept, and honestly I don't even know what this app is actually doing). And I want to need to do this each and every time I use them together, until I get so fed up I go out and get a 4th app that does it for me, whatever "it" is cuz I don't understand what this "session manager" does either... when it works. And I want this horrific mess so that when one of these many points of failure break, I have no freeking clue how to fix it. And then I can go on Linuxmusicians and say 'Help! Why is this so much harder than my supposedly-monolithic system, which btw has a vastly greater array of choices/suppliers?'. And they can say 'because it ain't that system. get lost.'"
Nope. Never heard a Win/Mac user say that. Reckon I never will.
In conclusion, we don't want app->app->app audio. We want app->plugin->plugin audio, where plugin is a standard that all apps support.
If I want edrummer to send drums to an FX program is this possible using ALSA and if not, how should this be architectured? A change in ALSA or something added on top?
[/quote]
Another excellent one. Kiss me. No tongue.
Let's make the example really specific -- you want to use edrummer with zita reverb. First you go to the zeta author and say "your app is an ideal candidate for plugin format. Please make it an lv2.". And he says "No" because he's Hans. But it doesn't matter because some ass butchers his code into lv2 anyway.
Then you go to the edrummer author and say "I want to use this plugin. Please add lv2 support." And he says either "Sure I'm not some guy clinging to the LADSPA past", or "No way. You're that amphibian music guy, and you want me to do
your work for you.".
But it doesn't matter because GMaq does all the tedious work I refuse to do, and he modifies edrum, makes a desktop launcher for it, packages it, and bakes cookies for the first 50 people who download it. so you load up zeta in edrum with nary a qjackctl in sight, and make your ambulance music. or something.
Fun questions.