Re: Class library translation to Python

[email protected] Fri, 31 Jul 2020 10:27:41 -0400
Newsgroups gmane.comp.audio.supercollider.devel
Message-ID <CAOy-GW3OWur755PXnoZiMy4jrZ3LGLt71i9WAi4z5UXxd02gHg@mail.gmail.com>
Hi Lucas,

Sounds like a good idea to me! I started a Python client some years ago for
many of the same reasons: https://github.com/josiah-wolf-oberholtzer/supriya

You might be able to borrow some useful pieces from it. I was able to
reimplement some of SC's pattern system via Python generators. It also
supports SynthDef compilation, RT/NRT compatibility layers, tempo clocks,
and - more recently - asyncio-based implementations of server and OSC logic
so you can integrate it into Python's async ecosystem. Could be helpful,
although docs are lacking.

If you want to use continuous integration, I also figured out how to launch
scsynth in Travis-CI so you can build all pull requests there and test them
against a real SuperCollider server.

Cheers

On Fri, Jul 31, 2020 at 9:58 AM <[email protected]> wrote:

> Dear people
>
> From some time now I'm doing a translation of the main features of the
> SCClassLibrary from SClang to Python https://github.com/smrg-lm/sc3. It's
> still in alpha but it has the most important features, server control,
> synthdef building, routines and timing and sequencing.
>
> The main reason for doing this was Python itself. While working on
> different projects I realized that there are many things that would have
> been much easier to do and to interface with, and because Python is
> arguably a more accessible language for many people.
>
> There are many undecided things yet, I'm trying a different approach for
> patterns now because event and event streams are less practical in Python.
> Also, because there are no backward compatibility issues I implemented some
> historically wanted changes like removing muladd parameters from ugens and
> rename or reorganize things in Server and other classes. Also, because it
> is pure Python (so far and with no optimization, just trying to get things
> working right at first) I was playing with clock queues and logical time so
> as to implement an nrt mode that doesn't fragment the programming logic
> between rt and nrt (not finished yet).
>
> Besides it is a completely different language my intention is to keep all
> the good things and usability of the environment and some degree of sync
> with sclang's library and SuperCollider's idiosyncrasy.
>
> I'm letting you know so if there is someone interested in collaborating or
> making suggestions or just trying the thing out, I will be glad to hear
> from you. Also I want you to know that I'm very open to interaction with
> the main project if there is any interest at any time.
>
> Regards
> Lucas
>
>

-- 
Josiah Wolf Oberholtzer, PhD
http://josiahwolfoberholtzer.com