Reply 1780 of 2176, by dancing.sphinx
For this specific recording I used this mus rip:
Thanks! I converted it to *.mid (MUS2MIDI v0.9) and recorded via ESFMu + DosBox-X + ES1688 VxD drivers:
For this specific recording I used this mus rip:
Thanks! I converted it to *.mid (MUS2MIDI v0.9) and recorded via ESFMu + DosBox-X + ES1688 VxD drivers:
Falcosoft wrote on 2024-05-22, 22:10:I think I have found the problem and it's not easy to solve it fully. The problem is that FSMP also supports many other types o […]
I think I have found the problem and it's not easy to solve it fully.
The problem is that FSMP also supports many other types of Loop markers. One of them is RPG Maker style when only one controller message marks the Loop point: CC#111 with 2nd byte zero. In XMI specification Loop point markers are different (CC#116 and CC#117) but in XMI spec you can also find that CC#111 also means 'something' but no one knows exactly what it is. But it seems it's not important in the context of simple playback:
https://moddingwiki.shikadi.net/wiki/XMI_Format
So far I have only met XMI files that have CC#111 with non-zero 2nd byte. But your problematic files do contain CC#111 with zero 2nd byte. It's exatly the same as RPG Maker style loop markers.
The only thing I could do is to disable these kind of loop markers in case of XMI files. The problem is that converted XMI to MID files also contain these types of markers (like 03 - Level 1-4.xmi.mid) and there is nothing you can do anymore in this context to determine what is valid loop marker and what is not.
So I could only correct the error in case of XMI files but not in case of MID files converted from XMI files...
In case of these converted MID files you can remove CC#111 with 2nd byte zero events without any consequences to cure the problem since it is sure that they mean nothing in MID files.
Here is a test version for you to try:
https://falcosoft.hu/midiplayer_64_test.zip
Just got around today to testing this test build, sorry for the delay in response!
The loops in Jagged Alliance still don't play properly unfortunately. "108 - Real Time Mode.xmi" as from VGMPF.com loops so incorrectly that various program change commands are skipped and the music sounds broken as a result.
"Combat" in that same set also loops improperly, replaying the intro to the song again rather than the mid section following the intro.
Blackthorne's loop points DO work correctly in this build though!
“I am the dragon without a name…”
― Κυνικός Δράκων
DracoNihil wrote on 2024-05-29, 23:34:Just got around today to testing this test build, sorry for the delay in response! […]
Falcosoft wrote on 2024-05-22, 22:10:I think I have found the problem and it's not easy to solve it fully. The problem is that FSMP also supports many other types o […]
I think I have found the problem and it's not easy to solve it fully.
The problem is that FSMP also supports many other types of Loop markers. One of them is RPG Maker style when only one controller message marks the Loop point: CC#111 with 2nd byte zero. In XMI specification Loop point markers are different (CC#116 and CC#117) but in XMI spec you can also find that CC#111 also means 'something' but no one knows exactly what it is. But it seems it's not important in the context of simple playback:
https://moddingwiki.shikadi.net/wiki/XMI_Format
So far I have only met XMI files that have CC#111 with non-zero 2nd byte. But your problematic files do contain CC#111 with zero 2nd byte. It's exatly the same as RPG Maker style loop markers.
The only thing I could do is to disable these kind of loop markers in case of XMI files. The problem is that converted XMI to MID files also contain these types of markers (like 03 - Level 1-4.xmi.mid) and there is nothing you can do anymore in this context to determine what is valid loop marker and what is not.
So I could only correct the error in case of XMI files but not in case of MID files converted from XMI files...
In case of these converted MID files you can remove CC#111 with 2nd byte zero events without any consequences to cure the problem since it is sure that they mean nothing in MID files.
Here is a test version for you to try:
https://falcosoft.hu/midiplayer_64_test.zipJust got around today to testing this test build, sorry for the delay in response!
The loops in Jagged Alliance still don't play properly unfortunately. "108 - Real Time Mode.xmi" as from VGMPF.com loops so incorrectly that various program change commands are skipped and the music sounds broken as a result.
"Combat" in that same set also loops improperly, replaying the intro to the song again rather than the mid section following the intro.
Blackthorne's loop points DO work correctly in this build though!
Hi,
I have re-checked your mentioned XMI files but this time I have found no problems regarding what the player does and what the specification says.
110. Comabat.xmi is a simple case: There is no Loop Start controller (CC#116) at the middle section. The LoopStart is at 0:00.00 and the LoopEnd is at 01:16.31.
The situation is similar in case of 108 - Real Time Mode.xmi but in this case the LoopStart is really behind the program change messages namely at 00:00.02. There is a settings to cure such problems in FSMP: 'Main menu -> Loop Settings -> Just loop, assume correct state' option has to be disabled.
So overall while I believe you that in game these XMI files sound differently but according to my current knowledge these files are played properly by FSMP.
Maybe these are conversion errors.
@Edit:
BTW, Foobar2000 with the "Midi Player" plugin plays back the above mentioned XMI files the same way as FSMP (in case of 108 - Real Time Mode.xmi with the program change error since it seems there is no such option in foobar's plugin that can cure this error).
Hi Zoltan )
In your version BASSMIDI SoundFont VSTi have problem )
in accordance with specifications GS / XG , can be two drums channels , but your BASSMIDI SoundFont VSTi can not work with two drums channel if in SoundFont bank 127 not drums , if possible , please add correct processing MIDI sysex and if GS or XG reset with two drums channels , do playable as GS / XG device
Roland User wrote on 2024-05-31, 13:30:Hi Zoltan )
In your version BASSMIDI SoundFont VSTi have problem )
in accordance with specifications GS / XG , can be two drums channels , but your BASSMIDI SoundFont VSTi can not work with two drums channel if in SoundFont bank 127 not drums , if possible , please add correct processing MIDI sysex and if GS or XG reset with two drums channels , do playable as GS / XG device
It works with any number of drum channels (even more than 2 drum channels are possible). In XG mode it's enough to set Bank MSB to 127 on any channels to get a drum channel. I have just tested it.
Make sure that you switched Bassmidi into XG mode before setting Bank MSB to 127.
Test video:
https://youtu.be/5Tb394tNeec
Yes , but as set double drums channel in GS mode ?
Roland User wrote on 2024-05-31, 14:16:Yes , but as set double drums channel in GS mode ?
It also works in GS mode but then you have to send a properly formatted GS SysEx message to set a channel to be a drum channel. In GS specification bank MSB 127 does NOT mean a drum channel (but an MT-32 compatibility bank) .
BTW, according to GM2 specification you can set a channel to be a drum channel by setting bank MSB to 120. This also works in BassMidi VSTi if you switch it into GM2 mode.
I have just checked and all these modes work properly.
Here is a GS Midi file that sets both channel 10 and 11 to be a drum channel. It works perfectly with the plugin:
So overall the plugin works perfectly and according to specification, your request is what out of specification. (That is making a channel to be a drum channel in GS mode by settings bank MSB to 127. This is out of spec.)
As I understand , in WinMM reset do so :
MT-32 F0 41 10 16 12 7F 01 F7
GM F0 7E 7F 09 01 F7
XG F0 43 10 4C 00 00 7E 00 F7
GS F0 41 10 42 12 40 00 7F 00 41 F7
but in this not MUNT Dual MT-32 reset , here lacks F0 66 7E 02 F7 , if not hard , add this reset as MUNT DS
This mode can named as MT-32 Dual Synth
Roland User wrote on 2024-06-01, 15:32:As I understand , in WinMM reset do so : MT-32 F0 41 10 16 12 7F 01 F7 GM F0 7E 7F 09 01 F7 XG F0 43 10 4C 00 00 7E 00 F7 GS […]
As I understand , in WinMM reset do so :
MT-32 F0 41 10 16 12 7F 01 F7
GM F0 7E 7F 09 01 F7
XG F0 43 10 4C 00 00 7E 00 F7
GS F0 41 10 42 12 40 00 7F 00 41 F7
but in this not MUNT Dual MT-32 reset , here lacks F0 66 7E 02 F7 , if not hard , add this reset as MUNT DS
This mode can named as MT-32 Dual Synth
Re: Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
And please do not restart already done conversations. It's just enough tiresome to answer your other pseudo problems like your yesterday's report.
Let's start a little break period.
Сoncerning WinMM
Problem in as we see your plugin )
You see this plugin as was created firstly ) that is for output MIDI with FSMP on devices with multi MIDI inputs ) here all understand )
I see and use this plugin for other tasks , for me this comfortable MIDI router )
Hmm , have idea )
I understand your position about WinMM , but what if make as you created method with channel select , you maked "custom" and there user can select personaly as configure channels and balance channels per ports ) this is very good , but maybe you add same method to resets ? So GM / GS / XG / GM2 / XG / MT-32 and four user presets ? Thought of this never leaves me , as you think maybe have meaning add this ?
I see this as in user mode , user can enter any MIDI-sysex and next save in fxb , and further can choose saved mode for reset if need )
I think four user mode reset MIDI-sysex besides standard will be enough for everyone and to each )
Сoncerning BassMIDI VSTi work if use XG mode , always lost MT-32 timbres and always lost all non standard instruments in soundfonts , whitch if add regarding realistic instrments and variations of instruments in 125 or 126 banks , but if do reset to XG , this banks will be lost , this not normally , I want to if reset as XG and in soundfont available banks from 125 to 127 , to remaped for any empty banks for example in SF used banks 0/1/2/4/8/16/24/32/40/48/56/64/72/80/96/112/126/127 , but availabe сause why I select 125-126 banks for regarding realistic instrments is that before this banks will be empty
something in between to if reset as XG and automaticly moved banks 125/127 to 115/118 ) alsoo BassMIDI VSTi you can finalize and teach plugin for autoswitch to MT-32 map if plugin recive F0 41 10 16 12 7F 01 F7 and have bank 127 fully filled
Now if is present in the bank127 fully filled all patches and present drums number 127 and sent F0 41 10 16 12 7F 01 F7 message will be ignored and BASSMIDI leav in any mode except MT-32 emulation because BASSMIDI simply ignore MT-32 reset , but I would like to what BASSMIDI can switched in MT-32 rough compatible mode
And I detect this bug https://disk.yandex.ru/i/c_dqz2qmOrsuQQ
And another question , as this fix ?
This about Quest for Glory IV - Shadows of Darkness -02 - Introduction
I simply not understand who such strange do write midi file this method and what for this was be do ?
And if not hard , please add function export from big long midi file fragments ) for example
cut from 5 min 00 sec to 7 min 50 sec
Hey Roland User, laynit off for a while eh? Go out, have some fresh air. Let the guy rest, he has entertained your whims about a hundred times more than any other dev would.
appiah4 wrote on 2024-05-27, 10:21:I kind of don't envy your position but I am quite thankful for having you active here.. So if that means something, thank you.
...
Hey Roland User, laynit off for a while eh? Go out, have some fresh air. Let the guy rest, he has entertained your whims about a hundred times more than any other dev would.
You're welcome and thanks for your empathy 😀
Yes , Zoltan good man and developer )
Before as I learn about WinMM , I thinked what need use other non comfortable methods for select MIDI synth , but now I glad what have WinMM ) I see as this comfortable use one plugin for select MIDI devce on fly in all applications ) I am very happy what there is so plugin )
I understand what WinMM was be created for other targets , but as it turned out this plugin can be comfortable MIDI router , what initially not be intended , in all cause outside FSMP )
But have what have ) and I would like to , what WinMM became very best MIDI router with more functions )
And I not known about this VSTi Plugin , if in my head not would crazy appear thought about as do one VST Synthesizer do unlimited size ) now I speach about YAMAHA Vampire ) be to way , with developer YAMAHA Vampire I also want to see the product differently , there are disagreements about as create GS mode ) developer want make GS as separate patches from Roland , but me so like patches which use in XG mode , what I want use these same patches and in GS ) wherein I want move everything instruments from SCVA to Vampire , but based high quality samples , although drumsets I want move partialy as there is from SCVA to Vampire )
By the way disagreements even about how make Vampire ) I see what need do one instrument group - one synth , that is each subclass and subgroup including separate drum group on 2 GB max size , developer see synth as one 2 GB in one file )
And because I and the developer Vampire from Russia , reaction in discussions and disputes more hard , with Eropeans this is happening more soft )
Let's say so this is where I become more human
Roland User wrote on 2024-06-01, 23:26:Сoncerning WinMM
...
1. I'm not interested in any of your WinMM Multiport VSTi related ideas.
2. I have nothing to do with how Bassmidi works in XG mode. If you want a different behavior you have to convince Ian (at https://www.un4seen.com/) not me.
3. This visual glitch will be fixed in next version.
4. I do not understand what problem you have with this Midi file (but honestly I do not even care either so do not explain it).
5. You can do this in different sequencers or in GNMIDI.
Ps:
I have no mood to discuss any of the above further so let's just stop here.
I mean it. Seriously.
1) I approximately as expected what you give this answer like this )
2) I understand
3) good
4) problem was be in this see attachment
5) thank you ) I finded GNMIDI and this to me help )
Roland User wrote on 2024-06-02, 14:01:...
4) problem was be in this see attachment
5) thank you ) I finded GNMIDI and this to me help )
I'm still not sure what kind of problem you are talking about.
Is it that all channels are configured and played on the same track? This is the typical pattern of all Type 0 (and rare Type 2) Midi files but sometimes Type 1 Midi files also use it.
If you found GNMIDI then you can try Convert -> Change Midi format -> 0.
This way you can get similar structure from any Type 1 Midi file (That is all channels are configured and played on the same track).
In case of your file then you can do a conversion again by Convert -> Change Midi format -> 1. This way all different channel messages will be separated to different tracks.
Thank you ) previously I thinked what this MIDI format is error or somebody very cunning do this files for complications work with this files )
For now I not understand which plus in format 1 if compare with format 0 ) if this have , plese tell me about pluses format 1
Try doing a google search about it.
Roland User wrote on 2024-06-02, 15:58:Thank you ) previously I thinked what this MIDI format is error or somebody very cunning do this files for complications work with this files )
For now I not understand which plus in format 1 if compare with format 0 ) if this have , plese tell me about pluses format 1
0. In case of Type 0 Midi files you can have only 1 track but this track can use any (1-16) Midi channels. Some old HW devices with built-in sequencers could only handle Type 0 Midi files.
1. In case of Type 1 Midi files you can have 65536 tracks and all tracks can use any channels. So it is only a convention that a single track uses only a single channel. Nothing in the SMF specification prevents that a single track in a Type 1 file uses any (1-16) channels.
But the practical advantage of Type 1 (and that's how it it is typically used) is that you can separate tracks by channels and thus instruments.
2. Type 2 Midi files are very rare and they can also have 65536 tracks that can use any channels but each track is an independent track and should be played back one after the other (they somewhat resemble XMI files in this respect).
appiah4
Previously I so not see ) I have more MIDI files but this format previously I not came across )
Falcosoft
Thank you ) now I uneerstand
In your BASSMIDI have bassflac.dll , but absent basswv.dll please include to BASSMIDI kit basswv.dll for read WavPack compressed SoundFonts )
And got a question )
When I see structure BASSMIDI , I see this :
bass.dll
bassflac.dll
bassmidi.dll
BassMidiVsti.dll
and possibl other dlls for example basswv.dll
but what for this ?
Maybe it makes sense compile all this as one BassMidiVsti.dll with resources ?
Also this question about OPL3 GM emulator VSTi there here two file :
OPL3Vsti.dll
opl3emu4v.dll
maybe it makes sense compile in one and add files as resources ?
also MUNT there here three file :
MuntVsti.dll
mt32emu4v.dll
mt32emu4v_sse2.dll
maybe it makes sense compile in one and add files as resources ?