Skip to content

First pass of review comments - #105

Draft
atlv24 wants to merge 1 commit into
BillyDM:mainfrom
atlv24:ad/review
Draft

First pass of review comments#105
atlv24 wants to merge 1 commit into
BillyDM:mainfrom
atlv24:ad/review

Conversation

@atlv24

@atlv24 atlv24 commented Feb 19, 2026

Copy link
Copy Markdown
Contributor

As i can't easily leave comments on already merged code, and I am auditing the entire codebase, the easiest way to leave notes is as comments. I do not intend for this PR to merge; it is just reference. I will be putting up PRs fixing the things ive noted here once the other two PRs i have open merge: #103 #104

Comment thread crates/firewheel-core/src/dsp/distance_attenuation.rs
Comment thread Cargo.toml
Comment on lines +228 to +231
# My proposal for the path forward is to have a bevy_firewheel crate in bevy/crates, which houses a copy
# of the firewheel top level crate and all firewheel subcrates (with names unchanged), as well as the
# original top level firewheel crate. bevy_firewheel would bring in all the subcrates with bevy integration
# enabled, and the original top level firewheel crate will be the way to use firewheel without bevy.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note that i wrote this on the plane before discussion after posting my writeup, this is still one of the possible plans but is not my #1 anymore

Comment thread crates/firewheel-core/src/dsp/interleave.rs
}
}

// TODO: method duplication

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason for the duplication is to have optimized auto-vectorized loops for the most common use cases. Though I suppose those optimized loops could all be in a single function.

Comment thread crates/firewheel-core/src/dsp/volume.rs
pub fn try_debug(&mut self, message: &str) -> Result<(), RealtimeLogError> {
#[cfg(debug_assertions)]
{
// TODO: code duplication

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the duplication here?

Comment thread crates/firewheel-core/src/node.rs
Comment thread Cargo.toml
]
# Enables the wasm-bindgen feature for the CPAL backend
wasm-bindgen = ["firewheel-cpal/wasm-bindgen"]
# NOTE: these glam deps will also be maintenance burden, in an upstream future we should

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree

Comment thread Cargo.toml
]

[workspace.dependencies]
# if we upstream firewheel to bevy, these should become deps on bevy_log

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree

Comment thread README.md

// TODO: PLEASE FIX ME:
//
// TODO: investigate CPAL

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I'm at a bit of a loss on this one. Might have to make an issue in the CPAL repository.

Comment thread Cargo.toml
# of the firewheel top level crate and all firewheel subcrates (with names unchanged), as well as the
# original top level firewheel crate. bevy_firewheel would bring in all the subcrates with bevy integration
# enabled, and the original top level firewheel crate will be the way to use firewheel without bevy.
# Versioning will become lockstep with bevy versions for all firewheel crates.

@BillyDM BillyDM Feb 19, 2026

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could also consider merging the crates to as few as possible. The only one that really needs to be separate is firewheel-cpal (assuming we keep the audio backend abstraction).

firewheel-core was originally meant to be like a "stable node API" that third party node developers would base on. But if we are planning to upstream Firewheel to Bevy anyway, then I suppose it doesn't make sense to have this stability guarantee anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants