超级准直器3类库python 3端口
sc3的Python项目详细描述
SC3
从sclang到python 3的核心特性端口,3.6肯定可能是>;=3.5(不是 测试)。它的目的是以不同的语言作为同一个库,并且 以Python的方式保持斯朗优雅(如果可能的话)。
到目前为止,synthdef编译、例程和tempoclock几乎都不起作用。 我从抽象函数开始。基础知识还没完成,我还在学习 代码。而且我在功能转录方面不是线性的,更像是跳跃和 从一个地方到另一个地方迭代(重新访问和完成),以便获得整个 图片,sclang库具有自下而上和 上课。一切都处于非常早期的阶段。
代码仍然充满了学习的评论和参考(非常不专业,我
知道)大多数都是无用的,不要试着去理解,那些只是提醒
我自己。我会逐渐抹去它们。一些原始的sclang评论是
保存在python注释(# //
)中的代码中,每个文件都有一个
对源的引用(许多是显而易见的,但有些不是,有些名字是
因为不同的原因而改变)。
这个端口的主要原因是python与其他 适用于构图、音效艺术等的库,并能够 编译synth定义并将其发送到服务器非常方便。
我仍然不知道功能的范围是什么,我将得到什么 服务器抽象和交互肯定已经完成。第一个想法是 抄写模式也很容易,但是模式和事件对于 原因很多。
python不是实时语言,它比sclang有更多的抖动。同时 在我的笔记本电脑中,sclang在通话之间保持平均0.1毫秒的时间漂移峰值 对于python,我有5毫秒的峰值,这是相当多的。纯Python 实施并不能解决这个问题,我也没有低水平的打算 现在。这不是不可能,而是超出了我的范围。
对于许多用例来说,它并不是一个真正的交易破坏者,因为超级对撞机 算法会同步例程时间,不管是什么,但是如果您使用例程 序列音乐事件非实时编码会产生节奏不规则 (软实时降级)如果系统有点负载,特别是如果代码 很复杂,打了很多电话,即使不到1毫秒也太多了 开始添加。
尽管如此,我们的想法是可以用python编写与 sclang,关于多通道扩展的逻辑相同,参数 转换为控制单元等,应该是相同的结果。例如:
# not simplified required imports...fromsc3.serverimportServerfromsc3.synthdefimportsynthdeffromsc3.ugens.inoutimportOutfromsc3.ugens.oscimportSinOscfromsc3.ugens.envgenimportLinenfromsc3.nodeimportSynth# interactive shell run...s=Server.locals.boot()# wait or error...@synthdef.add()defsine(freq=440,amp=0.1,gate=1):osc=SinOsc.ar([freq,freq+1],mul=amp)env=Linen.kr(gate,done_action=2)Out.ar(0,osc*env)sine.dump_ugens()# wait or error, manually connect jack meanwhile...n=Synth('sine')n.set('amp',0.05)n.set('freq',220)s.query_all_nodes(True)n.release()s.quit()
这是一个有效的例子,但很多事情还没有完成或测试,有些是 没有决定,事情可能会改变或移动。
安装(在开发模式下)
pyliblo必须已经安装(从apt),如果 从pip下载,只在ubuntu 18.04上测试。
python3 setup.py develop --user
许可证
SC3拥有和它的起源相同的许可证:超级对撞机是自由软件 在GNU通用公共许可证第3版下提供。见 COPYING了解详细信息。