Posts: 46
Threads: 7
Joined: Mar 2018
Reputation:
0
03-19-2018, 06:23 PM
(This post was last modified: 03-19-2018, 08:32 PM by JBlyth.)
Greetings - and apologies for the multiple questions,
I have just purchased the Windows 10 (Surface Book 2) version after using the Android one (Nexus 9) for a few years. I am using a Tyros 4 keyboard. So far so good!
- One of the big differences I have found is that the Windows 10 version doesn't seem to be able to play midi files , only .wav, mp3 etc audio files - not midi. This means that my Android files that contain midi file links have to be all edited when I transfer from the Tablet to my Laptop, and the .wav files don't sound as good having exported them from Notation Composer. [Edit] I now see that the Android version will only use midi files, so that means the backups are not compatible between devices....
- I notice that in both versions, if the scrolling gets to the end of a song, and then I press a link to go back in the song, the scrolling has been terminated. Is this by design? It would be nice if the scrolling continued on....
- I am thinking of getting a Yamaha Bluetooth midi adaptor MD-BT01 or UD-BT01 for use by my tablet and Laptop. I can't find much on this forum about their use. Is there any reason why they CAN'T work to send midi registration patch data like "Patch Select 0 MSB 32 LSB Program Change 1"
- The main reason of thinking of Bluetooth is that when I use my Surface Book 2 in tablet mode, I have no access to the USB ports attached to the keyboard section, and it would be nice to be able to easily charge the Tablet when in use too....
- It would be wonderful if both versions of MobileSheets could directly send midi music files in real time to be played by my Tyros 4 (via Bluetooth would be spectacular, but at least by USB). Is this possible, or being thought of???
Many thanks
John in Sunny Carnarvon - Western Australia
Posts: 13,533
Threads: 302
Joined: Apr 2012
Reputation:
241
Hello John,
1) The problem with MIDI files is that there is no MIDI sequencer available for UWP store apps. On Android, I can just ask the audio engine to play back the MIDI file and it will use its own MIDI sequencer to play back the file. On Windows, there is nothing like that available, so in order to support MIDI files, I would have to implement my own sequencer and send that through the Microsoft GS Wavetable Synth (assuming I can actually get that to work). There are also aren't any UWP libraries to help with this, so I'm going to have to find a library for a different language or platform and try to convert the code.
2) Yes, that is by design, otherwise the scrolling state can get really messed up by the sudden change of position. Having said that, I can try to work on having the scrolling stop when the link point is tapped, then resume after the destination page is rendered (if necessary) and displayed.
3) I'm afraid I can't offer any feedback on either of those as I've never used them.
5) As far as I know, sending a MIDI file is not supported by the MIDI spec. There are a number of things that can be found in MIDI files that can't be sent through MIDI messages. Having said that, I can probably send any of the supported MIDI commands that are found in the file, but the problem once again becomes sequencing. You need code that processes all of the MIDI messages in the file at the correct times. I will have to see if the Android library I'm currently using can correctly process a MIDI file and handling the sequencing/sending. I know that the Windows 10 Microsoft MIDI library does not support this at all. So it's going to be a lot of work to support streaming a MIDI file to a connected device.
Mike
Posts: 46
Threads: 7
Joined: Mar 2018
Reputation:
0
(03-20-2018, 01:11 AM)Zuberman Wrote: Hello Mike,
Thank you for your extensive reply.
1) The problem with MIDI files is that there is no MIDI sequencer available for UWP store apps. On Android, I can just ask the audio engine to play back the MIDI file and it will use its own MIDI sequencer to play back the file. On Windows, there is nothing like that available, so in order to support MIDI files, I would have to implement my own sequencer and send that through the Microsoft GS Wavetable Synth (assuming I can actually get that to work). There are also aren't any UWP libraries to help with this, so I'm going to have to find a library for a different language or platform and try to convert the code.
I see that the Android version will play .wav and .mp3 files. I will experiment more with .wav/.mp3 so Android and Win 10 are cross-compatible. However, they sound VERY different to the midi files.....
2) Yes, that is by design, otherwise the scrolling state can get really messed up by the sudden change of position. Having said that, I can try to work on having the scrolling stop when the link point is tapped, then resume after the destination page is rendered (if necessary) and displayed.
In my brief testing, jumping to a link BEFORE the scrolling reaches the end of the song works fine, and the scrolling continues after the jump. It is only when the end of the song is reached before clicking the Link that the scrolling fails to start again.
3) I'm afraid I can't offer any feedback on either of those as I've never used them.
Feedback from http://www.psrtutorial.com/forum/index.p...741.0.html suggests the devices will work. I'll buy one and get back to you.
5) As far as I know, sending a MIDI file is not supported by the MIDI spec. There are a number of things that can be found in MIDI files that can't be sent through MIDI messages. Having said that, I can probably send any of the supported MIDI commands that are found in the file, but the problem once again becomes sequencing. You need code that processes all of the MIDI messages in the file at the correct times. I will have to see if the Android library I'm currently using can correctly process a MIDI file and handling the sequencing/sending. I know that the Windows 10 Microsoft MIDI library does not support this at all. So it's going to be a lot of work to support streaming a MIDI file to a connected device.
I phrased my query poorly. What I was thinking of was for MobileSheets Pro to be able to "play" a midi file on my keyboard via the midi/usb cable. This would negate the need for a midi player within MobileSheets Pro in this instance. I did find "Midi Keyboard" in the Microsoft Store, which does play midi to my Tyros 4. However, it does it extremely badly and the timing is all over the place!
Many thanks for the great support, Mike
Posts: 13,533
Threads: 302
Joined: Apr 2012
Reputation:
241
John,
1) Remember that a MIDI file is not an audio file like an MP3 or WAVE file. It is a file filled with MIDI commands with timestamps. In order to produce audio from the file, something has to process those commands and produce audio from them. This is what I refer to when I say a sequencer - something that tracks time and figures out when to execute each MIDI command during playback. In order for audio to be produced, something has to process the MIDI note on/off commands and figure out (based upon whatever instrument is being used) what kind of audio data to generate. That is why you can play the same MIDI file with whatever instrument you want. It's also why the MIDI file on Android is going to sound different than the same file played through a different application that might choose different instruments. As you found with the "Midi Keyboard" app, a poorly implemented sequencer is going to produce erratic MIDi commands (as they will vary from the timestamps specified in the file) and that will change the audio output. I mention this because if you are going to convert your MIDI files to mp3 or wav, the result you get is determined by a lot of factors including what instruments the chosen application decides to use. I also want to further explain why it's not a simple problem to solve on the Windows 10 version.
2) If the scrolling reaches the end of the song, then it is stopped. Pressing a link point after the scrolling has stopped is not going to start it up again. That would require a completely new kind of feature where you could associate additional actions with a link point such as "start scrolling".
5) You phrased it perfectly fine. I was just trying to explain that playing a file, in this case, means sending commands from that file to an external device (which is potentially going to be a subset of the data found in the file as not all MIDI data in a MIDi file is supported by the messaging MIDi specification). I also wanted to explain that the file itself couldn't be sent in its entirety to a connected device unless that device has a custom interface for that. Much like #1, I have to implement my own sequencer so that each MIDI command in the file
is sent at the appropriate time to the connected device. It will be interesting to see how the Windows 10 version handles the very tight timing requirements for this.
Mike
Posts: 46
Threads: 7
Joined: Mar 2018
Reputation:
0
(03-20-2018, 12:38 PM)Hi Mike Wrote: 2) If the scrolling reaches the end of the song, then it is stopped. Pressing a link point after the scrolling has stopped is not going to start it up again. That would require a completely new kind of feature where you could associate additional actions with a link point such as "start scrolling".
That would be perfect for me - but maybe hard to program for you ;-)
5) You phrased it perfectly fine. I was just trying to explain that playing a file, in this case, means sending commands from that file to an external device (which is potentially going to be a subset of the data found in the file as not all MIDI data in a MIDi file is supported by the messaging midi specification). I also wanted to explain that the file itself couldn't be sent in its entirety to a connected device unless that device has a custom interface for that. Much like #1, I have to implement my own sequencer so that each MIDI command in the file
is sent at the appropriate time to the connected device. It will be interesting to see how the Windows 10 version handles the very tight timing requirements for this.
What I was hoping for is for MobileSheets Pro in both Android and Win 10 to be able to "play" a midi file on my keyboard just as Notation Composer does, and many other Windows midi programs (USB midi out). I know I can copy midi files for playing directly on my Tyros 4 to play along with, but I was trying to have everything including midi accompanying files in MobileSheets....
Many thanks for your explanations. I appreciate it very much.
Cheers
John
|