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

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Audio s/w ui swallowing
From: David Olofson (david@olofson.net)
Date: Thu Jan 30 2003 - 10:35:57 EET


[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 ---


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Jan 30 2003 - 10:38:09 EET