Ok, wow!
Just thinking about porting my 7000 line code to Pure Data or Max makes my head ache:)
Sure! If you have already written your project in SC, there’s not much point in porting it to Pd or Max unless you really hit a wall.
…because you can immediately handle the MIDI notes on the audio thread with no additional latency involved.
?
Pd is synchronous: for every block of 64 samples, Pd first does all the messaging (including clock timeouts, network I/O, MIDI I/O, etc.) and then does the audio processing. This means you can, for example, receive a MIDI message, send some Pd messages in turn and Pd will immediately turn it into audio. Also, any sequencing in Pd is perfectly sample accurate by default! There is no notion of “Server latency”.
SC is asynchronous: MIDI is received in sclang, then you need to send a message to the Server, which is (hopefully) received as soon as possible and then turned into audio. Even without Server latency, you may get a delay of a full hardware buffer size in the worst case. And then there is also language jitter.
Personally, the synchronous and deterministic nature of Pd is one of the reasons I still prefer it over SuperCollider, even though patching takes much more time than writing sclang code.