Skip to content

Earendel-lab/better-nothing-music-visualizer

 
 

Repository files navigation

FireBetter Nothing Music Visualizer

Partying Face Important Announcement

I'm currently working with a developer to make an app, a special app that grabs the live audio stream from the android device and directly processes it into the glyphs. It will use the media projection feature, which sounds like a scary permission, but that's the only way to grab a high-quality audio stream from every app. that also means that you'll be able to visualize music playing through spotify, youtube music, and basically any music app you want, which means you don't have to manually process each file or only use local files! So yeah, we're moving from the simple Python script to a nice android app, so it will be way easier to use our algorithm!

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 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)
  • Nothing phone (2)
  • Nothing phone (2a)
  • Nothing phone (2a plus)
  • Nothing phone (3)
  • Nothing phone (3a)
  • Nothing phone (3a pro)
  • Nothing phone (3) (beta, not good yet)

Coming soon:

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

⁉ What does this do ?

musicViz.py takes an audio file (such as .mp3, .m4a, or .ogg), generates a .nglyph file containing the Glyph animations, then runs the generated file through SebiAi’s GlyphModder to create a better music visualisation on Nothing phones! It then outputs a glyphed OGG file for playback in Glyph Composer, Glyphify or other glyph ringtone players. (A proper Nothing glyph music player app is in the works by the way!)

⚙ How it works (technically)

  • 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 can be 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
  • A .nglyph file is generated containing all brightness data
    (see the NGlyph Format)
  • SebiAi’s GlyphModder.py converts the .nglyph file into a glyphed .ogg ringtone playable on Nothing Phones, containing both:
    • The audio
    • The synchronized Glyph animation

📖 How to use?

The usage is pretty simple and straightforward. Nevertheless, 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. 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!

Musical Notes Our Music App (coming soon):

We are also working on a potential Music Player App that can easily run the script on any audio file for you! The best part? It's very simple to use, you just need your phone and don't need to process it manually! (this is different than what you can see at the top of the readme file.)

Planned features of the app:

  • Nothing aesthetic
  • simple and fast
  • Switch between multiple music visualisation presets with 2 taps
  • fully offline (on device processing)
  • Intuitive

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 and coordinator, main idea, owner)
  • Nicouschulas (Readme & Wiki enhancements)
  • {Insert link of the dev helping me make the realtime app}
  • SebiAi (Glyphmodder and glyph related help)
  • Earnedel-lab (Readme enhancements)
  • あけ なるかみ (Dev making a Music app with an integration with this script)
  • Interlastic (Discord Bot to try the script easily) (deprecated)

Star Star History

Star History

About

This script should be used in conjunction with SebiAi's glyph tools to have better music visualization on nothing phones. Because the one that nothing made is not that good after all.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 34.8%
  • HTML 30.2%
  • Java 25.0%
  • JavaScript 10.0%