Commit Graph

32 Commits

Author SHA1 Message Date
goyuken 53f9e002f4 n64: disable certain debug messages for now as they're causing crashing problems.
fix audio, hopefully.  sounds fine on diddy kong racing.
2013-05-02 00:33:44 +00:00
goyuken 6b350e58c9 n64: audio stuff, but all commented out for now 2013-05-01 22:26:08 +00:00
goyuken 1cdc51f789 dual gameboy: sound 2012-12-29 17:11:19 +00:00
goyuken 5f854466ab sound: fudge up some parameters of BufferedAsync. the most noticeable difference is that PAL NES with clock throttle no longer sounds horrible 2012-12-23 20:26:43 +00:00
goyuken b9f37d7ed8 dcfilter: more correct algorithm. doesn't sound any different. speed unchanged. 2012-12-09 20:02:43 +00:00
goyuken cb4288ada4 rearrange the api of DCFilter a bit to make it less dumb. nothing of real importance 2012-12-09 15:58:55 +00:00
goyuken 210d415e3d Add Blargg's "blip_buf" as an unmanaged dll. license is LGPL; if I like the way it works, I'll rewrite it with MIT code. Implement it as the new resampling output track for NES. Small (~3%)? speedup. Should sound better, especially when the emulator can't quite keep speed. 2012-12-09 03:13:47 +00:00
goyuken e6058e6bd8 break some stuff. FDS can eject and insert disk sides now 2012-10-26 18:51:08 +00:00
goyuken b40897bb77 sound api changes. added a new ISyncSoundProvider, which works similarly to ISoundProvider except the source (not the sink) determines the number of samples to process. Added facilities to metaspu, dcfilter, speexresampler to work with ISyncSoundProvider. Add ISyncSoundProvider to IEmulator. All IEmulators must provide sync sound, but they need not provide async sound. When async is needed and an IEmulator doesn't provide it, the frontend will wrap it in a vecna metaspu. SNES, GB changed to provide sync sound only. All other emulator cores mostly unchanged; they just provide stub fakesync alongside async, for now. For the moment, the only use of the sync sound is for realtime audio throttling, where it works and sounds quite nice. In the future, sync sound will be supported for AV dumping as well. 2012-10-11 00:44:59 +00:00
goyuken b28b677be2 dcfilter: reject out of range filterwidth 2012-10-10 11:56:49 +00:00
goyuken 19e5325afa DCFilter: allow variable filterwidth. 2600 tia: use a rather aggressive (~172hz cutoff) dc filter. this coefficient is reasonably close to actual hardware behavior. 2012-10-10 00:56:48 +00:00
goyuken b6e4d9996e DCFilter: add a "push" mode more suited to being placed between a resampler and a metaspu
Gambatte: change the order of output from "GB => resampler => metaspu => DCFilter" to "GB => resampler => DCFilter => metaspu".
This doesn't change anything under most circumstances, except when playing the emulator in slow motion (for instance, 50% throttle).  There, the metaspu sometimes adds silence to the output, which isn't actually silence if it has a different DC offset than the audio it's being mixed with.  Well, 50% throttle sound output will always suck anyway...
2012-09-29 22:38:47 +00:00
goyuken 1e6a9415c1 add Sound.Utilities.DCFilter and use it in gambatte
haven't decided yet whether i like the idea; it's mostly about playing nice with other audio mixing (from other applications)
well, it's not bad anyway...
2012-09-11 21:30:50 +00:00
goyuken f18eb2fef2 gambatte now has sound! output from the core is original 2MEGAHURTZ audio, but libspeexdsp handles it fine.
seems to be a lot of DC offset at times; not sure if there's a good way to remove it
2012-09-09 00:41:11 +00:00
goyuken 408a4d6102 add comment to BufferedAsync explaining its value 2012-09-08 16:02:14 +00:00
goyuken 71652b25dc cleanup/simplify SpeexResampler 2012-09-07 20:12:47 +00:00
goyuken 001b28c60e replace junk and bad license resamplers with libspeexdsp (using p/invoke). MIT licensed, sounds pretty decent.
the p/invoke wrapper class is a hackjob i was using for testing and will be replaced.
2012-09-07 18:49:18 +00:00
goyuken b0e3a332d8 abstract resampling functionality into IStereoResampler for testing purposes
add two example resamplers that implement this: LinearResampler and CubicResampler.  both are very basic and sound like shit compared to libresample4j
ultimately, a single good resampler with a better license than libresample4j should be selected and used
2012-09-05 21:21:35 +00:00
goyuken 0430ec91c8 add resampler based on libresample4j (LGPL)
hook that up to libsnes, so libsnes audio now goes through libresample4j and then metaspu
it sounds ok
2012-09-05 18:52:17 +00:00
goyuken a313d3910d Add sound output to sound card while dumping is occurring. Uses a proxy ISoundProvider (DualSound.cs) to guarantee emulation sound core and dumping routine are unaffected, while sending "best effort" sound to system output. Doesn't sound great, but simple and functional. 2012-05-09 20:21:23 +00:00
beirich fad95b6bab Add 3-band equalizer. Not hooked up to client for time being though. Maybe later I'll expand it to more bands and create presets. Just wanted to check it in for now. 2012-04-21 20:22:13 +00:00
beirich a8aaaef45e [PCE] ADPCM playback more or less working correctly now
plus some cleanup
2011-09-05 17:45:01 +00:00
beirich 647cae698e Max volume is settable per sound source to enable mixing many sound sources without clipping. Potentially can be used to disable individual sound sources. 2011-09-04 04:38:11 +00:00
beirich e13af4064b [pce] very preliminary ADPCM playback, added a bunch more MemoryDomains 2011-09-03 20:32:18 +00:00
beirich 0a5157d9a6 Extremely preliminary TurboCD support 2011-08-14 18:20:13 +00:00
beirich cfccc65672 add metaspu V method, set NES to use it experimentally 2011-08-14 01:42:54 +00:00
zeromus c7f0c457ad [NES] work on sound, improve square waves muchly, add 6502 IRQ signal, make add some infrastructure to keep from buffering samples while core is silenced. 2011-03-19 09:12:56 +00:00
zeromus 8a0cd52a5a [NES] apu fixes and triangle generator 2011-03-13 08:13:32 +00:00
beirich 27da793b5f PCE: improve noise channel 2011-01-31 07:19:38 +00:00
beirich 457819b331 SN76489: Implemented periodic noise 2011-01-16 21:06:14 +00:00
beirich 0d088bb15b update controls to support sticky buttons, & force-pressing buttons. implement Soft Reset menu item. 2011-01-14 03:38:26 +00:00
beirich 89e4c5a674 2011-01-11 02:55:51 +00:00