-
Notifications
You must be signed in to change notification settings - Fork 3
Adding crow~ #5
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
base: main
Are you sure you want to change the base?
Adding crow~ #5
Conversation
engine/poly.sc
Outdated
| } | ||
|
|
||
| PTCrowOut : PTOp { | ||
| // |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can either take 2 or 3 arguments, depending on whether we want the channel to be built into the op name.
I think my favorite is (by example) something like
CROW.V= 1 SN K
Which will copy the voltage on bus K to crow every sixteenth note.
I would probably add a norns parameter per crow output for its slew time, and not (yet?) have them controllable from the inside of PHONOTYPE. Either that, or we might want a CROW.VS= 1 SN K 0.3 alternate which allows you to specify slew, and the original one always has a slew of 0.
I am also interested (maybe in a later PR) in CROW.ACT <output> <trigger>, which will fire the action for that output, and then have a corresponding set of parameters in Norns to set crow actions (choose between trigger and AR envelope) and length.
engine/poly.sc
Outdated
| PTDbg << args; | ||
| PTDbg << resources; | ||
|
|
||
| ^SendReply.kr(Impulse.kr(0), "/crow/out", values: [1, 2, 3]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You will want something like
var iargs = PTOp.instantiateAll(args); // this "instantiates" all the children for you.
SendReply.kr(args[1], "/crow/out", values: [iargs[0], iargs[2], 0]);
^Latch.kr(iargs[2], iargs[1]) // Just output the sample-and-hold.
engine/poly.sc
Outdated
|
|
||
| min { |args, resources| | ||
| ^0; | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably draw your min and max from the input signal.
engine/poly.sc
Outdated
| var v = iargs[1]; | ||
| // s is slew ... hardcoded for now | ||
| var s = 0.01; | ||
| ^SendReply.kr(Impulse.kr(0), "/crow/out", values: [n, s, v]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is where you want to replace Impulse.kr(0) with another argument. I suggest the first arg (args[0]) be the trigger, and shift everything else up one.
Still a bit of a WIP, but the main plumbing is there.