Skip to content

Releases: dataO1/Mesh

Mesh v0.9.13-rc.9

Mesh v0.9.13-rc.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 May 21:07

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.13-rc.8

Mesh v0.9.13-rc.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Apr 23:52

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.13-rc.7

Mesh v0.9.13-rc.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Apr 14:52

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.13-rc.6

Mesh v0.9.13-rc.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Apr 11:34

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.13-rc.5

Mesh v0.9.13-rc.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Apr 01:15

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.13-rc.4

Mesh v0.9.13-rc.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Apr 13:08

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.13-rc.3

Mesh v0.9.13-rc.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Apr 13:07

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.13-rc.2

Mesh v0.9.13-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Apr 10:16

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.13-rc.1

Mesh v0.9.13-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Apr 11:45

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


No changelog entry for this version.

Mesh v0.9.12

Choose a tag to compare

@github-actions github-actions released this 18 Apr 15:38

Installation

Linux (.deb)

Download the .deb package for your system:

  • mesh-player — Performance mode (4-deck stem player)
  • mesh-cue — Editing mode (waveform editor, analysis, stem separation)
  • mesh-cue-cuda — Editing mode with NVIDIA GPU acceleration
sudo dpkg -i mesh-player_*.deb mesh-cue_*.deb
# Install dependencies if needed:
sudo apt-get install -f

Requirements: PipeWire (Ubuntu 22.04+, Fedora 34+) or JACK2, glibc 2.35+

Windows (.zip)

Extract the zip and run the .exe directly. No installation required.
GPU acceleration via DirectML (any DirectX 12 GPU).

NixOS / Nix

Run directly (x86_64-linux):

nix run github:dataO1/Mesh#mesh-player
nix run github:dataO1/Mesh#mesh-cue

aarch64-linux (Orange Pi 5 / embedded): A pre-built binary cache is published to GitHub Pages with every release. Configure the cache and update:

# /etc/nix/nix.conf (or flake nixConfig)
extra-substituters = https://datao1.github.io/Mesh/
extra-trusted-public-keys = mesh-embedded:vLo1l3Abp0Uzcn21wR3oXvmZxZb1Z1rbk+ggTOIGmeQ=

# Update an embedded device
nixos-rebuild switch --flake github:dataO1/Mesh#mesh-embedded --no-write-lock-file

ML models are downloaded automatically on first use.


[0.9.12]

Changed

  • Smart suggestions — dual harmonic filter — The single fixed-threshold
    filter has been replaced by a two-layer gate. A permanent harmonic floor
    (base_score ≥ 0.45) blocks Semitone, FarStep, FarCross, and Tritone
    transitions at every intent fader position regardless of energy bias or
    personal curation — these are musically dissonant and never appropriate. A
    separate blended threshold (key_transition_score ≥ 0.65) operates on
    the energy-direction-blended score: at the centre position this equals the
    raw base score, so EnergyBoost/Cool (0.50) are excluded and only the
    flow-safe set (SameKey, Adjacent, Diagonal, MoodLift) appears — suitable for
    mashups and multi-track layering. At extreme positions the blended score shifts
    toward the energy-direction component: EnergyBoost rises to 0.75 and unlocks;
    SameKey falls to 0.50 and is filtered out. The crossover happens naturally
    near ±0.60–0.70 bias without any hard-coded knee. Personal curation (currently
    browsed playlist) still receives 50% leniency on the blended layer only —
    the harmonic floor is never relaxed.

  • Smart suggestions — static key harmony weight — The harmonic
    compatibility weight (w_key) is now constant at 30% across all intent fader
    positions (previously it dropped from 25% to 10% at extremes). Key harmony is
    treated as a hard quality constraint: an energetic transition that clashes
    harmonically sounds wrong regardless of intent. BPM and key-direction weights
    instead shoulder the budget reduction as energy-related terms (aggression,
    danceability) grow at extremes. At extreme bias, BPM weight falls to zero and
    key-direction drops to 5%; at centre, BPM carries 13% and key-direction 12%.

  • Smart suggestions — spectral diversity at extreme intent — The HNSW
    similarity component now flips direction as the intent fader moves toward
    extremes. At the centre position it rewards spectral similarity (find tracks
    that sound like the seed); at extreme positions it rewards spectral diversity
    (find tracks that complement rather than copy the mix). At the halfway point
    the component is flat for all candidates so energy signals drive the ranking
    uncontested. Distances are normalised within the candidate pool before
    blending so the effect is consistent regardless of collection size. The
    reason-tag label updates to reflect the active mode: "Similar" at centre,
    "Spectral" in the transition zone, "Variety" at extremes.

  • Smart suggestions — fixed harmonic filter — The adaptive harmonic filter
    threshold (which relaxed from 0.50 to 0.10 at extreme intent) has been
    replaced with a fixed 0.50 threshold. The relaxation was redundant: the
    energy-direction blend inside key_transition_score already makes the filter
    energy-aware at extremes — energy-appropriate transitions (SemitoneUp when
    raising) naturally score above 0.50 while opposing ones (EnergyCool when
    raising) fall below. The old relaxation was flooding the pool with
    harmonically bad candidates and contributing to the uniformity problem.

  • Stem mute/unmute fades — Toggling a stem mute no longer cuts or restores
    audio instantly. A 50 ms linear fade is applied entirely inside the engine so
    the external API is unchanged. Muting fades the stem out over 2 400 samples
    (at 48 kHz); unmuting fades it back in at the same rate. The fade is applied
    after multiband processing so effects trail off cleanly, and the per-sample
    ramp runs on both the normal playback path and the scratch path. Solo
    transitions also benefit — soloing a stem fades the others out rather than
    cutting them. The duration is a single constant (STEM_FADE_SAMPLES) and
    trivial to tune by ear.

  • LUFS gain compensation — perceptual density bias — Both quiet and loud
    tracks now receive a small extra correction beyond straight linear gain. The
    issue is perceptual density: a track at −4 LUFS, cut to match a −9 LUFS
    target on the meter, still carries the spectral saturation and consistent RMS
    of a heavily limited track and will punch through a mix even at the same
    measured level. Equally, a −14 LUFS track boosted to −9 LUFS still feels
    sparse because it lacks that density. The correction uses the formula
    gain = delta × (1 + 1/|target|) — the bias auto-scales with the target
    level so it is stronger at a loud mixing standard (−6 LUFS, ≈ +16.7%)
    and gentler at a dynamic one (−9 LUFS, ≈ +11.1%), reflecting how perceptual
    density differences matter more when everything is loud.

Added

  • Playlist-aware smart suggestions — The suggestion panel now splits into
    two independent halves. The top 15 slots show the best-matching tracks from
    the playlist you are currently browsing; the bottom 15 show the best global
    matches from all other sources (other playlists, USB sticks, and the full
    local collection). Global rows are visually tinted so the split is immediately
    obvious at a glance.

  • Per-track playlist pills — Every suggestion row now shows which playlists
    that track belongs to as blue pill tags, regardless of what you are currently
    browsing. If a suggestion appears in your "Breakbeat" and "Live Set" playlists,
    both names show on the row.

  • Deeper playlist matching — Tracks in the browsed playlist use a more lenient
    harmonic filter (50% of the normal threshold) so that slightly less obvious key
    relationships within your own curated set are still surfaced. The full scored
    candidate pool is passed to the split rather than a pre-truncated shortlist,
    giving each half the best possible selection to draw from.

  • Auto Headphones Cue — Decks with their volume fader at or below 30% are
    automatically routed to the headphone/cue output for pre-listening. Between
    30% and 50% the send fades out linearly so there is a smooth handoff rather
    than a hard cut. The manual CUE button per deck still forces a full cue send
    and remains completely independent. The feature is configurable under
    Settings → Playback ("Auto Headphones Cue") and is on by default. It is
    automatically disabled when the master and cue outputs are the same device
    (to prevent double-monitoring).

Fixed

  • Peak meters — Fixed deck meters only showing for deck 4 and the master
    meter not appearing on the embedded device. Also fixes a frame-rate regression
    introduced with the meters in the previous release.

  • BPM tap tempo (mesh-cue editor) — A new TAP button in the BPM row of
    the track editor continuously updates BPM from the average interval of the
    last eight taps. Tapping stops if there is more than a 3-second gap, so
    restarting at a different tempo just picks up immediately on the next tap.
    BPM is clamped to the valid range (20–250 BPM).

  • BPM range clamping (mesh-cue editor) — Manual BPM edits via the text
    field and +/− buttons are now limited to a maximum of 250 BPM.

  • OTA update status display — The in-app update status log now continues
    to populate even when the Settings panel is closed, so the progress feed is
    never silently dropped mid-install.

  • Audio device not applied at startup — The selected master and cue output
    devices are now applied when mesh-player launches. Previously, both outputs
    used the system default until the user manually toggled the device selection
    in Settings.

  • NixOS cage restart racing to login TTY — The cage-tty1 systemd unit
    now sets restartIfChanged = false, preventing nixos-rebuild's activation
    phase from issuing an untimely restart. After nixos-rebuild fully settles,
    mesh-update.service restarts cage cleanly via ExecStartPost. An explicit
    Conflicts=autovt@tty1.service is added as belt-and-suspenders against
    logind's on-demand VT activation.