Blog sur l’univers Apple et les métiers créatifs

Core Audio

Core Audio est une interface logiciel sur OS X et iOS servant à faire le lien entre les pilotes du matériel audio (hardware) et les applications audio.

  • Le core audio permet d’optimiser la gestion du son temps-réel (faible latence requise)
  • Le core audio est un peu un lien entre matériel (exemple courant : carte son) et applications (exemple : Pro Tools).

Le Core Audio peut être décomposé en plusieurs couches de programmation, contenant différents services :

core_audio_layers

(Source image : developer.apple.com)

Low-level Services = Services bas-niveau

  • I/O Kit = interaction avec les pilotes (drivers).
  • Audio HAL = interface indépendante en lien avec le matériel audio.
  • Core MIDI = gestion des flux MIDI et appareils MIDI.
  • Host Time Services = accès à l’horloge de l’ordinateur.

Mid-level Services = Services mi niveau

  • Audio Converter Services = autorisent les applications à travailler aux formats audio des convertisseurs.
  • Audio File Services = permet de lire et écrire des données audio sur le disque.
  • Audio Unit Services et Audio Processing Graph Services = autorisent les applications à travailler avec les plug-ins de traitement du signal.
  • Audio File Stream Services = permet de construire des applications streaming à travers une connexion internet.
  • Core Audio Clock Services = permet de synchroniser  l’audio et le MIDI lors de la conversion.

High-level Services = Services haut-niveau

  • Audio Queue Services = permet d’enregistrer, de lire, de synchroniser, de répéter de l’audio. Utilise des codecs nécessaires pour l’utilisation de formats compressés.
  • The AVAudioPlayer class = fournit une interface pour lire, répéter, rembobiner ou avancer rapidement de l’audio.
  • Extended Audio File Services = combinent les fonctions de l’Audio File Services et de l’Audio Converter services.
  • OpenAL = implémentation Core Audio de OpenAL.