Nes_Snd_Emu VS nsfplay

Compare Nes_Snd_Emu vs nsfplay and see what are their differences.

Nes_Snd_Emu

NES / Famicom sound library, descended from blargg's Nes_Snd_Emu (by jamesathey)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
Nes_Snd_Emu nsfplay
1 3
20 268
- -
0.0 6.6
over 2 years ago 7 days ago
C++ C++
GNU Lesser General Public License v3.0 only -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Nes_Snd_Emu

Posts with mentions or reviews of Nes_Snd_Emu. We have used some of these posts to build our list of alternatives and similar projects.
  • Sound Question for C++ or C#
    1 project | /r/EmuDev | 24 Aug 2021
    If LGPL2.1 is acceptable, Nes_Snd_Emu would be an option to look at. (actually looks like that's a copy of Blargg's Nes_Snd_Emu, maybe modified; I didn't check).

nsfplay

Posts with mentions or reviews of nsfplay. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-11-13.
  • Pink Floyd "The Dark Side of the Moon" - Time (8-BIT VRC6 FamiTracker)
    1 project | /r/chiptunes | 9 Oct 2022
    The piano visualization was done with NSFPlay, which you can get here: https://bbbradsmith.github.io/nsfplay/
  • Famitracker and NSFPlay
    1 project | /r/famitracker | 7 Aug 2022
    You’re using the latest version of NSFPlay right? If not, it can be found here. As for opening up an .nsf in FamiTracker - that is, converting it [back] into a module - it’s possible but imperfect.
  • Sound of the 2C33: The Famicom Disk System
    3 projects | news.ycombinator.com | 13 Nov 2021
    To elaborate on how frequency modulation "gives the triangle wave a grittier sound", FDS's FM and Yamaha's phase modulation produce sidebands, or extra frequencies, at (harmonic * carrier frequency ± n * modulator frequency). The intensity of each sideband is proportional to FFT(carrier)[harmonic] * f(n) (for some odd f involving Bessel functions and FFT(modulator), which is zero for large |n|, and the number of nonzero n increases as the modulation index increases). In this case, the modulator frequency isn't a small rational factor of the carrier frequency, creating gritty inharmonic sidebands.

    As an example of FDS FM, you can look at this video (https://www.youtube.com/watch?v=Tgu1mCBU2vA) describing FM emulation errors in older versions of FamiTracker, and how some chiptune songs are incompatible with the more accurate emulation core I imported into Dn-FamiTracker.

    FDS FM is the chip's defining characteristic in modern chiptune, though it was sadly barely explored by official games in the console's original lifespan (aside from being used as vibrato). The only game I currently know which used FM at audible frequencies was Bio Miracle Bokutte Upa (https://www.youtube.com/watch?v=_alQrPMNBT0), which also required cycle-accurate console emulation and would otherwise degrade into inharmonic chaos (like the "FM emulation errors" video above). Unlike regular FM on Yamaha sound chips, the FDS allows you to use complex carrier wavetables. Combined with how the modulator is naturally slightly detuned from the carrier (due to hardware rounding errors), this results in growling evolving sounds as the waveform stretches and squeezes in the time domain, and harmonics and sidebands beat in and out of phase in the frequency domain.

    Strangely, the FDS's modulator doesn't draw from an array of samples like the carrier waveform, but instead an array of 3-bit delta values (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...) representing adding [+0, +1, +2, +4, reset=0, -4, -2, -1] (modulo [-64..64)) to the current modulator amplitude. This means you have to design modulator tables carefully, or else the carrier frequency will have a net offset (as above) or even drift endlessly until it wraps around. Interestingly, FamiTracker shows the mod table as only having 32 elements (compared to the wavetable's 64 elements), and the nesdev wiki (https://wiki.nesdev.org/w/index.php/FDS_audio#Mod_table_writ...) describes the mod table as having 32 elements. This conflicts with how Mesen (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...), cxNES (https://github.com/perilsensitive/cxnes/blob/master/boards/a...), and nsfplay (https://github.com/bbbradsmith/nsfplay/blob/master/xgm/devic...) implement the mod table as a 64-element array where you can only write to 2 adjacent elements at a time. I'm not sure which is accurate, as I don't have hardware on hand to test.

    Then on each sample (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...), the modulator amplitude is multiplied by the modulation strength (dropping a few lower bits and rounding oddly), clamped between [-64..192) (asymmetrical for some reason), and then used to change the carrier's instantaneous frequency by 0x through 4x (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Fds...).

What are some alternatives?

When comparing Nes_Snd_Emu and nsfplay you can also consider the following projects:

Dn-FamiTracker - modifications and improvements for 0CC-FamiTracker (based on j0CC-FamiTracker 0.6.3)

E-FamiTracker - Extended FamiTracker, mod of Dn-FamiTracker.

furnace - a multi-system chiptune tracker compatible with DefleMask modules

Mesen - Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#

puNES - Qt-based Nintendo Entertaiment System emulator and NSF/NSF2/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)

Mesen-X - Mesen X is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#. This fork is meant to gather development efforts from different forks. Deprecated; see https://github.com/SourMesen/Mesen2/

0CC-FamiTracker - Extension of jsr's FamiTracker

cartreader - A shield for the Arduino Mega that can back up video game cartridges.

cxnes - Cross-Platform NES/Famicom Emulator