Muse は Microsoft Windows 用のソフトウェアですが、Wine というソフトウェアを使用することで、Linux 上でも実行することができます。
Wine は、80x86(IA-32) CPU で動作する広義の UNIX 上で Windows API を実行するプロジェクトです。
具体的には、Linux、FreeBSD、Mac OS X、Solaris などをターゲットとしているので、これらの全ての OS 上で Muse が動作する可能性があります。
Wine HQ → Get Wine Now と辿って、お使いの Linux ディストリビューション用のバイナリパッケージがあれば、それをインストールします。
なければ、更に SourceForge.net を辿ってソース(Source Packages)を入手します。
ソースからのインストールの場合、
tar jxf wine-x.x.x.tar.bz2 cd wine-x.x.x ./configure make depend make su make install exit
という手順でいけると思います。
もちろん、事前に README と ./configure --help をよく読んで下さい。
インストールが終了したら、
winemine
を実行してみましょう(マインスイーパです)。
MUSE WORLD → ダウンロード と辿って、MUSE.ZIP をダウンロードします。
MUSE.ZIP を適当なディレクトリで展開します。
私は、~/lib/muse/ にインストールしました。
mkdir -p ~/lib/muse cd ~/lib/muse unzip ~/MUSE.ZIP
早速、Muse を起動してみましょう。
wine muse.exe
ハードウェア音源があって適切に設定されていれば、Windows 環境と同様に音がなるはずです。
音源がなくて音がならない場合、一旦 Muse を終了して、
timidity -iA &
として、TiMidity?++ を ALSA シーケンサ クライアントモードで起動してから上記を実行します。
timidity -iA でエラーが出る、つまり、TiMidity?++ のコンパイル時に ALSA シーケンサ クライアントモードインタフェイスを組み込んでいない、または、そもそも TiMidity?++ がインストールされていない場合には、適切なパッケージを拾ってきてインストールするか、TiMidity++ からソースをダウンロードしてきて、./configure に --enable-audio=alsa --enable-alsaseq のオプションをつけてコンパイル・インストールして下さい。
ただし、Wine + Muse + TiMidity?++ では、それなりのマシンパワーがないと、演奏・表示に多少のもたれが出ます。
Muse にオプションを渡す場合、オプションをクォーテーションで括ってやらないとおかしなことになります
これは、例えば *e というオプションはシェルによって末尾が e の全てのファイルに展開されるからです
これを防ぐために、ダブルクォーテーションかシングルクォーテーションで括ります
wine muse.exe "*f" "*m" "*p" "*q" "*s" sample1.mus
ダブルクォーテーションとシングルクォーテーションの働きの違いは、この場合には問題になりませんので、どちらを使ってもかまいません
2つの働きの違いについては、シェルについての参考書やサイトを参照して下さい。
なお、Museはオプションの列挙記述が可能なので、上記は以下のようにも書けます。
wine muse.exe "*fmpqs" sample1.mus
毎回々々 wine ~/lib/muse/muse.exe hogehoge.mus などと打ち込むのは面倒だし、Muse のコマンドオプションは UNIX のシェルと相性が良くないので、~/bin/muse という下記のコマンドを作ってみました。
chmod u+x ~/bin/muse で実行属性をつけます。
wine muse.exe "*f" "*m" "*p" "*q" "*s" sample3.mus なら muse -fmpqs sample3.mus とまとめて指定できます。
#! /usr/bin/ruby WINE = 'wine' MUSE = '~/lib/muse/muse.exe' REDIRECTION = '> /dev/null 2>&1' VERSION = "2.0" def usage() print <<EOM Usage: muse [options] [filename] Options: -b Inhibit dialogs while batch execution (output muse.rep) -c Compile muse data file into PDF (music score) -e Compile muse data file into MIDI -f Show finger meter dialog -h Show this help -i Run Muse with minimized window -m Show member color dialog -p Start performance after activation -q Exit Muse just after the performance -s Show score monitor window -t Omit text data into MIDI -u Output Unicode text data into MIDI -v Inhibit reallocation on start-up -w Compile muse data file into WAVE (with VSTi) -x Inhibit multi-activation -y Output landscape music score -0 Output A0 size music score -1 Output A1 size music score -2 Output A2 size music score -3 Output A3 size music score -4 Output A4 size music score EOM end require 'optparse' opts = "" begin params = ARGV.getopts('bcefhimpqstuvwxy01234', 'help', 'version') if params['h'] or params['help'] usage() exit(0) end if params['version'] print "muse.rb version #{VERSION}\n" exit (0) end params.each {|opt| opts += opt[0] if opt[1] } rescue OptionParser::InvalidOption => ex abort <<EOM Invalid option [#{ex.args[0]}]. Try muse --help for more information. EOM end musepath = File.expand_path(MUSE) opts = '*' + opts if '' != opts args = ARGV.join(' ') command = "#{WINE} #{musepath} #{opts} #{args} #{REDIRECTION}" system(command)
実行には Ruby が必要です。
最初の 4行をそれぞれの環境に合わせて修正すれば、大抵動作すると思います。
Let's happy musing !