Tuesday, June 29, 2010

Wisely and Slow; They Stumble That Run Fast

Linguistic sojourns into unbuilding builds and uninstallable binaries, anecdotes of aural acquiescence, and predilections for portentous prognostication abound in this chapter of Tales of Maverick Testing and Listening with the Alpha 1 ISO.

Taming of the Meerkat
I have found myself surrogating several roles this cycle, including technical lead after the previous lead stepped down last cycle due to other commitments.  It is a fortuitous state that he remains an agreeable and amenable person to assist me during this transition.  It should also be mentioned that I remain extremely thankful and grateful for said fortuitous state.

While serving in this capacity several items required investigation that prevent an installable Alpha ISO and numerous daily builds.

The first issue was an uninstallable binary.  I knew this because the recurring email from Colin Watson told me so.

I believe this uninstallable binary was apparently preventing the ubuntustudio-audio metapackage from installing.  This apparently resulted with the termination of the entire installation process.  And even a bad technical lead knows this is Not Good.  Yes, I used capital letters...this means I really mean it!

So, I liberally applied Occam's Razor while wearing my genuine imitation Sherlock Holmes sleuthing hat and found something interesting about bitmeter, the package that produced uninstallable binary.

The package bitmeter included a binary called bitscope...that was not the interesting bit.  This is the interesting part; bitscope's control file said it conflicted with itself and this prevented bitscope from installing.

The correct Conflicts: entry was identified and Alessio, one of the more adept packaging individuals on the team and a recent Debian Developer(!), verified and made the changes.  Score one for the good guys and thanks Alessio.

Next up was a similar situation: an uninstallable binary for the -preempt kernel.  However, this time I knew enough to know that I didn't know enough and emailed the expert, (another) Alessio.  Yes, that's right if one is good, then two should be exponentially better!

Apparently this is true (i.e. exponentially better) because I shortly received an email back saying that the problem was fixed and should be built correctly the next day.  Bravo, says I, and thanks to another Alessio.

The last problem I observed was an apparent failure of the daily builds to actually build.  For several days the daily build directory was empty of ISO's.  Strange (I believe it to be) but true (as I am assured it was).

In short order, I learned from the #ubuntu-release IRC channel that apparently this problem afflicted all alternative install ISO's and thankfully was already being addressed and daily builds should once again be built daily.  The only item remiss is that I do not know who to thank this time.  Thank you, o' nameless fixerer of non-daily building daily builds.

This soliloquy documents the detractions that prevented my testing JACK and Pulse Audio a week and a half after my intended date to begin.  But now that we have lain those barriers low, let us go forth and explore the unexplored, barrier-less frontiers.

Can You Hear Me Now?
I should explain my computer's audio card setup before progressing with further explanation or documentation.

I have three audio interfaces in my computer; onboard, a SoundBlaster Live, and an M-Audio Delta 44. Typically the onboard audio is ignored, the SBLive is used for normal desktop use, and the Delta 44 is used for audio recording, mixing, et al.  I should also note that the SBLive card is connected to typical computer speakers while the Delta 44 is connected to large studio monitors.

Also of note, I typically do not start JACK from the command line, I prefer to use qjackctl as I can also make connections to all applications involved.

For my testing purposes I used a simplistic test: play audio through JACK as audio was concurrently playing through Pulse Audio.  I decided to use prerecorded audio in Ardour to be played back in JACK and an Slipknot song from YouTube to be played back in Pulse Audio.

The purpose was to demonstrate that JACK and Pulse Audio were successfully negotiating audio devices via D-BUS.

First Test
I started JACK using the Delta 44 sound card and started playback of previously recorded audio (guitar).  Next I opened Firefox, located the appropriate YouTube video, and began playback through the SBLive card.

Success!  JACK continued to play audio through the Delta 44 while Pulse Audio streamed audio through the Sound Blaster Live.

Second Test
Next I started JACK using the SBLive card and started playback of the previously recorded audio.  This time when I started Firefox and the YouTube video no sound was streamed through Pulse Audio.

However, when I stopped JACK, Pulse Audio dutifully streamed audio from the YouTube video.

This can be considered a success as well.  It would appear that JACK and Pulse Audio are properly negotiating access to the sound card without unnecessarily stepping on each other's virtual toes.

This is a considerable milestone for Pulse Audio and JACK integration.

I'm not an expert on the Linux audio stack or JACK or Pulse Audio.  Really, I'm not sure I'm an expert on any particular matter.  However, I've been told that during Maverick+1 we can expect continued work on bridging JACK and Pulse Audio so that they can share audio streams.

I believe additional work is required upstream for Pulse Audio however which Ubuntu cannot necessarily control.

However, progress is progress.  Capital!

1 comment:

Nadim said...

Very good news.....´bout time though