SuperCollider On Organelle

~organelle = Server(“organelle”,NetAddr(“192.168.1.106”,57110));
~organelle.boot;
SynthDef(“sine”, { Out.ar(0, SinOsc.ar(440, 0, 0.2)) }).send(~organelle);
~organelle.sendMsg(“s_new”, “sine”, n = ~organelle.nextNodeID, 0, 1);
~organelle.sendMsg("/n_free", n);
Server.default = ~organelle;
a = Synth(\sine );
a.free;
[/quote]

do i run this stuff in my supercollider on the mac or does it go in the ssh window too?

cause i get
-> organelle.local
WARNING: Server organelle.local not running, could not send SynthDef.
-> a SynthDef

maybe i need to restart SC locally, sorry for all the questions i just need to get it working once then i’ll be fine

ok, you don’t need all that stuff :slight_smile:

the easiest way to do this is:
a) start the Empty.sc on the Organelle
… this will give you a booted server, that is all initialised with mother.scd, so you have knobs/display access.

b) on mac start SC, and connect to remote server, and make it your default server (optional, but easier for beginners ;))

s = Server.remote("aServer", NetAddr("organelle", 57110),nil, 1);
Server.default=s;

now you can start patching…

SynthDef(\testSynth,
    {
        arg freq=440,gate=1,cutoff=440;
        var sig,env,amp=0.3;
        sig = Saw.ar(freq);
        env = EnvGen.ar(Env.adsr(),gate,doneAction:2);
        sig = sig * env * amp;
        sig = LPF.ar(sig,cutoff.clip(10,24000));
        Out.ar(0,sig!2);
    }
).add;

a = Synth(\testSynth);
a.free;

of course SC has a very capable client/server architecture, so lots more options are possible, e.g. you dont have to make it the default server, you can register and play things explicitly, useful if you are using multiple servers from one client.

anyway these things are probably best discussed in an SC forum… as frankly im a SC newbie (albeit a technically inclined one ;))

EDIT:
if your creating patches for the Organelle using a remote client, you will have to contend with all the ‘normal’ SC lang vs server differences i.e. which features are SC are client and which are server.
this is too big to go into here, but bare in mind things like osc and midi are client not server,
this is why i use OSC proxy to do organelle patch development on a mac.

1 Like

So could I go to the SC category on patchstorage and load any of those and play them on the Organelle after downloading this? While I’m at it. I was wondering the same thing about pdextended on patchstorage as well.

a bit like PD, whilst SC on the Organelle will run any SC patch (assuming ugens are available/installed), really your going to want to adapt it to use the display and pots.
if you look you will also see an example SC patch i published which shows how to do this.

ive not recently spent much time on SC, as busy on so many projects, so not taken this as far as id like… but as far as i know all works ok.

(hey perhaps one day, i could do an Orac for SC :wink: )

3 Likes

now you haz my interest

a little bump on this… as Ive been digging SC for the last few days …
and wondering where to go with this on the Organelle :slight_smile:

some background…
recently , I was messing with getting Monome Norns running on the rPI, which uses Lua + Supercollider.
Ive no intention of moving this to Organelle, as its just to cpu intensive for a ‘vanilla organelle’ which has a single core - also its possible some of the required software wont install (due to the old version of arch linux used)

but it did re-ignite my interest in SC.

last few days Ive been playing with Bela Salt (a Linux based Eurorack module) , Ive been doing two things with this…

a) running Crone (the SC part of Norns) on Salt, then using a rPI running Norns to interface to it.

b) running Scsynth on Salt and a SCIDE on a laptop, and doing some ‘live coding’ (great fun with a modular).
(of course, I could have used a rPI+hdmi display too, but a laptop is more convenient )

really these are kind of related, its the idea of using the client-server nature of SC to split the processing load over ‘machines’

so started to wonder how I might use Organelle is such a setup…

Im thinking, I could use it as a backend, similar to how im using Salt, this already works…
but seems some kind of ‘front-end’ makes more sense, or a backend perhaps with some UI control… given the Organelle has a UI.

I thought perhaps making it Norns ‘engine’ compatible (had the same thought with Salt), but Ive kind of thrown that into touch, as Norns engine have to be compiled, and that loses the dynamic/live coding side that is a real attraction to me of SC.


Im not that interested in using SC for running synths/fx, we can already do this in PD, Im interested in how it can do something thats not so viable in PD - hence live-coding.
Im also not that interested, in building up lots of layers like tidalcycles etc, as I quite like using the ‘raw’ SC, which the proxy space/ndef stuff , even if it is a bit more verbose.


although there has seems to have been little interest in SC on Organelle,
I thought Id give this thread a little bump to see:
partly because my experience is growing with SC, so Im likely to come back to do a bit more on this,
and partly to see, if anyone has interest in this area, and where their interests are.

anyway, just a bump, see if others imagination has been sparked…
and if they have got deeper into SC of late (with or without Organelle) and where they are going with it

2 Likes

I just got my interest in SC kindled and am especially interested in the fact that it’s more straightforward for me to program algorithms in scLang as opposed to the graphical environment of Pd. But I guess my macbook or a raspi with a pisound card will be more suited for this than the organelle.

1 Like

I think it all depends what you want to do… for sure there are limitations on the processing power on the Organelle, so comparing it to a MacBook is apples n oranges - but its still very useable with SC.
you just need to experiment to see what is possible , a bit of synthesis and effects is fine, but don’t expect huge reverbs or things needing ffts.

whats nice with both SC and PD, is if you bare in mind the restrictions, you can develop on the comfort of your MacBook, then just transfer it over to the Organelle once the main development is done.

rPI vs Organelle, the difference will not be huge for SC , since by default SC does is single-threaded (so cannot use multiple cores efficiently).
supernova (the SC multi thread engine) does not appear that stable on the rPI if you look over at lines, you will see the monome are rolling back Norns away from supernova due to instability. though oddly, on my rPI + PiSound Ive never seen an issue so far.

Im still experimenting with SC on both Organelle and rPI, as like you I actually prefer text languages to graphical patchers… and I also really like the live coding side of SC (jitlib).
I definitely hope to be continue my explorations over the next few months :slight_smile:

Well I’ll start by installing SC on the organelle and see what can be done, in terms of synthesis. The object oriented approach of SC is indeed intuitive to a programmer. I’m especially interested the algorithmic generation of drones and soundscapes to integrate in my guitar rig.

1 Like

Hi there !
Thank you Technobear for making SC an option on the Oganelle. I’m new to SC. And getting more comfortable with it. It’s really a different approach than PD and you get much more organic result I find. Not really in the sound synthesis itself, but rather in the way of making instruments.

Now for a quick question :
How do I get access to the “function” button on the Organelle. Not sure how to call it, the button next to the keyboard under the led. I don’t see any callback for it in your example.

Thank you !

Jesse

I’m also interested in checking the mother SC patch ? I tried unzipping the SC_install files but could not find the mother patch.
Thank you
Jesse

I released the supercollider mother (mother.scd) as part of the Organelle OS (3.x)
so its in /root/mother.scd
but you can also find it online here:

you mean the aux button?
similar procedure as others callbacks
(knobs~, notes~, ~encoder_turn, ~encoder_button, ~footswitch)

~auxfunc = {
	arg func, msg, key, vel;
	if(vel>0 , {
    	~led.value(1);
	} , {
		~led.value(0);
	};)
};

~aux.addDependant(~auxfunc);

I’ve been concentrating on Orac recently,
but I do want to return to SC once thats completed…as Ive really been enjoying messing with supercollider recently particularly the whole pdef, ndef side which I think is really cool :slight_smile:

ideally I want to do is extend Orac so that it can have a supercollider backend, this is actually not that far off, as most of Orac is actually the C++ backend, this is what handles all the parameters etc, so its “just” a matter of switching the interfacing code to talk to SC rather than PD… anyway, more experiments need to prove the concept :slight_smile:

2 Likes

Hi Mark !

Thanks for the info. I didn’t suspect the mother patch to be already part of the Organelle package. But I suppose it makes sense. Yes the “aux” button, that’s the one ! Thank you for that too.

I checked out your Orac work when it was released. Such a great tool, and I was drawn to it because you also had the MI ports included. My first ever eurorack module was Rings, I love physical modelling, and Emilie’s work and the open source vision she has is a great addition to the musical world !

Yes, the pdef/pbind combo is a really interesting metaphor for sequencing. I’ve been having a lot of fun making organic, nearly nature sounding patches with it. And I want to bring that to the Organelle. I’ve started with a simple supersaw patch using the great sounding VarSaw. I’ll clean it up and add it to the patch storage database, apart from your example patch I didn’t see any other synth in SC on there.

And I didn’t know about ndef, looks very interesting too. SC, feels like digging inside a mine to find new treasures.

If you need someone to test out an ORAC -> SC workflow let me know !

Thanks again for all your hard work !

Jesse

3 Likes

that would be really cool…
I really wanted to do a full fledged example showing why SC is so cool on the Organelle, but also really needed to finish the work I was doing on Kontrol/Orac on the PD side - so ended up stopping once I had the basics in place - hoping someone would go from there…

but, I think SC on the Organelle is in a bit of a ‘chicken n’ egg’ stage
PD is definitely ‘easier’ for non-programmers, due to its visual nature, and theres lots of examples, to build on - but also to demonstrate why its so cool.
but with no examples for SC, most are going to say “why sc?, Pd works?”, and also when you first approach SC, it can be pretty intimidating, so if you have no simple examples - it’s hard to know where to start … so you really are looking for Organelle owners who are experienced SC programmers, and thats quite a small subset I suspect :wink:

but I do think SC offers a lot for the Organelle, my personal thoughts are its better for more complex patches - as generally, imho, visual patching starts to breakdown when patches get really bit.

what Im keen to see though it how well SC performs on the Organelle, compared to PD for more complex patches - theoretically I think it should be better, but we will only know when we try :slight_smile:

1 Like

Yep, I’ve started with visual programming languages myself, mainly for visual work. But when I started to grasp the power of a scripted language with arrays and objects, etc, I knew I needed to find this flexibility for music creation too.

I’ll take the time to “really clean up” the patch and comment it as much as I can then. :wink:
Well, I’m glad to be part of this small subset then !!

I’ll let you know when I put the patch online.

Thanks

2 Likes

Hi Mark,

I’d like to limit the polyphony of my supersaw patch before I put it online. I’m not sure what would be the best method for that. I’m using your dictionary method for the moment. But the processor will hit its limit around 16 note polyphony. It’s not simple to keep track of the oldest note and still have access to the pitch of each note to release them when needed. Any pointers ? Haven’t really found any info online. Everyone seems to create a 128 entry array and never bother limiting polyphony ! :wink:

Thanks

Jesse

I am quite unable to actually help with this problem, as sc is still confounding to me. But I know technobear is busy this week with orac, and thought you might have some luck here if you haven’t found this forum.

Its relatively new and unindexed, found it through lines. Not too active, but definitely a lot of people asking questions and getting answers.

And I am really excited to see a proper organelle patch with sc which is why I hope you figure this out!

1 Like

yeah apologies @vjess , I will get back to you as soon as Orac 2.0 is out the door.

realistically, it’ll likely be next week, as the eurorack stuff is released on Friday, but then I’ll no doubt be doing all sorts of followups on things, as people start playing with it over the weekend.

Hi @miker2049 !
Thanks for the link to the forum. I’ll check it out. (Need to spend more time on the lines website…).

And no worries @thetechnobear, Orac 2.0 looks amazing, I didn’t realise you were taking it to so many different platforms. Its amazing work, and so nice of you to share it with the community.

I’ve spent nearly 8-10 hours trying to fix this polyphony issue. I need to move on, so I’ll leave it here for the moment. I’m aware that polyphony handling isn’t a very simple coding issue to tackle. But I was so close to getting a working system. But it never completely worked :frowning: !

Hi,
the link on github to download the mother.scd patch is not working anymore.
Can you share it again, please ?
thxs