Skip to content

JamBox- a terminal-based music player application

License

Notifications You must be signed in to change notification settings

DIlkhush00/JamBox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JamBox

🎵Play your favourite music right into your terminal🎵

!!! In Progress !!!

Description

This proeject uses following required libraries:

  1. Simple and Fast Multimedia - For audio support
  2. CLI11 - For command line flag parsing
  3. FTXUI - For creating terminal user interface

Available Features:

  1. 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
  2. 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
  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

Goal Features:

  1. Directory Play
    Play all audio files in a directory.

  2. Playlist Support
    Play a playlist.

  3. 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.

  4. TUI support An interactive terminal user interface to play your favourite tracks and playlists.

Goal Design

The JamBox TUI will be divided into four components:

  1. Playlists: List of available playlists.
  2. Music Names: Display currently playing song and queue.
  3. Keyboard Shortcuts: Quick glance to common commands.
  4. Music Player: Basic UI for playback.

Below is a basic design outline of the terminal interface: JamBox Design

Design created using Excalidraw.

Build and Run

Prerequisites:

  • CMake (version 3.1 or higher)
  • C++ compiler that supports C++11 or higher (e.g., GCC, Clang)

Build Instructions

  1. Clone the repository.

    git clone https://github.com/your-username/JamBox.git
    cd JamBox
  2. Create a build directory. mkdir build && cd build

  3. Build the application. sh cmake .. make

  4. 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

Contributing

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!

License

This project is licensed under the MIT License. See the LICENSE file for more details.