Compare commits

...

2 commits

Author SHA1 Message Date
brevalferrari
41aeef83d4 fix cli variable override 2025-06-06 00:57:25 +02:00
brevalferrari
f7d5b57b66 fix default instrument 2025-06-06 00:56:55 +02:00
2 changed files with 8 additions and 6 deletions

View file

@ -29,7 +29,7 @@ use nom_locate::{LocatedSpan, position};
use strum::{EnumDiscriminants, EnumString, IntoDiscriminant, IntoStaticStr}; use strum::{EnumDiscriminants, EnumString, IntoDiscriminant, IntoStaticStr};
use thiserror::Error; use thiserror::Error;
const DEFAULT_INSTRUMENT: &str = "sin(2*pi()*(442+442*((n+1)/N))*t)"; const DEFAULT_INSTRUMENT: &str = "sin(2*pi()*(442*2^((n+1)/N))*t)";
const DEFAULT_LENGTH: &str = "2^(2-log(2, l))*(60/T)"; const DEFAULT_LENGTH: &str = "2^(2-log(2, l))*(60/T)";
#[derive(Debug, Parser)] #[derive(Debug, Parser)]

View file

@ -97,8 +97,9 @@ fn parse_and_compile(opts: &PlayOpts) -> anyhow::Result<Vec<f64>> {
opts.slopes() opts.slopes()
.map(|(s, (v, e))| (s, VariableChange(*v, e.clone()))) .map(|(s, (v, e))| (s, VariableChange(*v, e.clone())))
.collect::<Vec<_>>(), .collect::<Vec<_>>(),
opts.variables() HashMap::from(default_variables)
.chain(HashMap::from(default_variables).iter()) .iter()
.chain(opts.variables())
.map(|(v, _)| *v) .map(|(v, _)| *v)
.collect::<Vec<_>>(), .collect::<Vec<_>>(),
); );
@ -118,9 +119,10 @@ fn parse_and_compile(opts: &PlayOpts) -> anyhow::Result<Vec<f64>> {
let compiler = Compiler::from(Context::new( let compiler = Compiler::from(Context::new(
'L'.to_string(), 'L'.to_string(),
'n'.to_string(), 'n'.to_string(),
opts.variables() default_variables
.map(|(a, b)| (a.to_string(), *b)) .map(|(c, v)| (c.to_string(), v))
.chain(default_variables.map(|(c, v)| (c.to_string(), v))), .into_iter()
.chain(opts.variables().map(|(a, b)| (a.to_string(), *b))),
opts.instrument().clone(), opts.instrument().clone(),
opts.slopes() opts.slopes()
.map(|(_, (a, b))| (a.to_string(), b.clone())) .map(|(_, (a, b))| (a.to_string(), b.clone()))