Is there a Java SDK to be used for a non-Android Java application (e.g. a JavaFX project)?
I need to know if I can develop a Java application running on a desktop environment (Windows or Linux) and that can interact with the headsets. For instance, a JavaFX application.
I think you are out of luck - there doesn’t seem to be a Java SDK.
In theory, I suppose you could try to reverse engineer the android version (assuming that was legal, which I doubt) and adapt it to standard java, but that would probably be an unreasonable amount of work, even it if was possible and/or legal.
i recently found myself in the exact same situation! Until we have support from Interaxon for a Java SDK, you have two choices. Both require a significant about of development effort just to create the plumbing for your application:
Attempt your own implementation of the libmuse platform base classes in the android SDK
The good news here is that the libmuse android SDK has the appropriate abstractions to facilitate a generic Java SDK implementation. The bad news is that everything is funneled through JNI calls to a native libmuse library, so without the native platform library (mine is OSX) there is not much you can do.
i did attempt to create a non-native
com.choosemuse.libmuse.Muse implementation using the Bluecove bluetooth libraries for OSX. The Bluecove project is close to a decade without development, and i had to rely on an experimental build (2.1.2) that i managed to find for 64-bit OSX 10.13. i was able to connect to the headband, but without a protocol specification or plenty of time to hack at it, i had to set that aside.
Interaxon is almost there, it would be nice if they could provide a libmuse native library for OSX. Please!!!
Connect to MuseIO and consume OSC messages
This is really the only workable solution right now, however I really don’t like this option as it requires a dependency on the MuseIO application and means you can’t really turn this into a product. It’s OK for playing around with data and may work for you if you do not need to create a product.
In either case, feel free to check out the work i started here: https://github.com/ruffkat/muse
i’ve only had a couple of hours over the last couple of weeks to work on this, but here you will find:
- a generic framework for consuming muse messages over OSC.
- the direct connect experiment mentioned above (see
kungzhi.muse.runtime.PlatformHarnessunder test root in the platform module)
- a very, very simple JFX demo charting live absolute band power data (see
kungzhi.muse.ui.MuseApplicationunder the main root in the ui module)
Best of luck to you!