Returns: SC3 on Linux
帰ってきたりなっくす!
昨年は爆発的にSCユーザが増えた年となり、かなりの方がSCに興味を持ち、触ってみて、挫折したのではないでしょうか?max6もリリースされ、SCなんていらなかったんや!との気持ちもなきにしもあらずです。
今年一発目は仮想環境上にSC on Linux環境を構築する方法を記載しました。もうこれでmac持ってないよ?とか言い訳はできませんね!linuxで音を扱う際にはなめてかかってはいけません。相当苦労するはめになります。SCをリポジトリからインスコしたからといって音がでるわけではありません。
環境は、仮想化ソフトとしてvirtualbox4.1.8、仮想マシンとしてubuntu11.10になります。vmwareでも構いませんが、virtualboxだとデフォで実機側に音を渡せます。また、SC開発版は結構仕様が変わっていますので、これを機にビルドして開発版をインストールしてみましょう!
準備
virtualbox
https://www.virtualbox.org/
バイナリ落としてインストールする。問題ない。
ubuntu
http://www.ubuntulinux.jp/
日本語Remix CDイメージのダウンロード。virtualboxの新規仮想マシンをデフォルトで作成して、isoからインストール。最近のlinuxディストリは驚くほど親切だ。数クリックでインストールが完了する。ubuntuのインストールが完了したら、とりあえずアップデートしておく。インストールからアップデート完了まで結構時間がかかる。コーヒーでも淹れてこよう。ココアでも良い。
なお、以降ターミナルで作業することになるが、なぜかxtermが前面にあるが使いづらいためアプリケーションの検索でterminal(端末)を探しておこう。
インスコ
supercollider
先はまだまだ長い。ダレる前にSCを入れてしまおう。
$ sudo apt-get install git clone --recursive git://supercollider.git.sourceforge.net/gitroot/supercollider/supercollider $ cd supercollider $ cat README_LINUX.txt
なにやら面倒なことが書いてあるがbuild requirements (debian users)に書いてあるパッケージを入れよう。
$ sudo apt-get install build-essential libqt4-dev libqtwebkit-dev libjack-dev libsndfile1-dev libasound2-dev libavahi-client-dev libicu-dev libreadline6-dev libfftw3-dev libxt-dev pkg-config cmake
ここでcmakeするのはまだ早い。実は足りないものがあるので入れておこう。
$ sudo apt-get install emacs libcwiid-dev
これでビルドする準備は整ったはずだ。
$ pwd xxx/supercollider $ mkdir build $ cd build $ cmake .. $ make $ sudo make install
これでSCの最新版インストール完了。ビルドにちょっと時間がかかるけれども、SCのインストールは特に難しくはないはずだ。ただ、linuxはそれほど甘くない!残念ながらまだまだ音は出ない。めげずに続けて必要なことをやっていこう。
さらにインスコ
linuxで音を扱うにはカーネルをlowlatencyかrealtimeにする必要がある。ブチブチさせたくないならな。今回選択したubuntuではこの辺りが若干ごたごたしている。とくに今回いれた11.10はいまいちよく分からない部分がある。安定して、さらに日本語記事がアップされるまで気長に待とうじゃないか。
ここではlowlatencyカーネルを入れてみよう。
https://wiki.ubuntulinux.jp/UbuntuStudioTips/Setup/Kernels
”PPAからLowLatencyカーネルやRealtimeカーネルを導入する方法”に従う。
$ sudo add-apt-repository ppa:abogani/ppa $ sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com F141B61E $ sudo apt-get update $ sudo apt-get install linux-lowlatency
低レイテンシカーネルを加えたのでgrubの設定を変えておこう。
$ sudo vi /boot/grub/grub.cfg set default="2"に変更
13行めのset default="0"をset default="2"にしておく。menuentryの3つ目が先ほどいれたLinux 3.0.0-13-lowlatencyだからだ。一旦リブートしてカーネルがlowlatencyに変更されたのを確認しよう。
$ sudo reboot ... $ uname -a Linux xxx 3.0.0-13-lowlatency
OKだ。linuxカーネル3.0にビビるな。でもまだまだ設定は続く。
$ sudo adduser 自分 audio $ sudo su -c 'echo @audio -rtprio 99 >> /etc/security/limits.conf $ sudo su -c 'echo @audio -memlock 250000 >> /etc/security/limits.conf $ sudo su -c 'echo @audio -nice -10 >> /etc/security/limits.conf
なおこれらの値は昔どこかのサイトに載っていたままなので、自分の環境に合わせて変更してほしい。なんの設定かは未だに知らない。。。
jackd
linuxでSCを扱う場合、jackdというソフトウェアを通すことで音の出力を可能にしている。オーディオサーバみたいなものだ。これがまた厄介だったりするが、linuxでSCを使う上での特徴であり、便利といえば非常に便利だ。
では、設定だが横着するためにGUIのqjackctlをいれよう。
$ sudo apt-get install qjackctl
ここでなにやら変な画面に遷移するので、リアルタイム実行優先度の設定を有効にする、で、はいにしておこう。
$ qjackctl(もしくは、dashホームのメディア関係からqjackctl)
なんかGUIが立ち上がったので、設定変更をしよう。これが大事だったりする。
まず、MessagesをクリックしてMessagesウィンドウを開いておこう。なんらかのエラーがあった場合にはこのウィンドウが必要になる。
次にSetupだ。わけがわからないと思うが、問題ない。大半の人が意味不明だろう。まずは、Miscタブに遷移し、Enable D-Bus interfaceのチェックを外そう。これは新しいものなのか私は知らないものだし、なんらかの悪さをしているようだ。続いてSettingsタブに戻り、Realtime、No Memory Lockにチェック、Periods/Bufferを3にする。さらに、右側のAudioをPlayback OnlyにしてOKボタンだ。では、Playボタンをクリックしてみよう。ポップアップが出ずに、ウィンドウの真ん中がStartedでRTがピコピコすればOKだ。OKならStopしておこう。なんらかのエラーが出たならばググるしかない、エラーの場合相当苦労することになるかもしれないので、覚悟しておこう。
なお、ここでの設定は暫定的に音を出すための設定です。入力を殺していますしちゃんとした設定があるはずです。
使う
ここまでインストール、設定にかなりの労力が必要だったかと思われる。これがlinuxだ!
では早速使ってみよう。
$ scvim
なんか別ウィンドウが立ち上がり、動いている。ヘルプを構築?しているらしいのでちょっと待とう。Welcome to SuperCollider, type :SChelp for helpと表示されればOKだ。後は音を鳴らすだけだ。
s.boot; {SinOsc.ar()}.play;
と入力して、s.boot;行でF6ボタンを押してみよう(fn+F6ボタンの場合も)。次にplay行でF6ボタン。サイン波が聴こえれば完了だ。お疲れ様でした!