diff --git a/src/cli/cli.rs b/src/cli/cli.rs index 8745204..38b834e 100644 --- a/src/cli/cli.rs +++ b/src/cli/cli.rs @@ -29,7 +29,7 @@ use nom_locate::{LocatedSpan, position}; use strum::{EnumDiscriminants, EnumString, IntoDiscriminant, IntoStaticStr}; use thiserror::Error; -const DEFAULT_INSTRUMENT: &str = "sin(2*pi()*(442*2^((n+1)/N))*t)"; +const DEFAULT_INSTRUMENT: &str = "sin(2*pi()*(442+442*((n+1)/N))*t)"; const DEFAULT_LENGTH: &str = "2^(2-log(2, l))*(60/T)"; #[derive(Debug, Parser)] diff --git a/src/cli/main.rs b/src/cli/main.rs index 91ee81d..dd15702 100644 --- a/src/cli/main.rs +++ b/src/cli/main.rs @@ -97,9 +97,8 @@ fn parse_and_compile(opts: &PlayOpts) -> anyhow::Result> { opts.slopes() .map(|(s, (v, e))| (s, VariableChange(*v, e.clone()))) .collect::>(), - HashMap::from(default_variables) - .iter() - .chain(opts.variables()) + opts.variables() + .chain(HashMap::from(default_variables).iter()) .map(|(v, _)| *v) .collect::>(), ); @@ -119,10 +118,9 @@ fn parse_and_compile(opts: &PlayOpts) -> anyhow::Result> { let compiler = Compiler::from(Context::new( 'L'.to_string(), 'n'.to_string(), - default_variables - .map(|(c, v)| (c.to_string(), v)) - .into_iter() - .chain(opts.variables().map(|(a, b)| (a.to_string(), *b))), + opts.variables() + .map(|(a, b)| (a.to_string(), *b)) + .chain(default_variables.map(|(c, v)| (c.to_string(), v))), opts.instrument().clone(), opts.slopes() .map(|(_, (a, b))| (a.to_string(), b.clone()))