2. Funktionsweise - Robinl.de

robinl.de

2. Funktionsweise - Robinl.de

Audioadapter

(Soundblaster)


1. Aufgaben eines Audioadapters

1.1 Komponenten

1.2 Ein / Ausgänge und Signalwege (Grober Überblick)

2. Funktionsweise

2.1 A/D Wandler + Sampling

2.2 AC 97

2.3 DSP

3. Klangerzeugungsverfahren

3.1 Wavetable - Synthese

3.2 FM - Synthese

4. Midi

4.1 Midi – Standards

4.2 Hardware Merkmale

4.3 Software Merkmale

4.4 Midi Message Spezifikationen

5. Schlusswort

Gliederung


1. Aufgaben eines Audioadapter

- Analoge Audiosignale in digitale Audiosignale umwandeln

- Digitale Audiosignale in analoge Audiosignale umwandeln

- Klangerzeugung – verschiedene Verfahren (Wavetable / FM / PM Synthese)

- Steuerung der Klangsynthese und externer Geräte (Keyboard, DAT Recorder usw.) über MIDI

- Anschluss verschiedener externer Geräte (Keyboard, Mikrofon, CD-Player usw.)

1.1 Komponenten

AD / DA - Wandler (SB Live; AC97 Cod. Sigmatel 9708)

- A/D – D/A Wandler

- Mixer Funktion

DSP (Digital Signal Processing) – (SB Live; EMU10K1)

- Zentraleinheit

- Music Synthesizer (Wavetable) + Audio Processor

- Datenzugriff auf Systemkomponenten (PCI)

- Effekte Prozessor + Digital Audio Mixer

- 3D Sound Berechnung

- Leistungsstärker als Pentium 166

OPL – Chip

-FM –Synthese

1.1 Komponenten


1. Aufgaben eines Audioadapters

1.2 Ein und Ausgänge + Signalwege


Sigmatel 9708 AC97 Codec (SB Live)

- Fixiert auf 48 kHz

2. Funktionsweise

2.1 A / D Wandler

- Analoge Signale werden über Mixer in 1 Stereosignal (PCM – Pulse Code Modulation) konvertiert

- Datentransfer über AC Link Interface (Bestandteil von AC 97 Standard)

- Multi-Codec ID0, ID1 für Anschluss von zwei weiteren AC97 Codecs

- 2 Stereosignale am Ausgang für Surround Sound (Front/Rear Output)


2. Funktionsweise

2.1 A / D Wandler (Sampling nach dem PCM Standard)

Qualität des digitalen Signals hängt ab von:

- Abtastrate / Samplingrate: Abtastung des analogen Signals in regelmäßigen Abständen

(Bsp.: 44,1 kHz = 44100 Abtastungen pro Sekunde)

Nyquist Abtasttheorem: Die Bandbreite eines digital abgetasteten Signals ist weniger als die Hälfte

der Abtastfrequenz (Mensch hört von 20-22 kHz, je nach Alter verschieden; 44 kHz Samplingrate

kann maximal 22 kHz darstellen)

- Auflösung (Quantisierung): hängt davon ab, wieviel Bits zur Messung der Amplitude des Signals

verwendet werden sollen.

8 bit Quantisierung bedeutet 256 mögliche Werte, 16 bit Quantisierung sind 65536 mögliche Werte

Datengröße bestimmen: Samplingrate * Auflösung(1 oder 2 bytes) * Kanal (Mono 1, Stereo 2) = byte / s

Rechenbeispiel: 44100 Hz * 2 bytes (Auflösung 16 bit) * 2 (Stereo) = 0.16 MB/s.


Probleme beim Sampling:

2. Funktionsweise

2.1 A / D Wandler (Sampling nach dem PCM Standard)

- Aliasing Effekt: Frequenzen oberhalb der Hälfte der Abtastfrequenz werden falsch

dargestellt

Lösung: Lowpass Filter (schneidet Frequenzen ab bestimmter CutOff Frequenz ab)

- Quantisierungsrauschen: Je weniger Bits für Messung der Amplitude des Signals ->

desto größer der Rundungsfehler -> Rauschen


2. Funktionsweise

2.2 AC 97 Standard

- Von Intel, Yamaha, Creative Labs und anderen Firmen definiert

- AC 97 beschreibt Design und Anforderungen eines Codec, sowie das Interface zur

Datenübertragung

Ein Codec muss:

- 48 oder 64 Pins haben

- 8-48 kHz Samplingrate unterstützen

- 4 analoge Signale gleichzeitig konvertieren

- über das 5 Kanal serielle AC Link Interface kommunizieren können

- AC97 wird häufig auf Mainboards (Onboard Sound) integriert und aus Kostengründen wird auf

DSP verzichtet

- Ohne DSP übernimmt die CPU alle Aufgaben

des DSP und des AC97 Controller

- AC Link Controller (ICH – I/O Controller Hub)

in der Southbridge installiert (Mainboard)

- Es können bis zu 4 Audio Codecs in einem System

vorhanden sein. (Primary+3 Secondary)


2. Funktionsweise

2.2 AC 97 Standard (AC Link Interface)

- 5 Datenleitungen mit serieller Übertragung in beide Richtungen

- Taktrate erhält der Primary Codec über externen Taktgeber (24,576 MHz)

- Synchronisation wird über BIT_CLK Pin erreicht und die Taktrate ist Hälfte von Taktgeber (12,288 MHz)

- aufsteigende Flanke: Biterkennung; absteigende Flanke: Bitübertragung (ist ausreichend für 48 kHz

Audio)“

- Übertragung mehrerer PCM Audiostreams, durch TDM Schema (Time Division Multiplex)

- TDM: 12 ein- ausgehende Datenströme (Slots) mit jeweils 20 bit

- AC97 Codec kann 16 - 20 bit Auflösung unterstützen


2. Funktionsweise

2.2 AC 97 Standard (Übertragung AC-Link + Slots)

Slots Erklärung (SDATA OUT) Erklärung (SDATA IN)

0 Tag Informationen (16bit lang) – zeigt an, welche

nachfolgenden Slots 1-12 gültige Daten

enthalten

Bit 0-1 enthält Codec ID (00 reserviert für Primary

Codec; 01-10-11 Secondary Codecs; bis zu 3

Secondary Codecs können über AC97

Controller angesteuert werden)

Bit 15: enthält „Codec Ready“ Bit

3,4 16-18-20 bit PCM Audio-Daten für linken und

rechten Kanal

6,7,8 16-18-20 bit PCM Audio Daten für Surround linken

und rechten Kanal

Tag Informationen (16bit lang) –

zeigt an, welche nachfolgenden Slots 1-12 gültige Daten

enthalten

Bit 15: enthält „Codec Ready“ Bit

16-18-20 bit PCM Audio-Daten von linken und rechten

Eingangssignal

reserviert

1 Slotrequest Informationen – sind wichtig für variable

Samplingraten

Die Bits 3-12 werden belegt.


- AC97 sieht vor das Samplingraten zwischen 8-48 kHz vorhanden sein müssen

- Der Codec ist aber fixiert auf 48 kHz, wegen 12,288 MHz Taktgeber. Es werden immer 48 kHz

übertragen.

Problem: Wie erreicht man variable Samplingraten ?

On Demand Technologie:

- Der AC 97 Codec muss diese Technik beinhalten

2. Funktionsweise

2.2 AC 97 Standard (Variable Samplingraten)

- Slot1 von SDATA IN beinhaltet in den Bits 3-12 Slotrequest Informationen.

- Diese Bits geben an, ob Slot 3-12 belegt ist, oder nicht

- Wenn im Slot1 von SDATA IN eines der Bits 3-12 mit „0“ belegt ist, so übergeht der AC97 Controller

diesen Slot beim nächsten Audioframe


EMU10k1

2. Funktionsweise

2.3 DSP

- Intern - Konvertierung aller Audiosamples auf 48 kHz durch Multipoint Sample Rate Konverter

- PCI Master + Slave Unterstützung, dadurch direkten Zugriff auf Speicher (DMA) ohne CPU Nutzung

- Virtual Memory Mapping wegen DMA Zugriff: Page Tabelle im Systemspeicher vorhanden

- Look aside Buffer: Interne Page Tabelle, worauf der Zugriff noch schneller ist.

- Wenn ungültige Daten im Look aside Buffer, dann update des Buffers mit Page Tabelle aus Systemram

Abspielen und Aufnehmen von Daten (Problem – Datenstrom wird kurzzeitig unterbrochen):

- Double Buffering: Nutzung von 2 Speicherblöcken. Während ein Speicherblock ausgelesen wird, wird

der andere Speicherblock beschrieben.

- Auto Init DMA: Gleiche Funktionsweise wie Double Buffering, aber es wird nur 1 Speicherblock benutzt.

DMA Speicherblock mit bestimmter Länge angelegt; Soundkarte auf die Hälfte der Länge des DMA

Speicherblockes programmiert. 2 Interrupts pro Speicherblock ausgelöst.


FX8010

2. Funktionsweise

2.3 DSP (Effekt Prozessor FX 8010)

- Befindet sich im EMU10k1

- Zuständig für 3D Audio Berechnung (EAX – Environmental Audio)

- Digitale Mixerfunktion (32 Ein- und Ausgangskanäle; Ausgangskanäle können zu Einganskanäle

umgewandelt werden)

- Effekte zu digitalen Audiospuren hinzufügen

- Effekte für Wavtable Synthese (MIDI)

- 1 Kb Instruction Memory, worin sich die Effektealgorithmen befinden

- Effekte können über C programmiert werden und in Assemblercodekonvertierung (spezielles Tool) auf

den Instruction Memory hochgeladen werden


- Basis bilden kurze Soundfragmente

- Wegen Speichermangel meist 1 Soundfragment

pro Instrument

- Layering: mehrere Soundfragmente pro

Instrument -> Klang naturgetreuer

- Soundfregmente werden in Systemram, ROM

oder Ram abgelegt (SBLIVE – 32 MB im

Systemram)

- Dynamik wird durch ADSR Hüllkurven erreicht

- Weitere Sounddetails über Loop-Funktion, LFO

(Tremolo (Amplitudenmodulation), Vibrato

(Frequenzmodulation))

- Ansteuerung der Wavetabe-Synthese über MIDI

- Um Soundsamples zu finden wird eine Wave

Tabelle verwendet, welche die Speicheradressen

mit dem jeweiligen Soundsample enthalten

3. Klangerzeugungsverfahren

3.1 Wavetable - Synthese


3. Klangerzeugungsverfahren

3.2 FM - Synthese

- 1967 entwickelt (Yamaha hat als erster FM Synthese auf Audioadaptern integriert)

- FM – Synthese basiert auf Sinusgeneratoren (Generatorzellen, Operatoren), welche sich gegenseitig

beeinflussen

- Yamaha OPL 2,3,4,5 Chip übernehmen diese Funktionen (OPL2,3 werden nicht mehr verbaut) auf

Soundkarten.

- OPL2 hat 18 Generatorzellen; jeweils 2 Generatorzellen pro Kanal (1 Träger, 1 Modulator)

- Jede Generatorzelle besteht aus einem Oszillator (Frequenzerzeuger) und einer ADSR Hüllkurve

Ablauf:

- Träger erzeugt Sinussignal

- Modulator Ausgangssignal wird immer als Träger Eingangssignal genutzt

- Es kann auch nur ein Träger ohne Modulator genutzt werden

- Modulator ohne Träger funktioniert nicht (kein Ton)


3. Klangerzeugungsverfahren

3.2 FM - Synthese

Zugriff auf den OPL2:

- Für Zugriff des Ports (388h, 389h); 388h Registeradresse, 389h Wert des

Registers

- Zugriff auf Basisregister (Generatorzelle) durch Basisregister+Offset der

Generatorzelle

- Zugriff auf Basisregister (Kanal) durch Basisregister+Offset des Kanals

- Für Generatorzelle zuständige Basisregister (20h,40h,60h,80h)

- Für Kanal zuständige Basisregister (A0h,B0h,C0h)

- Frequenzerzeugung durch 8 bit im Register A0h + 2bit im Register B0h

- 10 bit Frequenz bietet nur 1024 Möglichkeiten -> zu wenig -

>Blocknummer der Okatve (Register B0h – Bit 2-4)

- Kanäle zusammenschalten über Reg. C0h

- Register 20h, Bit 0-3: Multiplikationsfaktor Kanalfrequenz

Beispiel:

Kammerton A

Kanal 1

Modulator: 2*Frequenz

Träger: 1*Frequenz

Verbindung (FM-Synt.)


4. MIDI (Musical Instruments Digital Interface)

Allgemein

- 1983 entwickelt von Yamaha, Roland, Korg usw.

- MIDI ist eine genormte Schnittstelle, mit der verschiedene Geräte, Instrumente (mit Midianschluss)

über ein Standard Interface kommunizieren können

- MIDI überträgt nur Steuersignale und keine digitalisierten oder analogen Audiosignale

1. Standard war und ist GM (General - Midi) Standard:

- Stimmenzahl, mindestens 24 Stimmen mit dynamischer Zuordnung

- 16-fach multitimbral (16 Instrumente können gleichzeitig angesteuert werden) – 16 Midikanäle

- festgelegte Controllernummern (Chorus, Hall)

- Aftertouch (Anschlagdynamik) für jeden Kanal

- Pitchbend-Range 2 Halbtonschritte

- festgelegte Drummaps und Sounds

4.1 MIDI - Standards

2. Standard GS (General Standard) Standard:

- Standard hat an Bedeutung verloren, da nur sehr wenige Veränderungen gegenüber GM

3. Standard XG (Extended General Midi) Standard:

- Nur von Yamaha entwickelt und eingesetzt, bietet er volle Kompatibilität zu GM

- Mind. 460 Sounds, viele neue Effekte (Phaser, Distortion, Flanger usw.)

- Sehr viele Effektparameter zum einstellen


- Um Geräte zu verbinden werden Midikabel mit meist 5 poligen Steckern

verwendet (nur 3 Leitungen wichtig)

- Übertragungsrate von 31.250 Baud (Bits / Sek) = ca. 3000 Midibytes pro

Sekunde, da jedes Byte aus 2 Synchronisationsbits und 8 bits für Daten

besteht.

- UART (universal asynchronous receiver / transmitter) Baustein, der ein

erhaltenes Midibyte über ein 8 bit breites Interface zum Microcontroller parallel

sendet

- Vor dem Transfer zum Mikrocontroller werden

Daten noch in einen Zwischenpuffer abgelegt.

Ist dieser voll wird per Interrupt

gemeldet, dass Daten abgeholt werden müssen

- Intern können Daten mit wesentlich höherer Takt-

rate verarbeitet werden

4. MIDI (Musical Instruments Digital Interface)

4.2 Hardware - Merkmale


- Bis heute keine Änderung an der

Midiübertragung

- Über das Midiprotokoll können Instrumente mit

Midianschluss, sowie Mischpulte und

Effektgeräte usw. angesteuert werden

Aufbau der Mididaten:

- Statusbyte (10 bit, MSB immer 1)

- Datenbyte (10 bit, MSB immer 0)

- Jedes Midisignal beginnt immer mit einem

Statusbyte, gefolgt von 1 oder 2 Datenbytes

- Wenn die Variationsmöglichkeiten eines

Datenbytes nicht ausreichen, wird ein 2.

verwendet

4. MIDI (Musical Instruments Digital Interface)

4.3 Software - Merkmale

- Running Status: Datenreduktion

- Extern können über 1 Midikabel nur 16

Midikanäle gesteuert werden

- Intern (Wavetablesynthese) können auch mehr

Midikanäle verwendet werden

(Softwareemulation)


4. MIDI (Musical Instruments Digital Interface)

4.4 Midi Message Spezifikationen


4. MIDI (Musical Instruments Digital Interface)

ÜBUNG


The End

Quellen

http://emu10k1.sourceforge.net

http://www.tu-chemnitz.de

http://www.creative.com

http://www.midi.org

Datasheets STAC9708, EMU10k1,OPL2,FX8010

Google und verschiedene andere Internetseiten

Weitere Magazine dieses Users
Ähnliche Magazine