Binaural, isochronic & monaural beat + mix generator

SBaGenX Retro-lab energy, modern clarity.

SBaGenX is an eclectic, modern fork in the lineage: SBaGenSBaGen+ → SBaGenX. It keeps the power and scriptability, but now does so through a reusable engine layer: sbagenxlib powers the CLI, the desktop GUI, and the Android app work now underway.

Maintained by Lech Madrzyk at www.sbagenx.com.

  • sbagenxlib
  • Realtime curves
  • Sigmoid sessions
  • FLAC + loop tags
  • Desktop GUI
Lineage: SBaGenSBaGen+SBaGenX

Fork Improvements

SBaGenX is no longer just a patched CLI fork. It now has a reusable engine, richer frontends, and clearer separation between authoring, playback, validation, and plotting.

Library-first architecture

  • sbagenxlib is now the central engine and public C API for SBaGenX.
  • The same runtime now powers the CLI, the desktop GUI, and the Android app effort.
  • Structured validation diagnostics with parser spans are exposed through the library, not recreated separately in each frontend.
  • The desktop GUI now ships as part of the main project rather than as an external wrapper around CLI commands.
  • Windows and Ubuntu/Linux packaging now install the CLI and GUI together against a shared installed runtime.

Signal engine and built-ins

  • Built-in programs use function-driven runtime beat/pulse values in sliding modes, not only coarse piece-wise approximations.
  • New -p sigmoid program for smoother beat/pulse transitions.
  • Configurable sigmoid shape via :l=<value>:h=<value> (order-independent).
  • -p curve loads external .sbgf files for user-defined beat/carrier expressions.
  • .sbgf supports readable piecewise curve definitions and helper functions for advanced session shaping.
  • .sbgf solve blocks auto-fit constants from boundary equations at setup time.
  • Built-in monaural mode via M in drop, sigmoid, and slide specs.
  • Signed level support (including negatives) for higher carrier starts while keeping built-in behavior.

Mixing, looping, output, and plotting

  • FLAC input mix support with SBAGEN_LOOPER metadata handling.
  • SBAGEN_LOOPER supports one-time intro playback using (required trailing space) before the loop range. This is very useful where you have an audio track with a clear introduction which then proceeds to audio which is easily loopable.
  • Native output encoding for OGG/FLAC/MP3, selected by output extension, with exposed quality/compression controls.
  • -I adds isochronic envelope customisation over one cycle.
  • -G plots whole-program beat/carrier trajectories for built-in programs such as drop, sigmoid, and curve.
  • -P plots a one-cycle isochronic envelope/waveform preview rather than the full session curve.
  • -A adds optional mix amplitude modulation with tunable parameters. (Conjecture: gradual linear mix decay may feel calming, while short periodic dips may briefly heighten awareness.)

Desktop and mobile frontends

  • The desktop GUI now covers editing, validation, built-in programs, playback, export, and mix loading.
  • Built-in program mode now exposes drop, slide, sigmoid, and curve directly in the GUI.
  • The Android app work is being built on the same sbagenxlib core rather than re-implementing the engine logic.
  • This shared-runtime approach keeps validation, playback semantics, and curve solving aligned across all frontends.

Example Plots

Two different plot modes generated directly by SBaGenX. -G is for whole-session / built-in program curves; -P is for one-cycle isochronic inspection.

Default Sigmoid Curve

Default sigmoid beat-frequency curve from 10 hertz to target over 30 minutes.

-G plots the built-in program curve over time.
Command: sbagenx -G -p sigmoid 00ls

Default Isochronic Cycle

Default one-cycle isochronic envelope and waveform plot at 200 hertz carrier and 1 hertz pulse.

-P plots a single isochronic envelope/waveform cycle, not the full session.
Command: sbagenx -P -i 200@1/100

Sigmoid Drop Video

A one-minute graph-video example generated directly by SBaGenX with a sigmoid drop using 00ls+/100:l=3, synced audio, and a pulsating tracking dot.

Command: sbagenx --graph-video sigmoid-target-l-demo.mp4 -G -p sigmoid t1,0,0 00ls+/100:l=3

SBaGenX GUI is Here

The desktop GUI is now available, built directly on sbagenxlib rather than wrapped around the CLI.

Desktop-first editor

SBaGenX now includes a real desktop app for editing, validation, playback, and export, with the GUI integrated directly into the main project.

  • Multi-document tabs for .sbg and .sbgf files
  • Syntax-colored editing with Monaco
  • Real-time validation driven by sbagenxlib
  • Built-in program mode for drop, slide, sigmoid, and curve
  • Library-backed playback and export
  • Desktop styling aligned with the SBaGenX website

This is still an early GUI release, but the core desktop workflow is now in place and improving on the main branch.

Current GUI

Current screenshot of the editor-centric SBaGenX desktop GUI.

Download

Windows installer and Ubuntu package for the current stable release.

Latest release

SBaGenX v3.1.0

Resolved automatically from the latest GitHub release.


Checksums

SHA256 values. The copy button uses your clipboard.

Windows (SHA256)
2d291d1f130f5ccef61dbec52e5454457046e8d31eac0001f2978fcda10efb03
Ubuntu amd64 (SHA256)
f39a35b68721f8cd75a9a21ae8481eea74b663c19dba8d1081f345ca581666cd

Android App

Alpha Android builds are published separately from the desktop app and are being built on the same sbagenxlib engine rather than a separate reimplementation.

Latest Android release

SBaGenX Android v1.0.0-alpha.1

Validated, editor-centric Android build powered by sbagenxlib.

Alpha

The Android app brings native validation, live editor diagnostics, persistent render context preparation, and mixed playback to phones and tablets while staying aligned with the desktop and CLI runtime semantics.


Checksums

SHA256 value for the latest Android APK. The copy button uses your clipboard.

Android APK (SHA256)
ff44d099ed1ff75313ff2b8dd684f99ae782ca40d72ea0174c77802aef7d94e9

Quick Start

Practical commands for a first run. Full option details are in the main docs.

  1. Install Install from Windows setup or Ubuntu .deb package.
  2. Run Open a terminal and verify your install with sbagenx -h.
  3. Start a built-in session Try a drop or sigmoid sequence with optional mix audio.
  4. Plot / render Use -G for built-in/session curve plots, -P for one-cycle isochronic plots, and -o for WAV/OGG/FLAC/MP3 output.

Example

Copy/paste examples:

# 1) Check options
sbagenx -h

# 2) Run a built-in drop session with a bundled river mix
sbagenx -m river1.ogg -p drop 00ds+ mix/99

# 3) Sigmoid session with explicit shape params
sbagenx -m river1.ogg -p sigmoid 00ls+:l=0.125:h=0 mix/97

# 4) Plot the full sigmoid session curve as PNG (no audio output)
sbagenx -G -p sigmoid t30,30,0 00ls+:l=0.20:h=0

# 5) Plot one isochronic cycle preview
sbagenx -P -i 200@1/100

# 6) Render to OGG Vorbis (quality 6)
sbagenx -m river1.ogg -o session.ogg -U 6 -p sigmoid 00ls+:l=0.125:h=0 mix/97

See docs/SBAGENX.txt for full syntax, including monaural mode (M), isochronic mode (@), and mix modulation (-A).

SBaGenX Functions

Build custom beat curves in .sbgf files and use solve to fit unknown constants from boundary constraints. This is exposed through sbagenxlib and consumed by both the CLI and GUI.

Example .sbgf with solve

# Target model: f(m) = A*exp(-l*m) + B
param l = 0.15
solve A,B : A*exp(-l*0)+B=b0 ; A*exp(-l*D)+B=b1

beat = A*exp(-l*m) + B
carrier = c0 + (c1-c0) * ramp(m,0,T)

Here, SBaGenX solves A and B at setup so the curve exactly matches beat(0)=b0 and beat(D)=b1. You tune curvature with :l=<value> from the command line.

Solved Exponential Curve

Solved .sbgf exponential beat curve from 10 hertz to a low target over drop-time.

Command: sbagenx -G -p curve examples/basics/curve-expfit-solve-demo.sbgf 00ls:l=0.15

Community

Where you share .sbg and .sbgf contributions. Start simple.

Where am I, and what do I do?

You are in the SBaGenX community space. If you have a useful session or function file, share it first and refine it later. Maintainers can help clean things up before formal curation.

Submit via GitHub

Use the issue/PR workflow in the main repository for contributions. For discussion, ideas, and questions, use GitHub Discussions.

This is currently the active route for both contributions and community discussion.

What to include

  1. Choose format Use .sbg for sessions or .sbgf for reusable curve/function definitions.
  2. Add context State purpose, runtime, target beat range, and any mix assumptions.
  3. Choose sharing terms Include your preferred attribution/licensing terms with the submission.
  4. Submit Use the GitHub submission path for contributions and Discussions for questions and ideas.

How entries are handled

  • New / Unreviewed: recently shared; pending validation and metadata pass.
  • Reviewed / Curated: checked for format quality and runnable behavior.
  • Featured: high-signal examples with clear notes and practical value.

Lineage & Credits

SBaGenX preserves clear lineage and upstream credit.

Lineage

SBaGenX continues the fork lineage: SBaGenSBaGen+ → SBaGenX.

  • Original: SBaGen (uazu.net)
  • Fork: SBaGen+
  • This project: SBaGenX

Visual elements

This site is designed to reuse the background from the original SBaGen / Uazú site as well as the icon for the SBaGenX program with permission and much gratitude. This project would not exist if not for the founder, Jim Peters', hard work.

  • Background tile: assets/bg-tile.gif