bsnes/nall
Tim Allen 7e7003fd29 Update to v102r15 release.
byuu says:

Changelog:

  - nall: added DSP::IIR::OnePole (which is a first-order IIR filter)
  - FC/APU: removed strong highpass, weak hipass filters (and the
    dummied out lowpass filter)
  - MS,GG,MD/PSG: removed lowpass filter
  - MS,GG,MD/PSG: audio was not being centered properly; removed
    centering for now
  - MD/YM2612: fixed clipping of accumulator from 18 signed bits to 14
    signed bits (-0x2000 to +0x1fff) [Cydrak]
  - MD/YM2612: removed lowpass filter
  - PCE/PSG: audio was not being centered properly; removed centering
    for now

First thing is that I've removed all of the ad-hoc audio filtering.
Emulator::Stream intrinsically provides a three-pass, second-order
biquad IIR butterworth lowpass filter that clips frequencies above 20KHz
with very good attenuation (as good as IIR gets, anyway.)

It doesn't really make sense to have the various cores running
additional lowpass filters. If we want to filter frequencies below
20KHz, then I can adapt Emulator::Audio::createStream() to take a cutoff
frequency value, and we can do it all at once, with much better quality.

Right now, I don't know what frequencies are best to cut off the various
other audio cores, so they're just gone for now.

As for the highpass filters for the Famicom core, well ... you don't get
aliasing from resampling low frequencies. And generally speaking, too
low a frequency will be inaudible anyway. All these were doing was
killing possible bass (if they were too strong.) We can add them again,
but only if someone can convert Ryphecha's ad-hoc magic integers into a
frequency cutoff. In which case, I'll use my biquad IIR filter to do it
even better. On this note, it may prove useful to do this for the MD PSG
as well, to try and head off unnecessary clamping when mixing with the
YM2612.

Finally, there was the audio centering issue that affected the
MS,GG,MD,PCE,SG cores. It was flooring the "silent" audio level, which
was resulting in extremely heavy distortion if you tried listening to
higan and, say, audacious at the same time. Without the botched
centering, this distortion is completely gone now.

However, without any centering, we've halved the potential volume range.
This means the audio slider in higan's audio settings panel will start
clamping twice as quickly. So ultimately, we need to figure out how to
fix the centering. This isn't as simple as just subtracting less. We
will probably have to center every individual audio channel before
summing them to do this properly.

Results:

On the Mega Drive, Altered Beast sounds quite a bit better, a lot less
distortion now. But it's still not perfect, especially sound effects.
Further, Bare Knuckle / Streets of Rage still has really bad sound
effects. It looks like I broke something in Cydrak's code when trying to
adapt it to my style =(
2017-03-07 07:23:22 +11:00
..
arithmetic Update to v102r12 release. 2017-02-27 19:45:51 +11:00
beat Update to v101r19 release. 2016-10-28 08:16:58 +11:00
cipher Update to v101r19 release. 2016-10-28 08:16:58 +11:00
database Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
decode Update to v101r19 release. 2016-10-28 08:16:58 +11:00
dsp Update to v102r15 release. 2017-03-07 07:23:22 +11:00
elliptic-curve Update to v101r19 release. 2016-10-28 08:16:58 +11:00
emulation Update to v101r18 release. 2016-09-14 21:55:53 +10:00
encode Update to v101r19 release. 2016-10-28 08:16:58 +11:00
hash Update to v101r19 release. 2016-10-28 08:16:58 +11:00
http Update to v101r18 release. 2016-09-14 21:55:53 +10:00
image Update to v098r10 release. 2016-05-16 19:51:12 +10:00
mac Update to v101r19 release. 2016-10-28 08:16:58 +11:00
mosaic Update to v099r15 release. 2016-07-04 21:48:17 +10:00
posix Update to v099r14 release. 2016-07-01 21:50:32 +10:00
string Update to v102r12 release. 2017-02-27 19:45:51 +11:00
vector Update to v101r18 release. 2016-09-14 21:55:53 +10:00
vfs Update to v101r02 release. 2016-08-09 21:07:18 +10:00
windows Update to v101r19 release. 2016-10-28 08:16:58 +11:00
xorg Update to v101r19 release. 2016-10-28 08:16:58 +11:00
GNUmakefile Update to v102r06 release. 2017-02-11 10:56:42 +11:00
algorithm.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
any.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
arithmetic.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
array.hpp Update to v101r07 release. 2016-08-15 14:56:38 +10:00
atoi.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
bit-field.hpp Update to v099r15 release. 2016-07-04 21:48:17 +10:00
bit-vector.hpp Update to v098r19 release. 2016-06-09 08:26:35 +10:00
bit.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
chrono.hpp Update to v100r16 release. 2016-08-03 22:32:40 +10:00
directory.hpp Update to v099r16 release (public beta). 2016-07-04 21:53:24 +10:00
dl.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
endian.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
file.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
filemap.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
function.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
hashset.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
hid.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
image.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
inode.hpp Update to v100r16 release. 2016-08-03 22:32:40 +10:00
interpolation.hpp Update to v098r14 release. 2016-06-01 21:23:22 +10:00
intrinsics.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
location.hpp Update to v099r16 release (public beta). 2016-07-04 21:53:24 +10:00
main.hpp Update to v099r15 release. 2016-07-04 21:48:17 +10:00
map.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
matrix.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
maybe.hpp Update to v099r11 release. 2016-06-27 23:07:57 +10:00
memory.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
mosaic.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
nall.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
path.hpp Update to v099r16 release (public beta). 2016-07-04 21:53:24 +10:00
platform.hpp Update to v101r24 release. 2016-12-17 22:31:34 +11:00
primitives.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
property.hpp Update to v099r09 release. 2016-06-25 18:53:11 +10:00
queue.hpp Update to v098r13 release. 2016-06-01 08:29:36 +10:00
random.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
range.hpp Update to v098r08 release. 2016-05-02 19:57:04 +10:00
run.hpp Update to v099r15 release. 2016-07-04 21:48:17 +10:00
serial.hpp Update to v098r08 release. 2016-05-02 19:57:04 +10:00
serializer.hpp Update to v100r15 release. 2016-07-31 12:11:20 +10:00
service.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
set.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
shared-memory.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
shared-pointer.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
smtp.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
sort.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
stdint.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
string.hpp Update to v102r12 release. 2017-02-27 19:45:51 +11:00
thread.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
traits.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
unique-pointer.hpp Update to v097r02 release. 2016-01-25 22:27:18 +11:00
utility.hpp Update to v101r15 release. 2016-09-04 23:51:27 +10:00
varint.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
vector.hpp Update to v101r18 release. 2016-09-14 21:55:53 +10:00
vfs.hpp Update to v099r05 release. 2016-06-20 21:00:32 +10:00