diff --git a/CHANGELOG.md b/CHANGELOG.md index 72ce4e001e..fbd384937e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Weather generated on server is sent to clients, and seen on clients as rain/clouds. - Updated Brazilian Portuguese Translation - Lightning storms +- More varied ambient birdcalls ### Changed diff --git a/assets/voxygen/audio/ambience/leaves.ogg b/assets/voxygen/audio/ambience/leaves.ogg index 22276e12f7..c9579003e9 100644 --- a/assets/voxygen/audio/ambience/leaves.ogg +++ b/assets/voxygen/audio/ambience/leaves.ogg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:30a6d9bc0e63f7216eaaddef5d9ada465f241b2f1206b522dd388a552dba5708 -size 461250 +oid sha256:7ddab0aace204faf42c8832a7f7819c8f44e89f075673347762460d0d4f0ab1c +size 454229 diff --git a/assets/voxygen/audio/sfx.ron b/assets/voxygen/audio/sfx.ron index 9dba82e21f..68059aaa3f 100644 --- a/assets/voxygen/audio/sfx.ron +++ b/assets/voxygen/audio/sfx.ron @@ -11,8 +11,16 @@ ), Birdcall: ( files: [ - "voxygen.audio.sfx.ambient.birdcall_1", - "voxygen.audio.sfx.ambient.birdcall_2", + "voxygen.audio.sfx.ambient.birdcall_01", + "voxygen.audio.sfx.ambient.birdcall_02", + "voxygen.audio.sfx.ambient.birdcall_03", + "voxygen.audio.sfx.ambient.birdcall_04", + "voxygen.audio.sfx.ambient.birdcall_05", + "voxygen.audio.sfx.ambient.birdcall_06", + "voxygen.audio.sfx.ambient.birdcall_07", + "voxygen.audio.sfx.ambient.birdcall_08", + "voxygen.audio.sfx.ambient.birdcall_09", + "voxygen.audio.sfx.ambient.birdcall_10", ], threshold: 10.0, ), diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg new file mode 100644 index 0000000000..3c1c8ab259 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0b4856a3cc7cf1dee0e2efd04cc98a2f30d82a722cd41fede53c2fa44455a23 +size 63936 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg new file mode 100644 index 0000000000..96e25a34be --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8be3df66d65c161367c22d07a63c7795facb47e5474d046e2a42ce9793dd394a +size 104973 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg new file mode 100644 index 0000000000..5e3b643ea6 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54083f061589226e1aae7d2f6fe4515cce102893a15f338dbc4bb1f45f59e1f6 +size 26172 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg new file mode 100644 index 0000000000..06a98277d1 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffce718d263762fd1a33ee407de799ba246793ca5cd8be055b3eae0abfb6f277 +size 17170 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg new file mode 100644 index 0000000000..ec41b05da3 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76f60a420e14ba78d95e38270ebd421f59b908fc165d9a0d0454d7d6c687435b +size 22820 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg new file mode 100644 index 0000000000..d1861e72d1 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:520808442ca79ac7d55be28eb9c5403f97aae42fdd9c05f942d0eeb5f46bb62a +size 8793 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg new file mode 100644 index 0000000000..39e8f56f6f --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05cc7ea5bf1f876148c89490b0eac874ea300e2439926dc1cf0b44fb718c66ed +size 12691 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg new file mode 100644 index 0000000000..e24e16cf8a --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23ae70d45083db4496467c91d632b17e3c7858d44411812d0fed9eeef7ddf0c7 +size 22828 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg new file mode 100644 index 0000000000..17e82677c3 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98a02c4aaad8f649f529200f9ca5e1ddec19ec42ba2e0eac9d5279c4524acfca +size 22051 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_1.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_1.ogg deleted file mode 100644 index 06ceea2840..0000000000 --- a/assets/voxygen/audio/sfx/ambient/birdcall_1.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8e7061dca633f53c30cc91d18b266d46c53504926ad3168ace1c673de444cef -size 66488 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg new file mode 100644 index 0000000000..a4c7790c54 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ff4ed33c111b2acd3d9a976aa2a1911921fbe3c440bbf6446fa52a0289eefae +size 19832 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_2.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_2.ogg deleted file mode 100644 index e1e6cbfb50..0000000000 --- a/assets/voxygen/audio/sfx/ambient/birdcall_2.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a305641f3eaa45b8fadd4160e6a677bfd9bf0a5950c79e62bbc0d4bb72b4fa6 -size 107298 diff --git a/assets/voxygen/audio/soundtrack.ron b/assets/voxygen/audio/soundtrack.ron index 0bdc506e1f..15b32fea8e 100644 --- a/assets/voxygen/audio/soundtrack.ron +++ b/assets/voxygen/audio/soundtrack.ron @@ -67,6 +67,7 @@ timing: Some(Night), biomes: [ (Forest, 1), + (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -79,6 +80,7 @@ timing: Some(Night), biomes: [ (Forest, 2), + (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -226,7 +228,6 @@ weather: None, biomes: [ (Snowland, 1), - (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -268,6 +269,7 @@ weather: None, biomes: [ (Forest, 2), + (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -282,6 +284,7 @@ biomes: [ (Forest, 2), (Jungle, 1), + (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -322,7 +325,6 @@ weather: None, biomes: [ (Snowland, 1), - (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -336,7 +338,6 @@ weather: None, biomes: [ (Snowland, 1), - (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -376,6 +377,7 @@ weather: None, biomes: [ (Forest, 2), + (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -389,6 +391,7 @@ weather: None, biomes: [ (Mountain, 1), + (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -402,6 +405,7 @@ weather: None, biomes: [ (Forest, 2), + (Taiga, 1), ], site: Some(Void), music_state: Activity(Explore), @@ -521,6 +525,16 @@ // Cave music + Individual(( + title: "Stars Like Stalactites", + path: "voxygen.audio.soundtrack.cave.stars_like_stalactites", + length: 130.0, + timing: None, + biomes: [], + site: Some(Cave), + music_state: Activity(Explore), + artist: "DragonDee", + )), Individual(( title: "Cavernous Hollow", path: "voxygen.audio.soundtrack.cave.cavernous_hollow", diff --git a/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg b/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg index 2a39fd5cbb..b628caf9ba 100644 --- a/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg +++ b/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:286db0b9c41193289e1695f3a88fc4eafa242ece90eee31abcf75fae428dd19f +oid sha256:a18c1aa05ece035f8e6b56c0cf66c10f33e5fbdad4eb00b5104ee9dd98b88ad4 size 4539199 diff --git a/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg b/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg new file mode 100644 index 0000000000..71c7defbbc --- /dev/null +++ b/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9bdc608b7e87614b41091af7ff436d43976f3b50aa5477e6f442adf49232f39 +size 1476614 diff --git a/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg b/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg index cdee59f84b..39d894fc36 100644 --- a/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg +++ b/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ce1161a48c816af1aa26fa0a8093b49f7388a96744d0f59bd9c8e9c54e1be24 -size 2788159 +oid sha256:8ece29a9b8311843db94497117638b29670be69ed9c87a73c59311fd5407013a +size 2752509 diff --git a/voxygen/src/audio/ambient.rs b/voxygen/src/audio/ambient.rs index 21f6db1fb7..1e765161ed 100644 --- a/voxygen/src/audio/ambient.rs +++ b/voxygen/src/audio/ambient.rs @@ -53,10 +53,10 @@ impl AmbientMgr { // If the conditions warrant creating a channel of that tag if AmbientChannelTag::get_tag_volume(tag, client, camera) > match tag { - AmbientChannelTag::Wind => 0.0, + AmbientChannelTag::Wind => 0.1, AmbientChannelTag::Rain => 0.1, - AmbientChannelTag::Thunder => 0.0, - AmbientChannelTag::Leaves => 0.1, + AmbientChannelTag::Thunder => 0.1, + AmbientChannelTag::Leaves => 0.05, } && audio.get_ambient_channel(tag).is_none() { @@ -122,7 +122,7 @@ impl AmbientChannelTag { // Tree density factors into wind volume. The more trees, // the lower wind volume. The trees make more of an impact // the closer the camera is to the ground. - let tree_multiplier = ((1.0 - tree_density) + let tree_multiplier = ((1.0 - (tree_density * 0.5)) + ((cam_pos.z - terrain_alt).abs() / 150.0).powi(2)) .min(1.0); @@ -131,13 +131,14 @@ impl AmbientChannelTag { // Client wind speed is a float approx. -30.0 to 30.0 (polarity depending on // direction) let wind_speed_multiplier = (client.weather_at_player().wind.magnitude_squared() - / 30.0_f32.powi(2)) - .min(1.0); + / 15.0_f32.powi(2)) + .min(1.33); - alt_multiplier + ((alt_multiplier * tree_multiplier - * (wind_speed_multiplier + ((cam_pos.z - terrain_alt).abs() / 150.0).powi(2)) - .min(1.0) + * (wind_speed_multiplier + ((cam_pos.z - terrain_alt).abs() / 150.0).powi(2))) + + ((alt_multiplier * 0.15) * tree_multiplier)) + .min(1.15) }, AmbientChannelTag::Rain => { let focus_off = camera.get_focus_pos().map(f32::trunc); @@ -152,12 +153,10 @@ impl AmbientChannelTag { let camera_multiplier = 1.0 - ((cam_pos.z - terrain_alt).abs() / 75.0).powi(2).min(1.0); - let rain_intensity = (client.weather_at_player().rain * 500.0) * camera_multiplier; - - rain_intensity.min(0.9) + ((client.weather_at_player().rain * 2.5) * camera_multiplier).min(0.95) }, AmbientChannelTag::Thunder => { - let rain_intensity = client.weather_at_player().rain * 500.0; + let rain_intensity = (client.weather_at_player().rain * 2.5).min(1.33); if rain_intensity < 0.7 { 0.0 @@ -183,8 +182,13 @@ impl AmbientChannelTag { + ((cam_pos.z - terrain_alt + 20.0).abs() / 150.0).powi(2)) .min(1.0)); + // Take into account wind speed too, which amplifies tree noise + let wind_speed_multiplier = (client.weather_at_player().wind.magnitude_squared() + / 20.0_f32.powi(2)) + .min(1.0); + if tree_multiplier > 0.1 { - tree_multiplier + (tree_multiplier * (1.0 + wind_speed_multiplier)).min(1.33) } else { 0.0 } @@ -219,12 +223,9 @@ fn get_target_volume( { volume_multiplier *= 0.1; } - // Is the camera roughly under the terrain? - if cam_pos.z < terrain_alt - 20.0 { - volume_multiplier = 0.0; - } - volume_multiplier.clamped(0.0, 1.0) + // Is the camera underneath the terrain? Fade out the lower it goes beneath. + volume_multiplier * ((cam_pos.z - terrain_alt) / 30.0 + 1.0).clamped(0.0, 1.0) } pub fn load_ambience_items() -> AssetHandle { diff --git a/voxygen/src/audio/sfx/event_mapper/block/mod.rs b/voxygen/src/audio/sfx/event_mapper/block/mod.rs index 7812a0011f..6b70442345 100644 --- a/voxygen/src/audio/sfx/event_mapper/block/mod.rs +++ b/voxygen/src/audio/sfx/event_mapper/block/mod.rs @@ -212,7 +212,7 @@ impl EventMapper for BlockEventMapper { // block of interest type which picks fewer leaf blocks // Hack to reduce the number of bird, frog, and water sounds if ((sounds.sfx == SfxEvent::Birdcall || sounds.sfx == SfxEvent::Owl) - && thread_rng().gen_bool(0.999)) + && thread_rng().gen_bool(0.9995)) || (sounds.sfx == SfxEvent::Frog && thread_rng().gen_bool(0.75)) || (sounds.sfx == SfxEvent::RunningWaterSlow && thread_rng().gen_bool(0.5)) diff --git a/voxygen/src/settings/audio.rs b/voxygen/src/settings/audio.rs index 36f2230c17..215124d2c2 100644 --- a/voxygen/src/settings/audio.rs +++ b/voxygen/src/settings/audio.rs @@ -38,7 +38,7 @@ impl Default for AudioSettings { Self { master_volume: 1.0, inactive_master_volume_perc: 0.5, - music_volume: 0.3, + music_volume: 0.25, sfx_volume: 0.6, ambience_volume: 0.6, num_sfx_channels: 60,