Skip to content

Misc. vgm tools talk

Offtopic from Updated vgm2mid?

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

Moderator: Staff

  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

The zlibwapi.dll you're using doesn't seem to be a valid DLL at all. Please use the one that comes with 2612edit itself or mid2smps.

I'm quite sure that the vgmmerge problem is related to the realloc-problem I fixed in VGMPlay/in_vgm a few days ago.
Right now you can only avoid it by not merging 2 VGMs with one DAC channel on each one. I'll try to make a fixed vgmmerge that avoids that bug. (Although I plan to update VGMPlay/in_vgm in not too distant future, too.)
EDIT: IMO it's a bad idea to merge 2 VGMs with the exactly same DAC notes anyway. If you want a louder DAC, you should reduce the volume of the FM channels instead. (e.g. with mid2smps' volume slider)

The midi conversion problem sounds like a pitchbend bug. The file converts fine for me with a build from 2011-07-12.

EDIT2: LOL, I just noticed that my post count is 1234. (It includes the many approved packs though, so it isn't really that high actually.)


EDIT3: Here, that should do it. The VGMs look more sorted this way anyway.
This is not fix for the VGMPlay/in_vgm bug, but a workaround, btw.
  • VGMfreak Offline
  • Posts: 31
  • Joined: 2013-08-02, 8:43:08

Post by VGMfreak »

That zlibwapi.dll was in fact from mid2smps 0.3 final, might have been corrupted during download, i'll check again.
For the DAC, I was intending to use stereo samples, so putting exact DAC notes in both vgms were for testing anyway. Pretty weird that the merged vgm plays fine after loading a working vgm. Actually I was afraid that there would be a problem when merging VGMs of different versions since enabling DAC in mid2vgm switches VGM version from 1.50 to 1.60, but it worked fine.
Just discovered using some low level MIDI editors that my friends' MIDIs had some really non-standard controllers ranging up to 191 in controller number, might be incompatible I assume.
I have the mid2vgm_2612 build you posted on sonicretro in 2011-07-11. Is this the same bug that affected the OPL version of mid2vgm? I was going to try the "sonicA1.mid" with mid2vgm_2012(OPL), but the link's dead on smspower. Do you still have it?
Last edited by VGMfreak on 2013-08-07, 6:15:17, edited 1 time in total.
  • User avatar
  • neologix Offline
  • Posts: 211
  • Joined: 2012-04-22, 4:03:45
  • Location: New York, NY, USA

Post by neologix »

@VGMfreak - what low-level MIDI tools did/do you use? I'm always interested in expanding my MIDI repertoire :)
  • VGMfreak Offline
  • Posts: 31
  • Joined: 2013-08-02, 8:43:08

Post by VGMfreak »

Hi neologix, I use just about any freeware MIDI editor out there, have you heard of nineko(Tom)'s MIDI Event Editor @ sonicresearch.org? That does low-level editing (e.g. you can change the note on/off order of polyphony notes in a track).
I also tend to manually hex edit MIDI files to remove non-standard controllers (e.g. MIDI files sequenced from high-end music keyboards) so I can actually play them properly on a PC. When you compose, do you tend to use the mouse or keyboard? (I use Brels MIDI Editor and SilverBlade's Midget)
By the way, I saw at spritesmind that you were working on a Genesis sound VST, how's that going?
Last edited by VGMfreak on 2013-08-08, 8:07:15, edited 2 times in total.
  • VGMfreak Offline
  • Posts: 31
  • Joined: 2013-08-02, 8:43:08

Post by VGMfreak »

ValleyBell, if I recall correctly, the YM2413 has only one user-definable instrument preset, the rest are hard-coded. In mid2vgm(OPL), is there any way we can define the user instrument preset through the program or 2612edit?
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

VGMfreak wrote:Hi neologix, I use just about any freeware MIDI editor out there, have you heard of nineko(Tom)'s MIDI Event Editor @ sonicresearch.org?
Of course he has. :P

It would be really terrible if I won't have my own tools anymore. :P
Anyway, I uploaded them to this server (link) and added it to the VGM Creators topic.
VGMfreak wrote:ValleyBell, if I recall correctly, the YM2413 has only one user-definable instrument preset, the rest are hard-coded. In mid2vgm(OPL), is there any way we can define the user instrument preset through the program or 2612edit?
Open the tool and you'll immediately see the answer to your question. (Also, just a small note, YM2612 (OPN) and YM2413 (OPLL) instruments are 90% incompatible, so 2612edit would be useless in this case anyway.)
  • VGMfreak Offline
  • Posts: 31
  • Joined: 2013-08-02, 8:43:08

Post by VGMfreak »

Looks like I didn't do enough research around the forum, my bad.
I'm looking at some MIDI files that have brightness and resonance controllers in the tracks - seems like they cause problems too. Well, then I must carry out some pitch re-bending by hand, I don't know much about music but I do get annoyed with wrong pitches.
Does mid2vgm support most MIDI controllers or should I ask does the YM2612 actually support them? What if they don't? I mean the purpose of the program is to convert MIDIs to 2612 sounds and I'm sure the 2612 doesn't do realtime reverb. Actually, shouldn't mid2vgm ignore incompatible ones rather than throw an overflow error?
Last edited by VGMfreak on 2013-08-08, 15:18:21, edited 1 time in total.
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

mid2vgm 2612 (and the others, too) ignores any unknown Controllers.
The MIDI events supported by mid2vgm 2612 are: Note On/Off, some Controller Changes, Instrument Change, Pitch Bend, a few Meta Events
Unsupported events and controllers are ignored. (And no, the YM2612 has no reverb.)

Meta Events:
  • 0x51 (Tempo)
  • 0x06 (Marker)
    Markers that contain the string "Start" or "End" can be used for looping. ("Start" sets the loop point, "End" makes mid2vgm stop.)
Controllers:
  • 1 (Modulation)
  • 6 (Data MSB, for pitch bend range)
  • 7 (Volume)
  • 10 (Panorama)
  • 65 (Portamento On, prevents Note Off events)
  • 111 (for looping, 0 is start, 1 is end, works like the Marker event)
It's not bug-free though, so there are a few bugs. (I probably stopped the development to concentrate on mid2smps.)
An obvious one is noted in the source code: the Pitch Bend Range is buggy
The first problem is, that the RPN/NRPN controllers are not handled, so any Data MSB controller sets the pitch bend range. (only a Data MSB after RPN MSB 0 and RPN LSB 0 is supposed to do that)
The second problem is, that the pitch bend range is global in mid2vgm 2612, instead of per-channel (as it should be).

It is still not supposed to do throw overflow errors though, but that's probably fixed in the slightly newer build I put on mdscene.net.

mid2vgm PSG and OPLL handle pitch bends correctly, btw. m2v OPLL even supports tuning via RPN controllers.
  • User avatar
  • neologix Offline
  • Posts: 211
  • Joined: 2012-04-22, 4:03:45
  • Location: New York, NY, USA

Post by neologix »

VGMfreak wrote:When you compose, do you tend to use the mouse or keyboard?
Mouse+keyboard when my MIDI controller (Korg K49 MIDI-USB keyboard) isn't hooked up, the K49 otherwise. Software-wise, on Mac I use Logic, used to use Digital Performer, and am looking to try out Sibelius when I start the next semester at college; on Windows I use Cakewalk SONAR X1 and Awave Studio.
VGMfreak wrote:By the way, I saw at spritesmind that you were working on a Genesis sound VST, how's that going?
Stalled at the moment due to real life and other projects, but if you want Genesis VST goodness try out superjoebob's GENNY (he might still have the older unnamed version available for download) or Aly James's excellent FMDRIVE!
  • VGMfreak Offline
  • Posts: 31
  • Joined: 2013-08-02, 8:43:08

Post by VGMfreak »

Wow neologix, you use the professional stuff, I'm sure you're a great musician yourself. Me, I didn't have any musical training so it would take me ages trying to compose or transcribe MIDIs, have to isolate instruments and their notation by ear. Not long ago, I was trying to find some Korg sounds similar to the samples in Sonic CD (past tunes, particularly the synth bass).

Thanks ValleyBell for uploading the new mid2vgm(2612). I'll have a go at converting the MIDIs again.
  • User avatar
  • neologix Offline
  • Posts: 211
  • Joined: 2012-04-22, 4:03:45
  • Location: New York, NY, USA

Post by neologix »

I was formally trained in trombone and actually suck at piano; proper fundamentals in music theory is all one truly needs to begin learning composition, while transcription-by-ear is closer to a "talent" than a "skill."

Regarding instrumentation, the big three instrument brands used by Japanese game composers in the pre-Playstation eras seem to have been Yamaha, Roland, and Korg, and the old flagship consumer sampler products of all three have been made into SF2-format soundfonts at one point or another (back in the day I myself have come across one really good Yamaha XG soundfont, a couple Roland MT-32 soundfonts and one decent Roland Sound Canvas one, and one MASSIVE Korg Triton soundfont). Westerners tended to use western products like E-Mu (the Proteus series, in particular) and Steinberg stuff before Yamaha acquired them, or composed directly on the console's chips or their hardware equivalents.

Regarding transcription of sequenced formats, there are tools like MIDIstat that allow conversion of MIDI data to human-readable plain text if visual editors like Cakewalk and Sibelius aren't satisfactory. It's how I first got into digital sequenced music back in 2001. :)
  • VGMfreak Offline
  • Posts: 31
  • Joined: 2013-08-02, 8:43:08

Post by VGMfreak »

Well, this took long to post, got stuck at submit and a page came up and said "No post mode specified"...

neologix, I have tried out some soft synths from Yamaha and Korg and discovered a lot of instruments that I've heard from my childhood, particularly the M1's Lore, a fascinating sound effect. It's sad that I've only seen Sound Canvas and can't find anything else from Roland, speaking of which - Creative sounds are not bad too.

ValleyBell, runtime(overflow) errors ('6') again! I'm not sure if anyone else has encountered as many as me yet, but I seemed to found a way to go around it. Apparently, there were too many pitch bend events (standard GM 2 semitone, over 500 in for one track in a MIDI), had to reduce the number to about 200 by splitting the track into 3 or 4 segments and converting separately. In actual fact, low-level editing these few MIDIs caused some pitch bend data to be destroyed, removing events especially with 64 (no pitch bend). Somehow, if the pitch bend data was left untouched and some notation was deleted instead, it would convert fine(is it something to do with pitch bend events not being executed because of no notation?)
Well, at least I could convert the rest of the tracks from the MIDI without splitting, but apart from that, all the slightly problematic ones converted well. Thanks for putting up the updated version.
  • VGMfreak Offline
  • Posts: 31
  • Joined: 2013-08-02, 8:43:08

Post by VGMfreak »

ValleyBell, haven't seen this before, but 3 MIDIs so far have shown an error about encountering Note Off events with no Note On events preceding, as well as invalid numbers for Note On events. I've checked the MIDIs and to an extent, re-composed the entire offending track (other tracks converted fine) and still doesn't work.
VGZ decompressing works now, thanks again. I'm working with an actual YM2612 for a music player project - commands are sent from external microcontroller, is there anything I need to be aware of since I'm likely to use MIDI files?
Post Reply