From 8aca79dfab39919333d2313364e5fd53708dbf5c Mon Sep 17 00:00:00 2001
From: Nolan Darilek <nolan@thewordnerd.info>
Date: Wed, 18 May 2022 13:04:58 -0500
Subject: [PATCH] Initial commit.

---
 .gitignore          |   3 +
 Cargo.toml          |  14 ++
 LICENSE             |  21 +++
 assets/footstep.wav | Bin 0 -> 93548 bytes
 examples/game.rs    |  72 +++++++++
 src/lib.rs          | 372 ++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 482 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 Cargo.toml
 create mode 100644 LICENSE
 create mode 100644 assets/footstep.wav
 create mode 100644 examples/game.rs
 create mode 100644 src/lib.rs

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..be8064a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/target
+*.dll
+Cargo.lock
\ No newline at end of file
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..0e996a2
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+name = "bevy_synthizer"
+version = "0.1.0"
+authors = ["Nolan Darilek <nolan@thewordnerd.info>"]
+license = "MIT OR Apache-2.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+anyhow = "1"
+bevy = { version = "0.7", default-features = false }
+derive_more = "0.99"
+synthizer = { git = "https://github.com/synthizer/synthizer-rs" }
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c74962d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Nolan Darilek
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/assets/footstep.wav b/assets/footstep.wav
new file mode 100644
index 0000000000000000000000000000000000000000..78612877589b6e6dcdaf0bc826ade4bea2456e63
GIT binary patch
literal 93548
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

literal 0
HcmV?d00001

diff --git a/examples/game.rs b/examples/game.rs
new file mode 100644
index 0000000..66bea1e
--- /dev/null
+++ b/examples/game.rs
@@ -0,0 +1,72 @@
+use std::f32;
+
+use bevy::{asset::LoadState, prelude::*};
+use bevy_synthizer::*;
+
+#[derive(Component, Deref, DerefMut)]
+struct RotationTimer(Timer);
+
+impl Default for RotationTimer {
+    fn default() -> Self {
+        Self(Timer::from_seconds(30., true))
+    }
+}
+
+#[derive(Default)]
+struct AssetHandles {
+    sounds: Vec<HandleUntyped>,
+    loaded: bool,
+}
+
+fn setup(asset_server: Res<AssetServer>, mut handles: ResMut<AssetHandles>) {
+    handles.sounds = asset_server.load_folder(".").expect("Failed to load sfx");
+}
+
+fn load_and_create(
+    mut commands: Commands,
+    asset_server: Res<AssetServer>,
+    mut handles: ResMut<AssetHandles>,
+) {
+    if handles.loaded {
+        return;
+    }
+    handles.loaded = asset_server
+        .get_group_load_state(handles.sounds.iter().map(|handle| handle.id))
+        == LoadState::Loaded;
+    if handles.loaded {
+        commands
+            .spawn()
+            .insert(Listener)
+            .insert(Transform::default())
+            .insert(RotationTimer::default());
+        let handle = handles.sounds[0].clone();
+        let buffer = asset_server.get_handle(handle);
+        commands
+            .spawn()
+            .insert(Transform::from_translation(Vec3::new(15., 0., 0.)))
+            .insert(Sound {
+                buffer,
+                looping: true,
+                ..default()
+            });
+    }
+}
+
+fn rotate_listener(time: Res<Time>, mut query: Query<(&mut RotationTimer, &mut Transform)>) {
+    for (mut timer, mut transform) in query.iter_mut() {
+        timer.tick(time.delta());
+        transform.rotation = Quat::from_rotation_z(f32::consts::PI * 2. * timer.percent());
+    }
+}
+
+fn main() {
+    App::new()
+        .add_plugins(DefaultPlugins)
+        .add_system(bevy::input::system::exit_on_esc_system)
+        .add_plugin(SynthizerPlugin)
+        .init_resource::<AssetHandles>()
+        .add_startup_system(setup)
+        .add_system(load_and_create)
+        .add_system(rotate_listener)
+        .run();
+}
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..7a64e1a
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,372 @@
+#![allow(clippy::type_complexity)]
+use std::collections::HashMap;
+
+use bevy::{
+    asset::{AssetLoader, LoadContext, LoadedAsset},
+    prelude::*,
+    reflect::TypeUuid,
+    transform::TransformSystem,
+    utils::BoxedFuture,
+};
+use derive_more::{Deref, DerefMut};
+pub use synthizer as syz;
+
+#[derive(Clone, Deref, DerefMut, PartialEq, TypeUuid)]
+#[uuid = "6b6b533a-bb1f-11ec-bda2-00155d8fdde9"]
+pub struct Buffer(syz::Buffer);
+
+#[derive(Clone, Copy, Debug, Default)]
+struct BufferAssetLoader;
+
+impl AssetLoader for BufferAssetLoader {
+    fn load<'a>(
+        &'a self,
+        _bytes: &'a [u8],
+        load_context: &'a mut LoadContext,
+    ) -> BoxedFuture<'a, Result<(), anyhow::Error>> {
+        Box::pin(async move {
+            let buffer: Option<Buffer> =
+                match load_context.path().extension().unwrap().to_str().unwrap() {
+                    "flac" | "mp3" | "wav" => {
+                        if let Ok(path) = load_context.path().canonicalize() {
+                            println!("Supported asset: {:?}", path);
+                            syz::Buffer::from_file(path).map(Buffer).ok()
+                        } else {
+                            println!("Couldn't");
+                            None
+                        }
+                    }
+                    _ => None,
+                };
+            if let Some(buffer) = buffer {
+                println!("Got a buffer");
+                load_context.set_default_asset(LoadedAsset::new(buffer));
+            }
+            Ok(())
+        })
+    }
+
+    fn extensions(&self) -> &[&str] {
+        &["flac", "mp3", "wav"]
+    }
+}
+
+#[derive(Component, Clone, Reflect)]
+#[reflect(Component)]
+pub struct Sound {
+    pub buffer: Handle<Buffer>,
+    pub gain: f64,
+    pub pitch: f64,
+    pub looping: bool,
+    pub paused: bool,
+    pub restart: bool,
+    #[reflect(ignore)]
+    pub source: Option<syz::Source>,
+    #[reflect(ignore)]
+    pub generator: Option<syz::BufferGenerator>,
+}
+
+impl Default for Sound {
+    fn default() -> Self {
+        Self {
+            buffer: Default::default(),
+            gain: 0.,
+            pitch: 1.,
+            looping: false,
+            paused: false,
+            restart: false,
+            source: None,
+            generator: None,
+        }
+    }
+}
+
+#[derive(Component, Clone, Copy, Debug, Deref, DerefMut)]
+pub struct DistanceModel(syz::DistanceModel);
+
+#[derive(Component, Clone, Copy, Debug, Default, Deref, DerefMut, Reflect)]
+#[reflect(Component)]
+pub struct DistanceRef(f64);
+
+#[derive(Component, Clone, Copy, Debug, Default, Deref, DerefMut, Reflect)]
+#[reflect(Component)]
+pub struct DistanceMax(f64);
+
+#[derive(Component, Clone, Copy, Debug, Default, Deref, DerefMut, Reflect)]
+#[reflect(Component)]
+pub struct Rolloff(f64);
+
+#[derive(Component, Clone, Copy, Debug, Default, Deref, DerefMut, Reflect)]
+#[reflect(Component)]
+pub struct ClosenessBoost(f64);
+
+#[derive(Component, Clone, Copy, Debug, Default, Deref, DerefMut, Reflect)]
+#[reflect(Component)]
+pub struct ClosenessBoostDistance(f64);
+
+#[derive(Component, Clone, Copy, Debug, Default, Reflect)]
+#[reflect(Component)]
+pub struct Listener;
+
+pub fn update_listener(
+    context: ResMut<syz::Context>,
+    listener: Query<(Option<&Transform>, Option<&GlobalTransform>), With<Listener>>,
+) {
+    if let Ok((transform, global_transform)) = listener.get_single() {
+        let transform: Option<Transform> = global_transform
+            .map(|v| {
+                let transform: Transform = (*v).into();
+                transform
+            })
+            .or_else(|| transform.cloned());
+        if let Some(transform) = transform {
+            let look = transform.local_x();
+            let up = transform.local_z();
+            if let Err(e) = context.position().set((
+                transform.translation.x as f64,
+                transform.translation.y as f64,
+                transform.translation.z as f64,
+            )) {
+                error!("Error setting listener position: {:?}", e);
+            }
+            if let Err(e) = context.orientation().set((
+                look.x as f64,
+                look.y as f64,
+                look.z as f64,
+                up.x as f64,
+                up.y as f64,
+                up.z as f64,
+            )) {
+                error!("Error setting listener orientation: {:?}", e);
+            }
+        } else {
+            context.position().set((0., 0., 0.)).ok();
+            context.orientation().set((0., 0., 1., 0., 1., 0.)).ok();
+        }
+    } else {
+        context.position().set((0., 0., 0.)).ok();
+        context.orientation().set((0., 0., 1., 0., 1., 0.)).ok();
+    }
+}
+
+#[derive(Default, Deref, DerefMut)]
+struct LastBuffer(HashMap<Entity, Handle<Buffer>>);
+
+fn swap_buffers(mut last_buffer: ResMut<LastBuffer>, mut query: Query<(Entity, &mut Sound)>) {
+    for (entity, mut sound) in query.iter_mut() {
+        let buffer = sound.buffer.clone();
+        if let Some(l) = last_buffer.get(&entity) {
+            if buffer != *l {
+                sound.source = None;
+                sound.generator = None;
+            }
+        }
+        last_buffer.insert(entity, buffer);
+    }
+}
+
+pub fn update_sound_properties(
+    context: Res<syz::Context>,
+    buffers: Res<Assets<Buffer>>,
+    mut query: Query<(
+        &mut Sound,
+        Option<&DistanceModel>,
+        Option<&DistanceRef>,
+        Option<&DistanceMax>,
+        Option<&Rolloff>,
+        Option<&ClosenessBoost>,
+        Option<&ClosenessBoostDistance>,
+        Option<&Transform>,
+        Option<&GlobalTransform>,
+    )>,
+) {
+    for (
+        mut sound,
+        distance_model,
+        distance_ref,
+        distance_max,
+        rolloff,
+        closeness_boost,
+        closeness_boost_distance,
+        transform,
+        global_transform,
+    ) in query.iter_mut()
+    {
+        let has_transform = transform.is_some();
+        let Sound {
+            gain,
+            pitch,
+            looping,
+            ..
+        } = *sound;
+        if sound.restart {
+            if let Some(generator) = sound.generator.as_mut() {
+                generator
+                    .playback_position()
+                    .set(0.)
+                    .expect("Failed to restart");
+            }
+            sound.restart = false;
+        }
+        if let Some(b) = buffers.get(sound.buffer.clone()) {
+            if sound.source.is_none() {
+                let generator =
+                    syz::BufferGenerator::new(&context).expect("Failed to create generator");
+                generator.buffer().set(&**b).expect("Unable to set buffer");
+                if has_transform {
+                    let source = syz::Source3D::new(
+                        &context,
+                        syz::PannerStrategy::Delegate,
+                        (0.0, 0.0, 0.0),
+                    )
+                    .expect("Failed to create source");
+                    source
+                        .add_generator(&generator)
+                        .expect("Unable to add generator");
+                    sound.source = Some(source.into());
+                } else {
+                    let source = syz::DirectSource::new(&context).expect("Failed to create source");
+                    source
+                        .add_generator(&generator)
+                        .expect("Failed to add generator");
+                    sound.source = Some(source.into());
+                }
+                sound.generator = Some(generator);
+            }
+        }
+        if let Some(generator) = sound.generator.as_mut() {
+            generator
+                .pitch_bend()
+                .set(pitch)
+                .expect("Failed to set pitch");
+            generator
+                .looping()
+                .set(looping)
+                .expect("Failed to set looping");
+        }
+        if let Some(source) = sound.source.as_mut() {
+            source.gain().set(gain).expect("Failed to set gain");
+            let translation = global_transform
+                .map(|v| v.translation)
+                .or_else(|| transform.map(|v| v.translation));
+            if let Some(translation) = translation {
+                let source = source.cast_to::<syz::Source3D>().unwrap().unwrap();
+                source
+                    .position()
+                    .set((
+                        translation.x as f64,
+                        translation.y as f64,
+                        translation.z as f64,
+                    ))
+                    .expect("Failed to set position");
+                if let Some(distance_model) = distance_model {
+                    source
+                        .distance_model()
+                        .set(**distance_model)
+                        .expect("Failed to set distance_model");
+                }
+                if let Some(distance_ref) = distance_ref {
+                    source
+                        .distance_ref()
+                        .set(**distance_ref)
+                        .expect("Failed to set distance_ref");
+                }
+                if let Some(distance_max) = distance_max {
+                    source
+                        .distance_max()
+                        .set(**distance_max)
+                        .expect("Failed to set distance_max");
+                }
+                if let Some(rolloff) = rolloff {
+                    source
+                        .rolloff()
+                        .set(**rolloff)
+                        .expect("Failed to set rolloff");
+                }
+                if let Some(closeness_boost) = closeness_boost {
+                    source
+                        .closeness_boost()
+                        .set(**closeness_boost)
+                        .expect("Failed to set closeness_boost");
+                }
+                if let Some(closeness_boost_distance) = closeness_boost_distance {
+                    source
+                        .closeness_boost_distance()
+                        .set(**closeness_boost_distance)
+                        .expect("Failed to set closeness_boost_distance");
+                }
+            }
+        }
+    }
+}
+
+pub fn update_playback_state(query: Query<&Sound>) {
+    for sound in query.iter() {
+        if let Some(generator) = &sound.generator {
+            if sound.paused {
+                generator.pause().expect("Failed to pause");
+            } else {
+                generator.play().expect("Failed to play");
+            }
+        }
+    }
+}
+
+fn remove_sound(mut last_buffer: ResMut<LastBuffer>, removed: RemovedComponents<Sound>) {
+    for entity in removed.iter() {
+        last_buffer.remove(&entity);
+    }
+}
+
+#[derive(Clone, Copy, Debug, Default)]
+pub struct SynthizerConfig {
+    pub hrtf: bool,
+}
+
+pub struct SynthizerPlugin;
+
+impl Plugin for SynthizerPlugin {
+    fn build(&self, app: &mut App) {
+        let guard = syz::initialize().expect("Failed to initialize Synthizer");
+        let context = syz::Context::new().expect("Failed to create Synthizer context");
+        if !app.world.contains_resource::<SynthizerConfig>() {
+            app.insert_resource(SynthizerConfig::default());
+        }
+        let config = *app.world.get_resource::<SynthizerConfig>().unwrap();
+        if config.hrtf {
+            context
+                .default_panner_strategy()
+                .set(syz::PannerStrategy::Hrtf)
+                .expect("Failed to set panner strategy");
+        } else {
+            context
+                .default_panner_strategy()
+                .set(syz::PannerStrategy::Stereo)
+                .expect("Failed to set panner strategy");
+        }
+        app.add_asset::<Buffer>()
+            .init_asset_loader::<BufferAssetLoader>()
+            .register_type::<Listener>()
+            .insert_resource(guard)
+            .insert_resource(context)
+            .init_resource::<LastBuffer>()
+            .add_system_to_stage(
+                CoreStage::PostUpdate,
+                swap_buffers.before(update_sound_properties),
+            )
+            .add_system_to_stage(
+                CoreStage::PostUpdate,
+                update_listener
+                    .after(TransformSystem::TransformPropagate)
+                    .before(update_playback_state),
+            )
+            .add_system_to_stage(
+                CoreStage::PostUpdate,
+                update_sound_properties
+                    .after(TransformSystem::TransformPropagate)
+                    .before(update_playback_state),
+            )
+            .add_system_to_stage(CoreStage::PostUpdate, update_playback_state)
+            .add_system_to_stage(CoreStage::PostUpdate, remove_sound);
+    }
+}