AudioON is a lightweight, terminal-based music player written in C++ designed primarily for Windows, with experimental support for Linux. It provides a simple menu-driven interface to play .wav audio files from a predefined folder. Built using native multimedia libraries, it aims for fast, real-time playback directly from the terminal.
AudioON is built for users who want a quick and minimalistic way to play .wav files without the overhead of a full GUI music player. It uses the Windows Multimedia API (winmm.lib) on Windows to handle sound playback asynchronously, allowing users to select tracks from a list and control playback in real-time.
While Windows support is mature and stable, Linux support is experimental, relying on external command-line players such as aplay to play audio files.
- Menu-driven interface for easy song selection.
- Real-time playback of
.wavaudio files. - Loop support until the user stops the song.
- Async non-blocking audio playback.
- Add new songs by placing
.wavfiles inresources/sounds/. - Cross-platform (Windows ✅ | Linux 🐧 — support growing!)
AudioON/
├── AudioON.exe # Compiled executable (Windows)
├── include/
│ ├── AudioON.h # Class declarations for sound playback
│ └── AudioHelper.h # Helper functions for directory & file handling
├── src/
│ ├── main.cpp # Entry point, user interaction, menu
│ ├── AudioON.cpp # AudioON class implementation
│ └── AudioHelper.cpp # Directory traversal and audio file loading
├── resources/
│ ├── sounds/ # Place your .wav files here
│ └── ico/
│ ├── appicon.ico # Icon file (Windows)
│ ├── appicon.rc # Resource script
│ └── appicon.res # Compiled resource file
└── README.md
You can either build from source or directly use the precompiled installer (Windows only).
- Go to the Releases.
- Download the
AudioON-installer.exe. - Run it and follow the on-screen steps.
- Launch
AudioONfrom the installed location. - Place your
.wavfiles in theresources/sounds/folder.
Whether you're on Windows or a Linux terminal warrior, AudioON is ready for you!
-
Uses Windows Multimedia API (
winmm.lib) for audio playback. -
Playback uses
PlaySoundfunction for asynchronous sound playing. -
Linking requires
-lwinmmduring compilation. -
Supports
.wavfiles natively. -
Icon embedding via
.rcand.resresource files. -
Recommended build command (MinGW):
g++ src/*.cpp -Iinclude -o AudioON.exe -lwinmm ./AudioON.exe ```
Make sure your .wav files are placed inside the resources/sounds/ directory.
Yes, it works on Linux too!
For playback, it uses external tools like aplay to play .wav files.
-
AudioON attempts Linux compatibility.
-
Does not use native audio libraries directly.
-
Uses external tools like
aplay(from alsa-utils) for playing.wavfiles via system calls. -
Requires aplay to be installed
(sudo apt-get install alsa-utils or equivalent). -
No embedded icon support on Linux.
g++ src/*.cpp -Iinclude -o AudioON -std=c++17
./AudioONMake sure your .wav files are inside the resources/sounds/ directory.
-
Play/Pause Functionality: Currently, pause and resume controls do not work as expected. When pausing and resuming, playback restarts the song from the beginning rather than continuing from the pause point.
-
Loop Mode: Looping works but can sometimes cause brief audio glitches or restart delays depending on the platform. Also, the player stops after one song, so you have to manually press
N(next song) andP(play/pause) to continue listening. -
Linux Support: Linux support is minimal and depends heavily on external utilities. Advanced features like pause, stop, or loop might not work properly.
-
File Format: Only supports
.wavfiles. Other audio formats are not supported. -
UI: Being terminal-based, the interface is minimalistic and lacks advanced controls like volume adjustment or playlists.
-
Cross-Platform Differences: Some features (like icon embedding and asynchronous playback) are Windows-only or behave differently across operating systems.
🧪 Linux friends! If anything breaks, feel free to open an issue. Bonus points if you help fix it and earn eternal respect from fellow devs
AudioON has been a solo project so far — but now it's open to the community!
If you love terminal tools, C++, or just want to help make this player better:
- Report bugs or issues
- Suggest new features
- Improve cross-platform compatibility
- Add UI polish or sound enhancements
- Help with documentation
Fork it 🍴, star it ⭐, and send your pull requests! Let’s build something cool together. 🔧
You can find the logo inside the resources/ico/ folder.
Feel free to use it for packaging or promotions.
