【发布时间】:2017-11-15 15:47:39
【问题描述】:
我是Clojure 初学者,我正在尝试使用Overtone。但我无法启动 Overtone 并将其与外部 SuperCollider 服务器连接。
我正在学习 Overtone 文档中的教程:Connecting scsynth。由于我使用的是 Windows 10 64 位,因此无法使用内部 SuperCollider 服务器。所以我安装了 SuperCollider 并确保音频服务器在 127.0.0.1:57110 运行。
现在,当我尝试在 lein relp 上加载 Overtone 环境时,我得到 nil 作为回报。
user=>(use 'overtone.core)
nil
所以如果 Overtone 环境加载成功,现在我们应该连接外部 SuperCollider 服务器。我们可以通过两种方式做到这一点。从 Overtone 中启动外部服务器,或连接到现有的正在运行的服务器。
为了启动外部服务器,我尝试了以下命令,但出现未解决的符号错误。
user=> (boot-external-server)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: boot-external-server in this context, compiling:(C:\Users\<user>\AppData\Local\Temp\form-init401744747046363104.clj:1:1)
所以我尝试连接到在端口 57110 上运行的现有服务器,但出现类似的未解决符号错误,
user=> (connect-external-server 57110)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: connect-external-server in this context, compiling:(C:\Users\<user>\AppData\Local\Temp\form-init401744747046363104.clj:1:1)
user=> (connect-external-server)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: connect-external-server in this context, compiling:(C:\Users\<user>\AppData\Local\Temp\form-init401744747046363104.clj:1:1)
当我运行(use 'overtone.core) 时,我应该得到nil 吗?我的假设是,所有这些符号都未解析,因为尚未加载 Overtone 命名空间。
如何解决这个问题以在我的系统上启动 Overtone?
【问题讨论】:
-
1.是的,我很确定
use返回nil。我总是使用ns宏来做requires,所以我不能确定,但它会返回什么?它必然是一种使用副作用的操作。 2. 我发现从 REPL 导入是粗略的。它从不适合我。尝试开始一个新项目,创建一个实际文件,并要求使用ns宏。我敢打赌,这应该可以解决您未解决的符号错误。 REPL 非常适合测试现有代码,但我在使用它作为唯一的代码源时遇到了问题,主要是因为导入/要求不起作用。 -
clojuredocs.org/clojure.core/ns 给出了如何使用/导入/要求的很好的例子。
-
@Carcigenicate 谢谢你解决了这个问题。但我不需要使用文件。