BASIC compiler/interpreter for PIC32MX/MZ-80K (suspended)
Révision | 265 (tree) |
---|---|
l'heure | 2018-07-30 09:16:08 |
Auteur | kmorimatsu |
Revise help. Support 15700 Hz WAVE file.
@@ -105,6 +105,12 @@ | ||
105 | 105 | 代入する。「LET」は省略可。 |
106 | 106 | MUSIC x$ |
107 | 107 | BGMを演奏する。詳細は、下記<MUSIC>の項を参照。 |
108 | +PLAYWAVE x$[,y] | |
109 | + 音楽用のWAVEファイル(ファイル名をx$で指定)を演奏する。WAVEのフォーマットは、 | |
110 | + モノラル、ビット長は8、サンプリング周波数が15700 Hzの物を指定する。16000 Hz | |
111 | + でも再生出来るが、音程と再生速度が少しずれる。yを指定した場合、指定の箇所から | |
112 | + 再生される(1秒目から再生したい場合は、15700を指定)。x$に長さ0の文字列を指 | |
113 | + 定すると、現在再生中の音楽が停止する。 | |
108 | 114 | VAR xxx [, yyy [, zzz [, ... ]]] |
109 | 115 | サブルーチン内で使う、ローカル変数を指定する。xxx, yyy等は、A-Zの |
110 | 116 | アルファベットで指定する。 |
@@ -278,6 +284,10 @@ | ||
278 | 284 | x=0の場合に1を、そうでない場合に0を返す。 |
279 | 285 | PEEK(x) |
280 | 286 | xで示される物理アドレスから1バイト読み取り、返す。 |
287 | +PLAYWAVE([x]) | |
288 | + xを指定しない場合、もしくは0を指定した場合、再生中のWAVEファイルの残りサン | |
289 | + プリング数を返す。1を指定した場合、現在再生中のサンプリング番号を、2を指 | |
290 | + 定した場合、WAVEファイルの総サンプリング数を返す。 | |
281 | 291 | READ() |
282 | 292 | DATA文の後から、一つずつデーター(32ビット整数値)を読み出す。「CREAD()」 |
283 | 293 | 関数も参照。 |
@@ -604,6 +614,8 @@ | ||
604 | 614 | てみて下さい。 |
605 | 615 | |
606 | 616 | <バージョン履歴> |
617 | +・KM-1206 2018年8月公開。 | |
618 | + 1.WAVEファイルの再生に対応。 | |
607 | 619 | ・KM-1205 2018年2月公開。 |
608 | 620 | 1.スタック容量拡大のため、使用可能RAM容量を53Kバイトに削減。 |
609 | 621 | 2.CLEARステートメントの不具合を修正。 |
@@ -618,12 +618,10 @@ | ||
618 | 618 | i+=checkChars((char*)&g_wavtable[0],"RIFF",4); // Check RIFF |
619 | 619 | i+=checkChars((char*)&g_wavtable[8],"WAVEfmt ",8); // Check WAVE and fmt |
620 | 620 | 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 | |
627 | 625 | } else { |
628 | 626 | i=1; |
629 | 627 | } |
@@ -639,17 +637,3 @@ | ||
639 | 637 | g_sound_mode=SOUND_MODE_WAVE; |
640 | 638 | |
641 | 639 | } |
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 | -*/ |