Midi usb


#1

If I understand correctly, Juce does not support working with MIDI USB with API versions below 23.

Many synths on the android market work with MIDI USB on devices below api 23, but ok.

Let MIDI only be with API 23, but I want my application to work on API versions below 23 too, even without MIDI.

When I compile JuceDemo app with minsdkversion = 21, targetsdkversion = compilesdkversion = 23 it crashes at startup on the device with api 21, apparently due to an attempt to run a nonexistent api. Apparently I should check the version of API at run time.

How should I modify the JuceDemo app code to work on versions below 23 without MIDI USB, and on version 23 above with MIDI USB?

I’m new to android. Sorry, if the question is simple.


#2

JUCE does not support MIDI on Android before API 23. There were large changes in Android at that point to make MIDI more usable and this is when JUCE offered support. Using MIDI on Android before version 23 requires you to roll your own.


#3

Prior to API 23 (Marshamllow) Android! didn’t support MIDI.

This fellow made a lot of great MIDI libraries,

But this isn’t Android standard.
Also BLE is very tricky with Android prior to API-23, and even with API23 it still got some weird quirks.

  • If you want a decent user experience and need proper audio - use JUCE. (only now Audio latency is becoming close to being reasonable).

  • If you need to do only MIDI, might be better off writing for Android in JAVA and using non-API MIDI libraries.

But if you’ll see review on the Google Play Store, you’ll see many apps are getting bad reviews with “there’s audio delay” because people don’t know which API they’re using or that Android latency from the first place is sub-standard without latest and greatest (Android 8+).


#4

Good. But how about main question in first post?

“How should I modify the JuceDemo app code to work on versions below 23 without MIDI USB, and on version 23 above with MIDI USB?”