2012年4月8日投稿
/ 投稿者 :天郷思音(わぁぃ@)
/ タグ : 投稿プログラム 音楽 実用ツール QRコード mkII専用
検索用:【天郷思音】
乱数でBGMPRG用波形を生成するソフトです。
完全に乱数任せにしている訳ではなく、あくまで乱数を前の値に加算する方法を取ることで良い波形ができるようにしています。
А | 生成 |
---|---|
Б | 再生 |
Ф | 書き込み |
Х | 読み込み |
П | バラメータ操作 |
できるだけサブルーチン化を意識しました。
プチコンmkII 向けの QR コードです。
- ′┌─────────────────────────┐
- ′│ RANDOM WAVE MIXER v1.0 │
- ′├─────────────────────────┤
- ′│ BGMPRGヨウハケイランタ゛ムサクセイソフト │
- ′└─────────────────────────┘
- ′Ж COPYRIGHT FREE
- ACLS:CLEAR:BGMSTOP
- FOR I=0 TO 1
- BREPEAT I,30,4
- NEXT
- DIM M$(32)
- ADSR(0)=&H7F
- ADSR(1)=&H3F
- ADSR(2)=&H0F
- ADSR(3)=&H3F
- GOSUB @SCINIT
- GOSUB @WAVESET
- @MAIN
- GOSUB @BTGET
- GOSUB @ADSRSET
- GOSUB @SCPUT
- IF BTN==16 THEN GOSUB @WAVESET
- IF BTN==32 THEN GOSUB @WAVETEST
- IF BTN==64 THEN GOSUB @FSAVE
- IF BTN==128 THEN GOSUB @FLOAD
- IF BTN==1024 THEN @EXIT
- IF M$(NO)==”” THEN GOSUB @WAVESET
- VSYNC 1
- GOTO @MAIN
- ′ホ゛タンシュトク
- @BTGET
- BTN=BUTTON(1)
- RETURN
- ′カ゛メンヒョウシ゛
- @SCPUT
- LOCATE OS*6+(OS>0),5:PRINT ” ”;
- LOCATE S*6+(S>0),5:PRINT ”Й”;
- LOCATE 4,5:PRINT NO+224
- FOR I=0 TO 3
- LOCATE 10+I*6,5:PRINT LEFT$(STR$(ADSR(I))+” ”,3)
- NEXT
- LOCATE 0,6:PRINT M$(NO)
- RETURN
- ′カ゛メンショキカ
- @SCINIT
- PRINT ”┌──────────────────────┐”
- PRINT ”│RANDOM WAVE MIXER v1.0│”
- PRINT ”└──────────────────────┘”
- LOCATE 0,4:PRINT ”А:SET Б:PLAY Ф:SAVE Х:LOAD”
- LOCATE 1,5:PRINT ”NO:”
- LOCATE 8,5:PRINT ”A:”
- LOCATE 14,5:PRINT ”D:”
- LOCATE 20,5:PRINT ”S:”
- LOCATE 26,5:PRINT ”R:”
- RETURN
- @ADSRSET
- OS=S:S=S−(BTN==4)+(BTN==8)
- IF S<0 OR S>4 THEN S=OS
- IF S THEN OADSR(S−1)=ADSR(S−1) ELSE ONO=NO
- IF S THEN ADSR(S−1)=ADSR(S−1)+(BTN==1)−(BTN==2) ELSE NO=NO+(BTN==1)−(BTN==2)
- IF NO<0 OR NO>31 THEN NO=ONO
- IF S THEN IF ADSR(S−1)<0 OR ADSR(S−1)>127 THEN ADSR(S−1)=OADSR(S−1)
- RETURN
- ′ハケイセイセイ
- @WAVESET
- M$(NO)=””:F=SGN(RND(2)−0.5):J=2
- FOR I=0 TO 63
- J=J+RND(7)*F
- IF ABS(J)>120 OR !RND(256) THEN F=−F
- M$(NO)=M$(NO)+RIGHT$(”0”+HEX$(J),2)
- NEXT
- RETURN
- ′テストエンソウ
- @WAVETEST
- BGMPRG NO+224,ADSR(0),ADSR(1),ADSR(2),ADSR(3),M$(NO)
- BGMPLAY ”@”+STR$(NO+224)+”CDEFGAB<C”
- RETURN
- ′ヨミコミ
- @FLOAD
- FN$=”MEM:WAVE”+STR$(NO+224)
- LOAD FN$
- IF !RESULT THEN RETURN
- M$(NO)=MEM$
- FN$=”MEM:EG”+STR$(NO+224)
- LOAD FN$
- FOR I=0 TO 3
- ADSR(I)=VAL(”&H”+MID$(MEM$,I*2+2,2))
- NEXT
- RETURN
- ′カキコミ
- @FSAVE
- MEM$=M$(NO)
- FN$=”MEM:WAVE”+STR$(NO+224)
- SAVE FN$
- MEM$=”40”
- FOR I=0 TO 3
- MEM$=MEM$+RIGHT$(”0”+HEX$(ADSR(I)),2)
- NEXT
- FN$=”MEM:EG”+STR$(NO+224)
- SAVE FN$
- RETURN
- ′シュウリョウ
- @EXIT
- ACLS:CLEAR
- END
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.101 秒 | このページの最終更新 : 2022/09/20 (火) 12:44:20 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30