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 Synthesia 0.61 - keyboard visualizer Owner: Patashu New post
Page 1 of 6 Sort: Goto Page: [1] [2] [3] [4] [5] [6] Next >>
NSFPlay Synthesia 0.61 - keyboard visualizer Posted: 2012-12-19 06:01  (Last Edited: 2015-04-01 00:10) Reply | Quote
Patashu

Avatar

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

#42844
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!

Posted: 2012-12-20 02:23 Reply | Quote
Patashu

Avatar

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

#42861
Sneak peak at noise synthesia:
[url=http://i.imgur.com/q3xgo.png]http://i.imgur.com/q3xgo.png

Posted: 2012-12-20 07:16 Reply | Quote
Patashu

Avatar

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

#42867
Version 0.3 is out!

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)

Posted: 2012-12-21 02:33  (Last Edited: 2012-12-21 02:48) Reply | Quote
Patashu

Avatar

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

#42886
Version 0.4 is out!

[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)

Posted: 2012-12-21 04:46  (Last Edited: 2012-12-21 04:48) Reply | Quote
Patashu

Avatar

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

#42889
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)

[b]Download exe:[/b] [url=https://dl.dropbox.com/u/56073318/Synthesia/nsfplay%202.2%20Synthesia%200.41.zip]https://dl.dropbox.com/u/56073318/Synthesia/nsfplay%202.2%20Synthesia%200.41.zip
[b]Download .diff:[/b] [url=https://dl.dropbox.com/u/56073318/Synthesia/synthesia041.patch]https://dl.dropbox.com/u/56073318/Synthesia/synthesia041.patch (use patch -u -p0 --ignore-whitespace < synthesia041.patch outside a folder "nsfplaysrc23" containing nsfplay 2.3 source code: [url=http://code.google.com/p/nsfplay/source/checkout]http://code.google.com/p/nsfplay/source/checkout)

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.

Posted: 2012-12-21 07:36 Reply | Quote
BiscuitsForPony



Member for: 3660 days
Status: Offline

#42894
Fun to watch. I'm thoroughly [ab]using it, if only for the novelty. Pretty colors.

Posted: 2012-12-27 08:14 Reply | Quote
Xyz_39808

Avatar

Member for: 4180 days
Location: South Texas
Status: Offline

#43095
The keyboard crashes when you play the 5B envelope generator

http://www.mmlshare.com/tracks/view/208

AY 3-8910/YM2149 nerds sure to populate #famitracker for questions

Posted: 2012-12-27 09:20  (Last Edited: 2012-12-27 09:21) Reply | Quote
za909

Avatar

Member for: 3962 days
Location: Hungary
Status: Offline

#43096
[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.

_______________________
Rectangular sh*t ©
Posted: 2012-12-27 23:21  (Last Edited: 2012-12-27 23:22) Reply | Quote
Patashu

Avatar

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

#43107
[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.

Posted: 2012-12-31 01:14 Reply | Quote
Patashu

Avatar

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

#43190
Version 0.5 is out:

[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.

[b]Download exe:[/b] [url=https://dl.dropbox.com/u/56073318/Synthesia/nsfplay%202.2%20Synthesia%200.5.zip]https://dl.dropbox.com/u/56073318/Synthesia/nsfplay%202.2%20Synthesia%200.5.zip
[b]Download .diff:[/b] [url=https://dl.dropbox.com/u/56073318/Synthesia/synthesia050.patch]https://dl.dropbox.com/u/56073318/Synthesia/synthesia050.patch (use patch -u -p0 --ignore-whitespace < synthesia050.patch outside a folder "nsfplaysrc23" containing nsfplay 2.3 source code: [url=http://code.google.com/p/nsfplay/source/checkout]http://code.google.com/p/nsfplay/source/checkout)

Posted: 2013-01-14 18:28  (Last Edited: 2013-01-15 11:03) Reply | Quote
ipi

Avatar

Member for: 3522 days
Location: United Kingdom
Status: Offline

#43539
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.

Posted: 2013-02-15 10:33 Reply | Quote
Patashu

Avatar

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

#44536
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.

Posted: 2013-02-16 09:25  (Last Edited: 2013-02-16 09:26) Reply | Quote
za909

Avatar

Member for: 3962 days
Location: Hungary
Status: Offline

#44582
I think JSR has modified the preset sine wave of the N163, so you might wanna update that

_______________________
Rectangular sh*t ©
Posted: 2013-02-16 13:16 Reply | Quote
Patashu

Avatar

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

#44589
[quote=za909]I think JSR has modified the preset sine wave of the N163, so you might wanna update that [/quote]

Ah damn! Changelist is building up XD

Posted: 2013-02-26 08:45 Reply | Quote
Patashu

Avatar

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

#44886
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)

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