@@ -24,7 +24,14 @@ exclude = ["assets/"]
2424repository = " https://github.com/BillyDM/firewheel"
2525
2626[features ]
27- default = [" std" , " cpal" , " symphonium" , " symphonium_resample" , " sampler_node" , " tracing" ]
27+ default = [
28+ " std" ,
29+ " cpal" ,
30+ " symphonium" ,
31+ " symphonium_resample" ,
32+ " sampler_node" ,
33+ " tracing" ,
34+ ]
2835std = [
2936 " firewheel-core/std" ,
3037 " firewheel-graph/std" ,
@@ -34,9 +41,14 @@ std = [
3441# Enable this if "std" is disabled.
3542libm = [" firewheel-core/libm" , " firewheel-nodes/libm" ]
3643# Use the `tracing` crate for logging. Currently requires `std`.
37- tracing = [" firewheel-graph/tracing" , " firewheel-cpal?/tracing" , " std" ]
44+ tracing = [
45+ " firewheel-graph/tracing" ,
46+ " firewheel-cpal?/tracing" ,
47+ " firewheel-rtaudio?/tracing" ,
48+ " std" ,
49+ ]
3850# Use the `log` crate for logging
39- log = [" firewheel-graph/log" , " firewheel-cpal?/log" ]
51+ log = [" firewheel-graph/log" , " firewheel-cpal?/log" , " firewheel-rtaudio?/log " ]
4052# Enables scheduling events for nodes
4153scheduled_events = [
4254 " firewheel-core/scheduled_events" ,
@@ -54,6 +66,12 @@ musical_transport = [
5466cpal = [" std" , " dep:firewheel-cpal" ]
5567# Enables resampling input streams in the cpal backend
5668cpal_resample_inputs = [" firewheel-cpal?/resample_inputs" ]
69+ # Enables the alternative RtAudio backend
70+ # This backend has better support for "full duplex" audio devices than
71+ # the default CPAL backend, which allows for less latency between input
72+ # and output streams. The drawback is that this backend only supports
73+ # Windows, MacOS, and Linux desktop platforms.
74+ rtaudio = [" std" , " firewheel-rtaudio" ]
5775# Enables using Symphonium for loading audio files.
5876# Requires the standard library.
5977symphonium = [" dep:firewheel-symphonium" ]
@@ -155,11 +173,13 @@ members = [
155173 " crates/firewheel-nodes" ,
156174 " crates/firewheel-macros" ,
157175 " crates/firewheel-pool" ,
176+ " crates/firewheel-rtaudio" ,
158177 " crates/firewheel-symphonium" ,
159178 " examples/beep_test" ,
160179 " examples/cpal_input" ,
161180 " examples/custom_nodes" ,
162181 " examples/play_sample" ,
182+ " examples/rtaudio_beep_test" ,
163183 " examples/sampler_pool" ,
164184 " examples/sampler_test" ,
165185 " examples/spatial_basic" ,
@@ -197,8 +217,8 @@ eframe = { version = "0.33.3", default-features = false, features = [
197217 " default_fonts" ,
198218 " wayland" ,
199219 " x11" ,
200- " glow"
201- ]}
220+ " glow" ,
221+ ] }
202222
203223[dependencies ]
204224firewheel-core = { path = " crates/firewheel-core" , version = " 0.10.0" , default-features = false }
@@ -207,6 +227,7 @@ firewheel-cpal = { path = "crates/firewheel-cpal", version = "0.10.0", default-f
207227firewheel-nodes = { path = " crates/firewheel-nodes" , version = " 0.10.0" , default-features = false }
208228firewheel-pool = { path = " crates/firewheel-pool" , version = " 0.10.0" , default-features = false , optional = true }
209229firewheel-symphonium = { path = " crates/firewheel-symphonium" , version = " 0.10.0" , default-features = false , optional = true }
230+ firewheel-rtaudio = { path = " crates/firewheel-rtaudio" , version = " 0.10.0" , default-features = false , optional = true }
210231thunderdome = { workspace = true , optional = true }
211232smallvec = { workspace = true , optional = true }
212233thiserror.workspace = true
0 commit comments