Xojo Conferences
MBSSep2018MunichDE
XDCMay2019MiamiUSA

[MBS] Re: MIDI device info under Windows (MBS Xojo Plugin Mailinglist archive)

Back to the thread list
Previous thread: [MBS] Last day: Omega Bundle
Next thread: [MBS] Any known MAS issues?


[MBS] Re: MIDI device info under Windows   -   Julia Truchsess
  Re: [MBS] Re: MIDI device info under Windows   -   Tim Jones
  Re: [MBS] MIDI device info under Windows   -   Aaron Andrew Hunt
   Re: [MBS] MIDI device info under Windows   -   Mel Patrick
    Re: [MBS] MIDI device info under Windows   -   Mel Patrick
  [MBS] re: MIDI device info under Windows   -   Julia Truchsess
   Re: [MBS] re: MIDI device info under Windows   -   Christian Schmitz
  [MBS] MIDI device info under Windows   -   Julia Truchsess
   Re: [MBS] MIDI device info under Windows   -   Mel Patrick
   Re: [MBS] MIDI device info under Windows   -   Christian Schmitz

[MBS] Re: MIDI device info under Windows
Date: 28.01.11 14:10 (Fri, 28 Jan 2011 08:10:57 -0500)
From: Julia Truchsess
The Windows driver landscape is a nightmare fraught with all sorts of
issues, including conflicts, compliance certification, support, and of
course inconvenience for users. I specifically sought out a
class-compliant device to avoid these and keep my project on schedule.

I have the discovey-by-sysex-query working pretty well now. It's a bit
inelegant since each query requires both an input and an output port so
there's a lot of port opening and closing, but it works. My once clean and
pristine event-driven Mac code is now littered with ugly #If TargetWin32
statements, timers, and nil traps, but whaddaya gonna do...

julia

On 1/28/11 6:00 AM, "<email address removed>"
<<email address removed>> wrote:

>
>Message: 3
>Date: Thu, 27 Jan 2011 10:25:36 -0800
>From: Mel Patrick <<email address removed>>
>Subject: Re: [MBS] MIDI device info under Windows
>To: MBS REALbasic Plugin List <<email address removed>>
>Message-ID: <C966F8A0.3AEE3%<email address removed>>
>Content-Type: text/plain; charset="US-ASCII"
>
>Just as a follow up, as I'm educating myself here, I think the overall
>best
>solution is to have a custom driver for the USB-MIDI device. For a number
>of
>reasons that are explained here:
>
>http://www.vyzor.com/support/viewtopic.php?fE&t6
>
>Perhaps that's way even all the class compliant devices I have still come
>with a driver...to avoid these issues with XP and Vista.
>
>Food for thought any way.
>
>Mel
>---
>
>On 01/27/11 9:44 AM, "Mel Patrick" <<email address removed>> wrote:
>
>> Thanks Aaron that makes sense.
>>
>> Personally, I've never run across one of these, apparently. Even the
>>class
>> compliant ones that I use, that advertise plug and play, still have a
>>custom
>> driver and thus, a name.
>>
>> I guess Julia's other option would be to get a custom driver written
>>for the
>> device in use, that way there'd be a name show up that would be unique.
>>
>> Mel
>> ---
>>
>> On 01/27/11 6:07 AM, "Aaron Andrew Hunt" <<email address removed>>
>>wrote:
>>
>>> Julia is talking about the WindowsMIDIMBS class and the fact that named
>>> class-compliant USB-MIDI devices are not recognized by XP with specific
>>> names,
>>> but instead are all called "USB Audio Device". Unless the device has a
>>>custom
>>> driver, XP does not know its name. Getting a list of names and
>>>checking it is
>>> obvious, but does not work here, because te name is only "USB Audio
>>>Device"
>>> for ALL class-compliant devices under XP (typical Windows garbage OS!)
>>>
>>> I didn't know that WindowsDeviceMBS would get the name... So, Julia is
>>>asking
>>> Christian to get these methods to talk to each other, so
>>>WindowsMIDIMBS and
>>> WindowsDeviceMBS could share info on the device. It sounds like a
>>>workaround
>>> that could solve the problem, if the classes could share information.
>>>I would
>>> also like problem is apparently limited to XP and is resolved under
>>>later
>>> versions of Windows.
>>>
>>> Thanks,
>>> Aaron
>>> =#D>>>>
>>>
>>> On Jan 27, 2011, at 6:00 AM,
>>><email address removed>
>>> wrote:
>>>> On 01/26/11 1:50 PM, "Julia Truchsess" <<email address removed>>
>>>>wrote:
>>>>
>>>>> My RS app is a dedicated utility for a specific piece of hardware,
>>>>>which
>>>>> is a class-compliant USB audio device using the built-in Windows
>>>>>driver.
>>>>> Since my app only ever needs to communicate with this specific
>>>>>device I'd
>>>>> like it to be able to auto-discover the device without having to
>>>>>offer the
>>>>> user a pop-up menu of the various MIDI devices that may be present.
>>>>>In any
>>>>> case, class-compliant devices only provides "USB Audio Device" as
>>>>> identifier info under XP, and that doesn't help the user identify
>>>>>this
>>>>> particular device. Under MacOS, MidiEndpointMBS provides me with the
>>>>> device name as coded into the hardware's configuration strings and a
>>>>> specific MIDI endpoint object to target for communications, but I
>>>>>haven't
>>>>> been able to find a way to get this info under Windows.
>>>>>
>>>>> I can find the device, its name, and other info like HardwareID etc
>>>>>using
>>>>> WindowsDeviceMBS so I can at least tell whether it's present or not,
>>>>>but
>>>>> WindowsDeviceMBS only gives me system-level info and does not tell
>>>>>me its
>>>>> Windows *MIDI* device number, which I then need to open input and
>>>>>output
>>>>> MIDI ports to it.
>>>>>
>>>>> Does anyone know of a way I can get the Windows MIDI device number
>>>>>based
>>>>> on the info returned by WindowsDeviceMBS?
>>>>>
>>>>> Thanks,
>>>>> Julia
>>
>> _______________________________________________
>> Mbsplugins_monkeybreadsoftware.info mailing list
>> <email address removed>
>>
>https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware
>.inf>
>o
>

_______________________________________________
Mbsplugins_monkeybreadsoftware.info mailing list
<email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info

Re: [MBS] Re: MIDI device info under Windows
Date: 28.01.11 19:47 (Fri, 28 Jan 2011 11:47:25 -0700)
From: Tim Jones
On Jan 28, 2011, at 6:10 AM, Julia Truchsess wrote:

> The Windows driver landscape is a nightmare fraught with all sorts of
> issues, including conflicts, compliance certification, support, and of
> course inconvenience for users. I specifically sought out a
> class-compliant device to avoid these and keep my project on schedule.
>
> I have the discovey-by-sysex-query working pretty well now. It's a bit
> inelegant since each query requires both an input and an output port so
> there's a lot of port opening and closing, but it works. My once clean and
> pristine event-driven Mac code is now littered with ugly #If TargetWin32
> statements, timers, and nil traps, but whaddaya gonna do...

We should start a "Windows Anonymous" group. It is somewhat less on Linux, but there are some instances there, as well. As each platform has its own personalities, those personalities cost us at development time.

>From the middle of the Atlantic - one day from Tenerife,
Tim
_______________________________________________
Mbsplugins_monkeybreadsoftware.info mailing list
<email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info

Re: [MBS] MIDI device info under Windows
Date: 27.01.11 15:07 (Thu, 27 Jan 2011 09:07:03 -0500)
From: Aaron Andrew Hunt
Julia is talking about the WindowsMIDIMBS class and the fact that named class-compliant USB-MIDI devices are not recognized by XP with specific names, but instead are all called "USB Audio Device". Unless the device has a custom driver, XP does not know its name. Getting a list of names and checking it is obvious, but does not work here, because te name is only "USB Audio Device" for ALL class-compliant devices under XP (typical Windows garbage OS!)

I didn't know that WindowsDeviceMBS would get the name... So, Julia is asking Christian to get these methods to talk to each other, so WindowsMIDIMBS and WindowsDeviceMBS could share info on the device. It sounds like a workaround that could solve the problem, if the classes could share information. I would also like problem is apparently limited to XP and is resolved under later versions of Windows.

Thanks,
Aaron
=wDr

On Jan 27, 2011, at 6:00 AM, <email address removed> wrote:
> On 01/26/11 1:50 PM, "Julia Truchsess" <<email address removed>> wrote:
>
>> My RS app is a dedicated utility for a specific piece of hardware, which
>> is a class-compliant USB audio device using the built-in Windows driver.
>> Since my app only ever needs to communicate with this specific device I'd
>> like it to be able to auto-discover the device without having to offer the
>> user a pop-up menu of the various MIDI devices that may be present. In any
>> case, class-compliant devices only provides "USB Audio Device" as
>> identifier info under XP, and that doesn't help the user identify this
>> particular device. Under MacOS, MidiEndpointMBS provides me with the
>> device name as coded into the hardware's configuration strings and a
>> specific MIDI endpoint object to target for communications, but I haven't
>> been able to find a way to get this info under Windows.
>>
>> I can find the device, its name, and other info like HardwareID etc using
>> WindowsDeviceMBS so I can at least tell whether it's present or not, but
>> WindowsDeviceMBS only gives me system-level info and does not tell me its
>> Windows *MIDI* device number, which I then need to open input and output
>> MIDI ports to it.
>>
>> Does anyone know of a way I can get the Windows MIDI device number based
>> on the info returned by WindowsDeviceMBS?
>>
>> Thanks,
>> Julia

_______________________________________________
Mbsplugins_monkeybreadsoftware.info mailing list
<email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info

Re: [MBS] MIDI device info under Windows
Date: 27.01.11 18:44 (Thu, 27 Jan 2011 09:44:21 -0800)
From: Mel Patrick
Thanks Aaron that makes sense.

Personally, I've never run across one of these, apparently. Even the class
compliant ones that I use, that advertise plug and play, still have a custom
driver and thus, a name.

I guess Julia's other option would be to get a custom driver written for the
device in use, that way there'd be a name show up that would be unique.

Mel
---

On 01/27/11 6:07 AM, "Aaron Andrew Hunt" <<email address removed>> wrote:

> Julia is talking about the WindowsMIDIMBS class and the fact that named
> class-compliant USB-MIDI devices are not recognized by XP with specific names,
> but instead are all called "USB Audio Device". Unless the device has a custom
> driver, XP does not know its name. Getting a list of names and checking it is
> obvious, but does not work here, because te name is only "USB Audio Device"
> for ALL class-compliant devices under XP (typical Windows garbage OS!)
>
> I didn't know that WindowsDeviceMBS would get the name... So, Julia is asking
> Christian to get these methods to talk to each other, so WindowsMIDIMBS and
> WindowsDeviceMBS could share info on the device. It sounds like a workaround
> that could solve the problem, if the classes could share information. I would
> also like problem is apparently limited to XP and is resolved under later
> versions of Windows.
>
> Thanks,
> Aaron
> =3D1>
> On Jan 27, 2011, at 6:00 AM, <email address removed>
> wrote:
>> On 01/26/11 1:50 PM, "Julia Truchsess" <<email address removed>> wrote:
>>
>>> My RS app is a dedicated utility for a specific piece of hardware, which
>>> is a class-compliant USB audio device using the built-in Windows driver.
>>> Since my app only ever needs to communicate with this specific device I'd
>>> like it to be able to auto-discover the device without having to offer the
>>> user a pop-up menu of the various MIDI devices that may be present. In any
>>> case, class-compliant devices only provides "USB Audio Device" as
>>> identifier info under XP, and that doesn't help the user identify this
>>> particular device. Under MacOS, MidiEndpointMBS provides me with the
>>> device name as coded into the hardware's configuration strings and a
>>> specific MIDI endpoint object to target for communications, but I haven't
>>> been able to find a way to get this info under Windows.
>>>
>>> I can find the device, its name, and other info like HardwareID etc using
>>> WindowsDeviceMBS so I can at least tell whether it's present or not, but
>>> WindowsDeviceMBS only gives me system-level info and does not tell me its
>>> Windows *MIDI* device number, which I then need to open input and output
>>> MIDI ports to it.
>>>
>>> Does anyone know of a way I can get the Windows MIDI device number based
>>> on the info returned by WindowsDeviceMBS?
>>>
>>> Thanks,
>>> Julia

_______________________________________________
Mbsplugins_monkeybreadsoftware.info mailing list
<email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info

Re: [MBS] MIDI device info under Windows
Date: 27.01.11 19:25 (Thu, 27 Jan 2011 10:25:36 -0800)
From: Mel Patrick
Just as a follow up, as I'm educating myself here, I think the overall best
solution is to have a custom driver for the USB-MIDI device. For a number of
reasons that are explained here:

http://www.vyzor.com/support/viewtopic.php?fE&t6

Perhaps that's way even all the class compliant devices I have still come
with a driver...to avoid these issues with XP and Vista.

Food for thought any way.

Mel
---

On 01/27/11 9:44 AM, "Mel Patrick" <<email address removed>> wrote:

> Thanks Aaron that makes sense.
>
> Personally, I've never run across one of these, apparently. Even the class
> compliant ones that I use, that advertise plug and play, still have a custom
> driver and thus, a name.
>
> I guess Julia's other option would be to get a custom driver written for the
> device in use, that way there'd be a name show up that would be unique.
>
> Mel
> ---
>
> On 01/27/11 6:07 AM, "Aaron Andrew Hunt" <<email address removed>> wrote:
>
>> Julia is talking about the WindowsMIDIMBS class and the fact that named
>> class-compliant USB-MIDI devices are not recognized by XP with specific
>> names,
>> but instead are all called "USB Audio Device". Unless the device has a custom
>> driver, XP does not know its name. Getting a list of names and checking it is
>> obvious, but does not work here, because te name is only "USB Audio Device"
>> for ALL class-compliant devices under XP (typical Windows garbage OS!)
>>
>> I didn't know that WindowsDeviceMBS would get the name... So, Julia is asking
>> Christian to get these methods to talk to each other, so WindowsMIDIMBS and
>> WindowsDeviceMBS could share info on the device. It sounds like a workaround
>> that could solve the problem, if the classes could share information. I would
>> also like problem is apparently limited to XP and is resolved under later
>> versions of Windows.
>>
>> Thanks,
>> Aaron
>> =#D>>>
>> On Jan 27, 2011, at 6:00 AM, <email address removed>
>> wrote:
>>> On 01/26/11 1:50 PM, "Julia Truchsess" <<email address removed>> wrote:
>>>
>>>> My RS app is a dedicated utility for a specific piece of hardware, which
>>>> is a class-compliant USB audio device using the built-in Windows driver.
>>>> Since my app only ever needs to communicate with this specific device I'd
>>>> like it to be able to auto-discover the device without having to offer the
>>>> user a pop-up menu of the various MIDI devices that may be present. In any
>>>> case, class-compliant devices only provides "USB Audio Device" as
>>>> identifier info under XP, and that doesn't help the user identify this
>>>> particular device. Under MacOS, MidiEndpointMBS provides me with the
>>>> device name as coded into the hardware's configuration strings and a
>>>> specific MIDI endpoint object to target for communications, but I haven't
>>>> been able to find a way to get this info under Windows.
>>>>
>>>> I can find the device, its name, and other info like HardwareID etc using
>>>> WindowsDeviceMBS so I can at least tell whether it's present or not, but
>>>> WindowsDeviceMBS only gives me system-level info and does not tell me its
>>>> Windows *MIDI* device number, which I then need to open input and output
>>>> MIDI ports to it.
>>>>
>>>> Does anyone know of a way I can get the Windows MIDI device number based
>>>> on the info returned by WindowsDeviceMBS?
>>>>
>>>> Thanks,
>>>> Julia
>
> _______________________________________________
> Mbsplugins_monkeybreadsoftware.info mailing list
> <email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.inf>
o

_______________________________________________
Mbsplugins_monkeybreadsoftware.info mailing list
<email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info

[MBS] re: MIDI device info under Windows
Date: 27.01.11 14:57 (Thu, 27 Jan 2011 08:57:06 -0500)
From: Julia Truchsess
@ Christian, yes, I am using the WindowsMidiMBS class - WindowsDeviceMBS
is an object of that class.

@ Mel, yes, that's what I'm doing, however under Windows all MIDI devices
using the built-in driver for class-compliant drivers (which is what my
device uses) show up as "USB Audio Device" rather than their actual name
and cannot be differentiated from one another.

I think what I'll have to do is iterate through all devices whose name is
"USB Audio Device" and send a MIDI ID Request to each one and see if it's
my gizmo. Not too bad I suppose...

Thanks,
Julia

>
>------------------------------
>
>Message: 3
>Date: Wed, 26 Jan 2011 23:13:46 +0100
>From: Christian Schmitz <<email address removed>>
>Subject: Re: [MBS] MIDI device info under Windows
>
>On 26.01.2011, at 22:50, Julia Truchsess wrote:
>
>> Does anyone know of a way I can get the Windows MIDI device number based
>> on the info returned by WindowsDeviceMBS?
>
>Did you try WindowsMidiMBS class?
>
>Greetings
>Christian
>
>------------------------------
>
>Message: 4
>Date: Wed, 26 Jan 2011 16:34:16 -0800
>From: Mel Patrick <<email address removed>>
>Subject: Re: [MBS] MIDI device info under Windows
>
>If you scan all the MIDI ports for IN and OUT, you can build an array of
>their port names (like you'd see in a popup menu).
>
>Since the device you are talking to is "specific" you already know the
>name
>of the port it will use so you can walk thru the list to find the match.
>The
>offset into the array will be the "MIDI Device Number" you want to use for
>your Midi Open commands.
>
>That's the way I do it on Windows when I want to reopen the last MIDI port
>the user selected. Works fine for me.
>
>Mel
>
>On 01/26/11 1:50 PM, "Julia Truchsess" <<email address removed>> wrote:
>
>> My RS app is a dedicated utility for a specific piece of hardware, which
>> is a class-compliant USB audio device using the built-in Windows driver.
>> Since my app only ever needs to communicate with this specific device
>>I'd
>> like it to be able to auto-discover the device without having to offer
>>the
>> user a pop-up menu of the various MIDI devices that may be present. In
>>any
>> case, class-compliant devices only provides "USB Audio Device" as
>> identifier info under XP, and that doesn't help the user identify this
>> particular device. Under MacOS, MidiEndpointMBS provides me with the
>> device name as coded into the hardware's configuration strings and a
>> specific MIDI endpoint object to target for communications, but I
>>haven't
>> been able to find a way to get this info under Windows.
>>
>> I can find the device, its name, and other info like HardwareID etc
>>using
>> WindowsDeviceMBS so I can at least tell whether it's present or not, but
>> WindowsDeviceMBS only gives me system-level info and does not tell me
>>its
>> Windows *MIDI* device number, which I then need to open input and output
>> MIDI ports to it.
>>
>> Does anyone know of a way I can get the Windows MIDI device number based
>> on the info returned by WindowsDeviceMBS?
>>
>> Thanks,
>> Julia

_______________________________________________
Mbsplugins_monkeybreadsoftware.info mailing list
<email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info

Re: [MBS] re: MIDI device info under Windows
Date: 27.01.11 15:00 (Thu, 27 Jan 2011 15:00:02 +0100)
From: Christian Schmitz

On 27.01.2011, at 14:57, Julia Truchsess wrote:

> I think what I'll have to do is iterate through all devices whose name is
> "USB Audio Device" and send a MIDI ID Request to each one and see if it's
> my gizmo. Not too bad I suppose...

Good idea. As far as I see there are midi commands for device information anyway.

Greetings
Christian

[MBS] MIDI device info under Windows
Date: 26.01.11 22:50 (Wed, 26 Jan 2011 16:50:48 -0500)
From: Julia Truchsess
My RS app is a dedicated utility for a specific piece of hardware, which
is a class-compliant USB audio device using the built-in Windows driver.
Since my app only ever needs to communicate with this specific device I'd
like it to be able to auto-discover the device without having to offer the
user a pop-up menu of the various MIDI devices that may be present. In any
case, class-compliant devices only provides "USB Audio Device" as
identifier info under XP, and that doesn't help the user identify this
particular device. Under MacOS, MidiEndpointMBS provides me with the
device name as coded into the hardware's configuration strings and a
specific MIDI endpoint object to target for communications, but I haven't
been able to find a way to get this info under Windows.

I can find the device, its name, and other info like HardwareID etc using
WindowsDeviceMBS so I can at least tell whether it's present or not, but
WindowsDeviceMBS only gives me system-level info and does not tell me its
Windows *MIDI* device number, which I then need to open input and output
MIDI ports to it.

Does anyone know of a way I can get the Windows MIDI device number based
on the info returned by WindowsDeviceMBS?

Thanks,
Julia

_______________________________________________
Mbsplugins_monkeybreadsoftware.info mailing list
<email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info

Re: [MBS] MIDI device info under Windows
Date: 27.01.11 01:34 (Wed, 26 Jan 2011 16:34:16 -0800)
From: Mel Patrick
If you scan all the MIDI ports for IN and OUT, you can build an array of
their port names (like you'd see in a popup menu).

Since the device you are talking to is "specific" you already know the name
of the port it will use so you can walk thru the list to find the match. The
offset into the array will be the "MIDI Device Number" you want to use for
your Midi Open commands.

That's the way I do it on Windows when I want to reopen the last MIDI port
the user selected. Works fine for me.

Mel

On 01/26/11 1:50 PM, "Julia Truchsess" <<email address removed>> wrote:

> My RS app is a dedicated utility for a specific piece of hardware, which
> is a class-compliant USB audio device using the built-in Windows driver.
> Since my app only ever needs to communicate with this specific device I'd
> like it to be able to auto-discover the device without having to offer the
> user a pop-up menu of the various MIDI devices that may be present. In any
> case, class-compliant devices only provides "USB Audio Device" as
> identifier info under XP, and that doesn't help the user identify this
> particular device. Under MacOS, MidiEndpointMBS provides me with the
> device name as coded into the hardware's configuration strings and a
> specific MIDI endpoint object to target for communications, but I haven't
> been able to find a way to get this info under Windows.
>
> I can find the device, its name, and other info like HardwareID etc using
> WindowsDeviceMBS so I can at least tell whether it's present or not, but
> WindowsDeviceMBS only gives me system-level info and does not tell me its
> Windows *MIDI* device number, which I then need to open input and output
> MIDI ports to it.
>
> Does anyone know of a way I can get the Windows MIDI device number based
> on the info returned by WindowsDeviceMBS?
>
> Thanks,
> Julia

_______________________________________________
Mbsplugins_monkeybreadsoftware.info mailing list
<email address removed>
https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info

Re: [MBS] MIDI device info under Windows
Date: 26.01.11 23:13 (Wed, 26 Jan 2011 23:13:46 +0100)
From: Christian Schmitz

On 26.01.2011, at 22:50, Julia Truchsess wrote:

> Does anyone know of a way I can get the Windows MIDI device number based
> on the info returned by WindowsDeviceMBS?

Did you try WindowsMidiMBS class?

Greetings
Christian