Hello,
sorry for my bad English. I started to program a sampledumper for the sp12 in visual basic .net. But I'm a beginner and my programming skills are very bad. My first tool was only a converter, which converts manual dumps in sp12 format. The problem is, that a manual dump is very uncomfortable and it need a long time.
So I want to program a tool, which makes the dumps automatic. In the moment I can only send SYSEX, but I can not receive it. But this is very possible to make a handshake.
I search people who want help.
psoul
well i don't have any info i just notice in the service manual there are info related to dump... so it could help u, but probably u already have
peace
des?
here is my vb .net / 2005 coder for sysex send.
Imports System
Imports System.Runtime
Imports System.Runtime.InteropServices
Public Module FunctionModule
Public Const MAXPNAMELEN As Integer = 32
Public Structure MIDIHDR
Dim lpData As String
Dim dwBufferLength As Integer
Dim dwBytesRecorded As Integer
Dim dwUser As Integer
Dim dwFlags As Integer
Dim lpNext As Integer
Dim Reserved As Integer
End Structure
Public Structure MIDIOUTCAPS
' Public Const MAXPNAMELEN = 32
'Public wMid As Short
Public wPid As Short
Public vDriverVersion As Integer
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MAXPNAMELEN)> Public szPname As String
'Public wTechnology As Short
'Public wVoices As Short
'Public wNotes As Short
'Public wChannelMask As Short
'Public dwSupport As integer
End Structure
Public Structure MIDIINCAPS
' Public Const MAXPNAMELEN = 32
'Public wMid As Short
Public wPid As Short
Public vDriverVersion As Integer
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MAXPNAMELEN)> Public szPname As String
'Public wTechnology As Short
'Public wVoices As Short
'Public wNotes As Short
'Public wChannelMask As Short
'Public dwSupport As integer
End Structure
Public Declare Function midiInGetNumDevs Lib "winmm.dll" () As Short
Public Declare Function midiInGetDevCaps Lib "winmm.dll" Alias "midiInGetDevCapsA" ( _
ByVal uDeviceID As Integer, _
ByRef lpCaps As MIDIINCAPS, _
ByVal uSize As Integer) As Integer
Public Declare Function midiOutGetNumDevs Lib "winmm.dll" () As Short
Public Declare Function midiOutGetDevCaps Lib "winmm.dll" Alias "midiOutGetDevCapsA" ( _
ByVal uDeviceID As Integer, _
ByRef lpCaps As MIDIOUTCAPS, _
ByVal uSize As Integer) As Integer
Public Declare Function midiInOpen Lib "winmm.dll" ( _
ByRef lphMidiIn As Integer, _
ByVal uDeviceID As Integer, _
ByVal dwCallback As Integer, _
ByVal dwInstance As Integer, _
ByVal dwFlags As Int32) As Integer
Public Declare Function midiOutOpen Lib "winmm.dll" ( _
ByRef lphMidiOut As Integer, _
ByVal uDeviceID As Integer, _
ByVal dwCallback As Integer, _
ByVal dwInstance As Integer, _
ByVal dwFlags As Integer) As Integer
Public Declare Function midiOutShortMsg Lib "winmm.dll" ( _
ByVal hMidiOut As Integer, _
ByVal dwMsg As Integer) As Integer
Public Declare Function midiOutClose Lib "winmm.dll" ( _
ByVal hMidiOut As Integer) As Integer
Public Declare Function midiOutPrepareHeader Lib "winmm.dll" ( _
ByVal hMidiOut As Integer, _
ByRef lpMidiOutHdr As MIDIHDR, _
ByVal uSize As Integer) As Integer
Public Declare Function midiOutLongMsg Lib "winmm.dll" ( _
ByVal hMidiOut As Integer, _
ByRef lpMidiOutHdr As MIDIHDR, _
ByVal uSize As Integer) As Integer
Public Declare Function midiOutUnprepareHeader Lib "winmm.dll" ( _
ByVal hMidiOut As Integer, _
ByRef lpMidiOutHdr As MIDIHDR, _
ByVal uSize As Integer) As Integer
Public Declare Function midiInClose Lib "winmm.dll" ( _
ByVal hMidiIn As Int32) As Int32
Console.WriteLine(vbCrLf & "MIDIINS:" & vbCrLf)
Dim countIN As Short = midiInGetNumDevs
Dim midicapsIN As New MIDIINCAPS
For i As Integer = 0 To countIN - 1
'holt alle midi-device eingenschaften
midiInGetDevCaps(i, midicapsIN, CInt(Marshal.SizeOf(midicapsIN)))
'darstellen der informationen
With midicapsIN
Console.WriteLine(i & " " & .szPname)
Console.WriteLine(vbCrLf & "MIDIOUTS:" & vbCrLf)
Dim countOUT As Short = midiOutGetNumDevs
Dim midicapsOUT As New MIDIOUTCAPS
For i As Integer = 0 To countOUT - 1
'holt alle midi-device eingenschaften
midiOutGetDevCaps(i, midicapsOUT, CInt(Marshal.SizeOf(midicapsOUT)))
'darstellen der informationen
With midicapsOUT
Console.WriteLine(i & " " & .szPname)
End With
Next
'midiIN START__________________________________________________________________________________________________
Dim hMidiin As Integer
Dim portin As String
Console.WriteLine(vbCrLf & "Gebe Midi IN Port ein: ")
portin = Console.ReadLine()
midiInOpen(hMidiin, portin, 0, 0, 0)
'midiOUT START__________________________________________________________________________________________________
Dim hmidiout As Integer
Dim portout As String
Console.WriteLine(vbCrLf & "Gebe Midi OUT Port ein: ")
portout = Console.ReadLine()
midiOutOpen(hmidiout, portout, 0, 0, 0)