Replies: 15 comments
-
interesting! - just an observation: the notation
emphasizes that the comment is more readable than the 0/1 sequence.
[EDIT] something like
For writing long-form sequences, I'd instinctively use spaces to express subdivision
this would bring it nearer to "traditional western notation" - which Toussaint avoids on purpose (see Preface 2nd ed.) To detect typos in longer sequences, lilypond has the nice safety measure of "bar check" http://lilypond.org/doc/v2.20/Documentation/notation/bars#bar-and-bar-number-checks . PS: I am interested in rhythms. I am reading Toussaint's book (I just ordered it since you mentioned it in the source). Amazingly, it feels completely disjoint (orthogonal?) to, say, https://hudsonmusic.com/product/the-breakbeat-bible/ . An algebraic approach (describe rhythms with trees) is http://repmus.ircam.fr/jacquemard/publications I want to have the "break beat elements" available as algebraic operators... |
Beta Was this translation helpful? Give feedback.
-
Thanks! Your |
Beta Was this translation helpful? Give feedback.
-
it was of type
make PR: well, let us include some more ideas from Toussaint's book. NB: I find the book hard to read (or, too easy to read but too hard to make use of). It looks mathematical but actually it's not. All "definitions" (including "algorithms") are buried in the text, and it's often definition-by-example only, so it's not exactly clear what happens in the general case, what are the actual inputs, and what is the claimed property of the output, and why the claim would be true in general. For instance, hop/jump (p. 80). The example starts at "5 onsets in a cycle of 12 pulses". Then the "hop width" is 2. Why? Is this width actually the third input of the algorithm? (I would certainly implement it that way.) What are its admissible values? E.g., it probably couldn't be 1 since that would create a cluster (interval of adjacent onsets). But even with hop-width 2, some clusters may appear. Or may they not? Are they allowed in an "odd" pattern? Are we using the def. from p. 75, or p. 77? And so on. |
Beta Was this translation helpful? Give feedback.
-
These rhythms are great but I can't help thinking that baking them into a module seems a bit of a shame. I feel if I used such a rhythm I'd always want to edit it. So perhaps this would be better as part of a snippet library, for fast recall into an editor plugin? One problem is that we have a lot of editor plugins and there isn't a standard for snippets as far as I know.. |
Beta Was this translation helpful? Give feedback.
-
yes but you could also apply Tidal's combinators/transformers. I thought that some of these algorithms from Toussaint's book could be added, like It can be a first step, and it does not hurt? On the general question of what to add to a library, cf. https://wiki.haskell.org/Fairbairn_threshold |
Beta Was this translation helpful? Give feedback.
-
Perhaps there is a way to get rid of the distinction between library function and user defined function? Something like copy on edit? |
Beta Was this translation helpful? Give feedback.
-
Interesting. You mean, when using Tidal, there should be a way to "get the source code for this (library) function" in the editor buffer, to change it? This would require source code to be available, which normally isn't. If That's certainly possible, but would require a larger effort (design, implementation, installation), and would be worthy of a separate issue. I thought the original topic (Toussaint's rhythm functions) is a nice student programming exercise. (But I don't have students right now - will have in October.) |
Beta Was this translation helpful? Give feedback.
-
Maybe #682 could help with this - an API for expanding code. Would be nice to be able to expand
and so on |
Beta Was this translation helpful? Give feedback.
-
Just came across this, seems like it's doing something like what's described in this issue: |
Beta Was this translation helpful? Give feedback.
-
Hi, Re: Technical aspects of how to implement this: Tried to keep this as simple as possible. In the past (circa 2016) it was possible to write patterns as [0] Sidenote: |
Beta Was this translation helpful? Give feedback.
-
Hi! quite a while since I've posted on here. Toussaint's book is awesome imo. I think being able to compactly express sparse rhythms like the son and bossa nova timelines would be really powerful. Following up on @jwaldmann 's function implementing @mxmxyz 's notation, the following works like a charm (highly hacky charm).
Example: Not patternable though. |
Beta Was this translation helpful? Give feedback.
-
@TylerMclaughlin The only downside to that is that you can't use |
Beta Was this translation helpful? Give feedback.
-
@lvm , you can do anything like I've seen before but haven't used |
Beta Was this translation helpful? Give feedback.
-
today learned it's way tidier to use fastcat and map pure instead of the hacky show / parseBP_E combo :D better 0 and 1s version: Since the bool version might be more versatile than the 1s and 0s version, maybe it would make sense to consider a more general As and Bs timeline function:
a and b can be midi note numbers, or instrument/sample names. you can get really fun linear rhythms: d1 $ s (tlab "hh" "bd" [3,4,2,3,4]) |
Beta Was this translation helpful? Give feedback.
-
Just a note, if you get rid of the
still works fine but now you can do
Patternizing the list is a little harder - have to think about what something like |
Beta Was this translation helpful? Give feedback.
-
There is a Scales module which has been growing in size and scope, with several popular (and some less popular) scales to use as convenient shorthands. It's a nice module, because it's self-documenting and so can double as a reference of sorts . I think it would sometimes be handy to also have similar shorthands for rhythms, expressed as
Pattern Bool
s, usable with functions such asstruct
andwhile
.I've been collecting some rhythms here; there is probably a better and more systematic way to collect them, although I don't really know where to look for myself. Still, even working with such a small library feels very nice.
Beta Was this translation helpful? Give feedback.
All reactions