Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
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.
Audio buffer is a class to work with audio data. It provides a thin wrapper with a bunch of audio methods for any audio data source — AudioBuffer
, Buffer
, TypedArray
, Array
, NDarray
or any Object
with get/set methods. It stores data as an ndarray, so any ndarray packages can be used over audio buffers.
var AudioBuffer = require('audio-buffer');
//create audio buffer from any type of array
var buffer = new AudioBuffer([0,0,1,1], {channels: 2});
//Create audio buffer from data source. Pass audio data format as a second argument.
//Format only affects the way to access raw data, it can be changed at any time.
var buffer = new AudioBuffer(data, format);
//Format of data
buffer.format;
//NDarray with the data
buffer.data;
//Raw data object - array, buffer, etc.
buffer.rawData;
//Duration of the underlying audio data, in seconds
buffer.duration;
//Number of samples per channel
buffer.length;
buffer.samplesPerFrame;
//Sample rate
buffer.sampleRate;
//Number of channels
buffer.channels;
buffer.numberOfChannels;
//Get sample value
buffer.get(channel, index);
//Set sample value
buffer.set(channel, index, value);
//Get array containing the data for the channel
buffer.getChannelData(channel);
//Fill buffer with the value or function
buffer.fill(function (channel, idx) { return 0; });
//Return array of arrays with the inner data
buffer.toArray();
pcm-util — utils for audio formats.
ndsamples — audio-wrapper for ndarrays.
ndarray — generic multidimensional arrays.
FAQs
AudioBuffer class for node/browser
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
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.