【第2章】 Museコーディングの手引き

■より高度な記述

  1. 音声ファイルを再生させる

    Museは、任意のタイミングでWave系のファイルを再生させる機構を持っています。通常、MIDI音源とWAVE音源は独立していますから、MIDIでは表現できない効果音をミキシングすることが可能です。コマンド名はWAVEで、パラメータにはWaveファイルに代表される音声を含むマルチメディア系のファイル名を記述します。

    (注)指定できるファイルは、wav/mp3/wma/avi/mpg/wmv/asf 等で、動画系のデータでも音声部分のみを再生します。ただし、WindowsMediaPlayerのバージョンが古いと再生しない場合があります。また映像系のデータを指定した場合、多少再生開始に時間がかかる場合があります。

    ファイル名はパス記述が可能です。相対パスにする場合は、記述するMuseファイル自体からの相対パスにします。しかしパス記述は、Museデータを配布することを考慮すると、使用を避けた方が無難です。Museファイルと音声ファイルは極力同一フォルダに配置し、ファイル名だけの指定にすることを推奨します。

    (注)指定されたパスで音声ファイルが見つからない場合や、再生不能なファイルが指定された場合でも、エラーにはならず演奏は進行します。

    なお、下記の例は曲の途中から演奏しているのでV指定を活用してフェードインを実現しています。メンバー宣言でEFを指定しているため、一ヶ所のVで、メンバーEFを同時に処理しています。参考にして下さい。

    
    ↑ Waveファイルは再生されません。
    
    ★ショパン「幻想即興曲」
    %80 \=
    @EF                       ;←メンバー宣言EF
    P1 S0 T0 W0 R100 Q0       ;←メンバーEFに対し、一気に属性指定
    #E0 o4 v127 V30 V127:2    ;←メンバーEFを同時にフェードイン
    #F0 o4 v127 ?6
    
    #E0 (lclclcl)8.s+16l8.c16┃s8_<c4 & (c8lsm-d>l8.<s16>)2┃
    #F0 m8c<r+d>┃mc<ms>┃l<d-md>┃
    
    #E0 r2~16c16l8.s+16l8.c16┃s4_l(<d>cl)┃s2(lclcl)8s<mr>┃
    #F0 c8<m>smc<r+lr+┃mscs rflf┃>m<msc <r>csm>┃
    
    #E0 <m2s2┃f4m[r]4~8(mrdr)8m8.d16┃>s2l2┃^2(c-<d>c-<d>c-)8l8<r8m8┃
    #F0 l<dml<d>lmd┃cmlmsmlm┃>msc<m>rfl<r>┃fl+<dfl+fm>f┃
    
    #E0 f4mrm┃d4.>f+32sls<m4.r8┃r1┃[d1>s1m1]2
    #F0 c<r[m+d]s[rf]c[ms]r┃[>l<d]mlm[>l<r]msm┃[>l<r]msc<r>csm[m1>l1]2┃
    
    *WAVE "applause.wav"
    _1_1_2 ; ←●WAVE音が鳴っている間、休符を入れておく。

    上記例では曲の終了時に拍手のウェーブ音を入れています。最後の和音の長さは全音符ですが、和音自体の占有音長を二分音符にして、音が鳴り終る前に拍手がかぶるように工夫しています。また、拍手が鳴っている時間だけ最後に休符を入れて、Muse演奏自体が終了しないようにしています。Muse演奏が終了した時点(シークバーが右端に達した時点)でWAVE音源もOFFになりますから、最後までWAVE音を鳴らしたい場合この最後の休符は必須です。WAVE音を途中で強制的に止めたい場合は、パラメータ無しのコマンド*WAVE""を指定して下さい。

    (注)余談ですが、私は曲が最後まで鳴り終らない内に拍手をするのが嫌いです。ちゃんと最後の響きまで堪能すべきであり、鳴り終ってからの静寂も、少なくとも1小節分ぐらいは味わいたいものです。実際、Museデータでも最終音の余韻を響かすために最後に適度な休符を与えることをお勧めします。