问题标签 [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.
supercollider - 如何提供 Buffer.read 的相对路径?
所以我想使用相对路径将声音文件加载到缓冲区中。(我将我的东西置于版本控制之下,并且不想对有人可能在他们的文件系统上克隆 repo 的位置做出任何假设。)
因此,我最初假设如果我提供了一个看起来相对的路径,那么 SC 会将其解释为相对于正在执行的文件的位置:
但 SC 找不到该文件。所以我抬头asAbsolutePath
试了一下:
这也不起作用,因为 SC 无法从我的相对路径中计算出绝对路径。
...实际上在我的文件系统上返回一个不存在的位置。欢呼!
任何人都可以就我如何完成这项麻烦的任务提出任何建议吗?
audio - 是否有 C 语言的 SuperCollider(或类似的实时合成系统)接口(最好是 DLL 形式)?
我对在游戏引擎中使用 SuperCollider 的各种插件很感兴趣。但是我的编程语言 ( SwiftForth ) 中的 FFI 只支持普通的旧 C 语言 DLL 文件。
我知道对于初学者来说,我需要某种 OSC 接口。然后,SuperCollider 需要以某种方式运行。我还不知道如何在游戏中做到这一点的细节。
我还阅读了一些有关 SuperCollider 命令行界面的内容。这对我想做的事情实用吗?
我对建议和替代方案持开放态度,但唯一不可协商的是 SwiftForth。我已经编写了大量与引擎相关的代码,并希望添加实时合成以实现其独特性和灵活性。
linux - 没有千斤顶服务器的超级对撞机
我的项目中的一项要求是减少嵌入式系统上的运行时占用空间。它看起来jackd
在 Linux 上是必需的,并且看起来它目前是一个硬依赖,它不能libasound
直接使用,是真的吗?很高兴听到有人jackd
在嵌入式设备上使用并总结其资源使用情况。虽然,我打算使用具有相对足够内存的 BeagleBone,但我宁愿将它留给更长的延迟线,而不是运行jackd
.
supercollider - 没有 OSC 的超级对撞机
我过去使用过 PD,但现在我想尝试在这个项目中使用 SuperCollider。具体来说,我想研究控制协议并尝试将 OSC 换成 CoAP。
我想弄清楚scsynth
对 OSC 的依赖程度有多深?是否有一个简单的对象接口我需要实现或者它是整个代码?我尝试了一些greping,但有点困惑。
terminology - “类型”、“实例”、“类”和“对象”概念之间的区别
我试图理解类和对象的概念,我遇到了“类型”和“实例”这两个词。类型与类和对象的实例是否完全相同?或者两者之间是否存在差异,例如使用差异等?
audio - 使用 SuperCollider 录制 WAV 文件
我编写了以下代码来定义一个 SynthDef,它将声音记录到作为参数之一传递的缓冲区中。
我还有下面的代码,它为上述 SynthDef 调用 Synth 并尝试将缓冲区写入文件。
正在创建输出文件,但不包含任何声音。我究竟做错了什么?我浏览了所有我能找到的 SuperCollider 文档,但似乎没有任何效果!非常感谢任何指针。
supercollider - 为什么 Synth.new 不了解音阶?
我可以设置这样的比例:
然后我可以创建一个Pbind
像这样播放音阶的:
但Synth.new
似乎根本没有得到它(只会导致沉默):
有趣的是,如果我删除scale
参数:
然后我收到一张便条,但始终是同一张便条。它不响应degree
参数。
最终,我希望能够从外部 OSC 设备(我的手机!)触发笔记。这意味着连接OSCFunc
以侦听某些触发器,并在这些 OSC 事件发生时从音阶播放音符。我以为我可以使用Synth.new
insideOSCFunc
来实际弹奏音符,但它似乎不知道音阶,所以我有点卡住了。
任何人都可以就如何实现这一目标提供任何建议吗?
osc - 为什么这个解释器变量不被理解?
我正在尝试将 OSC 消息绑定松散地耦合到处理它们的函数:
我认为这很简单。我可以在任何时候替换 f ,因此随意处理来自路径的消息/2/push1
。
但是当我点击按钮(发送带有路径的消息/2/push1
)时,我收到一条错误消息:
所以我猜f
在调用中声明的函数范围内有不同的含义OSCFunc
。我想它有不同的Environment
?
我还尝试将函数放入常规变量中:
但这会导致相同的错误。
有没有解决的办法?当然,我不必OSCFunc
每次都在其中放置整个函数体吗?
processing - SuperCollider - 限制合成器实例
我正在试验 SuperCollider 和 Processing,本质上只是让 Processing 向 SC 发送消息(此时播放此音符等)。
但是,我在理解 SC 的一件事时遇到了麻烦:如果我制作了一个SynthDef
,并且假设我有各种来自 Processing 的 MIDI 音符,是否不可能只有一个合成器实例来处理播放所有音符?
现在,SC 正在为每个音符创建一个新的 Synth 实例,因此不可避免地,我得到了大量的实例。我一直在尝试Synth(
,Synth.new
但每种情况似乎都会为每个收到的消息创建一个新实例。
代码示例:
本质上,我创建了一个 SynthDef 和一个监听器。从 Processing 接收整数,将其映射到数组键以确定要播放的 MIDI 音符。但是每次触发监听器时,我都会得到一个 Synth 的新实例
supercollider - 为什么这个不返回的信封不会被重新触发?
我正在尝试使用不返回信封(即其中的段不返回 0)。我发现env
在以下代码中不能多次触发信封:
我希望的是,每当重新触发合成器时,音调会越来越高。实际发生的是第一个音符播放音高包络,而每个后续音符都处于最终(即高)频率。env
显然没有被重新触发。
我不确定为什么会这样。信封不必在重新触发之前返回 0 - 完全有可能在完成之前重新触发信封。我的信封有些东西坏了。
我基本上是在寻找具有 的行为的东西Line
,但也能够被重新触发并具有可定制的曲线。
我正在尝试做的事情可能吗?