fnordlicht vu meter

Last time, I showed you my new fnordlicht’s. Today, I’ve a little gift for you: I’ve written a small c program to control the lights according to the current peak level.

The software analyses the audio signal of my system (Ubuntu 10.10 with pulseaudio). So you can dance to everything that can play audio.. 😀

Update: As preparation for a exam, I added a discrete fourier analysis (DFT). Unfortunatly the serial bus is to slow to visualize the audio spectrogram in real time 🙁 The bars are colored with their complex phase->hue (HSV) aquivalent.

The software uses and is distributed together with my fnlib (fnordlicht library) available under: http://web.git.0l.de/libfn.git

Some technical details (in german):

Ich benutze PulseAudio um mich in die Soundkarte des Systems einzuklingen. Das Programm tarnt sich als Recording-Tool. Und kann dadurch den kompletten Audio-Output oder nur bestimmte Programme visualisieren. Sogar das Mikrofon kann ich benutzen :p

PulseAudio liefert mir einen einfachen PCM Stream (44,1kHz Samplingrate, Mono & 16-Bit signed Integers). Derzeit addiere ich immer nur x Werte dieses Bytestreams und mittele diese Summe dann über einen kurzen Zeitraum.

Geplant ist noch eine FFT-Analyse um  die Amplituden verschiedener Frequenzen gemäß der „Ohrkurve“, der Empfindlichkeit des menschlichen Gehörs, gewichten zu können. Der Schritt zur Spektraldarstellung (jedes meiner 10 fnordlichter als VU-Meter für ein bestimmtes Frequenzband) ist dann hoffentlich auch nicht mehr so weit.

Ohrkurve

Hints (for me)

Traktor Pro unter Linux

Es läuft! Nachdem ich über Google & Co nicht weitergekommen bin, habe ich selber mal etwas experimentiert. Die sonst üblichen Methoden über Wine, Cedega und CrossOver brachten mich leider nicht weiter.

Das Zauberwort lautet „VMWare Workstation„. Erstaunlicherweise ist eine virtualisierte Maschine schnell genug um Traktor akzeptabel nutzen zu könnten. Jedoch muss man bei internen Soundkarten mit einer höheren Latenz rechnen. Mit meinem neuen Audio-Interface konnte ich die Latenz  durch ASIO-Treiber und die direkte Anbindung per USB noch deutlich senken. Der Anschluss über sorgt dafür, dass das die Ansteuerung in der virtualisierten Maschine erfolgt. Es ist kein Umweg mehr über das Linux Soundsystem (ALSA) nötig. Es wird nur der Windows Treiber benötigt.

Um das ganze stabil nutzen zu können solltet ihr jedoch schon einen aktuellen Rechner mit ausreichend RAM (> 2GB) und mindestens zwei CPU-Kernen haben. Für den Produktiveinsatz kann ich es nur bedingt empfehlen, da ich zwischenzeitlich ein paar Performance Probleme hatte. Es kommt mal zum stottern etc… Aber diesem Fall kann man natürlich auch mal Windows booten :-/