BNMV
Get the APK

Light that actually listens.

BNMV turns the Glyph Interface on Nothing Phones into a true spectrum analyser. Every segment follows its own slice of the song, so the kick, the vocal and the hi-hat each get their own light.

Get the APK on GitHub

V4.1, released 28 Oct. Free, open source, for Android.

The demo is synthesised in your browser. The ring runs 36 zones from a live FFT, the zone count of a Phone (3a).

Three levels of light, or four thousand.

The stock visualizer steps through about three brightness levels, twenty times a second. BNMV moves each segment through 4,096 levels at 60 frames a second. Here is one signal through both.

Stock 3 levels, 20 fps
BNMV 4,096 levels, 60 fps

A simulation built from the figures in the project README. The top row is the same signal, cut to three levels and held for 50 ms at a time.

Feature Stock BNMV
Brightness About 3 levels (2-bit) 4,096 levels (12-bit)
Frame rate 20 fps 60 fps
Analysis Feels random FFT-based and repeatable
Zones Standard glyphs Every segment and sub-zone on its own
Latency Real time only Real time at about 20 ms, or pre-processed files

From sound to light, sixty times a second.

Sound in
Spectrum, and the light each zone gets
Play it yourself

Running live on this page. Tap a pad and watch which lights answer. White bars are the smoothed zone levels and red ticks are the raw peaks, so you can see light rise at once and fall gently. The row underneath is what the 36 lights do.

  1. 1

    Capture

    It hears what you hear. Audio comes from any app through Android's screen capture, from the microphone, or from another device on your network.

  2. 2

    Analyse

    Each 16.666 ms frame gets its own FFT across a 20 ms window. The spectrum decides the light, not a guess.

  3. 3

    Map

    Every light owns a frequency band. Its brightness is the loudest peak inside that band.

  4. 4

    Decay

    Light rises at once and falls gently. Smoothing only works on the way down, so hits stay sharp and flicker fades out.

Same song, same settings, same light. Every time.

Every light has an address.

The bands live in zones.config, a plain JSON file with one line per light. Retune a band, change the fade with decay-alpha, or map a phone nobody has added yet.

Read the zones.config guide
[40, 100, "Kick Drum", 20, 80]
40 Listens from 40 Hz
100 Up to 100 Hz
"Kick Drum" A name for humans. The app ignores it.
20 Stays dark below 20%
80 Full brightness at 80%

No glyphs required.

The lights are the headline, not the whole show. Most of BNMV runs on any Android phone.

Haptics

Feel the low end in your hand. The vibration motor follows the bass or fires on detected beats.

Flashlight

The torch runs on the same beat detection as the haptics.

On screen

A visualizer in the navigation bar, light along the screen edge, or a glow at the front camera.

Broadcast

One phone listens and the rest follow. Sync several devices over Wi-Fi.

From your computer

Linux and Windows tools send desktop audio to the app across your local network.

Shortcuts

Quick Settings tiles, home-screen widgets and public intents for automation apps.

Ten Nothing Phones so far.

Documented presets run from 5 zones on Phone (4b) to 36 on Phone (3a).

Phone (3a Lite) is waiting on an SDK from Nothing.

On any other Android phone, haptics, flashlight and on-screen visualizers still work.

First light in four steps.

V4.1, released 28 Oct.

Get the APK on GitHub See every release
  1. 1 Download the latest APK from GitHub and install it.
  2. 2 Allow screen capture and notification access. The app uses them to hear your music. It doesn't record your screen.
  3. 3 Press Start, then play something from any app.
  4. 4 Lights trailing your Bluetooth speaker? Adjust the delay in the Audio tab.

What changed lately.

V4.1 28 Oct Latest

A microphone mode, Linux and Windows streaming tools, an idle breathing mode, exact values on any slider, and glyph brightness up to 150%.

V4.o 23 Aug

Renamed to BNMV with a rewritten engine. Adds Phone (4b), on-screen visualizers, multi-device sync, widgets and a stats page, in a 3.5 MB APK.

V3.2.1 9 Jun

A hotfix for the crashes in V3.2, with better haptic modes.

V3.1 17 May

A preset editor, a spectrum graph, a new beat-detection haptic engine and Quick Settings tiles.

V3.0 4 May

Haptic visualization, a real-time glyph preview, an idle pulse, and new light and dark themes.

V2.8 24 Apr

Follows your audio as it moves between Bluetooth, wired and speaker, and remembers the latency for each device.

V2.7 20 Apr

Latency presets and automatic device memory, in a 2.4 MB APK.

Read the full changelog on GitHub

It listens. It doesn't keep.

Put the song on. Turn the phone over.

Get the APK on GitHub
Now playing
Demo loop Synthesised in your browser

Scroll and it turns over. The lights on the back follow the demo.