Settings

Theme

Show HN: Pixeltune, a nicer chiptune and VGM player

pixeltune.org

80 points by tomaspollak a year ago · 53 comments · 1 min read

Reader

10 years ago I began working on Muki, a web-based MIDI and chiptune player which I eventually announced here on HN[0]. It was a fun weekend project.

Over the years I received numerous requests from people that wanted more: more music, more features, more playable formats, you name it.

Eventually I began working on a complete rewrite of the app (this time for real), and, realizing that each year another chiptune or MIDI website went offline, I decided to start archiving them for preservation.

Today, 10 years after the first release, I think it's finally time for the new, nicer version to hit the shelves. It's now called Pixeltune and yes, now you can actually turn down the volume. :)

Hope you like it!

[0] https://news.ycombinator.com/item?id=10305918

tlh a year ago

Really love this, kudos for making it! Can listen to the Sonic 2 soundtrack on loop for hours.

Just a note to say that on MacOS Safari none of the icons or fonts seem to want to load. Looking at the console it appears to be lots of CORS-related issues. I.e, "Cancelled load to <a package url> because it violates the resource's Cross-Origin-Resource-Policy response header."

nyanpasu64 a year ago

Is it possible to loop a song infinitely? This is a standard feature for chiptune emulation playback programs (vgmstream, GEP, foobar2000, Audacious, Droidsound-E, etc.).

  • tomaspollakOP a year ago

    You're right! This is definitely doable, but... wouldn't you eventually want to listen to _other_ songs?

    There's currently a 2:30 min time limit on songs so that they don't loop forever. I plan to make this configurable, so I could allow setting it to a very long timeframe (something like 10 minutes or so).

    • monkpit a year ago

      Alternatively: what’s the reason _not_ to allow this?

    • jader201 a year ago

      I mean, when I played some NES games, I might hear the same level loop for 30 minutes before I hear the next level. My brain can’t compute hearing the song from a level for only one loop. :)

fourfour3 a year ago

I'd love to see WebMIDI support similar to https://chiptune.app/

I have a SC-8820 - it can simulate a SC-55/SC-88/SC-88 Pro (the SC-55 in particular is what a lot of VGM MIDIs were made using) and I'd love to be able to use it with this collection :)

  • tomaspollakOP a year ago

    This is actually possible already, but I couldn't finish the UI part on time. Give me a few days and I'll add the option.

    PS. I also have a SC-55, nothing beats the original!

    • fourfour3 a year ago

      Fantastic!

      Sadly it’s quite hard (and expensive!) to get a real SC-55 in the UK :/

      The 8820 is the same architecture etc as the SC-55/88/88 Pro, so the simulation is basically swapping out the sample sets. I can’t tell the difference :)

      My next target is a MT-32 :)

      • tomaspollakOP a year ago

        Oh wow, I just checked the prices on the MT-32 and IT IS N-U-T-S! Hope you can find a good one without breaking the bank. :)

      • tomaspollakOP a year ago

        Ok, WebMIDI support is live. Try it out and let me know if it works. :)

        • fourfour3 a year ago

          Hey, thanks for looking into this so fast.

          I checked this and it doesn't seem to be working for me - I can select it as a GM synth in the settings and select the right MIDI port, but it's not actually playing out via WebMIDI - it sounds like it's still using ADLMidi. Same behaviour in both Firefox & Chrome.

          If I refresh the page after that, it just then keeps skipping tracks instantly. I'm using https://pixeltune.org/?b=ZD1UcmFuc3BvcnQgVHljb29uIERlbHV4ZS9... as my test tracks.

          edit: just noticed there's some debug logging in the JS console. Here you go: https://www.pastery.net/naegce/

          • tomaspollakOP a year ago

            Thanks for the feedback. I _did_ fix a bug last night so it might be working already.

            The "Invalid DataView length" error seems like a parsing error... maybe try using a different set of songs?

            Anyway, I'll take a deeper look at it later!

            • tomaspollakOP a year ago

              Ok I found it! For some reason those files have an invalid header. I added a workaround so they should play fine now.

              • fourfour3 a year ago

                They do indeed, and they sound superb :)

                Thanks for spending the time on it!

  • bloopernova a year ago

    Oh wow, they have U.N. Squadron music from the SNES! Thank you for the nostalgia blast :)

faraggi a year ago

Hey Tom! This is fantastic project, I see myself using it daily. But the best part of it all is your dedication to preserving the midi culture and the art form itself.

(game) Music back then was truly on another level and I'm glad some people are archiving the songs and their chips.

superfamicom a year ago

Love this! I've been working on and running https://sfc.fm for about 7 years now so very similar interests!

One thing I did notice was the in the SPC emulation, particularly in Super Mario World `12a Athletic.spc` there is a lot of echo / reverb that isn't present in the actual file or game, is there secondary effect processing happening somewhere, I couldn't seem to turn it off, you can play it here https://sfc.fm/sfc/super-mario-world track 16

  • tomaspollakOP a year ago

    Yes, as I mentioned in other comment, Pixeltune applies a reverb effect on some of the cores. There's currently no way to turn it off but there will in the near future. :)

    Kudos for sfc.fm by the way!

zeta0134 a year ago

This is a really slick player! I have a feature request though. I noticed almost right away that NSF (NES/Famicom) songs are in stereo and seem to have some sort of reverb filter applied. The original console is mono only, so this suggests that whatever core is performing NSF playback is layering on these additional effects. I'd rather hear the stock audio coming out of the console. Can this be exposed as an option?

  • tomaspollakOP a year ago

    Yes indeed. Pixeltune adds a reverb effect on top of the output of some cores. I'll include an option to turn it off. Good one!

snowram a year ago

Looks like there are a bunch of Famitracker modules (.ftm files) that are converted to MIDI but should actually be converted to NSF like any other NES song.

  • tomaspollakOP a year ago

    Oh, yes. That's because the Famitracker port I'm using[0] is a bit old and doesn't support the newer .ftm versions. So in case the player doesn't support a given song, there's a fallback to using FTMtoMID so you can still listen to it.

    This was all done before I ported Furnace Tracker (that also supports the .ftm format) so I might just use Furnace for playing them. I have to check whether it can play the newer .ftm versions.

    [0] https://github.com/nukep/famitracker-cx

  • snowram a year ago

    Also SID files play for a fixed amount of time, so long-ish ones cut during playtime. I know HVSC has a database that defines track length, not sure for the others though.

    • tomaspollakOP a year ago

      Yes, as I mentioned in another comment, the player has a time limit on songs to prevent them from looping forever. I'll include an option to let you modify this, so you can listen to them _almost_ forever.

s5ma6n a year ago

Reminds me of https://chiptune.app/browse

sersi a year ago

This is just lovely. Nice trip through nostalgia, when I was 12 years old, I had a period where I listened to a lot of mods from the amiga demo scene to the eternal bafflement of my parents :) It's a pity I lost the collection I curated of my favorites.

One thing for tracks that have duration, it'd be great to see it.

  • tomaspollakOP a year ago

    Yes, track duration is on the TODO list.

    I will also add an "export data" option for you, so you can rest safe that you won't lose your beautifully curated playlists. :)

29athrowaway a year ago

There's also this which you can run on a Raspberry Pi (not a web player)

https://github.com/sasq64/chipmachine

ugh123 a year ago

Amazing interface and player!

I'm finding a lot of this music as great background for work. It seems especially the 16 bit and 32 bit game system music seemed to hit a sweet spot for me.

  • tomaspollakOP a year ago

    Thank you. I have a few minimal/ambient playlists that are great for concentration. I'll include one or two in the featured section!

teeuwen a year ago

I’m really digging the background visuals. It reminds me of the old Playstation home screen background animation.

binary132 a year ago

Curious, but it didn’t make any sound on my iPhone in safari.

  • tomaspollakOP a year ago

    I still haven't tested the player on mobiles thoroughly. Do you at least see the oscilloscope running?

    • binary132 a year ago

      Yes! I thought at first I had audio routed to a Bluetooth device, but that wasn’t it. Oh well. I’ll have to take a look on my laptop, though.

      [update] fun stuff!

loa_in_ a year ago

Works flawlessly, sounds very good. Already improved my day!

squigz a year ago

Haha, love the changelog, and love the tunes; nice job!

2024-08-11: The rewrite is done

It took a while but it's finally here. Support for playlists, favorite songs, WASM cores, new formats, etc. The list of supported formats now includes KSS, AY, Furnace and Famitracker songs, and much more (click on Song formats to see the full list).

...

(Time goes by)

2018-05-04: Began work on new version

This might take a while

  • tomaspollakOP a year ago

    ;)

    • squigz a year ago

      Out of curiosity, what is the size on disk of the music collection? (485k songs)

      • fourfour3 a year ago

        Do you have any plans to let people download the music collection in bulk? eg a direct download or via archive.org?

        You mention in your FAQ that preservation is a big goal of this for you, and this is a very impressive collection that I'd hate to see disappear like some of the original sites!

        • tomaspollakOP a year ago

          Good question. I was thinking of eventually putting the whole archive in a decentralized system like IPFS, but I guess archive.org is also fine.

          However I want to wait a bit before doing so, because some of the archive sources haven't responded to the permission request I sent. And I don't want people to download their collections in bulk if they wouldn't want to.

      • tomaspollakOP a year ago

        Around 25 GB in total. Originally managed using a Git repository until it became unmanageable...

        I just checked the song count, by the way, and it's actually 503305, contained in 441902 files (some files can hold multiple tracks).

webprofusion a year ago

This is rad.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection