-
Notifications
You must be signed in to change notification settings - Fork 78
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
Sample at every tick #100
Sample at every tick #100
Conversation
Hmm interesting, I need to try this fix in the other systems. I know that the chips audio emulators generally suffer from frequency aliasing (except maybe the SID emulator), so I'll generally need to do more research into that area (also how other emulators solve those problems). Do you know why Github thinks that your change has a merge collision? The beeper.h file in the chips repository had its last change 2 years ago 🤔 |
How odd, I can do another PR if you prefer. |
I think I solved the "conflict". |
You're right, it does sound better. Mainly regular "beeps" like the error beep on the KC85, or the Popcorn bootup sound on the LC-80... I'll merge and then also update the emulators webpage. Many thanks! As I said, I'll also look into the aliasing problem (which at least the AY emulation still suffers from ... maybe it's actually a similar problem...). |
...and merged :) |
Ok, the webpage at https://floooh.github.io/tiny8bit/ will be updated when this CI pipeline finishes: https://github.com/floooh/chips-test/actions/runs/9796642006 |
Awesome! Again, credits go to MartianGirl, author of SpecIde. |
Just to make it clear, I didn't look into her source code, which is GPL (though maybe it would be considered fair?), but she explained it to me and I changed |
Good point, but IMHO that should be totally fine. |
The beeper misses some input values because the input state is only ever used when needed to produce an output sample. Sound quality suffers, I noticed it when comparing the Nonamed intro music with Fuse.
This PR takes every beeper tick into account, using the average when an output sample is required. Nonamed now sounds extremely similar to Fuse when configured to not use audio filters.
I've decreased the buffer because 512 made it sound a bit muffled. Both the sampling scheme and the buffer size were suggested by MartianGirl, who has all the merit.
I'm not sure if the change applies to systems other than the ZX Spectrum, I'm not familiar with them.
I'm also not sure if the comment below applies anymore, so I left it in the source code:
comparison.zip