solorice/config/spicetify/CustomApps/eternal-jukebox/README.md
Kristofers Solo a42ded1119 Use dotter
2024-08-28 09:02:07 +03:00

100 lines
4.2 KiB
Markdown

# The Eternal Jukebox
For when your favorite song just isn't long enough.
![preview](https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/eternal-jukebox/preview.png)
A rewrite of the [Infinite / Eternal Jukebox](https://eternalbox.dev/jukebox_index.html) for Spicetify.
It finds pathways through similar segments of the song and plays a never-ending and ever changing version of the song.
> **Warning**
> The custom app is still in **beta**.
> See [known issues](#known-issues) and [upcoming features](#upcoming-features).
## Auto Installation (Linux)
```
sh <(curl -s https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/eternal-jukebox/src/install.sh)
```
## Manual Installation
1. Run `spicetify config-dir` to open the spicetify folder.
2. Go to the `CustomApps` folder.
3. Create a `eternal-jukebox` folder.
4. Download the custom app files as a zip from [here](https://github.com/Pithaya/spicetify-apps-dist/archive/refs/heads/dist/eternal-jukebox.zip).
5. Extract the zip and put the files inside the folder you created in step 3.
Then, run the following commands:
```sh
spicetify config custom_apps eternal-jukebox
spicetify apply
```
## Usage
A new "infinity" button allows you to enable and disable the jukebox. As long as the jukebox is enabled, the current song will play endlessly.
![button](https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/eternal-jukebox/docs/button.JPG)
Changing the current song will automatically play it through the jukebox.
![sidebar](https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/eternal-jukebox/docs/sidebar.JPG)
The custom app allows you to see a visualization of the jukebox's progress through the song.
![visualization](https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/eternal-jukebox/docs/visualization.png)
The circle is made out of the different beats of the song. Branches, or edges are the path linking similar beats together.
Holding the `SHIFT` key allows you to keep repeating a part of the song by "jumping" through edges linking the same beats.
Clicking on a beat will seek to that part of the song.
Below the graph you will find some stats about the current song:
- **Total beats**: How many beats were played.
- **Current branch change**: The current percentage of chance to follow an edge when playing a beat.
- **Listen time**: How long you've been listening to the song.
### Settings
The settings button on the top right allows you to tune the jukebox.
![settings](https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/eternal-jukebox/docs/settings.png)
- **Branch similarity threshold**: The maximum allowed "distance" between two branches. The higher it is, the more branches will be generated.
- **Branch probability range**: The minimum and maximum percentage of chance to use a branch each beat. The chance will start at the minimum value, and will increase by the **Branch probability ramp-up speed** value for every beat where it is not branching, until it reaches the maximum value.
- **Branch probability ramp-up speed**: How fast the **Branch probability chance** value should increase.
- **Loop extension optimization**: If checked, will try to add the longest backward branch it can at the last branching beat.
- **Allow only reverse branches**: If checked, will only add branches going back in the song.
- **Allow only long branches**: If checked, will only add long branches. A branch is considered long if it covers at least a fifth of the song's length.
- **Remove sequential branches**: If checked, will remove consecutive branches of the same length.
The reset button can be used to reset the settings to the default values.
## Known issues
- Audio lag when jumping between parts of the song
- Jukebox "freezing" and getting out of sync
- Songs getting stuck in short loops due to issues with the graph generation
## Upcoming features
- More graph interactivity
## Uninstall
1. Run `spicetify config-dir` to open the spicetify folder
2. Go to the `CustomApps` folder
3. Delete the `eternal-jukebox` folder
Then, run the following commands:
```sh
spicetify config custom_apps eternal-jukebox-
spicetify apply
```