BaseAudioContext
================

La interfaz `BaseAudioContext` de la API de Audio Web actúa como una definición base para los gráficos de procesamiento de audio en línea y fuera de línea, como se representa mediante `AudioContext` (en-US) y `OfflineAudioContext` (en-US) respectivamente. No use `BaseAudioContext` directamente; use sus funciones a través de una de estas dos interfaces heredadas.

`BaseAudioContext` puede ser destino de eventos, por lo que implementa la interfaz `EventTarget`.

EventTarget

BaseAudioContextPropiedades de instancia
------------------------

`BaseAudioContext.audioWorklet` (en-US) Read only  Contexto seguro

Devuelve el objeto `AudioWorklet` (en-US), que se puede usar para crear y administrar `AudioNode` en los que el código JavaScript que implementa la interfaz `AudioWorkletProcessor` (en-US) se ejecuta en segundo plano para procesar datos de audio.

`BaseAudioContext.currentTime` (en-US) Read only 

Devuelve un `double` que representa un tiempo de hardware cada vez mayor en segundos utilizado para la programación. Comienza en `0`.

`BaseAudioContext.destination` (en-US) Read only 

Devuelve un `AudioDestinationNode` (en-US) que representa el destino final de todo el audio en el contexto. Se puede considerar como el dispositivo de reproducción de audio.

`BaseAudioContext.listener` (en-US) Read only 

Devuelve el objeto `AudioListener` (en-US), utilizado para la espacialización 3D.

`BaseAudioContext.sampleRate` (en-US) Read only 

Devuelve un `float` que representa la frecuencia de muestreo (en muestras por segundo) utilizada por todos los nodos en este contexto. La frecuencia de muestreo de un `AudioContext` (en-US) no se puede cambiar.

`BaseAudioContext.state` (en-US) Read only 

Devuelve el estado actual de `AudioContext`.

Métodos de instancia
--------------------

*También implementa métodos de la interfaz* `EventTarget`.

`BaseAudioContext.createAnalyser()` (en-US)

Crea un `AnalyserNode`, que se puede usar para exponer datos de tiempo y frecuencia de audio y, por ejemplo, para crear visualizaciones de datos.

`BaseAudioContext.createBiquadFilter()`

Crea un `BiquadFilterNode` (en-US), que representa un filtro de segundo orden configurable como varios tipos de filtros comunes diferentes: paso alto, paso bajo, paso banda, etc.

`BaseAudioContext.createBuffer()` (en-US)

Crea un objeto `AudioBuffer` nuevo y vacío, que luego se puede completar con datos y reproducir a través de un `AudioBufferSourceNode` (en-US).

`BaseAudioContext.createBufferSource()` (en-US)

Crea un `AudioBufferSourceNode` (en-US), que se puede usar para reproducir y manipular datos de audio contenidos en un objeto `AudioBuffer`. Los `AudioBuffer` se crean usando `AudioContext.createBuffer()` (en-US) o los devuelve `AudioContext. decodeAudioData()` (en-US) cuando decodifica con éxito una pista de audio.

`BaseAudioContext.createConstantSource()` (en-US)

Crea un objeto `ConstantSourceNode` (en-US), que es una fuente de audio que emite continuamente una señal de sonido monoaural (de un canal) cuyas muestras tienen el mismo valor.

`BaseAudioContext.createChannelMerger()` (en-US)

Crea un `ChannelMergerNode` (en-US), que se usa para combinar canales de varias transmisiones de audio en una sola transmisión de audio.

`BaseAudioContext.createChannelSplitter()` (en-US)

Crea un `ChannelSplitterNode` (en-US), que se utiliza para acceder a los canales individuales de una transmisión de audio y procesarlos por separado.

`BaseAudioContext.createConvolver()` (en-US)

Crea un `ConvolverNode` (en-US), que se puede usar para aplicar efectos de convolución a su gráfico de audio, por ejemplo, un efecto de reverberación.

`BaseAudioContext.createDelay()` (en-US)

Crea un `DelayNode` (en-US), que se usa para retrasar la señal de audio entrante en cierta cantidad. Este nodo también es útil para crear bucles de retroalimentación en un gráfico de la API de Audio Web.

`BaseAudioContext.createDynamicsCompressor()` (en-US)

Crea un `DynamicsCompressorNode` (en-US), que se puede usar para aplicar compresión acústica a una señal de audio.

`BaseAudioContext.createGain()` (en-US)

Crea un `GainNode` (en-US), que se puede usar para controlar el volumen general del gráfico de audio.

`BaseAudioContext.createIIRFilter()` (en-US)

Crea un `IIRFilterNode` (en-US), que representa un filtro de segundo orden configurable como varios tipos de filtros comunes diferentes.

`BaseAudioContext.createOscillator()` (en-US)

Crea un `OscillatorNode` (en-US), una fuente que representa una forma de onda periódica. Básicamente genera un tono.

`BaseAudioContext.createPanner()` (en-US)

Crea un `PannerNode` (en-US), que se usa para espacializar una transmisión de audio entrante en un espacio 3D.

`BaseAudioContext.createPeriodicWave()` (en-US)

Crea un `PeriodicWave` (en-US), que se usa para definir una forma de onda periódica que se puede usar para determinar la salida de un `OscillatorNode` (en-US).

`BaseAudioContext.createScriptProcessor()` (en-US) 
Obsoleto

Crea un `ScriptProcessorNode` (en-US), que se puede usar para el procesamiento de audio directo a través de JavaScript.

`BaseAudioContext.createStereoPanner()` (en-US)

Crea un `StereoPannerNode` (en-US), que se puede usar para aplicar panoramización estéreo a una fuente de audio.

`BaseAudioContext.createWaveShaper()` (en-US)

Crea un `WaveShaperNode` (en-US), que se usa para implementar efectos de distorsión no lineal.

`BaseAudioContext.decodeAudioData()` (en-US)

Decodifica de forma asíncrona los datos del archivo de audio contenidos en un `ArrayBuffer`. En este caso, `ArrayBuffer` generalmente se carga desde un atributo `response` de `XMLHttpRequest` después de establecer `responseType` en `arraybuffer`. Este método solo funciona en archivos completos, no en fragmentos de archivos de audio.

Eventos
-------

`statechange` (en-US)

Se activa cuando el estado de `AudioContext` cambia debido a la llamada de uno de los métodos de cambio de estado (`AudioContext.suspend` (en-US), `AudioContext.resume` (en-US), o { {domxref("AudioContext.close")}}).

Ejemplos
--------

Declaración básica de contexto de audio:


```js
const audioContext = new AudioContext();
```


Variante entre navegadores:


```js
const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioContext = new AudioContext();

const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;
```

Especificaciones
----------------

| Specification |
| --- |
| Web Audio API # BaseAudioContext |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Véase también
-------------

* Uso de la API de Audio Web (en-US)
* `AudioContext` (en-US)
* `OfflineAudioContext` (en-US)