Please wait
Please install the Adobe Flash Player if no e-book is displayed.
Thesis (M.A.), 2003, 139 Pages
Author: Niklas Werner
Subject: Audio Engineering
Details
Tags: Entwicklung, Programms, Unix, Visualisierung, Audiosignalen, Spektralbereich
Year: 2003
Pages: 139
Grade: Sehr gut
Language: German
ISBN (E-book): 978-3-638-27753-2
ISBN (Book): 978-3-638-70202-7
File size: 1413 KB
Angefertigt im elektronischen Studio der TU Berlin. Zweites Fach Musikwissenschaft.
Other users also were interested in the following titles:
Abstract
Zusammenfassung der Arbeit (Archiv ID: v25014) "Entwicklung eines nativen Programms unter Unix zur synchronen Visualisierung von Audiosignalen im Spektralbereich" Diese Arbeit beschreibt die Entwicklung des Programms SonaSound. Das Programm dient der Analyse von Sprachsignalen und - als Neuerung - auch der Analyse von komplexen Musiksignalen. Die Analyse wird durch synchrone Visualisierung der Audiodaten ermöglicht, welche in einem Sonagramm auf dem Bildschirm dargestellt werden. Hier erfolgt die Anzeige von Frequenz (Tonhöhe in Bezug auf Notenlinien), Amplitude (Lautstärke verschiedenen Farben zugeordnet) und Zeit. Ohne das Audiosignal zu hören, sind Wörter (bzw. Silben) eines Sprechers erkennbar, können Tonhöhe und Rhythmus bei Musiksignalen visuell wahrgenommen werden. Anwendungsgebiete können sein - phonetische Fragestellungen, - musikpädagogische Ansätze, - musikwissenschaftliche Analyse. Das Programm SonaSound benötigt keine spezielle Hardware (Standard-Hardware ausreichend). Ein Unix-Betriebssystem ist erforderlich. SonaSound wurde vollständig mit quelloffener und frei verfügbarer Software entwickelt, welche - wie auch SonaSound selbst - den Bedingungen der 'GNU General Public License' unterliegt. Das bedeutet: - Der Quelltext ist zugänglich. - Das Programm kann vervielfältigt, verbreitet und/oder verändert werden. - Das Urheberrecht muss beachtet werden. Der Autor (Niklas Werner) beschreibt am Ende seiner Arbeit die Möglichkeit der Einführung weiterer Funktionen in das Programm SonaSound. Im Jahr 2005 verlor er bei einem Bergunfall sein Leben. Eine zukünftige Weiterentwicklung durch andere Autoren ist möglich und wünschenswert.
Excerpt (computer-generated)
Technische Universität Berlin
Institut für Kommunikationswissenschaften
Magisterarbeit
Entwicklung eines nativen Programms
unter Unix zur synchronen Visualisierung
von Audiosignalen im Spektralbereich
Niklas Werner
April 2003
Diese Arbeit beschreibt die Entwicklung eines nativen Unix-Programms zur Echtzeit-Visualisierung von Audiosignalen im Spektralbereich mit Namen "SonaSound\.
Angesichts der Leistungsfähigkeit moderner Standardrechner wurde das Programm nativ implementiert.
Die Implementation fand in einer Weise statt, die das Programm unabhängig von spezieller DSP-Hardware oder speziellen Betriebssystemen macht.
Die hohe Qualität freier Bibliotheken und die geforderte Plattformunabhängigkeit führten zu einer Implementation in ISO C99 unter Verwendung von OpenGL und dem X-Window-System zur Grafikausgabe.
SonaSound ist für die Analyse von Musik geschrieben. Es erweitert dafür die Vorgängerarbeiten, die auf die Verarbeitung von Sprache spezialisiert waren, um Funktionen, die insbesondere bei Musikanalyse benötigt werden.
Diese Arbeit beschreibt die theoretischen Grundlagen und erläutert ausführlich die implementierten Algorithmen sowie aufgetretene Schwierigkeiten.
Inhaltsverzeichnis
1 Einleitung ... 1
1.1 Einordnung der Arbeit ... 1
1.2 Aufgabenstellung ... 2
2 Grundlagen 4
2.1 Digitale Signalverarbeitung ... 4
2.1.1 Digitale Audiosignale ... 4
2.1.2 Visualisierung ... 5
2.2 Fast Fourier Transformation (FFT) ... 5
2.2.1 Frequenzauflösung ... 6
2.2.2 Leckeffekt ... 6
2.3 Linear Predictive Coding (LPC) ... 7
2.3.1 Klassizierung der LPC ... 7
2.3.2 Prinzip der LPC ... 8
2.3.3 Autokorrelationsmethode ... 8
2.3.4 Übertragungsfunktion des Filters ... 10
2.4 Fensterung ... 11
2.4.1 Zeit- und Frequenzauflösung ... 11
2.4.2 Überlappung von Fenstern ... 12
2.5 Eigenschaften von LPC und FFT im Vergleich ... 13
2.6 Sonagramm ... 14
3 Beschreibung der Software ... 15
3.1 Voraussetzungen ... 16
3.1.1 Hardwarevoraussetzungen ... 16
3.1.2 Konfiguration der Testsysteme ... 16
3.1.3 Verwendete Software und Bibliotheken ... 19
3.1.4 Verwendete Werkzeuge ... 22
3.1.5 Kompilation des Programms ... 22
3.2 Funktionsumfang ... 24
3.2.1 Benutzerschnittstelle ... 24
3.2.1.1 Parameter ... 24
3.2.1.2 Funktion der Buttons ... 26
3.2.1.3 Menüeinträge ... 26
3.2.1.4 Internationalisierung ... 27
3.2.2 Automatisch ablaufende Prozesse ... 27
3.2.3 Presets ... 27
3.3 Signalfluss im Programm ... 29
3.3.1 Audiosignalfluss ... 29
3.3.2 Grafikausgabe ... 31
3.4 Spezifikation der Farbpalette ... 31
3.5 Implementierte Algorithmen ... 32
3.5.1 Funktionen der Signalanalyse ... 34
3.5.1.1 Audioeingabe ... 34
3.5.1.2 Fensterung der Daten ... 34
3.5.1.3 Berechnung der FFT ... 37
3.5.1.4 Berechnung der LPC ... 38
3.5.1.5 Berechnung des Frequenzgangs ... 40
3.5.1.6 Hochpassfilterung ... 41
3.5.2 Visualisierungsfunktionen ... 42
3.5.2.1 Wellenformanzeige ... 43
3.5.2.2 Spektraldarstellung ... 43
3.5.2.3 Sonagrammanzeige ... 44
3.5.2.4 Farbpalettenansicht ... 46
3.5.2.5 Notensystem ... 46
3.5.3 Mausfunktionen ... 47
3.6 Programmablauf ... 48
4 Evaluation ... 49
4.1 Auswertung der Algorithmen ... 49
4.1.1 Berechnung der LPC ... 49
4.1.1.1 Anzahl der LPC-Koeffizienten ... 50
4.1.1.2 Berechnung des Hochpassfilters ... 50
4.1.1.3 Überlappung der Fenster ... 51
4.1.2 Berechnung der FFT ... 51
4.1.3 Speicherverwaltung ... 51
4.1.4 Grafikausgabe ... 51
4.1.5 Synchronisation von Audio und Grafik ... 52
4.2 Oberfläche ... 54
4.3 Geschwindigkeit ... 55
4.4 Plattformunabhängigkeit ... 56
4.5 Aufgetretene Probleme und deren Lösungen ... 56
4.6 Ungelöste Probleme und deren Ursachen ... 57
5 Fazit ... 58
6 Ausblick ... 60
Literaturverzeichnis ... 62
A Quellcode ... 65
B Beispielsonagramme ... 127
Index ... 132
Abbildungsverzeichnis
3.1 Screenshot von SonaSound ... 15
3.2 Signalfluss ... 30
3.3 Originale Farbpalette ... 32
3.4 Interpolierte Farbpalette ... 33
3.5 Farbpalette ... 33
3.6 Frequenzgang des Hochpassfilters mit verschiedenen Koeffizienten ... 42
B.1 Sonagramm Chormusik: J. S. Bach:"Agnus Dei\ aus der H-Moll-Messe ... 127
B.2 Sonagramm Geräusche: Gerard Grisey:"Jour contre jour\ ... 128
B.3 Sonagramm Sprache:"Soundcheck is the definitive audio test-disk\ ... 129
B.4 Sonagramm Orchestermusik:"Das große Tor von Kiew\ ... 130
B.5 Sonagramm Rock-/Popmusik: Silje Nergaard:"There′s Trouble Brewing\ ... 131
Tabellenverzeichnis
2.1 Tiefste darstellbare Frequenzen in Abhängigkeit von der Puffergröße ... 11
2.2 Eigenschaften von FFT und LPC im Vergleich ... 13
3.1 Testsysteme ... 17
3.2 Parameter der Presets ... 28
Listings
1 Globale Header-Datei: sonasound.h ... 65
2 Audio-Initialisierung: audioInit.c ... 66
3 Audio-Engine: audioIo.c ... 67
4 GUI-Callback-Funktionen: callbacks.c ... 69
5 Kurzzeitspektrum-Anzeige: fft.c ... 81
6 OpenGL-Funktionen: glDraw.c ... 82
7 Initialisierung: globalsInit.c ... 90
8 Hilfsfunktionen: helpers.c ... 95
9 GUI: interface.c ... 95
10 LPC: lpc.c ... 114
11 Farbpalette: palette.h ... 116
12 Hauptprogramm: main.c ... 119
13 Sonagramm-Anzeige: sonogram.c ... 122
14 Unterstützende Funktionen für das GUI: support.c ... 123
15 Wellenform-Anzeige: waveForm.c ... 126
1 Einleitung
Die zur Anwendung kommenden Grundlagen der digitalen Signalverarbeitung werden in Abschnitt 2 auf Seite 4 dargestellt. Insbesondere wird die Berechnung des Spektrums eines Signals mit verschiedenen Algorithmen erläutert. Die schließlich implementierte Form der Algorithmen wird zusammen mit der Struktur des Programms ab Abschnitt 3.1 auf Seite 16 beschrieben. Nach einer Evaluation der angewendeten Algorithmen im Hinblick auf Genauigkeit und Geschwindigkeit in Abschnitt 4 auf Seite 49 werden dort ebenso die Oberfläche des Programms und die Realisierung der weiteren in der Aufgabenstellung (s. Abschnitt 1.2) gegebenen Gesichtspunkte erläutert.
Ein Ausblick auf Erweiterungen und Möglichkeiten des Programms wird in Abschnitt 6 auf Seite 60 gegeben.
1.1 Einordnung der Arbeit
Audio-Visualisierungsprogramme werden in vielen Anwendungsgebieten benötigt. Seien es phonetische Fragestellungen, musikpädagogische Ansätze oder die musikwissenschaftliche Analyse. Die Möglichkeit, die jeweilige Aufgabe auf einem Rechner erledigen zu können, der bereits vorhanden ist und nicht mit speziellen Komponenten erweitert werden muss, erleichtert die Arbeit für den Anwender.
Moderne Standardrechner können aufgrund ihrer Leistungsfähigkeit die Aufgaben von DSPs1 übernehmen. Prozessoren wie der Athlon-XP von AMD, der Pentium IV von Intel und der G4 von Motorola besitzen bereits SIMD2-Erweiterungen, die die Nachteile eines Universalprozessors gegenüber DSPs ausgleichen können. Insbesondere die Geschwindigkeit der Verarbeitung von Fließkommazahlen wird durch diese Erweiterungen erhöht3. Des Weiteren haben Standardgrafikkartenprozessoren eine Geschwindigkeit erreicht, die in manchen Fällen der des Hauptprozessors in nichts nachsteht.
Verwendet man diese leistungsfähige Hardware mit einem leistungsfähigen Betriebssystem, können viele bisher den DSPs vorbehaltene Aufgaben von einem Standardrechner übernommen werden, ohne dass dessen Leistungsgrenze erreicht wird.
Insbesondere im Bereich der Unterhaltung ist eine hohe Optimierung der Software festzustellen. So nimmt ein Abspielprogramm für mp3-Dateien4 auf einem modernen Rechner keine wahrnehmbare Rechenzeit mehr in Anspruch, während dessen Benutzung noch vor einigen Jahren eine deutliche Einschränkung der nutzbaren Prozessorleistung bedeutet hat. Im Lieferumfang dieser Programme ist immer eine Form der Audio-Visualisierung enthalten, die ebenfalls nur sehr wenig Rechenleistung in Anspruch nimmt. Somit reicht die Rechenleistung im Regelfall auch für ein komplexes Visualisierungsprogramm aus.
Mit der weiten Verbreitung von Linux und der Einführung des Unix-basierten Mac OS X ist die Implementation des Programms auf Unix-Basis ein sinnvoller Ansatz, um eine maximale Portabilität zu erreichen. Sowohl Macintosh-Rechner als auch intelkompatible PCs können komfortabel mit einem Unix-Derivat5 betrieben werden. Darüberhinaus sind in vielen Rechenzentren Unixrechner wie SUN- oder SGI-Systeme weit verbreitet.
In Verbindung mit kostengünstiger PC-Hardware stellt Linux die optimale Plattform für hochwertige Software dar. Da dieses Betriebssystem weiterhin auf vielen verschiedenen Rechnerarchitekturen lauffähig ist und oft alte Hardware in adäquate Arbeitsplatzrechner verwandeln kann, ist es eine wesentliche Eigenschaft des Programms, unabhängig von spezieller Hardware zu sein. Die Lizensierung des Programms unter der GPL6 erfordert die Nutzung frei verwendbarer Bibliotheken, was angesichts der hohen Qualität von quelloffener Software keinerlei Einschränkung, sondern einen Gewinn bedeutet.
Es wird in dieser Arbeit beschrieben, wie ein komplexes Audio-Visualisierungsprogramm so implementiert wurde, dass Geschwindigkeit und Art der Ausgabe einen Betrieb parallel zu anderen Anwendungen erlauben, ohne deren Betrieb stark zu beeinträchtigen7.
Die Entwicklung von Signal-Visualisierungssystemen findet am Institut für Kommunikationswissenschaften der Technischen Universität Berlin seit 1978 [Bec78] statt. Im Rahmen des Projekts Gehörlosenhilfe des BMFT8 wurden einige weitere Systeme ([Hob93, Kle94, Vei99]) entwickelt, deren Fähigkeiten mit der rapiden Entwicklung der Computer zunahmen (nach [HK99]). Diese Arbeit ist nicht mehr in dieses Projekt eingebunden, nutzt aber die Erkenntnisse der vorangegangenen Arbeiten.
1.2 Aufgabenstellung
In dieser Arbeit wurde ein Echtzeit9-Audio-Visualisierungssystem entwickelt, das ähnlich den Systemen [Kle94] und [Vei99] arbeitet, ohne wie diese auf spezielle Hardware (DSP-Karten oder bestimmte Grafikkartenmodelle) angewiesen zu sein. Die native10 Implementierung der Signalverarbeitung und die Plattformunabhängigkeit standen im Vordergrund:
- Wie im System [Vei99] wird eine hardwareunabhängige Schnittstelle zur Grafikausgabe verwendet.
- Das Programm ist nicht auf ein Betriebssystem eingeschränkt, sondern ISO C99-konform geschrieben und modular aufgebaut, um den Austausch des GUI11 zu ermöglichen bzw. einzelne Module als Bibliotheken verwendbar zu machen.
- Die Signalverarbeitung findet vollständig auf der CPU12 des jeweiligen Rechners statt, da die momentane Rechenleistung mittlerer Systeme bei weitem ausreichend ist, diese Aufgaben zu übernehmen.
- Das Programm ist nicht auf Sprachsignalverarbeitung spezialisiert, sondern ermöglicht ebenso die Analyse von komplexen Musiksignalen.
- Es werden keine proprietären Standards oder Bibliotheken verwendet. Das Programm ist im Quellcode frei unter der GPL erhältlich.
- Das Programm ist in großem Maße vom Nutzer parametrisierbar.
Aus den oben genannten Gesichtspunkten ergeben sich folgende Arbeitsschwerpunkte:
- Reimplementierung der grafischen Benutzeroberfläche unter Verwendung von OpenGL und dem X-Window-System (X11).
- Implementierung aller Signal-Verarbeitungsroutinen in ISO C99 zur Verwendung auf beliebigen Prozessoren bzw. Auswahl und Verwendung geeigneter Bibliotheken für die Signalverarbeitung.
- Erstellung geeigneter Presets zur Voreinstellung sämtlicher Parameter in Abhängigkeit der zu analysierenden Signale, vor allem in Hinblick auf Musik.
- Implementierung von musikspezifischen Skalierungen der Ausgabe. Aufgrund der erheblichen Unterschiede zwischen der alten Codebasis13 aus und den oben genannten Zielen, musste das gesamte Programm fast vollständig neu implementiert werden.
[....]
1 Digitale Signalprozessoren: Auf die schnelle Verarbeitung von Signalen spezialisierte Prozessoren.
2 Single Instruction Multiple Data: Mit einem Befehl können mehrere Datenworte (z.B. 4 - 32 = 128 Bit) auf einmal bearbeitet werden. Diese Funktionalität war bisher nur in DSPs zu finden.
3Die bisherigen Prozessorerweiterungen wie MMX und 3DNow beschleunigten lediglich die Verarbeitung von ganzen Zahlen (Integers)
4Die Dateiendung mp3 steht für eine Audiokompression nach dem Standard MPEG-1 Layer 3 5Als Unix-Derivate werden Betriebssysteme bezeichnet, die zur Klasse der auf Unix basierenden Systeme gehören: Dazu gehören Linux, FreeBSD, Solaris und viele andere.
6GNU General Public License (Siehe http://www.gnu.org). Zitate von URLs re ektieren den Stand vom 01.04.2003 und können u.U. nicht mehr gültig sein.
7Die Ausführungsgeschwindigkeit anderer Programme wird durch die Verwendung SonaSounds nicht in störendem Maße gesenkt.
8Bundesministerium für Forschung und Technik.
9Echtzeit bedeutet in dieser Arbeit immer: synchron zu den Audiodaten. Also ausreichend schnell, um die Bearbeitung der aktuellen Daten bei Eintreffen der nächsten Daten abgeschlossen zu haben
10Nativ bedeutet, dass das Programm nur die im System verfügbaren Prozessoren verwendet.
11Graphical User Interface (Grafische Benutzerober äche) 12Central Processing Unit (Zentraler Prozessor eines Rechners)
13MS-Windows-spezifisches C++ und DSP56000-Routinen in [Vei99] bzw. MS-DOS-basierter Code mit hardwarespezi fischer Grafikausgaberoutine in [Kle94].
Comments
No comments yet
Other users also were interested in the following titles:
Formatvorlage / Vorlage für eine Diplomarbeit - Formatvorlage / Vorlage für eine Hausarbeit für Microsoft Word
Author: GRIN VerlagPresentations, Models, Tutorials, Instructions, 2005 Download as PDF-file for 6,99 EUR
Formatvorlage / Vorlage für eine Diplomarbeit - Formatvorlage / Vorlage für eine Hausarbeit für OpenOffice.org
Author: GRIN VerlagPresentations, Models, Tutorials, Instructions, 2005 Download as PDF-file for 9,99 EUR
Formatvorlage zur Erstellung einer Diplomarbeit / Vorlage zur Erstellung einer Hausarbeit
Author: Marco FeindlerPresentations, Models, Tutorials, Instructions, 2005 Download as PDF-file for 6,99 EUR
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Author: GRIN VerlagPresentations, Models, Tutorials, Instructions, 2008 Download as PDF-file for 6,99 EUR
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wissenschaftlichen Arbeit
Author: Zoran ZivkovicPresentations, Models, Tutorials, Instructions, 2004 Download as PDF-file for 5,99 EUR
Erstellen einer schriftlichen Hausarbeit
Author: Claudia NickelPresentations, Models, Tutorials, Instructions, 2006 Download as PDF-file for 4,99 EUR
Grundtechniken wissenschaftlichen Arbeitens
Author: Maik PhilippPresentations, Models, Tutorials, Instructions, 2004 Download as PDF-file for 5,99 EUR
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - Hausarbeiten - Seminararbeiten
Author: Mark RichterPresentations, Models, Tutorials, Instructions, 2008
This text can be quoted and accessed from this url: