diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..89a3177 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +* 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 diff --git a/.gitignore b/.gitignore index 29455a4..a6535bc 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ debug/ target/ +assets/.cache Cargo.lock diff --git a/README.md b/README.md index 3bec7bc..b14f38d 100644 --- a/README.md +++ b/README.md @@ -6,17 +6,38 @@ ```terminaloutput assets/ - config.(json|toml) - songs/ - my_song/ - my_song.mp3 - descriptor.(json|toml) - intro/ - MrNewVegas_N.mp3 (optional) - outro/ - MrNewVegas_N.mp3 (optional) - generic/ - MrNewVegas_N.mp3 + config.(json|toml) + bin/ + x86_64/ + aarch64/ + songs/ + my_song/ + my_song.mp3 + descriptor.(json|toml) + intro/ + Intro_MrNewVegas_my_song.mp3 (optional) + 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": { "weight": 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": { "shuffle_mode": "weighted", // options: "weighted", "strict_random" - "max_same_genre_in_row": 2 } } @@ -55,10 +88,17 @@ temp_directory = "temp" weight = 1.0 volume = 1.0 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] -shuffle_mode = "weighted" # "weighted", "strict_random" -max_same_genre_in_row = 2 +shuffle_mode = "weighted" # "weighted", "strict_random" ``` --- @@ -70,8 +110,7 @@ max_same_genre_in_row = 2 "artist": "Kay Kyser", "tags": ["orchestra", "swing", "jazz"], "genre": ["swing", "jazz"], - "intro": false, - "outro": false, + "intro": true, "weight": 1.0, // optional "volume": 1.0, // optional } @@ -83,8 +122,7 @@ title = "[I Got Spurs That] Jingle, Jangle, Jingle" artist = "Kay Kyser" tags = ["orchestra", "swing", "jazz"] genre = ["swing", "jazz"] -intro = false -outro = false +intro = true weight = 1.0 # optional volume = 1.0 # optional ``` diff --git a/assets/bin/aarch64/.env b/assets/bin/aarch64/.env new file mode 100644 index 0000000..48ae779 --- /dev/null +++ b/assets/bin/aarch64/.env @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e57cf2a1079302cea780462c3ac18c3415d8cccec1a57bcd7e5c484a302c5730 +size 111 diff --git a/assets/bin/aarch64/add_song b/assets/bin/aarch64/add_song new file mode 100755 index 0000000..ca076c3 --- /dev/null +++ b/assets/bin/aarch64/add_song @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed6b00a4e353410ab01658a2c976a6420f2e0a8cc03a6e3e03f6eddf0d3faf0a +size 3473570 diff --git a/assets/bin/aarch64/ffmpeg b/assets/bin/aarch64/ffmpeg new file mode 100755 index 0000000..e7811ef --- /dev/null +++ b/assets/bin/aarch64/ffmpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8175c29f510082d03ad2173956d291d5bea670634d93019f2d65ae3879aa386e +size 89924992 diff --git a/assets/bin/aarch64/ffplay b/assets/bin/aarch64/ffplay new file mode 100755 index 0000000..494093c --- /dev/null +++ b/assets/bin/aarch64/ffplay @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed6c0e865a1bc78d18bb188520e7025b446a4c56aad844c1a1bf35ef1c60de80 +size 89793920 diff --git a/assets/bin/aarch64/ffprobe b/assets/bin/aarch64/ffprobe new file mode 100755 index 0000000..42b4026 --- /dev/null +++ b/assets/bin/aarch64/ffprobe @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c983a63de12032de0c794276a33a4f93b46ccbf3078fbf7756525922926f1d87 +size 89801344 diff --git a/assets/bin/aarch64/ogg_to_mp3 b/assets/bin/aarch64/ogg_to_mp3 new file mode 100755 index 0000000..24c942d --- /dev/null +++ b/assets/bin/aarch64/ogg_to_mp3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b0faaebb797137e1ff41242188fa2079a6332a1cd17339ff2c7d974ee5c1c3b +size 3488 diff --git a/assets/bin/aarch64/sources.txt b/assets/bin/aarch64/sources.txt new file mode 100644 index 0000000..27e65c8 --- /dev/null +++ b/assets/bin/aarch64/sources.txt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:606db1c8c77bfd29f62d2b62719b14ada3368b75d2ab9459f11b4ca471f38277 +size 414 diff --git a/assets/bin/x86_64/.env b/assets/bin/x86_64/.env new file mode 100644 index 0000000..48ae779 --- /dev/null +++ b/assets/bin/x86_64/.env @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e57cf2a1079302cea780462c3ac18c3415d8cccec1a57bcd7e5c484a302c5730 +size 111 diff --git a/assets/bin/x86_64/add_song b/assets/bin/x86_64/add_song new file mode 100755 index 0000000..678be16 --- /dev/null +++ b/assets/bin/x86_64/add_song @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c732e55bc0869b9b2ed43db16ef951322c63288b4f63b29367d8b309a1cb6837 +size 3600546 diff --git a/assets/bin/x86_64/ffmpeg b/assets/bin/x86_64/ffmpeg new file mode 100755 index 0000000..220efc6 --- /dev/null +++ b/assets/bin/x86_64/ffmpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7f95d6f4a12cafb870bb8301097ea6b6e0c6c1884ac2e5fe60b220d65b4c9a7 +size 109580488 diff --git a/assets/bin/x86_64/ffplay b/assets/bin/x86_64/ffplay new file mode 100755 index 0000000..1315f99 --- /dev/null +++ b/assets/bin/x86_64/ffplay @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48f72ecb056ee4b4effe5b5b17cbc87d82f3728ef4a9e7bf0a67ac5506cfa17f +size 109424968 diff --git a/assets/bin/x86_64/ffprobe b/assets/bin/x86_64/ffprobe new file mode 100755 index 0000000..11ddfe3 --- /dev/null +++ b/assets/bin/x86_64/ffprobe @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75fff7cf372a8007851aec10dc97098f0717d35d4eca8678b4a8852657b6125a +size 109444552 diff --git a/assets/bin/x86_64/ogg_to_mp3 b/assets/bin/x86_64/ogg_to_mp3 new file mode 100755 index 0000000..24c942d --- /dev/null +++ b/assets/bin/x86_64/ogg_to_mp3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b0faaebb797137e1ff41242188fa2079a6332a1cd17339ff2c7d974ee5c1c3b +size 3488 diff --git a/assets/bin/x86_64/sources.txt b/assets/bin/x86_64/sources.txt new file mode 100644 index 0000000..ebdb129 --- /dev/null +++ b/assets/bin/x86_64/sources.txt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76af09f42770824baf3513c0cf8487a38e98063f8df10f0dc74d7f4c49796b47 +size 414