Skip to content

Repository files navigation

Better Nothing Music Visualizer

🌐 Read this in other languages: 🇮🇳 हिन्दी, 🇮🇳 Marathi, 🇹🇷 Türkçe, 🇸🇦 العربية

An (android) app that not only brings better music visualization on the Glyph interface/matrix of Nothing Phones, but also lets you feel your music through the haptic motor AND use the flashlight of your phone as a music visualizer!

Here's the fucking download button, use it!

(if you don't want to read the rest of the readme)

Get it on GitHub

This android app grabs the live audio stream from your device using sources such as Media Projection, your microphone, the classic Android Visualizer audio stream (not recommened), or another device running the same app, and processes it directly into the glyphs, the haptic motor, or your flashlight. This means you can visualize music from Spotify, YouTube Music, and basically any other app! It can even work on games, and also you can use the microphone to vizualise music that others play, especially at a party!

💬 Join Our Discord Server

Click the banner below to join our Discord server and connect with the community:

Discord Server

Glyph Visualisation

(Click here to see more if you have a nothing phone)

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 20 FPS (limited by the android vizualiser api) 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

Currently these Nothing Phone models are supported:

  • Nothing phone (1)
  • Nothing phone (2)
  • Nothing phone (2a)
  • Nothing phone (2a plus)
  • Nothing phone (3a)
  • Nothing phone (3a pro)
  • Nothing phone (3)
  • Nothing Phone (4a)
  • Nothing Phone (4b)
  • Nothing Phone (4a pro) Basically everything exept 3a lite, because nothing didn't provide an sdk for it.

Keep in mind that every android phone is compatible with the haptic, on-screen and flashlight visualizations.

How it works (technically)

  • Deterministic: BNMV is fully deterministic. Unlike the stock implementation (or the copycat ai slop third party apps that copy our thing) that can feel semi-random, our visualizer uses direct mathematical analysis of the audio stream to ensure every light corresponds exactly to a frequency range. This means that if you keep the same settings, the same song will result in the same light pattern.
  • A high quality audio stream is captured through the source you select
  • 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
  • For the Glyph Visualization:
    • 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!
  • For the haptic and the flashlight "visualisation":
    • Either the amplitude of the bass frequency is used to determine the brightness of the flashlight or the amplitude of the vibration motor
    • Or the derivative of the amplitude of the bass frequancies is used to detect beats, which trigger a pre-processed pattern on either the haptic motor or the flashlight.

🛠️ Presets (for glyph visualization)

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 python script? (old way to sync music to the Glyphs of Nothing Phones)

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!

📖 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. Have fun!: Explore the app and its different settings to take full advantage of it!

Handshake Join our community

You want to talk or discuss? Bugs, feature requests?

Discord 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

🔒 Privacy & Security

  • Privacy: The app only captures the audio stream to power the visualizer. No audio content or personal media is ever stored. The screen is not recorded. It can only be transmitted if you enable the broadcast mode that syncs multiple phones toghether.
  • Analytics: This app uses Google Analytics (Firebase) to collect anonymous usage statistics and crash reports. This data helps us understand how the app is used and fix any issues that occur, ultimately improving the experience for everyone.

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-pfp
Aleks Levet
Founder, Coordinator & Developer
Main idea and owner of the project. Developer.
aleks-levet-pfp
Cookie
Phone 3 compatibility
Made nice visualizer presets for the Phone (3)'s Glyph Matrix! Thank you!
Nicouschulas-pfp
Nicouschulas
Wiki & Documentation
Readme & Wiki enhancements.
sebiai-pfp
SebiAi
Glyph Specialist
Glyphmodder and glyph related help.
rkyzen-pfp
rKyzen
(Shivank Dan)
Made the first version of the app
Implemented the real-time music streaming and began the first versions of the android app before leaving the team.
earnendel-lab-pfp
Earendel
Documentation
Readme enhancements.
interlastic-pfp
Interlastic
Tools
Discord Bot to try the script easily (deprecated).
oliver-lebaigue-pfp
Oliver Lebaigue
Previous Contributor Enhanced the app + added various nice additions.

StarStar History

Star History Chart

Have fun using the app!

If you read the whole readme, congrats, it takes time to write these things! If you found typos or other problems, feel free to tell us!

About

An android app that provides better music visualization for the Glyph Interface of Nothing Phones, and that also lets you feel your music through the haptic vibration motor.

Topics

Resources

Stars

112 stars

Watchers

6 watching

Forks

Releases

Contributors

Languages