7 ms·
Show HN: Pixeltune, a nicer chiptune and VGM player
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 https://news.ycombinator.com/item?id=10305918
- deleted 2y ago[deleted]
- nyanpasu64 2y agoIs it possible to loop a song infinitely? This is a standard feature for chiptune emulation playback programs (vgmstream, GEP, foobar2000, Audacious, Droidsound-E, etc.).
- tomaspollak 2y agoYou'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).
- jader201 2y agoI 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. :)
- tomaspollak 2y agoOk case closed. The maximum option will be 30 minutes then!
- monkpit 2y agoAlternatively: what’s the reason _not_ to allow this?
- tomaspollak 2y agoTime, of course. ;) Already at the top of the TODO list, though.
- faraggi 2y agoHey 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.
- tomaspollak 2y agoThanks mate!
- 29athrowaway 2y agoThere's also this which you can run on a Raspberry Pi (not a web player) https://github.com/sasq64/chipmachine https://github.com/sasq64/chipmachine
- tomaspollak 2y agoI didn't know about that one. Thanks!
- loa_in_ 2y agoWorks flawlessly, sounds very good. Already improved my day!
- tomaspollak 2y agoAnd this comment improved mine!
- squigz 2y agoHaha, 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
- tomaspollak 2y ago;)
- squigz 2y agoOut of curiosity, what is the size on disk of the music collection? (485k songs)
- tomaspollak 2y agoAround 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).
- fourfour3 2y agoDo 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!
- tomaspollak 2y agoGood 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.
- zeta0134 2y agoThis 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?
- tomaspollak 2y agoYes 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!
- webprofusion 2y agoThis is rad.
- snowram 2y agoLooks 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.
- snowram 2y agoAlso 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.
- tomaspollak 2y agoYes, 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.
- tomaspollak 2y agoOh, 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 https://github.com/nukep/famitracker-cx
- ugh123 2y agoAmazing 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.
- tomaspollak 2y agoThank you. I have a few minimal/ambient playlists that are great for concentration. I'll include one or two in the featured section!
- teeuwen 2y agoI’m really digging the background visuals. It reminds me of the old Playstation home screen background animation.
- tomaspollak 2y agoThat's precisely the source of inspiration!
- tlh 2y agoReally 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."
- tomaspollak 2y agoWill check. Thanks for the heads up.
- s5ma6n 2y agoReminds me of https://chiptune.app/browse https://chiptune.app/browse
- tomaspollak 2y agoChip Player is awesome. I love the retro-looking UI.
- fourfour3 2y agoI'd love to see WebMIDI support similar to https://chiptune.app/ 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 :)
- tomaspollak 2y agoThis 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 2y agoFantastic! 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 :)
- tomaspollak 2y agoOh 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. :)
- tomaspollak 2y agoOk, WebMIDI support is live. Try it out and let me know if it works. :)
- fourfour3 2y agoHey, 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=ZD1UcmFuc3BvcnQgVHljb29uIERlbHV4ZS9HTSZwPU1JREkmcz1taXJzb2Z0LmluZm8 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/ https://www.pastery.net/naegce/
- binary132 2y agoCurious, but it didn’t make any sound on my iPhone in safari.
- tomaspollak 2y agoI still haven't tested the player on mobiles thoroughly. Do you at least see the oscilloscope running?
- binary132 2y agoYes! 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!
- tomaspollak 2y agoWoot!
- sersi 2y agoThis 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.
- tomaspollak 2y agoYes, 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. :)
- superfamicom 2y agoLove this! I've been working on and running https://sfc.fm 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 https://sfc.fm/sfc/super-mario-world track 16
- tomaspollak 2y agoYes, 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!