Readit News logoReadit News
zeta0134 · 2 years ago
Jake Kaufman was kind enough to release the entire Shovel Knight OST as an NSF under creative commons, meaning we're allowed to host it and do cool stuff with it. So I'll take this opportunity to plug an NES visualizer I've been working on. Did you know the Shovel Knight OST can and will run on a real FamiCom, using Konami's VRC6 mapper? Knowing that, I can look at the register writes as they're being made, work out the appropriate frequency on the keyboard, and show a piano roll in realtime:

https://rusticnes.reploid.cafe/wasm/?tab=jam&cartridge=Shove...

But I don't have a slick interface or a way to browse chiptunes, so...

chiptune.app: 1

zeta: 0

Clearly I need to get to work :) (At the very least, you can load up most NSF files and even NES games, and the visualizer will still run. If you want to know what notes the "coin" sound in SMB makes, now you can.)

emmanueloga_ · 2 years ago
FX3 [0] is one of my fav albums from Virt, but I don't think he ever released the source? If I get it right it was composed as .nsf files too.

I saw there was a MIDI file for at least one of the songs (Choppastyle [1][2]), so maybe there's a chance to get the rest of them from somewhere? I'd love to hear a version with modern synth instruments to compare and contrast (although my dream is for a cover of the whole album by www.paulgilbert.com and friends hahah).

NOTE: the redirect from links like [2] is a bit jarring, it would feel more natural if the URL remained (instead of the redirect to [3]). It would also make it easier to share a specific song by just copying the URL.

--

0: https://virt.bandcamp.com/album/fx3-remastered

1: https://virt.bandcamp.com/track/choppastyle

2: https://chiptune.app/?play=Contemporary%2FVirt%2Fv-choppasty...

3: https://chiptune.app/browse/Contemporary/Virt

montag · 2 years ago
I had a rationale for this redirect behavior, but not sure it matches user expectations. The URL will reflect the browse location, but not the playing track...otherwise the URL gets too clunky. You can always copy the playing track from the link icon.
kibwen · 2 years ago
The piano/waveform visualizer is great, and there's a ton of fun to be had here by turning on and off different instruments. It would be nice if the interface were more discoverable/documented though. :)

(EDIT: also, it looks like chiptune.app does have a sort of piano-like visualizer available from the top-right corner, but it doesn't look quite as nice as yours.)

sonjaqql · 2 years ago
This is a really cool visualizer. Neat work!
Pathogen-David · 2 years ago
I hadn't realized (or maybe just forgot) your visualization was publicly available, super cool to see the Shovel Knight OST in it! I love seeing your music come up on YouTube/Twitter, the retro piano roll and the waveforms are so satisfying to watch.
TulliusCicero · 2 years ago
Wow, this visualizer is awesome!
tangwwwei · 2 years ago
amazing visualizer! are there any other games or NSF you would recommend to load up in the visualizer? im not familiar with the world of nes music
charred_patina · 2 years ago
Wow, I previously had this domain with a similar project hosted and just let it expire in March. I was really confused seeing it at the top of HN.

"Wait why is my website on the front page of HN? I thought I let the domain expire."

I don't mean to piggyback, but I want to show what I had hosted here before:

https://www.youtube.com/watch?v=7pEvu_nC2LQ

OPs project is obviously much more impressive, but it's cool to me that the aesthetics are similar and both come from similar places. A nice reminder that the internet is actually pretty small I guess.

Also, I'd like to introduce people who may not be familiar with Chiptunes and trackers to Tim Follin. Tim has a legendary status among NES composers. His music doesn't even sound like it could be coming from an NES sound chip:

https://chiptune.app/browse/Nintendo/Silver%20Surfer

montag · 2 years ago
Very interesting, had no idea when I bought the domain. Cool project, too.
khazhoux · 2 years ago
The fact that the songs play instantly when you click makes me sad for literally all modern software.
Waterluvian · 2 years ago
Not sure I follow. I just tried with Spotify on my phone and desktop (oooh Electron spooky) and any song plays instantly.
sealeck · 2 years ago
I actually find that Spotify is super buggy. If I switch devices it doesn't work (I have to select the new device at least five times), when I go underground with my phone it's super slow to realise that I've lost connection, and I usually have to restart the app for it to continue playing music.
brk · 2 years ago
I think the point is that "all modern software" has all kinds of delays and buffering before playing, in contrast to this site where the audio just plays instantly and reliably.
ungamedplayer · 2 years ago
This is not a consistent experience for everyone.
xp84 · 2 years ago
Try Apple Music, lol. They’re still working on starting tracks quickly and smoothly.
p-e-w · 2 years ago
It's just a variation of the standard "all modern software is garbage because Facebook and Twitter are garbage" nonsense complaint.
ziml77 · 2 years ago
They don't though? I just clicked between two tracks a few times. Each time I switch there is a very clear delay between the click and the playback starting. You can even visually tell there's a delay because the row only becomes highlighted when playback of that track starts.
mdp2021 · 2 years ago
Check the download graphs in your browser's network activity monitor.
mdp2021 · 2 years ago
> when you click

When you click, you download packages between 30kb and 300kb (roughly speaking); the player is surely already in memory - that is your latency. For systems that run immediately on machines with a fraction of power.

throwaway675309 · 2 years ago
This comment makes zero sense considering that mod/XM type tracker files are mere kilobytes in size as opposed to a streamed OGG or MP3 file which is megabytes.
1letterunixname · 2 years ago
The relative compression is much, much higher for the equivalent of "vector" music over high bit rate "raster" digital audio codecs.

Deleted Comment

teddyh · 2 years ago
For those who want MP3 files to use locally, there’s the Stone Oakvalley collections, recorded from real Amiga and Commodore 64 computers:

• Amiga Music Collection (SOAMC=) <https://www.paula8364.com/>

• Authentic SID Collection (SOASC=) <https://www.6581-8580.com/>

Jakob · 2 years ago
If you are on macOS, download the .mid file and open it in Garageband and listen for how much (free!) MIDI synthesis has improved.
wiradikusuma · 2 years ago
Btw I just want to say that I tried CANYON.MID and it sounds worse in GarageBand. I guess like using retina display to see old JPEG files, the imperfections now visible.
wiradikusuma · 2 years ago
You're right! Why is that? Shouldn't regardless of the app (Chrome vs GarageBand) the sound be the same? I mean the underlaying player should be the same right?
Pathogen-David · 2 years ago
That's the nature of MIDI files. They don't encode audio, they encode a set of instruments with a list of notes. It's up to whatever's playing them to provide what those instruments actually sound like.

Here's an example of the same MIDI file being played back on several different devices: https://youtu.be/eiMP-PlL6VM?t=954 It's clearly the same song on all of them, but it sounds slightly different.

Modern browsers do not support MIDI playback on their own, so chiptune.app is presumably doing it on its own with its own (likely intentionally retro) sound font providing the instruments.

Additionally even if macOS had its own system-level MIDI synthesis (not sure if it does), GarageBand would actually probably still be different since it's main purpose isn't MIDI playback -- it's to be a DAW.

Jasper_ · 2 years ago
MIDI does not have a sound. It's just instrument data. The classic "MIDI sound" that you recognize is the Roland GM soundkit shipped with Windows (an early version of Roland's Virtual Sound Canvas product).

This website uses a different instrument set. You can actually select which one it uses in the Settings panel, but by default it uses Kenneth Rundt's GMGSx.sf2 (which does sound quite a bit Roland-y to me), as shipped by SynthFont.

I don't know what instrument collection GarageBand uses.

TazeTSchnitzel · 2 years ago
MIDI files only contain a description of (simplifying somewhat) the rhythm and base pitch of notes, and which instruments they should be played on, so the realisation can vary drastically depending on the particular system and configuration (e.g. soundfont choice) it's played back with.
bronikowski · 2 years ago
Am I blind or are there no SID modules? C64 is like 90% of tracked music that I'm listening to. :(
daneel_w · 2 years ago
In the scene people always set SIDs and tracker chiptunes apart, because of how technically different the two are. There's an enormous technical complexity of having to emulate not just the SID chip (which still isn't 100% understood) but also the 6510 CPU and even some of the C64's CIA timers to accurately replay SIDs, whereas almost all sample-based tracker music from the Amiga and PC need none of that effort. Replaying SIDs is even more complicated than emulating e.g. SPC700 of the SNES, the PSG sound of the SMS, or the YM/OPN2 synthesizer of the MegaDrive.
terlisimo · 2 years ago
> also the 6510 CPU and even some of the C64's CIA timers

yes, but also the VIC timers and the PLA. So basically you need all of the c64 chips emulated, at least in part :)

I wrote a simple SID player for fun and I feel like it's 20% shy of being a full c64 emulator, all it needs is video output and keyboard/joystick input.

kevin_thibedeau · 2 years ago
Sample based tracker formats shouldn't be considered chiptunes. The latter is supposed to mean sound generated by dedicated hardware with automatic waveform generation, envelopes, and filtering. Doing it all in software by mixing samples isn't the same.
chromoblob · 2 years ago
Meanwhile, there's GoatTracker (tracker for SID music).
snowram · 2 years ago
May I recommand to you the High Voltage Sid Collection? It is a collection of curated SID songs in a neat package, and it is updated regularly! https://www.hvsc.c64.org/
Audiophilip · 2 years ago
The whole HVSC is available on DeepSID, an online SID player: https://deepsid.chordian.net/
bronikowski · 2 years ago
Oh, I have HVSC, probably on most of my devices. I was expressing surprise about the project's lack of SIDs not my lack of it! :-D
terlisimo · 2 years ago
To be fair, nobody called c64 music "chip music", it was just "music/tunes" because c64 music is really just code so in a way all of it was chip music (excepting some digi tunes).

The term chip music was coined on amigas and newer computers to differentiate it from regular sample based music.

Sharlin · 2 years ago
C64 modules here: https://chiptune.app/browse/Game%20Mods/-%20Arranged%20-/

Of course these are indeed modules, arrangements by someone else than the original composer, and not SID tunes per se.

nurettin · 2 years ago
Now you get an entire thread of nerds explain you the etymological history of sound chips and the huge differences between a sid program and the mid format despite having perfectly working converters in both directions.
montag · 2 years ago
You are not blind! This is my personal bias showing, I should really add SID modules to the catalog.
Sharlin · 2 years ago
Yeah, it’s a bit strange omission.
mdp2021 · 2 years ago
Playing samples in patterns and computing coded sound are completely different efforts.
cglong · 2 years ago
Man, VGMusic.com was my Spotify in the 90's :)

I don't know much about the MIDI format, but there was one song [1] that I used to love listening to on Windows 9x. I guess the file took advantage of some 9x quirk, because the orchestration is completely busted in modern Windows and macOS. I'm so happy because this site plays it just the way I remember it!

[1]: https://chiptune.app/?play=vgmusic.com%20MIDI%2Fconsole%2Fse...

Kye · 2 years ago
MIDI has no sound on its own, so it depends on the thing playing it. Windows' MIDI synthesis might have gotten worse, or you remember it on the particular sound card you had with 9x.

Here's a video I found of one of my favorite games sounding completely different from how I remember it: https://www.youtube.com/watch?v=inn7IE6-wgY

cglong · 2 years ago
What a good demo! Yeah, I think I has to do with "updated" MIDI synthesis logic. The issue involves some of the harmonies; on modern devices, they start but never stop, then begin to layer on top of themselves, making it a total cacophony haha.
Moru · 2 years ago
Try the settings in the player, it has loads of soundfonts to try, they all sound very different. If it's a midi file, it all depends on what sound card or installed soundfont you had at that time.
cglong · 2 years ago
Ah thank you! I tried different combinations of Synth Engine and Soundfont but wasn't able to replicate the issue :/
qwertox · 2 years ago
What is playing this back? When using the inspector, I see it actually downloads the .mid file. I didn't grant Chrome access to my MIDI devices (not that I'd have any connected) and it was still playing the audio.

Is it playing it back with some internal samples and a playback feature, relaying it to the OS, or is this a Javascript player?

--

Oh wait, I just turned on the Visualizer, which makes me think that this is all done in Javascript, including the audio rendering?

boomlinde · 2 years ago
I'd guess the hard work is done by the WebAssembly blob. There are open libraries written in C and C++ for the rendering of just about any audio format into a sample buffer. For General MIDI playback you could use e.g. the TiMidity++ or FluidSynth libraries, which use instrument data from SoundFont files.
twoodfin · 2 years ago
The settings offer a variety of playback options, including FluidSynth—with a choice of SoundFonts—or direct Web MIDI.

This is wild. Anyone who’s more into this space than I am have any editorial comments on the various SoundFont options?

…listening to Space Quest III…

bryans · 2 years ago
MIDI playback does not require a device and is baked into the OS via QuickTime's synthesizer and Microsoft GS Wavetable Synth.