[linux-audio-dev] Audio s/w ui swallowing

David Olofson david at olofson.net
Thu Jan 30 03:44:01 UTC 2003


[Bringing an old thread up again...]

On Monday 09 December 2002 22.56, David Olofson wrote:
[...]
> If so I would suggest 624 x 64 for a 1U 19" window. The ratio is
> 1:9.75; just half a pixel away from 19":1U on the height. 624 gives
> you some room for window borders even in 640x480, and height
> shouldn't be an issue as long as units stay below 7U. 64 is also a
> nice figure for 1U, IMHO. :-)

There were no complaints about using 624 x 64 as the 1U of 19" for 
virtual rack devices, IIRC. Still sounds nice to me, although, for 
various reasons, I'd also like to support "half rack" format; ie 312 
pixels corresponding to 9½" units.

Sounds ok?


Anyway, the reason I'm asking is that I'm getting closer and closer to 
a point where I'll need a highly portable "media player" that can 
host (for starters) Audiality, to play Audiality specific songs. I'd 
also like to use the same framework for testing, debugging and 
editing tools for Audiality, and perhaps other things in the future. 
Obvious features to add at an early stage is LADSPA hosting and 
running as a JACK client.

Requirements:
	* Must run on Linux, Mac OS X and Windows at the very least.
	* Should support full-screen modes.
	* Concistent look'n'feel across platforms.
	* Should be fast and responsive.
	* "Chrome" support; ie per-plugin VST style skins.
	* A minimum of dependencies, for easy porting and building.
	* Preferably pure C, to avoid C++ binary compatibility issues.


I'd really rather not hack specific player plugins (XMMS, WinAmp and 
whatnot) for each platform if I can help it. I'd much rather not 
spend much time hacking stuff that won't even compile on Linux...


As it looks now, I'll use SDL for graphics and portable audio output. 
(Audiality already supports SDL audio, and compiles with that only if 
there's no OSS.) SDL 1.2 can't handle multiple windows, but I don't 
really want that anyway, not even in windowed mode. It's going to be 
entirely rack style, though I'll probably support multiple columns. 
SDL *can* handle fullscreen, it's highly portable, and it's great for 
fast low level graphics.


The GUI toolkit will be a *very* basic pixmap based one, with an 
asynchronous, two-way event based API that does not assume the 
rendering layer is in the same thread or even process as the client. 
This won't really matter initially, but the idea is that 
out-of-process clients should be able to run GUI panels in the rack 
and that kind of stuff.

I'll probably add a binding that allows the abuse of Audiality's EEL 
scripting language for creating GUIs. That way, you can implement 
"engines" in EEL, so you can construct "real" GUIs without adding 
compiled code anywhere. (EEL code will run wherever Audiality runs - 
or you won't get any waveforms rendered.)


Obviously, I've looked for something I could use or hack, but it seems 
like every damn media player is either a huge, non-portable monolith 
or a half-finished beginner's project - or both. Of course, there 
appears to be no such thing as a remotely portable media player 
plugin API.

I've been thinking about building one on top of LADSPA, but it seems 
to be the wrong kind of design for the job entirely. This needs more 
thinking, though. (Obviously, I should check out the WinAmp and XMMS 
plugin APIs to get an idea of the feature set, so I don't have to 
figure it all out through experimentation.)

Did I miss something? (Useful cross-platform player plugin APIs, for 
example...)

Is there interest in something like this, or maybe better ideas that 
would solve my problems as well? A suitable player plugin API I could 
use, or at least start with?


Finally, note that I'm still talking about a "quick hack", rather than 
The Final Media Player. It's probably going to be lots of copy/paste 
from various SDL stuff I've written, and pretty messy for starters. 
I'm just trying to start with a basic idea that isn't *totally* 
bogus, in case it actually becomes half as useful as it seems to me 
on a good day.


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---




More information about the Linux-audio-dev mailing list