ZzFX - 超小型声音合成器
ZzFX 是一个微型声音生成器,旨在以最小的代码开销生成各种各样的音效。它非常适合游戏、原型和任何需要声音但不想使用传统音频文件的网络应用程序。
ZzFX 音效设计器 - 音效板演示
🌟 特点
- 小巧:压缩后不到 1 千字节!
- 多功能:20 个可控参数,可生成多样化的音效。
- 无依赖:独立运行,无需外部库。
- 跨浏览器:兼容几乎所有网络浏览器。
- 开源:MIT 许可,可在任何地方使用!
🔊 为什么使用 ZzFX?
- 代码驱动的声音:只需一行代码即可添加或更改音效。
- 轻量级:无需音频资源文件,下载时间更快。
- 原型设计:理想的占位音效。
- 游戏创作活动:适用于如 JS13K 等大小受限的比赛。
- 不仅限于游戏:为任何网站增添声音效果。
🚀 如何使用
- 从 GitHub 下载或使用
npm install zzfx
- 使用
import {ZZFX, zzfx} from './ZzFX.js'
将 ZZFX 作为模块导入 - 或粘贴 ZzFXMicro.min.js 中的代码
- 要播放声音,只需调用 zzfx(),例如
zzfx(...[,,,,.1,,,,9])
- 使用 ZzFX 音效设计器网页应用 来创作新的音效。
示例音效...
zzfx(...[,,925,.04,.3,.6,1,.3,,6.27,-184,.09,.17]); // 游戏结束
zzfx(...[,,537,.02,.02,.22,1,1.59,-6.98,4.97]); // 心跳
zzfx(...[1.5,.8,270,,.1,,1,1.5,,,,,,,,.1,.01]); // 钢琴
zzfx(...[,,129,.01,,.15,,,,,,,,5]); // 鼓声
🎶 ZzFX 音乐
- ZzFX 现在通过 Keith Clark 的 ZzFXM 支持音乐!
- 超小型播放器和歌曲。
- 兼容 NoteCraft 导出。
🛠️ ZzFX UI 功能
- 随机音效生成:从预设创建音效。
- 音效管理:自动保存、重命名和收藏音效。
- 音效可视化:播放时查看声波图像。
- 分享:通过粘贴 zzfx 代码加载音效。
- 导出/导入:支持音效列表的拖放操作。
- 离线播放:将音效保存为 .wav 文件。
🖥️ ZzFX Micro 代码
以下是使用 JavaScript 播放 ZzFX 音效所需的全部代码!
let // ZzFXMicro - 超小型声音合成器 - v1.3.1 由 Frank Force 制作 ~ 1000 字节
zzfxV=.3, // 音量
zzfxX=new AudioContext, // 音频上下文
zzfx= // 播放声音
(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=2*M.PI,R=44100,G=u*=500*d/R/R,C=b*=(1-k+2*k*M.random(k=[]))*d/R,
g=0,H=0,a=0,n=1,I=0,J=0,f=0,h=N<0?-1:1,x=d*h*N*2/R,L=M.cos(x),Z=M.sin,K=Z(x)/4,O=1+K,
X=-2*L/O,Y=(1-K)/O,P=(1+h*L)/2/O,Q=-(h+L)/O,S=P,T=0,U=0,V=0,W=0;e=R*e+9;m*=R;r*=R;t*=
R;c*=R;y*=500*d/R**3;A*=d/R;v*=d/R;z*=R;l=R*l|0;p*=zzfxV;for(h=e+m+r+t+c|0;a<h;k[a++]
=f*p)++J%(100*F|0)||(f=q?1<q?2<q?3<q?Z(g**3):M.max(M.min(M.tan(g),1),-1):1-(2*g/d%2+2
)%2:1-4*M.abs(M.round(g/d)-g/d):Z(g),f=(l?1-B+B*Z(d*a/l):1)*(f<0?-1:1)*M.abs(f)**D*(a
<e?a/e:a<e+m?1-(a-e)/m*(1-w):a<e+m+r?w:a<h-c?(h-a-c)/t*w:0),f=c?f/2+(c>a?0:(a<h-c?1:(
h-a)/c)*k[a-c|0]/2/p):f,N?f=W=S*T+Q*(T=U)+P*(U=f)-Y*V-X*(V=W):0),x=(b+=u+=y)*M.cos(A*
H++),g+=x+x*E*Z(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()}
🎮 使用 ZzFX 的游戏
太空拥抱者 / 包裹成团 / 银河骑士 / 卡利斯托船长的冒险 / 欢迎来到太空 / 虚假道路 / 音符工艺 / 游荡的幽灵 / 反弹回来 / 色调跳跃者 / 布巴的后屋 / 背刺英雄 / 花钱机器:2019 / 逆行者 / 背靠背 / 快速胜利 / 背部放松 / 重返小岛 / 退格删除 / 重返星空 / 无法回头 / 莱奇沃斯村 / 诺格努德 / 香肠救赎 / 棉花糖天空 / 大冠军 / 我想谷歌这个游戏 / 边缘未找到 / 被盗之剑 / 404号公路 / 最后的斯巴达人 / OS13k / 螃蟹故事 / 为骷髅头做饭 / 蛋时光倒流 / 卡戎二世 / 13 / 灵魂冲浪 / 再次死亡 / 战壕渔夫 / 荣耀之路 / 梅林大战阿方索 / 休闲十字军 / 喷水直升机