Tidal 2.0 beatMode (TidalCycles vs TidalBeats?)
I’ve been rewriting Tidal again for a while but resisting actually using it, mostly out of a weird sense of delayed gratification.. Ideas expressed as code can get fixed once they become instrumentalised in a end-user interface..
But I’m finally starting to get a feel for Tidal 2.0. It’ll have two sides to it, the existing cycle-oriented pattern transformations, and a new realm of beat-oriented transformations. I wasn’t sure how both could be contained in the same interface, but just by renaming a function from toCycle
to beatMode
, I can start to get a feel for it. Here’s a tech test (not intended to sound nice!):
In ‘beat mode’, most things will look the same, but act differently. E.g. when you reverse a pattern in beatmode, the whole sequence gets reversed, rather than every cycle reversed independently. Even the mini-notation works, but becomes beat-oriented.
There’s a lot of reworking that’s gone into this. There’s now a Signal type which is like the old Pattern type, as well as a new Sequence type. Both Signals and Sequences are instances of a new Pattern typeclass. The nice thing is that the Signal and Sequences definitions are becoming mostly concerned with how to align and combine things of their type, most of the pattern operations can then be defined in terms of the more abstract Pattern typeclass.
This is only just starting to work, and already it’s fun to play with beatMode with its very strong polymetric affordance. It reminds me of early days of Tidal, when it was only beat-oriented. I love polymeter, and although the mininotation has always made it fairly easy to play with, it feels good to be able to do that outside of the mininotation without having to calculate ratios by hand.
Really though the payoffs for all this work are still to come. Coming up with a nice code interface for doing Carnatic-style addition/subtraction/manipulation of beats fluidly, following Aravind’s work. Also exciting are the possibilities of formalising alignment of sequences before combining them – I’ve been feeling my way around alignment of patterns for a while, including some prototyping in Strudel, and the possibilities feel limitless at the moment..
Of course beat representation is normally the very first thing you would implement in a music tech, using lists/2d arrays etc. It’s fun though to push against the usual grid-based approach, which tends towards score-like representations that are very much geared towards recording/transcribing, and not manipulating or indeed live coding with.. I continue to feel that staff notation, piano roll and all those DAW music interfaces that have flowed from them have really limited music, wherever they dominate. Lets see how it goes.
One thought on “Tidal 2.0 beatMode (TidalCycles vs TidalBeats?)”