can csound patches (or nord modular) be converted to supercollider?

i debated where to post this and whether piggybacking on an existing thread would make more sense

for now, i think my questions are distinct and i’ll explain why

my long term goal? i’m interested in tackling development of an app for norns which can play nord g1 and/or g2 patches in some way

what sparked the idea? last night i revisted info for geeks who dig nord synthesis, mainly some of the emulation and conversion options

i figure “if you can convert g1 to g2, plus hear, play and perform most patches via csound, wouldn’t it be cool to build synth engines for norns and map controls from the numerous nord modular patches available?”

so here are my questions:

  • is it possible to convert a csound patch into supercollider? (csd to scd)

  • would it be better to try pch-to-scd instead and skip csound as an intermediary?

  • is there a way for lua to interact with csound files directly?


speaking as someone who has a fair amount of Csound experience, but not really much SuperCollider experience.

is it possible to convert a csound patch into supercollider?

the quick and easy answer to this is “no”, practically speaking. But let’s settle on the “it depends”.

The Csound/Supercollider paradigms are fundamentally different from one another. So you can’t build a csd to scd converter. However, they share certain commonalities.

The Csound orchestra syntax can be used to unambiguously define an audio graph composed of pre-defined opcodes at control rates and audio rates. In theory, if you had equivalent opcodes implemented as Supercollider UGens, you should be able to define an equivalent audio graph using SC syntax. In theory. You’d basically need to parse a Csound instrument, get it’s graph representation, then use that intermediate representation to generate SuperCollider. A tall ask, IMO. And not worth the time.

would it be better to try pch-to-scd instead and skip csound as an intermediary?

I think so, yes. Absolutely.

is there a way for lua to interact with csound files directly?

There are several entry points. Lua programs can generate CSound files. The Lua API can interact with the Csound API. Lua can be used as a score pre-processor. And there are also the Lua Opcodes in Csound.

1 Like

This was the core question and i really appreciate your answer

Norns will run Csound tho, no?

surely it can but i don’t think there would be any advantage over running these patches on my laptop

for me, easy access to creative control via lua is the appeal of trying to translate pch’s into norns native dsp format

1 Like

I was thinking controlling Csound from OSC, just like norns controls SuperCollider from OSC.

I did a quick sudo apt install csound on norns, googled for the simplest “hello world” kind of beep which worked fine. I don’t know how Csound would listen to OSC but from googling it looks like it does it too.

(I am unfamiliar with Csound actually, just throwing the idea in there as it might allow reusing existing goodies without rewriting – I don’t even know what are pchs but i know norns is a full-on GNU/Linux computer with cute display and knobs and Lua layer on top :wink: sorry I don’t mean to be unhelpful/counterproductive/whataboutist)

yeah, 2 questions

  1. csound on norns

i like csound quite a lot and would be happy to help with controlling a csound patch from norns lua.

we’ve always intended to more directly support other engine types besides supercollider classes. that’s why there is such a deliberate decoupling between the layers with OSC as the connective tissue.

so, the basic technical problem is an easy one: use OSCinit in the top scope of a .csd file to select listening port, use OSClisten in a csound instrument definition to receive data, send OSC from norns-lua. (alternatively, use a virtual MIDI port.)s

of course there are about a thousand details on both ends to sort out but the basics are straightforward.

  1. g2-alike in supercollider

i agree with paul, this seems doable in theory but practically who knows. i’m optimistic. i’m not familiar with norns modular enough to know which modules are straightfoward and which are “secret sauce.”

i think i’d encourage a more creative / personalized approach than attempting to create an automatic patch conversion system. (that is: identify what you like about the patch and we can work together to do some supercollider stuff that gets you in the territory.)


thanks for all the feedback everyone…i’m most inclined to try this method especially since it’s a great reason to try non sc engine building