🎵Play your favourite music right into your terminal🎵
!!! In Progress !!!
This proeject uses following required libraries:
- Simple and Fast Multimedia - For audio support
- CLI11 - For command line flag parsing
- FTXUI - For creating terminal user interface
-
Play Music:
You can play a single track or multiple music files.
Command:
jambox play -p [path to the music file(s)]
Example:
jambox play -p ../assets/sample.ogg ../assets/sample.mp3
-
Repeat Your Music:
Specify the number of times you'd like the music to repeat. By default, the track will play once.
Command:
jambox play -p [path to the audio file(s)] -l [number of repeats]
Example:
jambox play -p ../assets/sample.ogg ../assets/sample.mp3 -l 3
-
Shuffle Your Playlist:
Shuffle the playlist to play tracks in random order.
Command:
jambox play -p [path to the audio file(s)] --shuffle
Example:
jambox play -p ../assets/sample.wav --shuffle
-
Directory Play
Play all audio files in a directory. -
Playlist Support
Play a playlist. -
Playlist Management
a. Create a new playlist.
b. Add songs to a playlist.
c. Remove songs from a playlist.
d. Delete one or more playlists.
e. List available playlists.
f. List all songs in a specific playlist.
-
TUI support An interactive terminal user interface to play your favourite tracks and playlists.
The JamBox TUI will be divided into four components:
- Playlists: List of available playlists.
- Music Names: Display currently playing song and queue.
- Keyboard Shortcuts: Quick glance to common commands.
- Music Player: Basic UI for playback.
Below is a basic design outline of the terminal interface:
Design created using Excalidraw.
Prerequisites:
- CMake (version 3.1 or higher)
- C++ compiler that supports C++11 or higher (e.g., GCC, Clang)
-
Clone the repository.
git clone https://github.com/your-username/JamBox.git cd JamBox
-
Create a build directory.
mkdir build && cd build
-
Build the application.
sh cmake .. make
-
Run the application.
./jambox [options]
For example:./jambox --help
You can use sample audio from the assets directory to test the application. Credits for sample audio: file-examples
That's great if you want to contribute! Please take a look at this project's CONTRIBUTING GUIDELINES and feel free to raise your PR!
This project is licensed under the MIT License. See the LICENSE file for more details.