LibMuse for Android, iOS and Unity example updated to 6.0.0


We’ve updated LibMuse for Android, LibMuse for iOS and the LibMuse Unity example to match LibMuse 6.0.0 for Windows. There are a few new features, several bug fixes and minor API breaking changes in this release.

Download LibMuse for Android:
Download LibMuse for iOS:
Download LibMuse Unity example from

Release Notes / Changelog

Features introduced in this release:

  • New API to allow LibMuse to throw exceptions for debugging purposes rather than trying to catch everything. See Muse::enable_exception for more details.
  • enableDataTransmission has been implemented in ReaderMuse. If data transmission is disabled, playback will continue but you will stop receiving data from that ReaderMuse. This is useful if you have 2 different ReaderMuse objects and want to toggle which one is providing input.

Issues addressed in this release:


  • Fixes a crash that could occur when accessing AUX EEG values in cases where only 4 channel values are provided. If the AUX value is not provided, 0 is now returned.
  • Calling MuseFileWriter::flush() with an empty buffer no longer writes an empty message to the stream. If flush() is called with an empty buffer, the call to flush is ignored.
  • Fixed a crash in MuseFileReader if an empty message was read.
  • Removed a potential deadlock that could occur if connect() or run_asynchronously() was called during the DISCONNECTED connection listener callback. LibMuse will no longer deadlock, however if 2 connection listeners are registered to the same Muse and the first listener makes the call to connect() or run_asynchronously() when the first listener receives the DISCONNECTED event, then the second listener will receive the original DISCONNECTED event after it receives the CONNECTING event resulting from the first listener’s call to connect() or run_asynchronously().


  • Fixed MuseFileAndroid to return false if the write operation failed.
  • Fixed a potential crash that could occur from attempting to read data from a Muse 2016 headband before the connection was established.


  • Fixed the Accelerometer documentation to clarify the X, Y and Z axes.
  • Fixed MuseLog documentation to indicate that calling MuseLog.f will cause the application to crash with SIGABRT.

Breaking API changes in this release:

  • Locations of header files for iOS have changed to remove gen-objc. Instead all iOS header files are now located under Muse/api/. If you have included individual headers from the Muse framework, you will need to update to the new path. No changes are required if you are including “Muse/Muse.h”
  • MuseManager::disconnect(bool) no longer takes a boolean parameter and has been replaced with MuseManager::disconnect() which takes no parameters. If you want to unregister all listeners when disconnecting, it is recommended that you call unregister_all_listeners after you receive the DISCONNECTED connection listener callback.
  • MuseManager::is_bluetooth_enabled() function has been removed. The sample applications have been updated to show how to check if bluetooth is enabled in a platform specific way.
  • The DeviceInformation class has been removed. The name, mac address, rssi and last discovered time are available through the Muse class.
  • The CharacteristicId enumeration has been removed as it was not used by the API. There is no replacement.