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: [ tracks: [
( (
path: "voxygen.audio.ambient.wind", path: "voxygen.audio.ambient.wind",
length: 14.2, length: 14.203,
tag: Wind, tag: Wind,
), ),
] ]

View File

@ -7,7 +7,7 @@
files: [ files: [
"voxygen.audio.sfx.ambient.fire", "voxygen.audio.sfx.ambient.fire",
], ],
threshold: 1.688, threshold: 21.835,
), ),
Birdcall: ( Birdcall: (
files: [ files: [
@ -135,6 +135,7 @@
"voxygen.audio.sfx.footsteps.stone_step_2", "voxygen.audio.sfx.footsteps.stone_step_2",
"voxygen.audio.sfx.footsteps.stone_step_3", "voxygen.audio.sfx.footsteps.stone_step_3",
"voxygen.audio.sfx.footsteps.stone_step_4", "voxygen.audio.sfx.footsteps.stone_step_4",
"voxygen.audio.sfx.footsteps.stone_step_5",
], ],
threshold: 1.6, 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 // TODO: Add an ambient-soundtrack that runs independently from the musical soundtrack
// Times: Some(Day), Some(Night), None // Times: Some(Day), Some(Night), None [both]
// List of biomes currently: Grassland, Forest, Desert, Snowland, Lake, Mountain, Ocean // Biomes: Grassland, Forest, Desert, Snowland, Lake, Mountain, Ocean, Jungle
// Also Jungle and Swamp but these are not defined currently as the worldgen around // Sites: Cave, Dungeon, Void [none]
// them is changing and not stable // Activities: Explore, Combat
// Sites: Cave, Dungeon
( (
tracks: [ tracks: [
( (
title: "Winter Falls", title: "Dank Dungeon",
path: "voxygen.audio.soundtrack.winter_falls", path: "voxygen.audio.soundtrack.dungeon.dank_dungeon",
length: 215.0, length: 130.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,
timing: None, timing: None,
biomes: [], biomes: [],
site: Some(Dungeon), site: Some(Dungeon),
@ -140,20 +17,237 @@
artist: "Aeronic", artist: "Aeronic",
), ),
( (
title: "Moonbeams", title: "Calming Hills",
path: "voxygen.audio.soundtrack.moonbeams", path: "voxygen.audio.soundtrack.overworld.calming_hills",
length: 158.0, length: 101.0,
timing: Some(Night), 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: [], 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), site: Some(Void),
activity: Explore, activity: Explore,
artist: "Aeronic", artist: "Aeronic",
), ),
( (
title: "Serene Meadows", title: "Leap of Faith",
path: "voxygen.audio.soundtrack.serene_meadows", path: "voxygen.audio.soundtrack.overworld.leap_of_faith",
length: 173.0, length: 269.0,
timing: Some(Night), 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: [ biomes: [
(Grassland, 1), (Grassland, 1),
(Forest, 1), (Forest, 1),
@ -162,24 +256,72 @@
activity: Explore, activity: Explore,
artist: "Aeronic", artist: "Aeronic",
), ),
//( (
// title: "Rest Assured", // Town/Shop title: "Wandering Voices",
// path: "voxygen.audio.soundtrack.rest_assured", path: "voxygen.audio.soundtrack.overworld.wandering_voices",
// length: 185.0, length: 137.0,
// timing: Some(Day), timing: Some(Night),
// biomes: [], biomes: [
// site: Some(Void), (Grassland, 1),
// artist: "badbbad", ],
//), 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", title: "Just The Beginning",
path: "voxygen.audio.soundtrack.just_the_beginning", path: "voxygen.audio.soundtrack.overworld.just_the_beginning",
length: 188.0, length: 188.0,
timing: Some(Day), timing: Some(Day),
biomes: [ biomes: [
(Grassland, 1), (Grassland, 1),
(Snowland, 1),
(Mountain, 1),
], ],
site: Some(Void), site: Some(Void),
activity: Explore, activity: Explore,
@ -187,22 +329,23 @@
), ),
( (
title: "Campfire Stories", title: "Campfire Stories",
path: "voxygen.audio.soundtrack.campfire_stories", path: "voxygen.audio.soundtrack.overworld.campfire_stories",
length: 100.0, length: 100.0,
timing: Some(Night), timing: Some(Night),
biomes: [], biomes: [
(Forest, 1),
],
site: Some(Void), site: Some(Void),
activity: Explore, activity: Explore,
artist: "badbbad", artist: "badbbad",
), ),
( (
title: "Limits", title: "Limits",
path: "voxygen.audio.soundtrack.limits", path: "voxygen.audio.soundtrack.overworld.limits",
length: 203.0, length: 203.0,
timing: None, timing: Some(Day),
biomes: [ biomes: [
(Desert, 1), (Mountain, 1),
(Lake, 1)
], ],
site: Some(Void), site: Some(Void),
activity: Explore, activity: Explore,
@ -210,17 +353,7 @@
), ),
( (
title: "Down The Rabbit Hole", 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: [],
site: Some(Cave),
activity: Explore,
artist: "badbbad",
),
( //Repeat for other site
title: "Down The Rabbit Hole",
path: "voxygen.audio.soundtrack.down_the_rabbit_hole",
length: 244.0, length: 244.0,
timing: None, timing: None,
biomes: [], biomes: [],
@ -230,13 +363,11 @@
), ),
( (
title: "Between The Fairies", title: "Between The Fairies",
path: "voxygen.audio.soundtrack.between_the_fairies", path: "voxygen.audio.soundtrack.overworld.between_the_fairies",
length: 175.0, length: 175.0,
timing: Some(Night), timing: Some(Day),
biomes: [ biomes: [
(Forest, 1), (Forest, 1),
(Lake, 1),
(Snowland, 1),
], ],
site: Some(Void), site: Some(Void),
activity: Explore, 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 { impl From<f64> for DayPeriod {
fn from(time_of_day: f64) -> Self { fn from(time_of_day: f64) -> Self {
let tod = time_of_day.rem_euclid(60.0 * 60.0 * 24.0); 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 DayPeriod::Night
} else if tod < 60.0 * 60.0 * 10.0 { } else if tod < 60.0 * 60.0 * 11.0 {
DayPeriod::Morning DayPeriod::Morning
} else if tod < 60.0 * 60.0 * 16.0 { } else if tod < 60.0 * 60.0 * 16.0 {
DayPeriod::Noon DayPeriod::Noon
} else if tod < 60.0 * 60.0 * 20.0 { } else if tod < 60.0 * 60.0 * 19.0 {
DayPeriod::Evening DayPeriod::Evening
} else { } else {
DayPeriod::Night DayPeriod::Night

View File

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

View File

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

View File

@ -380,7 +380,7 @@ impl SfxMgr {
Some(2.0), Some(2.0),
); );
} else { } 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_base_z(&self) -> f32 { self.alt - self.chaos * 50.0 - 16.0 }
pub fn get_biome(&self) -> BiomeKind { pub fn get_biome(&self) -> BiomeKind {
if self.alt < CONFIG.sea_level { if self.river.is_ocean() {
BiomeKind::Ocean BiomeKind::Ocean
} else if (self.temp - 0.5) < 0.005 && self.humidity < 0.1 { } else if self.river.is_lake() {
BiomeKind::Lake BiomeKind::Lake
} else if self.temp < CONFIG.snow_temp { } else if self.temp < CONFIG.snow_temp {
BiomeKind::Snowland 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 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 BiomeKind::Desert
//} else if self.tree_density > 0.65 && self.humidity > 0.7 && self.temp > 0.8 { } else if self.tree_density > 0.65 && self.humidity > 0.65 && self.temp > 0.45 {
// BiomeKind::Jungle BiomeKind::Jungle
} else if self.tree_density > 0.5 { } else if self.tree_density > 0.4 {
BiomeKind::Forest BiomeKind::Forest
// } else if self.humidity > 0.8 { // } else if self.humidity > 0.8 {
// BiomeKind::Swamp // BiomeKind::Swamp
// Swamps don't really exist yet.
} else { } else {
BiomeKind::Grassland BiomeKind::Grassland
} }