SuperCollider在耳机上听不到声音

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SuperCollider在耳机上听不到声音相关的知识,希望对你有一定的参考价值。

我刚开始学习使用supercollider的音频编程。当我播放声音时,我能够在扬声器上听到它而不是耳机。

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

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

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

ServerOptions.devices;

查找设备列表但我在帖子窗口中收到以下错误 -

错误:原语没有约束。 0 676 方法实例{(0x21199c0,gc = 01,fmt = 00,flg = 11,set = 04) 实例变量[15] raw1:Float 0.000000 00000000 0080000C raw2:Float 0.000000 00000300 03020003 代码:Int8Array的实例(0x2119cc0,size = 4,set = 2) 选择者:没有 常数:无 prototypeFrame:Array的实例(0x2119c00,size = 3,set = 2) 上下文:没有 argNames:SymbolArray的实例(0x2119b40,size = 3,set = 2) varNames:无 sourceCode:nil ownerClass:class Meta_ServerOptions(0x21113c0) name:Symbol'prListDevices' primitiveName:符号'_ListAudioDevices' filenameSymbol:Symbol'/usr/share/SuperCollider/SCClassLibrary/Common/Control/Server.sc' charPos:整数4025 } 错误:原始'无'失败。 失败。 接收器: 零 CALL STACK: MethodError:reportError 0x3601498 arg this = 无:handleError 0x1f730f8 arg this = nil arg错误= 线程:handleError 0x35fcfd8 arg this = arg错误= 对象:抛出0x3980c58 arg this = 对象:primitiveFailed 0x33395a8 arg this = nil 解释器:interpretPrintCmdLine 0x3d061e8 arg this = var res = nil var func = var code =“ServerOptions.devices;” var doc = nil var ideClass = 处理:interpretPrintCmdLine 0x3443c08 arg this = ^^前面的错误转储用于错误:原始“无”失败。 失败。 接收者:没有 开机57110 本地主机 JackDriver:客户名称是'SuperCollider' SC_AudioDriver:采样率= 48000.000000,驱动程序块大小= 1024 JackDriver:连接系统:capture_1到SuperCollider:in_1 JackDriver:连接系统:capture_2到SuperCollider:in_2 JackDriver:连接SuperCollider:out_1到系统:playback_1 JackDriver:连接SuperCollider:out_2到系统:playback_2 SuperCollider 3服务器准备就绪。 JackDriver:最大输出延迟42.7 ms 从服务器localhost接收通知消息 共享内存服务器接口已初始化 错误:原语没有约束。 0 676 方法实例{(0x21199c0,gc = 01,fmt = 00,flg = 11,set = 04) 实例变量[15] raw1:Float 0.000000 00000000 0080000C raw2:Float 0.000000 00000300 03020003 代码:Int8Array的实例(0x2119cc0,size = 4,set = 2) 选择者:没有 常数:无 prototypeFrame:Array的实例(0x2119c00,size = 3,set = 2) 上下文:没有 argNames:SymbolArray的实例(0x2119b40,size = 3,set = 2) varNames:无 sourceCode:nil ownerClass:class Meta_ServerOptions(0x21113c0) name:Symbol'prListDevices' primitiveName:符号'_ListAudioDevices' filenameSymbol:Symbol'/usr/share/SuperCollider/SCClassLibrary/Common/Control/Server.sc' charPos:整数4025 } 错误:原始'无'失败。 失败。 接收器: 零 CALL STACK: MethodError:reportError 0x35be518 arg this = 无:handleError 0x1ee0b78 arg this = nil arg错误= 线程:handleError 0x3470ab8 arg this = arg错误= 对象:抛出0x3636a78 arg this = 对象:primitiveFailed 0x3cd86c8 arg this = nil 解释器:interpretPrintCmdLine 0x3d44b98 arg this = var res = nil var func = var code =“ServerOptions.devices;” var doc = nil var ideClass = 处理:interpretPrintCmdLine 0x37c8708 arg this = ^^前面的错误转储用于错误:原始“无”失败。 失败。 接收者:没有

我是supercollider的新手,我很难弄清楚错误的原因。请建议我如何解决这个问题。

提前致谢。

答案

我有同样的问题。我使用KXStudio的Catia发现了解决方案。见Catia Catia是一个JACK Patchbay。 (其他补丁可用。例如QJackctl和Patchage)。在我的系统(戴尔Studio笔记本电脑上的Ubuntu 14.04)上,SuperCollider将其前4个输出映射到4个系统播放。前2个系统播放是扬声器,系统播放3和4是耳机。通过将out1和out2从SC重新映射到playback_3和playback_4,我通过耳机听到它。所以,抓住JACK的补丁包,看看你看到了什么。希望这可以帮助。

另一答案

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

the ServerOptions documentation,我发现我可以配置SC如何与环境变量进行对话。

就我而言,我开始使用相关的环境变量scsynth,如下所示:

  SC_JACK_DEFAULT_INPUTS="system:capture_1" SC_JACK_DEFAULT_OUTPUTS="system" scsynth -u 57110 &

看来这也可以在sclang中完成,如下所示:

  "SC_JACK_DEFAULT_INPUTS".setenv("system:capture_1");
  "SC_JACK_DEFAULT_OUTPUTS".setenv("system");

在你的情况下,你连接到错误的输出,你可能想要像这样开始scsynth:

   SC_JACK_DEFAULT_OUTPUTS="system:playback_3,system:playback_4" scsynth -u 57110 &

另一种让您使用这些连接并找到适合您的方法的替代方法是使用jack_lsp,jack_connect和jack_disconnect命令。

要查看您的插孔服务器的所有输入/输出以及当前连接,请运行

   jack_lsp -c

从你的帖子,我想你会看到类似的东西

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(假设这些是您的耳机),如下所示:

jack_connect SuperCollider:out_1 system:playback_3
jack_connect SuperCollider:out_2 system:playback_4

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

jack_disconnect SuperCollider:out_1 system:playback_1
jack_disconnect SuperCollider:out_2 system:playback_2

再次运行jack_lsp -c,看看你的系统是否按照你想要的方式设置!

另一答案

经过这个问题无数次挣扎之后,我设法让它与之合作:

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

可能有用的额外资源:https://wiki.archlinux.org/index.php/JACK_Audio_Connection_Kit

另一答案

首先:大长的错误消息说“A primitive was not bound”是令人不愉快的,但在这种情况下,它只是意味着你键入了错误的命令。我不知道你从哪里获得ServerOptions.devices命令,但这是错的。也许这条消息是为了告诉你输入更合理的s.options.device,但这不是你需要做的。忘掉那个并忘记那个长错误信息。

其次:您在启动服务器时看到的消息是好的,它告诉您服务器已启动并连接到插孔。 SuperCollider很高兴。如果您听到扬声器发出的声音,而不是耳机的声音(我认为当您将耳机插入耳机时就意味着!),这不是一个超级碰撞问题,而只是关于设置耳机音量的标准操作系统问题。

看来你正在使用linux,所以在终端中运行命令alsamixer,这是检查耳机输出是否静音的好方法。如果您不熟悉,请使用man alsamixer了解如何使用它。

以上是关于SuperCollider在耳机上听不到声音的主要内容,如果未能解决你的问题,请参考以下文章

Pr导出的视频,电脑上能听到人声和背景音乐,在安卓手机上听不到人声只有BGM,但苹果手机上都可以听到?

声音类在 Windows 上听起来分层且刺耳

初始化 AVAudioSession 时保持蓝牙声音

kali 插耳机没声音

联想Y50耳机插入耳机孔后没有声音解决办法

realtek高清晰音频管理器 中找不到耳机选项,但耳机却可以发声怎么回事?