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/