A Glyph composition player written with the Qt6 framework in C++ that plays Glyph compositions from Nothing Phones.
GlyphVisualizer.Demo.mp4
- β What is this? Why would I need that?
- π Disclaimer
- π¦Ί Need help?
- π Roadmap
- π How to use
- π₯ Installation
- π§ Compilation
βοΈ Troubleshooting
This is a tool that is meant to be used in combination with my custom-nothing-glyph-tools scripts (GlyphTranslator, GlyphModder). When you create a custom ringtone or notification tone with these scripts, you want to test them as often as possible. You can use this tool to visualize your composition and rapidly iterate on it - no file transfer to your phone is needed.
And apart from that, you can use it if you want to view the composition without having access to a Nothing Phone.
Caution
The GlyphVisualizer version 1.1.0 and below does NOT work properly with the new v1-Glyph Format!
This software is provided as-is without any warranty. I and all other contributors are not responsible for any damage, misuse or other kind of physical or mental damage that results from the use of this software. This repo is in no way, shape or form affiliated with Nothing Technology Limited (NOTHING).
If you need help, look at the Troubleshooting chapter. If this does not help either feel free to use the Discussion feature on GitHub or reach out to me on Discord: @sebiai
You can find the full roadmap here.
Only the composition itself is needed:
- Open GlyphVisualizer
- Go to File->Open Composition OR press CTRL + O
- Make sure Audio file (ogg) is selected
- Select your composition and hit Open
This mode is for composition creators which use the custom-nothing-glyph-tools:
- Export your Audio from Audacity with the opus codec and change the extension from
.opus
to.ogg
(Make sure that you show File name extensions on Windows!) - Export your Label file from Audacity
- Use the GlyphTranslator.py script to get the
.glypha
file - Open GlyphVisualizer
- Go to File->Open Composition OR press CTRL + O
- Make sure Audio file (ogg) + Light data file (glypha) is selected
- Select your Audio, your
.glypha
file and hit Open
Tip
If your Audio file and your .glypha
file are
- in the same directory and
- have the same name
then GlyphVisualizer will automatically fill in the path for the .glypha
file.
This mode is not implemented yet. Please wait for an update.
- Download the latest portable version (
GlyphVisualizer-*_windows-x64-portable.zip
) from the latest release. - (Optional) Verify file integrity by executing this in PowerShell:
CertUtil -hashfile GlyphVisualizer_windows-x64.zip SHA256
. Compare that output with theGlyphVisualizer-*_windows-x64-portable.zip.sha256.txt
sha256 hash file. If they match, you are good. - Extract the zip file
- Install
vc_redist.x64.exe
which is inside the zip - Run
GlyphVisualizer.exe
- Download the latest version (
GlyphVisualizer-*_linux-ubuntu-x64.AppImage
) from the latest release. - (Optional) Verify file integrity by downloading
GlyphVisualizer-*_linux-ubuntu-x64.AppImage.sha256
to the same directory as the AppImage and runningshasum -a 256 -c ./GlyphVisualizer-*_linux-ubuntu-x64.AppImage.sha256
. If it outputs 'OK', you are good. - Install dependencies for AppImages:
sudo apt install -y libfuse2*
- Make the AppImage executable:
chmod +x ./GlyphVisualizer-*_linux-ubuntu-x64.AppImage
- Run the AppImage - you can use AppImageLauncher to update and integrate the application into your dekstop environment.
- Download the latest version (
GlyphVisualizer-*_macOS-12-x64.dmg
) from the latest release. - (Optional) Verify file integrity by downloading
GlyphVisualizer-*_macOS-12-x64.dmg.sha256
to the same directory as the AppImage and runningshasum -a 256 -c ./GlyphVisualizer-*_macOS-12-x64.dmg.sha256
. If it outputs 'OK', you are good. - Run the application
You can use the Qt Online Installer to install Qt, Ninja, CMake and a C++ compiler
- Qt 6.6.0
- Ninja
- CMake
- A compiler like g++ or MSVC depending on your OS
- TagLib 2.0 without ZLIB
Clone the repo
git clone https://github.com/SebiAi/GlyphVisualizer.git
cd GlyphVisualizer
Set DCMAKE_PREFIX_PATH
to the Qt location and build the application (This command assumes that the libraries like TagLib are properly installed and can be found by CMake)
cmake -G Ninja "-DCMAKE_PREFIX_PATH=/path/to/qt" "-DCMAKE_BUILD_TYPE:STRING=Release" -S . -B build && cmake --build build --config Release
The built application is now in the build
directory.
Warning
The built application might not open right out of the box because dynamically linked libraries are not available without proper setup.
See π¦ Package up to fix that.
The application itself may not execute because it is not finding the linked libraries. Packaging guarantees that the application finds them and runs as expected.
Move the application to its own directory
mkdir GlyphVisualizer-main_windows-x64-portable
move build/GlyphVisualizer GlyphVisualizer-main_windows-x64-portable
Copy the built TagLib dll into the directory
copy C:\path\to\tag.dll GlyphVisualizer-main_windows-x64-portable
Use windeployqt
windeployqt --release GlyphVisualizer-main_windows-x64-portable\GlyphVisualizer.exe
The directory GlyphVisualizer-main_windows-x64-portable
now contains the application and all its dynamic dependencies. Can be zip'ed up and transferred to other Windows machines.
Download dependencies (linuxdeploy, libfuse2, libxcb-cursor0)
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-plugin-appimage-x86_64.AppImage
sudo apt install -y libfuse2 libxcb-cursor0
Set QMAKE
to the qt qmake executable and use linuxdeploy
QMAKE="/path/to/my/qmake" LDAI_VERSION="main" LDAI_OUTPUT="GlyphVisualizer-main_linux-ubuntu-x64.AppImage" ./linuxdeploy-x86_64.AppImage --executable "build/GlyphVisualizer" --desktop-file "deploy/linux/AppImage/com.sebiai.GlyphVisualizer.desktop" --icon-file "deploy/linux/AppImage/GlyphVisualizer.png" --plugin qt --appdir AppDir --output appimage
You now have GlyphVisualizer-main_linux-ubuntu-x64.AppImage
, which can be transferred to other Ubuntu-based distributions.
Navigate to the build folder
cd build
Create the directory and copy the built TagLib into the directory
mkdir GlyphVisualizer.app/Contents/Frameworks/
copy /path/to/libtag.2.dylib GlyphVisualizer.app/Contents/Frameworks/
Use macdeployqt
macdeployqt GlyphVisualizer.app -dmg
Rename
mv GlyphVisualizer.dmg GlyphVisualizer-main_macOS-12-x64.dmg
You now have GlyphVisualizer-main_macOS-12-x64.dmg
, which can be transferred to other MacOS machines.
GlyphVisualizer.exe - System Error |
---|
If you get the error popup above, you need to install the Microsoft Visual C++ Redistributable, which is shipped alongside GlyphVisualizer. Please execute vc_redist.x64.exe
to install it.
Important
This also applies if the missing dll is one of the following:
- MSVCP140.dll
- VCRUNTIME140_1.dll
- VCRUNTIME140.dll