问题标签 [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.

0 投票
1 回答
2929 浏览

supercollider - 如何提供 Buffer.read 的相对路径?

所以我想使用相对路径将声音文件加载到缓冲区中。(我将我的东西置于版本控制之下,并且不想对有人可能在他们的文件系统上克隆 repo 的位置做出任何假设。)

因此,我最初假设如果我提供了一个看起来相对的路径,那么 SC 会将其解释为相对于正在执行的文件的位置:

但 SC 找不到该文件。所以我抬头asAbsolutePath试了一下:

这也不起作用,因为 SC 无法从我的相对路径中计算出绝对路径。

...实际上在我的文件系统上返回一个不存在的位置。欢呼!

任何人都可以就我如何完成这项麻烦的任务提出任何建议吗?

0 投票
1 回答
775 浏览

audio - 是否有 C 语言的 SuperCollider(或类似的实时合成系统)接口(最好是 DLL 形式)?

我对在游戏引擎中使用 SuperCollider 的各种插件很感兴趣。但是我的编程语言 ( SwiftForth ) 中的 FFI 只支持普通的旧 C 语言 DLL 文件。

我知道对于初学者来说,我需要某种 OSC 接口。然后,SuperCollider 需要以某种方式运行。我还不知道如何在游戏中做到这一点的细节。

我还阅读了一些有关 SuperCollider 命令行界面的内容。这对我想做的事情实用吗?

我对建议和替代方案持开放态度,但唯一不可协商的是 SwiftForth。我已经编写了大量与引擎相关的代码,并希望添加实时合成以实现其独特性和灵活性。

0 投票
1 回答
1290 浏览

linux - 没有千斤顶服务器的超级对撞机

我的项目中的一项要求是减少嵌入式系统上的运行时占用空间。它看起来jackd在 Linux 上是必需的,并且看起来它目前是一个硬依赖,它不能libasound直接使用,是真的吗?很高兴听到有人jackd在嵌入式设备上使用并总结其资源使用情况。虽然,我打算使用具有相对足够内存的 BeagleBone,但我宁愿将它留给更长的延迟线,而不是运行jackd.

0 投票
1 回答
407 浏览

supercollider - 没有 OSC 的超级对撞机

我过去使用过 PD,但现在我想尝试在这个项目中使用 SuperCollider。具体来说,我想研究控制协议并尝试将 OSC 换成 CoAP。

我想弄清楚scsynth对 OSC 的依赖程度有多深?是否有一个简单的对象接口我需要实现或者它是整个代码?我尝试了一些greping,但有点困惑。

0 投票
2 回答
130 浏览

terminology - “类型”、“实例”、“类”和“对象”概念之间的区别

我试图理解类和对象的概念,我遇到了“类型”和“实例”这两个词。类型与类和对象的实例是否完全相同?或者两者之间是否存在差异,例如使用差异等?

0 投票
2 回答
4925 浏览

audio - 使用 SuperCollider 录制 WAV 文件

我编写了以下代码来定义一个 SynthDef,它将声音记录到作为参数之一传递的缓冲区中。

我还有下面的代码,它为上述 SynthDef 调用 Synth 并尝试将缓冲区写入文件。

正在创建输出文件,但不包含任何声音。我究竟做错了什么?我浏览了所有我能找到的 SuperCollider 文档,但似乎没有任何效果!非常感谢任何指针。

0 投票
1 回答
114 浏览

supercollider - 为什么 Synth.new 不了解音阶?

我可以设置这样的比例:

然后我可以创建一个Pbind像这样播放音阶的:

Synth.new似乎根本没有得到它(只会导致沉默):

有趣的是,如果我删除scale参数:

然后我收到一张便条,但始终是同一张便条。它不响应degree参数。

最终,我希望能够从外部 OSC 设备(我的手机!)触发笔记。这意味着连接OSCFunc以侦听某些触发器,并在这些 OSC 事件发生时从音阶播放音符。我以为我可以使用Synth.newinsideOSCFunc来实际弹奏音符,但它似乎不知道音阶,所以我有点卡住了。

任何人都可以就如何实现这一目标提供任何建议吗?

0 投票
2 回答
171 浏览

osc - 为什么这个解释器变量不被理解?

我正在尝试将 OSC 消息绑定松散地耦合到处理它们的函数:

我认为这很简单。我可以在任何时候替换 f ,因此随意处理来自路径的消息/2/push1

但是当我点击按钮(发送带有路径的消息/2/push1)时,我收到一条错误消息:

所以我猜f在调用中声明的函数范围内有不同的含义OSCFunc。我想它有不同的Environment

我还尝试将函数放入常规变量中:

但这会导致相同的错误。

有没有解决的办法?当然,我不必OSCFunc每次都在其中放置整个函数体吗?

0 投票
1 回答
440 浏览

processing - SuperCollider - 限制合成器实例

我正在试验 SuperCollider 和 Processing,本质上只是让 Processing 向 SC 发送消息(此时播放此音符等)。

但是,我在理解 SC 的一件事时遇到了麻烦:如果我制作了一个SynthDef,并且假设我有各种来自 Processing 的 MIDI 音符,是否不可能只有一个合成器实例来处理播放所有音符?

现在,SC 正在为每个音符创建一个新的 Synth 实例,因此不可避免地,我得到了大量的实例。我一直在尝试Synth(Synth.new但每种情况似乎都会为每个收到的消息创建一个新实例。

代码示例:

本质上,我创建了一个 SynthDef 和一个监听器。从 Processing 接收整数,将其映射到数组键以确定要播放的 MIDI 音符。但是每次触发监听器时,我都会得到一个 Synth 的新实例

0 投票
2 回答
284 浏览

supercollider - 为什么这个不返回的信封不会被重新触发?

我正在尝试使用不返回信封(即其中的段不返回 0)。我发现env在以下代码中不能多次触发信封:

我希望的是,每当重新触发合成器时,音调会越来越高。实际发生的是第一个音符播放音高包络,而每个后续音符都处于最终(即高)频率。env显然没有被重新触发。

我不确定为什么会这样。信封不必在重新触发之前返回 0 - 完全有可能在完成之前重新触发信封。我的信封有些东西坏了。

我基本上是在寻找具有 的行为的东西Line,但也能够被重新触发并具有可定制的曲线。

我正在尝试做的事情可能吗?