ShizuStore

Glyph Barty

Link2011-Act2

2.1.0-Release · GitHub

Download APK
Vendor-specific Android 13+ 1 month ago MIT
15 ShizuStore
1.4k GitHub
35 Stars
2 MB Size

More about this app

Customizable Glyph visualizer for Nothing Phone with music sync, Quick Settings toggle, and charging status display

English 日本語

Glyph Barty

A customizable Glyph visualizer with support for a wide range of Nothing Phone models.

Overview

Up until the Phone (3a), Nothing smartphones had an official feature that allowed the Glyph lights to pulse in sync with music.

However, this feature was removed in later models. I also wanted more predictable and customizable visualization patterns than the original implementation provided.

To solve this, I created an alternative Glyph visualizer that works on unsupported devices like the Phone (3) and offers multiple visualization styles and customization options.

Features

  • Real-time Visualization: The Glyph Interface lights up in sync with your currently playing music.
  • Quick Settings Integration: Easily toggle the feature ON/OFF via a Quick Settings tile.
    • It feels just like a native OS feature!
  • Extra features (e.g. displaying charging status on the Glyph Interface)
  • No Screen Recording Required: Audio visualization works without MediaProjection or screen-capture permissions.

Supported Devices

  • Nothing Phone (2)
  • Nothing Phone (2a)
  • Nothing Phone (2a) Plus
  • Nothing Phone (3a)
  • Nothing Phone (3a) Pro
  • Nothing Phone (3)
  • Nothing Phone (4b)
  • Nothing Phone (4a)
  • Nothing Phone (4a) Pro

Supported Devices (Conditional)

  • Nothing Phone (1)
    • The Glyph Interface debug mode must be enabled. You can do this by running the ADB command adb shell settings put global nt_glyph_interface_debug_enable 1, or automatically from within the app if you use Shizuku.

Compatible with almost all Nothing Phone models.

Note: Phone (3a) Lite is not supported as the SDK has not been released.

How to Use

  1. Download and install the latest APK from the Releases section.
  2. Grant the "Record Audio" permission when prompted by the app.
  3. Tap the Start button and play your favorite music.
  4. Select your preferred lighting pattern.
  5. Adjust the parameters to customize the movement to your liking.

Contributing & Support

If you encounter any issues, please open an Issue or submit a Pull Request.

Please note that I am a student developing this as a hobby, so I may not be able to respond immediately. Your patience is appreciated!

License

This project is licensed under the MIT License. Feel free to modify and use it as you wish.

Screenshots

UI mode: Nothing-like

Screenshot_20260827-004135 Screenshot_20260827-004137 Screenshot_20260827-004141

UI mode: Material 3

Screenshot_20260827-010432 Screenshot_20260827-010434 Screenshot_20260827-010439
Close

How Shizuku is used

Can enable Phone (1) Glyph debug mode via Shizuku with `settings put global nt_glyph_interface_debug_enable 1`

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku is used only to enable the Glyph Interface debug switch on Nothing Phone (1) so Glyph lights can work.

  • Enable Glyph debug mode: On Nothing Phone (1) the user can turn on Glyph Interface debug mode from the enable button in the app, automatically on start when auto enable is switched on in settings, and when starting visualization from the Quick Settings tile, using the settings put global nt_glyph_interface_debug_enable 1 shell command through Shizuku.

Android APIs or commands used

  • settings put global nt_glyph_interface_debug_enable 1

Notable details

Limited to Nothing Phone (1). The system turns the debug switch off again after about 48 hours, so it may need to be re-enabled. The same value can also be set manually over ADB without Shizuku.

Close

Changelog

What's new for version 2.1.0-Release

Build: Picora-v2.1.0-260903-0013-35c

v2.1.0-Release "Picora"

This update is pretty close to a complete overhaul of the meter rendering engine — honestly, you could probably call it a redesign.

I think the meters look a lot better now. If you don't like the changes, sorry about that.


Completely unrelated, but I spent way too long deciding on the codename. I eventually went with Picora basically because the previous one was Fricle.

What's new in 2.1.0

🔦 Glyph behavior and visuals

  • Significantly improved the overall feel of Glyph animations

    • The lights should flicker unnecessarily much less often and move more smoothly
  • Redesigned the behavior of Classic mode and "Light up the other Glyphs too" to reduce sudden flashing and flickering

  • Added Phone (3a) series support for "Light up the other Glyphs too"

  • Improved Classic mode on Phone (1)

    • The center C1 segment is now treated as four separate segments
  • Finished tuning the new Adaptive Auto Scale system and promoted it to the default auto-scaling method

    • Significantly improved issues with the previous auto-scaling system, such as overly aggressive or unnatural fluctuations
    • The old auto-scaling method can still be enabled from the Display settings
    • Tuning was done individually for each device and each pattern
    • This and all the related tuning took me five days. Seriously, please try it
  • Added a new Adaptive Auto Scale parameter called "Display Dynamics"

    • You can adjust how aggressively the meter moves from the Tuning tab
    • This parameter is stored separately for each pattern

🤩 Extras

  • Added a new "Extras" section

    • You can access it from the menu in the top-left corner of the app
    • More features unrelated to the visualizer may be added here in the future
  • Added a Glyph battery meter

    • Supports Phone (2a), (2a) Plus, (3a), (3a) Pro, (4a), and (4b)
    • This brings back the battery level indicator normally available on higher-end devices, showing the current battery level using the Glyph Interface while charging
    • It appears when charging starts, or when you shake the phone while it is lying with the back side facing up, just like the official feature

⚙️ Settings

  • Added support for syncing with the Nothing OS Glyph Interface setting

    • Glyph Barty can now stop lighting up when the Glyph Interface is disabled in Nothing OS
    • Of course, scheduled Glyph shutoff is supported too. This can be enabled from Settings
  • Cleaned up some settings that honestly felt unnecessary

🏃‍♂️ Other improvements

  • Performed a large-scale internal refactoring

  • Fixed an issue in Material 3 mode where the Stop button would not turn red while the visualizer was running


【日本語】

v2.1.0-Release "Picora"

今回のアプデはメーターの表示エンジンの総改修に近いです、なんなら再設計かもしれない メーターの見た目はかなり良くなったと思います、気に入らなければごめんなさい
超どうでもいいけど、コードネームめっちゃ迷ったんだよなぁ、結局前回がフリックルだったからってことでピコラにしたけど

2.1.0での更新

🔦 Glyphの動作・表示

  • Glyphの動作感を大幅に改善

    • ライトが無闇にチカチカしにくくなり、より滑らかに動作するようになりました
  • Classicモードおよび「他のGlyphも点灯させる」の動作を再設計し、急な明滅やちらつきを軽減

  • 「他のGlyphも点灯させる」機能をPhone (3a)シリーズにも対応

  • Phone (1) のClassicモードを改善

    • 中央のC1セグメントを4分割して動作するように変更
  • 新しい「動的自動スケール」の調整が完了、標準方式に昇格

    • 従来の自動スケールで発生していた、暴れすぎたり不自然に変動したりする問題を大幅に改善
    • 旧方式の自動スケールも、「表示」タブの設定から有効にできます
    • 各機種・各パターンごとに個別に調整しています
    • これと諸々の調整に5日かけました、マジで試してみてください
  • Adaptive自動スケール向けのパラメータ、「表示ダイナミクス」を追加

    • 「調整」タブから、表示の暴れ方を調整できます
    • このパラメータはパターンごとに個別です

🤩 おまけ機能

  • 新しく「おまけ機能」を追加

    • アプリ左上のメニューからアクセスできます
    • 今後、ビジュアライザー以外の機能をここに追加していく予定です
  • Glyph バッテリー残量表示機能を追加

    • Phone (2a)、(2a) Plus、(3a)、(3a) Pro、(4a)、(4b) に対応しています
    • 上位機種に搭載されている、充電時にGlyphでバッテリー残量を表示する機能を利用できるようになります
    • 充電開始時、および背面を上にして置いている状態で端末を振った際に表示されます(公式機能と同様の動作)

⚙️ 設定

  • Nothing OS側のGlyph Interface設定との連動に対応

    • Nothing OSの設定でGlyph Interfaceを無効にした場合、Glyph Barty側も連動して消灯するようにできます
    • スケジュール機能にももちろん対応、設定から有効にできます
  • 不要な気がする設定項目の整理

🏃‍♂️ その他の改善

  • 大規模なリファクタリングを実施

  • Material 3モードにおいて、動作中に停止ボタンが赤くならない問題を修正

Close

Permissions

13 permissions requested

  • android.permission.RECORD_AUDIO
  • android.permission.MODIFY_AUDIO_SETTINGS
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK
  • android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE
  • android.permission.POST_NOTIFICATIONS
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.INTERNET
  • android.permission.REQUEST_INSTALL_PACKAGES
  • com.nothing.ketchum.permission.ENABLE
  • jp.linkserver.glyphvisualizer.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close