Fluidity of Tidal Cycles but minus SC?

I really love Tidal Cycles for how intuitive the coding in it is to create real-time electronic music but I kind of have a love/hate relationship with supercollider.

I love Tidal Cycles. It’s syntax is so intuitive and great for composing with but SC is just so frustrating a lot of times.

Ideally I’d find an environment where I can have something similar to Tidal code in one window/area and DSP code in another one so I can create my own synth patches and effects and then play them with something like Tidal code, but all in one package with the DSP using something that isn’t SC. So I’d have this all-in-one environment for real-time electronic music creation that’s super stable, so when something doesn’t work as expected I know it’s me and not some weird bug or issue where I have to check the registry on my machine, install and reinstall different versions or disable one weird Ugen or whatever.

Ideally I’d have this dream coding environment and be able to use the DSP side to recreate something close to my Serum or FM8 patches in a way that they can be used in real-time, so maybe not exactly the same but close enough and with their own nuance so as to perform studio pieces live in something very similar to Tidal code. I’d want all the bells and whistles of a DAW like the ability to sidechain compress or parallel compress tracks/channels and saturate things etc even if that means throwing together a chunk of code to create my own compressor. I know you can sidechain with Tidal in SC but again, that’s using SC. I don’t want SC.

I was getting close to recreating a Serum patch in SC and then SC stopped working and I had to go down this rabbit hole of digging through forums everywhere trying to figure out why it just decided to stop working. I’ve got it working again now. Apparently there was a conflict in the most recent build between some sort of portaudio configuration and a recent windows update so the server couldn’t boot and was giving off an error code no one had seen up until a few months ago.

I’m sorry to hate on SC, I know it’s open source, I know a lot of people are super devoted to it, but that doesn’t make it any less frustrating.

I know you can run an SC package through atom and have both composition code in one atom window and DSP supercollider code in another atom window, but I’d still be using supercollider.

Does what I’m looking for exist?

Well, there’s ChucK - https://chuck.cs.princeton.edu/. It’s a single C++-like language that combines synthesis and live coding performance in one syntax / semantics. The syntax is not anything like TidalCycles, though - it’s much like C++.

from: https://tidalcycles.org/Custom_OSC

Really the one and only job of TidalCycles is to send patterned OSC messages, […] It’s fairly straightforward to configure Tidal to send OSC to another system

so i guess one way to get rid of SC3 could maybe be to use faust (https://faust.grame.fr/) to generate your custom audio plugins & host them in a osc-aware DAW like REAPER (REAPER | OSC).

1 Like

I’ve not been using Tidalcycles for some time now, but it is also possible to send MIDI messages with it, which allows you to virtually send messages to any synth of your choice. Have you tried that?

I’ve been working with Jack Armitage (Lil Data) on a set of Reaktor Blocks that communicate with Tidal over OSC, you can build your own modular racks or send out MIDI from Reaktor to control plugins like Serum etc. You can grab the blocks for free from the Toybox website:

(You will need to install the Free Pack and the Nano Pack Community Edition.)

You can use multiple instance of Reaktor in your DAW and Tidal will automatically sync with the host transport.

I need to do a proper post about this stuff, we are still working on documentation etc for it. Here’s the github:

Let me know if you have any questions.

1 Like

There’s also some discussion about the Reaktor Nano Pack Tidal blocks on this discord server:

BTW, the current boot file on the github needs to be updated for Tidal 1.7.4 but you can use this boot for now:

Hi, you might be interested in my projects, what you’re describing was pretty much my motivation for creating Scheme for Max and Scheme for Pd. They are open source externals for Max & Pd that embed an s7 Scheme interpreter for live coding in Lisp. They run in the host (Max or Pd) but you can interact with them from your editor of choice, both by reloading the files in the host and by piping code over osc messages to the interpreter. Then you can use anything you can hook up in Max/Pd for sound, which is just about everything: there exist facilities for running vsts, Csound, SC, Chuck, Faust, etc all in them. I use it with Csound, my modular synth, and VSTs mostly.

Now it differs from Tidal in a few key ways:

  1. It’s Scheme, not Haskell. So still an awesome functional language, but quite different from Haskell. It’s super for making your own high level really terse domain specific language as Tidal has done.

  2. It’s quite a bit more low-level than Tidal, from what I understand of Tidal (I’ve only played with briefly). For me, this is a feature, for others, it could be a show stopper. It’s more an environment to create your own version of Tidal. I think Tidal is dead-cool, but would rather roll my own version in a lisp - YMMV of course. I have begun publishing my code for my own sequencing and live coding system in it, and more will be coming. But there’s nothing out of the box as high level as Tidal right now, so one is definitely working more in the underlying language than one needs to in Tidal. This does mean it’s quite a bit more flexible than Tidal from what I understand of Tidal. I think Tidal hides the underlying Haskell more and extending it in Haskell is a bigger step from just using it, but I could be off base here. If I had more time I would know this better! lol

  3. It needs a host. I find this well worthwhile because prototyping interaction widgets in Pd and Max is very nice, and when I’m using it, I honestly don’t look at the patcher much. And you get everything you can do in Max or PD. When I’m writing code, I’m working in my editor and looking at output from the Max/Pd console, and only using the patcher when I want to rearrange input and output systems. I have all kinds of vim bindings hooked up to send code out to the interpreter which can control Max in various ways. Some folks think the need for the host is great, for others it’s a deal breaker. BTW, you can actually use it fine with the demo mode of Max because setting up the host patcher takes like 2 minutes and the rest is in Scheme which you can save outside of Max.

I’ve made a bunch of video and tutorial examples linked off the main page, including a free ebook on learning Scheme for people totally new to the language.

A couple of good demo of me using it in live-code style here:

I’m also teaching an intro workshop on the Max version on June 28th through the Music Hackspace.

Feel free to hit me with any questions!

1 Like