首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SuperCollider在耳机上听不见

SuperCollider在耳机上听不见
EN

Stack Overflow用户
提问于 2014-07-30 18:26:19
回答 4查看 2.3K关注 0票数 4

我刚刚开始学习使用超级对撞机的音频编程。当我播放一个声音时,我可以在扬声器上听到,但不能在耳机上听到。

我在启动服务器时收到以下消息-

引导57110 本地主机 JackDriver:客户端名称为“SuperCollider” SC_AudioDriver:采样率= 48000.000000,驱动器块大小= 1024 JackDriver:连接system:capture_1到SuperCollider:in_1 JackDriver:连接system:capture_2到SuperCollider:in_2 JackDriver:连接SuperCollider:out_1到system:playback_1 JackDriver:连接SuperCollider:out_2到system:playback_2 SuperCollider 3服务器准备就绪。 JackDriver:最大输出延迟42.7ms 从服务器本地主机接收通知消息 初始化共享内存服务器接口

我去过一些论坛,他们建议我寻找输出设备的选项并设置它们,我做了一个-

代码语言:javascript
复制
ServerOptions.devices;

查找设备列表,但我在post窗口中发现了以下错误-

错误:原语没有绑定。0 676 方法{ (0x21199c0,gc=01,fmt=00,flg=11,set=04)的实例 实例变量15 raw1 :浮标0.000000 00000000 0080000C raw2 :浮点数0.000000 00000300 03020003 代码: Int8Array的实例(0x2119cc0,size=4,set=2) 选择器:零 常数:零 prototypeFrame :数组的实例(0x2119c00,size=3,set=2) 背景:无 argNames : SymbolArray的实例(0x2119b40,size=3,set=2) varNames :零 sourceCode :零 ownerClass :类Meta_ServerOptions (0x21113c0) 名称:符号'prListDevices‘ primitiveName :符号'_ListAudioDevices‘ '/usr/share/SuperCollider/SCClassLibrary/Common/Control/Server.sc‘:符号filenameSymbol charPos :整数4025 } 错误:原始‘无’失败。 失败。 接受者: 零 呼叫堆栈: 方法错误:reportError 0x3601498 arg这= 零:handleError 0x1f730f8 arg这=0 arg误差 线程:handleError 0x35fcfd8 arg这= arg误差 对象:抛出0x3980c58 arg这= 对象:原始Object 0x33395a8 arg这=0 解释器:口译: 0x3d061e8 arg这= var res =0 var func = var code = "ServerOptions.devices;“ var doc =0 var ideClass = 处理:解释性:Process 0x3443c08 arg这= ^^前面的错误转储用于错误:原语“无”失败。 失败。 接收者:零 引导57110 本地主机 JackDriver:客户端名称为“SuperCollider” SC_AudioDriver:采样率= 48000.000000,驱动器块大小= 1024 JackDriver:连接system:capture_1到SuperCollider:in_1 JackDriver:连接system:capture_2到SuperCollider:in_2 JackDriver:连接SuperCollider:out_1到system:playback_1 JackDriver:连接SuperCollider:out_2到system:playback_2 SuperCollider 3服务器准备就绪。 JackDriver:最大输出延迟42.7ms 从服务器本地主机接收通知消息 初始化共享内存服务器接口 错误:原语没有绑定。0 676 方法{ (0x21199c0,gc=01,fmt=00,flg=11,set=04)的实例 实例变量15 raw1 :浮标0.000000 00000000 0080000C raw2 :浮点数0.000000 00000300 03020003 代码: Int8Array的实例(0x2119cc0,size=4,set=2) 选择器:零 常数:零 prototypeFrame :数组的实例(0x2119c00,size=3,set=2) 背景:无 argNames : SymbolArray的实例(0x2119b40,size=3,set=2) varNames :零 sourceCode :零 ownerClass :类Meta_ServerOptions (0x21113c0) 名称:符号'prListDevices‘ primitiveName :符号'_ListAudioDevices‘ '/usr/share/SuperCollider/SCClassLibrary/Common/Control/Server.sc‘:符号filenameSymbol charPos :整数4025 } 错误:原始‘无’失败。 失败。 接受者: 零 呼叫堆栈: 方法错误:reportError 0x35be518 arg这= 零:handleError 0x1ee0b78 arg这=0 arg误差 线程:handleError 0x3470ab8 arg这= arg误差 对象:抛出0x3636a78 arg这= 对象:原始Object 0x3cd86c8 arg这=0 解释器:解释性: 0x3d44b98 arg这= var res =0 var func = var code = "ServerOptions.devices;“ var doc =0 var ideClass = 处理:解释性:Process 0x37c8708 arg这= ^^前面的错误转储用于错误:原语“无”失败。 失败。 接收者:零

我是新来的超级对撞机,我很难弄清楚错误的原因。请建议我如何解决这个问题。

提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2015-02-28 19:31:12

我也有类似的问题(根本没有超级对撞机的输出,只是完全的和完全的沉默),这篇文章最终引导我找到了正确的解决方案。我认为这对你和其他人都有帮助。

ServerOptions文档中,我发现我可以配置SC如何使用环境变量与jack对话。

在我的例子中,我使用相关的环境变量启动scsynth,如下所示:

代码语言:javascript
复制
  SC_JACK_DEFAULT_INPUTS="system:capture_1" SC_JACK_DEFAULT_OUTPUTS="system" scsynth -u 57110 &

这似乎也可以在斯克拉昂内部这样做:

代码语言:javascript
复制
  "SC_JACK_DEFAULT_INPUTS".setenv("system:capture_1");
  "SC_JACK_DEFAULT_OUTPUTS".setenv("system");

在您的例子中,当您连接到错误的输出时,您可能需要像这样启动scsynth:

代码语言:javascript
复制
   SC_JACK_DEFAULT_OUTPUTS="system:playback_3,system:playback_4" scsynth -u 57110 &

另一种允许您使用这些连接并找到适合您的方法的方法是使用jack_lsp、jack_connect和jack_disconnect命令。

若要查看杰克服务器的所有in/out以及当前连接,请运行

代码语言:javascript
复制
   jack_lsp -c

从你的帖子里,我想你会看到

代码语言:javascript
复制
system:capture_1
    SuperCollider:in_1
system:capture_2
    SuperCollider:in_2
system:playback_1
    SuperCollider:out_1
system:playback_2
    SuperCollider:out_2
system:playback_3
system:playback_4
SuperCollider:out_1
    system:playback_1
SuperCollider:out_2
    system:playback_2

要将SuperCollider输出到耳机和扬声器,您可以将out_1和out_2与playback_3和playback_4 (假设这些是耳机)连接起来,如下所示:

代码语言:javascript
复制
jack_connect SuperCollider:out_1 system:playback_3
jack_connect SuperCollider:out_2 system:playback_4

要断开扬声器的连接,您可以这样做。

代码语言:javascript
复制
jack_disconnect SuperCollider:out_1 system:playback_1
jack_disconnect SuperCollider:out_2 system:playback_2

再次运行jack_lsp -c,看看您的系统是否按您所需的方式安装!

票数 2
EN

Stack Overflow用户

发布于 2014-11-22 22:29:18

我也有同样的问题。我通过使用KXStudio中的Catia找到了解决方案。看,卡蒂亚 Catia是一个杰克帕奇拜。(还有其他的拼贴。QJackctl和Patchage就是例子)。在我的系统(在戴尔工作室笔记本电脑上的Ubuntu14.04)上,SuperCollider将其前4个输出映射到4个系统回放。前2个系统回放是扬声器,系统播放3和4是耳机。通过将out1和out2从SC映射到playback_3和playback_4,我通过耳机听到了。所以,给杰克找个拼贴,看看你看到了什么。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2017-12-25 15:43:13

在为这个问题挣扎了无数次之后,我设法让它处理好了:

  1. 将用户添加到audio linux组中。
  2. 使用cadence启动插孔

可能有帮助的其他资源:套件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25044345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档