プチコンまとめWiki (初代/mkII)

投稿プログラム : BGM再生プログラムのようなもの

パンくずリスト

2011年07月19日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム 音楽

概要

楽譜を入力してそれを再生するソフトです。(曲は入ってません)
※このソフトは作曲には向いてません(すでにある楽譜を入力してください)
ぼくはプログラム初心者なので、色々おかしなところやバグが
あると思いますので気をつけてください。
@LOOP のとこからプログラムを書けばゲームのBGMを鳴らすのにも
利用することができます。(重いですが)
(最終更新日 7/20) 
・毎回@BPMなどに飛ぶのは無駄なので、それらが変更された時だけ飛ぶようにしました。
(しかも@BPM書き忘れていたという)

コマンド

DATA文に入力してください。
♪=テンポ(999まで) あまり大きくしすぎても意味ありませんが。 ♪は単独で使用してください
S=和音です。(「1S,3S,4」のように入力すると3つの音をほぼ同時に鳴らせます、というかこのままだと3音ぐらいまでしか和音に聞こえません)
和音の音符の種類を変えるには最後の音を変えてください。
¥=音の波形を変えます(0〜69)
L=音符の種類(4で4分音符、6で付点8分音符、のような感じです)
W=ループ(というか繰り返し)です(番号に対応するラベルまで飛びます(@RES を見てください))
G=二回目だけ効果のあるループです。
^=音階(-24〜24)先頭に書けば^は省略できます。
ド =0~      ド# =1
レ =2
レ# =3
ミ =4
ファ=5
ファ#=6
ソ =7
ソ# =8
ラ =9
ラ# =10
シ =11
例(DATA ♪120,L08^-15¥22#64,16,14,16,12,16,11,16,9

このプログラムについてコメント

プログラムはプチコンがはじめてだったので難しかったです。
仕様とかも自分で勝手に決めたものなので、正直使いづらいです。
色々と機能不足ですし、すぐ処理落ちするし、バグもあるのでいいとこないですね。
(何で投稿したんだろう)

スクリーンショット・動画

動作しているところを撮影した写真や動画があれば貼り付けてください。

プログラムリスト

  1. @BGM1
  2. @S001
  3. DATA
  4. DATA
  5. DATA
  6. DATA
  7. DATA END
  8. CLEAR
  9. `−−−ショキカ
  10. BPM=60
  11. ONR=127
  12. TR=1
  13. TR3=2
  14. P=4096/12
  15. `−−−
  16. @LOOP
  17. GOSUB @MML
  18. IF M1==1 THEN VSYNC 1
  19. GOTO @LOOP
  20. @RES
  21. IF LOP==1 THEN RESTORE @S001
  22. IF LOP==2 THEN RESTORE @S002
  23. IF LOP==3 THEN RESTORE @S003
  24. IF LOP==4 THEN RESTORE @S004
  25. IF LOP==5 THEN RESTORE @S005
  26. L=L+1
  27. LOP=0
  28. RETURN
  29. @BPM
  30. `−−−オトノナカ゛サ テイキ゛
  31. P04=60/BPM
  32. P06=P04*0.75
  33. P08=P04/2
  34. P12=P08*0.75
  35. P16=P08/2
  36. P24=P16*0.75
  37. P32=P16/2
  38. P64=P32/2
  39. P03=P04*1.5
  40. P02=P04*2
  41. P01=P02*2
  42. F04=60*P04
  43. F06=60*P06
  44. F08=60*P08
  45. F12=60*P12
  46. F16=60*P16
  47. F24=60*P24
  48. F32=60*P32
  49. F64=60*P64
  50. F03=60*P03
  51. F02=60*P02
  52. F01=60*P01
  53. RETURN
  54. @MML
  55. `−−−DATAシュトク
  56. IF TR==1 AND M1==0 THEN READ MML$
  57. IF MML$==”END”THEN END
  58. IF MML$==”” THEN @MML
  59. O=0
  60. `−−−メイレイ ハンヘ゛ツ
  61. FOR I=0 TO LEN(MML$)−1
  62. IF MID$(MML$,I,1)==”♪”THEN BPM=VAL(MID$(MML$,I+1,3)):GOSUB @BPM:O=0
  63. IF MID$(MML$,I,1)==”L”THEN ONP=VAL(MID$(MML$,I+1,2)):GOSUB @ONP_CHK:O=1
  64. IF MID$(MML$,I,1)==”S”THEN ONP=99
  65. IF MID$(MML$,I,1)==”W”THEN LOP=VAL(MID$(MML$,I+1,3)):GOSUB @RES
  66. IF MID$(MML$,I,1)==”G”THEN GOL=VAL(MID$(MML$,I+1,1)))
  67. IF MID$(MML$,I,1)==”T”THEN TR3=VAL(MID$(MML$,I+1,2)):O=2
  68. IF MID$(MML$,I,1)==”¥”THEN HKI=VAL(MID$(MML$,I+1,2) ):O=1
  69. IF MID$(MML$,I,1)==”^”THEN PIT=P*VAL(MID$(MML$,I+1,3)):O=1
  70. IF MID$(MML$,I,1)==”#”THEN ONR=VAL(MID$(MML$,I+1,3)):O=1
  71. IF O==0 AND MID$(MML$,0,1)!=”♪”THEN PIT=P*VAL(MID$(MML$,0,3)):O=1
  72. NEXT
  73. GOTO @SE1
  74. `−−−オンフ゜ ノ シュルイ ハンヘ゛ツ
  75. @ONP_CHK
  76. IF ONP!=99 THEN ONP2=ONP
  77. IF S==1 THEN ONP=ONP2
  78. IF ONP==1 THEN BP=F01
  79. IF ONP==2 THEN BP=F02
  80. IF ONP==3 THEN BP=F03
  81. IF ONP==4 THEN BP=F04
  82. IF ONP==6 THEN BP=F06
  83. IF ONP==12 THEN BP=F12
  84. IF ONP==16 THEN BP=F16
  85. IF ONP==24 THEN BP=F24
  86. IF ONP==32 THEN BP=F32
  87. IF ONP==64 THEN BP=F64
  88. IF ONP==99 THEN S=TR3:BP=0
  89. RETURN
  90. @SE1
  91. `−−−オト ヲ ナラス
  92. IF M1==0 AND O==1 THEN BEEP HKI,PIT,ONR:M1=1:F1=MAINCNTL
  93. IF S>0 AND M1==0 AND O==1 THEN S=S−1
  94. IF M1==1 AND MAINCNTL−F1>BP THEN M1=0
  95. IF S>0 THEN S=S−1
  96. RETURN

CHECKER FLAG (ひとことコメント)

  • この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
  • 名無しさん : 39行目辺りの/1.5は *0.75の方がいいと思うのですがどうでしょうか(P06が付点8分の長さではなく2分音符を3等分した長さになるので) (2011/07/20 (水) 13:55:07)
  • 作者 : すみません。 (2011/07/20 (水) 22:20:24)
  • 作者 : そうですね、直しておきました。 (2011/07/20 (水) 22:22:10)
  • わぁぃ@ : 1行目 @BGM1:2行目 @SOO1って連続でラベル定義してるけど意味あるのかなぁ?あと超簡易MML(20行)作った。 (2011/09/02 (金) 19:15:24)
  • 投稿者 : @BGM1はBGMの種類です。@S001は繰り返しで飛ぶ行き先です。という風に使い分けています。 (2011/09/03 (土) 01:07:46)
  • わぁぃ@ : ちゃっかり超簡易MMLを投稿しちゃいました。 (2011/09/04 (日) 15:39:30)
  • RND 128 : 73~81 の[,]が[.]になってます。 (2012/01/13 (金) 12:16:44)
  • RND 128 : 73~81 の[,]が[.]になってます。 (2012/01/13 (金) 12:18:03)
  • 投稿者 : すみません、コピーして一気にやっちゃったもので (2012/01/14 (土) 14:18:53)
  • わぁぃ@ : 投稿プログラム,音楽のタグをつけておきました。 (2012/02/11 (土) 14:45:15)
  • 小4の戦士 : QRくれ (2012/08/19 (日) 17:44:04)
  • 名無しさん : このプログラムは初代向けです。万が一ほしいならリンク週からpetiteditor (2012/08/19 (日) 18:13:04)
  • 名無しさん : 出来ない (2013/06/30 (日) 17:54:02)
  • 名無しさん : 間違ってるのかなぁ (2013/06/30 (日) 17:54:46)
  • 名無しさん : ↑データ定義した?それともエラー落ち? (2013/06/30 (日) 17:57:53)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.033 秒 | このページの最終更新 : 2013/06/30 (日) 17:57:53 (2207d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30