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

投稿プログラム : RANDOM WAVE MIXER

2012年4月8日投稿 / 投稿者 :天郷思音(わぁぃ@) / タグ : 投稿プログラム 音楽 実用ツール QRコード mkII専用
検索用:【天郷思音】

概要

乱数でBGMPRG用波形を生成するソフトです。

完全に乱数任せにしている訳ではなく、あくまで乱数を前の値に加算する方法を取ることで良い波形ができるようにしています。

操作方法

А生成
Б再生
Ф書き込み
Х読み込み
Пバラメータ操作

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

できるだけサブルーチン化を意識しました。

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

RANDOMWAVEMIXER画面.jpg

QR コード

プチコンmkII 向けの QR コードです。

1/22/2
qr0.pngqr1.png

プログラムリスト

  1. ′┌─────────────────────────┐
  2. ′│ RANDOM WAVE MIXER v1.0  │
  3. ′├─────────────────────────┤
  4. ′│ BGMPRGヨウハケイランタ゛ムサクセイソフト │
  5. ′└─────────────────────────┘
  6. ′Ж COPYRIGHT FREE
  7. ACLS:CLEAR:BGMSTOP
  8. FOR I=0 TO 1
  9. BREPEAT I,30,4
  10. NEXT
  11. DIM M$(32)
  12. ADSR(0)=&H7F
  13. ADSR(1)=&H3F
  14. ADSR(2)=&H0F
  15. ADSR(3)=&H3F
  16. GOSUB @SCINIT
  17. GOSUB @WAVESET
  18. @MAIN
  19. GOSUB @BTGET
  20. GOSUB @ADSRSET
  21. GOSUB @SCPUT
  22. IF BTN==16 THEN GOSUB @WAVESET
  23. IF BTN==32 THEN GOSUB @WAVETEST
  24. IF BTN==64 THEN GOSUB @FSAVE
  25. IF BTN==128 THEN GOSUB @FLOAD
  26. IF BTN==1024 THEN @EXIT
  27. IF M$(NO)==”” THEN GOSUB @WAVESET
  28. VSYNC 1
  29. GOTO @MAIN
  30. ′ホ゛タンシュトク
  31. @BTGET
  32. BTN=BUTTON(1)
  33. RETURN
  34. ′カ゛メンヒョウシ゛
  35. @SCPUT
  36. LOCATE OS*6+(OS>0),5:PRINT ” ”;
  37. LOCATE S*6+(S>0),5:PRINT ”Й”;
  38. LOCATE 4,5:PRINT NO+224
  39. FOR I=0 TO 3
  40. LOCATE 10+I*6,5:PRINT LEFT$(STR$(ADSR(I))+”  ”,3)
  41. NEXT
  42. LOCATE 0,6:PRINT M$(NO)
  43. RETURN
  44. ′カ゛メンショキカ
  45. @SCINIT
  46. PRINT ”┌──────────────────────┐”
  47. PRINT ”│RANDOM WAVE MIXER v1.0│”
  48. PRINT ”└──────────────────────┘”
  49. LOCATE 0,4:PRINT ”А:SET Б:PLAY Ф:SAVE Х:LOAD”
  50. LOCATE 1,5:PRINT ”NO:”
  51. LOCATE 8,5:PRINT ”A:”
  52. LOCATE 14,5:PRINT ”D:”
  53. LOCATE 20,5:PRINT ”S:”
  54. LOCATE 26,5:PRINT ”R:”
  55. RETURN
  56. @ADSRSET
  57. OS=S:S=S−(BTN==4)+(BTN==8)
  58. IF S<0 OR S>4 THEN S=OS
  59. IF S THEN OADSR(S−1)=ADSR(S−1) ELSE ONO=NO
  60. IF S THEN ADSR(S−1)=ADSR(S−1)+(BTN==1)−(BTN==2) ELSE NO=NO+(BTN==1)−(BTN==2)
  61. IF NO<0 OR NO>31 THEN NO=ONO
  62. IF S THEN IF ADSR(S−1)<0 OR ADSR(S−1)>127 THEN ADSR(S−1)=OADSR(S−1)
  63. RETURN
  64. ′ハケイセイセイ
  65. @WAVESET
  66. M$(NO)=””:F=SGN(RND(2)−0.5):J=2
  67. FOR I=0 TO 63
  68. J=J+RND(7)*F
  69. IF ABS(J)>120 OR !RND(256) THEN F=−F
  70. M$(NO)=M$(NO)+RIGHT$(”0”+HEX$(J),2)
  71. NEXT
  72. RETURN
  73. ′テストエンソウ
  74. @WAVETEST
  75. BGMPRG NO+224,ADSR(0),ADSR(1),ADSR(2),ADSR(3),M$(NO)
  76. BGMPLAY ”@”+STR$(NO+224)+”CDEFGAB<C”
  77. RETURN
  78. ′ヨミコミ
  79. @FLOAD
  80. FN$=”MEM:WAVE”+STR$(NO+224)
  81. LOAD FN$
  82. IF !RESULT THEN RETURN
  83. M$(NO)=MEM$
  84. FN$=”MEM:EG”+STR$(NO+224)
  85. LOAD FN$
  86. FOR I=0 TO 3
  87. ADSR(I)=VAL(”&H”+MID$(MEM$,I*2+2,2))
  88. NEXT
  89. RETURN
  90. ′カキコミ
  91. @FSAVE
  92. MEM$=M$(NO)
  93. FN$=”MEM:WAVE”+STR$(NO+224)
  94. SAVE FN$
  95. MEM$=”40”
  96. FOR I=0 TO 3
  97. MEM$=MEM$+RIGHT$(”0”+HEX$(ADSR(I)),2)
  98. NEXT
  99. FN$=”MEM:EG”+STR$(NO+224)
  100. SAVE FN$
  101. RETURN
  102. ′シュウリョウ
  103. @EXIT
  104. ACLS:CLEAR
  105. END

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

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)


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