10个版本 (4个重大更改)
0.5.0 | 2023年5月22日 |
---|---|
0.4.0 | 2023年3月22日 |
0.3.0 | 2022年10月22日 |
0.1.0-alpha.6 | 2022年5月25日 |
0.1.0-alpha.3 | 2022年3月25日 |
#1115 in 音频
125KB
583 行
enhanced-adsr-envelope
ADSR包络的实现
基本用法
use std::time::Duration;
use augmented_adsr_envelope::Envelope;
// Create an exponential envelope.
// The envelope configuration uses atomics, so it doesn't need
// to be an immutable reference.
let envelope = Envelope::exp();
// Set settings
envelope.set_sample_rate(1000.0);
envelope.set_attack(Duration::from_millis(200));
// Trigger the envelope
envelope.note_on();
for i in 0..10000 {
// Tick the envelope by 1 sample
envelope.tick();
// Get the current volume
let _volume = envelope.volume();
}
// Trigger the release stage
envelope.note_off();
图表
包络::默认();
| 攻击 | 0.3 | | 减衰 | 0.3 | | 持续 | 0.8 | | 释放 | 0.3 |
包络::指数();
| 攻击 | 0.3 | | 减衰 | 0.3 | | 持续 | 0.8 | | 释放 | 0.3 |
许可证: MIT
依赖项
~0.5–1.2MB
~26K SLoC