Security News
RubyGems.org Adds New Maintainer Role
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.
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.
Basic audio data container. Provides lightweight Web Audio API AudioBuffer implementation. Useful instead of Buffer in audio streams, @audiojs components and other audio applications. Can be used as a ponyfill.
Create audio buffer for audio context
based on options
.
Default context
is audio-context singleton. null
context can be used to indicate context-free buffer instance, eg. in nodejs.
Available options:
length
— number of samples, minimum is 1.sampleRate
— default sample rate is 44100.numberOfChannels
— default number of channels is 1.Duration of the underlying audio data, in seconds.
Number of samples per channel.
Default sample rate is 44100.
Default number of channels is 1.
Get array containing the data for the channel (not copied).
Place data from channel to destination Float32Array.
Place data from source Float32Array to the channel.
FAQs
AudioBuffer class for node/browser
The npm package audio-buffer receives a total of 25,361 weekly downloads. As such, audio-buffer popularity was classified as 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
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.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.