Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - Remove Sync requirement in Decodable::Decoder #5819

Closed

Conversation

harudagondi
Copy link
Member

Objective

Solution

  • Remove Sync requirement in Decodable::Decoder
  • This aligns with kira's Sound and majority of oddio's types (like Mixer).

Changelog

Changed

  • Decodable::Decoder now no longer requires Sync types.

@Weibye Weibye added A-Audio Sounds playback and modification C-Usability A targeted quality-of-life change that makes Bevy easier to use labels Aug 28, 2022
@cart
Copy link
Member

cart commented Aug 29, 2022

bors r+

bors bot pushed a commit that referenced this pull request Aug 29, 2022
# Objective

- Allow non-`Sync` Decoders
- Unblocks #5422.
- Unblocks harudagondi/bevy_fundsp#1

## Solution

- Remove `Sync` requirement in `Decodable::Decoder`
- This aligns with kira's [`Sound`] and majority of [oddio]'s types (like [`Mixer`]).

[`Sound`]: https://docs.rs/kira/latest/kira/sound/trait.Sound.html
[oddio]: https://docs.rs/oddio/latest/oddio/index.html
[`Mixer`]: https://docs.rs/oddio/latest/oddio/struct.Mixer.html

---

## Changelog

### Changed

- `Decodable::Decoder` now no longer requires `Sync` types.
@bors bors bot changed the title Remove Sync requirement in Decodable::Decoder [Merged by Bors] - Remove Sync requirement in Decodable::Decoder Aug 29, 2022
@bors bors bot closed this Aug 29, 2022
james7132 pushed a commit to james7132/bevy that referenced this pull request Oct 28, 2022
# Objective

- Allow non-`Sync` Decoders
- Unblocks bevyengine#5422.
- Unblocks harudagondi/bevy_fundsp#1

## Solution

- Remove `Sync` requirement in `Decodable::Decoder`
- This aligns with kira's [`Sound`] and majority of [oddio]'s types (like [`Mixer`]).

[`Sound`]: https://docs.rs/kira/latest/kira/sound/trait.Sound.html
[oddio]: https://docs.rs/oddio/latest/oddio/index.html
[`Mixer`]: https://docs.rs/oddio/latest/oddio/struct.Mixer.html

---

## Changelog

### Changed

- `Decodable::Decoder` now no longer requires `Sync` types.
harudagondi added a commit to harudagondi/bevy_fundsp that referenced this pull request Nov 14, 2022
# Objective

- This is a very big refactor that allows better ergonomics, better refactorability, and better support for streaming audio.
- Partially complete #1 for `bevy_audio`, 
	- bevyengine/bevy#5819 ~needs to be merged first.~ is now merged! Now waiting for bevy 0.9.
	- NiklasEi/bevy_kira_audio#63 is blocking for `kira`. 
- Partially complete #2 for `oddio`
	- bevyengine/bevy#5828 needs to be resolved first
	- NiklasEi/bevy_kira_audio#63 is blocking for `kira`
	- `oddio` isn't even implemented yet for this PR
    - By virtue of solving #2, then #3 will be unblocked
- Unblocks #4 by using `DspGraph`
- Fixes #5

## Solution

- [x] Add support for 
  - [x] `bevy_audio`, ~blocked by bevyengine/bevy#5819~ Now waiting for bevy 0.9.
  - [x] `bevy_kira_audio`, ~blocked by NiklasEi/bevy_kira_audio#72~ Now waiting for bevy 0.9.
  - [x] `bevy_oddio`
- [ ] Add support for streaming audio in
  - [x] `bevy_audio`, ~blocked by bevyengine/bevy#5819~
  - [ ] `bevy_kira_audio`, blocked by NiklasEi/bevy_kira_audio#63
  - [x] `bevy_oddio`
- [ ] Allow setting of parameters in
  - [ ] `bevy_audio`, blocked by bevyengine/bevy#5828
  - [ ] `bevy_kira_audio`, blocked by NiklasEi/bevy_kira_audio#63
  - [x] `bevy_oddio`

## Note for Users of this Branch

If you are a user of `bevy_fundsp`, please try to test this PR! This currently only works with bevy_audio (EDIT: and bevy_oddio!), because this relies on a branch I made on bevy.

---

## Changelog

Reworked the majority of the code.

## Added

- A way to play streaming DSP sources. See `SourceType::Dynamic`.
- You can play DSP sources using `Audio::play_dsp`.
- Two iterators on streaming audio sources: `Iter` and `IterMono`.

### Changed

- Adding the DSP plugin.
  - You must now call `DspPlugin::default()`.
- The method on adding DSP sources.
  - No more initializing using `DspAssets`!
  - Just add your DSP function using `app.add_dsp_source`
- Playing DSP sources require `Audio` to be mutable. (Use `ResMut`)
- A lot of internals are shuffled around.

### Removed

- `DspAssets`
- `FnDspGraph`
- `StreamingDspSource`
ItsDoot pushed a commit to ItsDoot/bevy that referenced this pull request Feb 1, 2023
# Objective

- Allow non-`Sync` Decoders
- Unblocks bevyengine#5422.
- Unblocks harudagondi/bevy_fundsp#1

## Solution

- Remove `Sync` requirement in `Decodable::Decoder`
- This aligns with kira's [`Sound`] and majority of [oddio]'s types (like [`Mixer`]).

[`Sound`]: https://docs.rs/kira/latest/kira/sound/trait.Sound.html
[oddio]: https://docs.rs/oddio/latest/oddio/index.html
[`Mixer`]: https://docs.rs/oddio/latest/oddio/struct.Mixer.html

---

## Changelog

### Changed

- `Decodable::Decoder` now no longer requires `Sync` types.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Audio Sounds playback and modification C-Usability A targeted quality-of-life change that makes Bevy easier to use
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

3 participants