Compare commits

...

2 Commits

17 changed files with 127 additions and 19 deletions

9
.gitattributes vendored Normal file
View File

@@ -0,0 +1,9 @@
* text=auto eol=lf
/.gitignore export-ignore
/.gitattributes export-ignore
*.mp3 filter=lfs diff=lfs merge=lfs -text
assets/bin/** filter=lfs diff=lfs merge=lfs -text
assets/bin/**/*.env -filter -diff -merge
assets/bin/**/*.txt -filter -diff -merge

1
.gitignore vendored
View File

@@ -3,6 +3,7 @@
debug/ debug/
target/ target/
assets/.cache
Cargo.lock Cargo.lock

View File

@@ -6,17 +6,38 @@
```terminaloutput ```terminaloutput
assets/ assets/
config.(json|toml) config.(json|toml)
songs/ bin/
my_song/ x86_64/
my_song.mp3 aarch64/
descriptor.(json|toml) songs/
intro/ my_song/
MrNewVegas_N.mp3 (optional) my_song.mp3
outro/ descriptor.(json|toml)
MrNewVegas_N.mp3 (optional) intro/
generic/ Intro_MrNewVegas_my_song.mp3 (optional)
MrNewVegas_N.mp3 generic/
intro/
Intro_MrNewVegas_N.mp3
news/
story_N/
story.toml (ignored, metadata)
Story_MrNewVegas_N.mp3
Story_Guest_N.mp3
.cache/ (automatically generated)
songs/
my_song/
song.pcm (f32 pcm)
intro.pcm (f32 pcm)
cache.json
generic/
intro/
Intro_MrNewVegas_N.pcm (f32 pcm)
Intro_MrNewVegas_N.cache.json
news/
story_N/
part_N.pcm (f32 pcm)
cache.json
``` ```
--- ---
@@ -33,11 +54,23 @@ assets/
"settings": { "settings": {
"weight": 1.0, "weight": 1.0,
"volume": 1.0, "volume": 1.0,
"crossfade": 2.0 // in seconds "crossfade": 2.0, // in seconds
"weights": {
"news": {
"chance": 0.2
},
"genre": {
"floor": 0.55,
"recover_after": 3.0
},
"composite": {
"floor": 0.05,
"recover_after": 5.0
}
}
}, },
"rules": { "rules": {
"shuffle_mode": "weighted", // options: "weighted", "strict_random" "shuffle_mode": "weighted", // options: "weighted", "strict_random"
"max_same_genre_in_row": 2
} }
} }
@@ -55,10 +88,17 @@ temp_directory = "temp"
weight = 1.0 weight = 1.0
volume = 1.0 volume = 1.0
crossfade = 2.0 # in seconds crossfade = 2.0 # in seconds
[settings.weights.news]
chance = 0.2
[settings.weights.genre]
floor = 0.55
recover_after = 3.0
[settings.weights.composite]
floor = 0.05
recover_after = 5.0
[rules] [rules]
shuffle_mode = "weighted" # "weighted", "strict_random" shuffle_mode = "weighted" # "weighted", "strict_random"
max_same_genre_in_row = 2
``` ```
--- ---
@@ -70,8 +110,7 @@ max_same_genre_in_row = 2
"artist": "Kay Kyser", "artist": "Kay Kyser",
"tags": ["orchestra", "swing", "jazz"], "tags": ["orchestra", "swing", "jazz"],
"genre": ["swing", "jazz"], "genre": ["swing", "jazz"],
"intro": false, "intro": true,
"outro": false,
"weight": 1.0, // optional "weight": 1.0, // optional
"volume": 1.0, // optional "volume": 1.0, // optional
} }
@@ -83,8 +122,7 @@ title = "[I Got Spurs That] Jingle, Jangle, Jingle"
artist = "Kay Kyser" artist = "Kay Kyser"
tags = ["orchestra", "swing", "jazz"] tags = ["orchestra", "swing", "jazz"]
genre = ["swing", "jazz"] genre = ["swing", "jazz"]
intro = false intro = true
outro = false
weight = 1.0 # optional weight = 1.0 # optional
volume = 1.0 # optional volume = 1.0 # optional
``` ```

4
assets/bin/aarch64/.env Normal file
View File

@@ -0,0 +1,4 @@
LOCAL_SONGS_DIR=../../../songs
LOCAL_BIN_DIR=..
ARCH_AWARE=true
ARCH_MAP=amd:x84_64,amd64:x86_64,arm64:aarch64

BIN
assets/bin/aarch64/add_song (Stored with Git LFS) Executable file

Binary file not shown.

BIN
assets/bin/aarch64/ffmpeg (Stored with Git LFS) Executable file

Binary file not shown.

BIN
assets/bin/aarch64/ffplay (Stored with Git LFS) Executable file

Binary file not shown.

BIN
assets/bin/aarch64/ffprobe (Stored with Git LFS) Executable file

Binary file not shown.

BIN
assets/bin/aarch64/ogg_to_mp3 (Stored with Git LFS) Executable file

Binary file not shown.

View File

@@ -0,0 +1,11 @@
LGPL-3.0
ffmpeg, ffplay, ffprobe
https://github.com/BtbN/FFmpeg-Builds/releases/tag/autobuild-2026-02-18-13-03
https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n7.1-latest-linux64-lgpl-7.1.tar.xz
sha256:5ec371abbf6da81fa0a7dfe013035754fadf77f8206b93cb784ec582b0870607
LGPL-3.0
add_song
locally compiled (arm64), golang
sha256:ed6b00a4e353410ab01658a2c976a6420f2e0a8cc03a6e3e03f6eddf0d3faf0a

4
assets/bin/x86_64/.env Normal file
View File

@@ -0,0 +1,4 @@
LOCAL_SONGS_DIR=../../../songs
LOCAL_BIN_DIR=..
ARCH_AWARE=true
ARCH_MAP=amd:x84_64,amd64:x86_64,arm64:aarch64

BIN
assets/bin/x86_64/add_song (Stored with Git LFS) Executable file

Binary file not shown.

BIN
assets/bin/x86_64/ffmpeg (Stored with Git LFS) Executable file

Binary file not shown.

BIN
assets/bin/x86_64/ffplay (Stored with Git LFS) Executable file

Binary file not shown.

BIN
assets/bin/x86_64/ffprobe (Stored with Git LFS) Executable file

Binary file not shown.

BIN
assets/bin/x86_64/ogg_to_mp3 (Stored with Git LFS) Executable file

Binary file not shown.

View File

@@ -0,0 +1,11 @@
LGPL-3.0
ffmpeg, ffplay, ffprobe
https://github.com/BtbN/FFmpeg-Builds/releases/tag/autobuild-2026-02-18-13-03
https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n7.1-latest-linux64-lgpl-7.1.tar.xz
sha256:5ec371abbf6da81fa0a7dfe013035754fadf77f8206b93cb784ec582b0870607
LGPL-3.0
add_song
locally compiled (amd64), golang
sha256:c732e55bc0869b9b2ed43db16ef951322c63288b4f63b29367d8b309a1cb6837