176 lines
3.4 KiB
Markdown
176 lines
3.4 KiB
Markdown
# NewVegasRadio
|
|
|
|
---
|
|
|
|
### Assets-Directory Structure:
|
|
|
|
```terminaloutput
|
|
assets/
|
|
config.(json|toml|ron)
|
|
bin/
|
|
x86_64/
|
|
aarch64/
|
|
songs/
|
|
my_song/
|
|
my_song.mp3
|
|
descriptor.(json|toml|ron)
|
|
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"
|
|
```
|
|
OR
|
|
#### `config.ron`
|
|
```ron
|
|
(
|
|
defaults: (
|
|
songs_directory: "songs",
|
|
generic_directory: "generic",
|
|
log_directory: "logs",
|
|
temp_directory: "temp",
|
|
),
|
|
settings: (
|
|
debug: true,
|
|
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, // 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
|
|
```
|
|
OR
|
|
#### `descriptor.ron`
|
|
```ron
|
|
(
|
|
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
|
|
)
|
|
```
|