Sample-Verarbeitung auf dem ST, Teil 1

Die Klangvielfalt des Atari ST gibt sich bescheiden - bedingt durch den veralteten Soundchip. Neue Hörerlebnisse bieten digitalisierte KIänge, sogenannte Samples. Unser Kurs zeigt Ihnen, wie Sie das Letzte aus Ihrem PC herausholen.

Die Entwickler des Atari ST planten keine Möglichkeit zur Ausgabe digitalisierter Audiosignale ein - im Fachjargon »Samples« genannt. Daß der Atari ST trotzdem in der Lage ist, hervorragenden Digisound zu produzieren, beweisen bis zu 6-stimmige Titelsongs. Der Umgang mit Samples erfordert immer Fingerspitzengefühl und die Einhaltung einiger Spielregeln. Erschwerend kommt noch hinzu, daß Programme zur raschen Signalbearbeitung gar nicht schnell genug sein können. Aus diesen Gründen hilft des öfteren nur noch ein Griff in die Trickkiste. Die nötigen Spielregeln erklären wir im Rahmen dieser Serie anhand einiger Beispiele - mit dem Fingerspitzengefühl und der Geschwindigkeit ist das natürlich so eine Sache. Um Ihnen hier den Einstieg zu erleichtern, finden Sie zu jedem Serienteil einige Demo-Programme auf der TOS-Diskette. Sie laufen auf allen ST-Modellen. Unsere Programme unterstützen zwar nicht den für STEs typischen DMA-Sound, dafür aber dessen »Microwire«, den digitalen Klangregler.

Zunächst ein kurzer Überblick zum Aufbau der Serie. In diesem ersten Teil stellen wir Ihnen die wichtigsten Grundlagen beim Umgang mit Samples in 1-Kanal-Technik vor. Passend dazu finden Sie auf der TOS-Diskette einen universellen Sample-Editor sowie Unterroutinen in Assembler und C zur Einbindung von digitalen Effekten in Ihre eigenen Programme. Ein Leckerbissen ganz besonderer Art erwartet Sie in der nächsten Ausgabe: eine revolutionäre Abspielroutine für 4-stimmige Musikstücke zur Einbindung in eigene Programme, die nur die Hälfte der Rechenzeit des Computers für sich in Anspruch nimmt - es bleibt also genug »Freizeit« für Grafik, etc.

Analog und digital - das Sampling-System

Zunächst einige grundlegende Informationen zum Aufbau von Signalen, die Ihnen die Arbeitsweise bei der Bearbeitung von Simples näherbringen. Vorab also die Klärung der Frage: Was geschieht mit den analogen Signalen in einem Sampling-System und welche Komponenten enthält dieses? Betrachten wir dazu Bild 1. Am Eingang des Systems wandelt ein Mikrofon das Tonsignal in analoge Spannungswerte um. Natürliche Tonsignale liegen allesamt in Form von verschiedenen Schwingungen vor. Interessanterweise lassen sich sehr viele in der Natur vorkommende Typen von Schwingungen durch denselben Kurvenverlauf beschreiben - die bekannte Sinusschwingung. Beispiele hierfür sind das Pendel, eine Stimmgabel oder eine schwingende Wassersäule. Die Tonhöhe (Frequenz) einer Schwingung wird gemessen in deren Perioden pro Sekunde. Die Einheit ist »Hertz« oder abgekürzt »Hz« (1 Hz - 1 Periode/Sekunde, 1000 Hz entsprechen einem Kilohertz (kHz». Stellen Sie sich nun folgendes vor: Sie haben zwei unterschiedliche Musikinstrumente: ein Klavier und eine Geige. Auf beiden spielen Sie einen Ton der gleichen Höhe. Obwohl die Frequenz beider Instrumente völlig gleich ist, klingen sie doch verschieden. Analysieren Sie mit einem geeigneten Gerät, zum Beispiel einem Oszilloskop, einige Perioden der Tonsignale beider Instrumente, wird die Ursache klar: Es handelt sich nämlich nicht um Sinusschwingungen (siehe Bild 2). Interessanterweise zeigt die Mathematik, daß sich jedes nur denkbare Signal aus einzelnen Sinusschwingungen zusammensetzt. Diese Tatsache erklärt sich am besten anhand eines Beispiels: Wie Sie vielleicht wissen, erzeugt der im Atari eingebaute Yahama-Soundchip ein rechteckförmiges Tonsignal. Auch dieses Signal läßt sich nach einem »Rezept« zusammensetzen:

	x(t) = sin (2 * PI * t)
	     + 1/3 * sin (  6 * PI * t)
	     + 1/5 * sin ( 10 * PI * t)
	     + ... usw.

In Bild 3 sehen Sie die unterschiedlichen Funktionen, die mit steigender Anzahl der Summanden eine immer bessere Annäherung an das Rechtecksignal erreichen. Auf diese Weise gelingt es, das Original beliebig genau zu kopieren, ohne es jedoch exakt zu übernehmen. Es leuchtet ein, daß jedes »Rezept« einen ganz speziellen Klang erzeugt. Das menschliche Ohr macht nun genau das Gegenteil: Es zerlegt einen Ton wieder in seine einzelnen Komponenten. Allerdings ist das Ohr nur in der Lage, Komponenten zwischen etwa 30 Hz und 17 kHz zu analysieren. Was passiert aber, wenn wir alle Komponenten ab einer bestimmten Frequenz einfach entfernen? Die Lösung ist einfach: Liegen die fehlenden Komponenten über 17 kHz, hören Sie gar keinen Unterschied. Entfernen Sie aber Komponenten, die unterhalb der oberen Hörgrenze liegen, klingt das Signal dumpfer.Den gleichen Effekt erhalten Sie, wenn Sie den Höhenregler Ihrer Stereo-Anlage zurückdrehen. Die Frage, ob ein Signal Frequenzen oberhalb einer bestimmten »Grenzfrequenz« enthält, ist für das Sampeln von entscheidender Bedeutung. Der Analog/Digital-Wandler (AD-Wandler) macht nichts anderes, als mit einem bestimmten Takt das Tonsignal zu messen (abzutasten). Dabei treten nun prinzipiell folgende zwei Fälle ein. In Bild 4 entspricht jeder senkrechte Strich einem Abtastzeitpunkt, ein Kreis zeigt den Wert, den der Sampler zu dieser Zeit mißt. Im oberen Beispiel ist das ursprüngliche Signal eindeutig zu erkennen. Ist die Frequenz der Schwingung jedoch zu hoch, erhalten Sie ein falsches Ergebnis - nämlich die durch die Kreise beschriebene Schwingungskurve. Sie erkennen, daß dieser Fall genau dann eintritt, wenn die Signalfrequenz größer als die halbe Abtastfrequenz ist. Um diesen Fall entgegenzuwirken, bedient sich die Technik sogenannter Input-Filter. Diese sorgen dafür, daß oberhalb der Grenzfrequenz - der halben Abtastfrequenz - die Signalfrequenzen praktisch vollständig verschwinden. je nach Filtertyp liegt dessen »Sperrfrequenz« (Fd in Bild 1) noch ein weiteres Stück unterhalb der halben Abtastfrequenz (F in Bild 1). Der dritte Block in Bild 1 stellt den Computer dar. Er steuert über den Takt T den AD-Wandler. Es ist enorm wichtig, diesen Takt exakt einzuhalten. Auch hier zeigt etwas Mathematik, daß sich aus den Abtastwerten eines Signales, das keine Komponenten oberhalb der halben Abtastfrequenz enthält, das Signal exakt rekonstruieren läßt. Bereits minimale Anteile zu hoher Signalkomponenten oder minimale Timingfehler führen aber zu deutlichen Klangverschlechterungen. Der 4. und 5. Block dient zur Ausgabe des Signals.

Mit einem festen Takt gibt der Computer die Abtastwerte an einen DA-Wandler. Jedem Abtastwert entspricht eine Spannung (zum Beispiel: 0 Volt für den Wert 0 und 1 Volt für den Wert 255). Am Ausgang des DA-Wandlers liegt also ein stufenförmige Spannung an. Diese »Treppenkurve« sieht dem ursprünglichen Signal schon recht ähnlich. Trotzdem befindet sich am Ausgang ein 2. Filter. Er glättet die Stufen in der Treppe, Dieser Filter entspricht oftmals dem Eingangsfilter. Die Auflösung Ihres Samplers entscheidet über die Stufenhöhe am Ausgang des DA-Wandlers. Durch die Quantisierung des Abtastwertes auf ein Wort (16 Bit), ein Byte (8 Bit) oder weniger entsteht ein gewisser Fehler, der sich durch Rauschen bemerkbar macht. Dieses Rauschen bezeichnen wir als Quantisierungsrauschen. Der Output-Filter hat deshalb auch die Aufgabe, das Quantisierungsrauschen etwas zu reduzieren.

Sampling in der Praxis

Wenn Sie sich einen AD-Wandler kaufen, erhalten Sie in den meisten Fällen ein Steuerprogramm. Nicht so selbstverständlich ist es, daß der AD-Wandler bereits einen Input-Filter enthält, denn gute Filter sind nicht billig. Um trotzdem gute Klangergebnisse zu erzielen, bleibt nur der Weg, mit hohen Abtastraten zu arbeiten. So darf man etwa davon ausgehen, daß ein Kassettenrekorder Frequenzen bis etwa 15 kHz aufnimmt. Resultat: Die Samplingrate muß 30 kHz betragen. Das kostet jede Menge Speicher. Die Lösung diese Problems: das Programm »SMSSEDIT.PRG« auf der TOS-Diskette. Ein Filter läßt sich nämlich auch per Software emulieren. In SMSSEDIT ist ein solcher Filter implementiert. Der Preis für einen Software-Filter liegt in der hohen Rechenzeit. Eine Anleitung zu SMSSEDIT finden Sie in der TXT-Datei gleichen Namens.

Einsatz von Filtern

Ein kleines Beispiel veranschaulicht die Wirkungsweise eines Filters. Sie haben ein Programm geschrieben, in welchem Sie Samples von Sprache verwenden. Sprache ist auch noch gut verständlich, wenn sie nur Frequenzen bis etwa 3,5 kHz enthält. Sie samplen die Sprache mit einer Rate von 32 kHz, speichern das Sample und laden es in den SMS-Editor. Die Grenzfrequenz des Digitalfilters sollten Sie etwa bei 45 Prozent der Abtastfrequenz legen. Da SMSSEDIT Samples nur auf halbe beziehungsweise doppelte Abtastfrequenz umrechnen kann, bietet sich hier 8 kHz an. Tippen Sie im Menü des Programms die Taste <F>. Daraufhin geben Sie für die »normierte Grenzfrequenz« den Wert 0,1125 ein (0, 1125 entspricht bei einer Rate von 32 kHz genau 32 kHzx0,1 125- 3,6 kHz, siehe SMSSEDIT.TXT). Nun heißt es etwas warten. Ist der Filter berechnet, klingt das Sample um einiges dumpfer - ein Zeichen, daß die Filterung nicht umsonst war. Dafür können Sie aber nun 75 Prozent der Abtastwerte entfernen, indem Sie das Sample genau zwei Mal mit <W> zusammenschieben. Spielen Sie dann das Sample mit einem Timerwert von 77 (ergibt etwa 8000 Hz). Voila!

Der Atari ST DA-Wandler

Kein Handbuch beschreibt ihn und doch ist er allem Anschein nach vorhanden: Der Soundchip des Atari ST besitzt vier Tonkanäle. Für jeden Tonkanal läßt sich einzeln ein Lautstärkewert von 0 bis 15 einstellen. Jeder Tonkanal kann vier Signaltypen erzeugen: Rauschen, Rechteckschwingung, Rechteck mit Rauschen und Aus. Schalten wir den Signaltyp eines jeden Kanals auf Aus, so liegt aus technischen Gründen (»Open Collector«) am Ausgang des Chips eine Gleichspannung an, deren Höhe sich über die drei Lautstärkeregister einstellen läßt. Nun ist das Verhältnis von Gleichspannung und Lautstärke pro Kanal exponentiell. Das heißt, es lassen sich 16 x 15 x 14 verschiedene Gleichspannungen am Chipausgang mithilfe der drei Lautstärkeregister einstellen. Allerdings ist es nicht sinnvoll, mehr als etwa 256 dieser Kombinationen zu nutzen, da man aus Gründen der Fertigungstoleranzen des Chips an eine bestimmte Systematik gebunden ist (Bild 5). Die Arbeitsweise der DA-Wandler-Routine ist damit klar: Für jeden Samplewert schreiben wir drei Lautstärkewerte aus einer Tabelle in den Soundchip, worauf dieser die entsprechende Gleichspannung abgibt. Leider fehlt der Output-Filter. Geben Sie Ihre Samples über den Monitorlautsprecher aus, rauscht Ihr Sample dadurch etwas mehr. Bei Ausgabe über eine Stereoanlage sollten Sie einfach die Höhen etwas zurückdrehen.

Auf der TOS-Disk finden Sie »PLAYER.S«, der Ihnen die Ausgabe von Samples abnimmt. PLAYER.S arbeitet simultan auf zwei Interrupt-Leveln: Mit der höchsten Priorität bedient er den DA-Wandler aus einem von zwei Puffern; ist der eine Puffer leer, füllt er ihn mit niedrigerer Priorität wieder auf Gleichzeitig holt er die Daten des DA-Wandlers aus dem zweiten Puffer. (ah)


Jürgen Piscol
Aus: TOS 06 / 1991, Seite 97

Links

Copyright-Bestimmungen: siehe Über diese Seite