gamercade-io / gamercade_console

A Neo-Retro Fantasy Console. Make WASM-powered, networked multiplayer games.
https://gamercade.io
Apache License 2.0
169 stars 10 forks source link

Audio Effects #51

Open RobDavenport opened 2 years ago

RobDavenport commented 2 years ago

Lots of retro consoles had built-in features, like reverb, echo, delay, as well as note-level effects like slide or arpeggiators.

I think it would be good to discuss some potential approaches and some effects we could start developing 2-3 effects as a proof-of-concept. The Phrase struct already has the array of three Option<Effect> to use, so we can easily plug into there.

VegaDeftwing commented 2 years ago

I would think starting with a tremolo effect would be a good start, given the extreme simplicity. Reverb has the potential to back you into a weird corner for performance, as most reverbs use a crazy amount of CPU horse power or just sound pretty awful.

For note effects, I think some sort of DSL could be neat. See https://nestup.cutelab.nyc or https://100r.co/site/orca.html for inspiration, though something dramatically more traditional would probably be better.

RobDavenport commented 2 years ago

@VegaDeftwing thanks for your suggestion! I have heard about the issues with reverb before 😂 so I agree. I would like to prioritize, as you mentioned, simpler effects like the tremolo, slide, and whatever that awesome chip-tune arpeggiated chords effect.

As for the DSL suggestion, I agree it would be cool, but seems a bit too niche currently.

Edit: This is the effect I'm talking about: https://www.youtube.com/watch?v=4HWHneafZ8w