-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
44 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,63 @@ | ||
# LiteMus - Light Music Player written in C++ | ||
# LiteMus - Light Music Player | ||
|
||
## Fast and Interactive music player that uses SFML, ncurses, nlohmann json libraries | ||
A fast and interactive music player built with SFML, ncurses, and nlohmann json libraries in C++. | ||
|
||
### FEATURES: | ||
## Features | ||
|
||
1. Insanely fast sorting and caching system thanks to Inode data structure of filesystem and C++ libraries (lmus_cache.h) | ||
2. Ncurses library for making the beautiful TUI | ||
3. SFML for the audio API for smooth audio quality and FEATURES | ||
4. Basic song controls are implemented (play, pause, seek forward/backward, next song , prev song) | ||
### Insanely Fast | ||
|
||
![litemusreadme1](https://github.com/nots1dd/Litemus/assets/140317709/c270df7d-af84-4cf9-a0b7-b475f27a2081) | ||
![litemusreadme2](https://github.com/nots1dd/Litemus/assets/140317709/56a5010b-d71e-4a4a-ac27-0ec880970052) | ||
* Insanely fast sorting and caching system thanks to Inode data structure of filesystem and C++ libraries (lmus_cache.h) | ||
|
||
### Beautiful TUI | ||
|
||
* Ncurses library for making the beautiful TUI | ||
|
||
### Smooth Audio | ||
|
||
* SFML for the audio API for smooth audio quality and features | ||
|
||
### Basic Song Controls | ||
|
||
### BUILD: | ||
* Basic song controls are implemented (play, pause, seek forward/backward, next song, prev song) | ||
|
||
#### NOTE: This has only been tried and tested on Arch Linux 6.9 kernel (x86-64) | ||
## Demo | ||
|
||
-> Clone this repository `https://github.com/nots1dd/Litemus.git` | ||
[![Demo Video](https://github.com/nots1dd/Litemus/assets/140317709/cce9fc82-14f5-4983-bfa8-a5b714d20910)](https://github.com/nots1dd/Litemus/assets/140317709/cce9fc82-14f5-4983-bfa8-a5b714d20910) | ||
|
||
-> Install the required C++ libraries `ncurses`, `SFML`, `nlohmann-json` | ||
![litemusreadme1](https://github.com/nots1dd/Litemus/assets/140317709/c270df7d-af84-4cf9-a0b7-b475f27a2081) | ||
![litemusreadme2](https://github.com/nots1dd/Litemus/assets/140317709/56a5010b-d71e-4a4a-ac27-0ec880970052) | ||
|
||
## Build | ||
|
||
-> Then run `cmake -S .-B build/` | ||
### Note: | ||
|
||
-> Finally run `cmake --build build/` | ||
This has only been tried and tested on Arch Linux 6.9 kernel (x86-64) | ||
|
||
### Steps: | ||
|
||
1. Clone this repository: `https://github.com/nots1dd/Litemus.git` | ||
2. Install the required C++ libraries: `ncurses`, `SFML`, `nlohmann-json` | ||
3. Run `cmake -S . -B build/` | ||
4. Run `cmake --build build/` | ||
|
||
This will generate a `./build/Litemus` executable. Run it to get the Litemus experience! | ||
|
||
#### CAUTION: Running the executable might not work as there are some directories that are HARDCODED in this project. Change them to as you see fit in order for it to work. Will come up with a clean way of handling this issue in the near future. | ||
> **Important Note**: | ||
> | ||
> Change the `songsDirectory` variable in `litemus.cpp` in order for the project to work for you. | ||
> | ||
> A fix for this is coming very soon. | ||
### INSTALLATION: | ||
## Installation | ||
|
||
There is currently no means of installing this on any Linux distro other than building it from source. | ||
|
||
-> As such, if there are any issues with building Litemus from this repository in any distro, feel free to care an issue. | ||
If you encounter any issues with building Litemus from this repository in any distro, feel free to create an issue. | ||
|
||
## Future | ||
|
||
### FUTURE: | ||
1. Parsing of the cached information for song display and lyrics | ||
2. CMUS like two window system (left for artists, right for their songs sorted by album) | ||
3. Multiple windows like song display, lyrics display and litemus session details (maybe even an audio visualizer) | ||
- [ ] Have clean windows for showing session details, lyrics view | ||
- [ ] Possibly have an audio visualizer (text based) integrated | ||
- [ ] Make the code more modular and easy to read, modify | ||
- [ ] Add other audio formats (.wav, .flac) | ||
- [ ] Have custom keybinds |