A modern audio player built with C++ featuring real-time audio visualization, spatial audio, and advanced audio effects.
- 🎵 Support for multiple audio formats (MP3, WAV, FLAC, etc.)
- 📊 Real-time audio visualization with frequency analysis
- 🔊 Spatial audio positioning with 3D sound placement
- 🎛️ Advanced audio effects:
- Bass and treble control
- Pitch shifting
- Volume normalization
- Fun presets (Chipmunk mode, Slowed mode)
- 🎯 Precise seek control with interactive progress bar
- 🔄 Repeat and shuffle modes
- 📝 Playlist management
- ⏯️ Basic controls (play, pause, stop, next, previous)
- 🎨 Modern, clean interface using Dear ImGui
- 📱 Responsive layout
- 🌈 Real-time audio visualization with peak indicators
- 🎮 Interactive spatial audio control panel
- 📁 Built-in file browser
- 🎧 High-quality audio processing using OpenAL-Soft
- 🔄 Real-time audio streaming
- 🧮 FFT-based audio analysis
- 💫 Smooth audio transitions
- Windows 10/11
- Visual Studio 2022
- vcpkg package manager
- C++20 or later
- Dear ImGui (with docking branch, this will also be installed along hello-imgui)
- OpenAL-Soft
- libsndfile
- Hello-ImGui
- Clone the repository:
git clone https://github.com/AlexMollard/Fly
cd Fly
- Install vcpkg if you haven't already:
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
- Integrate vcpkg with Visual Studio:
.\vcpkg integrate install
-
Open
Fly.sln
in Visual Studio 2022 -
Build the solution (F5) Note: The first build may take a while as vcpkg downloads and builds the dependencies for you.
- Launch the application
- Click the "+" button to add audio files
- Use the playback controls to manage your music
- Experiment with audio effects and spatial positioning
- Enjoy the real-time visualization!
- Volume: Adjust the overall playback volume
- Bass: Control low-frequency response (50Hz - 2000Hz)
- Treble: Control high-frequency response (2000Hz - 20000Hz)
- Pitch: Adjust playback speed while maintaining pitch
- Spatial Audio: Position the audio source in 3D space
- OpenAL-Soft team for the audio engine
- Dear ImGui team for the GUI framework
- libsndfile team for audio file handling