L’Audio sur PC

Preview:

DESCRIPTION

L’Audio sur PC. Comparaison Numérique vs Analogique Comparaison Audio sur PC vs Hardware dédié (DSP) Rmq : beaucoup de simulitudes avec la vidéo, mais débit vidéo bcp + élevé!. Dsp: les +. + optimisé, « puissant » pour le traitement de signal - PowerPoint PPT Presentation

Citation preview

L’Audio sur PC

• Comparaison Numérique vs Analogique

• Comparaison Audio sur PC vs Hardware dédié (DSP)

• Rmq: beaucoup de simulitudes avec la vidéo, mais débit vidéo bcp + élevé!

Dsp: les +

• + optimisé, « puissant » pour le traitement de signal

• + travail échantillon par éch => latence = 1 échantillon

• + produit final embarqué, simple , pas cher, …

DSP: les -

• - Difficultés de développement (connaissance architecture, langage bas-niveau)

• - Code peu réutilisable• - Entrées / sorties limitées • - Cher pour un petit développeur (pas

possible à la maison!)• - Communication avec d’autres soft et

avec l’utilisateur (clavier, écran,…)

PC: les +

• + On en a 1 chez soi!• + Langage de programmation haut-niveau• + Communication autres applications soft /

utilisateur• + Code réutilisable (plugins)• + Sortie carte son: dével applications

indépendantes du matériel grâce aux drivers• + Disque dur (lecture et ecriture) de fichiers,

stockés sous différents formats (waves, mp3, …)

PC: les -

• - pas embarqué

• - latence (on travaille sur des blocs d’éch.)

• - OS pas temps réel

Les drivers: Introduction

• Qu’est-ce qu’un driver (pilote)

• Présentation des drivers les plus courants– (MME)– DirectSound– ASIO– Linux: OSS et ALSA

Présentation

• On entend par driver un ensemble d’APIs (application programming interfaces) permettant l’accès à un composant matériel sans devoir écrire du code spécifique à ce matériel.

• L’intérêt majeur d’un driver est de pouvoir utiliser un même et unique code pour tout matériel supportant ce driver.

Présentation (suite)

• Le terme driver est utilisé à tort car derrière les APIs, il existe un vrai driver fourni par le fabriquant du matériel mais ce terme, que nous utiliserons dans la suite, est le plus courant.

• L’API accède au module du vrai driver chargé par le système au démarrage.

• Certaines fonctionnalités peuvent ne pas être prises en charge par le driver

Drivers les plus courants

• (MME)• DirectSound• ASIO• OSS• ALSA

MME

• MultiMedia Extension (Windows)

• Utilisé depuis Windows 3.0. Fait partie intégrante de l’O.S.

DirectSound

• Composant de DirectX (Windows)

• Fait partie intégrante de l’O.S. Windows

• Plus simple, plus efficace et de latence plus faible que MME.

• Possède également des fonctions 3D

ASIO

• Développé par Steinberg

• Audio pro, très faible latence

LINUX

• OSS

• ALSA

Comment ça marche: Direct Sound

• 1 buffer pour entrée (playback) et/ou 1 buffer pour sortie (capture)

• Le buffer est subdivisé en partitions• Dès que la « tête » de lecture (resp. écriture)

passe d’une partition à l’autre, un événement est généré pour signaler qu’un nouveau bloc d’échantillons peut être écrit (resp. lu)

• Taille du buffer et nombres de partitions paramétrable

Les fonctions « callback »

• Un pointeur de fonctions est donné à chaque thread

• Avantage: on ne doit pas reprogrammer les fonctions exécutées dans les threads

• Permet de créer des plugins

Les plugins

• Code compilé en shared et chargé dynamiquement

• Permet de faire évoluer une application de base (host) (pour les effets, les entrées/sorties)

• Plugin standard: VST

Fichiers wave

• Header

• Échantillons entrelacés

Autres formats de fichiers:

• MP3, Ogg Vorbis, etc.: on peut les ajouter à une application facilement (par ex. via plugins)

Présentation du travail

• 1 application

• Entrée/sortie steréo

• 4 combinaisons entrée/sortie possible (fichier wave ou dsound)

• Dsound configurable (taille buffer et nombre de partitions) pour entrée et sortie (lantence!)

• Plugin de traitement

Exemple de plugin:

• Voir code

• Compilation d’un plugin

Outils à disposition

• Application

• Plugin exemple

• Pas obligatoire: Compilateur gratuit, librairies nécessaires, Makefile

Remarques pour le travail

• Configuration entrée/sortie via fichier• Pas de messages d’erreur, peut donc planter si

mauvaise opération• Taille bloc d’entrée doit être identique en entrée

et sortie• Réglages controleur de volume• 16 bits, 44kHZ, stereo• Testé sur plusieurs pcs, mais toujours en

développement (entrée sature sur un pc)• Possibilité d’une interface graphique

Remarques travail (suite)

• Nom du fichier plugin et du module à exporter: modifier le prefixe « bypass »(voir exemple)

• Echantillons dans le plugin au format Float normalisés entre –1 et 1

Vocabulaire

• blocksize= nombre de frames d’une partition.

• 1 Frame= 1 couple échantillon (1 échantillon par canal)

Recommended