お役立ち情報 > 拡張インクルードファイル > DrumMacro.h

DrumMacro.h

引数付きマクロを使った変則MMLです。

ダウンロード

リンクから、[保存]して下さい。

DrumMacro.h

ソース

 //------------------------------------------------------------------------------
 // ドラムマクロ
 //------------------------------------------------------------------------------
 // 引数付きマクロを使った変則MML。
 // 以下のような特徴を持つ。
 //
 // -ドラム演奏の俯瞰性を高める
 // -手軽に強弱をつける
 // -Time,Sub,r0などの面倒な記述を避ける
 //
 // ◆基本記述
 //
 // [ドラムマクロ名]で演奏楽器を指定、[ドラムマクロ制御文字]で譜面を記述する。
 //
 // #ドラムマクロ名({ドラムマクロ制御文字})
 // ※ドラムマクロ名については、[ドラムマクロ一覧]を参照
 //
 // ■ドラムマクロ制御文字
 //
 // ドラムマクロ制御文字は、Velocityを制御する。
 // Velocity制御には相対指定を用いるので、元のVelocityが変化することは無い。
 //
 // 弱<--------通 常------>強
 // a b c d e f * g h i j k (通常打)
 // A B C D E F + G H I J K (2 連打)
 // _ (休符)
 //
 // ※アルファベットで制御するのは、Velocityである点に注意する。
 // 通常のMMLのように、音程を制御するわけではない。
 //
 // ◆Expressionの操作
 //
 // [EP制御文字]でExpressionを操作する。
 //
 // #EP_CONTROL({EP制御文字})
 //
 // ■EP制御文字
 // EP制御文字は、Expressionを制御する。
 //
 // . Expression を半分のところで切る
 // < Expression の立ち上りを弱くする
 // > Expression の立ち下りを弱くする
 // ^ Expression の立ち上りと立ち下りを弱く (中間を強く) する
 // v Expression の立ち上りと立ち下りを強く (中間を弱く) する
 //
 // ◆記述例
 //
 // 以下の例は、キックとスネアによる演奏を行い、Velocityによる緩急と
 // Expressionの立ち上がり操作によるゴーストノートを発生させる。
 //
 // Include(DrumMacro.h)
 // TR(10)CH(10) l16
 // Time(3:1:0)
 // #EP_CONTROL({____ ____ ____ __<_ ____ ___< _^__ ____})
 // #SNARE1 ({____ *___ ____ f_d_ ____ *__d _e__ *___})
 // #KICK2 ({e_d_ *_d_ e_d_ *_*_ e_d_ *_e_ e_d_ *_e_})
 //
 //------------------------------------------------------------------------------
 $_{r}
 #VELOC_LIST = {
 $a{v_(-70) #?1 } $b{v_(-60) #?1 } $c{v_(-50) #?1 } $d{v_(-40) #?1 } $e{v_(-30) #?1 } $f{v_(-20) #?1 }
 $*{v_( 0) #?1 } $g{v_( 10) #?1 } $h{v_( 20) #?1 } $i{v_( 30) #?1 } $j{v_( 40) #?1 } $k{v_( 50) #?1 }
 $A{v_(-70) [#?1 !(MML(l) / 2)] } $B{v_(-60) [#?1 !(MML(l) / 2)] } $C{v_(-50) [#?1 !(MML(l) / 2)] }
 $D{v_(-40) [#?1 !(MML(l) / 2)] } $E{v_(-30) [#?1 !(MML(l) / 2)] } $F{v_(-20) [#?1 !(MML(l) / 2)] }
 $+{v_( 0) [#?1 !(MML(l) / 2)] } $G{v_( 10) [#?1 !(MML(l) / 2)] } $H{v_( 20) [#?1 !(MML(l) / 2)] }
 $I{v_( 30) [#?1 !(MML(l) / 2)] } $J{v_( 40) [#?1 !(MML(l) / 2)] } $K{v_( 50) [#?1 !(MML(l) / 2)] }
 }
 //- ドラムマクロ一覧 -----------------------------------------------------------
 #CONSERT_SNARE = {#VELOC_LIST({n24,}) Rhythm{{#?1}} v_(0)}
 #SNARE_ROLL = {#VELOC_LIST({n25,}) Rhythm{{#?1}} v_(0)}
 #FINGER_SNAP = {#VELOC_LIST({n26,}) Rhythm{{#?1}} v_(0)}
 #HIGH_Q = {#VELOC_LIST({n27,}) Rhythm{{#?1}} v_(0)}
 #SLAP = {#VELOC_LIST({n28,}) Rhythm{{#?1}} v_(0)}
 #SCRATCH_PUSH = {#VELOC_LIST({n29,}) Rhythm{{#?1}} v_(0)}
 #SCRATCH_PULL = {#VELOC_LIST({n30,}) Rhythm{{#?1}} v_(0)}
 #STICKS = {#VELOC_LIST({n31,}) Rhythm{{#?1}} v_(0)}
 #SQURARE_CLICK = {#VELOC_LIST({n32,}) Rhythm{{#?1}} v_(0)}
 #METRONOME_CLICK = {#VELOC_LIST({n33,}) Rhythm{{#?1}} v_(0)}
 #METRONOME_BELL = {#VELOC_LIST({n34,}) Rhythm{{#?1}} v_(0)}
 #KICK2 = {#VELOC_LIST({n35,}) Rhythm{{#?1}} v_(0)}
 #KICK1 = {#VELOC_LIST({n36,}) Rhythm{{#?1}} v_(0)}
 #SIDE_STICK = {#VELOC_LIST({n37,}) Rhythm{{#?1}} v_(0)}
 #SNARE1 = {#VELOC_LIST({n38,}) Rhythm{{#?1}} v_(0)}
 #HAND_CLAP = {#VELOC_LIST({n39,}) Rhythm{{#?1}} v_(0)}
 #SNARE2 = {#VELOC_LIST({n40,}) Rhythm{{#?1}} v_(0)}
 #LOW_TOM2 = {#VELOC_LIST({n41,}) Rhythm{{#?1}} v_(0)}
 #CLOSED_HI_HAT = {#VELOC_LIST({n42,}) Rhythm{{#?1}} v_(0)}
 #LOW_TOM1 = {#VELOC_LIST({n43,}) Rhythm{{#?1}} v_(0)}
 #PEDAL_HI_HAT = {#VELOC_LIST({n44,}) Rhythm{{#?1}} v_(0)}
 #MID_TOM2 = {#VELOC_LIST({n45,}) Rhythm{{#?1}} v_(0)}
 #OPEN_HI_HAT = {#VELOC_LIST({n46,}) Rhythm{{#?1}} v_(0)}
 #MID_TOM1 = {#VELOC_LIST({n47,}) Rhythm{{#?1}} v_(0)}
 #HIGH_TOM2 = {#VELOC_LIST({n48,}) Rhythm{{#?1}} v_(0)}
 #CRASH1 = {#VELOC_LIST({n49,}) Rhythm{{#?1}} v_(0)}
 #HIGH_TOM1 = {#VELOC_LIST({n50,}) Rhythm{{#?1}} v_(0)}
 #RIDE_CYMBAL1 = {#VELOC_LIST({n51,}) Rhythm{{#?1}} v_(0)}
 #CHINESE_CYMBAL = {#VELOC_LIST({n52,}) Rhythm{{#?1}} v_(0)}
 #RIDE_BELL = {#VELOC_LIST({n53,}) Rhythm{{#?1}} v_(0)}
 #TAMBOURINE = {#VELOC_LIST({n54,}) Rhythm{{#?1}} v_(0)}
 #SPLASH = {#VELOC_LIST({n55,}) Rhythm{{#?1}} v_(0)}
 #COWBELL = {#VELOC_LIST({n56,}) Rhythm{{#?1}} v_(0)}
 #CRASH2 = {#VELOC_LIST({n57,}) Rhythm{{#?1}} v_(0)}
 #VIBRA_SLAP = {#VELOC_LIST({n58,}) Rhythm{{#?1}} v_(0)}
 #RIDE_CYMBAL2 = {#VELOC_LIST({n59,}) Rhythm{{#?1}} v_(0)}
 #HIGH_BONGO = {#VELOC_LIST({n60,}) Rhythm{{#?1}} v_(0)}
 #LOW_BONGO = {#VELOC_LIST({n61,}) Rhythm{{#?1}} v_(0)}
 #MUTE_HIGH_CONGA = {#VELOC_LIST({n62,}) Rhythm{{#?1}} v_(0)}
 #OPEN_HIGH_CONGA = {#VELOC_LIST({n63,}) Rhythm{{#?1}} v_(0)}
 #LOW_CONGA = {#VELOC_LIST({n64,}) Rhythm{{#?1}} v_(0)}
 #HIGH_TIMBALE = {#VELOC_LIST({n65,}) Rhythm{{#?1}} v_(0)}
 #LOW_TIMBALE = {#VELOC_LIST({n66,}) Rhythm{{#?1}} v_(0)}
 #HIGH_AGOGO = {#VELOC_LIST({n67,}) Rhythm{{#?1}} v_(0)}
 #LOW_AGOGO = {#VELOC_LIST({n68,}) Rhythm{{#?1}} v_(0)}
 #CABASA = {#VELOC_LIST({n69,}) Rhythm{{#?1}} v_(0)}
 #MARACAS = {#VELOC_LIST({n70,}) Rhythm{{#?1}} v_(0)}
 #SHORT_HI_WHISTLE= {#VELOC_LIST({n71,}) Rhythm{{#?1}} v_(0)}
 #LONG_LOW_WHISTLE= {#VELOC_LIST({n72,}) Rhythm{{#?1}} v_(0)}
 #SHORT_GUIRO = {#VELOC_LIST({n73,}) Rhythm{{#?1}} v_(0)}
 #LONG_GUIRO = {#VELOC_LIST({n74,}) Rhythm{{#?1}} v_(0)}
 #CLAVES = {#VELOC_LIST({n75,}) Rhythm{{#?1}} v_(0)}
 #HIGH_WOOD_BLOCK = {#VELOC_LIST({n76,}) Rhythm{{#?1}} v_(0)}
 #LOW_WOOD_BLOCK = {#VELOC_LIST({n77,}) Rhythm{{#?1}} v_(0)}
 #MUTE_CUICA = {#VELOC_LIST({n78,}) Rhythm{{#?1}} v_(0)}
 #OPEN_CUICA = {#VELOC_LIST({n79,}) Rhythm{{#?1}} v_(0)}
 #MUTE_TRIANGLE = {#VELOC_LIST({n80,}) Rhythm{{#?1}} v_(0)}
 #OPEN_TRIANGLE = {#VELOC_LIST({n81,}) Rhythm{{#?1}} v_(0)}
 #SHAKER = {#VELOC_LIST({n82,}) Rhythm{{#?1}} v_(0)}
 #JINGLE_BELL = {#VELOC_LIST({n83,}) Rhythm{{#?1}} v_(0)}
 #BELL_TREE = {#VELOC_LIST({n84,}) Rhythm{{#?1}} v_(0)}
 #CASTANETS = {#VELOC_LIST({n85,}) Rhythm{{#?1}} v_(0)}
 #MUTE_SURDO = {#VELOC_LIST({n86,}) Rhythm{{#?1}} v_(0)}
 #OPEN_SURDO = {#VELOC_LIST({n87,}) Rhythm{{#?1}} v_(0)}
 //------------------------------------------------------------------------------
 #EP_CONTROL = {
 $.{EP.WE((127,127,!1),( 0, 0,!1)) r? EP(127)}
 $<{EP.WE(( 71,127,!1),(127,127,!1)) r? EP(127)}
 $>{EP.WE((127,127,!1),(127, 71,!1)) r? EP(127)}
 $^{EP.WE(( 79,127,!1),(127, 79,!1)) r? EP(127)}
 $v{EP.WE((127, 79,!1),( 79,127,!1)) r? EP(127)}
 Rhythm{{#?1}}
 }
 //------------------------------------------------------------------------------

コメント

  • 追加。空白が詰まってソース見づらいかも。
    ダウンロード版は詰まっていないはず。 -- 管理者 (2013-06-09 15:54:16)
名前:
コメント:

タグ:

+ タグ編集
  • タグ:
最終更新:2013年06月09日 17:20