| Audio APIs for Linux |
[Dec. 5th, 2007|11:20 pm] |
Some observations on Linux desktop audio APIs.
- ALSA is a nice driver framework. ALSA sucks as a high-level audio API. Stop coding your general desktop use app in it. It is hard to configure and finicky, and most apps that claim to support it (e.g. ZSNES) don't actually support it very well.
- OSS is great if you are living in the days when a Sound Blaster 16 was a high-level audio card. Unfortunately, these days we need more than one program to be able to play sound at one time. More often than not, ESounD or aRts will be hogging /dev/dsp, resulting in incredibly confusing error messages to the end user. If your app (I'm looking at you, Praat and VMware) still uses OSS, please do us all a favor and upgrade.
- ESounD is GNOME only and basically works, but for real time apps it is slooooooow.
- aRts is KDE only, and since Ubuntu is the way things are increasingly going, it's more likely than not not installed on your users' machines.
What does that leave? It's an option that is all too often forgotten:
- SDL. SDL is simple and it has a remarkable tendency to just work. There are bindings to every language in existence, it's a mature codebase, and it embodies the Unix design philosophy well. Plus, if you write in SDL, you're portable to Windows and Mac OS X too!
I write this after fiddling with audio setting after audio setting in various programs, trying to get them to all work properly together, but to no avail. Then I set all the programs' audio output to SDL, and every single program worked.
If you're writing a Linux audio program, do your users a favor and use SDL by default. |
|
|
| (no subject) |
[Jul. 19th, 2006|06:25 am] |

I hacked together a Core Image Unit (a Mac snob way to say "OpenGL shader") for the Super2xSaI image scaly thingy you see in emulators, because I always thought it was silly to do this stuff on the CPU when everyone has these big expensive video cards that emulators don't exactly use much of.
And now I need to get back to working on Real Stuff. |
|
|
| Heads up to Windows users |
[Dec. 28th, 2005|09:20 pm] |
There's a buffer overrun out there in WMF (a crappy ancient vector graphics format that Windows knows how to display). You can get infected though IE automatically, through Firefox if you choose to open the WMF, and (worst of all) automatically if the file is sitting on your hard drive and you're running Google Desktop.
Oh, and it can go through any image file type on Windows if you run it in IE or Windows Image Viewer, so basically be really careful for now. |
|
|
| Summer of Code finished! |
[Sep. 1st, 2005|04:59 pm] |
Hello LJ friends,
If you have a paid account, go to the ADVANCED CUSTOMIZATION SECTION and edit your layer. That's the pretty page I just finished.
If this is to you, don't worry about it.
Edit: Wow, I'm frontpaged. If you have any bug reports, please leave them here. |
|
|
| Excerpt from documentation I'm using |
[Jul. 24th, 2005|11:24 pm] |
"By this time I am hopeful that I have convinced you of the power of the Range object. With the power of this object in the hands of web designers the web will be opened up to an age of dynamic web pages where the page viewer has the ability to change the content as needed. I see a future for web pages to be given the power of true applications with full user editing capabilities. I see a lifting of the chains of static content controlled only by the author of the page. Eventually the end user will be given control." |
|
|
| Word game |
[Jul. 8th, 2005|11:23 pm] |
http://www.mogos.net/dj - go play.
Also, this journal has a new style with tags running down the side. I'll probably post the recursive radix sort algorithm I use for sorting them somewhere. |
|
|