マクロは繰返し記号への対応という使い方以外にも“演奏パターンの部品化”という活用もできます。曲の後半に旋律やリズムのデータを部品化し、それをマクロとして定義しておきます。そして、実際の演奏は曲の前半で展開マクロで行います。しかし、Museでは定義マクロも演奏対象になるため、このままでは後半の部品定義部分まで演奏されてしまいます。そこで、前半部と後半部の間に曲を終了させるコマンド*STOP""を記述しておきます。この様な記述にすると曲全体の進行構造がよくわかり、編曲がしやすくなります。なお、*STOP""以降で演奏対象にならない部分は、文法エラーを検出しません。以下は、前節の曲を部品化した形式で書き直した例です。
★クラリネットをこわしちゃった(マクロを部品として利用) %%280 \- ;←%を重ねている理由は補足を参照のこと @K V080 P49 S0 T0 Q00 R40 W0 @M V120 P70 S0 T0 Q10 R60 W0 @N V120 P72 S0 T0 Q20 R60 W0 #K0 o6 v80 #M0 o4 v80 #N0 o4 v120 *TEXT"部品形式で書き直しました(今演奏しているのは部品1です)" ${Part1} *TEXT"ここで、部品2に入ります" ${Part2} #K0 ┃'F'2_┃ #M0 ┃f1 ┃ #N0 ┃f1 ┃ *TEXT"部品1に戻りました" ${Part1} *TEXT"再度、部品2を演奏します" ${Part2} #K0 ┃'F'2_┃ #M0 ┃f1 ┃ #N0 ┃f1 ┃ *TEXT"次は、部品3です" ${Part3} *TEXT"またしても、部品2に戻りました" ${Part2} *TEXT"最後に、コーダの部品4" ${Part4} ${Drum} ; ←●前節で定義してあるドラムセットを再利用しています _2 *TEXT"以上です" *STOP"" ;==========⇒●ここで演奏終了(以下は実体のデータ) ■部品1 $Part1{ #K0┃'F'1&┃'F' ┃'F'& ┃'F'2._4┃ ┃'F'1&┃'F' ┃'F'& ┃'F'2._4┃ #M0┃f4fff┃fffs┃l2.s4 ┃f2d4_ ┃ ┃f4fff┃fffs┃l2.s4 ┃f2d4_ ┃ #N0┃f4fff┃fffs┃l2.s4 ┃f2d4_ ┃ ┃l4lll┃lllc┃<d2.>c4┃l2f4_ ┃ } ■部品2 $Part2{ #K0┃'F'1 ┃'D7>>' ┃'Gm7'& ┃'Gm7'2_ ┃ ┃'C7>>'1& ┃'C7>>' ┃'F'& ┃'F'2_ ┃ ┃'F'1& ┃'F'4_2. ┃'F'1& ┃'F'1 ┃ ┃'F'1& ┃'F' ┃'D7>>' ┃'Gm'4'D7>>''Gm'2┃ ┃'C7>>'1& ┃'C7>>'& ┃'C7>>' ┃ #M0┃l2l4.//l8// ┃f+4rmf+ ┃s2s4.//s8//┃s2_ ┃ ┃s4//ss4.//f8┃m4drm ┃f2f4.//f8//┃f2_ ┃ ┃l2.s4 ┃f4___ ┃l2.s4 ┃f4__<d> ┃ ┃l4l8ll4<d> ┃l4l8ll4<d>┃<rd>cl ┃slcc ┃ ┃s4s8ss4c ┃s4s8ss4c ┃<d>cls ┃ #N0┃<d2d4.//d8//┃r4d>cl ┃c2c4.//c8//┃c2_ ┃ ┃c4//cc4.//c8┃<d4>cls ┃l2l4.//l8//┃l2_ ┃ ┃<d2.>c4 ┃l4___ ┃<d2.>c4 ┃l4__<d> ┃ ┃l4l8ll4<d> ┃l4l8ll4<d>┃<rd>cl ┃slcc ┃ ┃s4s8ss4c ┃s4s8ss4c ┃<d>cls ┃ } ■部品3 $Part3{ #K0┃'F'1&┃'F' ┃'F'& ┃'F' ┃ ┃'F'1&┃'F' ┃'F'& ┃'F' ┃ ┃'F'1&┃'F' ┃'F'& ┃'F' ┃ #M0┃f4fff┃ffff ┃ffff ┃fffs┃ ┃l2.s4┃f2d ┃f4fff ┃ffff┃ ┃f4fff┃fffs ┃l2.s4 ┃f2d ┃ #N0┃f4fff┃ffff ┃ffff ┃fffs┃ ┃l2.s4┃f2d ┃l4lll ┃llll┃ ┃l4lll┃lllc ┃<d2.>c4┃l2f ┃ } ■部品4 $Part4{ #K0┃'F'4_'C7>>'_┃'F'__2┃ #M0┃f4//_<d>_ ┃<f>__2┃ #N0┃f4//_<d>_ ┃<f>__2┃ }再現表記の活用で紹介した「リズムパターンの分離」とゼロ音長を利用して、リズムのマクロ化を実現することもできます。*STOP""以降で、再現表記,だけで発音する和音やコードのないリズムだけの定義をしておき、マクロを展開する際にゼロ音長で、発音する和音やコードを指定するという方法です。
┌─→'Cm'0 ${Rhythm} ;Cマイナーのコードをリズムパターンで演奏 ├─→[dms]0 ${Rhythm} ;ドミソの和音をリズムパターンで演奏 │ │ *STOP"" │ └──$Rhythm{,4,4,8,8,4} ;リズムパターンの定義