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

Feature request: Extendable sound types #27

Open
csanyk opened this issue Dec 14, 2014 · 7 comments
Open

Feature request: Extendable sound types #27

csanyk opened this issue Dec 14, 2014 · 7 comments

Comments

@csanyk
Copy link

csanyk commented Dec 14, 2014

I asked the developer of bfxr for this feature once, and he declined to add it to his project, but I still think it's a good idea. I’d like to be able to create additional “classes” of sound effect, beyond “Pickup/coin, Laser/shoot, Explosion, Powerup, Hit/hurt, Jump, Blip/select”.

I’d like to see a means by which people can develop their own categories for other types of sound, and extend *fxr by adding them and sharing them.

There’s so many categories that aren’t currently well represented by the existing ones: wind/surf, voices, vehicle/engine, alarm/siren, and so on.

Someone with advanced knowledge in audio engineering could design “sound profiles” for these by setting range constraints on the various sliders, and then save that as a new sound type.

Ideally, rather than adding these specific categories, if you made jfxr extendable in this way, anyone who uses it could create new sound types and then save them for later use, or even share them so that anyone using jfxr could use them.

@ttencate
Copy link
Owner

That's an interesting idea! The current presets are slightly more sophisticated than just a range on each slider, but it's still very straightforward code: https://github.com/ttencate/jfxr/blob/master/src/presets.js Most of it is "with a probability of P, change parameter S from its default value to a uniformly chosen random value in the interval [A, B]". That pattern could be captured in some additional UI controls that don't show up by default.

That said, it's a fair amount of complexity for a feature that I fear few people will use. JFXR isn't really aimed at professional audio engineers, so I doubt we'd get many contributions -- they would probably use a more powerful tool (Matlab?). Same goes for private use of these presets -- how many "surf" sounds would anyone need, that the Mutate button can't create for them?

But of course, if you do come up with suitable parameters for a commonly usable sound type like wind or alarm, I would welcome your pull request! :)

@csanyk
Copy link
Author

csanyk commented Dec 16, 2014

Cool, I'm glad that you're open to accepting additional presets:)

I'll take a look at the code and see if I can figure out any new ones. I'm not really an audio guy myself, although I do understand some of the fundamentals... but I have a few friends who are better with it than me, who may be able to help.

@JarrydHuntley
Copy link

I'll interested in taking a look into this as well. If we get somewhere I'll submit a pull request.

@csanyk
Copy link
Author

csanyk commented Jan 3, 2015

Jarryd and I got together today, and he has created a good Surf/Wind preset. It was very easy to incorporate it into the project. The code is quite good to work with! We'll be trying out a few more before we check in our work.

@ttencate
Copy link
Owner

ttencate commented Jan 3, 2015

That's great to hear! Let me know if you need any help or advice.
On Jan 3, 2015 6:17 PM, "Chris Sanyk" [email protected] wrote:

Jarryd and I got together today, and he has created a good Surf/Wind
preset. It was very easy to incorporate it into the project. The code is
quite good to work with! We'll be trying out a few more before we check in
our work.


Reply to this email directly or view it on GitHub
#27 (comment).

@mcanthony
Copy link

I like the idea of custom presets, taking a quick look at the presets and the way they are constructed it would seem relatively trivial using AST generating techniques. The necessary input at a glance would seem to be, a list of OSC types, which parameters to randomize, in what range, and which parameters to statically set. Does that sound about right?

@ttencate
Copy link
Owner

ttencate commented Jul 8, 2015

That wouldn't be able to replace the presets there currently are, because there are often correlations between parameters. Examples: we need to ensure that the low-pass cutoff isn't below the high-pass cutoff, we don't want to set frequency jump 2 without also setting 1, and similar for flanger offset and flanger offset sweep. It's these kinds of ad-hoc conditions that, I believe, make for higher quality presets compared to bfxr and sfxr, where you'll often get just a pop or no sound at all.

So I definitely want to keep this functionality. However, the customizable presets might not need all the flexibility of JavaScript code, and custom presets might still be useful even if they produce the occasional useless result.

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

No branches or pull requests

4 participants