
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
quick-sonic-worklet
Advanced tools
Quick-Sonic-Worklet is a TypeScript library designed to streamline the downloading, decoding, and playback of audio files using Web Workers and AudioWorklet. It supports multi-track playback, master volume control, and professional-grade audio effects.
Quick-Sonic-Worklet is a TypeScript library designed to streamline the downloading, decoding, and playback of audio files using Web Workers and AudioWorklet. It supports multi-track playback, master volume control, and professional-grade audio effects.
decodeAudioData and AudioWorklet for high-performance audio decoding and playback.npm install quick-sonic-worklet
import { AudioPreloader } from "./AudioPreloader";
import { AudioLoadWorker } from "./AudioLoader.worker";
const fileMap = {
track1: "audio/track1.mp3",
track2: "audio/track2.mp3",
};
const preloader = new AudioPreloader(
"https://example.com/",
fileMap,
AudioLoadWorker
);
await preloader.loadAll();
await preloader.decodeAll();
await preloader.initAudioWorklet(workletUrl);
preloader.playAudio("track1", true, 1.5); // loop, 1.5x speed
preloader.adjustVolume("track1", 0.8);
preloader.stopAudio("track1");
preloader.adjustEQ("track1", [
{ frequency: 60, gain: 5 }, // Bass boost (+5dB)
{ frequency: 1000, gain: -3 }, // Mid cut (-3dB)
{ frequency: 8000, gain: 2 }, // Treble boost (+2dB)
]);
| Type | Description |
|---|---|
chorus | Rich, layered sound with delayed signal |
flanger | Jet-like sweeping effect |
vibrato | Pitch modulation |
tremolo | Amplitude modulation |
ring | Ring modulation |
square / triangle / sawtooth | Waveform-based modulation |
preloader.adjustModulation("track1", {
type: "chorus", // Modulation type
depth: 0.5, // 0.0 ~ 1.0
rate: 2.0 // Hz
});
| Preset | Decay | Diffusion | Description |
|---|---|---|---|
small | 0.70 | 0.40 | Small room |
medium | 0.80 | 0.50 | Medium room |
large | 0.85 | 0.55 | Large room |
hall | 0.90 | 0.60 | Concert hall |
plate | 0.88 | 0.70 | Plate reverb |
cathedral | 0.95 | 0.65 | Cathedral |
preloader.adjustEffects("track1", {
reverb: 0.5, // Wet/dry mix (0~1)
roomSize: "hall" // Preset
});
preloader.adjustEffects("track1", {
reverb: 0.5,
reverbDecay: 0.9, // Decay time (0~1)
reverbDiffusion: 0.6 // Diffusion (0~1)
});
preloader.adjustEffects("track1", {
delay: 300, // Delay time in ms (0~2000)
echo: 200 // Echo time in ms (0~1000, multi-tap)
});
preloader.adjustDrive("track1", {
distortion: 0.5, // Hard clipping (0~1)
overdrive: 0.3, // Soft clipping (0~1)
fuzz: 0.7 // Asymmetric clipping + harmonics (0~1)
});
preloader.adjustDynamics("track1", {
threshold: -24, // dB (-60 ~ 0)
ratio: 4 // Compression ratio (1 ~ 20)
});
preloader.adjustLatency("track1", 50); // 50ms delay
preloader.adjustLatencySamples("track1", 2400); // 2400 samples delay
preloader.setVisualizerDataHandler((data) => {
console.log("Band levels:", data);
});
preloader.setVisualizerBands("", [
{ startFrequency: 20, endFrequency: 200 },
{ startFrequency: 200, endFrequency: 2000 },
{ startFrequency: 2000, endFrequency: 20000 },
]);
preloader.setVisualizerBufferSize(256); // 32~1024
| Method | Description |
|---|---|
loadAll() | Download all audio files |
decodeAll() | Decode all downloaded audio |
initAudioWorklet(url) | Initialize AudioWorklet |
playAudio(key, loop?, rate?) | Play a track |
stopAudio(key) | Stop a track |
clearAudio(key) | Remove track from memory |
adjustVolume(key, volume) | Set track volume (0~1) |
adjustEQ(key, bands) | Apply EQ settings |
adjustModulation(key, settings) | Apply modulation |
adjustEffects(key, settings) | Apply delay/reverb/echo |
adjustDrive(key, settings) | Apply drive effects |
adjustDynamics(key, settings) | Apply compression |
adjustLatency(key, ms) | Set latency in ms |
adjustLatencySamples(key, samples) | Set latency in samples |
adjustNormalize(key, flag) | Enable/disable normalization |
setMasterVolume(volume) | Set master volume |
setLowPassFilter(cutoff, Q) | Apply low-pass filter |
setVisualizerDataHandler(callback) | Set visualizer callback |
setVisualizerBands(key, bands) | Configure visualizer bands |
setVisualizerBufferSize(size) | Set FFT buffer size |
resumeContext() | Resume AudioContext |
suspendContext() | Suspend AudioContext |
releaseAllResources() | Release all resources |
| Property | Description |
|---|---|
progress | Loading progress (0~1) |
downloadedCount | Downloaded file count |
downloadedTotal | Total file count |
loaded | All files loaded |
MIT License
FAQs
Quick-Sonic-Worklet is a TypeScript library designed to streamline the downloading, decoding, and playback of audio files using Web Workers and AudioWorklet. It supports multi-track playback, master volume control, and professional-grade audio effects.
We found that quick-sonic-worklet demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.