Catalog npm
PACKAGE EXPLORERView in registry

8bit-sfx

npm

8888 chip sound effects across 44 categories, synthesized on demand in the browser or Node - no audio files, no dependencies. Game SFX and musical sound design, each with a catalog description; optional WAV export.

8bitchiptunedrum-samplesgame-audiomusicproceduralretrosfxsound-effectssynthesiswavwebaudio
Versions collected2
Direct dependencies0From release 1.0.0
Last observed20 Oct, 21:21 UTC

README

Current package documentation

8bit-sfx

Version: 1.0.0

8888 chip sound effects across 44 categories — synthesized on demand, not downloaded. There are no audio files in this package. Every effect is a deterministic function of its name, so render('kick_003') produces the same samples in a browser, in Node, today and in five years. Game SFX and musical sound design, every effect carrying a catalog description so you can find what you need by reading instead of auditioning. MIT licensed — use them in anything.

Try them: https://cportka.github.io/8bit-sfx/ — the whole library, synthesized live in your browser as you click.

Install & use

npm install 8bit-sfx
import { SfxPlayer, render, renderWav, describe, effectNames } from '8bit-sfx';

// Play — no preloading, no fetching, nothing to bundle
const sfx = new SfxPlayer();
button.addEventListener('click', () => {
  sfx.resume();              // browsers gate audio on a user gesture
  sfx.play('kick_003');      // synthesized on first use, then cached
  sfx.play('bass_120', { volume: 0.8, rate: 1.0 });
});

describe('bass_120');        // "wobble bass — ramp LFO on amp gate, 8.6 Hz at A1"
render('snare_012');         // Float32Array, 22050 Hz mono — feed it anywhere
renderWav('rpg_levelup');    // Uint8Array: a complete .wav file, if you want a file
effectNames();               // all 8888 names, no synthesis

Dependency-free and build-free — pure ES modules, no bundler required, no assets to copy. The package is a 377 kB download (3.0 MB unpacked): ~940 KB of engine plus the 2 MB catalog. No audio ships — 8888 sounds cost kilobytes of code instead of ~130 MB of WAVs.

API

render(name)Float32Array of samples in [-1, 1) at 22050 Hz
renderPcm(name)Uint8Array of 8-bit unsigned PCM
renderWav(name)Uint8Array containing a complete .wav file
describe(name)the catalog blurb — what makes this effect different
duration(name) / describeFull(name)length in seconds / full metadata entry
effectNames() / CATEGORIES / COUNTthe catalog's shape, without synthesizing
categoryCharacter(cat)the one-line description of a category
loadManifest()the prebuilt catalog: every effect's description and duration
new SfxPlayer()Web Audio playback: resume(), play(name, {volume, rate}), muted

Categories

Each category holds 202 effects, named <category>_000 … <category>_201. (The one exception is rpg: rpg_000–rpg_173 plus the 28 ported sounds under their event names.)

Game sounds

CategoryCharacter
jumprising square hops, snappy or floaty tails
coinbright two-note pickup blips, classic coin grab
laserfast downward zaps, clean or warbled pew
explosionnoise booms, dry cracks to sub-heavy rolling blasts
poweruprising scale fanfares, bright pickup arpeggios
hitblunt impacts, noise burst over a diving low thud
bliptiny UI ticks and menu selects, crisp square clicks
alarmalternating two-tone sirens, frantic to steady
dronesustained bass hums, gentle to seasick wobble
jingleshort melodic stingers, 3-6 notes resolving upward
ambientwind gusts, cricket chorus, cave drips, thunder, rain, shimmer pads
uimenu clicks, hovers, toggles, dings, error buzzes, key ticks
voicechip-speech babble, grunts, hums, laughs, gasps, sighs, hey! calls
dogchip barks big and small, yips, whines, whimpers, growls, pants, howls
zombieundead groans, moans, hisses, gurgles, rattling breath, snarls
monstercreature roars, screeches, snarls, chitter, stomps, flaps, squelches
waterdrips, splashes, pours, streams, underwater blubs
firecrackling campfires, ignition whooshes, torch flutter, sizzles, ember pops
footstepsteps on grass, gravel, stone, wood, snow, mud, puddles
mechcreaks, slams, latches, levers, switches, rattles, ratchets, key jangles
personheartbeats, breaths, sneezes, snores, claps, gut growls
rpgsword swings, spells, loot jingles, level-ups, warps, save chimes (174 generated + 28 ported)

Musical sound design

CategoryCharacter
kicktight chip kicks, 808 drops, gated and crushed thumps
snarenoise-and-tone backbeats, cracks, gated slams, rimshots, flams
hihatcrisp closed ticks, open sizzles, pedal chicks, metallic sheen
tomtuned rack and floor toms, falling bends, roto rises, fills
cymballong crashes, pinging rides, ride bells, splashes, chinas, chokes
perctuned cowbells, blocks, claves, shakers, congas, agogo bells
bassplucked and sustained chip bass, acid sweeps, wobbles, slaps
sub808 slides, deep drops, gated and growling sub-bass
leadsquare and PWM chip leads, glides, licks, echoes, stabs
pluckharp and marimba plucks, glassy mallets, muted stabs, octave doubles
arpchord-tone arpeggio runs, octave jumps, glissandi, ratchets
chordtuned chord stabs, power chords, wide voicings, gated chops
bellstruck bronze bells, tubular chimes, music-box tines, shimmer tails
organdrawbar stacks, church pipes, rock bite, leslie swirl, percussive taps
stringbowed swells, tremolo and spiccato bowing, pizzicato, detuned ensembles
brasschip brass stabs, fanfares, swells, muted buzz, section falls
reedbreathy chip flutes, hollow clarinet, nasal oboe, ocarina, pan pipes
padwarm detuned beds, glassy stacks, dark slabs, filter sweeps, gated pulses
risernoise sweeps, pitch glides, gated builds, drum rolls, filter falls
impactcinematic booms, metallic slams, sub drops, braams, debris tails
glitchbuffer stutters, bitcrush bursts, tape stops, garbled data chirps
vinylcrackle beds, needle drops, tape hiss, wow/flutter, static, motor hum

The rpg category also contains the complete sound set of pixel-rpg — 28 sounds ported exactly from that game's Web Audio engine, keeping their event names (rpg_levelup, rpg_menu-open, …) and the game's intended relative loudness in the catalog's gain field.

Exporting WAV files (optional)

The library never needs files, but you can have them:

npm run generate                       # every effect -> sfx/<category>/<name>.wav
npm run catalog                        # just rebuild sfx/manifest.json
node scripts/generate.mjs --only kick_003 rpg_levelup

sfx/*.wav is git-ignored — it's an export, not a source. The testing page also has a ⬇ button on every row that exports that one effect. Only sfx/manifest.json (the catalog) is committed and shipped.

How it works

src/dsp.js holds the chip-synth primitives: a seeded xorshift PRNG, NES-style 15-bit LFSR noise, square/triangle/sawtooth oscillators, and a 16-level amplitude quantizer that gives the library its 4-bit-DAC voice. Each category in src/generators/ is a small module that draws its parameters from the PRNG, renders samples, and records what it chose — which is where the descriptions come from, so they always describe the actual synthesis rather than an intention. Because the PRNG is seeded from the effect's name, the whole library is reproducible from under a megabyte of code.

Stability

1.0.0 is a stable API commitment: the exported functions, the manifest entry shape, and effect naming are covered by SemVer. Effects only ever get appended — existing names keep their sound.

License

MIT — free for commercial and non-commercial use, attribution appreciated but not required.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 2

Collected releases
VersionPublishedDirect dependenciesOpen version
1.0.0Registry latest2 Aug 20260
0.4.11 Aug 20260

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
cportka/8bit-sfx

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:21 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:f20e117c1fcb2c6a9c075284cf906009abdd8bd1c0a4f8826324035fafecf437