Showing posts with label audio. Show all posts
Showing posts with label audio. Show all posts

Apple goes One for Two

So, after my last post being enthusiastic about the Airport Express using Wireless Distribution Services, I need to add this addendum. They changed the Airport Express, adding some new functionality, but removing the ability to accept 26-character 104-bit hex WEP keys. If you're building an audio network from scratch with the new ones, you're fine. If you're using only the old ones, you're fine. Otherwise, you have to walk a very thin line that doesn't seem to yet be documented anywhere, unfortunately.

I wound up trading an Apple store employee my brand-new 802.11n Express for his used 802.11g, which solved the problem more quickly than tinkering with the tech on this one. Works for me, but *wow*, did Apple drop the ball on being cross compatible with it's *own* products. Argh. Two more hours of my life gone to errata.

Audio Project, Part 2

I need to write a 3D placement algorithm, where defining the speakers' positions in space and the audio source's position in space will set the volume for that audio on each speaker. The framework is there, and everything else looks right, but I still need to plug in the 3D calculation.

I'm not sure at all about using 10-15 USB interfaces on the same machine, and this sounds (by all accounts) a recipe for disaster. I can try and adapt this for lag, but just manually listening and figuring out delay settings for that many separate interfaces may be a final-implementation disaster. It's been suggested by a audio professional or two that I plan on using Firewire.

That said, I looked into using 5.1 or 7.1 surround-sound interfaces to split into 6 or 8 mono channels, respectively. However, this requires setting a variable in DirectSound, WAVEFORMATEX, which is available in C++, but automated in the C# SDK. Whereas that automation makes it easier for the majority of projects, it makes this one problematic.

So, the next step appears to be relearn enough C++ to make this work over there, so that I can address more that two channels per interface. The structure I've built looks like it'll port over very quickly, so this might not take terribly long.

Audio Project

Last year, I saw and was inspired by the Big Round Cubatron, the world's largest 3-D light installation. Ignore the chatter from the drunk guy in the video, and listen... no sound. Sound, I thought. This needs sound.


So, I thought up an idea. Build a room or half-sphere, and have speakers all over the perimeter of the space. Build hardware that translates sound to a light; treble lights a white light, bass, a red light, and so on across the spectrum. Attach one light to each speaker, and have everything face the center of the room.

Then run three dimensional audio screensavers on it, and make parameters of the screensavers accessible by physical controls inside of the space; foot pedals, knobs, buttons, whatever.

So, that was the idea. I looked into doing it in Java, which I was best at, but the hardware abstraction makes working with multiple soundcards a disaster. I tried Python, but didn't see quite what I liked, then saw a nightmare in having to implement hardware-level code with C. Taking a look at DirectX, I saw that C++ was certainly viable for this one, albeit I'm rusty in that direction. Then finally realized that if DirectX works in C++, it'll work in C#, and I'm off.

Today, setup two separate audio sources (one internal sound device, one USB device) and got them to play the same audio source with no apparent problem. Looking into DirectSound3D, some of my work may even be done for me already. The problem is that native DirectSound support is over as of Windows XP, and runs in an emulation layer in Vista. Meanwhile, XAudio for the XBox was bumped up to XAudio2, which runs on Vista, layers over DirectSound on XP, and still runs on an XBox if I'm feeling especially ornery.

That all said, that's what I'm up to, and some research into the (as of yet) poorly documented XAudio2 is in order. (Re: poor docs, it came out of beta in the last few weeks.)

iTunes

Someone mentioned iTunes crushing their pre-organized directory structure for music, and sucking everything into it's own directories. Someone else said because they heard that, they'd never use iTunes. My reply:


It's pretty trivial to avoid if you know it's coming. It *sucked* for the first few people it happened to, but once it's happened to a friend or two, you *know* when it asks "organize your music collection?", to say no. That's it. That's the only sticking point.

iTunes is one of the two slickest players on the market. It has the ability to import whatever quality MP3 you want. It's a great podcast and videocast player/aggregator. It downloads album art for you, and you can view all of your albums by their album cover, flipping through things visually with CoverFlow. When you pop in a CD, it finds the Artist/Album/Track data for you.

It lets you do dynamic playlists, so you can dump "breaks, downtempo, male vocal, glitch" into the genre field of your ID3 tag, and have it find things for you. It burns CDs as either audio or data. It can print those album covers it downloaded for you, for the CDs it let you burn. It has a feature to let you back up your entire music collection.

It lets you share audio across a network; if you turn the feature on, everyone on your local network can see your music and play it on their machine from your hard drive. It's an open protocol, so projects like MT-DAAPD can run on a fileserver in your closet, and your laptop can have access to them anywhere in the house. It's trivially easy to setup an Airport Express to have AirTunes, and use that laptop to play to remote speakers, maybe over in the kitchen, and maybe down in the basement. Internet radio integrates right in, so you don't need to keep Firefox hogging resources to listen to things on Shoutcast.

It integrates into the iTunes Store, which is amazing if you want it... and goes away *entirely* if you don't. The iTunes Store also lets you buy DRM-free music, if the extra fee is worth it to you. I'm not a fan, for the record, but am amazed by the wealth of features iTunes offers, and the absolute ease of configuring the damn thing.