ZzFX - Zuper Zmall Zound Zynth
[![NPM Package][npm]][npm-url]
[![Build Size][build-size]][build-size-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![DeepScan][deepscan]][deepscan-url]
ZzFX is a tiny sound generator designed to produce a wide variety of sound effects with minimal code overhead. It's perfect for games, prototypes, and any web application that needs sound without the bulk of traditional sound files.
!
ZzFX Image
🌟 Features
- Compact: Less than 1 kilobyte when compressed!
- Versatile: 20 controllable parameters for diverse sound effects.
- No Dependencies: Standalone with no external libraries.
- Fast: Precache generated sounds and play them later instantly.
- Cross-Browser: Compatible with nearly all web browsers.
- Open Source: MIT licensed, use it anywhere!
🔊 Why Use ZzFX?
- Code-Driven Sound: Add or change sound effects with just one line of code.
- Lightweight: No sound asset files mean faster download times.
- Prototyping: Ideal for placeholder sound effects.
- Game Jams: Minimal overhead for size-limited competitions like
JS13K.
- Not Just for Games: Enhance any website with sound!
🚀 How to Use
* Download from github or use
npm install zzfx
* Import ZZFX as a module with using
import {ZZFX, zzfx} from './ZzFX.js'
* Or paste the code from
ZzFXMicro.min.js
* To play a sound just call zzfx(), something like
zzfx(...[,,,,.1,,,,9])
* Use
the ZzFX sound designer web app to craft new sounds.
Sample sounds...
``
javascript
zzfx(...[,,925,.04,.3,.6,1,.3,,6.27,-184,.09,.17]); // Game Over
zzfx(...[,,537,.02,.02,.22,1,1.59,-6.98,4.97]); // Heart
zzfx(...[1.5,.8,270,,.1,,1,1.5,,,,,,,,.1,.01]); // Piano
zzfx(...[,,129,.01,,.15,,,,,,,,5]); // Drum
`
🎶 ZzFX Music
- ZzFX now supports music via ZzFXM by Keith Clark!
- Super tiny player and songs.
- Compatible with NoteCraft exports.
🛠️ ZzFX UI Features
- Random Sound Generation: Create sounds from presets.
- Sound Management: Auto-save, rename, and favorite sounds.
- Sound Visualization: View sound wave images on playback.
- Sharing: Load sounds via pasted zzfx code.
- Export/Import: Drag-and-drop support for sound lists.
- Offline Playback: Save sounds as .wav files.
🖥️ ZzFX Micro Code
Here's all the code you need to play ZzFX sounds with JavaScript!
`
javascript
let // ZzFXMicro - Zuper Zmall Zound Zynth - v1.3.1 by Frank Force ~ 1000 bytes
zzfxV=.3, // volume
zzfxX=new AudioContext, // audio context
zzfx= // play sound
(p=1,k=.05,b=220,e=0,r=0,t=.1,q=0,D=1,u=0,y=0,v=0,z=0,l=0,E=0,A=0,F=0,c=0,w=1,m=0,B=0
,N=0)=>{let M=Math,d=2M.PI,R=44100,G=u=500d/R/R,C=b=(1-k+2kM.random(k=[]))*d/R,
g=0,H=0,a=0,n=1,I=0,J=0,f=0,h=N<0?-1:1,x=dhN*2/R,L=M.cos(x),Z=M.sin,K=Z(x)/4,O=1+K,
X=-2L/O,Y=(1-K)/O,P=(1+hL)/2/O,Q=-(h+L)/O,S=P,T=0,U=0,V=0,W=0;e=Re+9;m=R;r=R;t=
R;c=R;y=500d/R3;A=d/R;v=d/R;z=R;l=Rl|0;p=zzfxV;for(h=e+m+r+t+c|0;a=fp)++J%(100F|0)||(f=q?1*3):M.max(M.min(M.tan(g),1),-1):1-(2g/d%2+2
)%2:1-4M.abs(M.round(g/d)-g/d):Z(g),f=(l?1-B+BZ(da/l):1)(f<0?-1:1)M.abs(f)D(a
(1-w):aw:0),f=c?f/2+(c>a?0:(ah-a)/c)k[a-c|0]/2/p):f,N?f=W=ST+Q(T=U)+P(U=f)-YV-X(V=W):0),x=(b+=u+=y)M.cos(A
H++),g+=x+xEZ(a**5),n&&++n>z&&(b+=v,C+=v,n=0),!l||++I%l||(b=C,u=G,n=n||1);p=zzfxX.
createBuffer(1,h,R);p.getChannelData(0).set(k);b=zzfxX.createBufferSource();
b.buffer=p;b.connect(zzfxX.destination);b.start()}
``
🎮 Games Using ZzFX
Space Huggers /
Driven Wild /
The Way of the Dodo /
Squad 13 /
Coup Ahoo /
Bubble Burst /
Packabunchas /
Galaxy Rider /
The Adventures of Captain Callisto /
Welcome to Space /
Bogus Roads /
NoteCraft /
The Wandering Wraith /
Bounce Back /
Hue Jumper /
Bubba's Back Room /
Backstabber Hero /
Spendotron: 2019 /
Dioretsa /
Back 2 Back /
Quick Wins /
Back Relax /
Back To The Island /
Backspace It /
Back To The Stars /
Can't Get Back /
Letchworth Village /
Noegnud /
Sausage Redemption /
Marshmallow Sky /
Big Champ /
I want to google the game /
Edge Not Found /
Stolen Sword /
Highway 404 /
The Last Spartan /
OS13k /
Crab Story /
Cooking for Skully /
Egg Time Rewind /
Charon Jr. /
13 /
Soul Surf /
Dead Again /
Trench Fisher /
Path to Glory /
Merlin vs Alfonso /
Casual Crusade /
Squirtcopter /
Wendol Village /
Brewing Disaster /
Data Warrior: 13kb limit /
Unblock /
204Snake! /
GATOR /
A Hedgehog's Search
!
ZzFX Image
[npm]: https://img.shields.io/npm/v/zzfx
[npm-url]: https://www.npmjs.com/package/zzfx
[build-size]: https://badgen.net/bundlephobia/minzip/zzfx?3
[build-size-url]: https://bundlephobia.com/result?p=zzfx
[npm-downloads]: https://img.shields.io/npm/dw/zzfx
[npmtrends-url]: https://www.npmtrends.com/zzfx
[deepscan]: https://deepscan.io/api/teams/22950/projects/26379/branches/838286/badge/grade.svg
[deepscan-url]: https://deepscan.io/dashboard#view=project&tid=22950&pid=26379&bid=838286