Using SC2 in sheepshaver OS9 emulator

Don’t laugh! I wrote some code in SC2 about 20 years ago for a specialist application and now I need to use it again for a gig that’s coming up. Its just too long and complicated to translate to sc3 or some other language/environment. I never learnt SC3 so I’d have to learn it and am a little too busy to do that right now. So I was thinking of using some OS9 emulation software, sheepshaver, to host a copy of SC2 on a macbook pro (2012).

My question is has anyone done this before-- will it work? I would need to obviously use audio IO…

Secondary question-- how hard would it be to translate sc2 code to sc3 (it’s quite dense and uses a lot of gui ugens) for someone who’s never coded in sc3?

Any insights would be well appreciated!

I’ve never used an OS9 emulator, so I can’t comment on that.

I can say that SC2 and SC3 are structurally very different. Translation isn’t likely to be a simple matter.

hjh

thanks for the reply-- I thought that much just having a cursory look at sc3. I’ve managed to get the emulator working, now just have to install sc2…

so far so good, emulator working, sc2 downloaded and installed-- actually runs in emulator, but when i try to run some code the any UI will draw but:
• ERROR: There is no sound driver loaded… so I might need to find an old os 9 driver…

Good luck,

& if you make it that far… Curtis Roads still has releases for the legacy software he’s created for Mac OS9 Classic.

Pulsar Generator & Cloud Generator

1 Like

Thanks, anything Curtis Roads made would have aged well I’d imagine…

if I get it working I’ll post back-- might be useful later on for someone who is a similar predicament to me.

OK figured it out.

the asio driver that comes with sc2 doesn’t work in emulation mode (via sheepshaver). Instead I needed to download this prosonic driver:
https://ronaldpr.home.xs4all.nl/sheepshaverforum/prosoniq_asio_driver.sit.hqx

I had to remove the asio driver that comes with sc2 and put the prosonic driver in the ASIO drivers folder that comes with sc2. Then start sc2, configure the File… Audio Setup … quit, restart the sc audio works (well pink noise comes out, haven’t check input yet). I also made sure the host OS (10.14.6) sound was 16 bit int 44.1 kHz… to match the driver settings… not sure if this is necessary but someone mentioned it during my scrolling through various forums…

Fantastic!

Screenshots? :crazy_face: I used SC2 for about a month before switching to SC3. It would be wild to see the old GUI just for old times’ sake.

hjh

Screen Shot 2021-10-20 at 10.49.50 pm

This is your standard SC startup window, note the Prosoniq ASIO driver in the log


and this is a screen shot of my little sc thing I needed to run-- seems to work at first glance;
also tried analog bubbles… remember that? A rush of nostalgia! supercolllider is great!!

1 Like

Oh, wow. That takes me back :exploding_head:

hjh

Hmmm seems I spoke too soon. Audio out via internal speakers works, and if I plug headphones into built-in headphones/lineout socket that works too. But no audio input works. Cannot access the computer’s internal mic. The driver seems to be output only, doesn’t see/create any input buffers. Also the driver output buffer is hard-coded to 8192 samples, so there’s a significant latency… not really useable from a practical point of view, except maybe to write audio files as output from a synth process (assuming that writing to file works).
So I may need to translate from sc2 to sc3 after all, as I need audio signal in.


there you go, managed to get pulsar generator working-- it sounds like it looks!

1 Like

Interesting… aside from admiring the crafstmanship, I notice it appears to be a developers edition, and one he intended to use for selling ‘PulsarCredits’… at this rate I’m sure there’s no code available.

Are you going to make it in time for your gig?

so far so good, emulator working, sc2 downloaded and installed-- actually runs in emulator, but when i try to run some code the any UI will draw but:
• ERROR: There is no sound driver loaded… so I might need to find an old os 9 driver…

you’ll need the Prosoniq ASIO driver…
http://web.archive.org/web/20160626162317/https://ronaldpr.home.xs4all.nl/sheepshaverforum/prosoniq_asio_driver.sit.hqx

put this into the ‘ASIO drivers’ folder that comes with SC2 and restart sc.

sc2 audio setup…
Prosoniq ASIO
44.1 KHz
internal
8192
64

sheepshaver audio settings:
output device: /dev/dsp
mixer device: /dev/mixer

good luck,
_f

#|
fredrikolofsson.com musicalfieldsforever.com

Hey redFrik and Rainer,
sorry haven’t acknowledged your responses-- my notifications were going to my junk mail folder.
Anyway, I’ve decided to translate my code from sc2 to max/msp, as the prosonic driver doesn’t have an audio input. It’s kind of interesting to go from a text-based thing to a data-flow paradigm. One line of code in sc generally manifests as a fairly convoluted patch in msp-- I forgot how idiosyncratic max is, to do the simplest thing – if there isn’t an object to do it, it takes a lot of actually quite low-level manipulation to implement in max. But this is the wrong forum for that!
Thanks for your interest and advice.

1 Like

It took me about a year of teaching Pure Data to get more comfortable with it. Eventually I realized that there are a few key patterns that are good entry points into typical problems: 1/ feed data back to a cold inlet of a storage object, to be available for the next iteration; 2/ feed data forward to a cold inlet of a storage object, to be available for a (perhaps much) later bang; 3/ using a trigger object at the top to drive a three-stage process (initialize, run, and bang final output). E.g., accumulating a list, the three stages would be: init/ clear the list storage object (actually you might need two of them); run/ each cycle appends to the list (which will also feed back to cold = pattern 1) and saves it in a final-output storage object; final/ bang the output storage. It looks ghastly but there is a way to explain it.

But I’m not aware of anywhere that presents these in a systematic way – so then algorithms become mysterious, convoluted things. Even with these patterns though, patching seems more cumbersome.

“Wrong forum” indeed but it’s not bad to be aware of other methodologies.

hjh

2 Likes

Yep the most important objects are trigger, to get execution order correct, and then int, float and zl reg for storage and recall of variables/lists… thanks!

This insight in itself can be enough to cause one to take the which side of the fork in the long run…

Good luck. :v: