Welcome, Guest
pAPU visualizer
(1 viewing) (1) Guest

TOPIC: pAPU visualizer

pAPU visualizer 2 years, 2 months ago #3122

So for what's probably been years I've had fragments of this crazy idea bouncing around in my head: would it be possible to create a NES music visualizer that actually displayed a real-time approximation of the waveform activity on at least the waveform channels? I don't think I've ever seen a tech-demo to the effect because really, there's no way to just pull that kind of data off the pAPU. You'd need to get really intimate with how the chip worked and then try to simulate it in software. At (using framerate timing) 1/2, 1/4, or even 1/8 the speed of some of the internal effect timers used.

Then, a few weeks ago, I found myself prompted to do a new NES mix, but had no inspiration for what to put in the background. So I decided to get bored this weekend. ... And suddenly it was Tuesday and all I had done was the graphics. Ah, well. Want You Gone isn't too bad for testing.

This... was WAY trickier than I anticipated up front, but as a platform for subsequent/upcoming chiptunery, I'm quite satisfied at how it came together. Maybe in another weekend or so I'll have the actual mix done

www.psychsoftware.org/stuff/temp/visualizer.nes
Last Edit: 2 years, 2 months ago by seanstar.

Re: pAPU visualizer 2 years, 2 months ago #3123

Not so crazy. I ran across this kind of stuff just a few days ago

casperelectronics.com/art/nintendo/

Not waveform, but rather it uses a hardware mod to screw with the graphics in time with music.

Re: pAPU visualizer 2 years, 2 months ago #3128

Audio Overload can show an oscilloscope waveform for any of the formats it plays. It's 2D and a single composite waveform, but there ya go. For some reason though, it isn't very speedy with NES chiptunes. I've seen it lag behind about 8-10 frames at one moment, and the next it's smooth as butter.

Re: pAPU visualizer 2 years, 2 months ago #3134

menace690 wrote:
Not so crazy. I ran across this kind of stuff just a few days ago

casperelectronics.com/art/nintendo/

Not waveform, but rather it uses a hardware mod to screw with the graphics in time with music.


Article responses number 3 and 4:
[...] You can also achieve similar effects from your NES by smashing it with a hammer while plugged in – for at least 10 seconds. Check out the complete worklog here. [...]

My sentiments exactly. An interesting hack, perhaps, but devoid of any artistic value, and painful to see the system subjected to.

And neither that nor AO quite achieve the goal of having the NES react to its own audio...

One interesting project I was linked by way of response is developers.slashdot.org/story/12/02/07/0...ng-the-nes-with-lisp
Now, LISP ranks right up there with ML and 6502asm in my list of backwards-esque-until-you-deeply-comprehend-them easy-to-f***-up languages with more instructional than practical value, so graduating to that I wouldn't see netting me much more than automated oscillation effects, but it's still interesting.
Last Edit: 2 years, 2 months ago by seanstar.

Re: pAPU visualizer 2 years, 2 months ago #3139

So, how did you do this? Did you figure a way to get the necessary data from the pAPU? Are you faking it by running a visualizer over the music code? Just curious here.

What's the second song that plays? I haven't played either Portal game.

And now to the ROM's CHR banks...

chrs.jpg

At first I thought it was a weird rendition of the US.

chr.gif

Then I LOLed. Well played.

Re: pAPU visualizer 2 years, 2 months ago #3151

Wow- you're putting far too much effort breaking out the tiles if you aren't even getting them nicely gridded by address :-/ I thought that's how most tools natively displayed them...
Anyway, I have the distinct advantage of knowing what goes into the sound registers. When my music data parser does the write, it then breaks out the various parameter bits and caches them. I then basically run the pAPU functionality in software in parallel and approximate the results on the background nametables as they scroll. I was actually quite impressed with the detail of the sound tech doc I used, although it was still a headache approximating counters that run at many times the framerate for things like sweeps and envelope calculations. And technically, the sweeps still aren't rendered authentically. I was too lazy to do the proper 16-bit shift-and-add/shift-and-subtract and differentiate between 1s- and 2s-complement subtraction between the two square channels, but I figure very little music is going to use sweeps slow enough to notice the fudge.

Re: pAPU visualizer 2 years, 2 months ago #3153

I didn't put any real effort into breaking out the tiles. And they are nicely gridded by address! Here's a screenshot of my program versus another program with the same name as mine (I'll sue him later), which you can see at www.charleswieland.com/
comparison.jpg


They look the same to me. I'm just displaying the images in the order they are found in the ROM. I also took a look at Nestile and it's doing the same thing as me.

Thanks for your explanation on how you did this. It's exactly as I though you'd have to for the NES. Writing a pAPU simulator on the platform the pAPU exists - now who's putting in far too much effort?
Last Edit: 2 years, 2 months ago by Squirrel.

Re: pAPU visualizer 2 years, 2 months ago #3154

difference being the one on the left is a 16x16 grid full-page view indexed $00-$0F by $00-$F0 as the tiles are addressed in code, the one on the right is an arbitrarily 8-wide list of 1-based decimal-indexed samples. Viewed as the whole aligned CHR bank, you don't even need to connect the dots to find the squirrel-

fullascii_alt.gif
Last Edit: 2 years, 2 months ago by seanstar.

Time to create page: 0.74 seconds