I'm trying to setup TidalCycles using Bela as the SuperCollider backend running the SuperDirt synth. I've got as far as running SuperDirt on Bela and sending it messages from TidalCycles, however there's a lot of audio dropouts.

Increasing the allocation sizes in the setup.scd file does not seem to help. When trying to increase the block size (in both s.options.blockSize and Bela settings, SuperCollider fails to boot:

Building project...
Build finishedRunning project...
init_OSCemptycompiling class library...
initPassOne started	
NumPrimitives = 591
initPassOne done	
compiling dir: '/usr/local/share/SuperCollider/SCClassLibrary'	
compiling dir: '/usr/local/share/SuperCollider/Extensions'	
pass 1 done
ERROR: Class extension for nonexistent class 'Document'     
In file:'/deprecated/3.7/deprecated-3.7.sc'
numentries = 1081425 / 13303016 = 0.081	4531 method selectors, 2936 classes	method table size 7710200 bytes, big table size 53212064	
Number of Symbols 12367
Byte Code Size 373256
compiled 375 files in 2.65 secondsInfo: 3 methods are currently overwritten by extensions. 
To see which, execute:MethodOverride.printAllcompile done
Class tree inited in 0.13 secondsCleaning up temp synthdefs...
WARNING: Extension in '/usr/local/share/SuperCollider/SCClassLibrary/Platform/linux/extMIDIOut.sc' overwrites Meta_MIDIClient:externalSources in main class library.
WARNING: Extension in '/usr/local/share/SuperCollider/SCClassLibrary/Platform/linux/extMIDIOut.sc' overwrites Meta_MIDIClient:externalDestinations in main class library.
WARNING: Extension in '/usr/local/share/SuperCollider/SCClassLibrary/Platform/linux/extMIDIOut.sc' overwrites Meta_MIDIIn:connectAll in main class library.
Intentional overwrites must be put in a 'SystemOverwrites' subfolder.

*** Welcome to SuperCollider 3.8dev. 
*** For help type ctrl-c ctrl-h (Emacs) or :SChelp (vim) or ctrl-U (sced/gedit).a
 ServerOptionsbooting 57110
Found 0 LADSPA plugins
terminate called without an active exception
RESULT = 0
ERROR: server failed to start

(obviously it would be great if that copy-paste from the Bela console included line breaks!)

Any other ideas as to how I can avoid dropouts?

Tidal x SuperCollider setup file and steps to get them running
- https://www.notion.so/Tidal-x-SuperDirt-on-Bela-0fc2a16e605742fe8194d991c169ce90

Misc links:
- https://tidalcycles.org/
- https://github.com/musikinformatik/SuperDirt

scsynth can be started with an arbitrary block size by specifying both -z and -Z, e.g.: -z 128 -Z 128. Not sure how you obtain the same from sclang.

I posted an issue here

s.options.hardwareBufferSize should set the -Z flag. Try to set both blockSize and hardwareBufferSize to the same thing. Works here with larger sizes, but I haven't tried with SuperDirt.

2 years later

@jarm did you ever manage to get the performance you wanted from Bela? I was also considering this project, as I wanted to put TidalCycles "into" my modular synth via the Bela Salt modules. How'd your experiment turn out?

    2 months later

    discohead hey, sorry just seen your message.

    I have been able to get this running, but found performance to be lacking. SuperDirt being sample-based doesn't help either.

    However, things might have improved since I last tried! I will probably give this another go soon.