いらないモノ、ひつようなモノ

書籍、音楽、そして若干のテクノロジー

まずcsound以外をインストール

以下、Fedora 7にインストールした時のメモ。Windows環境のインストールは異なるし他の環境の人には参考にならないかも。

gcc

これはFedoraを入れたときに開発環境ごと入れてあれば入っているはず。インストールは不要だった

[root@localhost ]# rpm -qa gcc
gcc-4.1.2-12

Python2.5

これも済み。

[root@localhost ]# rpm -qa python
python-2.5-12.fc7

SCons(scons-0.97-2)

sconsはcsoundをコンパイルする時のファイル依存関係を構築する必須ツール。このソフト自身はpythonで書かれたプラットフォーム非依存のautoconf/automakeに似てccacheのようにコンパイラキャッシュ(コンパイルした内容をキャッシュするの?)する次世代のbuid/makeツールだそうです。よく分からん(www.scons.org)。結局、別に普通のmakeでもいいんだけどな。これまで慣れてきたし。ダウンロードしたパッケージをインストール*1

libsndfile(libsndfile-1.0.17/version 1.0.13以降必須だそうです)

要はlittle-endianなwavやbig-endianなAIFFファイルの読み書きが単一インタフェースで出来るライブラリだそうです。(http://www.mega-nerd.com/libsndfile)big-endianなマシンでもlittle-endianなマシンでも非依存でキチンと動いてくれるのがポイントなのだろうな。libsndfile-1.0.17.tar.gzを持ってきて

[root@localhost ]# gzip -d libsndfile-1.0.17.tar.gz
[root@localhost ]# tar xvf libsndfile-1.0.17.tar
[root@localhost ]# cd libsndfile-1.0.17/
[root@localhost ]# ./config
[root@localhost ]# make
[root@localhost ]# make install

書くほどもないことだな

libsndfile-1.0.17の./config 結果

-=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=-

  Configuration summary :

    Version : ..................... 1.0.17
    Experimental code : ........... no

  Tools :

    Compiler is GCC : ............. yes
    GCC major version : ........... 4

  Installation directories :

    Library directory : ........... /usr/local/lib
    Program directory : ........... /usr/local/bin
    Pkgconfig directory : ......... /usr/local/lib/pkgconfig
    HTML docs directory : ......... /usr/local/share/doc/libsndfile1-dev/html

Compiling some other packages against libsndfile may require

FLTK(fltk-1.1.x-r5940)

fltk系のコマンドを使う場合に必要。Csound5GUI、CsoundVSTにも必須。
C++で作られたクロスプラットフォームGUI toolkit。(http://www.fltk.org)バージョンは1.1じゃなきゃダメだということなので、2.0があるみたいだが1.1(v1.1.x-r5940)をとってくる。また、下記のように./configureを走らせないとNG。

[root@localhost ] ./configure --enable-shared --enable-threads
[root@localhost ] make
[root@localhost ] make install

PortAudio(pa_stable_v19_061121/v19のブランチじゃなきゃだめだそうです)

リアルタイムのオーディオを扱う。alsaでもいいだろうけど一応インストールする。www.portaudio.com/download.htmlからpa_stable_v19_061121.tar.gzをダウンロードして、./configure, make, make installしておく。

PortMIDI

csoundのリアルタイム機能はalsa、raw MIDI、Windows multimedia library(今はLinuxだから関係ないけど)もしくはPort-Midiを利用できる。一応インストール(alsa使えばいいんだけど)。(www.cs.cmu.edu/~music/portmusic)

$ make -f pm_linux/Makefile

でコンパイルが終わって、インストールしようとしたが、あれ、makeファイルの中にinstallターゲ
ットない。インストールができない!!試しにrpmコマンドでインストールされているか確認したらplanet ccrmaを入れた時点でインストールされていた模様。何も悩まず。実際コンパイルが終わってcsoundを動かすと、

PortMIDI real time MIDI plugin for Csound
PortAudio real-time audio module for Csound

とOKだった。

[root@localhost ]# rpm -iq portmidi
Name        : portmidi                     Relocations: (not relocatable)
Version     : 20041117                          Vendor: Planet CCRMA
Release     : 2.fc7.ccrma                Build Date: 2007年06月05日 05時06分18秒
Install Date: 2007年07月20日 15時55分32秒      Build Host: build.ccrma.stanford.edu
Group       : System Environment/Libraries
Source RPM: portmidi-20041117-2.fc7.ccrma.src.rpm
Size        : 484795                           License: GPL
Signature   : DSA/SHA1, 2007年06月08日 09時28分51秒, Key ID c12beffc68d9802a
URL         : http://www-2.cs.cmu.edu/~music/portmusic/
Summary     : PortMidi -- real-time MIDI input/output, audio I/O library
Description :
PortMidi -- real-time MIDI input/output.

Some test applications are included. See /usr/share/doc/portmidi.

Author: Roger Dannenberg

Fluidsynth Library

サウンドフォントを扱うfluid系のopcodeを利用する場合は、Fluidsynthのライブラリをインストールする必要があるそうです。http://savannah.nongnu.org/download/fluid。しかし、yumで確認する既にインストールされているようなので飛ばします。

STK(Synthesis ToolKit in C++):

STK系のopcodeを利用するなら必要そうだ。 CCRMAにソースコードがあるのか(http://ccrma.stanford.edu/software/stk/download)。*28月13日リリースの4.3.0があるがこれをもってきてソースをコピーする。*3下記の例は/home/shareにstkとcsoundのtarを展開した場合の例

[root@localhost]# cp -r /home/share/stk-4.3.0/* /home/share/csound-5.06/Opcodes/stk/

ところで、STKというのは、プラットフォームに依存しないリアルタイム制御が可能なオーディオの信号処理とかアルゴリズミックな音響合成に関わる開発で使えるように作られたものだそうです。教育目的のサンプルコードも特長の一つであるから本来はそちらを見るのがいいのかも。無知な私は学ぶものが多すぎて手が回りません。

Loris(loris-1.4, fftw-3.1.2)

lorisのopcodeを使うときにLorisの「ソースコード」をcsound5/Opcodes/Lorisに突っ込む必要があるということで、STKと位置づけは同じ。バージョン1.4をhttp://sourceforge.net/projects/lorisからとりあえず持ってくる。

[root@localhost]# cp -r /home/share/loris-1.4/* /home/share/csound-5.06/Opcodes/Loris

そのほかにLorisをコンパイルするためには、fftwというDTFを扱うライブラリのヘッダファイルを持ってくる必要があります(自己参照)。fftw-3.1.2を持ってきて./configure, make installすると/usr/local/lib/includeにfftw3.hがインストールされます。もし,envで出力される環境変数で/usr/local/includeが含まれていなければ、~/.bashrcにINCLUDE=$INCLUDE$:/usr/local/include、export INCLUDEの行を含める必要があります。ここらはきっとどこかに詳しく書いてあります。

JACK(jack-audio-connection-kit-0.103.0)*4

すでにjackdがインストールされている環境なので、jackd -Vと入力してバージョンが0.103.0と分かったので、jackaudio.orgからソースを持ってくる。ヘッダファイルをcsound5から見えるところに持ってくればいいのかな?多分本当はインストールすると/usr/localあたりに入って一番いいんだろうけど、、ちょっとインチキ

ln -s /home/share/jack-audio-connection-kit-0.103.0/jack/ /home/share/csound-5.06/

OSC(liblo-0.24)

OSCというのはIP版MIDIですね。詳しくはhttp://eto.com/d/OpenSoundControl.html)の説明がいいかも。で、osc系のopcodeのために最新版のliblo(OSCの一つのインプリ)のライブラリをhttp://plugin.org.uk/libloから持ってきなさいと言うことです。
rpm -iq libloでいつものように調べると[Version:0.23, Build Date:2007年02月23日 10時00分03秒 ]とインストールされているが最新は0.24。何も考えないで./configure, make, make installしてしまった。しまった、yum remove libloしてからの方がよかったかもなー。まいっか。だんだん疲れてきた。

LADSPA

あれ?LADSPAってインストールシナイのかな?という疑問。LADSPAはオーディオを扱うアプリケーションインタフェースなので、ヘッダファイルがその本質でライブラリはいらない構成だそうです。ダウンロードして中身をみるとサンプルコードやら開発を楽にするものが入っているだけ。

SWIG(the Software Interface and Wrapper Generator)

これの恩恵を受けて、JavaPythonからcsoundのインタフェースを操作できるようにすることができるそうです。CsoundVSTで必要。SWIG自身は、CORBAやRPCで利用するIDLに似たインタフェース定義言語を用いて、Perl, Python, Ruby, Java, Tclなど言語からCで作った言語を呼び出せるというPython, Tcl, Javaそれぞれの言語のC/C++で拡張する手段を統一的に扱った中間言語。みたいだ。使ったことないから知らないが(http://www.swig.org)

Boos(version 1.32.1以降)

CsoundVSTを利用する場合は必要。C++tテンプレートライブラリ。乱数生成、線形代数名などを受け持つらしい。http://www.boost.orgから。make(これがまた時間がかかる)中にやたらとWEARNINGが発生。(libs/python/src/str.cpp:29: 警告: 符合付きと符合無しの整数式同士の比較です、など)しかしCsoundVST利用は最初はないので一応無視しておく。CsoundVSTを使うときに悩むのかな?

funknown.h

こりゃ何だと思ったら同じ疑問の方が、http://www.nabble.com/build-5.06,-funknown.h-t3885414.htmlにいらっしゃいました。Michael Goginsさんによると、

This is part of Steinberg's MIDI plugin SDK. I use it to build the scoregen.dll VST plugin, which uses Python to generate MIDI sequences in VST hosts such as Cubase. This plugin is in Csound because of the Silence classes in CsoundVST, which are good for this kind of composition. If this file is not found, scorgen is not built, and nothing need to be done.

つまりCsoundVSTでは必要みたいです。*5

www.steinberg.netに言って、名前とアドレスを書いてざっとagreementを読んでVST Module Architecture SDKを持ってくる。これはVST2.4だそうで64bit対応だそうです。VSTModuleArchitectureSDK/pluginterfaces/base/funknown.hを発見したので、例によって

ln -s /home/share/VSTModuleArchitectureSDK/pluginterfaces/base/funknown.h  /home/share/csound5/

sconsで確認するととりあえずfunknown.hは認識できた。いいのだろうか。

*1:インストール後、程なくしてyum-updatesodデーモンからバージョンアップ通知。素直にバージョンアップし、rpm -qi sconsで確認すると[Version:0.97, Build Date: 2007年05月22日 03時44分23秒, Source RPM: scons-0.97-2.fc7.src.rpm]前から新しくなっていたんだ。それなのになぜダウンロードは最新のじゃなかったのかな????

*2:yum install stkするとできたがこれじゃcsoundのインストールでは意味なし。ソースをコピーする必要があるのだ!!Csound5.06_manual_A4.pdfの103ページ参照。しくじった

*3:csoundが6月リリースなんだからやっぱり4.2.1-2をインストールだろうと思ってこちらではじめたらこれまたしくじった

*4:まだ動かしていないので本当にいいのか不明

*5:vstはインストールするつもりは現在ないので(buildCsoundVST=1 buildCsoundAC=1 あたりが必要なのかな?