Supernova: Buses and Buffers


#1

Hi Everyone,

I know very little about Supernova, but monome just updated their norns software to use Supernova instead of scsynth. I read somewhere that Buses and Buffers have to be dealt with differently when using Supernova. Can anyone direct me to any documentation on how to do that by any chance?

Thanks,
Carl


#2

Hi Carl,

There’s no difference in using Buffers and Buses when using supernova, in my experience.

The only difference is that you can use ParGroup instead of Group to have synths run in parallel on multiple cores of your CPU. For synths inside a parallel group you can’t depend on their order of execution (i.e. you can’t have sound routed from one synth to another - nothing prevents you from doing that but the result is undefined).
You can still do that between synths in a regular Group, or between synths running in different ParGroups inside a regular Group, for example

// (not an actual code)
Group( 
    ParGroup1 ( 
        1000.do (SourceSynth) //sound sources
    )
    ParGroup2 (
        1000.do (DestinationSynth) //receive sound from SoundSource synths
    )
)

Best,
Marcin


#3

So, if I understand correctly, the parallelization benefit that Supernova gives us has to be dealt manually with ParGroups? or is it any benefit “behind the curtains” that gives more processing possibilities, like being able to handle more Ugens, maybe handling thing with less latency, or something like that??


#4

the parallelization benefit that Supernova gives us has to be dealt manually with ParGroups?

Yes

or is it any benefit “behind the curtains” that gives more processing possibilities, like being able to handle more Ugens, maybe handling thing with less latency, or something like that??

Handling more Ugens is implied by the first part (if you parallelize well). No change to latency.

-Brian