1
colatin 32 天前 1
也来一个
https://bpm.blue/ |
2
shadowyue 32 天前
点赞。
作为卖点的 计时准 怎么理解? |
3
est OP @shadowyue 博客里写了一点。
setInterval 是有时间抖动( jitter )的。 这位做过实验 https://meowni.ca/posts/metronomes 要想不抖,得放到 service worker 里。不如我这个版本简单 |
4
murmur 32 天前
没有强和次强的区别吗
|
6
murmur 32 天前
@est 比如说锦鲤抄 浮夸 这些歌,说是 2/4 ,实际上记谱用 6/8 更简单,而且谱子也是 1 xx 2xx 1xx 2xx 这样的节奏
还有锦鲤抄的速度是 87.5 ,我也不知道为啥带小数,就这个数字特别深刻 |
7
est OP @murmur 我大概明白你的意思。下一步设想是允许用户加减 beat 。然后每个 beat 音色自定义
87.5 这个速度。。。有必要如此精确么。。实在不行我看放个 input 让用户自己输入好了。。。 |
8
tyrone2333 32 天前
计时准 这个是怎么实现的, 我用 flutter 写过, 前后改了好几版, 做不到准确
|
9
est OP @tyrone2333 直接不间断给 WebAudio 喂指令~~~~还得在上一个播放完成之前提前喂到嘴里,这样就是最精确的
|
10
tyrone2333 32 天前
@est #9 我试过这个方案还是有很大误差, while 也会差几毫秒, 要是挂后台差的更多. 高 bpm 的时候音效没播完就到下一个, 很明显
|
11
est OP @tyrone2333 啊。这么拉垮吗?你怎么测试的呢?我那个 demo 也差么
|
12
est OP @tyrone2333 我大概想到怎么优化了。高 bpm 的时候不能单靠一个 beat 去提前。得把多个 beat 都提前喂给 AudioContext 。
|
13
tyrone2333 32 天前
@est #12 看了下我的代码是搞了 3 个实例, 两个用于播放 soundType2,另外一个用于 soundType1
|
14
est OP @tyrone2333 你试试我这个版本嗯?我找了个 200bpm 的视频一起听,没听出来明显卡顿。
|