vgmrips

The forum about vgm files
It is currently 2017-07-27, 16:39:50

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: The mid2vgm topic
PostPosted: 2015-02-08, 22:51:15 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Offline
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 2730
Location: Germany
May I present: The mid2vgm series.

There are 3.5 tools: PSG (SN76489), OPLL (YM2413), 2612 (YM2612 obviously) and the new RF (RF5C68, alpha state).
All of them got a few updates since the last release (some minor, some major).
The full source code (Visual Basic 6) is available for all of the tools.


mid2vgm PSG v1.2 Win32 Binary and Source
old topic on SMSPower, old version from 2012
Since the last release, it received some bugfixes and a few features requested by Aly James.
E.g. you can disable the panning volume compensation now. And the panning calculation works now properly.


mid2vgm OPLL v1.1 Win32 Binary and Source, Example Files
old topic on SMSPower, old version from 2012
Aside from a few minor bugfixes for edge cases, I added some new features:
  • optional Normalization (was always enabled before)
  • improved drum frequencies for Toms
  • RPN support for Pitch Bend Ranges (00 00), Corase (00 02) and Fine Tuning (00 01)
I stopped working on it in 2012 though, so it's the only tool that doesn't support the Loop Controller 111.
You need to set a Winamp-style Marker Meta Event to make VGMs loop.

Note: Channel mapping is fixed.
MIDI channels 1-9 go to FM channel 1-9.
MIDI channel 10 goes to the OPLL's rhythm channel, which replaces channels 7-9 if enabled.
Other channels are ignored.


mid2vgm 2612 v0.3.1 Win32 Binary (exe/gyb only), Win32 Binary (incl. 2612edit and example files) and Source
old topic on Sonic Retro, old version from 2013
There were many bugfixes since the last release, thanks to Aly James who did lots of tests with mid2vgm 2612.
All the few new features (like support for GenMDM MIDI controllers) were requested by him, too.


mid2vgm RF alpha Win32 Binary + Source
This tool never left the alpha state since 2013, so it is "useable" but not "nice to use".

In order to convert a MIDI to a VGM, you will be asked for an additional instrument definition file.
This specifies, which WAV files are used by which MIDI instrument. Samples must be 8-bit or 16-bit mono.
Loop points can be set in the instrument file. (It's the 3rd column - my documentation is wrong that.)

It will then generate the contents of the PCM RAM (and it will complain, if there is too much sample data).
So far it is intelligent enough to ignore unused samples (unlike mid2vgm 2612 =P), but it can not swap samples dynamically during the song.

Anyway, have fun with what it does.

Note: Channel mapping is fixed. MIDI channels 1-8 go to PCM channel 1-8. Other channels are ignored.


Top
 Profile  
 
 Post subject:
PostPosted: 2015-02-09, 5:35:08 
Offline

Joined: 2011-11-30, 17:26:44
Posts: 454
Location: Italy
I am extremely happy to see how far you've been going with the development of my old 2612 converter, it all started out as a buggy piece of software, and now its code really looks much more polished and professional, I never had doubts you had the skills to make the miracle happen, every time you touch some code you never miss a chance to prove the world you're an awesome programmer. I am glad you still mentioned me in the credits, it shows once more how correct and respectful you are, but new revision after new revision there's less and less of my code still being used and I soon won't feel right to call it "my" 2612 converter anymore.

Nostalgia aside, I like it, really. I like it enough to break my semi-permanent hiatus and make an occasional post here.

Just two minor things:
  • the Log2 variable now seems to be unused (it was used in the obsoleted volume calculation routine), you might want to remove it altogether;
  • I see you took a "Const" approach to the dual chip idea, though that would make it accessible only to people who can compile the source by themselves, which might feel complicated (or impossible) to most people, I'd suggest to either move that setting to a checkbox in the main form, or you can look at how I approached it (warning to everyone else: I did it for private use in an extremely old build, do NOT attempt to copy code from it unless you really know what you're doing).

What you've been doing with these makes me still hope you'll do something with my xm2vgm converter as well, such as targeting other similar chips (e.g. QSound). I reuploaded the source here since it was lost after the Digilander failure (and I fixed a wrong comment while I was at it).

_________________
My webhost decided to shut down most of my webspace without a warning. If you find any broken Digilander link in any of my posts (basically all of them should be), please inform me.


Top
 Profile  
 
 Post subject:
PostPosted: 2015-02-09, 9:26:04 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Offline
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 2730
Location: Germany
I actually dropped the idea of dual chip support within mid2vgm 2612 itself entirely when I made vgmmerge able to merge two 1xYM2612 VGMs into one 2xYM2612 VGM. The approach with the constant is just a leftover and should be removed to clean the code. vgmmerge does the thing with the DAC data blocks a lot better than mid2vgm would be able to.


Top
 Profile  
 
 Post subject:
PostPosted: 2015-02-12, 8:06:55 

Programmers Programmers
Musicians Musicians
Offline

Joined: 2013-02-18, 3:17:44
Posts: 51
There seems no YM3812 output? If you want to do this anyways, one thing you can try is to first convert it to BAM with MIDI2BAM, and then BAM to VGM with BAMTOVGM. Note that I have not tried this, although I believe that it would work. Also, MIDI2BAM is a DOS program, and BAM does not support percussion so you won't get any percussion in the output file if you use this. MIDI2BAM uses an interactive user interface and uses DOS (you could try running it in DOSBox), while BAMTOVGM is a filter program and is cross-platform (doesn't require DOS). I cannot provide support for MIDI2BAM since I did not write that program. (Perhaps eventually mid2vgm might do this itself)


Top
 Profile  
 
 Post subject:
PostPosted: 2015-02-14, 2:54:21 

Musicians Musicians
Contributors Contributors
Offline

Joined: 2012-09-29, 11:45:48
Posts: 205
Location: Australia
zzo38: Theoretically, mid2vgm OPL2 is already possible by use of another previous tool with some modifications.
eg (made it last year): https://dl.dropboxusercontent.com/u/128 ... rimmed.vgz

Current downside is that it's only loggable in real-time using a modified version of ValleyBell's MidiPlay (might have to google for it). That being said, modifying the mid2vgm OPLL converter to use YM3812 commands, as well as incorporating a patch bank system shouldn't be too hard to do since similar register structure.

_________________
-dj.tuBIG/MaliceX


Top
 Profile  
 
 Post subject:
PostPosted: 2015-02-17, 1:31:20 

Programmers Programmers
Musicians Musicians
Offline

Joined: 2013-02-18, 3:17:44
Posts: 51
MaliceX:Both of those ways may also allow percussion to be used (so they have those advantages); the way I mentioned above won't work with percussion.


Top
 Profile  
 
 Post subject:
PostPosted: 2015-08-08, 14:12:50 
Offline

Joined: 2015-08-08, 13:56:52
Posts: 49
i am just start study this vgm and i have vgm music maker. this programm have instrument creation tab, where is a many switchers. as i can undestand by this tool can be sintezed any instrument. where i can take this tables of this switchers for emulate all 128 midi's sound? i mean like they sounds on PC. maybe some one make this tables? it can make converting midi2vgm more closer midi's sounds.


Top
 Profile  
 
 Post subject: Can't use mid2vgm ym2612
PostPosted: 2016-05-01, 6:55:19 
Offline

Joined: 2016-05-01, 6:33:17
Posts: 3
Hello, nearly 1 year old thread...

Anyways, I used ValleyBell's mid2vgm ym2612 from this thread (not sure if there are any newer versions out there).

After figuring out the whole comctl32.ocx compatibility issue with windows 8.1 (no offense, but people use visual studio now instead of visual basic), I got to actually run the software, but I'm still having some issues.

I have this giant collection of various GM/2,GS,XG MIDI files, and selecting any of them gives me an error stating they aren't MIDI files because no MThd chunk was found, even though I can play them perfectly fine in other software.

I'd really like to use mid2vgm, because making MD chiptunes from MIDI files is really hard to do from lack of good software. There are a few VSTs and then there's tracker software (which I'd also like to figure out even though MIDI is way easier), but none of those seem like they would have the ease of use and the accuracy together that mid2vgm has. I have already tried the opll ym2413 version and liked it, but it still doesn't compare to ym2612 chip.

Would really appreciate it if somebody could help me out with this.


Top
 Profile  
 
 Post subject:
PostPosted: 2016-05-01, 8:18:25 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Offline
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 2730
Location: Germany
Can you post one of those MIDIs? The MIDIs I have work, so I need a test case.

(Also: I usually avoid ActiveX controls, but I didn't write the initial version of mid2vgm 2612. The original version even required a Visual Basic 5 DLL, btw.)


Top
 Profile  
 
 Post subject:
PostPosted: 2016-05-02, 1:12:49 
Offline

Joined: 2011-11-30, 17:26:44
Posts: 454
Location: Italy
The comctl32 is only used for the volume slider, btw. If you replace it with a scrollbar (which is part of the default controls), you can drop the comctl32 requirement.

_________________
My webhost decided to shut down most of my webspace without a warning. If you find any broken Digilander link in any of my posts (basically all of them should be), please inform me.


Top
 Profile  
 
 Post subject:
PostPosted: 2016-05-03, 5:24:48 
Offline

Joined: 2016-05-01, 6:33:17
Posts: 3
Here's six random MIDI files that I used with it but didn't work:
https://www.dropbox.com/s/dy9ciycdazbnj ... le.7z?dl=0

Here's my collection that has many more, just in case:
https://www.dropbox.com/s/55m0uh87ne30c ... on.7z?dl=0


Top
 Profile  
 
 Post subject:
PostPosted: 2016-05-03, 7:16:47 
Offline

Joined: 2016-05-01, 6:33:17
Posts: 3
OK, I feel really stupid now, lol :lol: .

After reading another thread, I realized you're supposed to have the MIDI files in the same folder as the program...

I was just dragging the file I wanted to use onto the program :roll: .


Is there a way you could make it not require the MIDI files in the same folder, seeing how I have over 3000 MIDIs or so? :lol:

(Also, 2xYM2612 support?)


Last edited by zackoftrades333 on 2016-05-03, 17:17:38, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 2016-05-03, 13:54:31 
Offline

Joined: 2011-11-30, 17:26:44
Posts: 454
Location: Italy
That, too, is something I should apologise for. I wrote the very first revision of the YM2612 mid2vgm, and some of the bad things I did haven't been overhauled yet. Don't fear, anyway. Now that the code is in the hands of good programmers (unlike me) I'm sure more features and better functionality are on their way.

_________________
My webhost decided to shut down most of my webspace without a warning. If you find any broken Digilander link in any of my posts (basically all of them should be), please inform me.


Top
 Profile  
 
 Post subject:
PostPosted: 2016-05-29, 16:05:19 
Offline

Joined: 2014-12-30, 1:38:48
Posts: 45
Any way to play vgz/vgm to the PC Engine/TG-16?


Top
 Profile  
 
 Post subject:
PostPosted: 2016-05-30, 10:27:32 

Contributors Contributors
Bug catchers Bug catchers
Offline
User avatar

Joined: 2011-12-28, 19:52:40
Posts: 189
Location: Paris, France
It depends on what you want to play.

You can try VGM2HES, but it only supports SN76489.

Deflemask would be a great option... if it could directly export HES files (as it does with NSF).

_________________

Sega PCM [1985/1989] | Namco C140 [1987/1990] | Hudson HuC6280 [1987/1995] | Yamaha YM2608 [1988/1996] | Oki MSM6295 [1988/1998]


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next

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