Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
audio-buffer
Advanced tools
The audio-buffer npm package provides a simple and efficient way to handle audio data in the form of buffers. It allows you to create, manipulate, and process audio buffers, which are essential for various audio processing tasks such as audio synthesis, effects, and analysis.
Creating an Audio Buffer
This feature allows you to create a new audio buffer with a specified number of channels and samples per channel. In this example, a stereo buffer with 44100 samples per channel is created.
const AudioBuffer = require('audio-buffer');
const buffer = new AudioBuffer(2, 44100); // 2 channels, 44100 samples per channel
Filling an Audio Buffer with Data
This feature allows you to fill an audio buffer with data. In this example, each channel of the buffer is filled with a sine wave.
const AudioBuffer = require('audio-buffer');
const buffer = new AudioBuffer(2, 44100);
for (let channel = 0; channel < buffer.numberOfChannels; channel++) {
const data = buffer.getChannelData(channel);
for (let i = 0; i < data.length; i++) {
data[i] = Math.sin(2 * Math.PI * i / 44100); // Example: filling with a sine wave
}
}
Copying Audio Buffer Data
This feature allows you to copy data from one audio buffer to another. In this example, data from buffer1 is copied to buffer2.
const AudioBuffer = require('audio-buffer');
const buffer1 = new AudioBuffer(2, 44100);
const buffer2 = new AudioBuffer(2, 44100);
buffer2.copyToChannel(buffer1.getChannelData(0), 0);
buffer2.copyToChannel(buffer1.getChannelData(1), 1);
Resampling an Audio Buffer
This feature allows you to resample an audio buffer to a different sample rate. In this example, the buffer is resampled from 44100 samples per channel to 22050 samples per channel.
const AudioBuffer = require('audio-buffer');
const resample = require('audio-buffer-resample');
const buffer = new AudioBuffer(2, 44100);
const resampledBuffer = resample(buffer, 22050); // Resample to 22050 samples per channel
The audio-buffer-utils package provides a set of utility functions for working with audio buffers, such as copying, slicing, and filling buffers. It offers more specialized functions compared to audio-buffer, making it a good complement for more advanced audio buffer manipulations.
The audio-context package provides a simplified interface for creating and managing Web Audio API contexts. While it focuses more on the context management rather than buffer manipulation, it can be used in conjunction with audio-buffer for comprehensive audio processing tasks.
The audio-buffer-list package allows you to manage a list of audio buffers, providing functionalities such as concatenation and splitting of buffers. It is useful for handling multiple audio buffers in a more organized manner, which can complement the basic buffer manipulation provided by audio-buffer.
AudioBuffer ponyfill. Provides useful constructor for Web-Audio API AudioBuffer, if available, otherwise provides optimal AudioBuffer implementation for node/browsers. Useful instead of Buffer in audio streams (see @audiojs components).
var AudioBuffer = require('audio-buffer')
//Create audio buffer from a data source or of a length.
//Data is interpreted as a planar sequence of float32 samples.
//It can be Array, TypedArray, ArrayBuffer, Buffer, AudioBuffer, DataView, NDArray etc.
var buffer = new AudioBuffer(channels = 2, data|length, sampleRate = 44100, options?)
//Duration of the underlying audio data, in seconds
buffer.duration
//Number of samples per channel
buffer.length
//Default sample rate is 44100
buffer.sampleRate
//Default number of channels is 2
buffer.numberOfChannels
//Get array containing the data for the channel (not copied)
buffer.getChannelData(channel)
//Place data from channel to destination Float32Array
buffer.copyFromChannel(destination, channelNumber, startInChannel = 0)
//Place data from source Float32Array to the channel
buffer.copyToChannel(source, channelNumber, startInChannel = 0)
Options object can be passed as last argument with the following:
floatArray
— type of array for data, defaults to Float64Array
.context
: custom audio context, default context is audio-context module.isWAA
— if WebAudioAPI AudioBuffer should be created. Use false
for emulated buffers - in nodejs that is always false. That can be handy in case if you need to create buffer from subarrays to avoid cloning the data.FAQs
AudioBuffer class for node/browser
The npm package audio-buffer receives a total of 0 weekly downloads. As such, audio-buffer popularity was classified as not popular.
We found that audio-buffer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.