# 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 shared/ Story_MrNewVegas_N.mp3 news/ story_N/ story.toml (optional, ignored) Story_MrNewVegas_N.mp3 Story_Guest_N.mp3 Story_MrNewVegas_N.mp3 -> symlink shared/Story_MrNewVegas_N.mp3 .cache/ (automatically generated) songs/ my_song/ song.pcm (f32 pcm) intro.pcm (f32 pcm) cache.json generic/ intro/ intro_N.pcm (f32 pcm) intro_N.cache.json shared/ story_N.pcm (f32 pcm) story_N.cache.json news/ story_N/ part_N.pcm (f32 pcm) part_N.pcm (f32 pcm) part_N.pcm (f32 pcm) -> symlink shared/story_N.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 ) ```