• R/O
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javaandroidc++linuxc#objective-ccocoa誰得qtrubybathyscaphegamephpguiwindowsc翻訳pythonomegattwitterframeworkbtronarduinovb.net計画中(planning stage)directxpreviewertestゲームエンジンdom

BASIC compiler/interpreter for PIC32MX/MZ-80K (suspended)


コミットメタ情報

リビジョン265 (tree)
日時2018-07-30 09:16:08
作者kmorimatsu

ログメッセージ

Revise help. Support 15700 Hz WAVE file.

変更サマリ

差分

--- mips/branches/zoea/help.txt (revision 264)
+++ mips/branches/zoea/help.txt (revision 265)
@@ -105,6 +105,12 @@
105105 代入する。「LET」は省略可。
106106 MUSIC x$
107107 BGMを演奏する。詳細は、下記<MUSIC>の項を参照。
108+PLAYWAVE x$[,y]
109+ 音楽用のWAVEファイル(ファイル名をx$で指定)を演奏する。WAVEのフォーマットは、
110+ モノラル、ビット長は8、サンプリング周波数が15700 Hzの物を指定する。16000 Hz
111+ でも再生出来るが、音程と再生速度が少しずれる。yを指定した場合、指定の箇所から
112+ 再生される(1秒目から再生したい場合は、15700を指定)。x$に長さ0の文字列を指
113+ 定すると、現在再生中の音楽が停止する。
108114 VAR xxx [, yyy [, zzz [, ... ]]]
109115 サブルーチン内で使う、ローカル変数を指定する。xxx, yyy等は、A-Zの
110116 アルファベットで指定する。
@@ -278,6 +284,10 @@
278284 x=0の場合に1を、そうでない場合に0を返す。
279285 PEEK(x)
280286 xで示される物理アドレスから1バイト読み取り、返す。
287+PLAYWAVE([x])
288+ xを指定しない場合、もしくは0を指定した場合、再生中のWAVEファイルの残りサン
289+ プリング数を返す。1を指定した場合、現在再生中のサンプリング番号を、2を指
290+ 定した場合、WAVEファイルの総サンプリング数を返す。
281291 READ()
282292 DATA文の後から、一つずつデーター(32ビット整数値)を読み出す。「CREAD()」
283293 関数も参照。
@@ -604,6 +614,8 @@
604614 てみて下さい。
605615
606616 <バージョン履歴>
617+・KM-1206 2018年8月公開。
618+ 1.WAVEファイルの再生に対応。
607619 ・KM-1205 2018年2月公開。
608620  1.スタック容量拡大のため、使用可能RAM容量を53Kバイトに削減。
609621  2.CLEARステートメントの不具合を修正。
--- mips/branches/zoea/music.c (revision 264)
+++ mips/branches/zoea/music.c (revision 265)
@@ -618,12 +618,10 @@
618618 i+=checkChars((char*)&g_wavtable[0],"RIFF",4); // Check RIFF
619619 i+=checkChars((char*)&g_wavtable[8],"WAVEfmt ",8); // Check WAVE and fmt
620620 i+=checkChars((char*)&g_wavtable[16],"\x10\x00\x00\x00\x01\x00",6); // Check if liear PCM
621- if (!checkChars((char*)&g_wavtable[22],"\x02\x00\x80\x3e\x00\x00\x00\x7d\x00\x00\x02\x00",12)) {
622- // Stereo 16000 Hz
623- // Error
624- i=1;
625- } else if (!checkChars((char*)&g_wavtable[22],"\x01\x00\x80\x3e\x00\x00\x80\x3e\x00\x00\x01\x00",12)) {
626- // Monoral 16000 Hz
621+ if (!checkChars((char*)&g_wavtable[22],"\x01\x00\x80\x3e\x00\x00\x80\x3e\x00\x00\x01\x00",12)) {
622+ // Monaural 16000 Hz
623+ } else if (!checkChars((char*)&g_wavtable[22],"\x01\x00\x54\x3d\x00\x00\x54\x3d\x00\x00\x01\x00",12)) {
624+ // Monaural 15700 Hz
627625 } else {
628626 i=1;
629627 }
@@ -639,17 +637,3 @@
639637 g_sound_mode=SOUND_MODE_WAVE;
640638
641639 }
642-
643-/*
644-TODO:
645-
646-Around init_music and init_wave
647- Init_music also initialize tone and key. These must be done only when starting BASIC program.
648- Create stop_music. This stops all MUSIC/SOUND/PLAYWAVE-initialized sound effects, and
649- also reset system for MUSIC/SOUND mode.
650- --> done.
651-
652-DEBUG:
653- 1) Abnormal play when USEGRAPHIC was used after PLAYWAVE statement
654- 2) Key is lower when USEGRAPHIC was used before PLAYWAVE statement
655-*/