Compare commits
3 Commits
master
...
c8942af595
| Author | SHA1 | Date | |
|---|---|---|---|
| c8942af595 | |||
| 0f3831275e | |||
| 99efd89abc |
9
.gitattributes
vendored
Normal file
9
.gitattributes
vendored
Normal 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
|
||||||
19
.gitignore
vendored
19
.gitignore
vendored
@@ -1,18 +1,11 @@
|
|||||||
# ---> Rust
|
.idea/
|
||||||
# Generated by Cargo
|
.vscode/
|
||||||
# will have compiled files and executables
|
|
||||||
debug/
|
debug/
|
||||||
target/
|
target/
|
||||||
|
assets/.cache
|
||||||
|
|
||||||
# These are backup files generated by rustfmt
|
Cargo.lock
|
||||||
**/*.rs.bk
|
|
||||||
|
|
||||||
# MSVC Windows builds of rustc generate these, which store debugging information
|
|
||||||
*.pdb
|
*.pdb
|
||||||
|
**/*.rs.bk
|
||||||
# RustRover
|
|
||||||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
||||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
||||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
||||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
||||||
#.idea/
|
|
||||||
|
|||||||
6
Cargo.toml
Normal file
6
Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "new_vegas_radio"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
126
README.md
126
README.md
@@ -1,2 +1,128 @@
|
|||||||
# NewVegasRadio
|
# NewVegasRadio
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Assets-Directory Structure:
|
||||||
|
|
||||||
|
```terminaloutput
|
||||||
|
assets/
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### `config.json`:
|
||||||
|
```json5
|
||||||
|
{
|
||||||
|
"defaults": {
|
||||||
|
"songs_directory": "songs",
|
||||||
|
"generic_directory": "generic",
|
||||||
|
"log_directory": "logs",
|
||||||
|
"temp_directory": "temp"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"weight": 1.0,
|
||||||
|
"volume": 1.0,
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
OR
|
||||||
|
#### `config.toml`:
|
||||||
|
```toml
|
||||||
|
[defaults]
|
||||||
|
songs_directory = "songs"
|
||||||
|
generic_directory = "generic"
|
||||||
|
log_directory = "logs"
|
||||||
|
temp_directory = "temp"
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
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"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### `descriptor.json`:
|
||||||
|
```json5
|
||||||
|
{
|
||||||
|
"title": "[I Got Spurs That] Jingle, Jangle, Jingle",
|
||||||
|
"artist": "Kay Kyser",
|
||||||
|
"tags": ["orchestra", "swing", "jazz"],
|
||||||
|
"genre": ["swing", "jazz"],
|
||||||
|
"intro": true,
|
||||||
|
"weight": 1.0, // optional
|
||||||
|
"volume": 1.0, // optional
|
||||||
|
}
|
||||||
|
```
|
||||||
|
OR
|
||||||
|
#### `descriptor.toml`:
|
||||||
|
```toml
|
||||||
|
title = "[I Got Spurs That] Jingle, Jangle, Jingle"
|
||||||
|
artist = "Kay Kyser"
|
||||||
|
tags = ["orchestra", "swing", "jazz"]
|
||||||
|
genre = ["swing", "jazz"]
|
||||||
|
intro = true
|
||||||
|
weight = 1.0 # optional
|
||||||
|
volume = 1.0 # optional
|
||||||
|
```
|
||||||
|
|||||||
4
assets/bin/aarch64/.env
Normal file
4
assets/bin/aarch64/.env
Normal 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
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
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
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
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
BIN
assets/bin/aarch64/ogg_to_mp3
(Stored with Git LFS)
Executable file
Binary file not shown.
11
assets/bin/aarch64/sources.txt
Normal file
11
assets/bin/aarch64/sources.txt
Normal 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
4
assets/bin/x86_64/.env
Normal 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
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
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
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
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
BIN
assets/bin/x86_64/ogg_to_mp3
(Stored with Git LFS)
Executable file
Binary file not shown.
11
assets/bin/x86_64/sources.txt
Normal file
11
assets/bin/x86_64/sources.txt
Normal 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
|
||||||
4
src/main.rs
Normal file
4
src/main.rs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
fn main() {
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user