3个版本
使用旧Rust 2015
0.1.2 | 2016年3月18日 |
---|---|
0.1.1 | 2016年3月18日 |
0.1.0 | 2016年3月16日 |
#7 in #amplitude
在 riff-wave 中使用
9KB
93 行
decibel
分贝值快速转换工具。
lib.rs
:
将振幅与分贝值之间进行转换的工具。
另请参阅:[分贝][1] 和 [dBFS][2]。 [1]: https://en.wikipedia.org/wiki/Decibel [2]: https://en.wikipedia.org/wiki/DBFS
将振幅值转换为分贝值
要将振幅转换为分贝值,请在 AmplitudeRatio
上调用 into()
。
当用于0到1范围的归一化振幅时,这将给出dBFS(相对于满量程的分贝)的值。
示例
extern crate decibel;
use decibel::{AmplitudeRatio, DecibelRatio};
fn main() {
// An amplitude halfway between 1 and zero should be close to -6 dBFS.
let result: DecibelRatio<_> = AmplitudeRatio(0.5).into();
let expected_decibels = -6.02059991327962;
assert!(result.decibel_value() >= expected_decibels - 0.001
&& result.decibel_value() <= expected_decibels + 0.001);
}
将分贝值转换为振幅值
要将分贝值转换为振幅,请在 DecibelRatio
上调用 into()
。
示例
假设我们想要将音频缩放10dB。为了确定我们需要将每个样本缩放多少,让我们将其转换为振幅比率
extern crate decibel;
use decibel::{AmplitudeRatio, DecibelRatio};
fn main() {
// A +10dB gain should require us to scale each sample by around
// 3.1622776601683795.
let result: AmplitudeRatio<_> = DecibelRatio(10.0).into();
let expected_amplitude = 3.1622776601683795;
assert!(result.amplitude_value() >= expected_amplitude - 0.001
&& result.amplitude_value() <= expected_amplitude + 0.001);
}
要将音频缩放10dB,我们需要将每个样本约缩放3.162倍。