LMMSをWindows上でコンパイル
注意:書きかけなので内容は不定期に更新されます。2011-02-20頃からの状況を基に書かれています。
動機
Windows上でのLMMSのパスの文字化けを何とかしたい。
基本情報
LMMS(Linux MultiMedia Studio)はIMAGE LINE社のFL Studioに似た感じのDAWで、オープンソースで開発されています。
名前どおりLinux上で開発されていますが、Windowsでも動作します。
さらにWindowsでもソースからコンパイルできるはずなのですが、依存関係の解決が難しい模様です。ここではWindows XP Pro SP3上にMinGW環境をインストールして、その上でLMMSをコンパイルする手順を記事にする予定です(2011-03-02時点ではまだ成功していません)。
手順
Qtのインストール
(別記事作成の予定)
LMMSはNokia社のQtというC/C++用のGUIワークフレームを使って開発されています。ですので、LMMSのコンパイルにはQtの開発用環境が必要です。これだけでもプログラムを作って遊べます。
MinGW環境のインストール
状況:
2011-03-02 インストールは出来ていて、その上でLMMSが依存している各種パッケージをコンパイル出来ているが、まだ他にMinGWのシステムにかかわるパッケージなどがあるかもしれない状態。
Gitのインストール
LMMSのソースコードはGitというバージョン管理システムで管理されています。開発中の差分を取り込むのに必要になりますが、いわゆるtarボールから手をつけてバージョン管理するつもりがなければ不要です。でもGitを使えばどこを修正したのか一目瞭然になるのでソースに手をつけるつもりならお勧めです。
ここではGitをインストール後、LMMSのソースコードを取ってきます。
LMMSのソースコードの取得
最近、Ver.0.4.10が出ました。SourceForgeのLMMSのページからソースコードも、Windows用の実行可能バイナリもダウンロードできます。
LMMSが依存するパッケージのインストール
(個別に記事を作成予定)
パッケージのリスト
- flac-1.2.1
- gettext-runtime_0.18.1.1-2_win32
- iglib-2.26.1
- glib-2.26.1-1_win32
- gmp-4.2.2
- libogg-1.2.2
- libsndfile-1.0.23
- libvorbis-1.3.2
- pkg-config-0.25
- pkg-config-dev_0.25-1_win32
- portaudio_v19_20071207_stable
- SDL-1.2.14RunTime
- SDL-1.2.14Soruce
- SDL-devel-1.2.14
- stk-4.4.2
後でわかりましたが、このうちのいくつかは mingw-get コマンド(Linuxのapt-get的コマンド)でインストールできるかもしれません。
WAVELAB850内容 ディレクトリ Biorthogonal
1次元または2次元の、周期的な双直交ウェーブレット変換解析のルーチン集。
Bi-Orthogonal Wavelet Transform (双直交ウェーブレット変換)
Bi-Orthogonal Wavelet (双直交ウェーブレット、と訳してみた) とは、英語版 Wikipedia によると、逆変換可能でしかも直交していなくてもかまわない (invertible but not necessarily orthogonal) ようなウェーブレット、とある。
直交していなくてもかまわないなら「双直交」って訳語は不適切だなあ。
Contents.m の要約
このディレクトリ内には、1次元と2次元の信号について繰り返し適用のできる双直交ウェーブレット解析のルーチンがあります。
ディレクトリ構成とその名称の由来であるアルゴリズムの要点は、すでにあるOrthogonalディレクトリの機能と対称で拡張されたフィルタ操作にあります。フィルタは実際には対称である必要はありませんが、どちらも長さ 2k+1 であり、中間サンプルの後ろのほうのフィルタ係数が0になるという特徴が同じです。
主要なツールは、FWT_PBS と IWT_PBS です。(変換と逆変換)
ウェーブレット変換
ウェーブレット変換の表示
- PlotPBSNultiRes
- 画面をn分割した多重解像度表示(Mallatスタイル)。
フィルタとウェーブレット生成器
- MakeBSFilter
- FWT_PBSとFWT_SBSのための、対称フィルタの生成器
- makeWavelet
- 周期的な直交ウェーブレットの生成器
2スケールオペレーター
gnuplotの日本語フォントの設定
Application Data/wgnuplot.ini の TextFont= で設定できる。
3.2.4をインストール、カスタマイズ(playaudio.m, .octaverc)
3.0.3との相違点
音を出す
まずWindowsでも音が出せるように、Windows標準のサウンドレコーダー(sndrec32.exe)を使うように以下設定。
playaudio.m 50行目付近
unwind_protect
file = tmpnam ();
num = fopen (file, "wb");
c = fwrite (num, X, "uchar");
fclose (num);
# for Windows
# system (sprintf ("cat \"%s\" > /dev/dsp", file));
system (sprintf ("sndrec32 /play /close \"%s\"", file));
# end for Windows
unwind_protect_cleanup
70行目付近
if (strcmp (ext, "lin") || strcmp (ext, "raw")) system (sprintf ("cat \"%s\" > /dev/dsp", name)); elseif (strcmp (ext, "mu") || strcmp (ext, "au") || strcmp (ext, "snd") || strcmp (ext, "ul")) system (sprintf ("cat \"%s\" > /dev/audio", name)); # for Windows elseif (strcmp (ext, "wav")) system (sprintf ("sndrec32 /play /close \"%s\"", name)); # end for Windows else error ("playaudio does not support given extension");
なお、引数が1個の場合に
ext = "lin";
って文が必要なはずなのに抜けている模様。このmファイルを ~/userTools 下においてaddpathしておけば、元のファイルをいじらずに済むしバージョンアップしても大丈夫。