

A lightweight tool for listening to music across different platforms.
-
Play music from local files and online sources.
-
Save your favorite tracks.
-
Load favorites from files.
-
Full support for free music and streaming websites.
-
Clean and customizable interface using OpenGL (ImGui, C).
-
Drag and Drop cross platform support! Open from anywhere.
-
Archive of songs that can be instantly opened from the tool itself
-
Change the color of the app by using theme options
-
Support for Mp3, Wav formats
- Formatting
- Positioing windows -etc
- Operating System: macOS, Linux, or Windows (manual adjustments required).
- Compiler: C++17 or later.
- Build System: CMake.
Important
You need to fully setup IMGUI on your machine from the official repository before proceeding with custom builds or etc.
-
Clone the repository:
git clone https://github.com/your-repo/SXEware.git cd SXEware
-
Build the project using CMake:
mkdir build && cd build cmake .. make
-
Run the application:
- On Linux/macOS: Use the generated executable.
- On Windows: Adjust paths and dependencies manually.
-
Customize the ImGui interface to fit your needs.
By default, the application looks for music in:
/Users/yourname/Musics/Metamorphosis.wav
Modify this path in the settings or source code to change the default music directory.
Feel free to extend and modify this project to suit your needs. Contributions are welcome!
This document lists all the dependencies required for the music player project, including libraries and frameworks used for graphics, audio, and UI.
- Purpose: Creates the OpenGL window and handles user input.
- Installation:
brew install glfw # macOS (Homebrew) sudo apt install libglfw3-dev # Linux (APT) vcpkg install glfw3 # Windows (vcpkg)
- Purpose: Loads OpenGL function pointers for compatibility across platforms.
- Installation:
- Generate the loader at glad.dav1d.de
- Copy the generated files into your project.
- Purpose: Handles audio playback for
.wav
files. - Installation:
brew install openal-soft # macOS (Homebrew) sudo apt install libopenal-dev # Linux (APT) vcpkg install openal-soft # Windows (vcpkg)
- Purpose: Provides the graphical user interface.
- Installation:
- Clone the repository:
git clone https://github.com/ocornut/imgui.git
- Include necessary files in your project.
- Clone the repository:
- Purpose: Connects ImGui with OpenGL and GLFW.
- Files to include:
imgui/backends/imgui_impl_glfw.cpp
imgui/backends/imgui_impl_glfw.h
imgui/backends/imgui_impl_opengl3.cpp
imgui/backends/imgui_impl_opengl3.h
- Purpose: Handles threading (
std::thread
), atomic operations (std::atomic
), and file I/O. - Installation: Included with any modern C++ compiler.
- Purpose: Loads image files for future features like album art.
- Installation:
- Download and place
stb_image.h
from https://github.com/nothings/stb in your project.
- Download and place
- Purpose: Decodes MP3 files if support is added.
- Installation:
brew install mpg123 # macOS sudo apt install libmpg123-dev # Linux vcpkg install mpg123 # Windows
- Purpose: Additional sound support
Make sure all dependencies are installed and then build using CMake:
mkdir build && cd build
cmake ..
make -j$(nproc) # Linux/macOS
cmake --build . # Windows (MSVC)
This list covers all libraries used. Let me know if you need additional dependencies or installation details!