duration is beats not repeat

This commit is contained in:
2026-03-11 13:04:18 -06:00
parent b2095c4229
commit 5f149414b2

View File

@@ -4,12 +4,14 @@ use crate::syn;
pub struct SynSeq { pub struct SynSeq {
seq: Seq, seq: Seq,
syn: syn::Syn, syn: syn::Syn,
state: Option<tone::Tone>,
} }
pub fn new_syn(syn: syn::Syn) -> SynSeq { pub fn new_syn(syn: syn::Syn) -> SynSeq {
SynSeq{ SynSeq{
seq: new(), seq: new(),
syn: syn, syn: syn,
state: None,
} }
} }
@@ -19,9 +21,15 @@ impl SynSeq {
} }
pub fn render(&mut self, left: &mut [f32], right: &mut [f32]) { pub fn render(&mut self, left: &mut [f32], right: &mut [f32]) {
if let Some(tone) = self.seq.pop() { let state = self.state.clone();
self.syn.set(tone); match self.seq.pop() {
} Some(tone) if (state.is_none() || tone != state.unwrap()) => {
self.syn.set(tone.clone());
self.state = Some(tone);
},
None => { self.state = None; },
_ => {},
};
self.syn.render(left, right); self.syn.render(left, right);
} }