use crate::audio::{parse, program::Program}; const MELODY: &str = r#" ; setup a v100 d50 P4 %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 pg3# 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 b3b notes d3 notes c3 notes b3 notes b3b "#; 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 { let melody = Program::parse(MELODY, true)?; let base = Program::parse(BASE, true)?; let test = melody.merge(base); Ok(Self { test }) } }