If you are trying to connect your keyboard to your fancy new Android phone that possible runs android 8 or 9 and has a USB Type-C port, and your Simply Piano app (or any other app that utilize MIDI) crashes every time you
Below is how I found the solution.
Simply Piano is a simple and fun app designed for piano learners. It is easy, fun, and the songs in it are quite contemporary and popular, which I find quite suitable for me.
The app can use your phone or tablets’ microphone to listen to the keys you play and check if you strike the right one. You can also connect your keyboard or electric piano to your Apple or Android devices via USB port to enhance note recognition. The app dev team gives a decent explanation on how to do it here.
But when I tried to connect my Oneplus 6 to the newly bought Yamaha P125, the problem began to appear.
At first, the phone didn’t send any notification when USB is connected: no charging icon, no dialog box popping up, no chimming, nothing, which is quite odd
Then I found that you have to manually enable OTG in system settings on a phone running Android 9, or at least on my Oneplus 6.
After successful enabled OTG, Simply Piano could then recognize a MIDI device is connected and the phone asked for permission to access. But then another problem occurred – The app crashed every time in practice sessions.
I tried the same settings with my backup Huawei P9 which runs Android 8 but the app still crashed.
Then I checked the Youtube videos on related topics, and they all made it seemed easy, just like what they wrote in the post mentioned above.
It seemed to me it was either a connection problem, an app bug, or a compatibility issue.
But one thing I noticed is that they were all using Apple devices or Older android devices with micro-USB ports, so I thought it could be the OTG connector. But after connecting my phone to a USB memory stick using that exact OTG connector, everything worked. So it was not a connector problem.
If it was a bug of the application, there was nothing I can do except sending crash report and a memory dump, which I did.
Another thing I noticed was the video intros in the Simply Piano app can be played while the keyboard is connected, but on the Huawei P9, the videos were muted, and sometimes a dialog box says “another app is blocking audio transmission” poped up.
Then I realized the problem: manufacturers are removing the 3.5 mm audio jack from newer models and using TYPE-C USB port to transmit audio signals to headsets, so there must be a compatibility issue with older technologies like MIDI.
After some googleing, I found that you can disable USB audio routing in developer settings. After doing that, Simply Piano stopped crashing.