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