{ "info": { "author": "Lucas Samaruga", "author_email": "samarugalucas@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6" ], "description": "sc3\n===\n\nPort of core features from sclang to Python 3, 3.6 for sure maybe >= 3.5 (not\ntested). It is intended to be the same library in a different language and to\nkeep sclang elegance in a pythonic way (if possible).\n\nSo far SynthDef compiles and Routine and TempoClock are barely working, for that\nI started form AbstractFunction. Basics are not finished, I\u2019m still studding the\ncode. Also I\u2019m not being linear in feature transcription, more like jumping and\niterating (revisiting and completing) from place to place so to have the whole\npicture, sclang library has features integrated from bottom up and between\nclasses. Everything is in a very early stage.\n\nCode is still full of study comments and references (very unprofessional, I\nknow) most of them useless, don\u2019t try understand, those are just reminders to\nmyself. I will be erasing them gradually. Some original sclang comments were\nkept in code with two slash within python comments (`# //`) and each file has a\nreference to the source (many are obvious but some are not and some names were\nchanged for different reasons).\n\nThe main reason for this port is Python's capacity of interaction with other\nlibraries applicable to composition, sonic-art and alike, and to be able to\ncompile synth definitions and send them to the server is very handy.\n\nI still don't know what would be the scope regarding features, what I will get\nfinished for sure are server abstractions and interaction. The first idea was to\ntranscribe patterns too, sounds easy, but patterns and events are a big deal for\nmany reasons.\n\nPython is not a real time language, it has much more jitter than sclang. While\nin my laptop sclang maintains an average 0.1ms time drift peak between calls\nwith Python I have peaks of 5ms which is quite a lot. A pure Python\nimplementation will not solve that and I don\u2019t have intentions to go low level\nby now. It is not that it is impossible but that it is out of my scope.\n\nIt is not really a deal breaker for many use cases because SuperCollider\nalgorithms sync routines time no matter what but if you use routines to\nsequence musical events non real time code will produce rhythmic irregularities\n(soft real time degradation) if the system is a bit loaded and specially if code\nis complex and make many calls, and even less than 1ms is too much when it\nstarts to add.\n\nHaving said that, the idea is that you can write the same in Python as in\nsclang, with the same logic regarding multichannel expansion, arguments\nconversion to Control ugens, etc., it should be the same result. For example:\n\n```python\nfrom sc3.all import *\n\n# interactive shell run...\n\ns = Server.local\ns.boot()\n\n# wait or error...\n\n@synthdef.add()\ndef sine(freq=440, amp=0.1, gate=1):\n sig = SinOsc.ar(freq) * amp\n sig *= EnvGen.kr(Env.adsr(), gate, done_action=2)\n Out.ar(0, sig.dup())\n\nsine.dump_ugens()\n\nn = Synth('sine')\nn.set('amp', 0.05)\nn.set('freq', 220)\n\ns.query_all_nodes(True)\n\nn.release()\ns.quit()\n```\n\nThat's a working example but many things are not finished or tested and some are\nno decided, things may change or move.\n\nInstall (in develop mode)\n-------------------------\n\n```\npython3 setup.py develop --user\n```\n\nLicense\n-------\n\nThe sc3 library holds the same license as SuperCollider: sc3 is free software\navailable under Version 3 of the GNU General Public License. See\n[COPYING](COPYING) for details.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/smrg-lm/sc3", "keywords": "SuperCollider sound synthesis music composition", "license": "", "maintainer": "", "maintainer_email": "", "name": "sc3", "package_url": "https://pypi.org/project/sc3/", "platform": "", "project_url": "https://pypi.org/project/sc3/", "project_urls": { "Homepage": "https://github.com/smrg-lm/sc3" }, "release_url": "https://pypi.org/project/sc3/0.0.5/", "requires_dist": null, "requires_python": ">=3.6", "summary": "SuperCollider 3 class library Python 3 port", "version": "0.0.5" }, "last_serial": 5933723, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5745978b91b56fd0b61d5bc30c05f41b", "sha256": "0b850a2136d115b445c177025aabda6aa5b437a0c20d2185001dd58077b3273e" }, "downloads": -1, "filename": "sc3-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5745978b91b56fd0b61d5bc30c05f41b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 153543, "upload_time": "2019-07-23T04:50:16", "url": "https://files.pythonhosted.org/packages/68/99/262d51f37de03e36b083335fdd6712b686721d656d6e01355ea7ae77c1d8/sc3-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65d5993f674596c79ab8f68a85968afd", "sha256": "15a6bc011225264df6470b059990517c17e9c3c73676621f65246d41029e5a90" }, "downloads": -1, "filename": "sc3-0.0.1.tar.gz", "has_sig": false, "md5_digest": "65d5993f674596c79ab8f68a85968afd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 127898, "upload_time": "2019-07-23T04:50:20", "url": "https://files.pythonhosted.org/packages/5b/1a/d0e05376f678bceac311d9219aeffc41441e861033cf3123c5a6370f7cc9/sc3-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7d4cd1d266fe36b4a3754509a7744d48", "sha256": "17d4244dc065a5a79fb278c7f61325867181efabbf771b842a24b0a0c1b25113" }, "downloads": -1, "filename": "sc3-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7d4cd1d266fe36b4a3754509a7744d48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 153541, "upload_time": "2019-07-23T05:13:18", "url": "https://files.pythonhosted.org/packages/a8/af/42e7cd369ef1befabb866481ac688c2e9ab3b7c90070e2ace72ce73b43e4/sc3-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43d85abe5582963c8cd17b42fe02c59f", "sha256": "bef7eb38126f9a1d72be797d6fe4a21b00ac7ee02070d6058fed8416ea93960b" }, "downloads": -1, "filename": "sc3-0.0.2.tar.gz", "has_sig": false, "md5_digest": "43d85abe5582963c8cd17b42fe02c59f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 127624, "upload_time": "2019-07-23T05:13:20", "url": "https://files.pythonhosted.org/packages/2f/3c/bc3cc090d7bf2a70f3e2058a8658e20adf32e754a3655a11fe45ac12ed49/sc3-0.0.2.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "98640ed83c96da136cffc4a64beeb18f", "sha256": "1040966cd94322ac24b7697832e355edcc14472fdaffa2307610957104fb6c7c" }, "downloads": -1, "filename": "sc3-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "98640ed83c96da136cffc4a64beeb18f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 184935, "upload_time": "2019-10-05T01:20:39", "url": "https://files.pythonhosted.org/packages/af/22/c818bf4146fedeec9957a2c5b8e73d220ee12285254181643e631ff55c35/sc3-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f92a8e528d5fff2ef59814b15b674c27", "sha256": "f7072708c9be7bbef5c2ca5e41deb01a5d18e2d7a946307b051d16141a52b0e7" }, "downloads": -1, "filename": "sc3-0.0.4.tar.gz", "has_sig": false, "md5_digest": "f92a8e528d5fff2ef59814b15b674c27", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 153119, "upload_time": "2019-10-05T01:20:41", "url": "https://files.pythonhosted.org/packages/8c/9c/434453b6807697f2650167f79d298b5c90a1500f72fa8d87f102b1c15124/sc3-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "fb49297c6b0933c40de4f220940a159d", "sha256": "918574c2337bca3490c2cfc4ab82412ad927dc495b825b314efa664e35d9e2f7" }, "downloads": -1, "filename": "sc3-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "fb49297c6b0933c40de4f220940a159d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 190509, "upload_time": "2019-10-06T03:31:01", "url": "https://files.pythonhosted.org/packages/74/b3/dc69ea8a5b154437620f44ba67b7bb7f69d8b5cea0d61735bd02fbff6aff/sc3-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7ac281b6203107b4f0bb84d987c7744", "sha256": "bc4ee89629d4899fcb187d4f590333e0c4f9c723b4ffcadbbb9dc12f21fc9cb9" }, "downloads": -1, "filename": "sc3-0.0.5.tar.gz", "has_sig": false, "md5_digest": "c7ac281b6203107b4f0bb84d987c7744", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 158522, "upload_time": "2019-10-06T03:31:04", "url": "https://files.pythonhosted.org/packages/37/a4/fb367618fbc61755209a2a51f6ccd8c83699ae859c6913137a39008c66f2/sc3-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fb49297c6b0933c40de4f220940a159d", "sha256": "918574c2337bca3490c2cfc4ab82412ad927dc495b825b314efa664e35d9e2f7" }, "downloads": -1, "filename": "sc3-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "fb49297c6b0933c40de4f220940a159d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 190509, "upload_time": "2019-10-06T03:31:01", "url": "https://files.pythonhosted.org/packages/74/b3/dc69ea8a5b154437620f44ba67b7bb7f69d8b5cea0d61735bd02fbff6aff/sc3-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7ac281b6203107b4f0bb84d987c7744", "sha256": "bc4ee89629d4899fcb187d4f590333e0c4f9c723b4ffcadbbb9dc12f21fc9cb9" }, "downloads": -1, "filename": "sc3-0.0.5.tar.gz", "has_sig": false, "md5_digest": "c7ac281b6203107b4f0bb84d987c7744", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 158522, "upload_time": "2019-10-06T03:31:04", "url": "https://files.pythonhosted.org/packages/37/a4/fb367618fbc61755209a2a51f6ccd8c83699ae859c6913137a39008c66f2/sc3-0.0.5.tar.gz" } ] }