Yamaha MD-BT01 on Windows 10

• Feb 3, 2017 - 02:20

I just got the Yamaha bluetooth device and attached it to my Yamaha keyboard. I turned on the keyboard and searched for new BT devices with my laptop and paired them. All good so far.

Now how do I get MuseScore to recognize that as a MIDI source? I've looked at the properties of the driver and it appears as "Microsoft LE Device". All I see in MuseScore's preferences on I/O are:
APIs: MME
Windows DirectSound
ASIO
skeleton implementation

Switching any of those has no effect on MIDI input dropdown (empty for all of them).

According to a Window's developer's blog , Windows 10 with the "Anniversary" update (which my computer has) supports MIDI bluetooth.

Now reviewing that blog entry again, I see the line: " As long as all apps with the port open are using the Windows 10 UWP MIDI API and not the older Win32 MME or DirectMusic APIs, they can share the same device."

the UWP MIDI API does not currently show up in the preferences drop down in my installation. Is this something that is end-user configurable, or is it something developers need to change?

Any suggestions on how to get MuseScore to "see" this MIDI source otherwise?

Thanks!


Comments

In reply to by AndreasKågedal

Yes, AndreasKågedal, thank you for pointing out the typo. But that is really irrelevant to the issues raised. And correct, the device is clearly doing what it is designed to do.

MuseScore, however, is not doing what it should be doing -- recognizing a connected MIDI device as an input/output source. Or have I misunderstood what MuseScore is designed to do? Or, have I failed to configured something correctly either in MuseScore preferences or in my computer's settings? What I'm seeking guidance on is how to configure MuseScore to work with a MIDI keyboard successfully connected to my computer. Those are the questions which are important.

In reply to by Nicolas

Hi lasconic,

That's pretty simple -- it is empty. I would suppose that what devices are listed as available would be dependent on the API used to expose and communicate with those devices. The new Windows API for MIDI is called "UWP MIDI" and the only options I have for API choices are:
MME
Windows DirectSound
ASIO
skeleton implementation
IOCapture.png
You may be able to make out from the screen capture that I did try to select the MIDI combobox control -- it is highlighted in blue. But with nothing in it, it doesn't even open.

Thanks for any further suggestions you may have.

Kind regards,
Bruce

In reply to by Nicolas

I've done some more trouble shooting. I downloaded another software package to see if it would recognize my keyboard was connected and ready for input/output. As you can see from the screenshot, it had no problem recognizing my Bluetooth MIDI connection and successfully connecting to it both for input and output. This indicates to me that the flaw is indeed in the MuseScore program for failing to recognize this connection.

confirmationDeviceAvailable.png

Forgive me if this is obvious, but did you try quitting and then reopening MuseScore? The keyboard needs to already be connected and turned on when MuseScore launches.

In reply to by Isaac Weiss

No, no. I appreciate any suggestions. And to someone else who stumbles upon this thread, that may be a solution.

But not only have I tried closing and reopening MuseScore I have tried:

    Rebooting my computer
    Uninstalling Musescore
    Rebooting again
    Reinstalling Musescore

I would really like one of the people involved in development to weigh in on whether my current working hypothesis has any validity: MuseScore is not recognizing my MIDI i/o device like other programs installed on my computer are because the device is connected via a 64-bit architecture and exposed via a different API (UWP MIDI) from those already used by MuseScore (MME, Windows DirectSound, ASIO, and skeleton implementation), all of which I've tried (and yes, closed and restarted MuseScore after changing the API to test each one).

I've had to conclude MuseScore just isn't "ready for prime time" for anyone who gets the latest technology in computing. 64-bit architecture is where the industry is moving. Windows 10 is a reality. The MIDI architecture supported in Win10 on 64 bit machines is not going away. That the MuseScore community of developers ignores this is disconcerting.

In reply to by cuseBruce

The Mac version is 64-bit, for Linux there are 32- and 64-bit version.
For Windows there's the idea (not more yet) to move from minGW to VisualStudio, that does come with a 64bit Version.
Still, so far there is verylLittle reason why someone might want a 64-bit version for Windows, so the developers' time most probably is spent better somewhere else

In reply to by Jojo-Schmitz

In other words, content with being software that will soon be past by and archaic. As I already pointed out, 64-bit architecture is upon us and where the hardware industry is moving. If that is not reason to start moving the software to Win 64-bit as well, then this sentiment is yet more evidence of the whole product being not ready for prime time. I'm not moving to Mac just for 64-bit. Nor am I jumping through hoops to load Linux for 64-bit. I'm here to write music -- I spend enough time on software development at my "real" job.

In reply to by cuseBruce

The real question is: why do you (think to) need MuseScore as 64-bit? Why practically nobody else (demand is very low as far as I'm aware)?
Seems you need it to connect your Yamaha MD-BT01, but so far you're the only one with that problem?
So if you absolutly need to use that device and are not willing to give the existing (albeit unsuported) 64-bit version of MuseScore a try and are willing to pay some significant amount of money for some other score writer that has a 64-bit version, then yes, MuseScore is not the program for you to use, not yet and not for the near futur.

In reply to by Jojo-Schmitz

You are making an erroneous assumption (as assumptions tend to be) that I didn't try the existing 64-bit version. The instructions were incompetently written, but I waded through them for four evenings trying to get it to work. It wouldn't even compile correctly. I develop technical reports in visual studio for a living, so someone coming at it with less technical expertise would more than likely be even more flummoxed.

You're also making what I suspect is an unfounded assumption that I am the "only one with that problem." I am merely apparently the only one who cares to spend the time to try to bring it to the attention of developers.

So, the actual real question is: why do you resist the findings of someone willing to provide you with an alternate perspective? My computer is 64-bit, and MuseScore fails to perform one of its fundamental functions in not recognizing a connected MIDI device that other software packages recognize. This is a flaw with MuseScore. Period. I've reported it.

Believe me, if it weren't that the group I'm involved in had already settled on MuseScore prior to my joining, I wouldn't give it the time of day.

In reply to by cuseBruce

The 64-bit version available from the download page is compiled and ready to use, so I don't understand that part of your problem at all. It doesn't come with an installer though, so is less easy to get it to run, but basically you just unpack it and then run the MueScore.exe directly. At least that's my recollection.

It is not that I or anyone here resist your findings, and we do value your feedback, but a) demand for this feature is pretty low and b) the hurdles to build a 64-bit version is currently too high for the core development team to handle, so another user, (ISTR it was ABL ), jumped in and build both those 'unsupported' Versions (nonSSE2 and 64-bit). And I hope he's going to do that for the upcomming 2.1 too.

In reply to by cuseBruce

Note to others: I have the exact same bluetooth midi device YM-BT01, and I am unable to use in with MuseScore on Windows, either with the "unsupported" 64-bit build or the 32-bit build or the latest master in qtcreator, regardless of what portaudio API I select in Preferences. (Note, I am able to use it with WindSYNTHberry just like cuseBruce was able). I believe that PortMidi will need to be updated to handle this windows api, since when I open pmdefaults in windows, I still don't see the bluetooth device listed. I believe the solution will require the PortMidi project to add an extra .c file to interface with the Windows 10 UWP MIDI API (maybe I can try help them out with that), and that way every other program that uses PortMidi will benefit as well.

@cuseBruce 64-bit isn't really better than 32-bit, and may actually be worse in some cases because pointers in 64-bit are twice as large as 32-bit, which will increase the memory footprint and thus put unnecessary pressure on the cache...I wrote about this in a bit more detail here: https://musescore.org/en/node/73476#comment-336546

Also I'm not sure that the industry is moving to 64-bit for all use cases. For instance, all the games I install with Steam on Windows are only in 32-bit (fyi, take a look at the number of programs in your "C:/Program Files (x86)" and you will see plenty of perfectly good software still in 32-bit). The only reason why a 64-bit windows build for any program is absolutely necessary is if it will need more than 3GB of memory (and there are only a few classes of programs which need this...primarily servers, scientific computing, maybe your web browser if you are going to have a hundred tabs open, or anything that needs to deal with tons of stuff). But I doubt you will write a score that requires more than the 32-bit limit...out of curiosity I opened the largest score I could find on musescore.com (50 instruments + parts), and when I opened it in musescore, the memory usage increased by 100MB. If you wanted to have 40 such giant scores open at the same time, then you would want to consider 64-bit. So really the only *practical* reasons are if you want super large soundfont or have a 64-bit-only driver.

In reply to by Jojo-Schmitz

I don't see how moving to Visual Studio would make any sense. The entire MuseScore product would have to be rewritten to use Windows user-interface calls rather than those provided by Qt -- this would then become a whole new maintenance project which would share nothing in common with versions running on other platforms which utilize Qt. There is, in fact, a Windows 64-bit version of Qt available which uses 64-bit MinGW -- not sure why MuseScore has not been compiled under 64-bit Qt. (Many of us folks who have worked as developers vastly prefer Linux, MinGW and Qt over Windows and it's quite proprietary .NET products.

In reply to by farrellts

Qt does not provide a 64bit Mingw ready to use, nor their libs in 64bit, only 32bit. And the latter is the real roadblock. They do provide a Visual Studio integration though.
It is not about rewriting MuseScore to C# or .NET, but just to use VS's compiler, to build MuseScore using with what Qt provides.

I'm trying to find an open-source library that supports windows 10 bluetooth midi. I found https://github.com/Psychlist1972/Windows-10-MIDI-Library which apparently does and has work to detect and allow hotswapping of bluetooth midi devices, so that looks promising. It seems to be in C#, and according to https://www.nuget.org/packages/PeteBrown.Devices.Midi/ it requires "to install Windows 10 MIDI API helper library for UWP applications, run the following command in the Package Manager Console", so I'm not sure that would be easy to incorporate into the current mingw build system. Also it is is C#, but I'm guessing if that is a library ti shouldn't matter.

I'm going to look for some other projects too.

I worry about portmidi, since it doesn't seem to be updated...last commit was march 2016, and I don't really see much talk online about it supporting bluetooth on windows. I did make a post to PortAudio's (not PortMidi's) mailing list , but haven't heard anything...

In reply to by ericfontainejazz

I was able to compile and run the "MidiClient" example program from https://github.com/stammen/winrtmidi (which is Microsoft's win32 wrapper for their newer UWP Midi Api), it seems to work quite well. Unlike portmidi, it is able to use bluetooth midi devices, and it can automatically detect hotplugging via a callback function. I don't believe either of those two features will be coming to portmidi anytime soon, and I bet that a lot of users are going to want those features...

Do you still have an unanswered question? Please log in first to post your question.