[CM] Worthwhile to explore realtime-friendly GC strategies for s7?

Christos Vagias chris.actondev at gmail.com
Sat Apr 10 02:54:59 PDT 2021

Hi Iain,

https://gamelisp.rs/ might be of interest to you and/or Bil, quoting
from their website:

"GameLisp has a unique garbage collector designed specifically for
game development.
It runs once per frame, every frame, without causing any latency spikes"

What kind of/how much computation are you doing in your scenario
with scheme? That's interesting to know

Some other kind of relevant things:

Meanwhile, I'm also planning to integrate puredata. At the moment I
have created some
basic bindings for RtAudio and did my first "audio hello world":
generating & outputting a sine
wave from s7 (the cpu gets high though ~10%). Before diving any deeper
I want to check
some c-define/c-load equivalent to off-load heavy computations into C
code, but without
losing the REPL-driven development.
>From what I've seen Bil's strategy is generating c files (from sheme code)
and then compiling with gcc & linking while s7 is running.

A strategy I want to check is using tinycc, which is an embeddable C99
compiler, which (I think)
works in linux, windows, and mac! Maybe that's also worth it checking out!

Also, would you care to share any video walkthrough of how you're
using scheme4max
(apart from basic tutorials)? :)

On Sat, 10 Apr 2021 at 01:38, Iain Duncan <iainduncanlists at gmail.com> wrote:
> Hello Bill and colleagues, this is mostly a question of curiosity, though potentially also a question of "wonder what would make a good phd topic in a couple of years".  I'm getting pretty good results running complete s7 sequencing environments in Max so long as my latency setting is high enough to be able to handle some fairly large bursts. I run the gc automatically every 100 to 300 ms and that seems to work pretty well at taming the bursts, but they are still there, introducing constraints at what I can do with lower latency (but surprisingly capable to be honest!).
> I'm just curious to hear thoughts. Would trying to put a more real-time friendly GC strategy into s7 be possible, feasible, worthwhile, etc? I know next to nothing yet about the various ways GCs work, but I'm getting lots of support (from my supervisors at least) for working on Scheme for Max and Scheme for PD as worthwhile long term projects, and I'm definitely interested in looking under the hood more.  I'm not really interested in the no-GC approach used by things like Extempore and Carp, as the whole advantage for me is the high level dynamic coding, but if making the GC more real time friendly is not a fool's task, it could be something I might be able to work towards in the long run
> Thoughts welcome!
> iain
> _______________________________________________
> Cmdist mailing list
> Cmdist at ccrma.stanford.edu
> https://cm-mail.stanford.edu/mailman/listinfo/cmdist

More information about the Cmdist mailing list