CVS Update (February 13, 2002)

The latest CVS snapshot is available:
http://www.libsdl.org/cvs.html

There’s lots of stuff I still have to integrate with CVS, but here’s
what’s new in the last few weeks:

  • Mike Gorchak added some QNX tweaks, including OpenGL support
  • David Snopek added Borland compiler support
  • Added support for the pause key under DirectX
  • Updated the documentation for the SDL_PushEvent() call
  • Jon Atkins added a YUV overlay test program (testoverlay.c)
  • Added support for joysticks on *BSD (thanks Wilbern!)
  • Quartz improvements: better mouse motion events
  • Quartz improvements: fixed minification bugs (except OpenGL)
  • Quartz improvements: fixed QZ_SetGamma for correct semantics
  • Quartz improvements: fade/unfade display before/after rez switch
  • SDL now compiles and works cleanly on stock BSDI.
  • Fixed X11 crash when updating rectangles of zero height (thanks Mattias!)
  • Cleaned up XImage code and sped up byte-swapped X11 blits (thanks Mattias!)
  • Added Quartz version of SDL_SetIcon() for MacOS X (thanks Bob!)
  • Added QNX cleanups by Mike Gorchak (thanks!)
  • Fixed building on Cygwin (thanks Michael)
  • Don’t allow multiple audio opens to succeed (until SDL 1.3)
  • Miscellaneous build fixes (thanks Mattias)

Enjoy!
-Sam Lantinga, Software Engineer, Blizzard Entertainment

(from the sdl at libsdl.org mailing list:)

There’s lots of stuff I still have to integrate with CVS, but here’s
what’s new in the last few weeks:

  • Don’t allow multiple audio opens to succeed (until SDL 1.3)

Really? I thought the consensus was this wasn’t a good idea.

Here comes my stupidity, along the same vein:

Is there hardware-accelerated “texture memory” for sound cards? That is,
can I preupload an audio buffer, and instruct the card to play it later
(and perhaps multiple times), so that bus traffic can be kept to a minimum
for sounds that that loop/play more than once and aren’t streamed?

I assume this is the purpose of the OpenAL (and directsound, now that I
think about it) buffer objects.

Should this be looked at for SDL 1.3? This could let us take advantage of
some hardware acceleration where supported. On the other hand, for targets
that don’t support more than the feeding of an audio callback/interrupt,
this would mean more or less moving SDL_mixer into the base library.

Hhm. Maybe I just answered my own question. :slight_smile:

–ryan.

Is there hardware-accelerated “texture memory” for sound cards?

Wow! Imagine that :slight_smile: First, we have Rez (on the PS2) that lets people SEE
the music…
Now we can contemplate the possibility of having texture memory in sound
cards, so we can FEEL it too!! :smiley:

Joking… :slight_smile:

(from the sdl at libsdl.org mailing list:)

There’s lots of stuff I still have to integrate with CVS, but here’s
what’s new in the last few weeks:

  • Don’t allow multiple audio opens to succeed (until SDL 1.3)

Really? I thought the consensus was this wasn’t a good idea.

Here comes my stupidity, along the same vein:

Is there hardware-accelerated “texture memory” for sound cards? That
is, can I preupload an audio buffer, and instruct the card to play it
later (and perhaps multiple times), so that bus traffic can be kept to
a minimum for sounds that that loop/play more than once and aren’t
streamed?

Yes, many modern sound cards have that - and the “texture memory” is
usually called “wavetable memory”, and in many cases it’s actually just
system RAM that is read using busmaster DMA during playback.

I assume this is the purpose of the OpenAL (and directsound, now that I
think about it) buffer objects.

Yes. DirectSound also has an object oriented approach encapsulating this
hardware design.

Should this be looked at for SDL 1.3? This could let us take advantage
of some hardware acceleration where supported. On the other hand, for
targets that don’t support more than the feeding of an audio
callback/interrupt, this would mean more or less moving SDL_mixer into
the base library.

Hhm. Maybe I just answered my own question. :slight_smile:

Well, yeah, except that there is another answer: Include a low level API
that provides access to h/w mixing if it’s available - no emulation.

Then just have SDL_mixer use that, or it’s own software mixing, depending
on what hardware you run it on.

IMHO, the same reasoning should apply to “memory mapped buffer” low
latency mixing, although in that case, it might actually be possible to
fake the feature quite easilly, in the rare cases where the output buffer
cannot be mapped. Not sure if that would turn out nicely, but I’m
probably going to look into it some time, unless someone else does. Audio
latency on Windows really sucks IMHO - but it might just be because I’m
used to having virtually no audible latency at all, with no tricks
whatsoever…

BTW, I’m currently using Kobo Deluxe with ALSA MIDI input (build option)
running on a Linux box as a synth, and Windoze + Cakewalk on another box
for sequencing. Works great, even without a lowlatency kernel! (That is,
as long as I don’t touch the Linux box, of course. :slight_smile:

Yeah, Kobo Deluxe 0.4-pre7 will be released soon (way too long since the
last release!), and there will be music, some new sound effects and other
improvements.

Hopefully, the final 0.4 is to be released shortly after that, which
means that I’ll release Windows binaries, and (if I can get some people
to build them) binaries for other platforms.

//David Olofson — Programmer, Reologica Instruments AB

.- M A I A -------------------------------------------------.
| Multimedia Application Integration Architecture |
| A Free/Open Source Plugin API for Professional Multimedia |
----------------------------> http://www.linuxdj.com/maia -' .- David Olofson -------------------------------------------. | Audio Hacker - Open Source Advocate - Singer - Songwriter | -------------------------------------> http://olofson.net -'On Thursday 14 February 2002 05:05, Ryan C. Gordon wrote: