diff --git a/Cargo.lock b/Cargo.lock index f53aa88..2cf80d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -178,6 +178,7 @@ dependencies = [ "ndk-context", "ndk-sys", "num_enum", + "simd_cesu8", "thiserror 2.0.18", ] @@ -466,6 +467,43 @@ dependencies = [ "portable-atomic-util", ] +[[package]] +name = "audio-core" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ebbf82d06013f4c41fe71303feb980cddd78496d904d06be627972de51a24" + +[[package]] +name = "audioadapter" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91f87b70b051c5866680ad79f6743a42ccab264c009d1a71f4d33a3872ae60c8" +dependencies = [ + "audio-core", + "num-traits", +] + +[[package]] +name = "audioadapter-buffers" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9097d67933fb083d382ce980430afdb758aada60846010aee6be068c06cef0ca" +dependencies = [ + "audioadapter", + "audioadapter-sample", + "num-traits", +] + +[[package]] +name = "audioadapter-sample" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ab94f2bc04a14e1f49ee5f222f66460e8a1b51627bdfedf34eed394d747938" +dependencies = [ + "audio-core", + "num-traits", +] + [[package]] name = "autocfg" version = "1.5.1" @@ -586,7 +624,7 @@ name = "bevy_animation_macros" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "quote", "syn", ] @@ -681,7 +719,7 @@ name = "bevy_asset_macros" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "proc-macro2", "quote", "syn", @@ -820,7 +858,7 @@ name = "bevy_derive" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "quote", "syn", ] @@ -905,7 +943,7 @@ name = "bevy_ecs_macro_logic" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "proc-macro2", "quote", "syn", @@ -917,7 +955,7 @@ version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ "bevy_ecs_macro_logic", - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "proc-macro2", "quote", "syn", @@ -928,7 +966,7 @@ name = "bevy_encase_derive" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "encase_derive_impl", ] @@ -1005,7 +1043,7 @@ name = "bevy_gizmos_macros" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "quote", "syn", ] @@ -1234,6 +1272,18 @@ dependencies = [ "tracing-wasm", ] +[[package]] +name = "bevy_macro_utils" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "746a19912c6dc1bbe79188778573e8a253d5832c696b2fcb95578c17b29ff7ba" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "toml_edit 0.25.12+spec-1.1.0", +] + [[package]] name = "bevy_macro_utils" version = "0.19.0" @@ -1242,7 +1292,7 @@ dependencies = [ "proc-macro2", "quote", "syn", - "toml_edit", + "toml_edit 0.25.12+spec-1.1.0", ] [[package]] @@ -1272,7 +1322,7 @@ name = "bevy_material_macros" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "quote", "syn", ] @@ -1286,7 +1336,7 @@ dependencies = [ "arrayvec", "bevy_reflect", "derive_more", - "glam", + "glam 0.32.1", "itertools", "libm", "rand 0.10.2", @@ -1315,7 +1365,7 @@ dependencies = [ "bytemuck", "derive_more", "encase", - "glam", + "glam 0.32.1", "half", "hexasphere", "thiserror 2.0.18", @@ -1468,7 +1518,7 @@ dependencies = [ "downcast-rs 2.0.2", "erased-serde", "foldhash 0.2.0", - "glam", + "glam 0.32.1", "indexmap", "inventory", "petgraph 0.8.3", @@ -1486,7 +1536,7 @@ name = "bevy_reflect_derive" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "indexmap", "proc-macro2", "quote", @@ -1528,7 +1578,7 @@ dependencies = [ "derive_more", "downcast-rs 2.0.2", "encase", - "glam", + "glam 0.32.1", "image", "indexmap", "itertools", @@ -1552,7 +1602,7 @@ name = "bevy_render_macros" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "proc-macro2", "quote", "syn", @@ -1584,7 +1634,44 @@ version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ "bevy_ecs_macro_logic", - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bevy_seedling" +version = "0.8.0" +source = "git+https://github.com/CorvusPrudens/bevy_seedling?branch=master#af1b73c85bec26a17f6c69b973068d51ed84ed42" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_diagnostic", + "bevy_ecs", + "bevy_log", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_seedling_macros", + "bevy_time", + "bevy_transform", + "bevy_utils", + "cpal 0.18.1", + "firewheel", + "firewheel-ircam-hrtf", + "rand 0.10.2", + "smallvec", + "symphonia", + "symphonium", +] + +[[package]] +name = "bevy_seedling_macros" +version = "0.7.0" +source = "git+https://github.com/CorvusPrudens/bevy_seedling?branch=master#af1b73c85bec26a17f6c69b973068d51ed84ed42" +dependencies = [ + "bevy_macro_utils 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2", "quote", "syn", @@ -1686,7 +1773,7 @@ name = "bevy_state_macros" version = "0.19.0" source = "git+https://github.com/processing/bevy?branch=main#9da7c6250114ee8613ae54ab3ad7bb7e43a2f91b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.19.0 (git+https://github.com/processing/bevy?branch=main)", "quote", "syn", ] @@ -2275,6 +2362,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "cocoa" version = "0.20.2" @@ -2582,7 +2678,7 @@ dependencies = [ "jni 0.21.1", "js-sys", "libc", - "mach2", + "mach2 0.5.0", "ndk", "ndk-context", "num-derive", @@ -2600,6 +2696,38 @@ dependencies = [ "windows 0.62.2", ] +[[package]] +name = "cpal" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f77b11176c37874be37e8d691c946e31b2b8c357abce9526f6a99eb469e1028" +dependencies = [ + "alsa", + "block2 0.6.2", + "coreaudio-rs", + "dasp_sample", + "jni 0.22.4", + "js-sys", + "libc", + "mach2 0.6.0", + "ndk", + "ndk-context", + "num-derive", + "num-traits", + "objc2 0.6.4", + "objc2-audio-toolbox", + "objc2-avf-audio", + "objc2-core-audio", + "objc2-core-audio-types", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.62.2", + "windows-core 0.62.2", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -2978,6 +3106,12 @@ dependencies = [ "zune-inflate", ] +[[package]] +name = "extended" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365" + [[package]] name = "fastrand" version = "2.4.1" @@ -3014,6 +3148,158 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +[[package]] +name = "firewheel" +version = "0.10.0" +source = "git+https://github.com/BillyDM/Firewheel?rev=fdf9fbb#fdf9fbb3ec41f9c7c68ed9bad38a37327c5f0c1a" +dependencies = [ + "firewheel-core", + "firewheel-cpal", + "firewheel-graph", + "firewheel-nodes", + "firewheel-rtaudio", + "firewheel-symphonium", + "thiserror 2.0.18", +] + +[[package]] +name = "firewheel-core" +version = "0.10.1" +source = "git+https://github.com/BillyDM/Firewheel?rev=fdf9fbb#fdf9fbb3ec41f9c7c68ed9bad38a37327c5f0c1a" +dependencies = [ + "arrayvec", + "audioadapter", + "audioadapter-buffers", + "audioadapter-sample", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bitflags 2.13.0", + "firewheel-macros", + "glam 0.29.3", + "glam 0.30.10", + "glam 0.31.1", + "glam 0.32.1", + "num-traits", + "portable-atomic", + "ringbuf", + "smallvec", + "thiserror 2.0.18", + "thunderdome", + "wmidi", +] + +[[package]] +name = "firewheel-cpal" +version = "0.10.0" +source = "git+https://github.com/BillyDM/Firewheel?rev=fdf9fbb#fdf9fbb3ec41f9c7c68ed9bad38a37327c5f0c1a" +dependencies = [ + "audioadapter-buffers", + "bevy_platform", + "cpal 0.18.1", + "firewheel-core", + "firewheel-graph", + "fixed-resample", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "firewheel-graph" +version = "0.10.2" +source = "git+https://github.com/BillyDM/Firewheel?rev=fdf9fbb#fdf9fbb3ec41f9c7c68ed9bad38a37327c5f0c1a" +dependencies = [ + "arrayvec", + "audioadapter", + "bevy_platform", + "bevy_reflect", + "bitflags 2.13.0", + "firewheel-core", + "num-traits", + "ringbuf", + "smallvec", + "thiserror 2.0.18", + "thunderdome", + "tracing", + "triple_buffer", + "wasm-bindgen", +] + +[[package]] +name = "firewheel-ircam-hrtf" +version = "0.5.0" +source = "git+https://github.com/CorvusPrudens/bevy_seedling?branch=master#af1b73c85bec26a17f6c69b973068d51ed84ed42" +dependencies = [ + "bevy_ecs", + "bevy_reflect", + "firewheel", + "glam 0.32.1", + "hrtf", +] + +[[package]] +name = "firewheel-macros" +version = "0.10.0" +source = "git+https://github.com/BillyDM/Firewheel?rev=fdf9fbb#fdf9fbb3ec41f9c7c68ed9bad38a37327c5f0c1a" +dependencies = [ + "bevy_macro_utils 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "syn", + "toml_edit 0.23.10+spec-1.0.0", +] + +[[package]] +name = "firewheel-nodes" +version = "0.10.0" +source = "git+https://github.com/BillyDM/Firewheel?rev=fdf9fbb#fdf9fbb3ec41f9c7c68ed9bad38a37327c5f0c1a" +dependencies = [ + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "firewheel-core", + "num-traits", + "smallvec", + "thiserror 2.0.18", + "triple_buffer", +] + +[[package]] +name = "firewheel-rtaudio" +version = "0.10.0" +source = "git+https://github.com/BillyDM/Firewheel?rev=fdf9fbb#fdf9fbb3ec41f9c7c68ed9bad38a37327c5f0c1a" +dependencies = [ + "audioadapter-buffers", + "bevy_platform", + "firewheel-core", + "firewheel-graph", + "rtaudio", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "firewheel-symphonium" +version = "0.10.0" +source = "git+https://github.com/BillyDM/Firewheel?rev=fdf9fbb#fdf9fbb3ec41f9c7c68ed9bad38a37327c5f0c1a" +dependencies = [ + "bevy_platform", + "firewheel-core", + "symphonium", +] + +[[package]] +name = "fixed-resample" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119588c9d2456c65ddbe9360b8643d77de3c2b6c4a588eb2fdb512d715167be3" +dependencies = [ + "audioadapter", + "audioadapter-buffers", + "ringbuf", + "rubato 2.0.0", +] + [[package]] name = "fixedbitset" version = "0.5.7" @@ -3331,6 +3617,24 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "glam" +version = "0.29.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" + +[[package]] +name = "glam" +version = "0.30.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9" + +[[package]] +name = "glam" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556f6b2ea90b8d15a74e0e7bb41671c9bdf38cd9f78c284d750b9ce58a2b5be7" + [[package]] name = "glam" version = "0.32.1" @@ -3589,7 +3893,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "177ea6330876de4ef08e184f827b98acc037614a4ce409902c5b0d53a9c2e951" dependencies = [ "constgebra", - "glam", + "glam 0.32.1", "tinyvec", ] @@ -3608,6 +3912,17 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "hrtf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4de47a84fd55fa33aa5ef337016814fdc869fdad23e7898b5322fa290248e6" +dependencies = [ + "byteorder", + "rubato 0.14.1", + "rustfft", +] + [[package]] name = "icu_collections" version = "2.2.0" @@ -4364,6 +4679,12 @@ dependencies = [ "libc", ] +[[package]] +name = "mach2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b" + [[package]] name = "malloc_buf" version = "0.0.6" @@ -4817,6 +5138,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + [[package]] name = "num-derive" version = "0.4.2" @@ -4973,6 +5303,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13a380031deed8e99db00065c45937da434ca987c034e13b87e4441f9e4090be" dependencies = [ + "bitflags 2.13.0", "objc2 0.6.4", "objc2-foundation 0.3.2", ] @@ -5642,13 +5973,22 @@ dependencies = [ "syn", ] +[[package]] +name = "primal-check" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc0d895b311e3af9902528fbb8f928688abbd95872819320517cc24ca6b2bd08" +dependencies = [ + "num-integer", +] + [[package]] name = "proc-macro-crate" version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit", + "toml_edit 0.25.12+spec-1.1.0", ] [[package]] @@ -5666,6 +6006,7 @@ version = "0.0.7" dependencies = [ "bevy", "js-sys", + "processing_audio", "processing_core", "processing_cuda", "processing_glfw", @@ -5680,6 +6021,14 @@ dependencies = [ "web-sys", ] +[[package]] +name = "processing_audio" +version = "0.1.0" +dependencies = [ + "bevy", + "bevy_seedling", +] + [[package]] name = "processing_core" version = "0.0.5" @@ -6098,6 +6447,15 @@ dependencies = [ "font-types", ] +[[package]] +name = "realfft" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f821338fddb99d089116342c46e9f1fbf3828dba077674613e734e01d6ea8677" +dependencies = [ + "rustfft", +] + [[package]] name = "rectangle-pack" version = "0.4.2" @@ -6154,6 +6512,12 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "regex-lite" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" + [[package]] name = "regex-syntax" version = "0.8.11" @@ -6175,13 +6539,24 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "ringbuf" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe47b720588c8702e34b5979cb3271a8b1842c7cb6f57408efa70c779363488c" +dependencies = [ + "crossbeam-utils", + "portable-atomic", + "portable-atomic-util", +] + [[package]] name = "rodio" version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a536bb79db59098ef71a4dd4246c02eb87b316deceb1b68e0cde7167ec01eb" dependencies = [ - "cpal", + "cpal 0.17.3", "dasp_sample", "lewton", "num-rational", @@ -6203,6 +6578,56 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "rtaudio" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7384a8837efe4abea0e53f3887b5072cbbd1ee95c298cff4fbd7a9f3ff23a48b" +dependencies = [ + "bitflags 2.13.0", + "rtaudio-sys", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "rtaudio-sys" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "931ec9a72c48e96e8e2f9868aef1d4e452723354779d01159f7399647427b57b" +dependencies = [ + "cmake", + "pkg-config", +] + +[[package]] +name = "rubato" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6dd52e80cfc21894deadf554a5673002938ae4625f7a283e536f9cf7c17b0d5" +dependencies = [ + "num-complex", + "num-integer", + "num-traits", + "realfft", +] + +[[package]] +name = "rubato" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce96ead1a91f7895704a9f08ea5947dfc8bd7c1f2936a22295b655ec67e5c6ef" +dependencies = [ + "audioadapter", + "audioadapter-buffers", + "num-complex", + "num-integer", + "num-traits", + "realfft", + "visibility", + "windowfunctions", +] + [[package]] name = "rustc-hash" version = "1.1.0" @@ -6218,6 +6643,20 @@ dependencies = [ "semver", ] +[[package]] +name = "rustfft" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21db5f9893e91f41798c88680037dba611ca6674703c1a18601b01a72c8adb89" +dependencies = [ + "num-complex", + "num-integer", + "num-traits", + "primal-check", + "strength_reduce", + "transpose", +] + [[package]] name = "rustix" version = "0.38.44" @@ -6558,6 +6997,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strength_reduce" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" + [[package]] name = "strict-num" version = "0.1.1" @@ -6599,6 +7044,116 @@ dependencies = [ "zeno", ] +[[package]] +name = "symphonia" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1758d6c853020a7244de03cc3e0185eaea3f58715122422dd3cc7452e6d4c16a" +dependencies = [ + "lazy_static", + "symphonia-codec-pcm", + "symphonia-codec-vorbis", + "symphonia-core", + "symphonia-format-ogg", + "symphonia-format-riff", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-codec-pcm" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50baee168f0e9dcf6ba7fc06e8b57eb62072a4490cc7cf13af77e72baae5d328" +dependencies = [ + "log", + "symphonia-core", +] + +[[package]] +name = "symphonia-codec-vorbis" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45b07b4423cd8e0fc472575909a5554b12c2f58e3c190b38c24f042e732fd8de" +dependencies = [ + "log", + "symphonia-common", + "symphonia-core", +] + +[[package]] +name = "symphonia-common" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8257891ffa7f05e02b58f4761e2abf7e5278c8744fd59e981559e050f86eef55" +dependencies = [ + "log", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-core" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ec293b5f288383b72a7bffcade6b2860b642cf66f28b3bd5967349a49938b1" +dependencies = [ + "bitflags 2.13.0", + "bytemuck", + "lazy_static", + "log", + "num-complex", + "rustfft", + "smallvec", +] + +[[package]] +name = "symphonia-format-ogg" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05a67e02b1e4fca1a261ba4fe06910a9357489ad8c36aafdd2960e9c6559433" +dependencies = [ + "log", + "symphonia-common", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-format-riff" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17424452a777666d3eaf09a5c651029b15b6a333812fcc5b5474f2a3f0cff3f0" +dependencies = [ + "extended", + "log", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-metadata" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31acf5cd623398a6208e2225d18f4b20f761c55098a796a5247ad516a4a8681" +dependencies = [ + "lazy_static", + "log", + "regex-lite", + "smallvec", + "symphonia-core", +] + +[[package]] +name = "symphonium" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cefe2d9bc8dae6238683ddf49b1de6da6dd2349d3d279ec266d3c4abedaa4702" +dependencies = [ + "fixed-resample", + "symphonia", + "tracing", +] + [[package]] name = "syn" version = "2.0.118" @@ -6742,6 +7297,12 @@ dependencies = [ "cfg-if 1.0.4", ] +[[package]] +name = "thunderdome" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e170f93360bf9ae6fe3c31116bbf27adb1d054cedd6bc3d7857e34f2d98d0b" + [[package]] name = "tiff" version = "0.11.3" @@ -6840,6 +7401,18 @@ dependencies = [ "serde_core", ] +[[package]] +name = "toml_edit" +version = "0.23.10+spec-1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +dependencies = [ + "indexmap", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "winnow 0.7.15", +] + [[package]] name = "toml_edit" version = "0.25.12+spec-1.1.0" @@ -6951,6 +7524,25 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "transpose" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e" +dependencies = [ + "num-integer", + "strength_reduce", +] + +[[package]] +name = "triple_buffer" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e875ab7068a75b74f419da453927e05527c36f0001b3c7aad3ce443640683487" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "ttf-parser" version = "0.25.1" @@ -7089,6 +7681,17 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "visibility" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -7603,6 +8206,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windowfunctions" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90628d739333b7c5d2ee0b70210b97b8cddc38440c682c96fd9e2c24c2db5f3a" +dependencies = [ + "num-traits", +] + [[package]] name = "windows" version = "0.58.0" @@ -8065,6 +8677,9 @@ name = "winnow" version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] [[package]] name = "winnow" @@ -8081,6 +8696,12 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wmidi" +version = "4.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b1b1e28ac6301b1c097d21c11130090f7ecc5db9d5ef4e52595ab942f8d76d5" + [[package]] name = "writeable" version = "0.6.3" diff --git a/Cargo.toml b/Cargo.toml index a7cb47d..11c7f4d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,37 @@ type_complexity = "allow" too_many_arguments = "allow" [workspace.dependencies] -bevy = { git = "https://github.com/processing/bevy", branch = "main", features = ["file_watcher", "shader_format_wesl", "free_camera", "pan_camera"] } +bevy = { git = "https://github.com/processing/bevy", branch = "main", default-features = false, features = [ + # 2d + "2d_bevy_render", + "default_app", + "picking", + "scene", + + # 3d + "3d_bevy_render", + + # ui + "ui_api", + "ui_bevy_render", + + # default_platform + "android-game-activity", + "bevy_gilrs", + "bevy_winit", + "default_font", + "multi_threaded", + "std", + "sysinfo_plugin", + "wayland", + "webgl2", + "x11", + "file_watcher", + "shader_format_wesl", + "free_camera", + "pan_camera", + +] } bevy_naga_reflect = { git = "https://github.com/tychedelia/bevy_naga_reflect" } bevy_cuda = { git = "https://github.com/tychedelia/bevy_cuda" } naga = { version = "29", features = ["wgsl-in"] } @@ -36,6 +66,7 @@ processing_cuda = { path = "crates/processing_cuda" } processing_pyo3 = { path = "crates/processing_pyo3" } processing_render = { path = "crates/processing_render" } processing_midi = { path = "crates/processing_midi" } +processing_audio = { path = "crates/processing_audio" } processing_input = { path = "crates/processing_input" } processing_glfw = { path = "crates/processing_glfw" } processing_webcam = { path = "crates/processing_webcam" } @@ -47,6 +78,7 @@ bevy = { workspace = true } processing_core = { workspace = true } processing_render = { workspace = true } processing_midi = { workspace = true } +processing_audio = { workspace = true } processing_input = { workspace = true } processing_webcam = { workspace = true, optional = true } processing_cuda = { workspace = true, optional = true } @@ -65,11 +97,24 @@ rand = { workspace = true } [target.'cfg(target_os = "linux")'.dev-dependencies] processing_glfw = { workspace = true, features = ["wayland"] } +## TODO: Remove these patches once we've moved back to depending on upstream bevy [patch."https://github.com/bevyengine/bevy"] bevy = { git = "https://github.com/processing/bevy", branch = "main" } [patch.crates-io] bevy = { git = "https://github.com/processing/bevy", branch = "main" } +# bevy_seedling depends on bevy sub-crates directly, so they must be patched too +bevy_app = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_asset = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_diagnostic = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_ecs = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_log = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_math = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_platform = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_reflect = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_time = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_transform = { git = "https://github.com/processing/bevy", branch = "main" } +bevy_utils = { git = "https://github.com/processing/bevy", branch = "main" } [[example]] name = "rectangle" diff --git a/crates/processing_audio/Cargo.toml b/crates/processing_audio/Cargo.toml new file mode 100644 index 0000000..ebc8ad8 --- /dev/null +++ b/crates/processing_audio/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "processing_audio" +version = "0.1.0" +edition = "2024" + +[dependencies] +bevy = { workspace = true } +bevy_seedling = { git = "https://github.com/CorvusPrudens/bevy_seedling", branch = "master" } + +[lints] +workspace = true diff --git a/crates/processing_audio/src/lib.rs b/crates/processing_audio/src/lib.rs new file mode 100644 index 0000000..b962063 --- /dev/null +++ b/crates/processing_audio/src/lib.rs @@ -0,0 +1,10 @@ +use bevy::prelude::*; +use bevy_seedling::prelude::*; + +pub struct AudioPlugin; + +impl Plugin for AudioPlugin { + fn build(&self, app: &mut App) { + app.add_plugins(SeedlingPlugins); + } +}