This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Die Struktur von Grafik und Ton /

Fortgeschrittenes Thema: FarbausgabeExport von Grafik und Ton

2.9.18 Die Darstellung von Ton

In Abschnitt 1.9.13 wird beschrieben, wie man mit Funktionen und Datenlisten Ton produzieren kann. Dieser Unterabschnitt beschreibt, wie Töne in Mathematica dargestellt werden.

Mathematica behandelt Töne sehr ähnlich wie Grafik. Mit Mathematica können Sie sogar Grafik und Ton zu Bildern mit „Tonspuren" kombinieren.

Töne werden, analog zur Grafik, durch symbolische Ton-Objekte dargestellt. Die Ton-Objekte haben den Kopf Sound und enthalten eine Liste mit Ton-Primitiven, die Töne darstellen, die nacheinander gespielt werden sollen.

Die Struktur eines Ton-Objektes

Die Funktionen Play und ListPlay, die bereits in Abschnitt 1.9.13 behandelt wurden, liefern Sound-Objekte.

Play liefert ein Sound-Objekt. Auf entsprechenden Computersystemen produziert es auch Ton.

In[1]:= Play[Sin[300 t + 2 Sin[400 t]], {t, 0, 2}]

Out[1]= -Sound-

Das Sound-Objekt enthält eine SampledSoundFunction-Primitive, die eine kompilierte Funktion für die Erzeugung von Amplitudenwerten für den Ton einsetzt.

In[2]:= Short[ InputForm[%] ]

Out[2]//Short=Sound[SampledSoundFunction[<<3>>]]

Mathematica-Ton-Primitiven

Auf der elementarsten Stufe werden in Mathematica alle Töne als eine Folge von Amplitudenwerten dargestellt. In SampledSoundList werden diese Amplitudenwerte explizit als Liste angegeben. In SampledSoundFunction werden sie hingegen erzeugt, wenn der Ton ausgegeben wird, und zwar durch Anwendung der spezifizierten Funktion auf eine Folge ganzzahliger Argumente. In beiden Fällen müssen alle erhaltenen Amplitudenwerte zwischen und 1 liegen.

ListPlay erzeugt SampledSoundList-Primitiven, während Play SampledSoundFunction-Primitiven erzeugt. Mit der Options-Voreinstellung Compiled -> True wird Play ein SampledSoundFunction-Objekt produzieren, das eine CompiledFunction enthält.

Sobald Sie ein Sound-Objekt erzeugt haben, das mehrere Sound-Primitiven enthält, können Sie es dann als Ton ausgeben. Sehr ähnlich wie bei Grafik ist das Grundprinzip, die Mathematica-Darstellung des Tons in eine elementare Form zu wandeln, die durch ein externes Programm, wie zum Beispiel eine Mathematica-Benutzeroberfläche, bearbeitet werden kann.

Die von Mathematica verwendete elementare Darstellung von Ton besteht aus einer Folge hexadezimaler Zahlen, die Amplitudenwerte spezifizieren. Mathematica-intern liegen Amplitudenwerte als reelle Gleitpunktzahlen zwischen und 1 vor. Bei der Herstellung der Form auf elementarer Ebene werden die Amplitudenwerte „quantisiert". Mit der Option SampleDepth können Sie angeben, wie viele Bits für jeden Wert verwendet werden sollen. Die Vorgabe ist SampleDepth -> 8; dies ergibt 256 mögliche Amplitudenwerte. Das ist für die meisten Zwecke ausreichend.

Die Option SampleDepth können Sie in jeder der Funktionen Play, ListPlay und PlaySound einsetzen. In Ton-Primitiven läßt sich die Abtasttiefe angeben, indem das Abtastraten-Argument durch die Liste rate, tiefe ersetzt wird.

Da Grafik und Ton in Mathematica kombiniert werden können, dürfen deren Darstellungen auf elementarer Stufe nicht in Konflikt geraten. In Abschnitt 2.9.14 wurde bereits beschrieben, daß die gesamte Grafik in Mathematica in der PostScript-Sprache erzeugt wird. Töne werden auch als spezielle PostScript-Funktion erzeugt, die von PostScript-Interpretern auf Geräten, die Ton-Ausgabe nicht unterstützen, ignoriert werden kann.

Ton zu einem Strom senden

Mathematica verwendet dieselbe Funktion Display für die Ausgabe von Ton, Grafik und die Kombination von beiden.

In Play, ListPlay und Sound spezifiziert die Option DisplayFunction, wie der Ton am Ende ausgegeben werden soll. Die Vorgabe für diese Option ist die globale Variable $SoundDisplayFunction. In der Regel wird diese gleich einem entsprechenden Aufruf von Display gesetzt.

Fortgeschrittenes Thema: FarbausgabeExport von Grafik und Ton