summaryrefslogtreecommitdiff
path: root/graphics/src/audio/data.rs
blob: 8cbdf45902b4dda77aa2013837b258fd0f7113d6 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
use crate::audio::{parse, program::Program};

const MELODY: &str = r#"
; setup
a v100 d50

%define notes
a p$1 v100 - a v0 -
a p$1 v100 - a v0 -
a pd4 v100 -- a v0 --
a pa4 v100 -- a v0 -- --
a pg3s v100 - a v0 - --
a pg3 v100 - a v0 - --
a pf3 v100 --- a v0 -
a pd3 v100 - a v0 -
a pf3 v100 - a v0 -
a pg3 v100 - a v0 -
%end

notes d3
notes c3
notes b3
notes b3f

notes d3
notes c3
notes b3
notes b3f
"#;

const BASE: &str = r#"
-128

; setup
b v100 d50

%define notes
b p$1 v100 -- b v0 --
b p$1 v100 -- b v0 --
b p$1 v100 - b v0 -
b p$1 v100 - b v0 - --
b p$2 v100 - b v0 - --
b p$2 v100 - b v0 - --
b p$2 v100 - b v0 -
b p$2 v100 - b v0 -
b p$2 v100 -- b v0 --
%end

notes d2 d2
notes c2 c2
notes b2 b2
notes b2 c2
"#;

pub struct Data {
	pub test: Program,
}
impl Data {
	pub fn load() -> parse::Result<Self> {
		let melody = Program::parse(MELODY, true)?;
		let base = Program::parse(BASE, true)?;
		let test = melody.merge(base);
		Ok(Self { test })
	}
}