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
If you've ever seen a video on youtube of Synthesia, you already know what this looks like - colourful notes flying down the screen, showing you the song's melodies over time.
Here's a video demonstration: [url=https://www.youtube.com/watch?v=TK9eUsNLsjw]https://www.youtube.com/watch?v=TK9eUsNLsjw
[u]Current version: 0.61[/u]
[b]Download exe:[/b] [url=https://dl.dropboxusercontent.com/u/56073318/Synthesia/nsfplay%202.3%20Synthesia%200.61.zip]https://dl.dropboxusercontent.com/u/56073318/Synthesia/nsfplay%202.3%20Synthesia%200.61.zip
[b]Download .diff:[/b] [url=https://dl.dropboxusercontent.com/u/56073318/Synthesia/synthesia061.patch]https://dl.dropboxusercontent.com/u/56073318/Synthesia/synthesia061.patch (use patch -u -p1 --ignore-whitespace < ../synthesia061.patch inside of "nsfplaysrc23" containing nsfplay 2.3 source code: [url=http://code.google.com/p/nsfplay/source/checkout]http://code.google.com/p/nsfplay/source/checkout and compile using Visual Studio 2008 )
Old versions: [url=https://www.dropbox.com/sh/kktr265xyl9xqqr/AACt6-HjONEoMngRO9MPpp7pa?dl=0]https://www.dropbox.com/sh/kktr265xyl9xqqr/AACt6-HjONEoMngRO9MPpp7pa?dl=0
To use this program:
1) Load an nsf (via the open folder icon)
2) [color=#F00000]Colours will [color=#F0F000]spaz out over your [color=#7800F0]screen
-=-
[size=5]Your guide to NSFPlay Synthesia's sights and colours
General:
Width = volume
Brightness = white or black key
2A03/MMC5
Pulse: [color=#F00000]red for 12.5% duty cycle, [color=#F0F000]yellow for 25% duty cycle, [color=#7800F0]purple for 50% duty cycle.
Triangle: [color=#F0F0F0]white
Noise: Blue to cyan to green to green-yellow for random noise, red to orange to yellow for periodic noise.
DPCM: Random shades of blue/purple depending on the memory address of the DPCM sample.
VRC6
Pulse: Depends on duty cycle setting: [color=#F00078]0[color=#F00000]1[color=#F07800]2[color=#F0F000]3[color=#00F000]4[color=#00F0F0]5[color=#0000F0]6[color=#7800F0]7 (ranging from 6.25% to 50% duty cycle)
Sawtooth: [color=#F07878]pink
VRC7
All: Colour is a function of the current frequency modulation envelope's volume - maximum volume gives you [color=#F00000]red, minimum volume (a sine wave) gives you sine wave is [color=#F000F0]magenta. In addition, notes are desaturated towards [color=#787878]gray the higher their feedback is. Other properties that could affect VRC7 timbre (mults, wave rectification, etc) are not tracked. As a result, two of the default patches look the same despite sounding different, but usually you see what you need to.
FDS/N163
All: Triangle wave is [color=#F0F0F0]white, sine wave is [color=#F000F0]magenta. If Synthesia thinks the wave is kinda like a pulse wave if you squint the right way, it colours it that way in a manner similar to VRC6 from [color=#F00078]hot pink to [color=#7800F0]purple, with increasing desaturation towards [color=#787878]gray the more it's uncertain. If Synthesia is convinced your waveform would not produce any tone it colours it [color=#242424]black. Finally, if it's none of the above it's coloured [color=#F07878]pink.
5B:
See for yourself!
-=-
[b]Changelog[/b]
[b]0.61:[/b]
-Fixed bug where if you set delay below about 20ms, the synthesia window would freeze whenever changing songs. Now all values of delay should work OK (tested -250 to +250 or so)
-5B: When envelope is volume modulating 5B noise, it should now be displayed.
[b]0.60:[/b]
-With help from rainwarrior, there are now NO outstanding bugs that produce incorrect frame data in the synthesia output.
-A new in_yansf.ini parameter, STARTING_OCTAVE has been added. Its default value is 1. Try 0 or even -1 if your .nsf has super low notes.
-5B support is (hopefully) now complete. I even added special colours for when you create a 'new instrument' using volume envelope modulation.
[b]0.55:[/b]
-5B env now shows as pink for sawtooth
-5B squares are coloured purple and display their changing volumes if a 5B volume envelope is used on them
-5B triangle and 5B noise SHOULD work, but I don't have an nsf to test these with.
[b]0.54:[/b]
-NSFs that used volume envelopes, such as for Deadly Towers and Marble Madness, now look correct in the keyboard and drums synthesia output.
-Up to 240 (256?) N163 samples now display.
-SYNTHESIA_WIDTH, SYNTHESIA_HEIGHT and DRUMS_HEIGHT properties defined in in_yansf.ini. If you want any of these 3 to be larger, just edit them, save and re-open the program.
-An additional octave in both directions is displayed on the keyboard synthesia output, for 10 total. Now your ultra-highs and ultra-lows won't fly off screen!
[b]0.53:[/b]
-Fixed a crash when you go to Options -> Settings and click OK and Apply (the fix was compiling in Visual Studio 2008 )
-The keyboard visualizer now appears when you open NSFPlay Synthesia, since let's face it, you were going to anyway!
-Time expansion now runs in 0.125x increments instead of 1x increments
-Tracks that are at volume 0 but not disabled (besides triangle and DPCM) will no longer be drawn
-The checkbox beside each channel in the keyboard visualizer mutes/unmutes the track.
-Keyboard Visualizer -> Settings... now has sliders for Synthesia Speed and Synthesia Drum Speed (in pixels per frame from 1 to 8 )
[b]0.5:[/b]
-VRC7 instruments are desaturated according to how much feedback they use. (It would be more interesting to desaturate them according to how much feedback made a difference that frame, but I leave that problem to a future update )
-N163 and FDS waveform colouring added. Sine waves and triangle waves are painted magenta and white if they match Famitracker's sine/tri waves exactly, else fuzzy matching to square wave is attempted (which will assign it a colour similar to VRC6's hot-pink-to-purple scheme) with desaturation based on how inaccurate it was, else it's painted default pink.
[b]0.41:[/b]
-Now patching the beta version of nsfplay 2.3 (which serves to fix a bug where 2A03/MMC5/VRC6 were incorrectly displaced towards the right at high pitches)
[b]0.4:[/b]
-VRC7 volume fixed
-VRC7 colouration fixed
-Display less debris upon starting up a song for the first time
[b]0.3:[/b]
-noise/dpcm synthesia display
-fixed sawtooth volume
-turned octave markers on by default
-Two instruments can be drawn on the same note
-Vibratos and pitch bends are drawn in continuous lines
[b]0.2:[/b]
-60Hz refresh rate made the default
-Paint up to 10 missed frames
-Fixed colouring for MMC5 to be equal to 2A03
-Altered width changes due to volume such that, at the default keyboard width size (and yes, you can alter it by stretching the window horizontally) 1px = 1 volume unit
-=-
Possible features for future versions:
-flip drums scrolling direction
-setting: background colour
-setting: colour for vertical B/C lines
-setting: colour for E/F lines
-alter luminosity multiplier for black keys (setting?)
-figure out consistent way to format colours both in source code and in ini (ipi)
-figure out if the colour for FDS/N106 non-waveform should be changed (visualizer art) (setting?)
-make it so noise and triangle volume is accurately altered by the current DPCM state (might look bad/unintuitive? setting?)
pie in the sky:
-fourier transform of DPCM for better colouring/positioning
-fourier transform of FDS/N106 waves for better colouring/positioning
-indicating things like mults in VRC7
-=-
Special thanks to rainwarrior for NSFPlay being open source, I am only a simple modifier. Kudos!
Changelog for 0.3:
-noise/dpcm synthesia display
-fixed sawtooth volume
-turned octave markers on by default
-Two instruments can be drawn on the same note
-Vibratos and pitch bends are drawn in continuous lines
The noise display and vibratos/pitch bends is seriously trippy looking! I'll get some screenshots/videos up later ^^
[b]Download exe:[/b] [url=https://dl.dropbox.com/u/56073318/Synthesia/nsfplay%202.2%20Synthesia%200.3.zip]https://dl.dropbox.com/u/56073318/Synthesia/nsfplay%202.2%20Synthesia%200.3.zip
[b]Download .diff:[/b] [url=https://dl.dropbox.com/u/56073318/Synthesia/synthesia030.patch]https://dl.dropbox.com/u/56073318/Synthesia/synthesia030.patch (use patch -u -p0 --ignore-whitespace < synthesia030.patch outside a folder containing the source code)
[b]Changelog for 0.4:[/b]
-VRC7 volume fixed
-VRC7 colouration fixed
-Display less debris upon starting up a song for the first time
VRC7 looks absolutely stunning. I will let you observe for yourself
(Right now it just colours according to amplitude of modulation envelope. So some things that effect the timbre further such as feedback are missed. If you are a VRC7 expert feel free to suggest a colour scheme )
(I also noticed VRC7 seems to be tilted left compared to 2A03, especially at high frequencies. I'm not sure if this is an artifact of VRC7 or of the particular nsfs I was looking at, but if it looks ugly I can try and figure it out)
[b]Download exe:[/b] [url=https://dl.dropbox.com/u/56073318/Synthesia/nsfplay%202.2%20Synthesia%200.4.zip]https://dl.dropbox.com/u/56073318/Synthesia/nsfplay%202.2%20Synthesia%200.4.zip
[b]Download .diff:[/b] [url=https://dl.dropbox.com/u/56073318/Synthesia/synthesia040.patch]https://dl.dropbox.com/u/56073318/Synthesia/synthesia040.patch (use patch -u -p0 --ignore-whitespace < synthesia040.patch outside a folder containing the source code)
Version 0.41 is out, with rainwarrior's help fixed the '2A03 tilted right' bug
[b]Changelog for 0.41:[/b]
-Now patching the beta version of nsfplay 2.3 (which serves to fix a bug where 2A03/MMC5/VRC6 were incorrectly displaced towards the right at high pitches)
As of this build, I'm out of ideas for things to add/change. I'd like to add colouration support to FDS and N163, but I have no idea how to go from a waveform to a colour in a meaningful way (suggestions welcome, of course). Feel free to post bugs, feature requests, settings requests, user interface requests, etc.
[quote=Patashu]As of this build, I'm out of ideas for things to add/change. I'd like to add colouration support to FDS and N163, but I have no idea how to go from a waveform to a colour in a meaningful way (suggestions welcome, of course). Feel free to post bugs, feature requests, settings requests, user interface requests, etc.[/quote]
You should colour the N163 based on where the waves are being read from in the wave RAM and colour them differently for every 16-sample interval.
But letting us pick our own colours would be nice too.
[quote=za909][quote=Patashu]As of this build, I'm out of ideas for things to add/change. I'd like to add colouration support to FDS and N163, but I have no idea how to go from a waveform to a colour in a meaningful way (suggestions welcome, of course). Feel free to post bugs, feature requests, settings requests, user interface requests, etc.[/quote]
You should colour the N163 based on where the waves are being read from in the wave RAM and colour them differently for every 16-sample interval.
But letting us pick our own colours would be nice too.[/quote]
I'm probably going to do this:
-Detect if the wave is almost a square wave, triangle wave or sine wave whenever it changes (after thinking about it it's not too hard) and colour accordingly (magenta through to pink for 0-50% duty cycle square waves, magenta for sine waves, white for triangle, pink for everything else)
The problem with colouring based on memory location is that it will vary unpredictably from nsf to nsf and even from channel to channel (since N163 will have the same wave on multiple places so they don't clash when played in different sequences, right?), which I also don't like about how I'm currently colouring DPCM. A better approach (for both) might be hashing each new wave when it comes and assigning a colour based on the hash.
Letting the user decide sounds nice but fiddly, so it definitely shouldn't be the default. It's definitely a good idea for the future.
[b]Changelog for 0.5:[/b]
-VRC7 instruments are desaturated according to how much feedback they use. (It would be more interesting to desaturate them according to how much feedback made a difference that frame, but I leave that problem to a future update )
-N163 and FDS waveform colouring added. Sine waves and triangle waves are painted magenta and white if they match Famitracker's sine/tri waves exactly, else fuzzy matching to square wave is attempted (which will assign it a colour similar to VRC6's hot-pink-to-purple scheme) with desaturation based on how inaccurate it was, else it's painted default pink.
NSFplay 2.2 + Synthesia reads the CHANNEL_XX_COL values from the .ini backwards - in BBGGRR format. This is only true for the keyboard display, however.
My fault - I reversed the order it was being handled in the source code (because it had blue first instead of red for some reason, and it was REALLY bugging me). If I get around to updating this (5B support hype???) I'll look into that.
It's about time I give this program another look, so I've added a list of potential changes to the OP for when I next sit down and work on updating this (though don't expect everything at once)