VBメニュー
トップページ
マネジメント パソコン英語
進学 ・資格 仕事 ・生活 技能ハッピーライフ

 

【音楽を扱うプログラム】

 

 あらかじめキーボードとMIDI音源装置を使って扇風機というmidiwaveファイルを作成しておき、VisualBasicのプログラムでスピーカーから音楽を流す。

 ポイントは Windows API である

 Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
 Const SND_SYNC = &H0
 Const SND_ASYNC = &H1
 Const SND_NODEFAULT = &H2
 Const SND_MEMORY = &H4
 Const SND_LOOP = &H8
 Const SND_NOSTOP = &H10

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
 Dim returnstrng As String * 512
 Const MIDICAPS_VOLUME = &H0&

 の部分と、使用するときの

 mcistr = "open sequencer"
 msg& = mciSendString(mcistr, returnstrng, 512, 0)
 mcistr = "play " + fname
 msg& = mciSendString(mcistr, returnstrng, 512, 0)

 の部分である。

1.素材の作成

  次のような演奏音楽をmidi形式で作成しておく。

  senpuki.mid

  なお、"\\SKALA\教材提示ELEVATO\石山 謙\石山研究室(hyosiから開く)\"

  の中にサンプルがあるので、今回はそれを使用する。

2.インターフェイスの作成

(1)コマンドボタンを2つ配置する。

(2)タイマーを1つ配置する。

3.プロパティの設定

オブジェクトの種類   プロパティ名を探す 次のように設定する
コマンドボタン Command1 Caption クリックすると扇風機というメロディーが

流れます(midiサウンド)

  Command2 Caption 終了
タイマー Timer1 interval 100

4.コードの記述

[プログラム全文]

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_MEMORY = &H4
Const SND_LOOP = &H8
Const SND_NOSTOP = &H10

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim returnstrng As String * 512
Const MIDICAPS_VOLUME = &H0&

Dim fname As String

Private Sub command1_click()
  Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
  End
End Sub

Private Sub Form_Load()
  fname = "f:\石山研究室(hyosiから開く)\senpuki.mid"
  '↑は実習では、
  '"\\SKALA\教材提示ELEVATO\石山 謙\石山研究室(hyosiから開く)\senpuki.mdi"
  'と記載する。
  Timer1.Interval = 100
  Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
  mcistr = "open sequencer"
  msg& = mciSendString(mcistr, returnstrng, 512, 0)
  mcistr = "play " + fname
  msg& = mciSendString(mcistr, returnstrng, 512, 0)
End Sub

5.実行

6.保存

  フォーム、プロジェクトともに melody という名前で保存する。

 

VBメニュー
トップページ
マネジメント パソコン英語
進学 ・資格 仕事 ・生活 技能ハッピーライフ