[linux-audio-dev] mp3, oolaboola & audio app architectures (fwd)

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

Subject: [linux-audio-dev] mp3, oolaboola & audio app architectures (fwd)
From: est_AT_hyperreal.org
Date: ti elo    17 1999 - 16:19:43 EDT


Here's a posting of mine to freeamp-dev that might entertain some
people on this list too. :)

Eric

>From est Tue Aug 17 13:16:10 1999
Subject: mp3, oolaboola & audio app architectures
To: freeamp-dev_AT_freeamp.org
Date: Tue, 17 Aug 1999 13:16:10 -0700 (PDT)

robert_AT_moon.eorbit.net discourseth:
>
> Thanks. Yes, a ui/pmo pair will do the trick. I'm currently downloading
> your program -- it sure looks sweet.

Great..and thanks! I'm always looking for ideas for improvements,
btw..and mp3 is the number one request.

Re the ui/pmo idea: Since I posted it I've run into a nasty technical
problem/realization: mp3 files aren't really seekable (that reservoir
of bits). This is not good for loops, etc. I think what I may end up
doing is decoding the mp3 into a temporary pcm file, showing how much
has been decoded in a meter and announcing `seeking' when the user
tries to go to a part that isn't decoded yet. It's ugly, and I'd like
to be told there's a better way.

> Hmmm. After a new glib, gtk, pyhton devel I also need a new gcc. Dang.
> I thought my pet project Obsequieum was demanding... :-)

Yes, my edge bleedeth. I was shocked when Redhat 6.0 came out
completely oola-ready. :)

> Anyway, I'd like to turn this around and have a programmatical
> interface to your program. I'd like to be able to write a plug-in for
> oolaboola, that automatically mixes two tracks together. The plugin
> could do some random mixing, maybe something fractal, and just general
> playback distortions. Sorta like Gimp for DJs?

This shouldn't be too hard. The dsp and the gui are completely
separate programs that communicate over a pair of pipes using Scheme
symbolic expressions. There's even a little sequencer program
included that can take time-stamped symbolic expressions (which oola
automatically logs) and drive the dsp. The commands used are going to
change a bit, but the lexics will remain the same. I've got a broader
vision for this Symbolic Control Protocol as something to use..well,
instead of midi. :)

> There is one problem with the xing decoder that FreeAmp uses: its not
> reentrant.

Precisely why I went for the process-per-file approach. :)

> This means that one program can only have one copy of the
> decoder running. This can be circumvented with we did this using the
> following approach:
>
> 1) oolaboola opens freeamp with the oolaboola interface ui and the
> oolaboola pmo.
> 2) The oolaboola ui would not actually present any kind of UI to the
> user. Instead it would communicate with oolabools via IPC/shared
> memory, so that oolaboola is fully in charge of freeamp
> 3) The pmo uses shared memory base circular buffer that both freeamp
> and oolaboola have access to.
> 4) One instance of freeamp is opened for each mp3 decode stream you
> need.
>
> Using freeamp instead of some mp3 decode library would also allow you to
> mix real-time MP3 streams from the web. I could envision a multi-user
> virtual jam session. Hmmmm. DJ's of the world, unite!

All this is completely consonant with some of my long-term
architectual aims. They involve resources identified by URLs that you
can open and talk to via Symbolic Control Protocol. Streaming
connections can then be negotiated to use either tcp and network-order
data or (if on the same machine) shared memory. Applications could
figure out where to send output by looking at the SOUNDOUT environment
variable, etc.

> > * How come freeamp-1.3.0 doesn't have a -pmo option..is there one in
> > 2? In any case, it looks easy to add.
>
> There is -- check out .freeamp_prefs in your home dir. We could easily
> add a command line option for that.

Actually, I knew I could always lie about HOME..but it looked like an
option would be easy.

On another note, have you considered 3dnow! optimizations for freeamp?
I've been playing with 3dnow! recently and it's incredibly effective
(like 3-fold speed-ups).

Best,

Eric


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

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:25:52 EST