Shbobo Shnth patches and appreciation

@cwpotter thanks, glad you enjoyed it!

Has anyone experimented with “looping gestures” on the shnth before? It seems like Steve mentioned this being a possibility in the past (no link available ATM, sorry!), and I’m curious if anyone has explored the idea. I haven’t really gotten any further than trying to toss a gesture into a comb filter like this:

;; longest delay time (?) and highest feedback
(left (right (horn (comb (bar) 1 127 127) 24))

From my understanding a nume of 1 and a deno of 127 is the longest delay rate** (it’s maybe a second tops), which is fine since I don’t expect a hi-fi delay on shnth :slight_smile: but it sounds like a small snippet of the gesture kind of repeats but “flutters” down. It sounds more like a decay-enveloped LFO than anything I’d consider a looping gesture. Not sure what I’m looking for but just curious if anyone has played around with the concept!

** I still feel a little confused how negative numbers work I think. I tried tossing negative numbers into the nume to get a lower ratio but I think they’re just mirrored upwards for this opcode? And in the other integer mode the whole -127,127 range just provides more detailed granularity?

Also because sharing is caring, here’s a weirdo “flute” patch I was playing with last night. I’m hoping to tweak the tuning tonight when I find that Harry Partch / Terry Riley shnth tuning reference again.

;; triassicflute
(srate 16)
(togo (dust 2) (add (dustb 1)) 24 90 -11 78 43 126)
(left (right
	(wave (add (horn (add (togo) (hornb 10 127 (bar 10)) (smoke (corp 60)) (barb 4)) 24)
	           (smoke 1))
	      (slew (corpb) 10 10 120 10))))

Random shnthspiration found during some late-nite browsing yesterday:


here’s my take:
[shbobo shnth ambi noise session #3 - YouTube]

most patches are community shared ones or from presets from fish pack (thanks to everyone who contributed), maybe tweaked somewhat to my needs.


@haj sounds great, thanks for sharing! Especially digging 7:00 and on.

Really curious about the sounds around 7:30. The synced oscillator type sounds were really nice, and I’m wondering if the delayed string was all from the shnth? Or an external effect? Mainly wondering since I didn’t think comb would be able to produce that long of a delay. Thanks!


Thanks! Most sounds are from Shnth but just a bit of Sidrax was mixed in here and there if my memory servers. So, I think that’s that.

1 Like

How is Fish working on newer macs? I know a lot has changed over the past few years for macOS, does this affect programmability of Shnth?

I think there are still issues with Big Sur and above sadly - that’s when Fish (and I believe shlisp) stopped serving to device for me. See this Github issue for details. I haven’t got the Java version working either FWIW.

As a result I’ve been working from my Norns to patch the Shnth the past month or so. I’ll either ssh in and edit a patch in vim then run :! ../shnth/bin/shlisp % (assuming Norns + shnth: library is installed and I’m in the ~/dust/code/shnth-patches folder) or I’ll simply change patches using the patch loader mod included in that same Norns package.


Hmm. It seems like such a nice piece of gear to bring along with just a laptop, shame if that part of the development were to stall.

Edit: Also, a couple of other usability questions: there is mic or audio input? Does it always have to be USB powered, or does it have an internal battery?

1 Like

It has a mic, audio input (need to explore this more) and battery.


I have been so curious about looping gestures since the day I got my shnth! I have never tried anything though so I appreciate this little bit of code. Hopefully I can find time to play around with it today.

1 Like

@jdambr Nice! FWIW, my code doesn’t really behave at all like one might think a “looping gesture” would haha. I’m kind of wondering if I was thinking about looping too literally, heh.

Having a mount with a bar or corp controllable trig rate would at least be a gesture controllable looping modulator… might be a good place to start too.

audio input (need to explore this more)

@corpusjonsey Just a heads up - the unruly.txt patch posted above (also here: has a wind powered third scene…

I’ve used it for speaker+mic feedback and for processing guitar from my (shitty) amp :slight_smile:

Great fun in both cases.

edit: it’s just stereo filters controlled by a s&h

Something very weird was going on with my shnth last night when I has playing around trying find a way to “loop” gestures. If safe to say that I got very off topic but ended up finding a way to produce a thrid radio field out of the side of my shnth!

The code is super simple and doesn’t use the “corp” code, so I am wondering what could possibly be going on…

I am really curious to see if anyone else can replicate this phenomenon or if it is just my shnth behaving out of the ordinary. The video link displays the phantom radio field and shows the code as well.


Looking at the code in the video, I’m wondering about the q and rate fields – they have solid lines around them, which – at least in the version of fish that I use – indicates they are not the integer parameters 2 & 67 and 2 & 77, but instead the m-expressions that correspond to those numbers.

(Which is way beyond my expertise… I’ve collected some patches from the heyday of shnth programming which consist entirely of numbers and parentheses, which I believe is a way to get around certain opcode requirements and to make use of undocumented features in the firmware…)


Can you post the txt version of the patch? I still mostly use shlisp, and the level of nesting is really important (and tricky to see in fish) ie - (bar a) is the value of the barre, but ((bar a)) is the evaluation of the opcode corresponding to the value of the barre at that point; so it can get really chaotic.

1 Like

No problem!

{(jump (tar 1 ))
(right (water (dust (salsa (minorc )(smokec )))(2 )(67 )))
(left (waterb (dustb (salsac (minorb )(smoked )))(2 )(77 )))


This looks just like a contemporary poem.

1 Like

That’s really fun.
using (2) is like saying (corp). The applications translate each keyword into a number and send it to the device, so you can use numbers or keywords. If you run shlisp -h at the command line it will print out a list of all the opcodes like

 1: wind mul add: microphone; 1 pieces
 1: finger mul add: top finger fretted; 1 pieces
 2: corp mul add: antennae; 2 pieces
 2: plank mul add: all the frets' bits; 2 pieces
 4: bar mul add: barflex; 4 pieces
40: smoke mul add: random noise; 8 pieces
48: dust speed mul add: random pulses; 8 pieces

so 2 and 3 correspond to corp and corpb. The same numbers can be used for some of the shtar opcodes, since the hardware is different.
The list is in hex, 67decimal=43h, so a smoke element (smoked), and 77decimal=4d so its a dust element (dustf).

If you alter the code to take out the brackets around the numbers and read it back into fish and load it onto the shnth, you get a much less interesting patch I think.

{(jump (tar 1 ))
(right (water (dust (salsa (minorc )(smokec ))) 2 67 ))
(left (waterb (dustb (salsac (minorb )(smoked ))) 2 77 ))

or if you replace the bracketed numbers by what they represent, you can load it and see its the same thing (if I’ve got it right),

{(jump (tar 1 ))
(right (water (dust (salsa (minorc )(smokec ))) (corpa) (smoked) ))
(left (waterb (dustb (salsac (minorb )(smoked ))) (corpa) (dustf) ))

Wow! This is so helpful, thank you! The world programming the shnth only with numbers sounds so interesting and I’m glad to see a clear example of how it works.

1 Like

i’d actually like to see a clearer example, if possible

Thanks for sharing this patch - I tried it out but was only getting audio from the right channel; figured out I needed to swap the right and left lines to get audio from both. Couldn’t replicate the cool ghost behavior though, not sure if the corps on my Shnth are as sensitive.

I haven’t tried this out myself but I think if you get rid of the jump command line, then you can use the tare (tar) to reset the corps and you might get a similar behavior.