[plt-scheme] DrScheme, libsdl
I've been thinking on and off about how to get sound working in
DrScheme, but is sort of depends on exactly what you want to do.
For example, fluxus has two ways of making audio:
One is a dedicated audio server, a synthesis/dsp graph engine called
fluxa - which runs in a separate process (similar, although much much
smaller than supercollider). Events are timestamped and sent to the
server over the network, things can then be made to happen with a very
high timing accuracy (in other words, good for techno etc). It uses jack
as it's audio server which is great in performance situations for it's
reliability, but not for desktop audio due to fiddly setup (it's just
not designed for that). I've used fluxa in DrScheme though.
The other method in fluxus is a tiny C++ OpenAL binding, which should
probably be rewritten using the ffi. It's designed for adding sounds to
games.
OpenAL is great if you're happy playing a wav file and altering it's
pitch and volume. It's crossplatform and doesn't need any other servers
or processes running, and is probably what SDL is using.
I haven't tried making music with OpenAL though. One thing which could
be problematic is getting the timing accurate enough. You'd have to
drive it from a tight loop dealing with scheduled events, as it works
around 'play now/asap' concept, rather than sequencing or scheduling
things in the future. Even then, it might sound a little sloppy. It all
needs experimenting with though.
On the other hand, maybe someone is working on a solution already and
has figured all this out... :)
cheers,
dave
On Fri, 2009-10-23 at 13:34 +0100, Stephen De Gabrielle wrote:
> I thought someone had done a binding for this- though I may be
> thinking of fluxus.
>
> On Friday, October 23, 2009, Geoffrey S. Knauth <geoff at knauth.org> wrote:
> > I was just using libsdl in another language and it reminded me that recently people were looking for cross-platform ways of handling sound. Might libsdl be suitable?
> >
> > See: http://www.libsdl.org/
> > _________________________________________________
> > For list-related administrative tasks:
> > http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> >
>