问题标签 [supercollider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
serialization - supercollider arduino 串行通信
我正在做一个 arduino uno + supercollider 3 项目。
基本上:我有一个带有电位器、传感器和一些按钮的 arduino。我将输入的数据放在一个数组中,然后通过串行发送到我的计算机。
目前,我在 Arduino 串行监视器中的输出如下:271:189:75:0:0:0:1:0:0:0:0:0
如果我在 Supercollider 中打开串行连接,得到的是:271
只有数组中的第一个值正确到达。(顺便说一句,只有 1 个 Arduino 输入到 Supercollider 的相同设置就像一个魅力。我只是无法让它与从 arduino 到 SC3 的一系列输入一起工作。)
此时发送数据的arduino代码:
我将所有数字放在一个字符串中,并以 : 作为分隔符,然后发送。
SC3代码接收:
还有更多代码,但那是用于指定 vars 和 args、定义合成器等。我把它限制在它不起作用的地方。
关于为什么 SC3 只收到第一个数字的任何想法?例如,我尝试替换分隔符: by 或 ;,将其作为多个整数而不是一个字符串发送,...
对我来说,它的目标是能够使用物理控制电位器控制超级对撞机中的各种合成器,因为这比键盘或鼠标控制合成器更有趣......
感谢您的帮助,谢谢!
scheduling - supercollider中的错误消息“调度程序队列已满”是什么意思?
我正在使用一个包含涉及TempoClock.default.sched
[我正在准备 MWE] 的函数的类。如果我创建该类的新实例并应用该函数,则会收到以下错误消息:
调度程序队列已满。
这条消息一直在重复。这是什么意思?
python - 使用 PyOsc 从 scsynth 到 python 的 OSC 通信
从 Python 到scsynth
via的通信pyosc
进展顺利,但是当尝试在 Python osc 中接收从scsynth audio server
(只是scsynth
,不是SuperCollider
)发送的消息时,我不明白如何让端口scsynth
发送到。
如果我尝试向它发送“/通知”消息,scsynth
它应该回复发送地址,但是pyosc
我无法在与发送端口相同的端口上设置侦听器,因此我无法检索应该出现的信息背部。
关于如何做到这一点的任何建议?
function - 在 Supercollider 中,我需要选择 Ndefs 来播放并从列表中停止前一个
嗨,我正在使用 mindwave 来通过 OSC 控制一些 Ndef。我需要编写一个从列表(例如[x,f])中选择下一个并停止前一个的函数。此外,我需要能够只播放第一个 Ndef(例如 x)而不是第二个(例如 f),直到我得到适当的消息(例如 msg[3])并同时停止 x。这是我的尝试,但没有按要求工作:
python - 如何为 beta 测试人员打包 SC 仪器?
我使用以下架构构建了一个示例仪器:
python 脚本从存储在磁盘上的 Redis 数据库中读取样本文件,并将 OSC 消息发送到超级对撞机,其中包含随机选择的 N 个样本的路径和间距。在 SC 侧,形成一个 MIDI 界面的按键被映射为选择和播放一个或多个相应的样本。
原型是功能性的,我想为测试人员发布一个测试版,但是我不知道如何打包它。一个似乎合理的选择是将其包装为 VST,但据我了解,SC 没有稳定的包装器,最安全的选择是将整个仪器重新编码为 VST。
另一种似乎更可行的选择是将其包装为独立的工具。我需要让 beta 测试人员安装 SC,还是有办法将 SC 服务器包装在可执行文件中?
关于这个问题的任何想法——即使它们偏离了我原来的方法——将受到高度赞赏。
python - Python-osc 消息发送到 SuperCollider
如何将相位和幅度的 FFT 信息发送到 SuperCollider 中的振荡器组?似乎我误解了一些东西,但无法弄清楚我的代码有什么问题:
所以我的振荡器库有 256 个 SinOsc,我想为它们发送幅度和相位信息,它们在那些数组中(幅度,相位)。但是 python-osc 不允许我这样做。它说:
ValueError:arg_type 必须是('f'、'i'、'b'、's'、'T'、'F')之一
那么我将如何正确构建该 OSC 消息呢?Python-osc 教程真的很小,在网上找不到任何帮助。我会使用 pyOSC 或 OSC,但 pip 无法安装它们,所以我坚持使用 python-osc。
振荡器组的 SuperCollider 代码:
dmplitudeReceive 故意用 d 命名。
audio - 如何以分贝为单位设置 SuperCollider 的音量?
我有一个简单的 SinOsc,它播放 432 赫兹的音调。我希望能够将该音调设置为 -97 dB。这是我到目前为止所拥有的:
尽管我可以看到如何编辑音量,但我看不到设置精确 dB 电平的方法。
如果您想知道我为什么要这样做,我需要一个音调来测试 24 位和 16 位音频。
如何设置精确的 dB 电平或进行监控以显示我所处的电平?
supercollider - 如何在数组迭代中等待?
[1,2,3].do { /* how to wait 1s here? */ }
我正在学习超级对撞机。我找到了 SimpleNumber.wait 函数,但我很快了解到它在“普通”函数中不起作用,只能在称为例程的某些“不同”类型的函数中起作用。
我故意停在那里问这个问题:有没有一种简单的方法可以在构造的每次迭代中暂停给定的时间someArray.do
?我所说的“简单方式”是指不需要学习十几个新概念并经历范式转变的东西。
注意:我知道我最终需要学习关于超级对撞机中的例程、任务和其他排序机制的整本大书,但现在我只想玩“玛丽有一只小羊羔”并称之为菜鸟的一天,没有必须先学习所有这些,然后才能让任何事情发生。
这可能吗?