Midi Event Editor
Version 0.3
Technical discussion which is not directly related to VGM files. Talk about Hardware and Software.
Moderator: Staff
Midi Event Editor
In the past days I've been writing a Midi Event Editor (if you are a regular visitor of our IRC Channel you should already know about that).
You can download version 0.3 HERE.
It is a 32-bit Windows executable, it should technically run fine in any 32-bit and 64-bit version of Windows, from 95 onwards. It requires the MicroSoft Visual Basic Virtual Machine 5.0 (msvbvm50) DLL, which can be obtained from Microsoft's website here: http://support.microsoft.com/kb/180071.
It is quite simple and it's not finished yet. But it can be useful.
Discuss.
Valley Bell EDIT 2018-01-28: fixed link
You can download version 0.3 HERE.
It is a 32-bit Windows executable, it should technically run fine in any 32-bit and 64-bit version of Windows, from 95 onwards. It requires the MicroSoft Visual Basic Virtual Machine 5.0 (msvbvm50) DLL, which can be obtained from Microsoft's website here: http://support.microsoft.com/kb/180071.
It is quite simple and it's not finished yet. But it can be useful.
Discuss.
Valley Bell EDIT 2018-01-28: fixed link
Also known as nineko.
i'm trying it on my work comp - MSVBVM50.DLL is listed as missing, and i don't have admin privileges on this comp, therefore it's not completely portable.
maybe try to remove VB dependencies (or build them in as static or bundle the DLL w/the exe)? i really want to check this out and verify how well it works, as i've made it a point to learn as much abt MIDI on the PC as possible.
(edit - here is the msdn link for the missing DLL; i'd also like to request the source for perusal, personal education, and possibly try to recreate it using byuu's nall+phoenix for possible integration into vgmtool)
maybe try to remove VB dependencies (or build them in as static or bundle the DLL w/the exe)? i really want to check this out and verify how well it works, as i've made it a point to learn as much abt MIDI on the PC as possible.
(edit - here is the msdn link for the missing DLL; i'd also like to request the source for perusal, personal education, and possibly try to recreate it using byuu's nall+phoenix for possible integration into vgmtool)
Last edited by neologix on 2012-08-13, 19:16:28, edited 2 times in total.
I am sorry I forgot to mention msvbvm50.dll, I usually add a link to that library whenever I release one of my programs, in fact I did so when I posted this same program on another forum, just a few minutes after I posted it here. I don't really know how I could forget about it. I usually provide this link, however, so the users will know what he's downloading instead of directly linking them to an exe. I added this information to my first post. Thanks for pointing this out.
As for the source code: sure, not now though. Right now it's quite messed up (and I'm fixing some major bugs that somehow ended up in the 0.1 beta, so 0.1.1 will come soon). I will probably send it to ValleyBell privately first, but I indeed plan to open this eventually.
Thanks for the interest you expressed about this, by the way, it's very much appreciated
As for the source code: sure, not now though. Right now it's quite messed up (and I'm fixing some major bugs that somehow ended up in the 0.1 beta, so 0.1.1 will come soon). I will probably send it to ValleyBell privately first, but I indeed plan to open this eventually.
Thanks for the interest you expressed about this, by the way, it's very much appreciated
Also known as nineko.
Ok, loaded it up, here are a few thoughts while I have a moment at work:
- The track list dropdown should probably find the first "Track Name" meta event and put that in brackets next to Track # (eg, "Track 1" becomes "Track 1 [ Song Name ]" (cuz Track 1 is the master track) "Track 2" becomes "Track 2 [ Track Name ]" , etc)
- I like that Note On w/vel 0 is listed as Note Off*, but for consistency I think it should list what the event ACTUALLY is first (Note On vel=0), THEN list Note Off in parentheses. Even better is if you can add the ability to 1-click convert Note On vel=0 to Note Off vel=previousVel instead of me having to manually do it.
- In the event list, how abt column headers? This would also allow listing the channel separately from the rest of the info in a much smaller column (titled "CH#" or something similarly small). Headers could be {Time, Ch#, Type, Name/Value/Data}
- Given that PPM can be changed during a song, the Time Division field at the top would only be reliable if it updates based on your position in the event list. This may be more advanced functionality, but it'd be really useful to have.
I had columns and headers at a certain point in time, but I didn't like them so I ditched them in favour of the new layout.neologix wrote:In the event list, how abt column headers? This would also allow listing the channel separately from the rest of the info in a much smaller column (titled "CH#" or something similarly small). Headers could be {Time, Ch#, Type, Name/Value/Data}
Ironically, I implemented this just a few hours ago, I actually wanted this feature to be included in version 0.1, but I later decided to postpone it, so it will be part of the next release. You will be able to convert between regular Note Off events to "fake" Note Off events.neologix wrote:Even better is if you can add the ability to 1-click convert Note On vel=0 to Note Off vel=previousVel instead of me having to manually do it.
I will release version 0.1.1 later today.
Also known as nineko.
In fact, here is a link to version 0.1.1, I just don't feel like programming more than this for today
It has some new features, and I fixed some of the horrible bugs which were present in 0.1 (I guess I just can't learn: I always release my programs one day sooner than I should, so the first version is always filled with avoidable bugs); also, there is now a rudimentary error handler.
It has some new features, and I fixed some of the horrible bugs which were present in 0.1 (I guess I just can't learn: I always release my programs one day sooner than I should, so the first version is always filled with avoidable bugs); also, there is now a rudimentary error handler.
Also known as nineko.
BTW, what's your personal preference re Note Off vs Note On vel=0? I know that the latter is used mainly for taking advantage of MIDI's running status feature, but nowadays it's more likely that a non-note on event on a potentially different channel is sent btwn Note On and Note Off time (even more so if it's a type 0 sequence).
I personally use Note Off for clarity and a greater chance of compatibility if I ever need to use something that doesn't implicitly read Note On vel=0 as Note Off.
I personally use Note Off for clarity and a greater chance of compatibility if I ever need to use something that doesn't implicitly read Note On vel=0 as Note Off.
I don't really have a preference (hence why I am completely supporting both of them in my program), if anything because I rarely work with Midi files at all, I very much prefer trackers and I usually deal with XM files instead. One of the reasons that led me to write this editor, in fact, is that I wanted to increase my knowledge of the Midi format in detail, learn how to handle Midi files at a low level, to focus on something which is outside of my normally preferred area, I like to challenge myself with things I'm not very familiar with. I already wrote at least 4 programs that dealt with Midi files[sup](1)[/sup], but none of them were as complex as this. I am doing this mainly for myself, as an exercise, which is actually proving to be quite interesting. But since I also think that the editor is shaping up quite nicely, I decided to release it to everyone in the hope it can also be an useful program.
For the record, I actually agree that "real" Note Off events are clearer to read and parse, but it's undeniable that using "fake" Note Off events can reduce the size of the file, especially if it's in format 1 and it's well formatted.
[hr]Note 1: Midi to S&KC, S&KC to Midi, Midi to YM2612 vgm, smps to Midi; interestingly enough, 3 of those have been improved by ValleyBell, who also indipendently wrote his own version of the 4th one, too.
For the record, I actually agree that "real" Note Off events are clearer to read and parse, but it's undeniable that using "fake" Note Off events can reduce the size of the file, especially if it's in format 1 and it's well formatted.
[hr]Note 1: Midi to S&KC, S&KC to Midi, Midi to YM2612 vgm, smps to Midi; interestingly enough, 3 of those have been improved by ValleyBell, who also indipendently wrote his own version of the 4th one, too.
Also known as nineko.
I released version 0.2; you can find it in the first post.
It fixes some bugs caused by Visual Basic's compiler itself, and I added many interesting features. Check it out
It fixes some bugs caused by Visual Basic's compiler itself, and I added many interesting features. Check it out
Also known as nineko.
That's weird; I've been hosting my stuff there in the past... 8 years maybe (I forgot, might be even more than that), and RAR files always worked fine for everyone so far, in fact I just tried to download it myself and it worked as intended.
I will upload the RAR on my Dropbox if someone else will report the same problem, though.
I will upload the RAR on my Dropbox if someone else will report the same problem, though.
Also known as nineko.
Late, but I can confirm the link working properly in Opera 12.01 too.
Sik is pronounced like "seek", not like "sick".
http://www.mdscene.net/
http://www.mdscene.net/
Please note the release of version 0.3, with even more features and even more bugs fixed.
You can find it in the first post, or here.
I don't think I will release other versions (unless someone finds a problematic bug, in which case I will quickly release a version 0.3.1), so I sent the source code to ValleyBell.
You can find it in the first post, or here.
I don't think I will release other versions (unless someone finds a problematic bug, in which case I will quickly release a version 0.3.1), so I sent the source code to ValleyBell.
Also known as nineko.