サクラトップ 掲示板トップ ログイン

rchord.h - 和音をびみょ~にランダムなタイミングで演奏させる - サクラ曲掲示板6

曲掲示板6にエディタ機能が追加されました!気軽に曲を作成してみましょう!
ななこっち★

rchord.h - 和音をびみょ~にランダムなタイミングで演奏させる

MML先頭 2000 文字だけ表示していますダウンロード全文を見る
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // title: "rchord.h" ver 1.02
  3. // description: 和音を下からランダムなタイミングで演奏するインクルードファイル(2015/05/24)
  4. // keywords: SAKURA Function by ななこっち★ @nanakochi123456
  5. // HP: http://nano.daiba.cx/
  6. ///////////////////////////////////////////////////////////////////////////////
  7. // rchord.h 和音をランダムなタイミングで演奏する
  8. ///////////////////////////////////////////////////////////////////////////////
  9. // Function RCDINIT(min, value)
  10. // 乱数値の最小値、最大値を設定する。両方0にすると、同一タイミングで演奏します。
  11. //
  12. // Function RCD(mml)
  13. // ランダムに演奏したい和音のMMLを入力する
  14. ///////////////////////////////////////////////////////////////////////////////
  15. // Example
  16. // Include(rchord.h)
  17. // RCDINIT(53,513)
  18. // l4 RCD(ceg)
  19. // l8 RCD(<b>fg)
  20. // l8 RCD(ceg)
  21. ///////////////////////////////////////////////////////////////////////////////
  22. // テストする場合、コメントアウトを消して下さい。
  23. //Int TEST=1
  24. ///////////////////////////////////////////////////////////////////////////////
  25.  
  26. Int RCD_MIN=192
  27. Int RCD_MAX=768
  28.  
  29. Function RCDINIT(Int MIN, Int MAX) {
  30. RCD_MIN=MIN
  31. RCD_MAX=MAX
  32. }
  33.  
  34. Function RCD(Str MML) {
  35. Str BUF=""
  36. Str FIRST=""
  37. Str ML=""
  38. Str M
  39. Str R
  40. Str FM
  41. Int C=0
  42.  
  43. BUF=""
  44. R=""
  45. For(Int i=1; MID(MML, i, 1)!=""; i++) {
  46. M=MID(MML, i, 1)
  47. IF(DEBUG=1||TEST=1) {
  48. Print("Count "+ C + " Str="+M)
  49. }
  50. IF(M="a"||M="b"||M="c"||M="d"||M="e"||M="f"||M="g") {
  51. C++
  52. IF(C<2) {
  53. FIRST=ML
  54. ML=FM+M
  55. FM=""
  56. } ELSE {
  57. BUF=BUF+"Sub" + CHR(123)+R+ML+CHR(125)
  58. IF(RCD_MAX>0) {
  59. R=R+"r"+Random(RCD_MIN, RCD_MAX)
  60. }
  61. ML=M
  62. }
  63. } ELSE {
  64. IF(C>0) {
  65. ML=ML+M
  66. } ELSE {
  67. FM=FM+M
  68. }
  69. }
  70. }
  71. BUF=BUF+"Sub"+CHR(123)+R+ML+CHR(125)+FIRST+"r"
  72. IF(DEBUG=1 || TEST=1) {
  73. Print(BUF)
  74. }
  75. BUF
  76. }
  77.  
  78. Function ROCT(Str MML) {
  79. Str BUF=""
  80. Str FIRST=""
  81. Str ML=""
  82. Str M
  83. Str R
  84. Str FM
  85. Int C=0
  86.  
  87. MML=MML + ">" + MML + "<"
  88. BUF=""
  89. R=""
  90. For(Int i=1; MID(MML, i, 1)!=""; i++) {
  91. M=MID(MML, i, 1)
  92. IF(DE
作者からのコメント
多分、これでうまくいくはずです。
http://oto.chu.jp/mmlbbs6/post.php?mml_id=1586 の完成版みたいな感じです。
ハープのような和音も値を小さくすることで上手に表現することができます。
MMLに記述してある通りの順番で演奏をします。以前のバージョンのものは、入れ替えてノートの音長を保っていましたが、このバージョンから休符で統一して行うことにしました。

v1.02 単なる自動オクターブ演奏を追加しました。
作曲者
なの
ライセンス
CCクリエイティブ・コモンズ BY↗商用利用 ○改変 ○作者を表示すれば自由に使える
転載
許可
推奨音源
rchord.h とリネームして、サクラやTWのIncludeフォルダに入れます
ピコサクラ対応
未対応
ピコサクラバージョン
0.2.3
動画
なし
投稿日時
2015-05-24 20:14
更新日時
2015-11-24 00:29
お気に入り
(^o^)/
ダウンロード数
406
タグ
→この曲(id:1662)に問題がある場合こちらへ

感謝のコメント

感謝のコメント募集中です!!
♪
この曲に「ありがとう」を伝えませんか?
ひとことの感想が、作った人にとって何よりの励みになります。
定型文のボタンもあるので、キーボードが苦手でも大丈夫です。