Visuals for beginners?

Hi there, does anyone have any links/resources for learning how to connect tidal with visuals? I'm a complete beginner, and any instructions that aren't aimed at experienced programmers would be great.



I suggest you give Hydra a try, it has a package for atom so you can live code visuals and music at the same time, it also works on web-based collaborative editors like Estuary and Flok


a nice video to connect tidal & hydra:


Do you know if it's possible for Hydra to respond to the audio automatically? There is a a.fft module according to Hydra website but I tried it and it never worked.

1 Like

Have you plugged the right audio input into Hydra? On the website, by default it's the mic and you have to change a setting to route Tidal's sound into the browser (I don't know how it would work with Hydra in the editor)


Do you still have Atom Hydra working with OSC? I have split the main TidalCycles OSC stream and i've confirmed that i'm sending it to the default OSC port for Hydra and confirmed that the port is receiving the msgs but they don't appear in the console. :thinking:

For anyone's reference. You don't necessarily need to set up another custom OSC target, you can the main tidal stream like this:

tidal <- startStream (defaultConfig {cCtrlAddr = "", cCtrlListen = True}) [(superdirtTarget {oAddress = "", oPort = 57120, oLatency = 0.1 , oSchedule = Live, oWindow = Nothing, oHandshake = False, oBusPort = Nothing}, [superdirtShape]), (superdirtTarget {oAddress = "", oPort = 57101, oLatency = 0.1, oSchedule = Live, oWindow = Nothing, oHandshake = False, oBusPort = Nothing}, [superdirtShape])]

comment out and replace the default target in your BootTidal.hs with that and just change the oAddress and oPort in the second target, the 57101 one, to wherever you need to send the OSC to. The oAddress for both targets will be the same as in the code you've just commented out.

@Hong_Xu You can just use a physical cable to route the output of your soundcard, the headphone output, back in to the input, the default input/microphone. Or, I only have experience with Linux, you can use a virtual cable with something like PulseAudioJACK to route audio from SuperCollider into the "PulseAudioJACK Source" (which is basically a virtual version of the mic input of your soundcard). It works in all of the Hydra editors for me.

Like this:

you also have to use the () => a.fft[0] function as a parameter, or whichever FFT band you want to use, e.g () => a.fft[2], so that the FFT updates the parameter value every frame.

1 Like

It's not necessary to do the routing externally, in jack you can route the supercollider output to the pulseaudio jack source

Ah yeah it looks like i meant to do both rather than either or. I'll edit it, thanks for correcting my sloppy communication haha

I've been doing a bunch of playing with Punctual on over the last few months (against my heavy preference for hydra which is very popular here), for the simple fact that it does audio-reactive input without any work (in estuary) using the lo, med, hi graphs as values.
The estuary implementation of Hydra does not have audio reactive input (yet).

I've actually really enjoyed it, I'm in the processing of putting some punctual worksheets together for an estuary workshop I'm planning to run locally - if you're interested in having a look, they're a work in progress, but available here (please note, you should run through some estuary basics as a starting point, my worksheets assume this already)

It's definitely a more complicated setup, but if you want to try something a bit different you could controlling visuals in Improviz using Tidal.

I wrote a guide recently on using midi/midi controllers to control visuals in Improviz. Controlling Improviz Using Midi via OSC | Antonio Roberts

If you then enable midi output in Tidal you could send midi notes to Improviz to control anything from colours to textures. Here's an example of a hi hat generating random shades of grey and then notes changing shades of grey.


Thanks for this, I've been watching the improviz section on the toplap discord, and it's been really inspiring!
Very interesting to know there's possibility of tidal control