diff --git a/Cargo.lock b/Cargo.lock index 972ef38b..24192124 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,14 +37,24 @@ dependencies = [ "hashbrown 0.16.1", ] +[[package]] +name = "accesskit_consumer" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25e0d7e25d06f4dc21d1774d67146e9e80d6789216cbd4d1e88185b0095dba60" +dependencies = [ + "accesskit", + "hashbrown 0.16.1", +] + [[package]] name = "accesskit_macos" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534bc3fdc89a64a1db3c46b33c198fde2b7c3c7d094e5809c8c8bf2970c18243" +checksum = "4c5c87e8d94f2ec10cce590aadff24c76f576dab5502d45d0aed9fc3065d4451" dependencies = [ "accesskit", - "accesskit_consumer", + "accesskit_consumer 0.36.0", "hashbrown 0.16.1", "objc2 0.5.2", "objc2-app-kit 0.2.2", @@ -58,7 +68,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eff7009f1a532e917d66970a1e80c965140c6cfbbabbdde3d64e5431e6c78e21" dependencies = [ "accesskit", - "accesskit_consumer", + "accesskit_consumer 0.35.0", "hashbrown 0.16.1", "static_assertions", "windows 0.62.2", @@ -206,9 +216,9 @@ dependencies = [ [[package]] name = "annotate-snippets" -version = "0.12.15" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92570a3f9c98e7e84df84b71d0965ac99b1871fcd75a3773a3bd1bad13f64cf7" +checksum = "f211a51805bc641f3ad5b7664c77d2547af685cc33b4cd8d31964027a46f13f1" dependencies = [ "anstyle", "memchr", @@ -501,9 +511,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" +checksum = "e7178fe5f7d460b13895ebb9dcb28a3a6216d2df2574a0806cb51b555d297f38" dependencies = [ "arrayvec", ] @@ -517,7 +527,7 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bevy" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_internal", ] @@ -525,7 +535,7 @@ dependencies = [ [[package]] name = "bevy_a11y" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "accesskit", "bevy_app", @@ -537,7 +547,7 @@ dependencies = [ [[package]] name = "bevy_android" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "android-activity", ] @@ -545,7 +555,7 @@ dependencies = [ [[package]] name = "bevy_animation" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_animation_macros", "bevy_app", @@ -577,7 +587,7 @@ dependencies = [ [[package]] name = "bevy_animation_macros" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "quote", @@ -587,7 +597,7 @@ dependencies = [ [[package]] name = "bevy_anti_alias" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -608,7 +618,7 @@ dependencies = [ [[package]] name = "bevy_app" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_derive", "bevy_ecs", @@ -629,7 +639,7 @@ dependencies = [ [[package]] name = "bevy_asset" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "async-broadcast", "async-channel", @@ -672,7 +682,7 @@ dependencies = [ [[package]] name = "bevy_asset_macros" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -683,7 +693,7 @@ dependencies = [ [[package]] name = "bevy_audio" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -698,7 +708,7 @@ dependencies = [ [[package]] name = "bevy_camera" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -723,7 +733,7 @@ dependencies = [ [[package]] name = "bevy_camera_controller" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_camera", @@ -740,7 +750,7 @@ dependencies = [ [[package]] name = "bevy_clipboard" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_ecs", @@ -754,7 +764,7 @@ dependencies = [ [[package]] name = "bevy_color" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_math", "bevy_reflect", @@ -769,7 +779,7 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -811,7 +821,7 @@ dependencies = [ [[package]] name = "bevy_derive" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "quote", @@ -821,7 +831,7 @@ dependencies = [ [[package]] name = "bevy_dev_tools" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -852,7 +862,7 @@ dependencies = [ [[package]] name = "bevy_diagnostic" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "atomic-waker", "bevy_app", @@ -869,7 +879,7 @@ dependencies = [ [[package]] name = "bevy_ecs" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "arrayvec", "bevy_ecs_macros", @@ -896,7 +906,7 @@ dependencies = [ [[package]] name = "bevy_ecs_macros" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -907,7 +917,7 @@ dependencies = [ [[package]] name = "bevy_encase_derive" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -916,7 +926,7 @@ dependencies = [ [[package]] name = "bevy_feathers" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "accesskit", "bevy_a11y", @@ -947,7 +957,7 @@ dependencies = [ [[package]] name = "bevy_gilrs" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_ecs", @@ -962,7 +972,7 @@ dependencies = [ [[package]] name = "bevy_gizmos" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -984,7 +994,7 @@ dependencies = [ [[package]] name = "bevy_gizmos_macros" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "quote", @@ -994,7 +1004,7 @@ dependencies = [ [[package]] name = "bevy_gizmos_render" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1022,7 +1032,7 @@ dependencies = [ [[package]] name = "bevy_gltf" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "async-lock", "base64", @@ -1057,7 +1067,7 @@ dependencies = [ [[package]] name = "bevy_image" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1085,7 +1095,7 @@ dependencies = [ [[package]] name = "bevy_input" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_ecs", @@ -1101,7 +1111,7 @@ dependencies = [ [[package]] name = "bevy_input_focus" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_ecs", @@ -1117,7 +1127,7 @@ dependencies = [ [[package]] name = "bevy_internal" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_a11y", "bevy_android", @@ -1176,7 +1186,7 @@ dependencies = [ [[package]] name = "bevy_light" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1200,7 +1210,7 @@ dependencies = [ [[package]] name = "bevy_log" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "android_log-sys", "bevy_app", @@ -1217,7 +1227,7 @@ dependencies = [ [[package]] name = "bevy_macro_utils" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "proc-macro2", "quote", @@ -1228,7 +1238,7 @@ dependencies = [ [[package]] name = "bevy_material" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_asset", "bevy_derive", @@ -1250,7 +1260,7 @@ dependencies = [ [[package]] name = "bevy_material_macros" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "quote", @@ -1260,7 +1270,7 @@ dependencies = [ [[package]] name = "bevy_math" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "approx", "arrayvec", @@ -1279,7 +1289,7 @@ dependencies = [ [[package]] name = "bevy_mesh" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1303,22 +1313,6 @@ dependencies = [ "wgpu-types", ] -[[package]] -name = "bevy_midi" -version = "0.13.0" -source = "git+https://github.com/BlackPhlox/bevy_midi?branch=latest#79963a94198b158de0ca0913942bb2d088f900b2" -dependencies = [ - "bevy", - "crossbeam-channel", - "getrandom 0.3.4", - "js-sys", - "midir", - "send_wrapper", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "bevy_mikktspace" version = "1.0.0" @@ -1337,7 +1331,7 @@ dependencies = [ [[package]] name = "bevy_pbr" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "arrayvec", "bevy_app", @@ -1379,7 +1373,7 @@ dependencies = [ [[package]] name = "bevy_picking" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1402,7 +1396,7 @@ dependencies = [ [[package]] name = "bevy_platform" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "critical-section", "foldhash 0.2.0", @@ -1423,7 +1417,7 @@ dependencies = [ [[package]] name = "bevy_post_process" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1447,12 +1441,12 @@ dependencies = [ [[package]] name = "bevy_ptr" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" [[package]] name = "bevy_reflect" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "assert_type_match", "bevy_platform", @@ -1480,7 +1474,7 @@ dependencies = [ [[package]] name = "bevy_reflect_derive" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "indexmap", @@ -1493,7 +1487,7 @@ dependencies = [ [[package]] name = "bevy_render" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "async-channel", "bevy_app", @@ -1546,7 +1540,7 @@ dependencies = [ [[package]] name = "bevy_render_macros" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1557,7 +1551,7 @@ dependencies = [ [[package]] name = "bevy_scene" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1576,7 +1570,7 @@ dependencies = [ [[package]] name = "bevy_scene_macros" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1587,7 +1581,7 @@ dependencies = [ [[package]] name = "bevy_shader" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_asset", "bevy_platform", @@ -1606,7 +1600,7 @@ dependencies = [ [[package]] name = "bevy_sprite" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1631,7 +1625,7 @@ dependencies = [ [[package]] name = "bevy_sprite_render" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1663,7 +1657,7 @@ dependencies = [ [[package]] name = "bevy_state" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_ecs", @@ -1678,7 +1672,7 @@ dependencies = [ [[package]] name = "bevy_state_macros" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_macro_utils", "quote", @@ -1688,7 +1682,7 @@ dependencies = [ [[package]] name = "bevy_tasks" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "async-channel", "async-executor", @@ -1706,7 +1700,7 @@ dependencies = [ [[package]] name = "bevy_text" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1734,7 +1728,7 @@ dependencies = [ [[package]] name = "bevy_time" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_ecs", @@ -1748,7 +1742,7 @@ dependencies = [ [[package]] name = "bevy_transform" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_ecs", @@ -1764,7 +1758,7 @@ dependencies = [ [[package]] name = "bevy_ui" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "accesskit", "bevy_a11y", @@ -1801,7 +1795,7 @@ dependencies = [ [[package]] name = "bevy_ui_render" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1833,7 +1827,7 @@ dependencies = [ [[package]] name = "bevy_ui_widgets" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "accesskit", "bevy_a11y", @@ -1856,7 +1850,7 @@ dependencies = [ [[package]] name = "bevy_utils" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "async-channel", "bevy_platform", @@ -1868,7 +1862,7 @@ dependencies = [ [[package]] name = "bevy_window" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -1886,7 +1880,7 @@ dependencies = [ [[package]] name = "bevy_winit" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "accesskit", "accesskit_winit", @@ -1918,7 +1912,7 @@ dependencies = [ [[package]] name = "bevy_world_serialization" version = "0.19.0-dev" -source = "git+https://github.com/processing/bevy?branch=main#ee443e512e8d8e796a89d91f019c7e37054b8011" +source = "git+https://github.com/processing/bevy?branch=main#d4f1490ff670373f52b9e106a6140001ceb2373a" dependencies = [ "bevy_app", "bevy_asset", @@ -2177,9 +2171,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.61" +version = "1.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" +checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" dependencies = [ "find-msvc-tools", "jobserver", @@ -2693,7 +2687,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" dependencies = [ "dispatch2", - "nix 0.31.2", + "nix 0.31.3", "windows-sys 0.61.2", ] @@ -2980,23 +2974,9 @@ checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "fax" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" -dependencies = [ - "fax_derive", -] - -[[package]] -name = "fax_derive" -version = "0.2.0" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" [[package]] name = "fdeflate" @@ -3089,7 +3069,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c20b425addb8661e97fe1d51c4d8bcec3ec29ed6ad0db983976a7521276b8f7" dependencies = [ - "hashbrown 0.17.0", + "hashbrown 0.17.1", "linebender_resource_handle", "memmap2", "parlance", @@ -3327,7 +3307,7 @@ dependencies = [ "vec_map", "wasm-bindgen", "web-sys", - "windows 0.56.0", + "windows 0.62.2", ] [[package]] @@ -3463,7 +3443,7 @@ dependencies = [ "log", "presser", "thiserror 2.0.18", - "windows 0.56.0", + "windows 0.62.2", ] [[package]] @@ -3562,18 +3542,18 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.17.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ "foldhash 0.2.0", ] [[package]] name = "heapless" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed" +checksum = "25ba4bd83f9415b58b4ed8dc5714c76e626a105be4646c02630ad730ad3b5aa4" dependencies = [ "hash32", "portable-atomic", @@ -3787,9 +3767,9 @@ dependencies = [ [[package]] name = "imgref" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" +checksum = "40fac9d56ed6437b198fddba683305e8e2d651aa42647f00f5ae542e7f5c94a2" [[package]] name = "indexmap" @@ -3798,7 +3778,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.17.0", + "hashbrown 0.17.1", "serde", "serde_core", ] @@ -3956,9 +3936,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.95" +version = "0.3.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" +checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" dependencies = [ "cfg-if 1.0.4", "futures-util", @@ -4004,11 +3984,11 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +checksum = "285efcf12ef41bec907b3000d5ffaeb54191d4d9d83c0d6157e6cbc2db255e64" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.11.1", "libc", ] @@ -4194,7 +4174,7 @@ dependencies = [ "bitflags 2.11.1", "libc", "plain", - "redox_syscall 0.7.4", + "redox_syscall 0.7.5", ] [[package]] @@ -4305,9 +4285,9 @@ dependencies = [ [[package]] name = "lyon_algorithms" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9815fac08e6fd96733a11dce4f9d15a3f338e96a2e2311ee21e1b738efc2bc0f" +checksum = "8575c0d003ae459399623c4def180c63b77f343b1a7fee64f249b349e7699a31" dependencies = [ "lyon_path", "num-traits", @@ -4494,9 +4474,9 @@ dependencies = [ [[package]] name = "naga" -version = "29.0.1" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2630921705b9b01dcdd0b6864b9562ca3c1951eecd0f0c4f5f04f61e412647" +checksum = "0dd91265cc2454558f659b3b4b9640f0ddb8cc6521277f166b8a8c181c898079" dependencies = [ "arrayvec", "bit-set 0.9.1", @@ -4537,10 +4517,20 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "nannou_midi" +version = "0.1.0" +source = "git+https://github.com/nannou-org/nannou?branch=bevy-refactor#f7f7f10bae536d4318c7a027aaa612886b8ac286" +dependencies = [ + "bevy", + "crossbeam-channel", + "midir", +] + [[package]] name = "nannou_webcam" version = "0.1.0" -source = "git+https://github.com/nannou-org/nannou?branch=bevy-refactor#da69830a7fd1b40045b14aa18b28d5d51e02ee49" +source = "git+https://github.com/nannou-org/nannou?branch=bevy-refactor#f7f7f10bae536d4318c7a027aaa612886b8ac286" dependencies = [ "bevy", "console_error_panic_hook", @@ -4620,9 +4610,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.31.2" +version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ "bitflags 2.11.1", "cfg-if 1.0.4", @@ -4632,9 +4622,9 @@ dependencies = [ [[package]] name = "no_std_io2" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b51ed7824b6e07d354605f4abb3d9d300350701299da96642ee084f5ce631550" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" dependencies = [ "memchr", ] @@ -5343,9 +5333,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "orbclient" -version = "0.3.53" +version = "0.3.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12c6933ddbbd16539a7672e697bb8d41ac3a4e99ac43eeb40c07236bd7fcb2dd" +checksum = "a570f6bca41d29acb2139229a7c873ec99bc9a313bd10804081d89bfac8ff329" dependencies = [ "libc", "libredox", @@ -5412,7 +5402,7 @@ checksum = "8fad031076f48f0d4d85ce1aea9b94b4e715a4d636a030a123038f8f5b5e4343" dependencies = [ "fontique", "harfrust", - "hashbrown 0.17.0", + "hashbrown 0.17.1", "icu_normalizer", "icu_properties", "icu_segmenter", @@ -5489,18 +5479,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", @@ -5720,7 +5710,7 @@ name = "processing_midi" version = "0.0.5" dependencies = [ "bevy", - "bevy_midi", + "nannou_midi", "processing_core", ] @@ -5787,18 +5777,18 @@ dependencies = [ [[package]] name = "profiling" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" +checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" dependencies = [ "profiling-procmacros", ] [[package]] name = "profiling-procmacros" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" +checksum = "4488a4a36b9a4ba6b9334a32a39971f77c1436ec82c38707bce707699cc3bbcb" dependencies = [ "quote", "syn", @@ -5813,7 +5803,7 @@ checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f" [[package]] name = "pyo3" version = "0.28.3" -source = "git+https://github.com/PyO3/pyo3?branch=main#20781441337e84362bce32e43363a199a6182aab" +source = "git+https://github.com/PyO3/pyo3?branch=main#7cc707dbc20c16a7113fe442c87b3faa148ce340" dependencies = [ "inventory", "libc", @@ -5827,7 +5817,7 @@ dependencies = [ [[package]] name = "pyo3-build-config" version = "0.28.3" -source = "git+https://github.com/PyO3/pyo3?branch=main#20781441337e84362bce32e43363a199a6182aab" +source = "git+https://github.com/PyO3/pyo3?branch=main#7cc707dbc20c16a7113fe442c87b3faa148ce340" dependencies = [ "target-lexicon", ] @@ -5835,7 +5825,7 @@ dependencies = [ [[package]] name = "pyo3-ffi" version = "0.28.3" -source = "git+https://github.com/PyO3/pyo3?branch=main#20781441337e84362bce32e43363a199a6182aab" +source = "git+https://github.com/PyO3/pyo3?branch=main#7cc707dbc20c16a7113fe442c87b3faa148ce340" dependencies = [ "libc", "pyo3-build-config", @@ -5844,7 +5834,7 @@ dependencies = [ [[package]] name = "pyo3-introspection" version = "0.28.3" -source = "git+https://github.com/PyO3/pyo3?branch=main#20781441337e84362bce32e43363a199a6182aab" +source = "git+https://github.com/PyO3/pyo3?branch=main#7cc707dbc20c16a7113fe442c87b3faa148ce340" dependencies = [ "anyhow", "goblin", @@ -5855,7 +5845,7 @@ dependencies = [ [[package]] name = "pyo3-macros" version = "0.28.3" -source = "git+https://github.com/PyO3/pyo3?branch=main#20781441337e84362bce32e43363a199a6182aab" +source = "git+https://github.com/PyO3/pyo3?branch=main#7cc707dbc20c16a7113fe442c87b3faa148ce340" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -5866,7 +5856,7 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" version = "0.28.3" -source = "git+https://github.com/PyO3/pyo3?branch=main#20781441337e84362bce32e43363a199a6182aab" +source = "git+https://github.com/PyO3/pyo3?branch=main#7cc707dbc20c16a7113fe442c87b3faa148ce340" dependencies = [ "heck", "proc-macro2", @@ -5891,9 +5881,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.39.2" +version = "0.39.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958f21e8e7ceb5a1aa7fa87fab28e7c75976e0bfe7e23ff069e0a260f894067d" +checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" dependencies = [ "memchr", ] @@ -6122,9 +6112,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a" +checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b" dependencies = [ "bitflags 2.11.1", ] @@ -6250,9 +6240,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ruzstd" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01" +checksum = "a7c1c839d570d835527c9a5e4db7cb2198683a988cb9d7293fc8674e6bd58fc8" dependencies = [ "twox-hash", ] @@ -6433,9 +6423,9 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "siphasher" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" [[package]] name = "skrifa" @@ -7127,9 +7117,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.118" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" +checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" dependencies = [ "cfg-if 1.0.4", "once_cell", @@ -7140,9 +7130,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.68" +version = "0.4.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" +checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" dependencies = [ "js-sys", "wasm-bindgen", @@ -7150,9 +7140,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.118" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" +checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7160,9 +7150,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.118" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" +checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" dependencies = [ "bumpalo", "proc-macro2", @@ -7173,9 +7163,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.118" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" +checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" dependencies = [ "unicode-ident", ] @@ -7331,9 +7321,9 @@ checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549" [[package]] name = "web-sys" -version = "0.3.95" +version = "0.3.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" +checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" dependencies = [ "js-sys", "wasm-bindgen", @@ -7400,9 +7390,9 @@ dependencies = [ [[package]] name = "wgpu" -version = "29.0.1" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c239a9a747bbd379590985bac952c2e53cb19873f7072b3370c6a6a8e06837" +checksum = "bb3feacc458f7bee8bc1737149b42b6c731aa461039a4264a67bb6681646b250" dependencies = [ "arrayvec", "bitflags 2.11.1", @@ -7430,9 +7420,9 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "29.0.1" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e80ac6cf1895df6342f87d975162108f9d98772a0d74bc404ab7304ac29469e" +checksum = "02da3ad1b568337f25513b317870960ef87073ea0945502e44b864b67a8c77b7" dependencies = [ "arrayvec", "bit-set 0.9.1", @@ -7464,45 +7454,45 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" -version = "29.0.0" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43acd053312501689cd92a01a9638d37f3e41a5fd9534875efa8917ee2d11ac0" +checksum = "62e51b5447e144b3dbba4feb01f80f4fa21696fa0cd99afb2c3df1affd6fdb28" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-emscripten" -version = "29.0.0" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef043bf135cc68b6f667c55ff4e345ce2b5924d75bad36a47921b0287ca4b24a" +checksum = "3487cd6293a963bc5c0c0396f6a2192043c50003c07f4efdccbad3d90ec9d819" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-wasm" -version = "29.0.0" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7b75e72f49035f000dd5262e4126242e92a090a4fd75931ecfe7e60784e6fa" +checksum = "0c2f2fb042f36920771deb0b966543c5751b18f3d327760ffc90f74e20b2dcd4" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-windows-linux-android" -version = "29.0.0" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "725d5c006a8c02967b6d93ef04f6537ec4593313e330cfe86d9d3f946eb90f28" +checksum = "1bfb01076d0aa08b0ba9bd741e178b5cc440f5abe99d9581323a4c8b5d1a1916" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-hal" -version = "29.0.1" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a47aef47636562f3937285af4c44b4b5b404b46577471411cc5313a921da7e" +checksum = "31f8e1a9e7a8512f276f7c62e018c7fa8d60954303fed2e5750114332049193f" dependencies = [ "android_system_properties", "arrayvec", @@ -7549,13 +7539,14 @@ dependencies = [ "wgpu-types", "windows 0.62.2", "windows-core 0.62.2", + "windows-result 0.4.1", ] [[package]] name = "wgpu-naga-bridge" -version = "29.0.1" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4684f4410da0cf95a4cb63bb5edaac022461dedb6adf0b64d0d9b5f6890d51" +checksum = "59c654c483f058800972c3645e95388a7eca31bf9fe1933bc20e036588a0be02" dependencies = [ "naga", "wgpu-types", @@ -7563,9 +7554,9 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "29.0.1" +version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2675540fb1a5cfa5ef122d3d5f390e2c75711a0b946410f2d6ac3a0f77d1f6" +checksum = "a9bcc31518a0e9735aefebedb5f7a9ef3ed1c42549c9f4c882fa9060ceaac639" dependencies = [ "bitflags 2.11.1", "bytemuck", @@ -8398,9 +8389,9 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] diff --git a/crates/processing_midi/Cargo.toml b/crates/processing_midi/Cargo.toml index 08129031..593cc416 100644 --- a/crates/processing_midi/Cargo.toml +++ b/crates/processing_midi/Cargo.toml @@ -6,7 +6,7 @@ edition = "2024" [dependencies] bevy = { workspace = true } processing_core = { workspace = true } -bevy_midi = { git = "https://github.com/BlackPhlox/bevy_midi", branch = "latest" } +nannou_midi = { git = "https://github.com/nannou-org/nannou", branch = "bevy-refactor" } [lints] workspace = true diff --git a/crates/processing_midi/src/lib.rs b/crates/processing_midi/src/lib.rs index 8ee15d70..c8e9a6ba 100644 --- a/crates/processing_midi/src/lib.rs +++ b/crates/processing_midi/src/lib.rs @@ -1,62 +1,88 @@ use bevy::prelude::*; -use bevy_midi::prelude::*; +use nannou_midi::{MidiOutput, MidiOutputStream, MidiPort, MidiPortDirection}; use processing_core::app_mut; use processing_core::error::{self, Result}; +pub use nannou_midi::{MidiData, MidiMessage}; + pub struct MidiPlugin; pub const NOTE_ON: u8 = 0b1001_0000; pub const NOTE_OFF: u8 = 0b1000_0000; +#[derive(Resource, Default)] +struct ActiveOutput(Option); + impl Plugin for MidiPlugin { fn build(&self, app: &mut App) { - // TODO: Update `bevy_midi` to treat connections as entities - // in order to support hot-plugging - app.insert_resource(MidiOutputSettings { - port_name: "libprocessing output", - }); - - app.add_plugins(MidiOutputPlugin); + app.init_resource::(); + app.add_plugins(nannou_midi::MidiPlugin); } } -pub fn connect(In(port): In, output: Res) -> Result<()> { - match output.ports().get(port) { - Some((_, p)) => { - output.connect(p.clone()); - Ok(()) - } - None => Err(error::ProcessingError::MidiPortNotFound(port)), - } -} - -pub fn disconnect(output: Res) -> Result<()> { - output.disconnect(); - Ok(()) +fn sorted_output_ports(world: &mut World) -> Vec<(Entity, String)> { + let mut q = world.query::<(Entity, &Name, &MidiPort)>(); + let mut ports: Vec<(Entity, String)> = q + .iter(world) + .filter(|(_, _, p)| p.direction == MidiPortDirection::Output) + .map(|(e, n, _)| (e, n.as_str().to_string())) + .collect(); + ports.sort_by(|a, b| a.1.cmp(&b.1)); + ports } -pub fn refresh_ports(output: Res) -> Result<()> { - output.refresh_ports(); - Ok(()) -} - -pub fn list_ports(output: Res) -> Result> { - Ok(output - .ports() - .iter() +pub fn list_ports(world: &mut World) -> Result> { + Ok(sorted_output_ports(world) + .into_iter() .enumerate() - .map(|(i, (name, _))| format!("{}: {}", i, name)) + .map(|(i, (_, name))| format!("{i}: {name}")) .collect()) } -pub fn play_notes(In((note, duration)): In<(u8, u64)>, output: Res) -> Result<()> { - output.send([NOTE_ON, note, 127].into()); // Note on, channel 1, max velocity +pub fn connect(In(port): In, world: &mut World) -> Result<()> { + let port_entity = sorted_output_ports(world) + .get(port) + .map(|(e, _)| *e) + .ok_or(error::ProcessingError::MidiPortNotFound(port))?; + + let previous = world.resource::().0; + if let Some(e) = previous + && let Ok(entity) = world.get_entity_mut(e) + { + entity.despawn(); + } - std::thread::sleep(std::time::Duration::from_millis(duration)); + let connection = world + .spawn(( + Name::new("libprocessing output"), + MidiOutput { + port: Some(port_entity), + }, + )) + .id(); + world.resource_mut::().0 = Some(connection); + Ok(()) +} - output.send([NOTE_OFF, note, 127].into()); // Note off, channel 1, max velocity +pub fn disconnect(world: &mut World) -> Result<()> { + let entity = world.resource_mut::().0.take(); + if let Some(e) = entity + && let Ok(entity_mut) = world.get_entity_mut(e) + { + entity_mut.despawn(); + } + Ok(()) +} +pub fn send_message(In(msg): In, world: &mut World) -> Result<()> { + let entity = world + .resource::() + .0 + .ok_or(error::ProcessingError::MidiPortNotFound(usize::MAX))?; + if let Some(mut stream) = world.get_mut::(entity) { + stream.send(msg); + } Ok(()) } @@ -64,12 +90,9 @@ pub fn play_notes(In((note, duration)): In<(u8, u64)>, output: Res) pub fn midi_refresh_ports() -> error::Result<()> { app_mut(|app| { let world = app.world_mut(); - world.run_system_cached(refresh_ports).unwrap() - })?; - // run the `PreUpdate` schedule to let `bevy_midi` process it's callbacks and update the ports list - // TODO: race condition is still present here in theory - app_mut(|app| { - app.world_mut().run_schedule(PreUpdate); + world + .run_system_cached(nannou_midi::native::enumerate_midi_ports) + .unwrap(); Ok(()) }) } @@ -86,7 +109,12 @@ pub fn midi_list_ports() -> error::Result> { pub fn midi_connect(port: usize) -> error::Result<()> { app_mut(|app| { let world = app.world_mut(); - world.run_system_cached_with(connect, port).unwrap() + world.run_system_cached_with(connect, port).unwrap()?; + // Materialize the MidiOutputStream component before the caller sends. + world + .run_system_cached(nannou_midi::native::open_midi_outputs) + .unwrap(); + Ok(()) }) } @@ -98,12 +126,57 @@ pub fn midi_disconnect() -> error::Result<()> { }) } +#[cfg(not(target_arch = "wasm32"))] +pub fn midi_note_on(note: u8, velocity: u8) -> error::Result<()> { + app_mut(|app| { + let world = app.world_mut(); + world + .run_system_cached_with(send_message, MidiMessage::from([NOTE_ON, note, velocity])) + .unwrap()?; + world + .run_system_cached(nannou_midi::native::send_midi_messages) + .unwrap(); + Ok(()) + }) +} + +#[cfg(not(target_arch = "wasm32"))] +pub fn midi_note_off(note: u8) -> error::Result<()> { + app_mut(|app| { + let world = app.world_mut(); + world + .run_system_cached_with(send_message, MidiMessage::from([NOTE_OFF, note, 0])) + .unwrap()?; + world + .run_system_cached(nannou_midi::native::send_midi_messages) + .unwrap(); + Ok(()) + }) +} + #[cfg(not(target_arch = "wasm32"))] pub fn midi_play_notes(note: u8, duration: u64) -> error::Result<()> { app_mut(|app| { let world = app.world_mut(); world - .run_system_cached_with(play_notes, (note, duration)) - .unwrap() + .run_system_cached_with(send_message, MidiMessage::from([NOTE_ON, note, 127])) + .unwrap()?; + world + .run_system_cached(nannou_midi::native::send_midi_messages) + .unwrap(); + Ok(()) + })?; + + std::thread::sleep(std::time::Duration::from_millis(duration)); + + app_mut(|app| { + let world = app.world_mut(); + world + .run_system_cached_with(send_message, MidiMessage::from([NOTE_OFF, note, 127])) + .unwrap()?; + world + .run_system_cached(nannou_midi::native::send_midi_messages) + .unwrap(); + Ok(()) }) } diff --git a/crates/processing_pyo3/src/lib.rs b/crates/processing_pyo3/src/lib.rs index dc07149c..59024d4f 100644 --- a/crates/processing_pyo3/src/lib.rs +++ b/crates/processing_pyo3/src/lib.rs @@ -1947,6 +1947,14 @@ mod mewnala { fn midi_play_notes(note: u8, duration: u64) -> PyResult<()> { midi::play_notes(note, duration) } + #[pyfunction] + fn midi_note_on(note: u8, velocity: u8) -> PyResult<()> { + midi::note_on(note, velocity) + } + #[pyfunction] + fn midi_note_off(note: u8) -> PyResult<()> { + midi::note_off(note) + } #[pyfunction] fn key_is_down(key_code: u32) -> PyResult { diff --git a/crates/processing_pyo3/src/midi.rs b/crates/processing_pyo3/src/midi.rs index 621ea9d9..494b5fee 100644 --- a/crates/processing_pyo3/src/midi.rs +++ b/crates/processing_pyo3/src/midi.rs @@ -16,3 +16,9 @@ pub fn list_ports() -> PyResult> { pub fn play_notes(note: u8, duration: u64) -> PyResult<()> { midi_play_notes(note, duration).map_err(|e| PyRuntimeError::new_err(format!("{e}"))) } +pub fn note_on(note: u8, velocity: u8) -> PyResult<()> { + midi_note_on(note, velocity).map_err(|e| PyRuntimeError::new_err(format!("{e}"))) +} +pub fn note_off(note: u8) -> PyResult<()> { + midi_note_off(note).map_err(|e| PyRuntimeError::new_err(format!("{e}"))) +} diff --git a/crates/processing_render/src/surface.rs b/crates/processing_render/src/surface.rs index c35a8e79..248ac1ee 100644 --- a/crates/processing_render/src/surface.rs +++ b/crates/processing_render/src/surface.rs @@ -303,7 +303,7 @@ pub fn create_surface_x11( HandleError::Unavailable, )); } - let display_ptr = NonNull::new(display_handle as *mut c_void).unwrap(); + let display_ptr = NonNull::new(display_handle as *mut std::ffi::c_void).unwrap(); let display = XlibDisplayHandle::new(Some(display_ptr), 0); // screen 0 spawn_surface( @@ -331,7 +331,7 @@ pub fn create_surface_web( if window_handle == 0 { return Err(error::ProcessingError::InvalidWindowHandle); } - let canvas_ptr = NonNull::new(window_handle as *mut c_void).unwrap(); + let canvas_ptr = NonNull::new(window_handle as *mut std::ffi::c_void).unwrap(); let window = WebCanvasWindowHandle::new(canvas_ptr.cast()); let display = WebDisplayHandle::new(); diff --git a/examples/midi.rs b/examples/midi.rs index 3a2a9565..5128c928 100644 --- a/examples/midi.rs +++ b/examples/midi.rs @@ -1,60 +1,182 @@ -use processing_glfw::GlfwContext; - +use bevy::color::{Color, ColorToComponents}; use processing::prelude::*; +use processing_glfw::GlfwContext; use processing_render::render::command::DrawCommand; -use rand::prelude::*; +const PENTATONIC: [u8; 5] = [0, 3, 5, 7, 10]; +const ROOT: u8 = 48; +const OCTAVES: u8 = 3; +const WIDTH: u32 = 640; +const HEIGHT: u32 = 400; + +fn note_at_x(x: f32) -> u8 { + let steps = (PENTATONIC.len() as u8) * OCTAVES; + let t = (x / WIDTH as f32).clamp(0.0, 0.999); + let idx = (t * steps as f32) as u8; + let octave = idx / PENTATONIC.len() as u8; + let degree = (idx % PENTATONIC.len() as u8) as usize; + ROOT + octave * 12 + PENTATONIC[degree] +} + +fn velocity_at_y(y: f32) -> u8 { + let t = 1.0 - (y / HEIGHT as f32).clamp(0.0, 1.0); + (16.0 + t * 110.0) as u8 +} + +fn note_color(note: u8) -> Color { + let hue = ((note - ROOT) as f32 / 12.0).fract() * 360.0; + Color::hsv(hue, 0.7, 0.95) +} + +struct Ripple { + x: f32, + y: f32, + age: f32, + color: Color, +} fn main() { - match sketch() { - Ok(_) => { - eprintln!("Sketch completed successfully"); - exit(0).unwrap(); - } - Err(e) => { - eprintln!("Sketch error: {:?}", e); - exit(1).unwrap(); - } - }; + if let Err(e) = sketch() { + eprintln!("Sketch error: {e:?}"); + exit(1).unwrap(); + } + exit(0).unwrap(); } fn sketch() -> error::Result<()> { - let mut glfw_ctx = GlfwContext::new(400, 400)?; + let mut glfw_ctx = GlfwContext::new(WIDTH, HEIGHT)?; init(Config::default())?; - let width = 400; - let height = 400; - let surface = glfw_ctx.create_surface(width, height)?; - let graphics = graphics_create(surface, width, height, TextureFormat::Rgba16Float)?; + let surface = glfw_ctx.create_surface(WIDTH, HEIGHT)?; + let graphics = graphics_create(surface, WIDTH, HEIGHT, TextureFormat::Rgba16Float)?; midi_refresh_ports()?; - for port in midi_list_ports()? { - println!("{port}"); + let ports = midi_list_ports()?; + if ports.is_empty() { + eprintln!("no MIDI output ports found — connect a synth or virtual port and retry"); + return Ok(()); } - midi_connect(1)?; + for p in &ports { + println!("{p}"); + } + midi_connect(0)?; - let mut rng = rand::rng(); + let mut held: Option = None; + let mut ripples: Vec = Vec::new(); while glfw_ctx.poll_events() { graphics_begin_draw(graphics)?; + let mx = input_mouse_x(surface)?; + let my = input_mouse_y(surface)?; + let pressed = input_mouse_is_pressed()?; + + match (pressed, held) { + (true, None) => { + let note = note_at_x(mx); + let velocity = velocity_at_y(my); + midi_note_on(note, velocity)?; + ripples.push(Ripple { + x: mx, + y: my, + age: 0.0, + color: note_color(note), + }); + held = Some(note); + } + (true, Some(note)) => { + let target = note_at_x(mx); + if target != note { + midi_note_off(note)?; + let velocity = velocity_at_y(my); + midi_note_on(target, velocity)?; + ripples.push(Ripple { + x: mx, + y: my, + age: 0.0, + color: note_color(target), + }); + held = Some(target); + } + } + (false, Some(note)) => { + midi_note_off(note)?; + held = None; + } + _ => {} + } + + graphics_record_command( + graphics, + DrawCommand::BackgroundColor(Color::srgb(0.04, 0.04, 0.07)), + )?; + + let octave_w = WIDTH as f32 / OCTAVES as f32; + for i in 0..OCTAVES { + let alpha = if i % 2 == 0 { 0.04 } else { 0.0 }; + graphics_record_command( + graphics, + DrawCommand::Fill(Color::srgba(1.0, 1.0, 1.0, alpha)), + )?; + graphics_record_command( + graphics, + DrawCommand::Rect { + x: i as f32 * octave_w, + y: 0.0, + w: octave_w, + h: HEIGHT as f32, + radii: [0.0; 4], + }, + )?; + } + + ripples.retain_mut(|r| { + r.age += 0.022; + r.age < 1.0 + }); + for r in &ripples { + let size = 24.0 + r.age * 220.0; + let alpha = (1.0 - r.age).powi(2); + let lin = r.color.to_linear().to_f32_array(); + graphics_record_command( + graphics, + DrawCommand::Fill(Color::linear_rgba(lin[0], lin[1], lin[2], alpha)), + )?; + graphics_record_command( + graphics, + DrawCommand::Rect { + x: r.x - size / 2.0, + y: r.y - size / 2.0, + w: size, + h: size, + radii: [size / 2.0; 4], + }, + )?; + } + + let preview = note_color(note_at_x(mx)); + graphics_record_command(graphics, DrawCommand::Fill(preview))?; graphics_record_command( graphics, DrawCommand::Rect { - x: 10.0, - y: 10.0, - w: 100.0, - h: 100.0, - radii: [0.0, 0.0, 0.0, 0.0], + x: mx - 8.0, + y: my - 8.0, + w: 16.0, + h: 16.0, + radii: [8.0; 4], }, )?; graphics_end_draw(graphics)?; - let note = rng.random_range(57..68); - let note_duration = rng.random_range(25..250); - midi_play_notes(note, note_duration)?; + if input_key_is_pressed()? && input_key_is_down(KeyCode::Escape)? { + break; + } } + if let Some(note) = held { + midi_note_off(note)?; + } + midi_disconnect()?; Ok(()) } diff --git a/src/prelude.rs b/src/prelude.rs index 04077d5e..3ff8cb6c 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -5,7 +5,8 @@ pub use bevy::render::render_resource::TextureFormat; pub use processing_core::{config::*, error}; pub use processing_input::*; pub use processing_midi::{ - midi_connect, midi_disconnect, midi_list_ports, midi_play_notes, midi_refresh_ports, + midi_connect, midi_disconnect, midi_list_ports, midi_note_off, midi_note_on, midi_play_notes, + midi_refresh_ports, }; pub use processing_render::{ render::command::{