标题:BASS音量(线性音量)和directshow音量的转换
只看楼主
wsgsoft
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2019-12-9
 问题点数:0 回复次数:0 
BASS音量(线性音量)和directshow音量的转换
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。
我在开发《518超市播音软件》(http://www.)的时候,在用户层面是用线性音量表达0-100,但是还用到directshow播放音乐,范围是0-10000不是线性的。怎么转换呢? 下面是我的转换代码,基本可以用,但是不保证是最好的最正确的代码。
程序代码:
int Tapp::lin2ds(int vol, BOOL bMute)
{
    if (bMute || vol <= 1) return -10000;
    else return (log10(1.0*vol) - 2.0) * 5000.0;
}

double Tapp::lin2bass(int vol)
{
    double dVol = (double)vol / 100.0;
    double rsl = (0.998*pow(dVol, 2) + 0.003*dVol - 0.001);
    if (rsl < 0.0) rsl = 0.0;
    return rsl;
}
搜索更多相关主题的帖子: 线性 int 转换 return double 
2021-04-21 01:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505523-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.230868 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved