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

投稿プログラム : ミニドラム演奏

パンくずリスト

2011年04月03日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム MML ドラムマシン 音楽

概要

ゲームへの組み込みに使えるぐらい軽いドラムマシン。

用途

ゲーム内で単純なリズムを演奏させたい場合にご利用下さい。 音程変化、音の長さ等には対応しないことで処理を単純化しています。

プログラム解説

  • 音色定義の部分でアルファベット1文字ごとの音色を定義
  • RESTOREで演奏データを準備し@DRSETで演奏初期化
  • メインループ内で@DRPLAYを呼び出す
  • トラック(TRMAX)を1つにすればさらに軽くなります
  • MSTEPで1音ごとの長さを調整できます
  • 音色定義のところは見やすさ優先でASC("A")としていますが数値でも問題ありません

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

ありません。

プログラムリスト

  1. ’┌─────────┐
  2. ’│ミニト゛ラムマシン│
  3. ’└─────────┘
  4. CLEAR
  5. ’−−−オンショクテイキ゛
  6. DIM VC(26)
  7. VC(ASC(”A”)−ASC(”A”))=62
  8. VC(ASC(”B”)−ASC(”A”))=52
  9. VC(ASC(”C”)−ASC(”A”))=27
  10. VC(ASC(”O”)−ASC(”A”))=26
  11. VC(ASC(”S”)−ASC(”A”))=53
  12. VC(ASC(”Z”)−ASC(”A”))=55
  13. ’−−−
  14. TRMAX=3:MSTEP=8
  15. DIM MML$(TRMAX)
  16. DIM MOFS(TRMAX),MCNT(TRMAX),MLEN(TRMAX)
  17. ’−−−エンソウシ゛ョウホウセッテイ
  18. @BGM1
  19. DATA ”B   S   BCBCSCCS”
  20. DATA ” CO  CCC      Z ”
  21. DATA ” A              ”
  22. RESTORE @BGM1
  23. GOSUB @DRSET
  24. ’−−−メインルーフ゜
  25. @LOOP
  26. GOSUB @DRPLAY
  27. VSYNC 1
  28. GOTO @LOOP
  29. ’−−−エンソウ
  30. @DRPLAY
  31. FOR I=0 TO TRMAX−1
  32.  MCNT(I)=MCNT(I)−1
  33.  IF MCNT(I)>0 THEN @_NSKIP
  34.  MCNT(I)=MSTEP
  35.  C$=MID$(MML$(I),MOFS(I),1)
  36.  MOFS(I)=MOFS(I)+1
  37.  IF MOFS(I)>=MLEN(I) THEN MOFS(I)=0
  38.  IF C$==” ” THEN @_NSKIP
  39.  BEEP VC(ASC(C$)−ASC(”A”))
  40. @_NSKIP
  41. NEXT
  42. RETURN
  43. ’−−−エンソウショキカ
  44. @DRSET
  45. FOR I=0 TO TRMAX−1
  46.  READ MML$(I)
  47.  MLEN(I)=LEN(MML$(I))
  48.  MCNT(I)=0:MOFS(I)=0
  49. NEXT
  50. RETURN

トラックを1つだけにする場合

  1. ’┌─────────┐
  2. ’│ミニト゛ラムマシン│
  3. ’└─────────┘
  4. CLEAR
  5. ’−−−オンショクテイキ゛
  6. DIM VC(26)
  7. VC(ASC(”A”)−ASC(”A”))=62
  8. VC(ASC(”B”)−ASC(”A”))=52
  9. VC(ASC(”C”)−ASC(”A”))=27
  10. VC(ASC(”O”)−ASC(”A”))=26
  11. VC(ASC(”S”)−ASC(”A”))=53
  12. VC(ASC(”Z”)−ASC(”A”))=55
  13. ’−−−
  14. MSTEP=8
  15. ’−−−エンソウシ゛ョウホウセッテイ
  16. @BGM1
  17. DATA ”B   S   BCBCSCCS”
  18. RESTORE @BGM1
  19. GOSUB @DRSET
  20. ’−−−メインルーフ゜
  21. @LOOP
  22. GOSUB @DRPLAY
  23. VSYNC 1
  24. GOTO @LOOP
  25. ’−−−エンソウ
  26. @DRPLAY
  27. MCNT=MCNT−1
  28. IF MCNT>0 THEN RETURN
  29. MCNT=MSTEP
  30. C$=MID$(MML$,MOFS,1)
  31. MOFS=MOFS+1
  32. IF MOFS>=MLEN THEN MOFS=0
  33. IF C$==” ” THEN RETURN
  34. BEEP VC(ASC(C$)−ASC(”A”))
  35. RETURN
  36. ’−−−エンソウショキカ
  37. @DRSET
  38. READ MML$
  39. MLEN=LEN(MML$)
  40. MCNT=0:MOFS=0
  41. RETURN

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

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

  • すいか : 45がエラーになります (2011/11/27 (日) 08:45:43)
  • すいか : 45がエラーになります (2011/11/27 (日) 08:55:29)
  • わぁぃ@ : ↑なんというエラーですか? (2011/11/27 (日) 11:27:18)
  • すいか : syntax error (45)です トラック一つだけのやつも同じエラーで(34、ASC)とでます (2011/11/27 (日) 13:51:27)
  • バイカウントメルビル : ↑F​O​R​ ​I​=​0​ ​T​O​ ​T​R​M​A​X​−​1がF​O​R​ ​1=​0​ ​T​O​ ​T​R​M​A​X​−​1になってたりとかしてませんか? (2011/11/27 (日) 18:06:49)
  • バイカウントメルビル : あと括弧忘れとか (2011/11/27 (日) 20:05:44)
  • 名無しさん : IF MOFS>MLEN THEN MOFS=0 にしてるんじゃ? ちゃんと >= にしないとそのエラーになりますよ。 (2012/02/06 (月) 22:53:19)
  • わぁぃ@ : 投稿プログラム,音楽のタグをつけておきました。 (2012/02/11 (土) 14:47:31)
  • ''’’ : <span class="basic−text">QRコート゛</span> (&new{2012/06/06 (水) 16:21:33)
  • 名無しさん : ↑名前を&BASICにしたらこうなった 言いたいことは、QRコート゛カ゛ホシイ (2012/06/06 (水) 16:22:46)
  • BASIC : ニチチムフチヒフツカヒヌむちへ!てすふれのきたもつ (2012/09/19 (水) 07:15:58)
  • 名無しさん : 普通にpetiteditor使え (2012/09/19 (水) 07:33:38)
  • 名無しさん : これはプチコン初代用です。mkIIにはmmlがあります。 (2012/09/19 (水) 11:30:21)
  • 名無しさん : 結構役立つかも。 (2012/10/21 (日) 20:59:49)

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