ubuntu で倍音をいじってみましたが、Vim で一部の倍音のコードを評価できません。
:Eval は clojure コードに対して機能します。vim(leinプロジェクトディレクトリのcljファイル)で試してみたところ、ex: (+ 1 2 3) => :Eval => vimウィンドウの下部に表示された => 6なのでOKです。
しかし、たとえば、私は試しました:
(demo(sin-osc)) => :Eval ;(:Require don't change nothing)
返されました:
java.lang.RuntimeException: Unable to resolve symbol: demo in this context, comp
iling:(NO_SOURCE_PATH:1:1)
だからここに私がすることがあります:
- ジャック始めました
- lein プロジェクトで lein repl が開始されます (deps は問題ありません)。
lein がある最初のターミナルで、倍音を開始します ('overtone.live を使用します)。ログは次のとおりです。2 つのエラーがあります。
user=> (use 'overtone.live) --> Overtone をロード中... --> 内部 SuperCollider サーバーを起動中... * エラー: dlsym load err '/home/axxon/workspace/overtone/tutorial/native/linux/ x86_64/libscsynth.so: undefined symbol: load' Found 10 LADSPA plugins *エラー: open directory failed '/home/axxon/.local/share/SuperCollider/synthdefs' JackDriver: client name is 'SuperCollider' SC_AudioDriver: sample rate = 44100 ,000000、ドライバーのブロック サイズ = 1024 --> 内部 SuperCollider サーバーに接続中... --> 接続が確立されました JackDriver: 最大出力レイテンシ 23,2 ミリ秒
ここで、このウィンドウで試しました (demo(sin-osc))。できます; 聞こえます。
- すばらしいですが、Vim でスクリプトを作成したいので、lein プロジェクト ディレクトリ (/overtone/tutorial) に新しいファイル (mytest.clj) を作成し、Vim で開きました (別のウィンドウで)。
この空のファイルに、前に言ったのと同じこと (demo(sin-osc)) を書き、最初に :Require で評価しようとすると、次のように返されました。
(clojure.core/require 'user :reload)
java.io.FileNotFoundException: Could not locate user__init.class or user.clj on classpath:
Eval でも機能しません。
どうしても倍音を使いたいのでよろしくお願いします!
Ps: 私の vim バンドル:
バンドル「guns/vim-clojure-static」
バンドル「tpope/vim-fireplace」
バンドル「tpope/vim-classpath」
編集: 正しい名前空間を使用するのを忘れていました。overtone の google グループで、mytest.clj がプロジェクトの src ディレクトリにある必要があることがわかりました。このコードを :Require で試しました (lein を開始した最初のウィンドウで倍音を停止しました):
(ns tutorial.foo
(:use [overtone.live]))
(definst saw-wave [freq 440 attack 0.01 sustain 0.4 release 0.1 vol 0.4]
(* (env-gen (lin-env attack sustain release) 1 1 0 1 FREE) (saw freq) vol))
(saw-wave)
、しかしそれは返されました:
(clojure.core/require 'tutorial.foo :reload)
Erreur détectée en traitant function <SNR>17_Require..fireplace#session_eval..<S
NR>17_eval..7 :
ligne 38 :
E605: Exception non interceptée : Error running Clojure: *** ERROR: open directo
ry failed '/usr/java/packages/lib/amd64'^@*** ERROR: dlsym load err '/usr/lib/jn
i/libswt-gtk-3836.so: undefined symbol: load'^@*** ERROR: dlsym load err '/usr/l
ib/jni/libswt-glx-gtk-3836.so: undefined symbol: load'^@*** ERROR: dlsym load er
r '/usr/lib/jni/libswt-webkit-gtk-3836.so: undefined symbol: load'^@*** ERROR: d
lsym load err '/usr/lib/jni/libswt-atk-gtk-3836.so: undefined symbol: load'^@***
ERROR: dlsym load err '/usr/lib/jni/libswt-pi-gtk-3836.so: undefined symbol: lo
ad'^@*** ERROR: dlsym load err '/usr/lib/jni/libswt-cairo-gtk-3836.so: undefined
symbol: load'^@*** ERROR: dlsym load err '/usr/lib/jni/libswt-awt-gtk-3836.so:
undefined symbol: load'^@*** ERROR: dlsym load err '/usr/lib/jni/libswt-gnome-gt
k-3836.so: undefined symbol: load'^@#^@# A fatal error has been detected by the
Java Runtime Environment:^@#^@# SIGSEGV (0xb) at pc=0x00007f5d261db671, pid=693
1, tid=140036632291072^@#^@# JRE version: 7.0_25-b30^@# Java VM: OpenJDK 64-Bi