blob: 89255b91b33f079bcfdd31dd4aa9bde32c71b937 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
use signal::Signal;
use correlation::Correlation;
use pitch::Pitch;
#[derive(Default)]
pub struct Model {
pub pitch: Option<Pitch>,
pub signal: Signal,
pub correlation: Correlation
}
impl Model {
pub fn new() -> Model {
Model::default()
}
pub fn from_signal(signal: Signal) -> Model {
let correlation = Correlation::from_signal(&signal);
let pitch = correlation.find_fundamental_frequency(&signal);
Model {
pitch: pitch,
signal: signal,
correlation: correlation
}
}
pub fn pitch_display(&self) -> String {
self.pitch.map_or(String::new(), |p| format!("{}", p))
}
}
|