Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional value options for play_pattern_timed synth parameters #3401

Open
chaosharmonic opened this issue May 20, 2024 · 0 comments
Open

Comments

@chaosharmonic
Copy link

Can (or, rather, could) play_pattern_timed take multiple values for options like enveloping or dynamic levels, or a parameter for scaling values other than sustain? Currently, they appear to only take a single static value for each, leading notes of different lengths to play with the same enveloping time but different sleep values.

What I'm ultimately looking for is some kind of shorthand for operations like:

play (ring :c5, :e5), sustain: 3.8, release: 0.2
sleep 4

play (ring :b4, :d5), sustain: 1.8, release: 0.2
sleep 2

play (ring :d5, :f5), sustain: 1.8, release: 0.2
sleep 2

play (ring :c5, :e5), sustain: 7.8, release: 0.2
sleep 8

Where those values could expressed as something like

# given an arr, `notes`, containing enveloping
notes.map { | len | len - 0.2 }

Except not necessarily limited to lists of static values, since you might just want to make sustain and others scale to the number of beats assigned to a note like that one already does by default

I'm not sure I have a specific proposal for a syntax for this (add some :relative parameter? optionally take arrays as options everywhere? some third thing?), but I guess in the immediate moment I'm asking if anyone else has thoughts on how this behavior could be more flexible/consistent/both.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant