Timerを使用して一定時間がくると音が消えるようにするには〜

解決


海音  2004-10-27 23:55:39  No: 86272

こんにちわ
題名のように、
Timerをしようしたいのですが
上手くいきません。
音はきちんと鳴りますが、
Timerの使い方が間違ってるかと思いますが、
いろいろな参考書を読んでもよくわからず、
誰かにご教授いただこうと思い、書き込みさせていただきました。
下記のようなコードを作成していますが、
まちがっているところがわかる方がいましたら
ご教授願います。。。
(VB6.0のプログラムを使用しましたが、.Netで作成しています)

**********************************

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e         As System.EventArgs) Handles Timer1.Tick

If r = 3 Then
midiOutShortMsg(hMid, &H80S + Note * 256)
r = 0
End If
r = r + 1
Timer1.Enabled = False
End Sub

**********************************

Private Sub Button1_MouseDown(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
Dim Button As Short = eventArgs.Button \ &H100000
Dim Shift As Short = System.Windows.Forms.Control.ModifierKeys \ &H10000
Dim X As Single = VB6.PixelsToTwipsX(eventArgs.X)
Dim Y As Single = VB6.PixelsToTwipsY(eventArgs.Y)
Dim Inst As Object
Dim Vol As Integer
Timer1.Enabled = True

Note = 70 '音階(&H00から&H7F(127))
Inst = 30 '楽器No(GM音色番号に準拠?)
Vol = &H7FS '音量(&H00から&H7F(127))
midiOutShortMsg(hMid, &HC0S + Inst * 256)
midiOutShortMsg(hMid, &H90S + Note * 256 + Vol * 256 * 256)
End Sub
**********************************


mammal  2004-10-28 02:47:50  No: 86273

もちろん、Intervalは設定していますよね?


海音  2004-10-28 03:12:32  No: 86274

Intervalは300にしています。。。
Timer1.Enbled=Trueのあとにかきました


ガッ  2004-10-28 05:28:14  No: 86275

.net自体はよく分からないのだが…
感覚で読んで言って、

>Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e       >  As System.EventArgs) Handles Timer1.Tick
>
>If r = 3 Then
>  midiOutShortMsg(hMid, &H80S + Note * 256)
とりあえず、ここのAPIで音を止めているんだよな…
最近MIDIメッセージなんて使ってないから忘れたけど。

>  r = 0
>End If
>r = r + 1
>Timer1.Enabled = False
ということで、ここでTimer1をとめてしまうと、
上の"r = 3"のIF文全体が実行されるか、わからないんだが…?
>End Sub

…激しく間違っていたらすみません。


海音  2004-10-28 18:40:24  No: 86276

ご教授ありがとうございます。
さっそくTimerをとめる命令を消したところ
ちゃんと止まるようになりました^^
ホントにありがとうございます。
結構簡単なことだったんですね^^;
時間をとらせちゃって
すみませんでした。。。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加