-
-
Notifications
You must be signed in to change notification settings - Fork 262
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
Preplace update #718
base: 2.0-beatmode-retired
Are you sure you want to change the base?
Preplace update #718
Conversation
(The Travis fail seems unrelated.) I'm a bit unsure about how |
Would the varargs usage make it transparent for the user? I'll have to look into that. One of the nice things about the |
Coming back to this... So the convenience of the Pattern notation means it's easy to do something like this with
Your objection is absolutely correct - we're not really using
Maybe having an explicit |
OK I see the problem with making lists of controlmaps now, but don't really understand Also what's the significance of the values in Agreed that stepwise combination of patterns would be really amazing to have back in tidal, but would like to make sure that there isn't some tweaking of the underlying model that could make it a lot more flexible. The first parameter |
It works somewhat like And yes, the This particular example is also similar to something
But since |
Ok so how about we imagine we had mini-notation syntax to produce a pattern of lists, would that help? We kind of have this with
The above would require the params being able to produce both |
I'm not sure I understand what And what happens if you use lists of differing lengths, would it be
|
Yes true, I guess I meant this:
Do you think this sort of approach would cover what |
It's a bit more complicated without the <>, but I'd expect:
|
This seems related: #750 |
OK, coming back to this... So if I'm thinking about this correctly, if a mini-notation were to produce a pattern of lists with ":", then that would have to happen in the pattern parser. Right now ":" is kind of special in that it actually gets handled at a later stage, with the
But otherwise I think it's quite possible? |
Meant to comment earlier - I did take a look at modifying the parser but got a bit stuck on the seeming need for a new "atomic" type to handle Patterns of lists and how to implement it without tearing everything apart. Meanwhile, |
I'm keen to find a way forward that avoids treating patterns as lists though, it seems like there's a nice opportunity to make things more flexible. For example as you point to, the current I'I think it might be surprisingly easy to generalise some bits of tidal so that the same functions works on both Looking at The new stateful events from #750 offers up a different approach to isorhythms too. |
OK, that's interesting...
(could be generalized for longer Arcs) which means you can do something sort of
Certainly could be wrapped in something easier to use. One issue is "rests" and how to represent them in lists, |
Here's a different implementation though:
It returns an infinite lazy list so you don't have to don't have to specify a number of cycles. Then you can just take the number of values you want:
|
Then this works:
|
OK, I definitely need to dive into the new stateful stuff; I don't quite understand |
The stateful stuff is a WIP really! But promising.. You have to name the state explicitly, which is what "foo" is. Then the 'take' functions read from the given list, consuming a value for each event. Essentially you're creating a pattern of functions that manipulate state, which means that reversing a stateful pattern, e.g.
... will reverse the structure, but not the values. |
Infinite lists seem to clog up |
Ah yes, forgot about that bug.. :/ |
Updating and reinstating the
preplace
family of functions, includingprrw
protate
preplace
<~>
~>>
etc.