240 likes | 320 Views
Explore the components, functions, and signal pathways of audio adapters, including A/D conversion, sound synthesis methods, MIDI standards, and more. Gain insights into sampling techniques, AC-97 standards, and DSP operation in creating high-quality audio outputs.
E N D
Gliederung 1. Aufgaben eines Audioadapters1.1 Komponenten 1.2 Ein / Ausgänge und Signalwege (Grober Überblick)2. Funktionsweise2.1 A/D Wandler + Sampling 2.2 AC 97 2.3 DSP3. Klangerzeugungsverfahren3.1 Wavetable - Synthese 3.2 FM - Synthese4. Midi4.1 Midi – Standards 4.2 Hardware Merkmale 4.3 Software Merkmale 4.4 Midi Message Spezifikationen5. Schlusswort
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 1.1 Komponenten
1. Aufgaben eines Audioadapters 1.2 Ein und Ausgänge + Signalwege
2. Funktionsweise 2.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)
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.
2. Funktionsweise 2.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. 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)
2. Funktionsweise 2.2 AC 97 Standard (Variable Samplingraten) • 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. Funktionsweise 2.3 DSP 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. Funktionsweise 2.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
3. Klangerzeugungsverfahren 3.1 Wavetable - Synthese • 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 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. 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 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
4. MIDI (Musical Instruments Digital Interface) 4.2 Hardware - Merkmale • 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.3 Software - 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.4 Midi Message Spezifikationen
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