home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / taropyon / he386 / doc / textbook.doc < prev   
Text File  |  1995-06-20  |  9KB  |  254 lines

  1. **************************************************************************
  2.  
  3.                   HE386 ver.3.01 テキストブック
  4.  
  5. **************************************************************************
  6.  
  7. **************************************************************************
  8. ☆  基礎編
  9. **************************************************************************
  10.  
  11. ■MMLの基礎
  12.  
  13. ●音階の表しかた
  14.  
  15.   ┌───┬──────────────────────────────┐
  16.   │音階  │ド   ド♯ レ   レ♯ ミ   ファ ファ♯ ソ   ソ♯ ラ   ラ♯ シ   │
  17.   │      │     レ♭      ミ♭           ソ♭      ラ♭      シ♭      │
  18.   ├───┼──────────────────────────────┤
  19.   │MML   │c    c+   d    d+   e    f    f+   g    g+   a    a+   b    │
  20.   │      │     d-        e-             g-        a-        b-        │
  21.   └───┴──────────────────────────────┘
  22.  
  23.  オクターブはoコマンドで指定します。
  24.  オクターブ4の「ラ」の音は,MML では「o4 a」と表します。
  25.  oコマンドは一度指定すれば,次にオクターブが変わるまで使う必要はありませ
  26. ん。
  27.  たとえば「ド・レ・ミ・フ・ァ・ソ・ラ・シ・ド」は最後の「ド」の音はオクタ
  28. ーブがひとつ上ですが,これは
  29.     o4 c d e f g a b o5 c
  30. と表します。
  31.  またオクターブは現在のオクターブよりひとつ上げる,ひとつ下げるといった指
  32. 定ができます。「> 」がオクターブをひとつ上げるコマンド,「< 」はオクターブ
  33. をひとつ下げるコマンドになります。これを使うと先程の「ド・レ・ミ・フ・ァ・
  34. ソ・ラ・シ・ド」は,
  35.     o4 c d e f g a b > c
  36. と表せます。
  37.  
  38. ●音の長さの表しかた
  39.  
  40.  音の長さは,音符による指定とステップタイムによる指定の2種類の指定方法が
  41. あります。
  42.  音符による指定は簡単です。たとえば,4分音符なら「4」,16分音符なら「16」
  43. と指定した数値がそのまま音符になります。全音符は「1」になります。
  44.  符点付きの場合は,数字の後ろにピリオド「. 」を置いてください。たとえば,
  45. 符点4分音符は「4.」となります。
  46.  MML として指定するときは,音階を表す文字(A~G)の後ろに音符を表す数字
  47. を置きます。
  48.     a4      …「ラ」4分音符
  49.     c+16    …「ド♯」16分音符
  50.     f2.     …「ファ」符点2分音符
  51.  
  52.  全音符よりも長い音は,タイを使って音符をつなげて表現します。タイはMML で
  53. は「&」となります。
  54.  
  55.     c1& c1& c4    …全音符 + 全音符 + 4分音符
  56.  
  57.  音の長さを毎回するのが面倒なときは省略することができます。音の長さを省略
  58. した場合はl コマンドで指定した長さが指定されたとみなされます。
  59.  
  60.     l8 c d e& e d
  61.  
  62. ●強弱の指定
  63.  
  64.  音の強弱は,v コマンドを使って指定します。
  65.  強弱は1~127 の範囲で指定でき,数値が大きいほど大きな音となります。
  66.  v コマンドは鍵盤を押す速さを意味するベロシティを指定するもので,発音中の
  67. 音量の変化は行えません。v コマンドは発音するときの音の強さを間接的に指定す
  68. るコマンドで,v コマンド単体では音は何も変化しません。v コマンドは次に現れ
  69. る音階a ~g コマンドが使われたときに実際の音の大きさが変化します。
  70.  
  71.     l8 v80 c d e f v110 g
  72.  
  73.  
  74. ■HE386系MMLの基礎
  75.  
  76. ●数値指定について,
  77.  
  78.  HE386 には,数値の指定に,
  79.     ・直接指定
  80.     ・相対指定
  81.     ・比率指定
  82.     ・ランダム指定
  83. の4つの方法があり,これらを組み合わせて使うこともできます。
  84.  
  85.  直接指定というのは,普通に数値を指定する方法です。たとえば「v100」という
  86. のがこれにあたります。
  87.  
  88.  相対指定は,「現在の値から10増やす」といった具合に現在の値を中心にして変
  89. 化する分量を指定する指定方法です。相対指定はシングルクォート(' )を付けて
  90. 指定します。
  91.  たとえば,次のようにすると,
  92.  
  93.     v100 c v'10 d v'-50 e
  94.  
  95. d の音は「100+10」でv110 ,e の音は「110-50 」でv60 が指定されたのと同じ
  96. です。
  97.  
  98.  比率指定は,「現在の値の80%」といった具合に,比率で値を変化させる指定方
  99. 法です。比率指定はパーセント記号(%)を数値の最後につけます。
  100.  たとえば,次のようにすると,
  101.  
  102.     v50 c v80% d
  103.  
  104. d の音は「50 × 80÷100」でv40 が指定されたのと同じです。
  105.  
  106.  ランダム指定は,「0から100まで間の乱数」といった具合に,指定範囲中の乱数
  107. となります。ランダム指定は「*<数値1>..<数値2>」 といった具合に指定します。
  108.  たとえば,次のようにすると,
  109.  
  110.     v*80..100 c d e
  111.  
  112. c もd も e も,v コマンドは80~100の間で中が入るかわかりません。
  113.  
  114.  
  115. **************************************************************************
  116. ☆  応用編(初級)
  117. **************************************************************************
  118.  
  119. ■「ドレミファソラシド」を鳴らしてみる
  120.  
  121. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  122. .track  1   port:A  ch:1    macro:Melody
  123. Melody(1)   = l8 v100 o4 c d e f g a b >c
  124. .meas
  125. .end
  126. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  127.  
  128.  
  129. ■ドミソ(Cコード)を鳴らす
  130.  
  131. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  132. .track  1   port:A  ch:1    macro:Organ
  133. Organ(1)    = o3 v80 g1
  134. Organ(2)    = o3 v80 e1
  135. Organ(3)    = o3 v80 c1
  136. .meas
  137. .end
  138. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  139.  
  140.  
  141. ■音色をかえる(プログラムチェンジ)(1)
  142.  
  143. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  144. .track  1   port:A  ch:1    macro:Melody
  145. Melody(1)   = @PROG(14) /* プログラムチェンジ14 */
  146. .meas
  147. .end
  148. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  149.  
  150. ■音色をかえる(プログラムチェンジ)(2)
  151.  
  152. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  153. .track  1   port:A  ch:1    macro:Melody
  154. Melody(1)   = ?(prog:14) /* プログラムチェンジ14 */
  155. .meas
  156. .end
  157. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  158.  
  159.  
  160. ■音量をだんだんと小さくする
  161.  
  162. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  163. .track  1   port:A  ch:1    macro:Melody
  164. Melody(1)   = l8 x127 r1  x120r x110r x100r x90r x80r x70r x60r x50r
  165. Melody(2)   = c1& c1
  166. .meas
  167. .meas
  168. .end
  169. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  170.  
  171. 【解説】
  172.  エクスプレッション(x コマンド)を使って音量をだんだんと下げています。
  173.  
  174.  
  175. **************************************************************************
  176. ☆  応用(中級)
  177. **************************************************************************
  178.  
  179.  
  180. ■指定トラックのベロシティをランダムに
  181.  
  182. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  183. .track  1   port:A  ch:1    macro:Bass
  184. /* -2 ~ +2の間でランダムにベロシティにオフセットを加える
  185. Bass(1)     = @FILTER(vel,rnd:-2/2)
  186. .meas
  187. .end
  188. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  189.  
  190. ■指定パートのベロシティをランダムに (1)
  191.  
  192. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  193. .track  1   port:A  ch:1    macro:Bass
  194. /* 98 ~ 102の間でランダムにベロシティ指定する
  195. Bass(1)     = v*98..102 /* same "?(vel:*98..102)" */
  196. .meas
  197. .end
  198. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  199.  
  200. ■指定パートのベロシティをランダムに (2)
  201.  
  202. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  203. .track  1   port:A  ch:1    macro:Bass
  204. /* オフセッタで -2 ~ +2 の間でランダムにベロシティにオフセットを加える
  205. Bass(1)     = v#*-2..2  /* same "?#(vel:*-2..2)" */
  206. .meas
  207. .end
  208. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  209.  
  210.  
  211.  
  212. **************************************************************************
  213. ☆  応用編(GS音源)
  214. **************************************************************************
  215.  
  216. ■GS音源の初期化
  217.  
  218. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  219. .track  1   port:A  ch:1    macro:System
  220. System(1)   = $exGs_reset() /* GS reset */
  221. .meas
  222. .end
  223. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  224.  
  225. ■バンクをともなったプログラムチェンジ (1)
  226.  
  227. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  228. .track  1   port:A  ch:1    macro:EPiano
  229. EPiano(1)   = @CC(0,8) @PROG(6) /* バンク 8,プログラムナンバ 6 */
  230. .meas
  231. .end
  232. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  233.  
  234. ■バンクをともなったプログラムチェンジ (2)
  235.  
  236. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  237. #define BANK    @CC(0,$1)       /* バンク切り換え用マクロ定義 */
  238.  
  239. .track  1   port:A  ch:1    macro:EPiano
  240. EPiano(1)   = $BANK(8) @PROG(6) /* バンク 8,プログラムナンバ 6 */
  241. .meas
  242. .end
  243. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  244.  
  245. ■バンクをともなったプログラムチェンジ (3)
  246.  
  247. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  248. .track  1   port:A  ch:1    macro:EPiano
  249. EPiano(1)   = ?(cc:0/8,prog:6)  /* バンク 8,プログラムナンバ 6 */
  250. .meas
  251. .end
  252. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  253.  
  254.