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.2 Owner: rainwarrior New post
Page 1 of 3 Sort: Goto Page: [1] [2] [3] Next >>
NSFPlay 2.2 Posted: 2012-09-01 04:43  (Last Edited: 2012-09-03 22:57) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#38908
NSFPlay 2.2 has been released! Get it here:

[url=http://nsfplay.googlecode.com/files/nsfplay22.zip]http://nsfplay.googlecode.com/files/nsfplay22.zip

The most significant update is NSFe support, but there's a bunch of other minor changes.

NSFPlay 2.2 - 8/31/2012
Audio Emulation:
- Unmute on reset now sets $4015 to $0F instead of $1F.
- PAL noise frequency $1 now 8 instead of incorrectly 7.
- New VRC7 patch set, option to select alternative patch sets via VRC7_PATCH.
- 5B polarity inverted, envelope adjusted, volume tweak.
- MMC5 polarity inverted, length counter runs at double speed, highest 8 frequencies are not muted.
- VRC6 $9003 register implemented (controls halt and frequency multiplier)
- VRC6 polarity inverted, phase reset now functions properly.
- FDS now uses NSF header $76/$77 to set up $6000-7FFF memory range.
- FDS $4087 bit 7 now mutes modulator.
- Enable periodic noise option fixed. (Forced perodic noise by accident.)
Other:
- Fixed improper $4015 read implementation (should return length counter status), also DPCM IRQ was not initialized.
- Default focus in keyboard window now the track list (to prevent accidental mouse scroll time expansion).
- Fixed Winamp visualizer timing inaccuracy, changed default keyboard delay/freq.
- Inverted VRC7 volume display in keyboard view.
- NSFe support.
- Added NSFe extension block 'text', contains null terminated string of any length (NSF text).
- Removed broken ENABLE_DCF config option. HPF=256 now correctly disables HPF.
- Rewrote LPF and HPF, should have a more usable range of options now.
- Removed XXX_FR/XXX_FC options, now XXX_FILTER works like LPF for each device.
- Memory R/W access is now exclusive to the first device that accepts it; prevents FDS multi-expansion write conflicts.
- Title string will automatically remove whitespace at its beginning or end.
- Fixed single instance bug, was failing to open new NSF file when chosen from explorer.
- Fixed conflicts between keyboard commands and other dialogs.
- Removed tag menu from info page. Does not appear to apply to NSFs.
- Fixed incorrect PAL pitch when QUALITY=0.

NSFPlay 2.1 - 3/27/2012
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.

NSFPlay 2.0 - 2/22/2012
- Restructured sln/vcproj files, and rebuilt for VS9.
- All intermediate files go into common Debug/Release directories.
- Renamed wa2nsf project to in_yansf to match name of the plugin.
- Fixed improperly set WAVEFORMATEX header in libemuwa2 (allows execution on windows Vista/7).
- Corrected pitch of noise channel.
- Updated VRC7 default patch set.
- Added PAL support and pal flags indicator (PREFER_PAL=1 to prefer PAL for dual mode).
- Added about box for determining build version.
- Fixed some menu items in English dialogs.
- Fixed some initial config settings.
- Fixed crash when using playlist menu options with no loaded NSF.

NSFPlay - 12/09/2006
- Written by Brezza > http://www.pokipoki.org/dsa/index.php?NSFplay


Project homepage: [url=http://rainwarrior.ca/projects/nsfplay/]http://rainwarrior.ca/projects/nsfplay/

Posted: 2012-09-01 09:36 Reply | Quote
Jandazekon

Avatar

Member for: 4357 days
Location: Sweden
Status: Offline

#38924
Where is the pitch table?

Posted: 2012-09-01 15:57 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#38930
Pitch tables go in an NSF. This is an NSF player.

Posted: 2012-09-01 17:26 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#38932
If you mean a pitch control in the GUI, that's something I put on my to-do list, but it wasn't something that was easy to support in the current system, so I am saving it for a later version.

If you want to control pitch right now, you can alter the clock rate in the in_yansf.ini file.

Posted: 2012-09-01 20:10 Reply | Quote
Jandazekon

Avatar

Member for: 4357 days
Location: Sweden
Status: Offline

#38937
[quote=rainwarrior]If you want to control pitch right now, you can alter the clock rate in the in_yansf.ini file.[/quote]So i have to convert frequency to clock rate?

Posted: 2012-09-01 21:33 Reply | Quote
jsr
Administrator

Avatar

Member for: 5924 days
Location: Sweden
Status: Offline

#38941
Jandazekon: The clock rate is a frequency. I don't think it's clear what you want, perhaps you can elaborate?

Also, good work rainwarrior!

_______________________
Programmer and developer
Posted: 2012-09-01 23:32 Reply | Quote
Jandazekon

Avatar

Member for: 4357 days
Location: Sweden
Status: Offline

#38950
[quote=jsr]The clock rate is a frequency.[/quote]Didn't know that.

The clock rate is determined by milliseconds?

Posted: 2012-09-01 23:59 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#38951
No, the clock rate is in Hz, and it is specified by the following two items in in_yansf.ini:

NES_BASECYCLES
PAL_BASECYCLES

If you want to raise the pitch 20%, multiply the number by 120%, if you want to lower the pitch 20%, multiply the number by 80%, etc.

Posted: 2012-09-07 21:13 Reply | Quote
robro

Avatar

Member for: 3606 days
Status: Offline

#39175
There seems to be something weird going on with how NSFPlay handles DPCM samples. I used it to export a WAV of one of my tracks and upon opening the WAV in Audacity I immediately noticed a very obvious DC offset issue that started right when the first sample was played. I also exported a WAV from foobar2000 (I have an nsf importer plugin) to compare and it does not have the problem.

I took a [url=http://i.imgur.com/r8ui1.png]screenshot to illustrate what I'm talking about. The top track was exported from NSFPlay and the bottom track was exported from foobar2000.

Posted: 2012-09-07 21:16  (Last Edited: 2012-09-07 21:21) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#39176
Can you attach or send me the NSF used? I haven't seen this happen in any of my own tests.

Out of curiosity, is this a track that has expansion audio (5B, VRC6 or MMC5)? Could it be that you've just disabled the highpass filter in your settings? Try the default HPF=164 in your in_yansf.ini file.

Posted: 2012-09-07 21:20 Reply | Quote
robro

Avatar

Member for: 3606 days
Status: Offline

#39177
Sure.


Attachments:
robro__porcelain_memories.nsf (8 Kb)
Posted: 2012-09-07 21:22 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#39178
I was editing my post when you replied. I think you just disabled the HPF in the settings. See above.

Posted: 2012-09-07 21:55 Reply | Quote
robro

Avatar

Member for: 3606 days
Status: Offline

#39180
[quote=rainwarrior]Could it be that you've just disabled the highpass filter in your settings? Try the default HPF=164 in your in_yansf.ini file.[/quote]

Ah, thanks. Yes, I did drag both sliders all the way down. Didn't realize there'd be a problem.

Posted: 2012-09-07 22:33 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#39182
The highpass filter is responsible for filtering off the DC bias. Turning off the filters completely is useful for seeing exactly what kind of signal is being output, but generally you always want at least a little. The default is similar to what I get from my NES, but you can set it to 255 if you want the bare minimum.

Posted: 2012-09-08 07:26  (Last Edited: 2013-01-04 02:21) Reply | Quote
Patashu

Avatar

Member for: 3749 days
Location: Sydney, Australia
Status: Offline

#39198
EDIT: If you want the latest version of NSFplay Synthesia please go to [url=http://famitracker.com/forum/posts.php?id=4220]http://famitracker.com/forum/posts.php?id=4220

Hi guys, I wrote a little synthesia plugin for nsfplay 2.2
If you've ever seen Synthesia videos on youtube, you know what it looks like already. I hacked the Keyboard View (click the hand pointing to a piece of paper then look under View) to implement this.
Make sure to set FPS to 60 under Settings... or it'll look really bad

Screenshots:
[url=http://imgur.com/a/V185x]http://imgur.com/a/V185x
Video:
[url=http://www.youtube.com/watch?v=rszzfEgyDUs]http://www.youtube.com/watch?v=rszzfEgyDUs

_______________________
bite-sized songs inspired by rhythm game music, in Famitracker: http://soundcloud.com/patashu
Page 1 of 3 Sort: Goto Page: [1] [2] [3] Next >>