Feat: parameter duration scaling

This commit is contained in:
2026-01-27 12:17:23 +01:00
parent 40c509e295
commit 574625735b
3 changed files with 149 additions and 27 deletions

View File

@@ -46,14 +46,15 @@ fn multiple_emits() {
#[test]
fn envelope_params() {
// Values are tempo-scaled: 0.01 * step_duration(0.125) = 0.00125, etc.
let outputs = expect_outputs(
r#""synth" s 0.01 attack 0.1 decay 0.7 sustain 0.3 release ."#,
1,
);
assert!(outputs[0].contains("attack/0.01"));
assert!(outputs[0].contains("decay/0.1"));
assert!(outputs[0].contains("attack/0.00125"));
assert!(outputs[0].contains("decay/0.0125"));
assert!(outputs[0].contains("sustain/0.7"));
assert!(outputs[0].contains("release/0.3"));
assert!(outputs[0].contains("release/0.0375"));
}
#[test]
@@ -66,17 +67,17 @@ fn filter_params() {
#[test]
fn adsr_sets_all_envelope_params() {
let outputs = expect_outputs(r#""synth" s 0.01 0.1 0.5 0.3 adsr ."#, 1);
assert!(outputs[0].contains("attack/0.01"));
assert!(outputs[0].contains("decay/0.1"));
assert!(outputs[0].contains("attack/0.00125"));
assert!(outputs[0].contains("decay/0.0125"));
assert!(outputs[0].contains("sustain/0.5"));
assert!(outputs[0].contains("release/0.3"));
assert!(outputs[0].contains("release/0.0375"));
}
#[test]
fn ad_sets_attack_decay_sustain_zero() {
let outputs = expect_outputs(r#""synth" s 0.01 0.1 ad ."#, 1);
assert!(outputs[0].contains("attack/0.01"));
assert!(outputs[0].contains("decay/0.1"));
assert!(outputs[0].contains("attack/0.00125"));
assert!(outputs[0].contains("decay/0.0125"));
assert!(outputs[0].contains("sustain/0"));
}