Skip to content

About

Java display window to use with BitX

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

Repository files navigation

BitXDisplayApp

BitXDisplayApp is a small JavaFX display app intended for a compact, fixed-size overlay. It renders three horizontal sections:

  • Clip text and live selected-track harmony (left)
  • Remote knobs (center)
  • VU meters (right)

The UI is drawn using JavaFX Canvas for low-latency rendering and updated by simple text messages sent over a local TCP socket.

If you just want to run the app:

download BitX (master extension for the displayapp) from https://personalaudio.lemonsqueezy.com/

Create a 'PerSonal' folder inside the Bitwig Studio Extensions folder and put the files in it.

Tech stack

  • Java 25
  • JavaFX 23.0.2 (OpenJFX)
  • Maven

This project uses platform-specific JavaFX binaries in pom.xml (currently mac-aarch64). If you are on another platform, update the JavaFX dependency classifiers accordingly.

Build and run

Build a shaded JAR:

mvn test package

Run with the JavaFX Maven plugin:

mvn javafx:run

Built artifacts are placed under target/.

Network protocol

The app listens on localhost TCP port 9876. A persistent connection can send multiple newline-delimited messages; legacy one-line clients also work concurrently. PING keeps idle connections alive. Incomplete clients expire after five seconds. There are at most eight clients and 38 state fields, with a 4096-character line limit. Updates are validated, deduplicated and coalesced before reaching JavaFX. Changed areas paint at most 25 times per second; the meter grid is drawn once. Minimized or hidden windows pause the frame timer while retaining the latest incoming state.

Supported messages:

  • CLIP:<text> - set clip name (use | for line breaks)
  • PLAYING_NOTES:<note names> - set current selected-track MIDI notes
  • PLAYING_CHORD:<chord name> - set current selected-track chord name
  • PAGE:<text> - set remote controls page name
  • KNOB_NAME:<index>:<text> - set a knob label (index 0-7)
  • KNOB_VALUE:<index>:<0..1> - set knob value (0-1)
  • VU:<index>:<0..127> - set VU meter value for track (index 0-7)
  • MASTER_VU:<0..127> - set master VU meter value
  • COLOR:<index>:<r>:<g>:<b> - set track color (0-255)
  • MASTER_COLOR:<r>:<g>:<b> - set master track color (0-255)

Assets

icons/ contains app icon assets used by the launcher/bundling flow.

Run com.personal.DisplayServerCheck after mvn test for the headless protocol and coalescing checks (classpath target/classes:target/test-classes).

com.personal.DisplayRenderCheck renders a representative 1512×70 fixture to /tmp/bitx-display-redesign.png; include the shaded JAR and target/test-classes on its classpath. The live preview can use -Dbitx.display.port=<port>.

About

Java display window to use with BitX

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages