CD-ROMドライブを使って音楽CDを操作する


皆さんこんにちは、そしてようこそ。
今回は、マルチメディアBASICの機能を活かしたプログラミングをご紹介いたしましょう。
さて、今回はCD-ROMドライブを使って音楽CDを操作する、という事ですが、プログラミング方法を紹介
する前に、まず、CD−ROMドライブを使用する準備をしましょう。
CD−ROMドライブのない方は、購入してください。

※現在、CD-ROMドライブが使用できない方のみ以下の設定を行ってください。(既存のファイルに以下
の所定の記述を追加してください。)(以下の例では、使用するファイルがすべてAドライブにあるもの
として話をしていきます。)
	まず、config.sysの内容を書き換えます。
	  DEVICE=A:\NECCD.SYS /D:CD_101
	上の例は、AドライブにあるNECCD.SYSというCD-ROMドライブ用のデバイスドライバを読み込ん
だ例です。
	デバイス名を /D:CD_101 と設定していますが、これは変更しないで下さい。BASICでCD-ROMド
ライブが使用できません。もし、ほかのデバイス名になっている場合はこの名前に書き直してください
。
	  DEVICE=A:\AVSDRV.SYS
	このドライバは、BASICで拡張サウンド命令を使用するときに使います。各装置に添付のドライ
バを使用してください。
	次に、autoexec.batの内容を書き換えます。
	  A:\MSCDEX /D:CD_101
	これでCD-ROMドライブが使用できるようになりました。

以上の準備ができたら、マルチメディア対応BASICを起動します。
N88BASIC.EXEのあるディレクトリに移動し、
  n88basic /e:avs
とタイプしてください。拡張サウンド機能が付加された状態でBASICが起動します。
起動したら、まず最初にCD-ROMドライブの初期化を行います。

  cd 0

ここでエラーが出たら、ドライバが正しくインストールされているかなどを確かめてください。
次に、音楽CDを入れるためにBASICでCD-ROMドライブのトレイを開けてみましょう。

  cd 1

トレイが開きましたね。
では、早速音楽CDを入れ、トレイを戻しましょう。今度は手動でしか行えないのでドライブの
[オープン/クローズ]ボタンを押して閉めます。
さあ、それでは早速音楽を聴いてみましょう。音を出すために、CD-ROMドライブのヘッドフォン端子ま
たはLINE OUT端子にスピーカなどをつなぎましょう。

  cd 3

いい音楽が1曲目から流れ始めましたね。このステートメントには複数のパラメタが存在しますのでここ
でご紹介しましょう。

  cd 3,[曲番号1],[曲番号2],[ウェイトスイッチ]
 [曲番号1]から[曲番号2]までの曲を演奏します。
  [曲番号1] … 省略(曲番号2も省略すること):1曲目だけを演奏
		 数字:その曲番を演奏
  [曲番号2] … 省略:[曲番号1]で指定された曲だけを演奏
		 省略(曲番号1共):1曲目だけを演奏
		 数字:[曲番号1]で指定された曲からその曲番までを演奏
  [ウェイトスイッチ]… 1:オン
		 0:オフ

ここで記述したウェイトスイッチというのは、音楽CD再生中にBASICを止めるか止めないか(フォアグ
ラウンド、バックグラウンド)の指定をするスイッチです。
では、そろそろ流れている音楽を止めましょう。

  cd 4

もし、もう音楽が止まっている人は、再度音楽を鳴らした上で実行してみてください。
いい音楽がストップしてしまいました。

それでは次に、音楽を聴きながら(cd 3,1,99,0)以下のプログラムを入力してみてください。

  10 'music-CD sample program
  20 cls
  30 cd 0
  40 print "何かキーを押すと演奏を始めます。"
  50 if inkey$="" then 50
  60 cd 3,1,99,0
  70 locate 30,12:print using "Track ##  Time ####";status cd(3),status cd(4)
  80 if inkey$="" then 70
  90 cd 4
  100 end

上のプログラムは、現在CDドライブに入っている音楽CDを1番から最後まで演奏するプログラムです。
音楽CDを挿入して、何かキーを押すと演奏が始まります。
演奏が始まると、画面の中央部分に Track ##  Time #### のような形で現在の演奏CDに関する情報が
表示されます。
ここで表示されているTimeは、現在演奏対象となっている曲が終了するまでに何秒かかるか、を表示し
ています。
今回はディスク全体の曲を演奏するようにしていしたので、このCDの全曲を演奏し終わるまでの秒数
、が表示されます。
何かキーを押すことによって演奏を中止し、プログラムを終了します。
今回、新たに status cd というステートメント(関数)が登場しました。
このステートメント(関数)は、現在挿入されているCDの情報を取得することができる関数です。
それでは、この関数の使用方法について記載しましょう。

  status cd(<番号>)
  番号:0…セットされているCDが 戻り値:0…音楽CD,1…CD-ROM
     1…曲数(音楽CDのみ)
     3…現在演奏中の曲
     4…演奏の対象となっている曲全体の残り時間(秒)

CD−ROMドライブを制御する命令といえばこれくらいです。
あとはみなさんの既存の知識と創造力をフルに活用して見栄えのいい多機能なCDプレーヤーを作って
ください。

  • 参考文献:『N88−日本語BASIC(86)(MS−DOS版)6.2』マルチメディア拡張機能マニュアル/NEC著
  • N88-日本語BASIC(86)ホーム
    ご質問、ご意見、お問い合わせは…
    山本 裕之
    E-mail:s97a2075@ws.ipc.fit.ac.jp