duration is beats not repeat
This commit is contained in:
14
src/seq.rs
14
src/seq.rs
@@ -4,12 +4,14 @@ use crate::syn;
|
||||
pub struct SynSeq {
|
||||
seq: Seq,
|
||||
syn: syn::Syn,
|
||||
state: Option<tone::Tone>,
|
||||
}
|
||||
|
||||
pub fn new_syn(syn: syn::Syn) -> SynSeq {
|
||||
SynSeq{
|
||||
seq: new(),
|
||||
syn: syn,
|
||||
state: None,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,9 +21,15 @@ impl SynSeq {
|
||||
}
|
||||
|
||||
pub fn render(&mut self, left: &mut [f32], right: &mut [f32]) {
|
||||
if let Some(tone) = self.seq.pop() {
|
||||
self.syn.set(tone);
|
||||
}
|
||||
let state = self.state.clone();
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user