Closed gheskett closed 1 year ago
Further investigation has me to believe that the envelopes are not the reason this happens. Further research is needed for proper diagnosis, but this issue is still otherwise valid.
Further investigation has me to believe that the envelopes are not the reason this happens. Further research is needed for proper diagnosis, but this issue is still otherwise valid.
Figured this out for real, now the open PR is fully complete and is ready for review.
ADSR envelopes are set so a new note always starts at 0 volume and then increases to a destination volume over time. Currently it is not possible to start a note at full volume, which is not good for especially percussion samples. Setting an attack value of 1 isn't too bad for punchiness, but the way the volume change was implemented means the sample will go from 0% to 100% at once after it has already been playing for 1 update, which may result in a very noticeable popping sound (this is probably why Nintendo never used anything smaller than 2 here).
Wimpy percussion can make M64s sound substantially worse than they deserve. This is a silly issue and needs a workaround, probably in the form of supporting envelopes with initial 0 values. Unfortunately this can't be applied to streamed tools because it would likely crash other repos, but values of 2 are usually good enough for those anyway.