Interfaces audio

Transcription

Interfaces audio
ACQUISITION DES DONNÉES
Séminaire Design II, Février 2012
Jérôme Genest
UTILISER L’ADC D’UNE CARTE DE SON
¢  Échantillonnage
— 
— 
Représentation fidèle du signal analogique
Outils de traitement du signal numérique
¢ 
Disponibles et valides
¢  Autres
— 
respectant Nyquist
options:
PLL électronique (?)
VÉRIFIEZ LES SPÉCIFICATIONS
TECHNIQUES DE VOTRE CARTE DE SON
¢  Exemple
!!!
SoundBlaster X-Fi
Technical Specifications
Line-In Full Scale Input: 2.0 Vrms
Stereo ????
Line-Out Full Scale Output: 2.0 Vrms
Microphone Input Impedance: 4.0K Ohms
Line-In Impedance: 10K Ohms
Aux In Full Scale Input (Frontpanel): 2.0 Vrms
Aux In Input Impedance (Frontpanel): 10k Ohms
Mic In FP Input Impedance: 4.0K Ohms
24-bit Analog-to-Digital conversion of analog inputs: 96kHz sample rate
24-bit Digital-to-Analog conversion of digital sources: 96kHz to analog 7.1 speaker output
24-bit Digital-to-Analog conversion of stereo digital sources: 192kHz to stereo output
16-bit to 24-bit recording sampling rates: 8,11.025,16, 22.05, 24, 32, 44.1, 48 and 96kHz
Playback sampling rates: up to 192kHz
ASIO 2.0 support: 16bit/44.1kHz,16-bit/48kHz, 24-bit/44.1kHz 24-bit/48kHz and 24-bit/96kHz
with direct monitoring
S/PDIF output sampling rate: 44.1, 48 or 96 kHz
Enhanced SoundFont support: Up to 24-bit resolution
X-RAM: 64MB
Interface: PCI Express (compatible with x1, x4 or x16 slot)
LINE LEVEL VS MIC LEVEL
¢ 
“Line-In”
— 
Signal préamplifié
Connecteurs: RCA, fiche ¼…
— 
Plusieurs standards “line-in”
— 
¢ 
Professionnel
— 
— 
¢ 
Grand public
— 
— 
¢ 
600 Ohms
dBu (unloaded) 0 dBu == 1 mW dans 600 Ohms (0.7746 Vrms)
•  Europe: nominal +6 dBu (1.55 Vrms)
•  US: nominal +4 dBu (1.28 Vrms)
> 1000 Ohms
dBv (volts) 0 dBv == 1 mW dans 1000 Ohms (1 Vrms)
“Mic”
— 
De 100 à 1000 fois plus faible que le line level
¢ 
mV RMS
POUR NE PAS SAUTER SON ENTRÉE AUDIO
¢  Bien
savoir si vous utilisez une entrée ‘mic’ ou ‘line’
¢  Placer un limiteur de tension à l’entrée de la carte
— 
— 
mV pour une entrée ‘mic’
~ +-1 V pour une entrée ‘line’
¢ 
Ampli suiveur avec alimentation à tension réduite
¢  Limiter
plus que moins
¢  Faire des acquisitions et déterminer quel est la
tension de saturation du convertisseur
¢  Ajuster le limiteur.
¢  Acheter
— 
une interface audio USB
Stereo !
¢ 
imic: http://store.griffintechnology.com/imic
AUTRES VÉRIFICATIONS
¢  Identifier
audio
— 
— 
les filtres présents dans votre carte
Passe-haut (couplage AC)
Passe-bas (anti-repliement).
¢  Ajouter
les filtres nécessaires s’il en manque.
ACQUISITION: ASPECTS LOGICIELS
LE TAMPON CIRCULAIRE (RING BUFFER)
¢ 
¢ 
L’ADC audio remplit le vecteur
Notre responsabilité de lire aussi vite
— 
Le délai peut être aussi important que le temps correspondant
à la taille du vecteur.
¢ 
— 
Vider le vecteur en débutant.
Si dépassement : perte d’échantillons.
Exemple d’API: Direct Sound sur windows
/Dev/audio/
sur Unix
FONCTIONS HAUT-NIVEAU
¢  Enregistrement
prédéterminée.
— 
Aucune garantie de contiguité si on fait deux appels
consécutifs.
¢  Exemple
— 
d’un bloc de son d’une durée
Matlab:
y = wavrecord(n,Fs,channels)
¢  Utilisation
d’un déclenchement externe (trig)
lorsque le laser débute un balayage.
— 
Délai possible à caractériser
Exemple d’API: Windows multimedia functions
EXEMPLE DE CODE EN C AVEC WINDOWS
¢ 
http://www.techmind.org/wave/
UTILISATIONS DE TAMPONS MULTIPLES ET
FONCTIONS DE RAPPEL
¢ 
Double buffering & Callbacks
Les API évoluées permettent de spéficier plusieurs
buffers au composant audio.
¢  Une fonction est appellée lorsqu’un tampon est plein.
(Callback)
¢ 
— 
— 
¢ 
La fonction a alors le choix de ce qu’elle fait avec les
données
Pour poursuivre l’enregistrement, elle replace le tampon
vide dans la file d’attente.
Principe général on enregistre dans un second
tampon pendant qu’on lit le premier.
— 
— 
Délai = taille des buffers
Mécanique du vecteur circulaire remplacée ou cachée au
programmeur
CALLBACKS
¢  Attention,
selon l’OS les fonctions de rappel
peuvent être appelées lors d’une interruption
(interupt)
— 
Implications sur le code:
On ne peut déplacer de la mémoire
¢  Les registres ne sont pas nécessairement valides
¢  …
¢ 
Exemple d’API: Windows multimedia functions
Apple: Core Audio / Audio queues
MATLAB & SIMULINK
¢ 
y = wavrecord(n,Fs,channels)
¢  From
audio device
REFERENCES
¢ 
Specs de carte de son
— 
¢ 
Line Level
— 
¢ 
http://msdn.microsoft.com/en-us/library/bb219826(VS.85).aspx
Windows Multimedia
— 
— 
¢ 
http://en.wikipedia.org/wiki/Circular_buffer
DirectSound
— 
¢ 
http://en.wikipedia.org/wiki/Line-level
Vecteur circulaire
— 
¢ 
http://support.creative.com/kb/ShowArticle.aspx?sid=52910
http://www.techmind.org/wave/
http://msdn.microsoft.com/en-us/library/ms713735(VS.85).aspx
Apple Core Audio:
— 
http://developer.apple.com/referencelibrary/MusicAudio/