Un complemento de audio , en un software informático, es un complemento que puede añadir o mejorar funciones relacionadas con el audio en un programa informático , normalmente una estación de trabajo de audio digital . Dichas funciones pueden incluir el procesamiento de señales digitales o la síntesis de sonido . [1] [ página necesaria ] Los complementos de audio suelen proporcionar su propia interfaz de usuario , que a menudo contiene widgets de interfaz gráfica de usuario (GUI) que se pueden utilizar para controlar y visualizar los parámetros de audio del complemento. [2]
Hay tres grandes clases de complementos de audio: los que transforman muestras de audio existentes , los que generan nuevas muestras de audio a través de la síntesis de sonido y los que analizan muestras de audio existentes . [2] Aunque todos los tipos de complementos pueden realizar técnicamente análisis de audio, solo formatos específicos proporcionan un mecanismo para que los datos de análisis se devuelvan al host. [3]
El programa utilizado para cargar dinámicamente complementos de audio se denomina host de complementos. Algunos ejemplos de hosts son Bidule , Gig Performer , Mainstage , REAPER y Sonic Visualiser . Los complementos también se pueden utilizar para alojar otros complementos. [4] La comunicación entre el host y los complementos está determinada por una interfaz de programación de aplicaciones ( API ) de complementos. La API declara funciones y estructuras de datos que el complemento debe definir para que un host de complementos pueda utilizarlos. Además, se puede proporcionar una especificación funcional que define cómo debe responder el complemento a las llamadas de función y cómo debe esperar el host gestionar las llamadas de función al complemento. La especificación también puede incluir documentación sobre el significado de las variables y las estructuras de datos declaradas en la API. Los archivos de encabezado de la API , la especificación, las bibliotecas compartidas , la licencia y la documentación a veces se agrupan en un kit de desarrollo de software (SDK). [5] [6] [7]