Technical tour of a tidal system

Here's another video, this one giving a tour of a tidal system. It's quite technical and I'm not sure if it's helpful or not for beginners - feel free to let me know! In my haste I quickly jump over some things, like how to run tidal patterns, that I'll be returning to later and going through properly.

I edited the subtitles again (twice, as I overwrote the first attempt, argh), as that seemed to be useful on the previous video. I think I am talking much faster, I'll try to slow down in the future, but you could try the 0.75 speed setting via the gear icon :slight_smile:

Questions very welcome!

By the way I set up automatic language translation in the forum but I'm not sure if it's working or not. There should be a 'globe' icon to click on if so.


Oh, and there’s a bit where I talk about the messsages popping up that I’m in front of so you can’t read them… Subtitles might be best for that bit!

Interesting, thanks. Big takeaway for me is understanding what BootTidal.hs does.

Also, as far as I can see, everything you demonstrated works the same on the mac :slight_smile:

1 Like

i’ve had an issue with buffer after adding more samples, so thanks for showing how to access the startup file.

personally, i think your talking speed is perfect in this video.

1 Like

Great! As a possible convenience I like the TOC-feature on youtube, where you can point out different sections in the video and jump there right away. This way, you don’t need to do recaps, instead if anyone was unsure about a section they can simply use the TOC to jump there. Here’s an example using that feature. You need to click “SHOW MORE” in order to see the TOC.


Ah great, I’ll have a look

Ok a quick TOC on the video description, also here:

  • 0:00 Intro to the tour
  • 0:23 Basics of Atom
  • 1:35 Starting SuperCollider
  • 1:53 What tidal and supercollider does
  • 2:22 Starting SuperDirt
  • 2:38 SuperCollider ‘hidden features’ - changing volume, recording, audio scope
  • 3:40 BootTidal.hs - Tidal’s boot file - advanced configuration, including changing ‘latency’
  • 5:17 Running tidal outside of Atom
  • 7:12 Advanced configuration of SuperDirt - giving supercollider more resources for loading more samples, etc
  • 11:20 Goodbye!

That was great insight into the underlying architecture of Tidal. I'd read about modifying the BootTidal.hs, but never really understood it, and same with increasing buffer size and memory allocation for SuperDirt. SuperHelpful.scd. :slight_smile:

1 Like

It sounds like you may be addressing this early on, but as I tried to code along, I found I was missing the samples cpu, learn, and break, which interrupted the flow a bit.

It would be nice to have the samples you are demoing on hand, of course, but perhaps a way around that may be more generally useful is having functions to:

  • find the number of alternatives for a sample
  • some way of comparing samples to indicate their similarity - maybe a big ask, though I have an impression that this is something that music researchers are working on.
  • a way to iterate through all samples
  • a way for supercollider to signal atom that an error (e.g. no synth or sample named ‘cpu’ could be found) has occurred

Hi Denis,
Yep I should have stuck with the default samples for this, for sure.

For tidalclub I think the first thing we’ll go through is how to load up some new samples - I’ll provide some for download that I’ll then use through the course.

If you do want to jump ahead and play with some long looped samples in the defaults, then have a play with bev, breaks125 and breaks165 samples.

1 Like

Hi, thanks this was already quite interesting.

I noticed there are two distinct latency options, the first can be set in the Tidal boot file and the other in the SuperDirt alternative boot approach.
Are these options independent or are changing the same value?

PS: the console was hidden by your overlay @yaxu. Maybe for future videos you can move it when showing something in that area of the screen :slight_smile:

I'll be honest - I'm not sure what changing the supercollider latency number is supposed to achieve - I've not managed to get it to have any effect. I've ignored it, and not had problems with it. I'm using linux -- perhaps it does something on other platforms!

Yes that was me being impressively dim. It was the second version, the first time I had myself on the right, and realised I was covering up the 'TidalCycles' indicator that I was talking about. So I moved myself to the left for the second and final take, without thinking through what I'd cover up there.. Best that I learn these problems early on!!

Here's what you should have been able to see there - it was the Boottidal.hs location that I copied and pasted, in order to open the file.

Custom ghci path configured: ~/test\ location/bin/

Ghci command: ~/test\ location/bin/ghci Ghc-pkg command: ~/test\ location/bin/ghc-pkg

Load BootTidal.hs from /home/alex/.atom/packages/tidalcycles/lib/BootTidal.hs



t>Listening for controls on


t>Failed to send. Is the 'SuperDirt' target running? Network.Socket.sendBuf: does not exist (Connection refused)

t>Failed to send. Is the 'SuperDirt' target running? Network.Socket.sendBuf: does not exist (Connection refused)

hehe, thanks for posting it here.

perhaps it does something on other platforms!

I’m currently on OSX. I’ll post here if I discover anything about it.

I noticed the example SuperDirt boot defines 12 out channels which based on the docs determine the number of orbits. Then, in the Tidal Cycles boot file, 16 “channels” (not sure I can call them channels) are defined and the first 12 are grouped with the orbits.

While how orbits work eludes me - I’m hoping there will a specific lesson on this -, I wandering why not all Tidal “channels” have their own orbit.

Maybe I’m going too far for now!

Hm, there’s not really a good reason!

Orbits are useful for audio routing, mainly having different ‘global’ effects but you can also use them for sending patterns to different audio outputs, and things like this. I can make a lesson on this sort of thing further down the line.


I'm on Windows 10, looks like it isn't doing anything.

I was playing with the setting today and was wondering why it "didn't work", then I found this post :man_shrugging:

I adore your honesty, @yaxu. :slight_smile: munshkr and I also wondered about it while watching your video. And actually I increased the latecy number in the SuperDirt startup file and got less "late" messages or "skip", but never touched the other latency value. /shrug


Thanks for the video, I’d love to see more technical details in the future. Are you going to cover more of this technical stuff? I have many questions regarding timing, effects etc. Is this thread/time good to ask or maybe later in the course?

1 Like

I called this a ‘technical’ tour because I skipped over a lot of practicalities. Ultimately I intend to cover everything in-depth (although not in the first four weeks) and am always happy to hear questions. Maybe create new topics unless your questions follow directly from the video though? I haven’t worked categories out for this, so feel free to make topics as ‘uncategorized’ for now.

1 Like

Can you use orbits for sending various MIDI streams?

1 Like

No, orbits are just for audio routing. It’s easy to route midi to different places though - you can create multiple midi connections in superdirt, and just give them different names for using in your tidal patterns.

1 Like