sndscope

Bildschirmfoto 2013-03-30 um 01.26.26Hallo Freunde des schlecht geschriebenen Unsinns. Nachdem getDigital gestern das iOS-Oszilloskop vorgestellt hat, hab ich mich ein bisschen umgeschaut. Ich bin ja eher der Fan der analogen Scopes, welche es inzwischen für wenig Geld auf eBay gibt. Damit kann man auch lustige Sachen machen, wie zum Beispiel Sound in „Bild“ umwandeln, indem man den Stereosound mit dem X- und Y-Eingang verbindet.

Naja, und da ich in zwei Wochen Abitur schreibe und dementsprechend absolut nichts zu tun habe, habe ich mir überlegt, mir aufgrund akutem Oszilloskopmangels ein digitales „Sound-Oszilloskop“ zu schreiben – als Nachmittagsprojekt sozusagen 😉

Dabei habe ich übrigens zufällig herausgefunden, dass Mac OS X nicht richtig CPU-Ticks zählt und die Methode, mit clock_t verstrichene Zeit zu ermitteln, überhaupt nicht funktioniert.

Jedenfalls kann sndscope WAV-Dateien öffnen (sorry, ist halt verlustfrei) und sie „visualisieren“. Das sieht zwar aus wie Kauderwelsch, wird allerdings sehr cool mit der Musik aus diesem Video. Ich habe sie mal ins WAV-Format konvertiert: Download

Der Code ist für ein paar Stunden Arbeit entsprechend schlecht 😉 Manchmal ist der Ton nicht synchron, dann einfach mit cmd-L neustarten. Die gesamte Datei wird anfangs in den Speicher geladen, weshalb es ein paar Sekunden dauert.

Und ihr benötigt libsndfile auf eurem System. Dies geht ziemlich einfach im Terminal zu installieren, wenn ihr MacPorts habt. Dann einfach: sudo port install libsndfile

Zum Schluss ist hier der Quelltext auf GitHub und hier eine kompilierte Version: Download (läuft auf OS X ≥ 10.6)

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s