Jump to content
IGNORED

TidalCycles


Yaxu

Recommended Posts

I made TidalCycles with some friends, a live coding environment for generating pattern. It's free/open source + cross platform, and for the latest release (0.8) we concentrated on making it easier to install.

 

Here's some videos of it in use:

 

 

https://archive.org/details/14Performance-SharedBufferXA.CardenasA.McLeanDavidOgbornE.Tsabary

 

 

 

more here:

http://tidalcycles.org/videos.html

 

would be great to know what you think

 

cheers

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...
  • 1 year later...

Listening to the first live-coding jam now. Sounds really nice, but I wonder how easy it is to have a picture of what the hell is actually going on after things become too complex. Also, is it a lot of hassle to map some things to a midi controller so it's possible to fade things in-out without having to type? 

 

Looking at the web page now it seems to be the same thing a coworker suggested a while ago when talking about the Haskell programming language, so I think I have actually seen this stuff before. I will have to put it on my pile of interesting things I hope to mess around with in the future and hopefully not forget.

 

Anyways that thing definitely sounds interesting, thanks for sharing. I hope Kanye West does not sue you. :)

Edited by thawkins
Link to comment
Share on other sites

Ahh, the bump of this thread was a good reminder to get back into live coding. I'm learning Javascript/Processing at the moment and making a lot of progress, so this will be a good way for me to continue learning.

Link to comment
Share on other sites

I wonder how easy it is to have a picture of what the hell is actually going on after things become too complex. Also, is it a lot of hassle to map some things to a midi controller so it's possible to fade things in-out without having to type?

 

From my limited playing around tonight, I think there is some fun in not knowing whats going on entirely, then reducing everything down to something more simple. Kinda like recording Elektron p-locks then reloading the pattern.

 

You have to manually make patterns for your cc's, so there is plenty of things you can fade in and out.

Link to comment
Share on other sites

Messed around with MIDI today... the good news you absolutely can tweak stuff while MIDI'ing

 

The bad news you absolutely CAN NOT under any circumstance make breakcore with 10 lines of code

 

https://instagram.ftpa1-1.fna.fbcdn.net/vp/8f325b208c229655ec3a586be22dc27d/5B2E39B0/t50.2886-16/35518611_196949021142552_3207769180538915785_n.mp4

Link to comment
Share on other sites

Messed around with MIDI today... the good news you absolutely can tweak stuff while MIDI'ing

 

The bad news you absolutely CAN NOT under any circumstance make breakcore with 10 lines of code

 

https://instagram.ftpa1-1.fna.fbcdn.net/vp/8f325b208c229655ec3a586be22dc27d/5B2E39B0/t50.2886-16/35518611_196949021142552_3207769180538915785_n.mp4

 

I got to find time to try this. 

Link to comment
Share on other sites

So ... this shit is painless to send 30 cc's to your favorite vst or synth concurrently. I'm slowly getting obsessed.

Link to comment
Share on other sites

  • 6 months later...

I'm pretty late to the party, but not super late to 1.0.0. And, uh, this thing is off the chain, possibly the most fun step sequencer I've ever used. I barely know what I'm doing but holy fuck. It doesn't feel like coding, it feels like the Octatrack but with the immediate and discrete parameter control I always wanted. Liberating. 

Link to comment
Share on other sites

You can record them but I haven't figured out how to do it yet lol.

 

The setup is kind of a mess, but there's real brilliance to this thing and it's a bit startling how easily/simply you can get weird.

 

This one's for modey if he ever reads this thread:

setcps (160/120)

d1 $ s "bd(3, 8)" # gain 0.9

d2 $ s "cp/2"

d3 $ fast 2 $ every "13 5" (fast 2) $ s "hc:1*4" # speed "1.2" # gain 0.7
Edited by sweepstakes
Link to comment
Share on other sites

You can record in Super Collider itself. I don't have it infront of me, but if you go to like Window/View -> there should be some sound recorder that does basic stereo recording.

Link to comment
Share on other sites

I also wanted to add that TidalCycles goes a lot further if you integrate it with midi. The best way I found to do this is using the Dirt MIDI support. For your midi devices, you can use an IAC bus on OSX so you can multitrack all the shit you midi.

Link to comment
Share on other sites

I also wanted to add that TidalCycles goes a lot further if you integrate it with midi. The best way I found to do this is using the Dirt MIDI support. For your midi devices, you can use an IAC bus on OSX so you can multitrack all the shit you midi.

 

What I wanted to do was control and sequence my external hardware (or Live instruments) from TidalCycles.

 

Getting the MIDI to Live and recording it is no problem, you can do it easily with the IAC Driver or Midipipe. Synchronizing TidalCycles and Live is a bit more difficult.

 

The best would be to just slave TidalCycles to Live, but it does not seem to have any means to listen to an external clock. The other way is slaving Live, and it should be possible to somehow generate MIDI timecode from TidalCycles.

Link to comment
Share on other sites

This sequencer is so good. I don't feel like using anything else now! I tried it a bit with MIDI and it was cool, but it's fun to just see what you can squeeze out of the built in samples.

d1 
$ ((irand 4 / 16) ~>)
$ s "<sax*2 ~ ~ ~ >" # n (irand 10) 
# speed (choose [0.5, 0.7, 0.8, 0.9, 1.5])
# pan (irand 10 / 10)
# gain 1.0 
# size (choose [0.9, 0.7, 0.8, 1.1])
# room 0.8
# orbit 1

I was slightly disappointed that you couldn't change the sample buffer interpolation method (cubic vs. linear vs. none) so I just added it to my local setup! It was mildly annoying just because I had to update it in 2 places and figure out how to build Haskell code, but it really wasn't bad. I'm starting to see how people go down the open source music software rabbit hole. I think I'm addicted already. Oh well, beats the hell out of GAS!

Link to comment
Share on other sites

How steep is the learning curve ? Can you already write melodies and beats the way you would using a piano roll / tracker or is it more about experimenting and trial and error ?

I have loads of work to achieve within the next few months but I can't help being appealed by TidalCycles / live-coding, because of its text-input based workflow (the most logical way to interact with a computer IMO).

Link to comment
Share on other sites

How steep is the learning curve ? Can you already write melodies and beats the way you would using a piano roll / tracker or is it more about experimenting and trial and error ?

I have loads of work to achieve within the next few months but I can't help being appealed by TidalCycles / live-coding, because of its text-input based workflow (the most logical way to interact with a computer IMO).

It's a really weird deal. Technically you're writing Haskell which 1) is very powerful and 2) has a notoriously steep learning curve. BUT it really feels like it was designed to be user-friendly, and supposedly most users are musicians, not coders. There's a long but excellent and easy tutorial in their docs. You just type or paste in each line/snippet of Tidal code and you're off to the races. It took me like 8 hours to go through simply because I went on a long, gleeful tangent every single time I learned something. These video tutorials are also good, although some of the older ones are outdated and use deprecated features. The "Elastic Tempo" one is particularly interesting.

 

You can certainly punch in melodies (there are some recognizable ones in the docs) but that's not really the focus. And if you're trying to create notes with velocity and human timing this probably isn't for you (although it can be done). But for more electronic drum rhythms I actually find its notation very intuitive. You can make really funky, interesting stuff happen in one simple-looking pattern.

 

All that said, I'm really early on in the learning curve myself, but I can say with confidence that I'm not looking forward to going back to my hardware sequencers. I think this thing ruined them for me. If I had some nice eurorack logic modules that miiiight be less true.

Link to comment
Share on other sites

Re: the text workflow - I completely agree, and this has some huge benefits over other methods, especially if you use the built-in samples/synths:

- Saving interesting sketches using pretty much any electronic medium (text doc, github, email...)

- Sharing (see my snippets above)

- Eyeballing a pattern to get an idea of what it's doing

- Making quick (as in, live performance speed) modifications

- Huge number of text editors out there, although the plugins are a bit limited at the moment (you got Atom, VSCode, Emacs, and Vim for sure)

- Collaborative/simultaneous coding (I haven't tried it yet as I have no livecoding friends yet lol)

Link to comment
Share on other sites

Thank you very, very much for your answer. I'll definitely give it a go, it might fit pretty well for the more techno oriented material I want to write (but I'll have to investigate MIDI routing/mapping).

A simple (maybe dumb, ah!) question : is there a way to store everything you type as you go into a txt file or are all modifications to your code definitive ?

Link to comment
Share on other sites

Thank you very, very much for your answer. I'll definitely give it a go, it might fit pretty well for the more techno oriented material I want to write (but I'll have to investigate MIDI routing/mapping).

A simple (maybe dumb, ah!) question : is there a way to store everything you type as you go into a txt file or are all modifications to your code definitive ?

Thank you very, very much for your answer. I'll definitely give it a go, it might fit pretty well for the more techno oriented material I want to write (but I'll have to investigate MIDI routing/mapping).

A simple (maybe dumb, ah!) question : is there a way to store everything you type as you go into a txt file or are all modifications to your code definitive ?

Oh absolutely! I'd love to hear your thoughts on it.

 

So the plugins just provide a way to execute a chunk of code (like a line or a "do" block). Generally you'll save the file as you go. You could probably set up your text editor to auto save too. A lot of the workflow comes from what's provided by these auxiliary/supporting tools.

Link to comment
Share on other sites

The best would be to just slave TidalCycles to Live, but it does not seem to have any means to listen to an external clock. The other way is slaving Live, and it should be possible to somehow generate MIDI timecode from TidalCycles.

 

You can definitely do this. Setup a midi track in ableton with an output that goes to your IAC bus that Super Collider is setup to use as a midi device. 

 

 
MIDIClient.init;
MIDIClient.list; // to check, which are there, you can query them


// create a midi out connection
~midiOut = MIDIOut.newByName("FastLane USB", "Port A"); // substitute your own device here


 // you may want to adjust the latency here
~midiOut.latency = 0.0;
~dirt.soundLibrary.addMIDI(\midi, ~midiOut);

Then you can setup your device to respond to your midi clock via tidal:

d1 $ midicmd "[start/4,midiClock*48]" # s "midi"
Edited by acid1
Link to comment
Share on other sites

 

The best would be to just slave TidalCycles to Live, but it does not seem to have any means to listen to an external clock. The other way is slaving Live, and it should be possible to somehow generate MIDI timecode from TidalCycles.

 

You can definitely do this. Setup a midi track in ableton with an output that goes to your IAC bus that Super Collider is setup to use as a midi device. 

 

 
MIDIClient.init;
MIDIClient.list; // to check, which are there, you can query them


// create a midi out connection
~midiOut = MIDIOut.newByName("FastLane USB", "Port A"); // substitute your own device here


 // you may want to adjust the latency here
~midiOut.latency = 0.0;
~dirt.soundLibrary.addMIDI(\midi, ~midiOut);

Then you can setup your device to respond to your midi clock via tidal:

d1 $ midicmd "[start/4,midiClock*48]" # s "midi"

 

Thanks, I will try to check this out when I get time to play with TidalCycles again.

Link to comment
Share on other sites

  • 2 weeks later...

I randomly came across a m4l patch which offers some sort of TydalCycles-like sequencing and had a lush techno track going in a couple of minutes. Literally, minutes.

 

Yada yada yada I'm installing TidalCycles this afternoon and setting it to control synths (hosted in Live). Feels like the most logical thing to do.

 

Thank you so, so, so much Yaxu. And thanks a huge lot fellow WATMMers for bumping this thread every now and then, TC's been intriguing me for a while and I'm so glad it has.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.