Feat: words and default release
This commit is contained in:
@@ -1750,6 +1750,7 @@ fn emit_output(
|
|||||||
out.push('/');
|
out.push('/');
|
||||||
|
|
||||||
let has_dur = params.iter().any(|(k, _)| *k == "dur");
|
let has_dur = params.iter().any(|(k, _)| *k == "dur");
|
||||||
|
let has_release = params.iter().any(|(k, _)| *k == "release");
|
||||||
let delaytime_idx = params.iter().position(|(k, _)| *k == "delaytime");
|
let delaytime_idx = params.iter().position(|(k, _)| *k == "delaytime");
|
||||||
|
|
||||||
if let Some(s) = sound {
|
if let Some(s) = sound {
|
||||||
@@ -1789,6 +1790,13 @@ fn emit_output(
|
|||||||
let _ = write!(&mut out, "dur/{}", step_duration * 4.0);
|
let _ = write!(&mut out, "dur/{}", step_duration * 4.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !has_release {
|
||||||
|
if !out.ends_with('/') {
|
||||||
|
out.push('/');
|
||||||
|
}
|
||||||
|
let _ = write!(&mut out, "release/{}", 12.0 * step_duration);
|
||||||
|
}
|
||||||
|
|
||||||
if sound.is_some() && delaytime_idx.is_none() {
|
if sound.is_some() && delaytime_idx.is_none() {
|
||||||
if !out.ends_with('/') {
|
if !out.ends_with('/') {
|
||||||
out.push('/');
|
out.push('/');
|
||||||
|
|||||||
@@ -166,6 +166,16 @@ pub(super) const WORDS: &[Word] = &[
|
|||||||
compile: Param,
|
compile: Param,
|
||||||
varargs: true,
|
varargs: true,
|
||||||
},
|
},
|
||||||
|
Word {
|
||||||
|
name: "stretch",
|
||||||
|
aliases: &[],
|
||||||
|
category: "Sample",
|
||||||
|
stack: "(v.. --)",
|
||||||
|
desc: "Time stretch factor (pitch-independent)",
|
||||||
|
example: "2 stretch",
|
||||||
|
compile: Param,
|
||||||
|
varargs: true,
|
||||||
|
},
|
||||||
Word {
|
Word {
|
||||||
name: "begin",
|
name: "begin",
|
||||||
aliases: &[],
|
aliases: &[],
|
||||||
|
|||||||
Reference in New Issue
Block a user