换知了
皮肤会直接装到正在运动的物理体上,速度和声音不中断。
竹棒划过热风,松香与绳子每圈摩擦三十多次。短促脉冲不断敲响纸膜和竹筒,旋转再把它们揉成一声忽近忽远的「哇——」。抓住玩具画圈,听见力、速度与方向怎样塑造蝉声。
皮肤会直接装到正在运动的物理体上,速度和声音不中断。
棍子也只是 DOM。红色吊环标出绳子的精确起点。
上传内容只在当前浏览器内解码。速度管变调,张紧度管音量,旋转相位管远近,滤波器随甩动打开。
参数描述一次具体录音状态下的有效声学行为,让浏览器用少量节点重建宏观音色。
约 0.423 秒转一圈,控制盛夏里忽近忽远的慢包络。
每 12.9 ms 左右一次主要摩擦事件,间隔 CV 约 0.25。
第一膜面有效模态,Q ≈ 10.49,短促地被脉冲反复敲响。
第二膜面—空气有效模态,Q ≈ 10.62。
旋转建立张力。涂松香的接触点连续经历粘住、蓄力、滑开与复位。
脉冲间隔带着约 25% 抖动,摩擦宽带填入细小毛刺,让声音保持自然活性。
膜面声先经过 1863.85 Hz 辐射高通;另一支在 108.86 mm 竹筒内传播、损耗并往返反射,再由管口反相叠回。
一次与二次旋转调制叠加,模拟张力、耦合和辐射方向共同造成的「哇——」起伏。
默认 renderer、绳系物理与拟合声学模型开箱即玩。知了 DOM、竹棒 DOM、连接 socket、声音、renderer 和物理参数都可以独立替换。
pnpm add zhuzhiliao
import {
mountBambooCicada,
SynthCicadaVoice,
} from 'zhuzhiliao';
const voice = new SynthCicadaVoice({
friction: 1.2,
membraneTension: 1.1,
tubeLength: 140,
});
const button = document.querySelector('#summer-button')!;
mountBambooCicada({
voice: () => voice,
physics: { ropeLength: 132 },
parts: {
cicada: {
source: button,
socket: { x: .5, y: 0 },
},
},
});