Files
NewVegasRadio/README.md

2.4 KiB

NewVegasRadio


Assets-Directory Structure:

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:

{
  "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:

[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:

{
  "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:

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