Adds many new songs; re-adds many old ones; revamped song distribution; reorganized music folders; better biome parameters; accurate day and night; new sounds

This commit is contained in:
DaforLynx 2021-04-12 00:43:08 +00:00 committed by Marcel
parent dc4c02baad
commit 9db290d4ea
50 changed files with 397 additions and 210 deletions

View File

@ -2,7 +2,7 @@
tracks: [
(
path: "voxygen.audio.ambient.wind",
length: 14.2,
length: 14.203,
tag: Wind,
),
]

View File

@ -5,9 +5,9 @@
//
Campfire: (
files: [
"voxygen.audio.sfx.ambient.fire",
"voxygen.audio.sfx.ambient.fire",
],
threshold: 1.688,
threshold: 21.835,
),
Birdcall: (
files: [
@ -135,6 +135,7 @@
"voxygen.audio.sfx.footsteps.stone_step_2",
"voxygen.audio.sfx.footsteps.stone_step_3",
"voxygen.audio.sfx.footsteps.stone_step_4",
"voxygen.audio.sfx.footsteps.stone_step_5",
],
threshold: 1.6,
),

BIN
assets/voxygen/audio/sfx/ambient/fire.wav (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/audio/sfx/footsteps/stone_step_5.wav (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,138 +1,15 @@
// TODO: Re-add tunes that are not fitting general outside day/night situations
// TODO: Add an ambient-soundtrack that runs independently from the musical soundtrack
// Times: Some(Day), Some(Night), None
// List of biomes currently: Grassland, Forest, Desert, Snowland, Lake, Mountain, Ocean
// Also Jungle and Swamp but these are not defined currently as the worldgen around
// them is changing and not stable
// Sites: Cave, Dungeon
// Times: Some(Day), Some(Night), None [both]
// Biomes: Grassland, Forest, Desert, Snowland, Lake, Mountain, Ocean, Jungle
// Sites: Cave, Dungeon, Void [none]
// Activities: Explore, Combat
(
tracks: [
(
title: "Winter Falls",
path: "voxygen.audio.soundtrack.winter_falls",
length: 215.0,
timing: None,
biomes: [
(Mountain, 1),
(Snowland, 1),
],
site: Some(Void),
activity: Explore,
artist: "DaforLynx"
),
(
title: "Short Meandering",
path: "voxygen.audio.soundtrack.short_meandering",
length: 147.0,
timing: Some(Night),
biomes: [],
site: Some(Void),
activity: Explore,
artist: "Ap1evideogame"
),
(
title: "Oceania",
path: "voxygen.audio.soundtrack.oceania",
length: 135.0,
timing: None,
biomes: [
(Lake, 2),
(Ocean, 3),
],
site: Some(Void),
activity: Explore,
artist: "Eden",
),
(
title: "A Solemn Quest",
path: "voxygen.audio.soundtrack.a_solemn_quest",
length: 206.0,
timing: Some(Night),
biomes: [
(Desert, 1),
(Grassland, 1),
(Snowland, 1),
(Mountain, 1),
(Lake, 1),
],
site: Some(Void),
activity: Explore,
artist: "Eden",
),
(
title: "Into The Dark Forest",
path: "voxygen.audio.soundtrack.into_the_dark_forest",
length: 184.0,
timing: Some(Night),
biomes: [
(Forest, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
//Repeat for site
title: "Into The Dark Forest",
path: "voxygen.audio.soundtrack.into_the_dark_forest",
length: 184.0,
timing: Some(Night),
biomes: [],
site: Some(Cave),
activity: Explore,
artist: "Aeronic",
),
(
title: "Field Grazing",
path: "voxygen.audio.soundtrack.field_grazing",
length: 154.0,
timing: Some(Day),
biomes: [
(Grassland, 1),
(Forest, 1)
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Wandering Voices",
path: "voxygen.audio.soundtrack.wandering_voices",
length: 137.0,
timing: Some(Night),
biomes: [],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Snowtop Volume",
path: "voxygen.audio.soundtrack.snowtop_volume",
length: 89.0,
timing: None,
biomes: [
(Snowland, 1),
(Mountain, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Mineral Deposits",
path: "voxygen.audio.soundtrack.mineral_deposits",
length: 148.0,
timing: None,
biomes: [],
site: Some(Cave),
activity: Explore,
artist: "Aeronic",
),
( //Repeat for other site
title: "Mineral Deposits",
path: "voxygen.audio.soundtrack.mineral_deposits",
length: 148.0,
title: "Dank Dungeon",
path: "voxygen.audio.soundtrack.dungeon.dank_dungeon",
length: 130.0,
timing: None,
biomes: [],
site: Some(Dungeon),
@ -140,20 +17,237 @@
artist: "Aeronic",
),
(
title: "Moonbeams",
path: "voxygen.audio.soundtrack.moonbeams",
length: 158.0,
timing: Some(Night),
title: "Calming Hills",
path: "voxygen.audio.soundtrack.overworld.calming_hills",
length: 101.0,
timing: Some(Day),
biomes: [
(Mountain, 1)
],
site: Some(Void),
activity: Explore,
artist: "Ultimafounding; mixed by Robotnik",
),
(
title: "Fiesta Del Pueblo",
path: "voxygen.audio.soundtrack.overworld.fiesta_del_pueblo",
length: 183.0,
timing: Some(Day),
biomes: [
(Desert, 1)
],
site: Some(Void),
activity: Explore,
artist: "Aeronic; mixed by Robotnik",
),
(
title: "Ruination",
path: "voxygen.audio.soundtrack.dungeon.ruination",
length: 135.0,
timing: None,
biomes: [],
site: Some(Dungeon),
activity: Explore,
artist: "Aeronic",
),
(
title: "Dank Hallows",
path: "voxygen.audio.soundtrack.cave.dank_hallows",
length: 227.0,
timing: None,
biomes: [],
site: Some(Cave),
activity: Explore,
artist: "Flashbang",
),
(
title: "Vast Onslaught",
path: "voxygen.audio.soundtrack.dungeon.vast_onslaught",
length: 237.0,
timing: None,
biomes: [],
site: Some(Dungeon),
activity: Explore,
artist: "Aeronic",
),
(
title: "Sacred Temple",
path: "voxygen.audio.soundtrack.dungeon.sacred_temple",
length: 75.0,
timing: None,
biomes: [],
site: Some(Dungeon),
activity: Explore,
artist: "Aeronic",
),
(
title: "True Nature",
path: "voxygen.audio.soundtrack.overworld.true_nature",
length: 169.0,
timing: Some(Day),
biomes: [
(Forest, 1),
],
site: Some(Void),
activity: Explore,
artist: "DaforLynx",
),
(
title: "Jungle Ambient",
path: "voxygen.audio.soundtrack.overworld.jungle_ambient",
length: 218.0,
timing: Some(Day),
biomes: [
(Jungle, 1),
],
site: Some(Void),
activity: Explore,
artist: "badbbad",
),
(
title: "Ethereal Bonds",
path: "voxygen.audio.soundtrack.overworld.ethereal_bonds",
length: 59.0,
timing: Some(Night),
biomes: [
(Mountain, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Serene Meadows",
path: "voxygen.audio.soundtrack.serene_meadows",
length: 173.0,
title: "Leap of Faith",
path: "voxygen.audio.soundtrack.overworld.leap_of_faith",
length: 269.0,
timing: Some(Night),
biomes: [
(Ocean, 1),
(Lake, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Highland of the Hawk",
path: "voxygen.audio.soundtrack.overworld.highland_of_the_hawk",
length: 283.0,
timing: Some(Day),
biomes: [
(Desert, 1),
(Mountain, 1),
],
site: Some(Void),
activity: Explore,
artist: "badbbad",
),
(
title: "Verdant Glades",
path: "voxygen.audio.soundtrack.overworld.verdant_glades",
length: 97.0,
timing: Some(Day),
biomes: [
(Grassland, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Calling Wild",
path: "voxygen.audio.soundtrack.overworld.calling_wild",
length: 160.0,
timing: Some(Night),
biomes: [
(Grassland, 1),
],
site: Some(Void),
activity: Explore,
artist: "Ultimafounding",
),
(
title: "Drifting Along",
path: "voxygen.audio.soundtrack.overworld.drifting_along",
length: 164.0,
timing: None,
biomes: [
(Lake, 1),
(Ocean, 1),
],
site: Some(Void),
activity: Explore,
artist: "DaforLynx",
),
(
title: "Winter Falls",
path: "voxygen.audio.soundtrack.overworld.winter_falls",
length: 215.0,
timing: Some(Day),
biomes: [
(Snowland, 1),
],
site: Some(Void),
activity: Explore,
artist: "DaforLynx",
),
(
title: "Short Meandering",
path: "voxygen.audio.soundtrack.overworld.short_meandering",
length: 147.0,
timing: Some(Night),
biomes: [
(Desert, 1),
(Mountain, 1),
],
site: Some(Void),
activity: Explore,
artist: "Ap1evideogame",
),
(
title: "Oceania",
path: "voxygen.audio.soundtrack.overworld.oceania",
length: 135.0,
timing: None,
biomes: [
(Lake, 1),
(Ocean, 1),
],
site: Some(Void),
activity: Explore,
artist: "Eden",
),
(
title: "A Solemn Quest",
path: "voxygen.audio.soundtrack.overworld.a_solemn_quest",
length: 206.0,
timing: Some(Night),
biomes: [
(Forest, 1),
(Mountain, 1),
],
site: Some(Void),
activity: Explore,
artist: "Eden",
),
(
title: "Into The Dark Forest",
path: "voxygen.audio.soundtrack.overworld.into_the_dark_forest",
length: 184.0,
timing: Some(Night),
biomes: [
(Forest, 1),
(Jungle, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Field Grazing",
path: "voxygen.audio.soundtrack.overworld.field_grazing",
length: 154.0,
timing: Some(Day),
biomes: [
(Grassland, 1),
(Forest, 1),
@ -162,24 +256,72 @@
activity: Explore,
artist: "Aeronic",
),
//(
// title: "Rest Assured", // Town/Shop
// path: "voxygen.audio.soundtrack.rest_assured",
// length: 185.0,
// timing: Some(Day),
// biomes: [],
// site: Some(Void),
// artist: "badbbad",
//),
(
title: "Wandering Voices",
path: "voxygen.audio.soundtrack.overworld.wandering_voices",
length: 137.0,
timing: Some(Night),
biomes: [
(Grassland, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Snowtop Volume",
path: "voxygen.audio.soundtrack.overworld.snowtop_volume",
length: 89.0,
timing: Some(Day),
biomes: [
(Snowland, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Mineral Deposits",
path: "voxygen.audio.soundtrack.cave.mineral_deposits",
length: 148.0,
timing: None,
biomes: [],
site: Some(Cave),
activity: Explore,
artist: "Aeronic",
),
(
title: "Moonbeams",
path: "voxygen.audio.soundtrack.overworld.moonbeams",
length: 158.0,
timing: Some(Night),
biomes: [
(Snowland, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Serene Meadows",
path: "voxygen.audio.soundtrack.overworld.serene_meadows",
length: 173.0,
timing: Some(Night),
biomes: [
(Grassland, 1),
(Desert, 1),
],
site: Some(Void),
activity: Explore,
artist: "Aeronic",
),
(
title: "Just The Beginning",
path: "voxygen.audio.soundtrack.just_the_beginning",
path: "voxygen.audio.soundtrack.overworld.just_the_beginning",
length: 188.0,
timing: Some(Day),
biomes: [
(Grassland, 1),
(Snowland, 1),
(Mountain, 1),
],
site: Some(Void),
activity: Explore,
@ -187,40 +329,31 @@
),
(
title: "Campfire Stories",
path: "voxygen.audio.soundtrack.campfire_stories",
path: "voxygen.audio.soundtrack.overworld.campfire_stories",
length: 100.0,
timing: Some(Night),
biomes: [],
biomes: [
(Forest, 1),
],
site: Some(Void),
activity: Explore,
artist: "badbbad",
),
(
title: "Limits",
path: "voxygen.audio.soundtrack.limits",
path: "voxygen.audio.soundtrack.overworld.limits",
length: 203.0,
timing: None,
timing: Some(Day),
biomes: [
(Desert, 1),
(Lake, 1)
(Mountain, 1),
],
site: Some(Void),
activity: Explore,
artist: "badbbad",
),
(
(
title: "Down The Rabbit Hole",
path: "voxygen.audio.soundtrack.down_the_rabbit_hole",
length: 244.0,
timing: None,
biomes: [],
site: Some(Cave),
activity: Explore,
artist: "badbbad",
),
( //Repeat for other site
title: "Down The Rabbit Hole",
path: "voxygen.audio.soundtrack.down_the_rabbit_hole",
path: "voxygen.audio.soundtrack.dungeon.down_the_rabbit_hole",
length: 244.0,
timing: None,
biomes: [],
@ -230,13 +363,11 @@
),
(
title: "Between The Fairies",
path: "voxygen.audio.soundtrack.between_the_fairies",
path: "voxygen.audio.soundtrack.overworld.between_the_fairies",
length: 175.0,
timing: Some(Night),
timing: Some(Day),
biomes: [
(Forest, 1),
(Lake, 1),
(Snowland, 1),
],
site: Some(Void),
activity: Explore,

BIN
assets/voxygen/audio/soundtrack/Town/im_home.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/Town/library_theme.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/Town/onwards.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/Town/rest_assured.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/cave/dank_hallows.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/dungeon/dank_dungeon.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/dungeon/ruination.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/dungeon/sacred_temple.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/dungeon/vast_onslaught.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/overworld/calling_wild.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/overworld/calming_hills.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/overworld/drifting_along.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/overworld/ethereal_bonds.ogg (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/overworld/jungle_ambient.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/overworld/leap_of_faith.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/overworld/true_nature.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/overworld/verdant_glades.ogg (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

View File

@ -9,13 +9,13 @@ pub enum DayPeriod {
impl From<f64> for DayPeriod {
fn from(time_of_day: f64) -> Self {
let tod = time_of_day.rem_euclid(60.0 * 60.0 * 24.0);
if tod < 60.0 * 60.0 * 4.0 {
if tod < 60.0 * 60.0 * 6.0 {
DayPeriod::Night
} else if tod < 60.0 * 60.0 * 10.0 {
} else if tod < 60.0 * 60.0 * 11.0 {
DayPeriod::Morning
} else if tod < 60.0 * 60.0 * 16.0 {
DayPeriod::Noon
} else if tod < 60.0 * 60.0 * 20.0 {
} else if tod < 60.0 * 60.0 * 19.0 {
DayPeriod::Evening
} else {
DayPeriod::Night

View File

@ -31,6 +31,7 @@
//! (Grassland, 2),
//! ],
//! site: None,
//! activity: Explore,
//! artist: "Elvis",
//! ),
//! ```
@ -54,10 +55,6 @@ use serde::Deserialize;
use std::time::Instant;
use tracing::warn;
// TODO These should eventually not be constants if we have seasons
const DAY_START_SECONDS: u32 = 28800; // 8:00
const DAY_END_SECONDS: u32 = 70200; // 19:30
/// Collection of all the tracks
#[derive(Debug, Default, Deserialize)]
struct SoundtrackCollection {
@ -161,8 +158,8 @@ impl MusicMgr {
// Adds a bit of randomness between plays
let silence_between_tracks_seconds: f32 = rng.gen_range(60.0..120.0);
let game_time = (state.get_time_of_day() as u64 % 86400) as u32;
let current_period_of_day = Self::get_current_day_period(game_time);
let is_dark = (state.get_day_period().is_dark()) as bool;
let current_period_of_day = Self::get_current_day_period(is_dark);
let current_biome = client.current_biome();
let current_site = client.current_site();
@ -227,11 +224,11 @@ impl MusicMgr {
}
}
fn get_current_day_period(game_time: u32) -> DayPeriod {
if game_time > DAY_START_SECONDS && game_time < DAY_END_SECONDS {
DayPeriod::Day
} else {
fn get_current_day_period(is_dark: bool) -> DayPeriod {
if is_dark {
DayPeriod::Night
} else {
DayPeriod::Day
}
}

View File

@ -72,7 +72,7 @@ impl EventMapper for CampfireEventMapper {
.map(|b| b.is_liquid())
.unwrap_or(false);
let sfx_trigger_item = triggers.get_key_value(&mapped_event);
const CAMPFIRE_VOLUME: f32 = 0.9;
const CAMPFIRE_VOLUME: f32 = 0.8;
audio.emit_sfx(sfx_trigger_item, pos.0, Some(CAMPFIRE_VOLUME), underwater);
internal_state.time = Instant::now();
}

View File

@ -380,7 +380,7 @@ impl SfxMgr {
Some(2.0),
);
} else {
audio.play_sfx("voxygen.audio.sfx.arrow_hit", *pos, Some(2.0));
audio.play_sfx("voxygen.audio.sfx.character.arrow_hit", *pos, Some(2.0));
}
},
_ => {},

View File

@ -2368,22 +2368,23 @@ impl SimChunk {
pub fn get_base_z(&self) -> f32 { self.alt - self.chaos * 50.0 - 16.0 }
pub fn get_biome(&self) -> BiomeKind {
if self.alt < CONFIG.sea_level {
if self.river.is_ocean() {
BiomeKind::Ocean
} else if (self.temp - 0.5) < 0.005 && self.humidity < 0.1 {
} else if self.river.is_lake() {
BiomeKind::Lake
} else if self.temp < CONFIG.snow_temp {
BiomeKind::Snowland
} else if self.alt > 450.0 && self.chaos > 0.3 && self.tree_density < 0.6 {
} else if self.alt > 500.0 && self.chaos > 0.3 && self.tree_density < 0.6 {
BiomeKind::Mountain
} else if self.temp > CONFIG.desert_temp && self.humidity < 0.6 {
} else if self.temp > CONFIG.desert_temp && self.humidity < CONFIG.desert_hum {
BiomeKind::Desert
//} else if self.tree_density > 0.65 && self.humidity > 0.7 && self.temp > 0.8 {
// BiomeKind::Jungle
} else if self.tree_density > 0.5 {
} else if self.tree_density > 0.65 && self.humidity > 0.65 && self.temp > 0.45 {
BiomeKind::Jungle
} else if self.tree_density > 0.4 {
BiomeKind::Forest
//} else if self.humidity > 0.8 {
// } else if self.humidity > 0.8 {
// BiomeKind::Swamp
// Swamps don't really exist yet.
} else {
BiomeKind::Grassland
}