Skip to content

Aleks-Levet/better-nothing-music-visualizer

Repository files navigation

FireBetter Nothing Music Visualizer

Get it on GitHub

NEW LICENCE, PLEASE READ IT

🌐 Read this in other languages:

🇮🇳 हिन्दी 🇮🇳 Marathi 🇹🇷 Türkçe

Partying Face The Android App is here!

We have successfully moved from the simple Python script to a powerful Android app! It grabs the live audio stream from your device using Media Projection and processes it directly into the glyphs. This means you can visualize music from Spotify, YouTube Music, and basically any other app without manual processing! No more local files only!

Thinking Face Why does this exist?

For a lot of people (including me), the stock Glyph Music Visualiastion provided by Nothing feels random.
Even if it technically isn’t, the visual response to music just isn’t very obvious. On top of that, the feature isn’t really using the full potential of the Glyph Interface. So that’s why I made my own music visualizer.

⚖ Stock vs Better Music Visualizer

Feature Nothing Stock Better Music Visualizer
Light levels ~2-bit depth (3 light levels) 12-bit depth (4096 light levels)
Frame Rate ~25 FPS 60 FPS
Precision Feels random, it's hard to acually see how it's synced Uses FFT analysis to precisely determine the intensity of each light
Zones Standard, full physical glyphs are used Each glyph segment and sub-zone is used and controlled independently
Visualisation method Real-time only Realtime with down to 20ms latency, or pre-processed audio files

See the difference in action! Click here to easily browse our video demos!

📲 Supported Nothing Phone Models

Currently these models are supported:

  • Nothing phone (1)
    • Needs glyph debug mode ON for the app, set through an ADB command: adb shell settings put global nt_glyph_interface_debug_enable 1. This will be fixed once Nothing gives us their API key.
  • Nothing phone (2)
  • Nothing phone (2a)
  • Nothing phone (2a plus)
  • Nothing phone (3a)
  • Nothing phone (3a pro)
  • Nothing Phone (4a)

partial support:

  • Nothing Phone (4a) pro
  • Nothing phone (3)

⚙ How it works (technically)

  • A high quality audio stream is captured
  • FFT (Fast Fourier Transform) is used to analyze frequencies in a 20 ms window for each 16.666 ms frame (60 FPS), making the visualization more accurate
  • Frequency ranges for each glyph zone are defined in zones.config and are fully customizable.
  • The brightness of each glyph is defined by the peak magnitude found in its assigned frequency range
    This measures how loud different frequency “zones” are
  • Downward-only smoothing is applied to make the animation smoother while preserving responsiveness (this is the secret sauce)
  • Then it's ready to be displayed on the glyphs!

🛠️ Presets

The visualizer's behavior, from frequency ranges to animation smoothing, is entirely controlled by the zones.config file. Whether you want to tweak existing presets or add support for a new phone model, you can find everything you need in our configuration guide.

📖 How to use the App?

  1. Download the latest APK from the releases.
  2. Grant Permissions: The app needs Screen Capture (Media Projection) and Notification access.
  3. Start Visualizing: Hit the "Start" button and play music from any app!
  4. Adjust Latency: If the lights aren't perfectly synced with your Bluetooth speaker or headphones, use the Audio tab to add or remove delay.
  5. Change Presets: Explore different visualization styles in the Glyphs tab, and tune the values to your liking!

📖 How to use the python script?

We made a detailed wiki page which explains the installation, usage, configuration files in detail and a troubleshooting section. You can also find out how to make new presets(not yet tho). Just click here to see how to use musicViz.py as a python script. You know what's cool? You can convert an unlimited number of files in bulk without any trouble!

Handshake Join our community

You want to talk or discuss? Bugs, feature requests? Feel free to jump in and join us in the official discord thread in the Nothing server!

🏗️ Contributing

Come and help us! Contributions are very welcome! You can:

  • Open issues
  • Submit pull requests
  • Suggest improvements
  • Experiment with new visualization ideas
  • Create new presets
  • Disscuss with the developpers

🔒 Security

The link to the VirusTotal scan can be found here:
https://www.virustotal.com/gui/url/c92c1ff82b56eb60bfd1e159592d09f949f0ea2d195e01f7f5adbef0e0b0385b?nocache=1

Copyright Credits:

Here are the people involved in this project:


Aleks-Levet
Founder, Coordinator & Developer
Main idea and owner.

rKyzen
(Shivank Dan)
Android App Developer
Implemented the real-time music stream.

Oliver Lebaigue
Android Developer Enhancing the app + various nice additions

Nicouschulas
Wiki & Documentation
Readme & Wiki enhancements.

SebiAi
Glyph Specialist
Glyphmodder and glyph related help.

Earendel
Documentation
Readme enhancements.

あけ なるかみ
(Luke20YT)
Integrator
Creating a Music app with an integration with this script.

Interlastic
Tools
Discord Bot to try the script easily (deprecated).

StarStar History

Star History Chart

Laptop The Developers


Aleks-Levet
Founder, Coordinator & Developer
Main idea and owner.

rKyzen
(Shivank Dan)
Android App Developer
Implemented the real-time music stream.

Oliver Lebaigue
Core Developer Enhancing the app + various nice additions