vgmrips

The forum about vgm files
It is currently 2019-07-17, 11:16:11

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 12 posts ] 
Author Message
PostPosted: 2019-05-24, 5:44:12 
Offline
User avatar

Joined: 2019-05-16, 8:27:23
Posts: 13
Location: San Francisco, CA
Hi friends,

I want to share a project I have been working on. Chip Player JS, a web-based music player:

https://mmontag.github.io/chip-player-js/

It supports NSF, NSFE, SPC, VGM, VGZ, XM, MOD, S3M, IT, AY, KSS, SGC, and last but not least, MID.

It includes a large music catalog, and also provides drag and drop playback. The player supports tempo control and channel muting across all formats. It's meant to function as a long-session music player similar to Spotify.

I am excited to get some feedback on the project and invite your suggestions.

Thanks,
matt

_________________
Listen to chip music ♫ https://mmontag.github.io/chip-player-js


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-24, 7:53:20 

Contributors Contributors
Staff Staff
Reverse engineers Reverse engineers
Offline
User avatar

Joined: 2013-07-17, 23:32:39
Posts: 380
Well, you're using Game_Music_Emu. Coming here and showing off your player using it is like coming to a Mac forum and demonstrating your new Windows application. Besides, as you'll notice many of the packs on vgmrips (especially ones using exotic sound chips) will play incorrectly or not at all with GME.


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-24, 8:19:03 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Reverse engineers Reverse engineers
Online
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 3129
Location: Germany
Apparently it's using kode54's branch of GameMusicEmu, so it's supporting a decent part of the vgmrips library. YM3812 and YM2608/2610 work fine.

And I like how it looks like a terminal program.


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-24, 9:35:45 
Offline
User avatar

Joined: 2019-05-16, 8:27:23
Posts: 13
Location: San Francisco, CA
Hahah, nevermind showing off then.

I was attempting to support the most formats with the fewest dependencies (and smallest compiled size). Originally I wanted to go further with support for PSF/USF/GSF etc, and may get back to that if I ever figure out bundle splitting with emscripten.

Anyway, now I'm forced to wonder.
What are the most significant chips I'm missing out on with kode54's game-music-emu branch?
What does the overlap between game-music-emu and vgmplay look like?

_________________
Listen to chip music ♫ https://mmontag.github.io/chip-player-js


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-24, 21:00:54 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Reverse engineers Reverse engineers
Online
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 3129
Location: Germany
Supported sound chips:
Code:
VGM 1.71     GME/org GME/k54 VGMPlay
SN76496         x       x       x
YM2413          x       x       x
YM2612          x       x       x
YM2151          x       x       x
SegaPCM                 x       x
RF5C68                  x       x
YM2203                  x       x
YM2608                  x       x
YM2610                  x       x
YM3812                  x       x
YM3526                          x
Y8950                           x
YMF262                  x       x
YMF278B                         x
YMF271                          x
YMZ280B                 x       x
RF5C164                 x       x
32X PWM                 x       x
AY8910                  x       x
GameBoy DMG             x       x
NES APU                         x
YMW258                          x
UPD7759                         x
OKI6258                 x       x
OKI6295                 x       x
K051649                 x       x
K054539                 x       x
HuC6280                 x       x
Namco C140              x       x
K053260                 x       x
Pokey                           x
QSound                  x       x
SCSP                            x
WonderSwan                      x
VBoy VSU                        x
SAA1099                         x
ESS5503                         x
ESS5505/6                       x
Seta X1-010                     x
Namco C352                      x
Irem GA20                       x

GME/org (4 chips) = original Game Music Emu - It has full support for VGM v1.50, because that was the current version back in 2006.
GME/k54 (24 chips) = kode54's fork - It has a fair number of changes compared to the original GME, IIRC. It supports most of VGM v1.60.
VGMPlay (41 chips) = what VGMPlay/in_vgm supports (basically everything supported by VGM v1.71, which is the current version)


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-25, 22:21:06 
Offline
User avatar

Joined: 2019-05-16, 8:27:23
Posts: 13
Location: San Francisco, CA
Hi ValleyBell, thanks for the incredibly detailed reply.
I'll have to do some homework on these missing chips.

Another noob question: what kind of glue code is needed to use the YMF262 as a MIDI device? Any good examples you know of?
I'm looking at bisqwit's ADLMIDI [1] and malicex's opl3-synth-driver now. It looks...scary. [2]

What tool was used to produce the vgmrips of OPL3 PC games, such as Tyrian and Duke Nukem?

matt

[1] https://github.com/bisqwit/adlmidi/blob ... ay.cc#L837
[2] https://bitbucket.org/djtubig-malicex/o ... #lines-716

_________________
Listen to chip music ♫ https://mmontag.github.io/chip-player-js


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-25, 23:57:19 

Contributors Contributors
Offline
User avatar

Joined: 2015-11-01, 22:18:27
Posts: 39
Location: Canada
Not really a helpful reply in itself, but that UI looks very nice!
My only concern is that the logo might look too much like Winamp's...

(Also, it's time to add Pico 4 entries to the database.)


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-26, 1:27:49 

Staff Staff
Programmers Programmers
Contributors Contributors
Ball Fondlers Ball Fondlers
Online
User avatar

Joined: 2014-01-28, 5:51:54
Posts: 674
I also like the UI, including the spectrogram

_________________
Follow me on twitter.

If you like this post, give it a big thumbs up and hit that subscribe button down below! And as always, thanks for reading, and see you next post.


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-27, 11:17:32 
Offline
User avatar

Joined: 2019-05-16, 8:27:23
Posts: 13
Location: San Francisco, CA
Shywolf wrote:
Not really a helpful reply in itself, but that UI looks very nice!
My only concern is that the logo might look too much like Winamp's...

(Also, it's time to add Pico 4 entries to the database.)


The logo is shamelessly ripped off in deference to Winamp (in a similar vein as projects like webamp.org)...but if it's not well received, I'll ditch it.

Thanks for the tip on Pico 4! I love Famicompo. (is there a similar competition for FM/Adlib chips??)

_________________
Listen to chip music ♫ https://mmontag.github.io/chip-player-js


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-29, 10:43:01 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Reverse engineers Reverse engineers
Online
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 3129
Location: Germany
mmontag wrote:
Another noob question: what kind of glue code is needed to use the YMF262 as a MIDI device? Any good examples you know of?
I'm looking at bisqwit's ADLMIDI [1] and malicex's opl3-synth-driver now. It looks...scary. [2]
In order to play MIDIs on OPL2/3, you need to write an additional abstraction layer that does the conversion between MIDI commands and the OPL chip.
I'm afraid this is not a trivial task, as that layer has to take care a few things, like:
- choosing an "instrument" on a MIDI channel requires you to load OPL register settings from a table (or file) and write them to the chip
- MIDIs have 16 polyphonic channels, OPL chips have only monophonic channels, so you need to remap the MIDI notes to whatever OPL channel is free
- MIDI channel 10 is for drums, which require you to load separate settings per note

mmontag wrote:
What tool was used to produce the vgmrips of OPL3 PC games, such as Tyrian and Duke Nukem?
Those were logged with DOSBox. Most of those older logs were done by logging DRO files (with a custom DOSBox version that produces more verbose DRO logs) and converting them to VGM.
These days the recommended way to log VGMs from DOS games is to use the DOSBox VGM mod. (see the VGM Creators topic for links)


Top
 Profile  
 
 Post subject:
PostPosted: 2019-05-30, 10:26:19 

Staff Staff
Programmers Programmers
Contributors Contributors
Ball Fondlers Ball Fondlers
Online
User avatar

Joined: 2014-01-28, 5:51:54
Posts: 674
I also have a simple MIDI FM toy here https://github.com/vampirefrog/fmtools

it takes MIDI, and each channel is an FM chip. It limits polyphony to whatever the chip supports.

_________________
Follow me on twitter.

If you like this post, give it a big thumbs up and hit that subscribe button down below! And as always, thanks for reading, and see you next post.


Top
 Profile  
 
 Post subject:
PostPosted: 2019-06-09, 5:59:29 
Offline
User avatar

Joined: 2019-05-16, 8:27:23
Posts: 13
Location: San Francisco, CA
I went ahead with libADLMIDI. It's a very nice and configurable project.
This only increased my compiled wasm by about 90kb.
So now you can choose between SoundFonts and OPL3 for MIDI.

There are ~25 OPL3 banks included, with automatic bank selection implemented for a few games.

Here is a Descent 2 track that pushes OPL3 pretty hard:
https://mmontag.github.io/chip-player-j ... GAME02.MID

_________________
Listen to chip music ♫ https://mmontag.github.io/chip-player-js


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
[ Time : 0.218s | 19 Queries | GZIP : On ]