github dspaudio/orbit v0.9.0
ORBIT 0.9.0

latest release: v0.9.B
3 hours ago

ORBIT 0.9.0 and 0.9.B

A MIDI controller mode, SLOOP 2.8.4 fixes and a separate Bluetooth MIDI build.

Both packages were installed on an FM-1 on 2026-10-30. Each update reached
100%, rebooted, returned FM-1_900 and answered INFO with its respective
ORBIT 0.9.B or ORBIT 0.9.0 version. The device owner confirmed Bluetooth
pairing and synchronization with SYNC set to USB in 0.9.B.
Worst-case radio latency, stack high-water and audio under radio load
remain unmeasured.
Product introduction · User guide

Build Package Version shown
Default orbit.fwsc ORBIT 0.9.0
Bluetooth MIDI orbit-ble.fwsc ORBIT 0.9.B

Both keep the install identity FM-1_900.

Try both sound builds in the
web emulator.
The selector switches between original melodic samples and the FM replacements;
the browser does not emulate a Bluetooth radio.

MIDI controller mode

Hold ENV + LFO for 2 seconds, or set MENU > AUDIO > CONTROLLER to ON,
and the panel becomes a MIDI controller:

  • Keys send notes on the controller channel (default 1) without playing the
    internal sound.
  • KNOB 1-4 send CC 7, 74, 71 and 64; FX, SEL, ENV and LFO send momentary
    CC 80-83 (127 / 0).
  • EDIT + KNOB changes a knob's CC, EDIT + SELECT changes the channel. Both are
    saved with the device settings.
  • PLAY, REC and OCT keep working and the sequencer keeps playing. Held notes
    are released when you leave the mode.

Output goes to USB MIDI, and also to Bluetooth in 0.9.B. Details are in the
guide.

0.9.B: Bluetooth MIDI build

A separate package with Bluetooth LE MIDI. Turn it on from
MENU > SYSTEM > BLUETOOTH; it is never on after a restart. The FM-1
advertises as ORBIT FM-1, mirrors its USB MIDI output (no outgoing SysEx)
and treats received Bluetooth MIDI like USB MIDI.

To make room, 0.9.B:

  • replaces the melodic built-in samples with light FM voices
    (list);
  • halves the FX delay line, to about 0.74 s (about 0.37 s per side with
    PING); longer settings are held at the maximum;
  • refuses FM6 bank or USR4 writes that would overwrite the FM-1's stock
    Bluetooth calibration. If both the original calibration and its retained
    device-local copy are unavailable, Bluetooth startup shows FAILED.

See the guide for statuses and
connection steps, and BUILDING.md
to build it. The default orbit.fwsc contains no Bluetooth code and never
enables the radio.

Credit: the Bluetooth unit is ported from Hortator 4e40f27 by
DEADACTIVE (felucca-ble ble-kit), built on Felucca by Leo Kuroshita. It links
the JieLi AC79 SDK Bluetooth libraries (Apache-2.0), pinned by SHA-256 to SDK
snapshot 64afb30. See LICENSING.md.

SLOOP 2.8.4 fixes

Ported from SLOOP 2.8.4 (isod89/sloop-fm1 91f3018), with credit and thanks
to the SLOOP authors:

  • Clean fades: the mix is rounded for cleaner fades.
  • UNISON spreads the actual oscillator state in affected engines,
    including ORBIT's own SWARM, PULSE and FM4. CLUSTER and CLOUD retained
    their existing behavior and passed the host level checks.
  • PHYS string tuning is corrected.
  • NOISE high keys work with its LFSR, and its colour states stay bounded.
  • SAMPLE and GRAIN play the right pitch on high keys.
  • GRAIN no longer starves after notes are released.
  • Layer pages: a firm layer press opens its page (up to 1 s).
  • REC READY: knobs edit only their own value.
  • SONG confirmations ask again after a long idle.
  • User kit playback pitch exponents are bounded, and project step velocities
    are masked to seven bits when applied.

New host tests cover these fixes, and the editor protocol gets a fuzz test
under ASan and UBSan.

Not ported:

  • Bank 8 Program Change: ORBIT doesn't have that feature.
  • FUN6 foreign engines: ORBIT rejects FUN6 projects.
  • dsyn test buffer fix: doesn't apply to ORBIT's test.

Storage

ORP8 projects, OPB3 USER banks and the step_t layout are unchanged. The
device settings object grows by 16 bytes for the controller settings (104
bytes). Settings saved by older versions load with controller defaults. The
web editor accepts the 104-byte settings in backups, as well as the older
sizes.

Older ORBIT firmware can't read the new settings object's SYN kits and MIDI
map, and resets them to defaults until saved again. Back up before updating.

Validation

Sizes, test counts and golden render results are recorded in the
validation record. Installation is not a Bluetooth or
audio-performance acceptance test.

Don't miss a new orbit release

NewReleases is sending notifications on new releases.