VOGONS


Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi

Topic actions

Reply 2440 of 2453, by Falcosoft

User metadata
Rank l33t
Rank
l33t
Spesek wrote on 2026-02-07, 23:07:

...

I think it would be simple to implement by adjusting the current GS/XG text displaying function to "decode" the bitmap as text.
What do you think?

In the end I implemented the graphics version since in some Midi files I used for testing the graphics and the text display run in parallel and that would be rather hard to implement with the same text display.
The graphics mode LCD messages use the Channel/Bass Visualization dialog for displaying graphics data. Here is a demo video I recorded:
https://youtu.be/0xJf5wNqB8A

BTW, I have no XG Midi files with corresponding graphics display data so I could not implement it. Do you have such XG Midi files that you can share?

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 2441 of 2453, by ColomboGMGS2

User metadata
Rank Newbie
Rank
Newbie
mashakos wrote on 2026-02-03, 02:40:
That worked, nice! Two suggestions: - Option to magnify/scale the UI. Mainly for ppl like me who have DPI scaling disabled in wi […]
Show full quote
Falcosoft wrote on 2026-02-02, 23:27:
I think it's fixed in newest test version: https://falcosoft.hu/midiplayer_66_test.zip […]
Show full quote

I think it's fixed in newest test version:
https://falcosoft.hu/midiplayer_66_test.zip

BTW, FSMP's own topic is here on Vogons:
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi

That worked, nice!
Two suggestions:
- Option to magnify/scale the UI. Mainly for ppl like me who have DPI scaling disabled in windows
- Add a "minimize to tray" button in the area indicated?

how did you get that theme?

Reply 2442 of 2453, by ColomboGMGS2

User metadata
Rank Newbie
Rank
Newbie

the channels panic whenever I try mute/solo on any single given channel. is there a way to disable this jarring interruption?

Reply 2443 of 2453, by Falcosoft

User metadata
Rank l33t
Rank
l33t
ColomboGMGS2 wrote on 2026-02-09, 08:52:

the channels panic whenever I try mute/solo on any single given channel. is there a way to disable this jarring interruption?

Can you be a little more specific?
I could not reproduce any issues with mute/solo. Here is my test video:
https://youtu.be/NU8EPrXeeMM

Report back, or rather do a video about what works differently on your side.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 2444 of 2453, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie

I have a weird request; is there a way for the OPL3 GM VSTi to operate the emulated chip in "PERCUSSION" channel mode? I have some FM specific MIDIs that only have a IBK for melodic instruments and the percussion is done via "PERCUSSION" channel mode being enabled.

“I am the dragon without a name…”
― Κυνικός Δράκων

Reply 2445 of 2453, by Falcosoft

User metadata
Rank l33t
Rank
l33t
DracoNihil wrote on 2026-02-09, 16:36:

I have a weird request; is there a way for the OPL3 GM VSTi to operate the emulated chip in "PERCUSSION" channel mode? I have some FM specific MIDIs that only have a IBK for melodic instruments and the percussion is done via "PERCUSSION" channel mode being enabled.

Hi,
AFAIK 'Percussion' is a mode that occupies three channels to create 5 distinct drum sounds. So it is primarily for native FM synth programming and not for General Midi playback (it's not compatible with GM channel/drum patch layout).
Since OPL3 GM VSTi is not a low level OPL emulator you cannot set such configuration.
Some more info from Saga:
https://forum.openmpt.org/index.php?topic=624 … g46519#msg46519

Last edited by Falcosoft on 2026-02-09, 20:32. Edited 1 time in total.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 2446 of 2453, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie
Falcosoft wrote on 2026-02-09, 17:55:

Huh, I guess I can try to figure out how to recreate percussion mode patches by just not touching the other operator in the instrument patch itself then.

Thanks for the link to that post.

“I am the dragon without a name…”
― Κυνικός Δράκων

Reply 2447 of 2453, by ColomboGMGS2

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2026-02-09, 09:29:
Can you be a little more specific? I could not reproduce any issues with mute/solo. Here is my test video: https://youtu.be/NU8E […]
Show full quote
ColomboGMGS2 wrote on 2026-02-09, 08:52:

the channels panic whenever I try mute/solo on any single given channel. is there a way to disable this jarring interruption?

Can you be a little more specific?
I could not reproduce any issues with mute/solo. Here is my test video:
https://youtu.be/NU8EPrXeeMM

Report back, or rather do a video about what works differently on your side.

My apologies for rushed typing. I still find it hard to gather words on what's happening. Of course a MIDI Panic is unnoticeable in fast melodies. But it does affect downtempo ones with long notes.
here goes my demo.

https://youtu.be/xK6pwI242hA

Reply 2448 of 2453, by Falcosoft

User metadata
Rank l33t
Rank
l33t
ColomboGMGS2 wrote on 2026-02-10, 06:49:
My apologies for rushed typing. I still find it hard to gather words on what's happening. Of course a MIDI Panic is unnoticeable […]
Show full quote
Falcosoft wrote on 2026-02-09, 09:29:
Can you be a little more specific? I could not reproduce any issues with mute/solo. Here is my test video: https://youtu.be/NU8E […]
Show full quote
ColomboGMGS2 wrote on 2026-02-09, 08:52:

the channels panic whenever I try mute/solo on any single given channel. is there a way to disable this jarring interruption?

Can you be a little more specific?
I could not reproduce any issues with mute/solo. Here is my test video:
https://youtu.be/NU8EPrXeeMM

Report back, or rather do a video about what works differently on your side.

My apologies for rushed typing. I still find it hard to gather words on what's happening. Of course a MIDI Panic is unnoticeable in fast melodies. But it does affect downtempo ones with long notes.
here goes my demo.

https://youtu.be/xK6pwI242hA

Hi,
The term 'Midi Panic' was not too helpful since it was so radical that it suggested for me that you noticed something that was fundamentally broken.
Watching your video made it clear what your problem was. I introduced All Sounds Off instead of All Notes Off in case of Mute/Solo since All Notes Off messages simply cannot mute looped sustained notes.
But to tell you the truth this problem occurs rather rarely since most sustained notes are not looped and have a proper release phase.
I did not think that a little bit more abrupt muting of notes makes someone think of 'Midi Panic' 😀.
So OK, I reverted the change. You can try the new test version. You should simply overwrite the files in FSMP's folder with the new ones:
https://falcosoft.hu/midiplayer_66_test.zip

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 2449 of 2453, by Spesek

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2026-02-09, 02:01:
In the end I implemented the graphics version since in some Midi files I used for testing the graphics and the text display run […]
Show full quote

In the end I implemented the graphics version since in some Midi files I used for testing the graphics and the text display run in parallel and that would be rather hard to implement with the same text display.
The graphics mode LCD messages use the Channel/Bass Visualization dialog for displaying graphics data. Here is a demo video I recorded:
https://youtu.be/0xJf5wNqB8A

BTW, I have no XG Midi files with corresponding graphics display data so I could not implement it. Do you have such XG Midi files that you can share?

Hi,
Sorry for the late reply, vogons didn't send me an email about it 🙁
The display you added looks very nice! Hoping for a green one for XG 😀

Regarding your question, you can find XG display graphics in Kr.Palto47's XG MIDIs (I linked the whole folder this time):

https://drive.google.com/drive/folders/15GLn- … VkBj0hQw7Sq8Mo2

For example: Era 2 -> touhou 12 -> emotional skyscraper (MU2000EX)
or Era 2-> touhou 11 -> satori maiden (also MU2000EX)

The second one has an animation playing throughout the whole file, apparently some demo XG MIDIs have it as well.

PS: Where did you get that Star Games and 3X3EYES files? They look really cool!

PS/2: Would it be possible for the FSMP to automatically change patch names based on the system? E.g. scva patches in GS, SYXG50/MU1000EX patches in XG.

Reply 2450 of 2453, by Falcosoft

User metadata
Rank l33t
Rank
l33t
Spesek wrote on 2026-02-11, 15:48:
Hi, Sorry for the late reply, vogons didn't send me an email about it :-( The display you added looks very nice! Hoping for a gr […]
Show full quote
Falcosoft wrote on 2026-02-09, 02:01:
In the end I implemented the graphics version since in some Midi files I used for testing the graphics and the text display run […]
Show full quote

In the end I implemented the graphics version since in some Midi files I used for testing the graphics and the text display run in parallel and that would be rather hard to implement with the same text display.
The graphics mode LCD messages use the Channel/Bass Visualization dialog for displaying graphics data. Here is a demo video I recorded:
https://youtu.be/0xJf5wNqB8A

BTW, I have no XG Midi files with corresponding graphics display data so I could not implement it. Do you have such XG Midi files that you can share?

Hi,
Sorry for the late reply, vogons didn't send me an email about it 🙁
The display you added looks very nice! Hoping for a green one for XG 😀

Regarding your question, you can find XG display graphics in Kr.Palto47's XG MIDIs (I linked the whole folder this time):

https://drive.google.com/drive/folders/15GLn- … VkBj0hQw7Sq8Mo2

For example: Era 2 -> touhou 12 -> emotional skyscraper (MU2000EX)
or Era 2-> touhou 11 -> satori maiden (also MU2000EX)

The second one has an animation playing throughout the whole file, apparently some demo XG MIDIs have it as well.

PS: Where did you get that Star Games and 3X3EYES files? They look really cool!

PS/2: Would it be possible for the FSMP to automatically change patch names based on the system? E.g. scva patches in GS, SYXG50/MU1000EX patches in XG.

Hi,
1. OK, It's green!
BTW, Thanks for the example files. Testing was much easier this way.

The attachment XGLCD.jpg is no longer available

2. I do not remember, hut here they are for download:

The attachment MIDI_GSLCD.zip is no longer available

3. The situation is more complicated. FSMP does not use fixed/builtin patch names but external instrument definition files (*.ins). Everyone can use their own or use the included ones but FSMP cannot rely on that some of them are always available.
Moreover FSMP has 3 main patch name displaying modes and you can use any of them independently form the output mode. E.g. you can use the loaded SF2 preset names even when an external synth is the actual output or vice versa.
Typically in case of hardware SB SF2 synths and even in case of Bassmidi output the loaded SF2 preset names are more useful than SC-VA/SYXG50 patch names regardless of the Midi system (XG/GS) used by the Midi files.

But I will try to find out some kind of compromise solution.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 2451 of 2453, by Spesek

User metadata
Rank Newbie
Rank
Newbie

Hi Falco,
The new display looks great and thanks for the MIDI files!
However I believe I have found a bug in FSMP's seeking algorithm.

When you load the "Idecs Hyper Groove / LATIN" (34H_Latn.mid) 88Pro demo song into FSMP, the seeking behavior is incorrect.
More precisely, the file enables phaser EFX at around 1:20 for the ending drum sequence. If you seek after this time, the EFX is not activated as it should.
Also, after it activates and you seek backwards (for example to 0:10),
the EFX stays on for the drums despite it not being enabled for most of the song when you play the file from the beginning.

It looks like FSMP ignores sysEx when seeking? What do you think?

PS: Regarding the patch names request, choosing a specific *.ins files for XG/GS is of course fine too.
Actually, would it be possible to extend this request to switching
to a specific VSTi for the system (syxg50 for XG and SCVA for GS), or is this too much? 😉

Reply 2452 of 2453, by Falcosoft

User metadata
Rank l33t
Rank
l33t
Spesek wrote on Today, 02:22:
Hi Falco, The new display looks great and thanks for the MIDI files! However I believe I have found a bug in FSMP's seeking algo […]
Show full quote

Hi Falco,
The new display looks great and thanks for the MIDI files!
However I believe I have found a bug in FSMP's seeking algorithm.

When you load the "Idecs Hyper Groove / LATIN" (34H_Latn.mid) 88Pro demo song into FSMP, the seeking behavior is incorrect.
More precisely, the file enables phaser EFX at around 1:20 for the ending drum sequence. If you seek after this time, the EFX is not activated as it should.
Also, after it activates and you seek backwards (for example to 0:10),
the EFX stays on for the drums despite it not being enabled for most of the song when you play the file from the beginning.

It looks like FSMP ignores sysEx when seeking? What do you think?

PS: Regarding the patch names request, choosing a specific *.ins files for XG/GS is of course fine too.
Actually, would it be possible to extend this request to switching
to a specific VSTi for the system (syxg50 for XG and SCVA for GS), or is this too much? 😉

Hi,
1. Sending SysEx messages while seeking is disabled in FSMP deliberately. It's because some devices (mostly hardware but even some soft synths like Munt) have limited SysEx buffers and you cannot send large amount of SysEx data in a tight loop without risking complete freezing. Some Midi files contain hundreds of SysEx messages with the size of more than ~20KB. In such case even virtual Midi cables detect 'loopback error' and stop working.
In case of short messages FSMP filters out the redundant messages during seeking but in case of SysEx messages you would need full SysEx interpreters for all Midi systems to determine what is a redundant message. So you could only send all SySex messages during seeking. Some synths (e.g. my Dreamblaster X2) completely freeze and require a full restart when I try to do this.
Maybe some heuristics can be added that depending on the amount of SysEx messages enables/disables sending during seek time. This would work with your file since it has relatively few messages.

2. In the end 'Autoselect Patch names' resulted in some headaches because of logical inconsistencies. I had to disable software CTF while it is enabled. It's because so far when CTF was enabled the output device dominated and the Midi file's messages was altered to play properly on the output device according to the selected instrument definition. But now when 'Autoselect Patch names' is enabled FSMP cannot do this anymore since the Midi file (or selected Midi system) dominates and loads the linked instrument definition regardless if the output device is compatible with it or not. So 'Autoselect Patch Names' will be disabled by default and you also have to select 'Custom Patch Names' option explicitly to enable it. The configuration will look like this:

The attachment AutoPatchNames.jpg is no longer available

3. Yep, it's too much. It's because FSMP has to restart the whole engine when changing output device. And some Midi files contain multiple different SysEx resets so such restart would happen multiple times. Plugins like SC-VA requires more than 3 seconds to initialize so for many seconds the playback would stall. Not to mention that plugins require different sample rates, volume level, default reset mode etc. so simply changing the plugin during playback is not ideal.
But of course you can use completely fine tuned configurations with the help of Main menu-> Configuration presets. Then with the help of Ctrl + Alt + 'preset number' key combos you can switch between presets without even opening the dialog again.

@Edit:
BTW, I have also added the option to the context menu of Visualization dialog to use inverted colors which resembles more to the colors of the original LCD display:

The attachment invertedLCD.jpg is no longer available

New test version can be downloaded form here:
https://falcosoft.hu/midiplayer_66_test.zip

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 2453 of 2453, by Spesek

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on Today, 09:47:
Hi, 1. Sending SysEx messages while seeking is disabled in FSMP deliberately. It's because some devices (mostly hardware but eve […]
Show full quote
Spesek wrote on Today, 02:22:
Hi Falco, The new display looks great and thanks for the MIDI files! However I believe I have found a bug in FSMP's seeking algo […]
Show full quote

Hi Falco,
The new display looks great and thanks for the MIDI files!
However I believe I have found a bug in FSMP's seeking algorithm.

When you load the "Idecs Hyper Groove / LATIN" (34H_Latn.mid) 88Pro demo song into FSMP, the seeking behavior is incorrect.
More precisely, the file enables phaser EFX at around 1:20 for the ending drum sequence. If you seek after this time, the EFX is not activated as it should.
Also, after it activates and you seek backwards (for example to 0:10),
the EFX stays on for the drums despite it not being enabled for most of the song when you play the file from the beginning.

It looks like FSMP ignores sysEx when seeking? What do you think?

PS: Regarding the patch names request, choosing a specific *.ins files for XG/GS is of course fine too.
Actually, would it be possible to extend this request to switching
to a specific VSTi for the system (syxg50 for XG and SCVA for GS), or is this too much? 😉

Hi,
1. Sending SysEx messages while seeking is disabled in FSMP deliberately. It's because some devices (mostly hardware but even some soft synths like Munt) have limited SysEx buffers and you cannot send large amount of SysEx data in a tight loop without risking complete freezing. Some Midi files contain hundreds of SysEx messages with the size of more than ~20KB. In such case even virtual Midi cables detect 'loopback error' and stop working.
In case of short messages FSMP filters out the redundant messages during seeking but in case of SysEx messages you would need full SysEx interpreters for all Midi systems to determine what is a redundant message. So you could only send all SySex messages during seeking. Some synths (e.g. my Dreamblaster X2) completely freeze and require a full restart when I try to do this.

2. In the end 'Autoselect Patch names' resulted in some headaches because of logical inconsistencies. I had to disable software CTF while it is enabled. It's because so far when CTF was enabled the output device dominated and the Midi file's messages was altered to play properly on the output device according to the selected instrument definition. But now when 'Autoselect Patch names' is enabled FSMP cannot do this anymore since the Midi file (or selected Midi system) dominates and loads the linked instrument definition regardless if the output device is compatible with it or not. So 'Autoselect Patch Names' will be disabled by default and you also have to select 'Custom Patch Names' option explicitly to enable it. The configuration will look like this:

The attachment AutoPatchNames.jpg is no longer available

3. Yep, it's too much. It's because FSMP has to restart the whole engine when changing output device. And some Midi files contain multiple different SysEx resets so such restart would happen multiple times. Plugins like SC-VA requires more than 3 seconds to initialize so for many seconds the playback would stall. Not to mention that plugins require different sample rates, volume level, default reset mode etc. so simply changing the plugin during playback is not ideal.
But of course you can use completely fine tuned configurations with the help of Main menu-> Configuration presets. Then with the help of Ctrl + Alt + 'preset number' key combos you can switch between presets without even opening the dialog again.

@Edit:
BTW, I have also added the option to the context menu of Visualization dialog to use inverted colors which resembles more to the colors of the original LCD display:

The attachment invertedLCD.jpg is no longer available

New test version can be downloaded form here:
https://falcosoft.hu/midiplayer_66_test.zip

Hi,

1. I get where you're coming from. Spessasynth's sequencer just bombs the synth with all sysExes at once when seeking and when I reroute the MIDI output into something like nuked55, it doesn't seem to like that 😀
Though something i thought of would be adding a short delay after each message, maybe like 5ms (configurable?) or similar to let the synth process it, essentially emulating the initial silence in a MIDI file where the synth is getting configured (this would not affect bassmidi mode). This does mean that seeking would take a bit longer though. What do you think?

2. Thanks, the automatic patch selection works great!

3. That's okay, I was just wondering since foo_midi can pick a VST based on the MIDI system.
Though that reminds me of another question:
In Kr.Palto47's MIDI files there's one MIDI (CD Albums -> Magical Astronomy -> Necrofantasia -> XG2000EX -> smf1) that uses 64 channels. FSMP correctly detects it as 64 channels, though it works only with BASSMIDI.
I saw that there's a multi-port VSTi included, though it's only for MIDI ports, not VST plugins.
So I was wondering would it be possible to run 4 SYXG50s at once to play this MIDI file?
I noticed that you can load multiple VST plugins but only as effects, not as instruments.