You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As usual, I want to thank you for the excellent and expressive DSP software!
I am wondering a couple of things:
In the Beat() trigger object, .setPresets() as a method seems hamstrung by few oddities:
I have to define a preset list as a list of voices, each with presets, rather than a list of presets, each with voices. I.e. shouldn't the most natural way to index the list of presets be presets[preset_num][voice_num] rather than presets[voice_num][preset_num]? When composing 1 or 0 list patterns over a set of voices, I wish to grok them together as layers near each other, not spread apart.
There is no way to manually edit a "current pattern" and then store it. It appears that [beat.new](http://beat.new/)() is the only way to create a new beat then store it with beat.store(x) where x is a memory slot number. But this means that we are beholden to the random weight algorithm...the only way to have a deterministic beat is to define it in a preset list as a giant blob ahead-of-time. The preset list itself doesn't also appear update-able individually in terms of slots...it is "all or nothing". This makes on-the-fly updating a beat manually awkward, and pyo is otherwise great for quick interactive updates.
There is no assignment syntax in getter/setter style; assignment to the preset list must go through .setPresets()
Semi-related, re: documentation. It occurs to me the triggers documentation page could benefit from the methods being split by type between ones that produce triggers "from nothing" (Metro, Beat, Seq, Cloud), and ones that consume triggers and create a new signal from there (TrigEnv, Iter, TrigLinseg, Count,...) I am happy to contribute such a change to the docs via a PR!
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi Olivier,
As usual, I want to thank you for the excellent and expressive DSP software!
I am wondering a couple of things:
In the Beat() trigger object, .setPresets() as a method seems hamstrung by few oddities:
presets[preset_num][voice_num]rather thanpresets[voice_num][preset_num]? When composing 1 or 0 list patterns over a set of voices, I wish to grok them together as layers near each other, not spread apart.[beat.new](http://beat.new/)()is the only way to create a new beat then store it withbeat.store(x)where x is a memory slot number. But this means that we are beholden to the random weight algorithm...the only way to have a deterministic beat is to define it in a preset list as a giant blob ahead-of-time. The preset list itself doesn't also appear update-able individually in terms of slots...it is "all or nothing". This makes on-the-fly updating a beat manually awkward, and pyo is otherwise great for quick interactive updates..setPresets()Semi-related, re: documentation. It occurs to me the triggers documentation page could benefit from the methods being split by type between ones that produce triggers "from nothing" (Metro, Beat, Seq, Cloud), and ones that consume triggers and create a new signal from there (TrigEnv, Iter, TrigLinseg, Count,...) I am happy to contribute such a change to the docs via a PR!
Cheers,
Aaron Krister Johnson
Music, etc.:
https://soundcloud.com/aaron-krister-johnson
https://soundcloud.com/filtercreed
https://www.youtube.com/channel/UC_utjGYbSizWE0dNyr0Vdmg
https://aaronkristerjohnson.bandcamp.com/
http://www.untwelve.org/
Code:
https://github.com/akjmicro/dclang
Beta Was this translation helpful? Give feedback.
All reactions