This project integrates Spring Boot and JavaFX to serve as a foundation for my experiments with the Muse headband on the standard Java platform. There is no Muse SDK for the standard Java platform, so this project requires the presence of an OSC server producing muse messages, i.e. MuseIO
This project consists of the following modules:
||muse workbench domain objects|
||a framework for processing muse OSC messages|
||an experiment in direct headband connection|
||the Spring Boot/JavaFX application for exploring the Muse headband|
Running Muse Workbench
To run the application follow the steps below.
Build the project
This is a maven multi-module project, so first build all the modules used by the application. From the root of the project:
mvn clean install
Launch the application
Navigate to the
Launch the application
This will launch the application with the
simulation profile activated.
Runtime configuration properties
By default, Muse Workbench will listen for incoming OSC messages on
is the default used by MuseIO. To control certain aspects of Muse Workbench, the following
configuration properties are available:
|System Property||Values||Default Value|
To run with a customized system property:
mvn spring-boot:run -D<name>=<value> -D<name>=<value> ...
To run with defined profiles:
mvn spring-boot:run -Dspring.profiles.active=<profiles>
Muse Headband Simulator
simulator profile is active, 2 JMX objects will be registered with the runtime
that simulates the presence of a Muse headset:
Accessing the simulator objects
To connect to the local JVM's MBean server, launch
jconsole and attach to the process that
looks something like:
Things to keep in mind
Muse Workbench is event driven and centered around the primary
object. Because headsets can have different sensor layouts, Muse Workbench waits until a
configuration message arrives over OSC before activating certain UI features.
Because of this, the first thing to do when running the simulator is to use the
kungzhi.muse.osc.simulation.MuseSimulator MBean to send a configuration message. After that, the
kungzhi.muse.osc.simulation.BandPowerSimulator MBean can be used to send random band power data.
Don't forget to turn on the OSC client in Muse Workbench in order to start receiving the stream of OSC muse messages.