#amplitude #sample #dsp

decibel

分贝值快速转换工具

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 中使用

Apache-2.0

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倍。

无运行时依赖项