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 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)";
#[derive(Debug, Parser)]

View file

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