VOGONS


First post, by bootlogger

User metadata
Rank Newbie
Rank
Newbie

Hello everyone,

I've been an avid reader of Vogons for a while, but this is the first time I've actually posted in these lands. My name's Tom and I'm a journalist who likes MIDI and game music.

I wanted to show you guys a little side project I've been working on for the past few months and see what you think.

It's an online music player for sequenced tunes, that can play native game music files using web-based versions of libTimidity and Munt, among other libraries. It also includes a couple of songs from a few games from the late 80s and early 90s, most of them in MIDI or XMI format, but also NSF, SPC, VGM, etc.

I've named it Muki and you can see it in action here: (Chrome, Firefox or Safari required)

http://muki.io.

Just drop and enjoy your tunes!

It's still on early stage so a bunch of things are missing, but I'm eager to get feedback from audio/MIDI/MT-32 specialists and what better place than the Vogons community. 😀

I also want to thank the Munt developers for their awesome work. Thanks to you we're finally able to render and listen to the amazing sounds of the MT-32 directly on our browsers!

Reply 1 of 13, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

Suggestion: Also add MOD file tracker playback (and all the accompanying formats)? 😁

[EDIT] Tested it out, took a spin through the interface, played CANYON.MID. This is a pretty sweet project. 😀

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 2 of 13, by bootlogger

User metadata
Rank Newbie
Rank
Newbie

Oh, I forgot to mention it... Muki does handle tracker formats! You can throw .mod, .xm, .it and .s3m files and it'll play them.

You can also use the search bar to filter a specific format from the database, for example: http://muki.io/search/.mod or also http://muki.io/search/.mt32.mid

Thanks!

Reply 4 of 13, by bootlogger

User metadata
Rank Newbie
Rank
Newbie

Thank YOU OmerMor. I'm just glad to see that you guys like it.

Does it run smoothly on your PC's, by the way? Doing synthesis on the browser does put some burden on the CPU, specially if you're doing resampling and applying reverb.

Reply 5 of 13, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++

Great project!

On my AMD notebook with E-450 APU the fan goes balistic and the website is a bit laggy. It seems to struggle with displaying the shapes.

The other comment I have is when I click on Amiga, it plays Myst music, so I'm not quite sure how to use this. I would like to have an overview of all the songs available, rather than selecting options at the top.

I couldn't find anything with MT-32, just a section for DOS, but it doesn't tell me which song is being played on what sound card.

YouTube, Facebook, Website

Reply 6 of 13, by bootlogger

User metadata
Rank Newbie
Rank
Newbie

What browser are you using? If it helps, you can turn off the visualization by hitting the "V" key.

As for the platform list, the thing is I used TheGamesDB's API for populating (most of) the database, and they list the whole set of platforms for which a game was released. And it turns out that Myst *was* ported to the Amiga at some point.

I guess I should tweak the data so that each game's platform matches the one it was originally released on, and/or match each song to the platform its format belongs to (MIDI -> Dos/Windows/Mac, MOD -> Amiga, NSF -> Nintendo, VGM -> Sega / Arcade, etc). What do you think?

If you want to listen to MT-32 MIDIs, use the search bar and type "mt32.mid" (or follow this link). That's the naming I use for identifying MT-32 MIDIs and forwarding them to the Munt JS core instead of the Timidity one.

Now, If you want to listen to you own MT-32 MIDIs, hitting the "M" key before you drop them over the browser window will force Muki to use Munt for MIDI playback. This is only necessary, though, if the file doesn't contain a MT-32 specific sysex, in which case it should automatically work.

Reply 7 of 13, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++

Ok that works better now, thanks for the tips.

I an using Windows 10 and Chrome.

Pressing TAB brings up the playlist. While reading the documentation I noticed that the arrow keys still adjust the volume. So when you press down to scroll down, you mute the music.

YouTube, Facebook, Website

Reply 9 of 13, by Kaminari

User metadata
Rank Oldbie
Rank
Oldbie

Is this server-based (like VGM Rips) or does it run on the client? Emulating a YM2612 in Javascript is already quite a challenge, so I can't even imagine what it requires to make Munt run in a browser.

Ryzen 2600X 4.2 GHz | Radeon RX 6650 XT 8 GB | DDR4 16 GB | Win10-64 Pro

Reply 10 of 13, by collector

User metadata
Rank l33t
Rank
l33t

Impressive. Just discovered the drag and drop capabilities. One suggestion that I would make is to make it a little more obvious about the controls, especially how to display the playlist.

Last edited by collector on 2015-09-14, 01:09. Edited 1 time in total.

The Sierra Help Pages -- New Sierra Game Installers -- Sierra Game Patches -- New Non-Sierra Game Installers

Reply 11 of 13, by sergm

User metadata
Rank Oldbie
Rank
Oldbie
Kaminari Redux wrote:

Is this server-based (like VGM Rips) or does it run on the client? Emulating a YM2612 in Javascript is already quite a challenge, so I can't even imagine what it requires to make Munt run in a browser.

Actually, nothing very special... KG's ported nearly all the synth engine to Java 8 and added JavaFX UI. And added nearly full-featured 8098 emulation. Even all these stuff works on my 2.8GHz CPU with almost no lag. Java became really fast these days.

Reply 12 of 13, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
collector wrote:

Impressive. Just discovered the drag and drop capabilities. One suggestion that I would make is to male it a little more obvious about the controls, especially how to display the playlist.

I just figured it was his aesthetic decision to make featured hidden, so that you'd have to spend time with it and explore. 😀
What, you want everything handed to you on a silver platter? 🤣

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 13 of 13, by bootlogger

User metadata
Rank Newbie
Rank
Newbie

Sorry for the delay guys, currently on a small trip with my wife and daughter.

Kaminari Redux wrote:

Is this server-based (like VGM Rips) or does it run on the client? Emulating a YM2612 in Javascript is already quite a challenge, so I can't even imagine what it requires to make Munt run in a browser.

Yes, client based. That's why I had asked about the performance, hehe. For someone without any prior experience with Web Audio it was a bit of a challenge to get Munt working smoothly, mainly because of the resampling that needs to be done in real time. This is because Munt produces a 32000 Hz audio stream while browsers only accept 44100 Hz. I also did a lot of fiddling with Munt's options (like DAC and reverb mode) as well as emscripten's optimization flags until I was able to get a stable audio output out of it. 😀

collector wrote:

Impressive. Just discovered the drag and drop capabilities. One suggestion that I would make is to male it a little more obvious about the controls, especially how to display the playlist.

Yes! I will add this once I get back home. Thanks again for the feedback!