Most active commenters
  • tomaspollak(26)
  • fourfour3(5)
  • squigz(3)

80 points tomaspollak | 53 comments | | HN request time: 2.36s | source | bottom

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

1. nyanpasu64 ◴[] No.41219441[source]
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.).
replies(1): >>41219654 #
2. tomaspollak ◴[] No.41219654[source]
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).

replies(2): >>41220728 #>>41220782 #
3. faraggi ◴[] No.41219722[source]
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.

replies(1): >>41220380 #
4. 29athrowaway ◴[] No.41220277[source]
There's also this which you can run on a Raspberry Pi (not a web player)

https://github.com/sasq64/chipmachine

replies(1): >>41220396 #
5. tomaspollak ◴[] No.41220380[source]
Thanks mate!
6. tomaspollak ◴[] No.41220396[source]
I didn't know about that one. Thanks!
7. loa_in_ ◴[] No.41220558[source]
Works flawlessly, sounds very good. Already improved my day!
replies(1): >>41220669 #
8. tomaspollak ◴[] No.41220669[source]
And this comment improved mine!
9. jader201 ◴[] No.41220728{3}[source]
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. :)
replies(1): >>41220896 #
10. squigz ◴[] No.41220760[source]
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

replies(1): >>41220893 #
11. monkpit ◴[] No.41220782{3}[source]
Alternatively: what’s the reason _not_ to allow this?
replies(1): >>41220868 #
12. zeta0134 ◴[] No.41220805[source]
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?
replies(1): >>41220877 #
13. tomaspollak ◴[] No.41220868{4}[source]
Time, of course. ;)

Already at the top of the TODO list, though.

14. tomaspollak ◴[] No.41220877[source]
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!
15. tomaspollak ◴[] No.41220893[source]
;)
replies(1): >>41221059 #
16. tomaspollak ◴[] No.41220896{4}[source]
Ok case closed. The maximum option will be 30 minutes then!
17. squigz ◴[] No.41221059{3}[source]
Out of curiosity, what is the size on disk of the music collection? (485k songs)
replies(2): >>41221304 #>>41222980 #
18. webprofusion ◴[] No.41221162[source]
This is rad.
19. tomaspollak ◴[] No.41221304{4}[source]
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).

20. snowram ◴[] No.41221862[source]
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.
replies(2): >>41221922 #>>41224505 #
21. snowram ◴[] No.41221922[source]
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.
replies(1): >>41223549 #
22. ugh123 ◴[] No.41221960[source]
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.

replies(1): >>41223618 #
23. teeuwen ◴[] No.41222494[source]
I’m really digging the background visuals. It reminds me of the old Playstation home screen background animation.
replies(1): >>41223567 #
24. tlh ◴[] No.41222537[source]
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."

replies(1): >>41223634 #
25. s5ma6n ◴[] No.41222669[source]
Reminds me of https://chiptune.app/browse
replies(1): >>41223564 #
26. fourfour3 ◴[] No.41222954[source]
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 :)

replies(2): >>41223541 #>>41223776 #
27. fourfour3 ◴[] No.41222980{4}[source]
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!

replies(1): >>41223712 #
28. binary132 ◴[] No.41223436[source]
Curious, but it didn’t make any sound on my iPhone in safari.
replies(1): >>41223629 #
29. tomaspollak ◴[] No.41223541[source]
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!

replies(1): >>41228773 #
30. tomaspollak ◴[] No.41223549{3}[source]
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.
31. tomaspollak ◴[] No.41223564[source]
Chip Player is awesome. I love the retro-looking UI.
32. tomaspollak ◴[] No.41223567[source]
That's precisely the source of inspiration!
33. tomaspollak ◴[] No.41223618[source]
Thank you. I have a few minimal/ambient playlists that are great for concentration. I'll include one or two in the featured section!
34. tomaspollak ◴[] No.41223629[source]
I still haven't tested the player on mobiles thoroughly. Do you at least see the oscilloscope running?
replies(1): >>41224646 #
35. tomaspollak ◴[] No.41223634[source]
Will check. Thanks for the heads up.
36. tomaspollak ◴[] No.41223712{5}[source]
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.

replies(1): >>41236659 #
37. bloopernova ◴[] No.41223776[source]
Oh wow, they have U.N. Squadron music from the SNES! Thank you for the nostalgia blast :)
38. sersi ◴[] No.41224214[source]
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.

replies(1): >>41224592 #
39. tomaspollak ◴[] No.41224505[source]
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

40. tomaspollak ◴[] No.41224592[source]
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. :)

41. binary132 ◴[] No.41224646{3}[source]
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!

replies(1): >>41224932 #
42. tomaspollak ◴[] No.41224932{4}[source]
Woot!
43. superfamicom ◴[] No.41226903[source]
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

replies(1): >>41230849 #
44. fourfour3 ◴[] No.41228773{3}[source]
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 :)

replies(2): >>41230866 #>>41236436 #
45. tomaspollak ◴[] No.41230849[source]
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!

46. tomaspollak ◴[] No.41230866{4}[source]
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. :)
47. tomaspollak ◴[] No.41236436{4}[source]
Ok, WebMIDI support is live. Try it out and let me know if it works. :)
replies(1): >>41244048 #
48. squigz ◴[] No.41236659{6}[source]
I would definitely be interested in this as well
49. fourfour3 ◴[] No.41244048{5}[source]
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/

replies(1): >>41247555 #
50. tomaspollak ◴[] No.41247555{6}[source]
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!

replies(1): >>41249514 #
51. tomaspollak ◴[] No.41249514{7}[source]
Ok I found it! For some reason those files have an invalid header. I added a workaround so they should play fine now.
replies(1): >>41251456 #
52. fourfour3 ◴[] No.41251456{8}[source]
They do indeed, and they sound superb :)

Thanks for spending the time on it!