加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – 我可以使用什么算法音频音量级别?

发布时间:2020-12-15 02:12:07 所属栏目:百科 来源:网络整理
导读:假设我有一个可以在0和1之间的滑块。SoundTransform.volume的范围是0(静音)和1(全卷)之间,但是如果我使用一个线性函数,让我们说SoundTransform.volume = slider.volume,结果相当不愉快。 我真的没有研究人类的耳朵,但我曾经听说过人类的感知是对数的,或
假设我有一个可以在0和1之间的滑块。SoundTransform.volume的范围是0(静音)和1(全卷)之间,但是如果我使用一个线性函数,让我们说SoundTransform.volume = slider.volume,结果相当不愉快。

我真的没有研究人类的耳朵,但我曾经听说过人类的感知是对数的,或者类似的东西。我应该使用什么算法来设置SoundTransform.volume?

解决方法

人类的感知通常是对数的,当它涉及到诸如光度等事情时,这使我们能够注册对我们的环境的小“输入信号”的小变化,或换句话说:总是实现变化的可感知的物理量相对于其价值…

因此,您应该修改卷以指数增长,如下所示:

y = (Math.exp(x)-1)/(Math.E-1)

你也可以尝试其他基地:

y = (Math.pow(base,x)-1)/(base-1)

基数的值越大,效果越强,开始时较慢的体积开始增长,最终增加的速度越快…

一个简单的方法,给你类似的结果(你只在0和1之间的间隔,因此近似很简单,实际上),是指数原始值,如

y = Math.pow(x,exp);

对于exp大于1,效果是,输出(即在你的情况下的音量)首先上升更慢,然后更快到结束…这是非常类似于指数函数…更大的exp,更强效果…

greetz

back2dos

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读