Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29 FamiTracker
Login:
Menu:
Post: Author:
FamiTracker > General > FamiTracker Talk > NSFPlay 2.1 Owner: rainwarrior New post
Page 1 of 5 Sort: Goto Page: [1] [2] [3] [4] [5] Next >>
NSFPlay 2.1 Posted: 2012-02-19 22:37  (Last Edited: 2012-03-28 02:12) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#30565
NSFPlay/NSFPlug version 2.1

[url=http://rainwarrior.ca/projects/nsfplay/nsfplay21.zip]http://rainwarrior.ca/projects/nsfplay/nsfplay21.zip
[url=http://rainwarrior.ca/projects/nsfplay/]http://rainwarrior.ca/projects/nsfplay/

Changes in 2.1:
Audio Output:
- Fixed race condition in audio buffering; stand alone NSFPlay would occasionally get stuck stuttering.
- Produces stereo output, channel mixer dialog for panning and per-channel volume control.
- Fixed PCM playback speed; CPU execution was counting requested clocks, not clocks executed.
- Fixed accuracy of seek times.
- Loop detection now accounts for all audio registers, not just a subset of 2A03 and N163.
- N163 wavelength is actually 6-bit, not 3. Now allows sample length up to 256.
- Fixed FDS volume/sweep envelope caps. (Direct register writes can make them louder.)
- Fixed FDS modulation bias calculation and wrapping.
- Set default volume for VRC7 and FDS a little lower (to match expected levels).
- MMC5 PCM support (for both read and write mode).
- Added phase reset option to MMC5.
- MMC5 was missing length counter and audio register reads; rewrote to conform with APU.
- Adjusted phases for APU/MMC5 square channels to match NesDev's description.
- APU/DMC/MMC5 rewrite of envelope/length/sweep behaviour to use a frame sequencer instead of independent timers.
Options:
- Option to randomize noise on reset (on by default).
- Options cleanup, removed unused/deprecated options from .ini file.
- Using global LPF by default instead of on each device (saves CPU, same result).
- Keyboard view channel colour is now customizable in .ini file (CHANNEL_XX_COL).
Keyboard view:
- Fixed crash due to keyboard OnTimer being allowed before Reset() is executed by the PlayThread.
- Double buffering keyboard view to remove flicker.
- Different colours for different expansions in keyboard view.
- Fixed sound lag after seek.
- FME-7 now named 5B, N106 now named N163.
- DPCM now named DMC in keyboard view.
- Fixed 5B volume display (E now correctly indicates envelope, volume is now correct value).
- 5B now displays envelope and noise.
- VRC6 saw volume now displays accumulator register.
- Corrected VRC6 saw pitch in keyboard view.
- Fixed trailing lines on N163 waveform display.
- DMC volume display no longer flipped (is now $4011 register value).
- DMC now shows sample frequency rather than byte frequency.
- Triangle and noise were not showing muting due to length counter of 0.
- Noise now has frequency display (either rate of random samples, or tonal frequency for periodic noise).
- Removed feature that extends the life of key dots beyond the frame the channel is active (frequency can change when key is silent, esp. VRC6 squares, which visibly jump to the wrong pitch)
Other:
- Save WAV button on NSFPlay.
- Command line WAV output for batch processing.
- Added extra NSF header information to "misc" text box, initial banks, load/init/play addresses, etc.
- Fixed thread-safety issue for configuration (was accessed liberally from many threads).
- Removed legacy code for windows versions older than XP.

Changes in 2.0:
- Fixes Windows Vista / 7 audio failure
- Cleans up playback before changing tracks or closing program
- Noise channel pitch should now be correct
- VRC7 now uses FamiTracker 0.3.7's default patch bank
- PAL support
- misc


If you want to use the updated NSFPlug as a Winamp plugin, just copy the files from the plugin folder to your Winamp plugin folder.

If you have comments or suggestions or you find a bug, let me know. (In particular I can't figure out how to test the Japanese dialog variations).

Original NSFPlay: [url=http://www.pokipoki.org/dsa/index.php?NSFplay]http://www.pokipoki.org/dsa/index.php?NSFplay

Posted: 2012-02-19 23:19  (Last Edited: 2012-02-19 23:21) Reply | Quote
cak

Avatar

Member for: 4314 days
Location: oregon
Status: Offline

#30566
The only unique thing I like about NSFplug is that it can fix phase-reset on the 2A03 pulse channels. It's not a bad player though, and if VirtuaNSF didn't exist, I would probably use it instead.

However, since writing a VRC7 song over at MMLShare, I think I prefer foogep's emulation of that chip to VirtuaNSF. Not because of accuracy...it just sounds "smoother".

Anyway, nice job on the fix.

Posted: 2012-02-20 03:40 Reply | Quote
ElHuesudoII

Avatar

Member for: 4525 days
Status: Offline

#30568
Rainwarrior, I love you. If theres one thing I wanted from NSFPlay was to be able to use it in 7.

Posted: 2012-02-20 03:45  (Last Edited: 2012-02-20 05:52) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#30569
I made an update to it, now that I've figured out how to build the audio plugin itself. In the new version noise pitch should be correct (try it out, RushJet1), and I've replaced the VRC7 patch set with FamiTracker's.

Edit: Uploaded version 03 after realizing I could make a proper hardware test of the noise frequencies. I think it's as close to correct as it's going to get now.

Posted: 2012-02-20 09:59 Reply | Quote
Dave
Moderator

Avatar

Member for: 5683 days
Location: UK
Status: Offline

#30577
[quote=rainwarrior]If you're someone who doesn't like NSFPlug for a particular reason, explain it to me.[/quote]

No stereo controls is the most obvious thing to me. Would be nice if it had a stereo mixer with default settings similar to those in either NSF Live or Notsofatso.

_______________________
[url=http://www.iridescentaudio.co.uk]iridescent audio
Posted: 2012-02-20 11:44 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#30578
Ha ha, that old request. I'll think about it; might be a little bit involved, but it's possible.

Posted: 2012-02-20 23:49 Reply | Quote
Raijin

Avatar

Member for: 4123 days
Status: Offline

#30604
Isn't it possible to just make it as accurate as VirtuaNSF by taking some of the code from that and implimenting it into the emulation of the expansions and whatnot of NSFPlay? Idk how it works since I'm not a coder but it doesn't seem too unlikely.

_______________________
[url=http://www.youtube.com/user/ChiptunedRaijin]Youtube Channel
Posted: 2012-02-21 00:00 Reply | Quote
Kreese

Avatar

Member for: 5902 days
Location: Frillesås, Sweden
Status: Offline

#30605
It has not PAL support, or?

Posted: 2012-02-21 00:08  (Last Edited: 2012-02-21 00:13) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#30608
VirtuaNSF itself isn't actually open source, and it isn't 100% accurate either. Most of its sound code is shared with VirtuaNES, so yes, it can be copied, but without knowing which parts are accurate it's not appropriate to just start stealing code from it. It's also a waste of time if they aren't already inaccurate in NSFPlug. (Also, it's usually faster to just correct a known issue rather than trying to reuse other code; which usually requires you replace the whole unit.)

For instance, this build of NSFPlay/NSFPlug I have made now has more accurate noise pitches than VirtuaNSF.

If there are specific things you know are inaccurate in NSFPlay/NSFPlug, let me know what they are (and what to reference for accuracy) and they can be fixed.

For instance, the volume matching for expansion chips can easily just be adjusted in the mixer, and we can package some correct settings in the zip (specifically in_yansf.ini). I can't do it myself, though, because I don't have anything to reference the volume against. If someone would like to send me hardware recordings (real ones, not PowerPak) of a Famicom playing each expansion, I could fix it easily.

Posted: 2012-02-21 00:09 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#30609
PAL support is something that could be added. Right now it plays PAL games at the right frame speed but wrong pitch.

Posted: 2012-02-21 00:17 Reply | Quote
Raijin

Avatar

Member for: 4123 days
Status: Offline

#30610
Well the main thing that bugs me is the VRC7 emulation. I can't say whether it is accurate or not, but it doesn't sound right to me.

_______________________
[url=http://www.youtube.com/user/ChiptunedRaijin]Youtube Channel
Posted: 2012-02-21 00:18  (Last Edited: 2012-02-21 00:19) Reply | Quote
cak

Avatar

Member for: 4314 days
Location: oregon
Status: Offline

#30611
What do you think of the 2A03 mixing? I made some notes last year saying that the noise was too loud and the DPCM too quiet. I dunno how easy it would be to implement vol faders for all 2A03 channels (instead of CPU/APU or whatever the groupings are).

Posted: 2012-02-21 00:21  (Last Edited: 2012-02-21 00:25) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#30612
Raijin: Could you be more specific? FamiTracker and NSFPlug actually use the same base code for VRC7 emulation (written by Mitsutaka Okazaki). In my new build it uses the same default patch set as FamiTracker, as well, so they should be pretty close now.

How does it sound different? Can you give me an FTM that will demonstrate?

cak: Can you provide an NSF that shows the volume problems? What are you comparing against? Also, please base any notes about problems with NSFPlug on the version I have provided, it may be different now.

Posted: 2012-02-21 00:26 Reply | Quote
Raijin

Avatar

Member for: 4123 days
Status: Offline

#30614
Man... I'm not sure if I can be more specific. It confuses me because it sounds to me like every NSF player emulates it differently. VirtuaNSF and VirtuaNES I imagine have the same code, and they sound the most accurate to me, but again, I have no idea what the true correct emulation of that expansion is because it's always emulated differently, but I'm assuming VirtuaNSF is the most accurate because I'm always told that NSF player is the most accurate one there is currently.

_______________________
[url=http://www.youtube.com/user/ChiptunedRaijin]Youtube Channel
Posted: 2012-02-21 00:39  (Last Edited: 2012-02-21 00:42) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#30619
Well, when you have an actual example for me to look at I will. I can't really do anything with vague statements about what you like best or which emulator you believe is most accurate.

There are appropriate ways to answer questions of accuracy. Anything on the 2A03 I can verify myself pretty easily. Expansions I will need help with, but you've got to understand that "I'm used to VirtuaNSF sounding..." is not helpful. I need real recordings, NSFs to test, NESDev forum discussions, commentary from someone who has earned authority, etc.

Page 1 of 5 Sort: Goto Page: [1] [2] [3] [4] [5] Next >>