Post on 05-Apr-2015
Audioadapter(Soundblaster)
1. Aufgaben eines Audioadapters1.1 Komponenten1.2 Ein / Ausgänge und Signalwege (Grober Überblick)
2. Funktionsweise2.1 A/D Wandler + Sampling2.2 AC 972.3 DSP
3. Klangerzeugungsverfahren3.1 Wavetable - Synthese3.2 FM - Synthese
4. Midi4.1 Midi – Standards4.2 Hardware Merkmale4.3 Software Merkmale4.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 Audioadapters1.2 Ein und Ausgänge + Signalwege
2. Funktionsweise2.1 A / D Wandler
Sigmatel 9708 AC97 Codec (SB Live)
- Fixiert auf 48 kHz
- 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)
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.
2. Funktionsweise2.1 A / D Wandler (Sampling nach dem PCM Standard)
Probleme beim Sampling:
- 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. Funktionsweise2.1 A / D Wandler (Sampling nach dem PCM 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. Funktionsweise2.2 AC 97 Standard
- 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. Funktionsweise2.2 AC 97 Standard (AC Link Interface)
2. Funktionsweise2.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
Tag Informationen (16bit lang) – zeigt an, welche nachfolgenden Slots 1-12 gültige Daten
enthaltenBit 15: enthält „Codec Ready“ Bit
3,4 16-18-20 bit PCM Audio-Daten für linken und rechten Kanal
16-18-20 bit PCM Audio-Daten von linken und rechten Eingangssignal
6,7,8 16-18-20 bit PCM Audio Daten für Surround linken und rechten Kanal
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
- 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
2. Funktionsweise2.2 AC 97 Standard (Variable Samplingraten)
EMU10k1
- 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.
2. Funktionsweise2.3 DSP
2. Funktionsweise2.3 DSP (Effekt Prozessor FX 8010)
FX8010
- 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. Klangerzeugungsverfahren3.1 Wavetable - Synthese
Problem: Tonerhöhung !!
Lösung: Pitch-Shifting
Pitch-Shifting: Bsp: Ein Ton soll eine Oktave höher gespielt werden (doppelte Frequenz): Sample im RAM oder Rom ist mit 44,1 kHz gespeichert -> nur jeden 2. Wert vom Sample abspielen -> Ton Oktave höher
Problem: Tonerhöhung, aber keine Frequenzverdopplung !!
Lösung: Interpolation
Interpolation: Bsp: Tonhöhe soll um das 1,5 fache erhöht werden -> fehlende Werte im Originalsample im ROM oder RAM -> neues Adressierungsschema (Integer Part, Fractional Part), Zwischenwerte müssen berechnet werden.
3. Klangerzeugungsverfahren3.1 Wavetable - 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. Klangerzeugungsverfahren3.2 FM - Synthese
3. Klangerzeugungsverfahren3.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
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
4.1 MIDI - Standards
- 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
- 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.3 Software - Merkmale
4. MIDI (Musical Instruments Digital Interface)
4.4 Midi Message Spezifikationen
4. MIDI (Musical Instruments Digital Interface)
ÜBUNG
The EndThe End
Quellen
http://emu10k1.sourceforge.nethttp://www.tu-chemnitz.dehttp://www.creative.com
http://www.midi.orgDatasheets STAC9708, EMU10k1,OPL2,FX8010Google und verschiedene andere Internetseiten