Scratching Sounds Tidal Cycles (+ SuperCollider + SuperDirt)

Thanks for your hint. I tried rtcqs some time ago and optimised my system regarding. But I could not notice any improvements.
At the moment I use the internal Intel soundcard. As soon as I have some more time I will try to use a Fast Track Ultra 8R and/or pipewire.

Hi,
I am quite sure you are bound get problems by using the internal soundcard. At least in my experience there is much more headroom with an external USB device (I have a quite old Scarlett Focusrite 2i2 which works well). You might also have a look here to analyze your setup - but I doubt there will be any major improvements possible if you use the internal sound card.

jackd is not designed for consumer / desktop audio. You will need a reasonable good soundcard probably. I think all the usb audio devices that work on a ipad / ... works on Linux too.

Contrary to the above I've used jack with internal soundcards and had no problems for many years. I'm surprised there's a problem with a Lenovo T480.

Despite being fairly new, pipewire is really surprisingly good and easy to use. It emulates both jack and pulseaudio seamlessly, you can even use qjackctl or whatever to wire things up.. The only difference is the start/stop jack buttons don't do anything because pipewire is always running.

A huge plus for me is that it integrates all the sound devices together, so you can e.g. connect one soundcard to another, or output to more than one.. When performing I love that I can get everything running and tested on my internal soundcard, then plug into my USB di on stage, have it appear in jack so I can wire it up and play without restarting anything. It's the future!

1 Like

Ok.
Connecting sound devices together should also be possible with jack.
http://kokkinizita.linuxaudio.org/linuxaudio/zita-ajbridge-doc/quickguide.html

Hm I can imagine that doing all the stuff Pipewire does, can also be a disadvantage. It's more complex in the background. But for newbies Pipewire might give benefits, such as easier to setup and support for bluetooth devices, I don't know. I've no real need for it atm and stick with what works.

Hopefully my future will be that I can hear some Tidal sounds. :grimacing:
I updated SuperCollider from 3.11.0 to 3.13.0-dev (compiled from source). The first run with the new SuperCollider looked promising: I got no xruns when using the # legato (irand 4) effect. But then I got some late messages. So, I increased the latency in the SuperCollider startup script. After rebooting the SC server I got the following error message:

SuperDirt: listening to Tidal on port 57120
Server 'localhost' exited with exit code 0.
server 'localhost' disconnected shared memory interface

Only rebooting the PC and starting SC again helps.
I'm about to take drastic action and install Tidal cycles on a Windows machine.

I don't think these drastic measures are the right approach. Patience.
Is buying a 25 Euro/$ ( Behringer U-Control UCA222) usb card a option, or is that too drastic as well? :wink:

Just ordered one of these, will post on Monday if it solves the problem.

1 Like

I got the Fast Track Ultra 8R up and running. I connected things up like can be seen in the picture.


I tried different Jack parameters (sample rate etc.) but I still get xruns. Can someone explain to me how the sound workflow looks like, starting at my Tidal code and ending in my ear phones?
I also found a SuperCollider thread. The problems described there sound similiar to mine. I will get through of it. (SuperCollider on Linux - #42 by eckel - scsynth)

I see two soundcards, so you are probably using Pipewire?
Could you try with qjackctl?

The M-Audio Fast Track Ultra 8R is the usb soundcard, the built-in soundcard is the Intel card. I'm using pipewire on pulseaudio. Here is what pactl info gives:

Server-Zeichenkette: /run/user/1000/pulse/native
Bibliotheks-Protokollversion: 35
Server-Protokollversion: 35
ist lokal: ja
Client-Index: 111
Tile-Größe: 65472
Name des Benutzers: *****
Rechnername:******
Name des Servers: PulseAudio (on PipeWire 0.3.48)
Version des Servers: 15.0.0
Standard-Abtastwert-Angabe: float32le 2ch 48000Hz
Standard-Kanal-Zuordnung: front-left,front-right
Standard-Ziel: alsa_output.pci-0000_00_1f.3.analog-stereo
Standard-Quelle: alsa_input.pci-0000_00_1f.3.analog-stereo
Cookie: ba07:3038

I use qjackctl for wiring things up and configuring sample rate and frame rate.

Sorry, I can't help with that. I see audio related servers, pulseaudio, pipewire and jackd. I'm sure it's all much easier... but I can only help with jackd only setups. That's the most simple situation for me. :slight_smile:

You want someone who can help you with pipewire I guess:

Besides the technical issues - and this is absolutely OFFTOPIC - we are still looking for artists for our live coding event "Nerd Arts Night" at Kunstplantage Zwickau on 26th August. So, if anyone is interested in joining the show pls send me a dm.

Tidal doesn't make sound, it just patterns network messages (using open sound control). These are received by superdirt, running the supercollider language (sclang), which turns them into sound by in turn sending messages to the supercollider synth (scsynth).

It seems this is a general problem supercollider, have you tried running other supercollider code? You could try asking for help on the supercollider forum: https://scsynth.org/

1 Like

Thanks for the explanations!

I tried playing another synth (superpiano) and the problems disappear. It seems that superfm causes the issues. When booting Supercollider I get the following warning:

WARNING: SynthDef superfm too big for sending. Retrying via synthdef file

I will check if there are some adjustments in the startup script I can make.

superfm not being sent shouldn't cause any trouble (unless you want to use superfm of course)

This warning can be ignored, it is fine for it to be sent via the synthdef file. I think supercollider devs are removing that warning actually.

I think your problem will be that superfm just requires a pattern with a lot of parameters to define the sound. Have a look for examples in the forum.

Interesting forum post about Pipewire. Summary, promising, but not there yet:

Not there yet for 'pro audio', by which they mean 'low latency audio' for e.g. live effects processing. I haven't looked into low latency tweaks, as live coding doesn't need low latency audio. In my experience it is all upsides compared to jack.

2 Likes

echoing this - in so far as my hobby audio requirements go, pipewire has been fantastic