当サイト関連記事:
・【プチコンmkII】食堂のおばちゃんの「ありがとうございました~」をDSiに発声させるプログラム
・ヤマハ音楽教室CMのレッスン曲をニンテンドーDSiに歌わせるプログラムを作りました。(プチコンmkII)
・プチコンmkIIでジャンケンゲームを作りました。「ゲロップ君のジャンケンポイ」
プチコンmkII内蔵の取扱説明書や関連サイトにある資料では、曲・効果音・音声発声については、音の雰囲気の説明が書かれているだけなので、プログラムを作るうえで不便でした。
■10 サウンド関係の表
実行モードでひとつずつ入力して試していくのがつらかったんです。
そんなわけで、BGMPLAY/BEEP/TALKサンプル試聴プログラムを作りました。




(追記2013.3.10 : 下に掲載するQRコードを読み込んでから「プログラムを作る」モードでLOAD"BBTSAMPL"[Enter]、RUN[Enter]で実行してください。「作品を見る」モードで実行すると最終設定のパラメータは一瞬しか表示されません)
■BGMPLAY/BEEP/TALK命令サンプル試聴プログラム(プチコンmkII) - YouTube
TALKモードでしゃべる「あさおきて ひるねして よるねた」というセリフは、てんとう虫コミックス「ドラえもん」第10巻46ページの、のび太の日記を引用しました。好きなシーンというだけで特に意味はありません(笑)。
@E16の「歌うように」の設定では、わかりやすいように普通の発声の後に音程を付けて発声させてます。音階は「ドレミファソ・レミファソラ・ソラシド」です。
QRコードは下の2枚です。順番に読み込んでください。
ファイル名は「BBTSAMPL」です。


関連:蘇るBASICプログラミング プチコン公式活用テクニック
動けばいいという楽な方向で作ったのでぐちゃぐちゃなプログラムになってしまいました。
ボタンの反応がにぶいなど改善の余地が大ありですが、こちらがプログラムリストです。参考にならないと思うのであまり見ないほうがいいです(笑)。
’────────────
’BGM/BEEP/TALK シチョウ
’2013.3
’by uronpoi
’────────────
CLEAR:CLS:GCLS
T$=”@H0@S0@E0”
PNLTYPE ”OFF”
’─── シタカ゛メン ヒ゛ョウカ゛
GPAGE 1
GFILL 0,30,255,191,6
GFILL 85,30,170,191,7
GFILL 171,30,255,191,8
PNLSTR 2,13,”BGMPLAY”,1
PNLSTR 14,13,”BEEP”,1
PNLSTR 25,13,”TALK”,1
PNLSTR 8,1,”タッチシテ エランテ゛クタ゛サイ”,15
’─── ウエカ゛メン ヒ゛ョウカ゛
GOSUB @BGM
GOSUB @BEEP
GOSUB @TALK
GOSUB @KEYS
GOSUB @BEEPC
GOSUB @TALKC
GPAGE 0
LOCATE 24,14:PRINT ”┌─┐┌─┐
LOCATE 24,15:PRINT ”│↑││↓│
LOCATE 24,16:PRINT ”└─┘└─┘
’─── BGMPLAY ホ゛タン&タッチハ゜ネル
@BGMLOOP
A=BUTTON()
IF A==8 AND M<29 THEN M=M+1:BGMSTOP
IF A==4 AND M>0 THEN M=M-1:BGMSTOP
IF A==16 THEN BGMPLAY M
IF A==64 THEN BGMSTOP:CLS:GCLS:GPAGE 1:GCLS:COLOR 15:GOTO @TEXT
IF TCHST==TRUE AND TCHX>85 AND TCHX<170 THEN GOSUB @BGMC:GOSUB @BEEP:GOTO @BEEPLOOP
IF TCHST==TRUE AND TCHX>170 THEN GOSUB @BGMC:GOSUB @TALK:GOTO @TALKLOOP
COLOR 1:LOCATE 20,5:PRINT M;” ”
VSYNC 15
GOTO @BGMLOOP
’─── BEEP ホ゛タン&タッチハ゜ネル
@BEEPLOOP
A=BUTTON()
IF A==8 AND N<69 THEN N=N+1
IF A==4 AND N>0 THEN N=N-1
IF A==16 THEN BEEP N
IF A==64 THEN CLS:GCLS:COLOR 15:GOTO @TEXT
IF TCHST==TRUE AND TCHX<85 THEN GOSUB @BEEPC:GOSUB @BGM:GOTO @BGMLOOP
IF TCHST==TRUE AND TCHX>170 THEN GOSUB @BEEPC:GOSUB @TALK:GOTO @TALKLOOP
COLOR 1:LOCATE 17,10:PRINT N;” ”
VSYNC 15
GOTO @BEEPLOOP
’─── TALK ホ゛タン&タッチハ゜ネル
@TALKLOOP
A=BUTTON()
IF P==0 AND A==8 AND H<3 THEN H=H+1
IF P==0 AND A==4 AND H>0 THEN H=H-1
IF P==1 AND A==8 AND S<11 THEN S=S+1
IF P==1 AND A==4 AND S>0 THEN S=S-1
IF P==2 AND A==8 AND E<16 THEN E=E+1
IF P==2 AND A==4 AND E>0 THEN E=E-1
IF A==1 AND P>0 THEN P=P-1:GOSUB @TALKPC
IF A==2 AND P<2 THEN P=P+1:GOSUB @TALKPC
IF A==16 AND E==16 GOTO @TALKE16
IF A==16 THEN GOSUB @TALKON
IF A==64 THEN CLS:GCLS:COLOR 15:GOTO @TEXT
IF TCHST==TRUE AND TCHX<85 THEN GOSUB @TALKC:GOSUB @BGM:GOTO @BGMLOOP
IF TCHST==TRUE AND TCHX>85 AND TCHX<170 THEN GOSUB @TALKC:GOSUB @BEEP:GOTO @BEEPLOOP
GOSUB @TALK
VSYNC 15
GOTO @TALKLOOP
’─── TALK”@E16”ノ ハ゛アイ ノミ ウタウ
@TALKE16
GOSUB @TALKON
@TALKCHK
IF TALKCHK()==TRUE GOTO @TALKCHK
T1$=”@T200@N1447ア@N1559サ@N1686オ@N1745キ@N1858テ@N1559ヒ@N1686ル@N1745ネ@N1858シ@N1971テ
T2$=”@N1858ヨ@N1971ル@N2093ネ@N2137タ-”
T$=”@H”+STR$(H)+”@S”+STR$(S)+”@E16”+T1$+T2$
TALK T$
GOTO @TALKLOOP
’─── ENDショリ サイシュウ ノ セッテイ ヒョウシ゛
@TEXT
PRINT ”BGMPLAY ”;M
PRINT
PRINT ”BEEP ”;N
PRINT
PRINT ”TALK ”+CHR$(34)+T$+CHR$(34)
END
’─── シャヘ゛ル
@TALKON
T$=”@H”+STR$(H)+”@S”+STR$(S)+”@E”+STR$(E)
TALK T$+”アサオキテ ヒルネシテ ヨルネタ”
RETURN
’─── ウエカ゛メン
’─── BGMPLAY ヒョウシ゛
@BGM
GPAGE 0
GFILL 70,30,190,60,6
COLOR 1:LOCATE 12,5
PRINT ”BGMPLAY ”;M
RETURN
’─── BGMPLAY ク゛レ-テ゛OFFヒョウシ゛
@BGMC
GPAGE 0
GFILL 70,30,190,60,13
RETURN
’─── BEEP ヒョウシ゛
@BEEP
GPAGE 0
GFILL 70,70,190,100,7
COLOR 1:LOCATE 12,10
PRINT ”BEEP ”;N
RETURN
’─── BEEP ク゛レ-テ゛OFFヒョウシ゛
@BEEPC
GPAGE 0
GFILL 70,70,190,100,13
RETURN
’─── TALK ヒョウシ゛
@TALK
GPAGE 0
GFILL 70,110,190,140,8
COLOR 1:LOCATE 12,14
PRINT ”TALK @H”;H
COLOR 1:LOCATE 12,15
PRINT ” @S”;S;” ”
COLOR 1:LOCATE 12,16
PRINT ” @E”;E;” ”
COLOR 13:LOCATE 21,14+P
PRINT ”←”
RETURN
’─── TALK ク゛レ-テ゛OFFヒョウシ゛
@TALKC
GPAGE 0
GFILL 70,110,190,140,13
RETURN
’─── TALK@H@S@E ヤシ゛ルシ ケス
@TALKPC
LOCATE 21,14:PRINT ” ”
LOCATE 21,15:PRINT ” ”
LOCATE 21,16:PRINT ” ”
RETURN
’─── ソウサ セツメイ
@KEYS
COLOR 15
LOCATE 0,19:PRINT ”┌─┐┌─┐ ┌─┐ ┌─┐”
LOCATE 0,20:PRINT ”│←││→│No.SELECT │A│SOUND │X│END”
LOCATE 0,21:PRINT ”└─┘└─┘ └─┘ └─┘”
RETURN
