Once upon a time I posted a hack-tip about getting the Flash plugin unblocked while your music player ran. The article was a gross restatement of an experience I had while learning BDD while listening to Wu-Tang. (In hind sight it would have been much simpler to just stop Amarok as it’s waay to difficult to hear rap music over top of tech jargon.) Fast forward several years and I find myself revisiting some of the same issues I spoke about back when. I tried to explain how Linux sound systems and audio processing worked. I was guessing at most of it and using my imagination tainted by my current experiences to draw a rough analogy. Today I’m beginning to get deep into audio signal processing/compression and so on and I sometimes need to work from home while much of my work is on the office Linux workstation. This presents some obvious challenges, the biggest one being playback of audio when programs run remotely. I’m posting today because I’m getting close to a possible solution that I haven’t found yet.
Let me describe a rather a-typical scenario so that you can appreciate how deep I’m getting into sound. You’re working from a MacbookPro, and you’ve logged into a remote Linux workstation using VNC. You need to test two mobile apps that stream sound from a remote service which you’ve prototyped on your Linux station. One app runs on Blackberry while the other runs on the iPhone. (I’m slightly over-complicating my typical situation but its not far from true.) One of the obvious challenges are getting audio from the Blackberry Simulator to play under Wine running on the Mac. I hit that snag about a month ago. The other big challenge is running test programs on the remote system that you would normally use its connected speakers to validate. Because you’ve logged in with VNC its easy to forget the disconnect or divide between you and what would be the audio output. (The speakers are happily blaring in the office while you sit miles away at home wondering why you can’t hear anything.)
Couple these challenges with the fact that you’re an AS/400 developer pretending to be a java guy that acts like he knows how to write J2ME and ObjC iPhone software all the while struggling to grok C/C++. Its not that you don’t know the C languages it’s just that you’ve spent most of your career avoiding it for the obvious complexity in favor of higher level languages like Python/Ruby/Groovy. Now all of the docs for these audio tools scream “./configure” this and “make” that while badgering you with “.o”, “.so” and/or “.a” dependencies that have been “make”-ed for completely opposite architecture. You need to learn the build tools of the arcane and use the language of the deceased to resurrect ideas that have been locked away in some deb repo for several years. Sounds a LOT like Linux, doesn’t it?