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

Allow support for setting parameters #2

Open
3 tasks
harudagondi opened this issue Aug 1, 2022 · 0 comments
Open
3 tasks

Allow support for setting parameters #2

harudagondi opened this issue Aug 1, 2022 · 0 comments
Labels
blocked this issue is blocked by other problems enhancement New feature or request
Milestone

Comments

@harudagondi
Copy link
Owner

harudagondi commented Aug 1, 2022

Allow the user to set a parameter (using fundsp::hacker32::tag) to a certain value during runtime.

  • bevy_audio: does not provide any Handle<AudioHandle> or similar, only AudioSink.
  • bevy_kira_audio: kira has SoundData, but is not exposed in the bevy crate.
  • bevy_oddio has AudioHandle in the main branch.
@harudagondi harudagondi added the enhancement New feature or request label Aug 1, 2022
@harudagondi harudagondi added the blocked this issue is blocked by other problems label Aug 20, 2022
@harudagondi harudagondi added this to the 0.2 milestone Aug 24, 2022
harudagondi added a commit that referenced this issue Sep 4, 2022
harudagondi added a commit that referenced this issue 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`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked this issue is blocked by other problems enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant