Status of SuperCollider?

I’m a SuperCollider veteran looking to spend less time on laptops. So exciting to see the recent post about SC coming pre-installed on Organelle OS v4.0! The thought of porting my SC stuff to PD is the only thing holding me back from picking up an Organelle-M. Strangely, I haven’t seen any talk on sc-user or sc-dev from people using the organelle yet. Maybe they’re just being quiet…? Having worked with SC for many years, I know that it can be a bit “wild” and moving between platforms is rarely straight forward. I’ve read everything I could find here and took a look at the example code on Patchstorage. Sounds like SC on Organelle-M might not be ready quite yet?

I get that this a work-in-progress by organelle users, but is there any additional info about what is/isn’t available to an SC user who doesn’t get as deep as a low level recompile? What is the plan for what it will do out of the box? MIDI implementation for the new ports? A relatively complete set of working ugens? Pushing graphics out to the OLED screen with the lang/UI classes? Will the server on the organelle just pick up OSC messages from another lang on the wifi network and run with them? I have sooo many questions! I just don’t have quite enough confidence to place an order yet…

Thanks in advance for pointing me in the right direction!

2 Likes

I discovered a small issue ‘late in the day’ with the organelle-m install of supercollider - basically it needs to be recompiled to work without a monitor attached.
The organelle-1 is ok, which is what caught me out !

It’s relatively easy to create a build for this and/or fix a later release.

As for the status for interactions - in 3.1 (?) the changes were made to mother host to launch supercollider patches from the menu.
I also created examples which show how to interact with the pots and the display. But there ( for whatever reason) was not much interest, and I didn’t have a lot of time to spend doing further examples.
But, afaik, it worked perfectly well.
So not quite sure by what you mean by ‘not ready’.
But for sure support is quite low level - but I’d have thought fine for experienced SC coders?

Of course , supercollider is just another option, perhaps for many here - they already learnt Pure Data and that’s fine for their needs - and I also think it is easier for non programmers to learn PD so perhaps SC will be a for a simple subset of uses.
( just my own personal opinion - happy to be wrong!)

Personally I like supercollider , because of its text nature - but also because I like it’s remote coding capabilities and how it works in a live coding context :slight_smile:

As for going forward, it’s all open source, so we can all work together to take it forward.
Interestingly i was looking at a different approach ( not using sclang) on the qubit nebulae the other day - it’s an alternative and interesting approaching if sclang is not deemed necessary.
Whilst simpler I’m not 100% convinced, partly down to midi support … which is more important on the organelle that the nebulae

Thanks for the reply! It’s really great that you’re working on this port. While I was reading the forum I saw some recent posts that suggested SC was having problems on the Organelle-M. The display issue was the main problem. Since the M is the device currently for sale, and I’m just not savvy enough to tinker with and recompile all of SC from the source, I wanted to make sure I wasn’t headed in the wrong direction.

But it sounds like perhaps the problems with the M mentioned a couple weeks ago have been resolved?

When you tested your installation on the Organelle-1, were you able to get traction with classes like SoundIn.ar and MIDIdef.noteOn?

I’d guess that interacting with the audio inputs and MIDI hardware would take some doing. I’m sorry to hear there wasn’t much interest initially. I can’t imagine using SuperCollider for what I do without a lang running. There are just so many things that wouldn’t work at all.

Looking forward to hearing further updates on this! Cheers!

‘display issue’ - not quite sure what you are referring to here.
bare in mind the knobs and display are communicated to via OSC, which supercollider has good support for, my example are really just demonstrations of how to use them from SC.

(these osc messages are the same as used by Pure Data, so as such SC can do anything that you see in Organelle PD patches)

no reason why soundin and mididef should not work, this is all standard SC stuff.

yeah, mididef is why i used sclang, and also driving the display from client side, rather than server/sound engine side seemed a better idea - with organelle-m this makes even more sense given its multi-core.

anyway, as I said this all should work fine - its really just a ‘packaging issue’ at the moment.
If i get some spare time, I’ll see if I can work on a package for organelle-m,
I’ve also talked to C&G about it, so hopefully we can make sure this is ‘built in’ to next os release.

generally, I’d say, like many things - really this will evolve and get more attention if people use it e.g. theres little point in me spending hours on this, if only a couple of people use it, and the ‘give up’ and move on quickly - thats why i tend to release things, see how much use they get and then go from there .
(of course, i also do things which I use and find interesting… so thats an important factor - but time is always in short supply :wink: )

1 Like

Hey @thetechnobear, is there a way to utilize the organelle for live coding via SC, Sonic Pi, or anything else? I would love to utilize the organelle for live coding.

Definitely :slight_smile:

You have 2 choices , either :
using the organelle with a monitor/keyboard
using a laptop and WiFi into the organelle

I’ve tended to use the latter,

Supercollider is great for this.

For other software the organelle-m is easier since it can basically run any software the rPi can run.
As long as that software can talk OSC then you can use the keys, display and pots of the organelle.

1 Like

Lovely!! Thank you so much for your work in this community.

1 Like

Hi,

Just trying to sum up the info:
SC is bundled in OS.4 but currently only works on organelle 1.
In order for it to run on organelle-M, it needs to be recompiled for headless usage.
The patch is relatively easy to make but depends on users expressing interest due to @thetechnobear 's limited time resources.

If the above is correct, allow me to say that I have an organelle M, and I love SC, so I’m expressing interest for a patch (or build instructions) !

Cheers

2 Likes

Please count me as an Organelle-M user interested in a patch or build instructions as well! Thank you!

1 Like

Organelle M user. I’ve been doing a bit of noodling with SC, sonic pi and tidalcycles. I’m by no means a veteran but I would be interested in experimenting.

1 Like

I’m in exactly this camp. Very interested in being able to use supercollider on my M. Not afraid of some technical hoop-jumping but I have no experience building source on the Organelle. I’d be happy for any guidance @thetechnobear (or others) are willing to provide.

@thetechnobear Another vote for fixing SC for the Organelle M when you have time for it!

2 Likes

I’ve made a build of supercollider for the organelle m, but I will have to test it a bit before releasing it as my OS is quite heavily modified now. I compiled the sc3 plugins as well as getting the supercollider dx7 emulation going. I’ll upload it once I have a chance to make a package and test with the stock firmware.

3 Likes

This is amazing news! Please count me in to test once you have a package ready. Thank you!!

So excited!

Well I had a hard time getting it to work with the stock firmware, so I’m packaging up an image of my full OS. I recommend having a spare sdcard around to try it out.
The instructions are the same as here https://www.critterandguitari.com/manual?m=Organelle_M_Manual#71-burning-sd-card-disk-image.

I’ll have a link shortly.

ok here tis. but first a couple of notes.
the included DX7 emulation is very loud so turn down your volume knob a bit before hitting a note.
Some of the presets (there are 16000+) are really heavy on the cpu so can stutter, (it’s not optimized for the pi).
This a fully updated OS with a bleeding edge version of supercollider + sc3 plugins, the training wheels are off, so I highly recommend using a different sdcard to your normal one!

https://1drv.ms/u/s!AjTFu_I1KGX8eqDSBwBkNVdvdyk?e=qoVBxr

sha sum
08ba843702f09a4de7582a8809fb41fb5e6182f6 Org_SC_Release.img.zip

also let me know how you go.

So my spare SD card just came in the mail today and I booted under the image you sent. Awesome! It works! Both the DX7 emulator (with the stuttering you mentioned) and the test synth are working great.

One of the first things I tried, out of curiosity, didn’t work: It seems like, given SCs ability to work under a client-server model and the organelle’s built in network support, that an ideal workflow would be to run from another lang on the network to load synthdefs and test sounds.

So I booted SC into the simple poly patch, and tried to send it some OSC from the lang running on MacOS.

It failed to recognize the server. Could just be that SC is configured to listen on another port? Not sure where to look for that on the organelle though. It could also be that SuperCollider isn’t talking to the organelle’s wifi hardware. Any guesses?

Thanks for setting this up! Looking forward to trying out a few things on it! I can try to test MIDI soon, once I get a station set up with a keyboard and monitor again. I’ve been running headless for a while – shuttling pd files via wifi. It’ll be interesting to see what this looks like running with a display.

FYI, here is the vanilla code I used as a test run:

s = Server.remote(\organelle, NetAddr("192.168.1.24", 57110)); // organelle ip, default SC port

(
SynthDef("sine", { arg freq=800;
	var osc;
	osc = SinOsc.ar(freq, 0, 0.1); // 800 Hz sine oscillator
	Out.ar(0, osc); // send output to audio bus zero.
}).send(s); 
)

// okay, how about running a synth you already know about?

s.sendMsg("/s_new", "testSynth", x = s.nextNodeID, 1, 1);

Cool, I’m glad someone is using it! For the remote work, I haven’t tried it but I did notice that for newer versions of supercollider they have made it more secure so they don’t listen on the network by default. To get it working you need to set the bind address to 0.0.0.0 . More here,
http://doc.sccode.org/Classes/ServerOptions.html#-bindAddress

// example usage:
// on machine running the server
(
s.options.bindAddress = "0.0.0.0"; // allow connections from any address
s.options.maxLogins = 2; // set to correct number of clients
s.boot;
)

// on remote machine connecting to server
(
o = ServerOptions.new;
o.options.maxLogins = 2;
t = Server.remote(\remote, NetAddr("192.168.0.130", 57110), o); // set to correct address and port
// info about returned client ID should be posted in the post window
t.makeWindow; // make a window for monitoring
)