Автор вопроса: Bonapart | Web-сайт:team16.tut.su | ICQ: 175256
В общем надо было сделать некоторый синтезатор на вб, поискал нашел в примерах комманду midisendshortstring , даже как ей пользоваться нашел , но есть одно но, мне надо не пианино синтезировать которое по умолчанию выдает звуки а другие инструменты, как моем вообще выбрать инструмент? Во многих программах видел список из сотни инструментов, везде одинаковый:) значит все это по стандарту. В поиск можно не посылать, искал долго ничего нет:(
Option Explicit
Private Declare Function midiOutOpen Lib "winmm.dll" _
 lphMidiOut As Long, _
ByVal uDeviceID As Long, _
ByVal dwCallback As Long, _
ByVal dwInstance As Long, _
ByVal dwFlags As Long) As Long
Private Declare Function midiOutClose Lib "winmm.dll" _
 ByVal hMidiOut As Long) As Long
Private Declare Function midiOutShortMsg Lib "winmm.dll" _
 ByVal hMidiOut As Long, _
ByVal dwMsg As Long) As Long
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Dim hMidiOut As Long
Public lanote As Long
Sub PlayMIDI(voiceNum, noteNum, Duration)
Dim Note As Long
On Error Resume Next
midiOutClose hMidiOut
midiOutOpen hMidiOut, 0, 0, 0, 0
midiOutShortMsg hMidiOut, RGB(192, voiceNum - 1, 127)
lanote = 12 + CLng(noteNum)
Note = RGB(144, lanote, 127)
midiOutShortMsg hMidiOut, Note
Sleep (Duration)
midiOutClose hMidiOut
End Sub
Private Sub Command1_Click()
'instrument - eg:0=piano,25=guitar...
'note - 48 is equal to middle c
'duration of note in milliseconds
Call PlayMIDI(45, 48, 666)
End Sub