rust_music/
constants.rs

1pub mod rhythm {
2    // Binary rhythms
3    pub const DEMI_SEMIQUAVER: f64 = 0.125;
4    pub const DOTTED_DEMI_SEMIQUAVER: f64 = 0.1825;
5    pub const SEMIQUAVER: f64 = 0.25;
6    pub const DOTTED_SEMIQUAVER: f64 = 0.375;
7    pub const QUAVER: f64 = 0.5;
8    pub const DOTTED_QUAVER: f64 = 0.75;
9    pub const CROTCHET: f64 = 1.;
10    pub const DOTTED_CROTCHET: f64 = 1.5;
11    pub const MINIM: f64 = 2.;
12    pub const DOTTED_MINIM: f64 = 3.;
13    pub const SEMIBREVE: f64 = 4.;
14    pub const BREVE: f64 = 8.;
15
16    // Ternary rhythms
17    pub const TER_SEMIQUAVER: f64 = 1. / 6.; // 0.166
18    pub const TER_DOTTED_SEMIQUAVER: f64 = 0.25;
19    pub const TER_QUAVER: f64 = 1. / 3.; // 0.33
20    pub const TER_DOTTED_QUAVER: f64 = 0.5;
21    pub const TER_CROTCHET: f64 = 2. / 3.; // 0.66
22    pub const TER_DOTTED_CROTCHET: f64 = 1.;
23    pub const TER_MINIM: f64 = 4. / 3.; // 1.33
24    pub const TER_DOTTED_MINIM: f64 = 2.;
25    pub const TER_SEMIBREVE: f64 = 8. / 3.; // 2.66
26    pub const TER_DOTTED_SEMIBREVE: f64 = 4.;
27}
28
29pub mod dynamic {
30    use crate::num::u7;
31
32    pub const SILENT: u7 = u7::new(0);
33    pub const PPP: u7 = u7::new(10);
34    pub const PP: u7 = u7::new(25);
35    pub const P: u7 = u7::new(50);
36    pub const MP: u7 = u7::new(60);
37    pub const MF: u7 = u7::new(70);
38    pub const F: u7 = u7::new(85);
39    pub const FF: u7 = u7::new(100);
40    pub const FFF: u7 = u7::new(120);
41}