- 追加された行はこの色です。
- 削除された行はこの色です。
Muse は Microsoft Windows 用のソフトウェアですが、[[Wine:http://ja.wikipedia.org/wiki/Wine]] というソフトウェアを使用することで、[[Linux:http://ja.wikipedia.org/wiki/Linux]] 上でも実行することができます。
#contents
*Wine とは [#c4e6d1fb]
*Wine とは [#ubb7a0e1]
[[Wine:http://ja.wikipedia.org/wiki/Wine]] は、[[80x86:http://ja.wikipedia.org/wiki/80x86]]([[IA-32:http://ja.wikipedia.org/wiki/IA-32]]) CPU で動作する[[広義の UNIX:http://ja.wikipedia.org/wiki/UNIX#UNIX.E3.81.AE.E5.AE.9A.E7.BE.A9]] 上で Windows API を実行するプロジェクトです。
具体的には、[[Linux:http://ja.wikipedia.org/wiki/Linux]]、[[FreeBSD:http://ja.wikipedia.org/wiki/FreeBSD]]、[[Mac OS X:http://ja.wikipedia.org/wiki/Mac_OS_X]]、[[Solaris:http://ja.wikipedia.org/wiki/Solaris]] などをターゲットとしているので、これらの全ての OS 上で Muse が動作する可能性があります。
*Wine のインストール [#ie3dd41c]
*Wine のインストール [#r4d58fab]
[[Wine HQ:http://www.winehq.com/]] → [[Get Wine Now:http://www.winehq.com/site/download]] と辿って、お使いの Linux ディストリビューション用のバイナリパッケージがあれば、それをインストールします。
なければ、更に [[SourceForge.net:http://sourceforge.net/project/showfiles.php?group_id=6241]] を辿ってソース(Source Packages)を入手します。~
ソースからのインストールの場合、
tar jxf wine-0.9.23.tar.bz2
cd wine-0.9.23
./configure --with-x
make depend
make
su
make install
exit
という手順でいけると思います。~
もちろん、事前に README と ./configure --help をよく読んで下さい。
もちろん、事前に README と ./configure --help を良く読んで下さい。
インストールが終了したら、
winemine
を実行してみましょう(マインスイーパです)。
実行してみると、延々と、
Font metrics: xx.x% done
というメッセージが出て、何回か 100% に達してからやっとマインスイーパが実行されます。~
何度やっても、毎回この作業が繰り返されます。~
私は、
cd ~/.wine/drive_c/windows/fonts/
cp /usr/X11R6/lib/X11/fonts/TrueType/ipa*.ttf .
で幸せになれました。
*Muse のインストール [#c7d2c96f]
*Muse のインストール [#mce77f24]
[[MUSE WORLD:http://homepage3.nifty.com/~atomic/muse/muse.htm]] → ダウンロード と辿って、Muse Ver '''X.X''' をダウンロードします。
muse'''XXX'''.exe を適当なディレクトリで展開します。
私は、~/lib/muse/ にインストールしました。
mkdir -p ~/lib/muse
cd ~/lib/muse
lha e ~/muse491.exe
rm ! $
早速、Muse を起動してみましょう。
wine muse.exe
ハードウェア音源があって適切に設定されていれば、Windows 環境と同様に音がなるはずです。
音源がなくて音がならない場合、一旦 Muse を終了して、
timidity -iA &
として、TiMidity++ を ALSA シーケンサ クライアントモードで起動してから上記を実行します。
timidity -iA でエラーが出る、つまり、TiMidity++ のコンパイル時に ALSA シーケンサ クライアントモードインタフェイスを組み込んでいない、または、そもそも TiMidity++ がインストールされていない場合には、適切なパッケージを拾ってきてインストールするか、[[TiMidity++:http://timidity.sourceforge.net/]] からソースをダウンロードしてきて、./configure に --enable-audio=alsa --enable-alsaseq のオプションをつけてコンパイル・インストールして下さい。
cd ~/lib/muse
wine muse.exe sample1.mus
で、最後の拍手(applause.wav)が再生されない場合、
winecfg
で、オーディオ タブを選択して、ALSA Driver にチェックを入れてみましょう。
ただし、Wine + Muse + TiMidity++ では、かなりのマシンパワーがないと、演奏・表示にもたれが出ます。
*muse コマンドの作製 [#of3d3407]
*muse コマンドの作製 [#z6d6d260]
毎回々々 wine ~/lib/muse/muse.exe hogehoge.mus などと打ち込むのは面倒だし、Muse のコマンドオプションは *a などの形式で、UNIX のシェルと相性が悪いので、~/bin/muse という下記のコマンドを作ってみました。~
chmod u+x ~/bin/muse で実行属性をつけます。~
muse.exe *a *e *p *s sample3.mus なら muse -aeps sample3.mus とまとめて指定できます。
#! /usr/local/bin/ruby
WINE = 'wine'
MUSE = '~/lib/muse/muse.exe'
REDIRECTION = '> /dev/null 2>&1'
def usage()
print <<EOM
Usage:
muse [options] [filename]
Options:
-a Flip score automatically
-e Exit Muse just after the performance
-f Show finger meter dialog
-h Show this help
-i Run Muse with minimized window
-m Show member color dialog
-o Compile muse data file into MIDI
-p Start performance after activation
-s Show score monitor window
-x Inhibit multi-activation
EOM
end
require 'getopts'
command = "#{WINE} #{File.expand_path(MUSE)} "
unless getopts('aefhimopsx', 'help')
abort("Invalid option(s).\nTry muse --help for more information.\n")
end
if $OPT_h or $OPT_help
usage()
exit(0)
end
if $OPT_a then command += "'*a' " end
if $OPT_e then command += "'*e' " end
if $OPT_f then command += "'*f' " end
if $OPT_i then command += "'*i' " end
if $OPT_m then command += "'*m' " end
if $OPT_o then command += "'*o' " end
if $OPT_p then command += "'*p' " end
if $OPT_s then command += "'*s' " end
if $OPT_x then command += "'*x' " end
command += "'*a' " if $OPT_a
command += "'*e' " if $OPT_e
command += "'*f' " if $OPT_f
command += "'*i' " if $OPT_i
command += "'*m' " if $OPT_m
command += "'*o' " if $OPT_o
command += "'*p' " if $OPT_p
command += "'*s' " if $OPT_s
command += "'*x' " if $OPT_x
command += "#{ARGV.join(' ')} #{REDIRECTION}"
system(command)
実行には [[Ruby:http://www.ruby-lang.org/]] が必要です。
最初の 4行をそれぞれの環境に合わせて修正すれば、大抵動作すると思います。
Let's happy musing !