Friday, March 17, 2006

Kororaa Linux Xgl LiveCD

We recently downloaded the Kororaa Project's Xgl Demo Live CD (Version 0.1) to test out the new Xgl and Compiz technologies. A LiveCD is a simple and painless way of auditioning Linux without the hassle of installation. The transparency, motion, and 3D effects looked extremely cool and we had to give it a try.

Our test machine was a 2.0 GHz Pentium 4, 512 MB RAM, GeForce4 MX 440 (64 MB) video card, Sound Blaster 16 PCI card, on-board VIA 8235 sound chip, and a Labtec 704 USB microphone. The Kororaa LiveCD booted up fine but the mouse and window responsiveness was horrifically slow. Something was definitely wrong and our 2 GHz machine seemed more like a 2 MHz machine. Restarting with the "kororaa noapic" boot options solved the problem. Our first reaction was "Wow, this is awesome!"

Next we fired up baudline, performed some testing, and the screenshots are below.

Opaque Transparency
With the Compiz window manager the Ctrl+Shift+wheel key/mouse sequence adjusts a window's transparency. Windows can be made partially opaque which can be used in a powerful way with baudline.

In the above image; the Tone Generator is creating a FM sine sweep and the aliasing makes for some interesting spectrogram patterns. The Waveform and Histogram windows are visible but since they are transparent they don't block the green spectrogram window. This is a very effective method of maximizing limited screen real estate.

In the image above; the yellow-pink-blue spectrogram takes up the entire 1024x768 screen (except for the Gnome tool bar at the bottom). The SNR, THD, ENOB, and SFDR distortion measurement windows are transparent and they don't obscure the main display.

Spinning Cube
The virtual workspace is switched by Ctrl+Alt+mouse_button or Ctrl+Alt+arrows key combinations and the green and pink baudline spectrogram sessions spin around in an animated fashion. Makes me dizzy but it is groovy!

Jiggly Jello
Shake the title bar like a Polaroid picture and the window acts like jiggly jello. Unfortunately the image below doesn't do this feature justice. The motion is clean, smooth, and fluid. Nice physics implementation of the dynamics and the Q damping factor. This feature is a lot of fun to experiment with. (:

Baudline ran extremely well on Kororaa v0.1, better than on most LiveCDs, but there were some minor quirks:

  1. Minor screen and window sizing problems. The Metacity window manager was replaced by Compiz. Some code tuning for Compiz has been added to the baudline TODO list.
  2. Only 2 audio cards were mounted and our USB audio mic could not be used We think this is a kernel setup limitation.
  3. Xgl uses an incredible amount of CPU resources and the baudline scrolling speed is slow. The screen is double buffered for the 3D engine and this adds a large overhead. Our 2 GHz machine runs baudline with very high performance (3000 FFTs/seconds with a 100+ FPS scrolling speed). With the Kororaa CD the baudline performance was equivalent to a 200 MHz x86 with a low end graphics card running a traditional X-Server. All of that fancy 3D FX are expensive.
  4. The default (-reset) baudline performance on Kororaa was 150 FFTs/second and a 30 FPS rate. Most modern machines have no problem rendering a 125 FPS rate. By restarting baudline with the "-backingstore -xslip 1" command line parameters a 50% frame rate improvement to 45 FPS was possible. Xgl uses a double buffer scheme so the -backingstore flag is just taking advantage of what is already running.

Kororaa, Xgl, and Compiz are very cool. Compiz could be a little more feature rich such as adding window raising, lowering, stay on top, and stickies. Baudline could use some minor tweaks and tuning for Compiz. Our 2 GHz Pentium 4 and GeForce4 MX 440 machine is really pushing the bottom of the performance envelope while running baudline. Kororaa with a dual core 3.4 GHz P4 and a top of the line Nvidia card would be an amazing machine to run baudline on.

For the best Kororaa Xgl performance remember to startup baudline with the following command line:

baudline -backingstore -xslip 1

Saturday, March 11, 2006

Yanmar 1-cylinder diesel

This sound clip is a Yanmar Marine 1-cylinder 4-stroke reciprocating diesel engine at idle. The signal was recorded with a GSM cell phone through the Audioblogger system.

this is an audio post - click to play

The baudline FFT analyzer created the time-frequency spectrogram image below:

Baudline's periodicity bars were used to measure an accurate 0.121 second delta between pulses. This works out to 8.26 pulses/second or 496 PPM (Pulses Per Minute). Since the Yanmar is a 4-stroke reciprocating engine, multiplication by 2 will calculate RPM. So: 496 * 2 = 992 RPM which is close to the engine's idle warm-up speed.

A section of spectrogram data was copy-n-pasted into the average spectrum window shown below:

There are two strong peaks of unknown source at 230 Hz and 300 Hz. The exhaust note is an unlikely candidate since it is piped outside the cabin. The air intake and/or the hull resonance are suspected. The recording does not convey the loud pounding sound of the 1-cylinder engine which could be mechanical in nature. The two strong peaks are likely a combination of a couple of the previously mentioned signal sources.

Go Eyrie!

Friday, March 03, 2006

Harddisko - audio techno art

Harddisko is an acoustic technological art project that uses defective hard drives to create fascinating rhythmic noises. "Special sound pickups" attached to the drive heads capture the audio signal while an electrical sequencer controls the hard drive's power-on initialization. Detailed information and sound clips about Harddisko can be found here:

Track "Schikaneder4.mp3" was loaded into the baudline time-frequency browser and the stereo spectrogram is displayed below. Clicks, blips, bleeps, head chatter, rich harmonics, and rotational power ramps are visible. It is music to my eyes!

The black bar on the right is caused by MP3 encoding only 16kHz of bandwidth. Notice the right purple channel in the final third of the orchestral piece.

Wednesday, March 01, 2006

Khoomei Acoustic Analysis

Khoomei is a form of throat singing used in traditional music from Tuva. In fact, khoomei is Mongolian for the word "throat." What makes throat singing amazing is that a single person can generate multiple voices at one time.

The baudline spectrum analyzer was used to analyze track 6 from Huun-Huur-Tu's CD "60 Horses in My Herd." A sample of the audio file (kokhoomei.mp3) can be found here:

The baudline spectrogram image below is a 10 second cut that displays 16kHz of bandwidth. The purple and green colors represent the left and right channels.

Four distinct voices are visible amongst the rich harmonic structure. A constant drone, the fundamental at 109 Hz is the foundation. This sound is made from the throat and the third harmonic is about 10 dB louder than the fundamental. The second voice looks like stair steps and is in the 700 to 1500 Hz range. The third voice looks a lot like a mirror image of the second voice and is in the 2500 to 3000 Hz range. The forth voice is in the 3300 to 3500 Hz range. The complex and interesting shapes above 4000 Hz are nasal and breathing sounds.

The next spectrogram is the same 10 second cut as above but the frequency axis has been zoomed in to display 4kHz of bandwidth. This zoomed view shows better detail of the harmonic structure.

Two features are very interesting in this spectrogram.

1) The frequencies of the second voice (700 - 1500 Hz) are being limited to values that are harmonics. This means that every note is a multiple of the fundamental and that frequencies in between are not possible. This observation hints at how this unique sound is being produced. Parts of the spectrum are being attenuated or amplified by a cavity resonance like filter process.

2) The third voice (2500 -3000 Hz) looks like a mirror image of the second voice. When the seconds voice goes up the third voice goes down and vice versa. It is not an exact mirror image but 1900 Hz looks like the center pivot frequency. Non-linear processes such as decimating or sample rate conversion without filtering create a similar form of aliasing. Exactly how this relates to the mechanics at work in the vocal tract is unknown.