<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tutorials: Musikwissenschaft Archive &#8211; SystMus</title>
	<atom:link href="https://systmus.blogs.uni-hamburg.de/category/tutorials-musikwissenschaft/feed/" rel="self" type="application/rss+xml" />
	<link>https://systmus.blogs.uni-hamburg.de/category/tutorials-musikwissenschaft/</link>
	<description>Online-Magazin des Instituts für Systematische Musikwissenschaft</description>
	<lastBuildDate>Fri, 09 Jan 2026 21:09:19 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2019/04/logoImg-150x150.jpg</url>
	<title>Tutorials: Musikwissenschaft Archive &#8211; SystMus</title>
	<link>https://systmus.blogs.uni-hamburg.de/category/tutorials-musikwissenschaft/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VST programmieren – so geht&#8217;s</title>
		<link>https://systmus.blogs.uni-hamburg.de/vst-programmieren-so-gehts/</link>
		
		<dc:creator><![CDATA[Stina Sonnenberg]]></dc:creator>
		<pubDate>Sun, 25 Jan 2026 07:00:45 +0000</pubDate>
				<category><![CDATA[DIY ‒ Tonstudio]]></category>
		<category><![CDATA[Tutorials: Musikwissenschaft]]></category>
		<category><![CDATA[audio-app]]></category>
		<category><![CDATA[audio-programmierung]]></category>
		<category><![CDATA[signalverarbeitung]]></category>
		<guid isPermaLink="false">https://systmus.blogs.uni-hamburg.de/?p=1160</guid>

					<description><![CDATA[<p>VST programmieren – grenzenlose Möglichkeiten! Die Technik entwickelt sich rasant, und mit ihr wachsen die kreativen Freiheiten in der Musik. Virtuelle Studios ermöglichen den Einsatz vielseitiger PlugIns, digitale Instrumente eröffnen neue Klangwelten, und moderne Musikproduktionen profitieren von unbegrenzten Möglichkeiten. In... <a class="more-link" href="https://systmus.blogs.uni-hamburg.de/vst-programmieren-so-gehts/">Weiterlesen &#8594;</a></p>
<p>Der Beitrag <a href="https://systmus.blogs.uni-hamburg.de/vst-programmieren-so-gehts/">VST programmieren – so geht&#8217;s</a> erschien zuerst auf <a href="https://systmus.blogs.uni-hamburg.de">SystMus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>VST programmieren – grenzenlose Möglichkeiten! Die Technik entwickelt sich rasant, und mit ihr wachsen die kreativen Freiheiten in der Musik. Virtuelle Studios ermöglichen den Einsatz vielseitiger PlugIns, digitale Instrumente eröffnen neue Klangwelten, und moderne Musikproduktionen profitieren von unbegrenzten Möglichkeiten. In diesem Artikel erfahren Sie Schritt für Schritt, wie die Programmierung eines VST-PlugIns abläuft.</p>
<h2 class="keyword-text _ngcontent-shi-105" aria-label="&quot;vst programmieren&quot; – Sie haben dieses Keyword angegeben.">VST-Begriffe</h2>
<p>Bevor man mit der Programmierung eines VST-PlugIns beginnt, ist es empfehlenswert, sich zunächst mit einigen grundlegenden und essenziellen Begriffen vertraut zu machen. Diese Kenntnisse erleichtern das Verständnis der technischen Abläufe und ermöglichen eine effizientere Entwicklung.</p>
<ul>
<li><strong>Virtual Studio Technology</strong>, kurz VST genannt, ist eine von Steinberg entwickelte Schnittstelle für Audio-Plugins, die die Integration unterschiedlichen Tonaufnahmegeräten und Instrumenten ermöglicht. Sie bedient sich digitaler Signalverarbeitung, um so bestimmte Geräte zu simulieren. Es können über eine Programmierschnittstelle digitale Effektgeräte und Instrumente innerhalb einer Musiksoftware eingesetzt werden.</li>
<li>Ein<strong> PlugIn </strong>beschreibt ein Zusatzprogramm, welches die Funktionen von Webanwendungen und Desktop-Programmen ergänzt. Wenn ein PlugIn installiert wurde, wird die jeweilige Anwendung mit zusätzlichen Funktionen erweitert, ohne das Änderungen am Kerncode erforderlich sind.</li>
<li><strong>Software Development Kit</strong>, kurz SDK ist ein Set von Entwicklungswerkzeugen, die von einem Unternehmen bereitgestellt werden und zur Entwicklung einer Software dient. Für die VST Programmierung ist das VST3 SDK von Steinberg das wichtigste Werkzeug.</li>
<li><strong>C++ </strong>ist eine Programmiersprache, die häufig für die Entwicklung von Audio-PlugIns verwendet wird, da sie eine hohe Performance und Kontrolle über Systemressourcen bietet. Für die Erlernung dieser Programmiersprache können wir Ihnen</li>
</ul>
<h2>Einsatz von VST-PlugIns</h2>
<p>VST-Effekte werden viel im Bereich der Musikproduktion eingesetzt, beispielsweise bei dem Mastern von Musik. Auch beim Komponieren von elektronischer Musik sind VST-Effekte heutzutage nicht mehr wegzudenken. Die Software von VST bringt auch die Möglichkeit mit sich, mit Audiosignalen zu kommunizieren. Das bildet die Grundlage, sich virtueller Effektgeräte zu bedienen, wie beispielsweise den Reverb, Equalizer oder auch den Kompressor. Bei vielen Hosts ist das Verketten unterschiedlicher VST-Effekte möglich. Das hat zur Folge, dass der Originalsound individuell verändert werden kann. Ein klassisches Beispiel dafür ist das Auto-Tune, bei welchem digital die Tonhöhen geändert und angepasst werden können. Das hat eine Klangveränderung zur Folge.</p>
<div id="attachment_7104" style="width: 310px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-7104" class="wp-image-7104 size-full" src="https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/pro-audio-9324828_1280-e1739886367900.jpg" alt="Um ein VST zu programmieren, benötigt man einige Tools, die man vorab installieren muss. " width="300" height="169" /><p id="caption-attachment-7104" class="wp-caption-text">Eine VST-Programmierung wird häufig in der Musikproduktion verwendet. Bild: <a href="https://pixabay.com/de/photos/profi-audio-audiomischung-daw-9324828/" target="_blank" rel="noopener">Pixabay</a></p></div>
<h2>Vorbereitung zur VST-Programmierung</h2>
<p>Für die Programmierung eines eigenen VST-PlugIns können Sie folgende Tools installieren.</p>
<ul>
<li>IDE (Visual Studio oder Xcode)</li>
<li>C++ Compiler (MSVC, Clang, GCC)</li>
<li>VST3 SDK</li>
<li>Audio Framework (Juce, iPlu2, etc.)</li>
<li>Build-Tools (CMake)</li>
<li>DAWS (zum Testen der PlugIns)</li>
<li>Git für Versionskontrolle</li>
</ul>
<p>Mit diesen Tools sind Sie bestens gerüstet, um in die VST-PlugIn-Programmierung einzutauchen. Um Ihnen das Programmieren zu erleichtern, können wir Ihnen die <a href="https://www.steinberg.net/de/tutorials/" target="_blank" rel="noopener">Tutorials auf der Steinberg Webseite</a> empfehlen.</p>
<h2>Durchführung einer VST-Programmierung</h2>
<p>Man muss zunächst die nötigen Tools installieren, um ein eigenes PlugIn zu entwickeln. Dazu gehören die VST 3 SDK von Steinberg, eine Entwicklungsumgebung wie <em>Xcode</em> oder Visual Studio sowie <em>CMake</em> für die Projektgenerierung. Zudem wird eine DAW wie <em>Cakewalk</em> oder<em> FruityLoops</em> Studio benötigt, um das PlugIn zu testen. Nach dem Einrichten der Umgebung kann der bereitgestellte Quellcode geladen und erste Änderungen an bestehenden PlugIns vorgenommen werden.</p>
<h2>Erstellung eines eigenen PlugIns</h2>
<p>Um ein eigenes VST-PlugIn zu entwickeln, benötigt man eine geeignete Entwicklungsumgebung wie <em>JUCE</em> oder <em>Steinberg’s VST SDK</em>. Zunächst wird das Grundgerüst des PlugIns erstellt, inklusive der DSP-Algorithmen zur Klangbearbeitung. Anschließend folgt die Gestaltung der Benutzeroberfläche mit Reglern und Anzeigen. Nach der Implementierung werden Tests durchgeführt, um die Stabilität und Klangqualität sicherzustellen. Abschließend wird das PlugIn kompiliert und für verschiedene Plattformen bereitgestellt. Eine gute Dokumentation erleichtert die spätere Nutzung und Weiterentwicklung.</p>
<p>In weiteren Artikel helfen wir Ihnen Ihr <a href="https://systmus.blogs.uni-hamburg.de/homestudio-einrichten-was-brauchen-sie/" target="_blank" rel="noopener">eigenes Homestudio einzurichten</a> oder welche <a href="https://systmus.blogs.uni-hamburg.de/australische-bands-und-musikerinnen-die-sollten-sie-kennen/" target="_blank" rel="noopener">Australischen Band und Musiker&#8217;innen</a> Sie auf jeden Fall kennen sollten.</p>
<h3>Quellen</h3>
<p>Krug, Katharina (2022). <a href="https://www.ionos.de/digitalguide/server/knowhow/was-ist-ein-plug-in/">Was ist Visual Studio? Verständlich erklärt</a>.</p>
<p>Pianoo (2018). VST. <a href="https://pianoo.de/vst-software-schnittstelle-und-recording-revolution/">Software-Schnittstelle und Recording-Revolution</a>.</p>
<p>Steinberg Media Technologies GmbH (2022). <a href="https://steinbergmedia.github.io/vst3_dev_portal/pages/Tutorials/Index.html" target="_blank" rel="noopener">VST 3 Developer Portal</a>.</p>
<p>Der Beitrag <a href="https://systmus.blogs.uni-hamburg.de/vst-programmieren-so-gehts/">VST programmieren – so geht&#8217;s</a> erschien zuerst auf <a href="https://systmus.blogs.uni-hamburg.de">SystMus</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Audio — Datei erhalten</title>
		<link>https://systmus.blogs.uni-hamburg.de/python-audio-datei-erhalten/</link>
		
		<dc:creator><![CDATA[Matthis Nachtmann]]></dc:creator>
		<pubDate>Wed, 21 Jan 2026 07:00:37 +0000</pubDate>
				<category><![CDATA[Tutorials: Musikwissenschaft]]></category>
		<category><![CDATA[Akustik]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[musikpsychologie]]></category>
		<category><![CDATA[signalverarbeitung]]></category>
		<category><![CDATA[sound-design]]></category>
		<guid isPermaLink="false">https://systmus.blogs.uni-hamburg.de/?p=5969</guid>

					<description><![CDATA[<p>Das Speichern und Abspielen von Arrays als Audiodateien in Python kann für Musikwissenschaftler&#8217;innen äußerst wertvoll sein. Neben der Sound-Synthese spielt auch die Weiterverarbeitung in anderen Programmen eine wichtige Rolle in der Forschung. Auch als Sound-Designer ist der Blick über den... <a class="more-link" href="https://systmus.blogs.uni-hamburg.de/python-audio-datei-erhalten/">Weiterlesen &#8594;</a></p>
<p>Der Beitrag <a href="https://systmus.blogs.uni-hamburg.de/python-audio-datei-erhalten/">Python Audio — Datei erhalten</a> erschien zuerst auf <a href="https://systmus.blogs.uni-hamburg.de">SystMus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Das Speichern und Abspielen von Arrays als Audiodateien in Python kann für Musikwissenschaftler&#8217;innen äußerst wertvoll sein. Neben der Sound-Synthese spielt auch die Weiterverarbeitung in anderen Programmen eine wichtige Rolle in der Forschung. Auch als Sound-Designer ist der Blick über den Tellerrand der klassischen Programme eine gute Übung für die Kreativität. Lernen Sie hier, wie Sie Ihre Kreationen oder Forschungsprojekte als WAV-Datei speichern können.</p>
<h2 id="was-ist-eine-wav-datei">Was ist eine WAV-Datei</h2>
<p>Die WAV-Datei, auch Wave oder Wave-Datei genannt, ist ein Audio-Dateiformat, welche bis zu 4 GB groß sein kann. Während MP3-Dateien verlustbehaftet komprimiert sind, kann ein WAV.Kontainer unkomprimierte PCM-Rohdaten enthalten.</p>
<div id="attachment_7131" style="width: 310px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-7131" class="size-medium wp-image-7131" src="https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/wave-1951973_1280-300x169.jpg" alt="Drei übereinander geschichtete Wellen. Auf englisch „waves“. Sie können mit Python Audio Dateien im WAV-Format erstellen." width="300" height="169" srcset="https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/wave-1951973_1280-300x169.jpg 300w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/wave-1951973_1280-1024x577.jpg 1024w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/wave-1951973_1280-768x432.jpg 768w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/wave-1951973_1280-945x532.jpg 945w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/wave-1951973_1280-600x338.jpg 600w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/wave-1951973_1280.jpg 1188w" sizes="(max-width: 300px) 100vw, 300px" /><p id="caption-attachment-7131" class="wp-caption-text">Der Name der WAV-Datei ist vom englischen Begriff „wave“ abgeleitet und bedeutet „Welle“. Sie können mit Python Audio Dateien im WAV-Format erstellen. Quelle: <a href="https://pixabay.com" target="_blank" rel="noopener">Pixabay</a></p></div>
<h2>Python Audio Datei erhalten (3 Methoden)</h2>
<p>Drei der praktischsten Methoden um aus einem Array eine WAV-Datei zu erstellen sind:</p>
<ul>
<li><strong>Scipy</strong> ist für den wissenschaftlichen Gebrauch konzipiert. Die Bibliothek glänzt durch ihre Einfachheit und Genauigkeit.</li>
<li>Das <code class="language-python">wave</code>Modul ist bereits in Python enthalten und benötigt keine zusätzlichen Bibliotheken.</li>
<li><strong>Soundfile </strong>ist ebenfalls schnell, einfach und vielseitig.</li>
</ul>
<h2>Python Audio — Sinus erstellen</h2>
<p>Um eine WAV-Datei zu erhalten, benötigen Sie zunächst ein NumPy-Array. In diesem sind mehrdimensional Daten gespeichert. Die Daten in einem Array lassen sich als Graph darstellen oder als Audio abspielen. Ein Ton kann entstehen, wenn die Daten sich in gleichmäßigen Abständen wiederholen. Das nennt man Periodizität. Nicht-periodische Daten können auch als Audio abgespielt werden, klingen für das menschliche Ohr allerdings wie Rauschen.</p>
<pre><code class="language-python">import numpy as np 

samplerate = 44100

def signal(f=440, s=1, A=1, fileformat=np.int16):
    t = np.linspace(0, s, int(s*samplerate), endpoint=False) 
    amplitude = (np.iinfo(fileformat).max)*A
    sine = amplitude * np.sin(2*np.pi*f*t)
    return sine.astype(fileformat)
</code></pre>
<p>Dieser Quelltext definiert die Funktion <code>signal()</code>. Diese können Sie mit beliebigen Werten aufrufen. Die Funktion gibt ein Array mit den Werten eines Sinus zurück. Die wichtigsten Werte sind:</p>
<ul>
<li><code>f</code> die Frequenz und somit Tonhöhe des Sinus.</li>
<li><code>s</code> die Länge des Sinus in Sekunden.</li>
<li><code>A</code> die Amplitude, sie beeinflusst wie die Lautstärke des Signals vom Computer gelesen wird. <code>A=1</code> ist in diesem Fall der höchstmögliche Wert des Dateiformates und <code>A=0</code> wäre Stille.</li>
<li><code>fileformat</code> die Art der Enkodierung beziehungsweise die Bit-Tiefe. Geben Sie hier <code>np.int16</code> für 16-Bit PCM, <code>np.int32</code> für 32-Bit PCM oder <code>np.uint8</code> für unsignierte 8-Bit PCM Enkodierung an.</li>
</ul>
<p>In einem eigenen Artikel erklären wir ausführlich, wie Sie in <a href="https://systmus.blogs.uni-hamburg.de/python-sinus-sinuskurve-plotten-mit-numpy-und-matplotlib/" target="_blank" rel="noopener">Python einen Sinus plotten und abspielen</a>.</p>
<h2 id="python-audio--datei-erhalten-mit-scipy">Python Audio — Datei erhalten mit SciSciPy</h2>
<p>SciPy ist eine Python Bibliothek. Sie ist für die Anwendung im wissenschaftlichen Bereich gedacht und hat viele nützliche Funktionen. Eine davon ist die <code>write</code> Funktion aus dem Modul <code>scipy.io.wavfile()</code>. Mit diesem Modul können Sie Eingangsdaten erstellen und Ausgangsdaten auslesen.</p>
<pre><code class="language-python">from scipy.io.wavfile import write
sine=signal(f=440, s=1, A=0.5, fileformat=np.int16)
write('python_audio.wav', samplerate, sine.astype(np.int16))
</code></pre>
<p>Importieren Sie zunächst das Modul mit <code>from scipy.io.wavfile import write</code>.<br />
Rufen Sie dann <code>sine=signal(f=440, s=1, A=0.5)</code> mit den gewünschten Werten auf. Geben Sie im Anschluss einen Namen für die Datei ein. Beachten Sie, den Namen in Anführungszeichen zu setzen und mit <code>.wav</code> zu beenden. Fügen Sie die Variable für die <code>samplerate</code> hinzu und geben Sie mit <code>sine.astype(np.int16)</code> die Enkodierungsform an — in diesem Fall 16-bit PCM.<br />
Die Funktion sollte dann eine Datei mit dem gewählten Namen im gleichen Ordner abspeichern, in dem das Programm gelaufen ist.</p>
<h2 id="python-audio--wave-modul">Python Audio — <code class="language-python">wave</code>Modul</h2>
<p>Sollten Sie keine Lust haben weitere Bibliotheken zu installieren ist hier ein weiterer Weg in Python eine Audio-Datei zu erhalten: Das in Python eingebaute <code>wave</code>-Modul.</p>
<pre><code class="language-python">import wave 

sine=signal(f=440, s=1, A=0.5, fileformat=np.int16)

filename = 'python_audio.wav' 

with wave.open(filename, 'wb') as wf:
    wf.setnchannels(1)  
    wf.setsampwidth(2) 
    wf.setframerate(samplerate)
    wf.writeframes(sine.tobytes())
</code></pre>
<p>Importieren Sie zuerst das <code>wave</code> Modul. Legen Sie im Anschluss den Namen der Datei in der Variable <code>filename</code> fest.<br />
Nutzen Sie die <code>wave.open()</code> Funktion:</p>
<ul>
<li>Um mit <code>wf.setnchannels(1)</code> die Menge der Ausgangs-Kanäle festzulegen. Wenn Sie einen einzelnen Kanal einstellen, wie in diesem Fall, wird die Datei in Mono gespeichert.</li>
<li>Legen Sie mit <code>wf.setsampwidth(2)</code> die Bit-Tiefe fest. Ein Wert von <code>2</code> bedeutet eine Bit-Tiefe von 16, <code>4</code> wären 32 Bit. Da das Sinus-Array auch mit 16-Bit gespeichert wurde, bietet sich 16 Bit hier an.</li>
<li>Bei <code>wf.setframerate()</code> reicht es, wenn Sie die vorher festgelegte <code>samplerate</code> Variable angeben.</li>
<li>Schreiben Sie dann mit <code>wf.writeframes(sine.tobytes())</code> das Sinus-Array auf eine WAV-Datei.</li>
</ul>
<h2 id="python-audio--das-soundfile-modul">Python Audio — Das Soundfile Modul</h2>
<p>Die <code>write</code> Funktion des Soundfile Moduls eignet sich ebenfalls, um in Python Audio-Dateien zu erhalten.</p>
<pre><code class="language-python">import soundfile as sf

sine=signal(f=440, s=1, A=0.5, fileformat=np.int16)

filename = 'python_audio.wav'
sf.write(filename, sine, samplerate)
</code></pre>
<p>Installieren Sie dafür zuerst das Modul. Importieren Sie es dann mit <code>import soundfile as sf</code>. Legen Sie den Dateinamen fest und speichern Sie ihn in der Variable <code>filename</code>.<br />
Schreiben Sie nun mit <code>sf.write()</code> unter Angabe der<code>samplerate</code> das Sinus-Array als WAV-Datei. Das Modul übernimmt die Enkodierung von 16 Bit PCM aus dem Array. Diese haben Sie beim Aufrufen der Funktion <code>signal()</code> festgelegt.</p>
<p>Wie Sie sehen gibt es viele verschiedene Wege eine WAV-Datei in Python zu erzeugen. Je nach Anwendungsbereich können manche davon praktischer sein als andere. In einem weiteren Artikel zeigen wir Ihnen, wie Sie <a href="https://systmus.blogs.uni-hamburg.de/python-sound-abspielen-so-gehts/">in Python Audio abspielen</a>.</p>
<p>Der Beitrag <a href="https://systmus.blogs.uni-hamburg.de/python-audio-datei-erhalten/">Python Audio — Datei erhalten</a> erschien zuerst auf <a href="https://systmus.blogs.uni-hamburg.de">SystMus</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python Sound abspielen — so gehts</title>
		<link>https://systmus.blogs.uni-hamburg.de/python-sound-abspielen-so-gehts/</link>
		
		<dc:creator><![CDATA[Matthis Nachtmann]]></dc:creator>
		<pubDate>Sat, 17 Jan 2026 07:00:48 +0000</pubDate>
				<category><![CDATA[Tutorials: Musikwissenschaft]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[audio-programmierung]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://systmus.blogs.uni-hamburg.de/?p=1094</guid>

					<description><![CDATA[<p>Die Programmiersprache Python besticht durch eine niedrige Lernschwelle und ihre vielseitigen Anwendungsmöglichkeiten. Besonders in Bereichen wie Akustik, Sounddesign oder Webentwicklung kann es von großem Vorteil sein, wenn Python in der Lage ist, Audiodateien abzuspielen. In diesem Artikel erfahren Sie, welche... <a class="more-link" href="https://systmus.blogs.uni-hamburg.de/python-sound-abspielen-so-gehts/">Weiterlesen &#8594;</a></p>
<p>Der Beitrag <a href="https://systmus.blogs.uni-hamburg.de/python-sound-abspielen-so-gehts/">Python Sound abspielen — so gehts</a> erschien zuerst auf <a href="https://systmus.blogs.uni-hamburg.de">SystMus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Die Programmiersprache Python besticht durch eine niedrige Lernschwelle und ihre vielseitigen Anwendungsmöglichkeiten. Besonders in Bereichen wie Akustik, Sounddesign oder Webentwicklung kann es von großem Vorteil sein, wenn Python in der Lage ist, Audiodateien abzuspielen. In diesem Artikel erfahren Sie, welche Methoden Ihnen dafür zur Verfügung stehen und wie Sie diese effektiv nutzen können.</p>
<h1>Die Python-Bibliotheken</h1>
<p>Für Python gibt es eine Vielzahl an Bibliotheken, die das Sound-Abspielen ermöglichen. Alle davon haben ihre Vor- und Nachteile, da kann die Auswahl schwierig sein. Hier sind einige der beliebtesten Möglichkeiten erklärt:</p>
<div id="attachment_7134" style="width: 310px" class="wp-caption aligncenter"><img decoding="async" aria-describedby="caption-attachment-7134" class="wp-image-7134 size-medium" src="https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/python-8665904_1280-300x169.jpg" alt="Eine gelbe und eine Blaue Schlange bilden das Logo. Python zum Sound abspielen verwenden können Sie seit 1997." width="300" height="169" srcset="https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/python-8665904_1280-300x169.jpg 300w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/python-8665904_1280-1024x577.jpg 1024w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/python-8665904_1280-768x433.jpg 768w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/python-8665904_1280-1536x865.jpg 1536w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/python-8665904_1280-2048x1154.jpg 2048w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/python-8665904_1280-945x532.jpg 945w, https://systmus.blogs.uni-hamburg.de/wp-content/uploads/2025/02/python-8665904_1280-600x338.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" /><p id="caption-attachment-7134" class="wp-caption-text">So sieht das Logo der Programmiersprache aus. Mit Python Sound abspielen ist jetzt womöglich einfacher denn je. Quelle: <a href="https://pixabay.com" target="_blank" rel="noopener">Pixabay</a></p></div>
<h2 id="python-sound-abspielen--pyaudio">Pyaudio</h2>
<p><a href="https://people.csail.mit.edu/hubert/pyaudio/" target="_blank" rel="noopener">Pyaudio</a> kann mit einfachen Mitteln einen Output-Stream erzeugen. Dieser greift dann auf Audio-Möglichkeiten am Computer zu. Pyaudio basiert auf der Bibliothek Portaudio, die ursprünglich für die Programmiersprachen C und C++ gedacht war. Mit Pyaudio können Sie sowohl ein Array, als auch eine Datei als Audio abspielen.</p>
<pre><code class="language-python">import wave
import pyaudio


CHUNK = 1024

filename = input("WAV-Datei: ")

with wave.open(filename, 'rb') as wf:

    p = pyaudio.PyAudio()

    
    stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                    channels=wf.getnchannels(),
                    rate=wf.getframerate(),
                    output=True)

    
    while len(data := wf.readframes(CHUNK)): 
        stream.write(data)

    
    stream.close()

    p.terminate()
</code></pre>
<ul>
<li>Pyaudio kann Audio abspielen, aber keine Audio-Dateien lesen. Importieren Sie hierfür zunächst das in Python integrierte <code>wave</code> Modul. Mit diesem Modul kann Python WAV-Dateien einlesen und erstellen. Importieren Sie dann Pyaudio.</li>
<li>Legen Sie die Größe der <code>CHUNK</code> Variable fest. Die <em>Chunk-Größe</em> ist dafür verantwortlich, wie viele Daten von der Datei in den Speicher gelesen werden. Ist sie höher, kann das die Prozessorleistung verringern, aber die Verzögerung erhöhen. Ist sie niedriger, wird der Prozessor mehr belastet, aber die Verzögerung kann verringert werden. Das ist vor allem wichtig, falls Sie die Audio-Quelle in Echtzeit bearbeiten wollen. Wenn, wie in diesem Fall, nur eine WAV-Datei abgespielt werden soll, ist die Verzögerung nicht so wichtig.</li>
<li>Schreiben Sie nun ins Programm, wo Pyaudio die Datei finden kann. Die Variable <code>filename</code> soll den Dateipfad enthalten. In diesem Fall öffnet sich ein Fenster in das, bei Start des Programms, der Dateipfad eingegeben werden kann.</li>
</ul>
<h3>Das <code>wave</code> Modul</h3>
<ul>
<li>Nutzen Sie nun das <code>wave</code> Modul, welches die Datei als Binärdatei öffnet und ihr die Variable <code>wf</code> zuschreibt. Instantiieren Sie danach die Pyaudio Bibliothek und schreiben Sie ihr die Variable <code>p</code> zu. Pyaudio kann sich im Folgenden mit der Audio-Hardware verbinden.</li>
<li>Öffnen Sie im Anschluss den Audio-Datenstrom. Die Funktionen in diesem Abschnitt lesen die Spezifikationen der Datei. Die Bit-Tiefe, Anzahl der Kanäle (also zum Beispiel der Unterschied zwischen Mono und Stereo) und die Samplerate sind wichtige Parameter, um die Datei möglichst originalgetreu wiederzugeben. Mit der Anweisung <code>output=True</code> spezifizieren Sie, dass der Datenstrom zum Abspielen gedacht ist.</li>
<li>Im nächsten Abschnitt kommt die <code>CHUNK</code> Variable wieder ins Spiel. Starten Sie einen <code>while</code> loop, der so lange Stücke der Audio-Datei in den Datenstrom schreibt, bis das Ende der Datei erreicht ist. Schließen Sie im Anschluss mit <code class="language-python">stream.close()</code>den Datenstrom und beenden Sie mit <code class="language-python">p.terminate()</code> das Programm.</li>
</ul>
<h2 id="python-sound-abspielen--ipython">IPython</h2>
<p>Wenn Sie Jupyter benutzen, ist IPython womöglich der schnellste Weg, um Audio abspielen zu können. Aber Vorsicht: IPython ist kein reines Python-Modul. Es verwendet die Möglichkeiten von Jupyter, Inhalte über HTML zu rendern und regelt den Audio-Datenfluss über den Browser. Das ist ideal für Musik- und andere Wissenschaflter&#8217;innen, erlaubt aber auch nicht die Genauigkeit und Anpassungsfähigkeit von Pyaudio oder anderen Bibliotheken.</p>
<pre><code class="language-python">from IPython.display import Audio

filename = input("WAV-Datei: ")

display(Audio(filename))
</code></pre>
<p>Importieren Sie zunächst die <code>Audio</code>-Klasse des <code>Ipython.display</code> Moduls. Ordnen Sie dann der Variable für den Dateipfad <code>filename</code> eine Benutzereingabe zu. Nutzen Sie im Anschluss <code class="language-python">display(Audio(filename))</code>, um dem Display die Datei und das Medium (also in diesem Fall Audio) zuzuweisen. Starten Sie dann das Programm und geben Sie in das Textfeld den Dateinamen ein. Sie erhalten nun eine Oberfläche, mit der die Datei abgespielt werden kann.</p>
<h2 id="python-sound-abspielen--sounddevice">Python Sound abspielen — Sounddevice</h2>
<p>Die Sounddevice Bibliothek basiert, wie Pyaudio, auf der PortAudio Bibliothek für C und C++. Mit Sounddevice können Sie mit sehr wenigen Eingaben eine Datei als Audio abspielen. Für mehr Kontrolle bietet die Bibliothek aber auch die Möglichkeit, den Audio-Datenstrom direkt zu bestimmen, ähnlich wie Pyaudio.</p>
<pre><code class="language-python">import sounddevice as sd
from scipy.io import wavfile

filename = input("WAV-Datei: ")

sd.play(*wavfile.read(filename))
sd.wait()
</code></pre>
<ul>
<li>Der einfachste Weg um mit Sounddevice eine WAV-Datei abzuspielen ist mithilfe des Scipy-Moduls <code>wavfile</code>. Dieses ermöglicht es die nötigen Informationen über die Datei direkt an Sounddevice weiterzugeben.</li>
<li>Importieren Sie dafür zunächst Sounddevice und das <code>wavfile</code> Modul von Scipy. Fragen Sie im Anschluss nach der Benutzereingabe des Dateinamen mit <code>filename = input("WAV-Datei: ")</code>.</li>
<li>Mit der Funktion <code>sd.play(*wavfile.read(filename))</code> können Sie dann Sounddevice den Auftrag zum Abspielen geben. Innerhalb der Klammer passiert folgendes: <code>wavfile.read()</code> liest die Datei <code>filename</code>ein. Die Funktion liefert ein Tupel mit der Samplerate und den Audiodaten. Durch den Operator <code>*</code> werden diese Daten direkt der <code>sd.play()</code> Funktion zugespielt.</li>
<li>Mit <code>sd.wait()</code> können Sie sichergehen, dass sich das Programm erst schließt, wenn die Datei fertig abgespielt ist.</li>
</ul>
<h2 id="python-sound-abspielen--pygame">Pygame</h2>
<p>Wie der Name schon sagt, ist die Pygame Bibliothek eigentlich zum Spiele-Programmieren gedacht. Mit dem <code>pygame.mixer</code> Modul ist sie auch geeignet, um Audio abzuspielen.</p>
<pre><code class="language-python">import time
import pygame

pygame.mixer.init()

filename = input("WAV-Datei: ")

pygame.mixer.music.load(filename)

pygame.mixer.music.play()

while pygame.mixer.music.get_busy():  
    time.sleep(1)
</code></pre>
<p>Importieren Sie zunächst Pygame und das (bereits in Python enthaltene) <code>time</code> Modul. Initialisieren Sie Pygame im Anschluss mit <code>pygame.mixer.init()</code>. Das Argument <code>filename = input("WAV-Datei: ")</code> ist für den Dateinamen gedacht. Laden Sie dann mittels <code>pygame.mixer.music.load(filename)</code> die WAV-Datei und spielen sie mit <code>pygame.mixer.music.play()</code> ab. In einem Jupyter Notebook schaltet sich das Programm ab, wenn der Code einmal durchgelaufen ist. Wenn im Hintergrund dann noch ein Audio-Datenstrom offen ist, wird dieser mit beendet. Fügen Sie um das zu verhindern eine <code>while</code> Schleife ein, die überprüft ob die Datei noch abgespielt wird und das Schließen des Programms in der Zeit verhindert.</p>
<h2>Python Sound abspielen — Playsound</h2>
<p>Das <code>playsound</code> Modul enthält eine gleichnamige Funktion, die Audio abspielen kann. Vieles, was bei den anderen Bibliotheken explizit eingegeben werden muss, macht <code>playsound</code>automatisch.  Allerdings fehlt Genauigkeit. Es gibt keine eingebaute Funktion um das Abspielen zu pausieren oder andere Dinge mit dem Datenstrom zu machen. Genau so kann <code>playsound</code> nicht mehrere Kanäle zur gleichen Zeit offen haben. Das ist praktisch, wenn Sie einen kurzen Audio-Clip abspielen und nicht direkt einen ganzen Codeblock schreiben wollen. Um mit <code>playsound</code> eine WAV-Datei abzuspielen, braucht es drei Dinge:</p>
<pre><code class="language-python">from playsound import playsound 

filename = input("WAV-Datei: ")

playsound(filename)
</code></pre>
<ul>
<li>Importieren Sie zunächst <code>playsound</code>.</li>
<li>Geben Sie im Anschluss mit <code>filename = input("WAV-Datei: ")</code> die Möglichkeit den Dateinamen einzugeben.</li>
<li>Rufen Sie dann die <code>playsound</code> Funktion auf. Setzen Sie als Argument die <code class="language-python">filename</code> Variable.</li>
</ul>
<p>Wie Sie sehen gibt es viele verschiedene Wege eine WAV-Datei mit Python abzuspielen. Je nach Anwendungsbereich können manche davon praktischer sein als andere. Wenn Sie mit dem abgespielten Sound Daten transportieren, wird das „Audifikation“ genannt. Mehr über <a href="https://systmus.blogs.uni-hamburg.de/sonifikation-daten-hoerend-verstehen/">Audifikation und Sonifikation</a> erfahren Sie in einem weiteren Artikel.</p>
<p>Der Beitrag <a href="https://systmus.blogs.uni-hamburg.de/python-sound-abspielen-so-gehts/">Python Sound abspielen — so gehts</a> erschien zuerst auf <a href="https://systmus.blogs.uni-hamburg.de">SystMus</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
