GoTune is a simple, cross-platform music player built with Go and the Fyne GUI toolkit. It is designed with a clean, modular architecture, making it easy to understand, extend, and maintain.
- Cross-Platform: Runs on macOS, Linux, and Windows.
- Clean Architecture: Follows the principles of Clean Architecture, promoting separation of concerns and testability.
- Event-Driven: Uses an event bus for communication between components, ensuring loose coupling.
- Audio Playback: Powered by the BASS audio library, supporting various audio formats.
- Music Library: Scan and manage your music library.
- Playlist Management: Create and manage playlists.
- Visualizers: A variety of audio visualizers to choose from.
- Go 1.25 or later
- A C compiler (GCC or Clang)
- On Linux:
libasound2-dev
-
Clone the repository:
git clone https://github.com/tejashwikalptaru/gotune.git cd gotune -
Set up the BASS audio libraries:
The BASS audio library is required for audio playback. A script is provided to download and extract the necessary files.
./scripts/setup-libs.sh
-
Build and run the application:
The
Makefileprovides convenient targets for building and running the application.make run
This will build the application and launch it. The binary will be located in the
build/directory.
- BUILD.md: Detailed instructions on how to build and run the project, including platform-specific details and troubleshooting.
- DEVELOPMENT.md: A guide for developers, covering the development workflow, testing, code quality, and architecture.
- ARCHITECTURE.md: An in-depth explanation of the project's architecture.
Contributions are welcome! Please read the CONTRIBUTING.md file for details on how to contribute to the project.
GoTune is licensed under the MIT License. See the LICENSE file for more information.
The BASS audio library is free for non-commercial use. For commercial use, you must obtain a license from Un4seen Developments.



