Skip to content

VGM Tool Collection

All you need to work with VGMs. Last update: 2022-12-30

Technical discussion about the VGM format, and all the software you need to handle VGM files.

Moderator: Staff

  • User avatar
  • drdevil Offline
  • Posts: 73
  • Joined: 2015-08-30, 14:24:00
  • Location: Scotland
  • Contact:

Post by drdevil »

1. I tried using an earlier trim point as you said, but with no luck. Same issue occurs.
2. I'm confused. How are you supposed to use a VGM splitting program for something like this?

Here is an attachment of the original file.
Attachments
stage14.vgm
(1.39 MiB) Downloaded 325 times
I'm HarmoDevil. Formerly Dr Devil, but I still use the drdevil username here.

Check out my Soundcloud.

I might get back to VGM ripping someday.
  • User avatar
  • drdevil Offline
  • Posts: 73
  • Joined: 2015-08-30, 14:24:00
  • Location: Scotland
  • Contact:

Post by drdevil »

I finally managed to trim most of the silence off with vgm_sptd, however there is still some silence at the start. How do I remove it? Or do the waveforms starts RIGHT from the beginning?
Attachments
stage14_03_trimmed.vgm
(1.04 MiB) Downloaded 333 times
I'm HarmoDevil. Formerly Dr Devil, but I still use the drdevil username here.

Check out my Soundcloud.

I might get back to VGM ripping someday.
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

I'd consider the remaining silence intentional by the developer. If you start counting the beats exactly with the beginning of the VGM, it feels right.
Another example for something like this is Smooth Criminal from MJ's Moonwalker.
(This is the exception to the rule. =P)
  • User avatar
  • drdevil Offline
  • Posts: 73
  • Joined: 2015-08-30, 14:24:00
  • Location: Scotland
  • Contact:

Post by drdevil »

vgmlpfnd and vgm_sptd aren't working on QSound VGMs, why? I'm making a rip of Jyangokushi: Haoh no Saihai and I don't want annoying silence at the start, nor do I want to manually find loops. Fortunately though, the game doesn't use dynamic channel allocation.

EDIT: vgmlpfnd also doesn't work with some of the tracks from the System 16 game Cotton. I guess that's because it uses an odd sound driver? (Well, the company that made the game is 3rd party)
I'm HarmoDevil. Formerly Dr Devil, but I still use the drdevil username here.

Check out my Soundcloud.

I might get back to VGM ripping someday.
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Whether vgmlpfnd works or not depends heavily on the sound driver. And the sound driver used in most (or all?) QSound games does lots of stuff (like software envelopes) that cause tiny differences in each loop that are not or barely audible.
vgmlpfnd requires a 100% match and of course it can't find it.

vgm_sptd might not work if the sound driver spams the sound chip with redundant commands. It filters some commands out (like timer settings and things that are rarely changed). But if the sound driver constantly writes to the volume and frequency registers (even if it doesn't have any audible effect), then vgm_sptd assumes something is going on and doesn't cut it.
  • User avatar
  • drdevil Offline
  • Posts: 73
  • Joined: 2015-08-30, 14:24:00
  • Location: Scotland
  • Contact:

Post by drdevil »

ValleyBell wrote:Whether vgmlpfnd works or not depends heavily on the sound driver. And the sound driver used in most (or all?) QSound games does lots of stuff (like software envelopes) that cause tiny differences in each loop that are not or barely audible.
vgmlpfnd requires a 100% match and of course it can't find it.
Well... do the QSound packs on this site feature manually found loop points, then? Also, do those packs feature slightly innacurate loops if they were found manually?
ValleyBell wrote:vgm_sptd might not work if the sound driver spams the sound chip with redundant commands. It filters some commands out (like timer settings and things that are rarely changed). But if the sound driver constantly writes to the volume and frequency registers (even if it doesn't have any audible effect), then vgm_sptd assumes something is going on and doesn't cut it.
Interesting. Welcome me to the world of sound drivers and their weird differences. :P So, I guess I'll just remove the silence with the help of Audacity.

Attached are 6 VGM logs from Cotton. Though I'm able to find loops for most of the game's tracks, why does vgmlpfnd not find loops for these tracks? The program doesn't even show any commands for some of the 6 VGMs. Also, can a pack still be approved if some of the loops don't sound right (a few tracks in this game do this), but play like that ingame? Or would they need fixing? (like what you done to the two looping tracks in MD Chess)
Attachments
cotton_1C_01.vgm
(230.93 KiB) Downloaded 339 times
cotton_1D_01.vgm
(149.25 KiB) Downloaded 320 times
cotton_11_01.vgm
(180.28 KiB) Downloaded 318 times
cotton_16_01.vgm
(227.74 KiB) Downloaded 323 times
cotton_25_01.vgm
(47.21 KiB) Downloaded 303 times
cotton_26_01.vgm
(62.92 KiB) Downloaded 314 times
I'm HarmoDevil. Formerly Dr Devil, but I still use the drdevil username here.

Check out my Soundcloud.

I might get back to VGM ripping someday.

vgm2txt bug report (ym2413 and K051649 from msx machines)

Post by nitrofurano »

i'm seeing that vgm2txt isn’t converting information from some vgm files (msx-related, using ym2413 or k051649) - they result as 2kb txt files only with header information, and no data conversion at all

some vgm files i tried to convert can be find at:
http://vgmrips.net/packs/pack/f-1-spiri ... -msx-music (ym2413 - data starts at 0x0040 - file version 1.50)
http://vgmrips.net/packs/pack/contra-msx2 (k051649 - data starts at 0x00C0 - file version 1.61)
http://vgmrips.net/packs/pack/parodius-msx (k051649 - data starts at 0x00C0 - file version 1.61)
(there might be more vgm files that vgm2txt might not be able to convert as well - and vgmplay plays these vgm files perfectly)
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Works fine for me: http://vgmrips.net/misc/vgm2txt_MSX_dumps.7z

(Also, I merged your topic with the VGM Tool Collection topic.)


EDIT: I think I answered this on IRC/Chat Box, but just in case I didn't:
drdevil wrote:Also, can a pack still be approved if some of the loops don't sound right (a few tracks in this game do this), but play like that ingame? Or would they need fixing? (like what you done to the two looping tracks in MD Chess)
If they loop "as good" as ingame, that's fine. Fixing loops that are broken ingame is just a nice bonus. That's advanced stuff though and might involve hex-editing something. (VGM logs or maybe the original songs)

Post by nitrofurano »

ValleyBell wrote:Works fine for me: http://vgmrips.net/misc/vgm2txt_MSX_dumps.7z
(Also, I merged your topic with the VGM Tool Collection topic.)
thanks! btw, did you use vgm2txt from https://github.com/vgmrips/vgmtools as well ?

Post by nitrofurano »

i tried to download and compile again - same 2kb results (Parodius)
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

I tested it with the current git-version of vgm2txt and with one from 2015-07-25.

I really can't help you with so little information though.
Posting at least the resulting .txt might help. And if you built vgm2txt by yourself, post that, too.

Post by nitrofurano »

downloaded again and compiled:
http://pastebin.com/raw/R37ALVdU

it’s working now - my surprise is that https://github.com/vgmrips/vgmtools shows no recent changes
anyway the compiling log shows some error messages that i don’t know what are they about (perhaps they are affecting other tools, i don’t know)

thanks!
  • ctr Offline
  • Posts: 492
  • Joined: 2013-07-17, 23:32:39

Post by ctr »

They're just warnings. We didn't bother fixing all the compiler warnings so you can just ignore them. If it throws any real errors you'd have noticed.
  • gotanda Offline
  • Posts: 13
  • Joined: 2016-03-26, 17:18:14

Post by gotanda »

Hi there, sorry if this is the wrong place to post this, but I think it's appropriate.

Anyway, I've been trying to get ValleyBell/Paul Jensen's VGM2MID to work properly with a VGM file for the past couple of days. It's a Gameboy/DMG VGM that was logged with ValleyBell's mod of Nezplug++.

The conversion process is fine, but the outputted MID file seems to have some notes missing (for example, instead of ABC, it has AC) and there are a few weird/high-pitched ontes scattered in the output file. i was wondering if there's any solution for this? I've already tried using each of the different semitone options and the highest (Sample) conversion accuracy and the .vgm file soudns perfectly accuracte.

I've attached the .vgm and .mid below in case it would help with diagnosing the problem. Thanks for any helps in advance!
Attachments
input output.zip
(9.94 KiB) Downloaded 301 times
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

The short high-pitched notes are an artifact of how the GameBoy commands work. When updating the frequency, it has to do 2 separate writes (low and high part of the frequency) and there is a small amount of time between those writes where the those frequencies occour. (They are too short to be audible in the VGM.)
Unfortunately, fixing this issue would require a rewrite of vgm2mid.

About the "missing" notes on MIDI channel 13 - it's vgm2mid having trouble to split the notes properly.
On PSG chips (and other sound chips that lack "Key On/Off" commands), vgm2mid uses volume changes to detect where a note begins. This song however, changes the volume very rarely. And if it does, the steps are very small, so the detection fails, assuming the note is fading in and out.
In other cases, only the pitch gets changed, making the detection fail completely. (unless the new note is too far for the pitch bend to reach)
I'm afraid there's nothing to fix here either.
Post Reply