Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_midi (foobar2000 v2.0) (Read 77442 times) previous topic - next topic
0 Members and 3 Guests are viewing this topic.

Re: foo_midi (foobar2000 v2.0)

Reply #275
The current version seems to be ignoring libADLMIDI and libOPNMIDI if a soundfont path is set - regardless of what player I choose the console reports the following:

Code: [Select]
Opening track for playback: "D:\Synth\rips\1991 - Jimmy White's Whirlwind Snooker\01 - Snooker.mid"
foo_midi failed to initialize FluidSynth: Invalid FluidSynth directory: The system cannot find the path specified (0x00000003)
foo_midi uses SoundFont "D:\soundfonts\HiDef.sf2" with bank offset 0.

clearing the soundfont path allows libADLMIDI and libOPNMIDI to operate as normal, it's only when a soundfont path is set that they're getting overridden.
Thx. for reporting. The player override logic has been updated to support layered soundfonts but it looks like it's a bit too assertive.
Fixed in 2.15.1.

Re: foo_midi (foobar2000 v2.0)

Reply #276
I have tried using the Roland Sound Canvas VST and it seems like it doesnt work properly. The midis only play with the default boot settings of the VST and changing them via the "configure" button in preferences has no effect. Maybe also because I cannot access foobar anymore until the VST window is closed.

Not sure if I do something wrong or if its just Foobars VST support. The VST is generally not easy to use though and so far I could only make it fully work in FL Studio with mid files and loopmidi. Sadly FL Studio only supports mid and no deviations like hmp.

Re: foo_midi (foobar2000 v2.0)

Reply #277
I have tried using the Roland Sound Canvas VST and it seems like it doesnt work properly. The midis only play with the default boot settings of the VST and changing them via the "configure" button in preferences has no effect. Maybe also because I cannot access foobar anymore until the VST window is closed.

Not sure if I do something wrong or if its just Foobars VST support. The VST is generally not easy to use though and so far I could only make it fully work in FL Studio with mid files and loopmidi. Sadly FL Studio only supports mid and no deviations like hmp.
The VST is just used to render wave samples. There's no other interaction whatsoever. foo_midi just sends MIDI codes to the VST and expects a buffer with samples in return.

What I did notice during development is that the VST process gets started and stopped multiple times before actual playback starts. Since I did not and still don't have much experience with VST's I assumed it was a requirement of the original design.

Since the process stops and restarts it is fair to assume that any configuration gets lost unless the VST saves its state somewhere.

Re: foo_midi (foobar2000 v2.0)

Reply #278
Try using the flavor option in foo_midi itself instead of the configuration in the VSTi, and set it to the unit you want to emulate, GS SC-55, GS SC-88Pro, etc. It responds to that in my experience.

Re: foo_midi (foobar2000 v2.0)

Reply #279
Try using the flavor option in foo_midi itself instead of the configuration in the VSTi, and set it to the unit you want to emulate, GS SC-55, GS SC-88Pro, etc. It responds to that in my experience.

That actually seems to have done it! I tried comparing some midi recordings between foobar and fl studio now and they look almost identical.

However, I am unsure about the Descent and Descent II exports. The thing is, I compared them to other peoples hardware SC-55 exports and they are different. The playback speed is actually different and I tracked it down to them being based on some hmp to midi conversions but I am not sure if these are accurate or faulty and dont mimic the sound of the real original hmp composition. I even noticed a few additional samples that do not play with the hmp file but now I have no idea if this is due to foo_midi not playing the hmp format properly or if the midi conversions made by other people are faulty.

However, I did rule out the VST plugin as the reason. I also played it with with libADLmidi and descent 2 bank and the speed was the same. So it is foo_midi who is playing the hmp file like that and perhaps its correct.

No idea if anyone can help me with this since this is really specific territory. I uploaded the renders for comparison together with both the original mid and hmp files. Would be interesting to know if the hmp playback with foo_midi is actually the accurate one and the fan conversion midis not but hard to tell for me.

The upload comes with the original hmp, a midi conversion sourced from mirsoft and mp3 renders of both done through foo_midi with the exact same settings played through the Roland Sound Canvas VST and SC-55 mapping. Notice the speed/pitch difference between both and also the midi has a additional sample at 1:07 but its not present with the hmp render at 1:03.

Download: https://www.mediafire.com/file/bqdaqmjbwh3pt1d/Descent_II_foo_midi_HMP_vs_MIDI.7z/file

Re: foo_midi (foobar2000 v2.0)

Reply #280
Try using the flavor option in foo_midi itself instead of the configuration in the VSTi, and set it to the unit you want to emulate, GS SC-55, GS SC-88Pro, etc. It responds to that in my experience.

That actually seems to have done it! I tried comparing some midi recordings between foobar and fl studio now and they look almost identical.

However, I am unsure about the Descent and Descent II exports. The thing is, I compared them to other peoples hardware SC-55 exports and they are different. The playback speed is actually different and I tracked it down to them being based on some hmp to midi conversions but I am not sure if these are accurate or faulty and dont mimic the sound of the real original hmp composition. I even noticed a few additional samples that do not play with the hmp file but now I have no idea if this is due to foo_midi not playing the hmp format properly or if the midi conversions made by other people are faulty.

However, I did rule out the VST plugin as the reason. I also played it with with libADLmidi and descent 2 bank and the speed was the same. So it is foo_midi who is playing the hmp file like that and perhaps its correct.

No idea if anyone can help me with this since this is really specific territory. I uploaded the renders for comparison together with both the original mid and hmp files. Would be interesting to know if the hmp playback with foo_midi is actually the accurate one and the fan conversion midis not but hard to tell for me.

The upload comes with the original hmp, a midi conversion sourced from mirsoft and mp3 renders of both done through foo_midi with the exact same settings played through the Roland Sound Canvas VST and SC-55 mapping. Notice the speed/pitch difference between both and also the midi has a additional sample at 1:07 but its not present with the hmp render at 1:03.

Download: https://www.mediafire.com/file/bqdaqmjbwh3pt1d/Descent_II_foo_midi_HMP_vs_MIDI.7z/file
I'll have a look. The HMP conversion code is fairly simple. Maybe the conversion of the variable length values is of.

Just to be clear: is the HMP file the original?

Re: foo_midi (foobar2000 v2.0)

Reply #281
Try using the flavor option in foo_midi itself instead of the configuration in the VSTi, and set it to the unit you want to emulate, GS SC-55, GS SC-88Pro, etc. It responds to that in my experience.

That actually seems to have done it! I tried comparing some midi recordings between foobar and fl studio now and they look almost identical.

However, I am unsure about the Descent and Descent II exports. The thing is, I compared them to other peoples hardware SC-55 exports and they are different. The playback speed is actually different and I tracked it down to them being based on some hmp to midi conversions but I am not sure if these are accurate or faulty and dont mimic the sound of the real original hmp composition. I even noticed a few additional samples that do not play with the hmp file but now I have no idea if this is due to foo_midi not playing the hmp format properly or if the midi conversions made by other people are faulty.

However, I did rule out the VST plugin as the reason. I also played it with with libADLmidi and descent 2 bank and the speed was the same. So it is foo_midi who is playing the hmp file like that and perhaps its correct.

No idea if anyone can help me with this since this is really specific territory. I uploaded the renders for comparison together with both the original mid and hmp files. Would be interesting to know if the hmp playback with foo_midi is actually the accurate one and the fan conversion midis not but hard to tell for me.

The upload comes with the original hmp, a midi conversion sourced from mirsoft and mp3 renders of both done through foo_midi with the exact same settings played through the Roland Sound Canvas VST and SC-55 mapping. Notice the speed/pitch difference between both and also the midi has a additional sample at 1:07 but its not present with the hmp render at 1:03.

Download: https://www.mediafire.com/file/bqdaqmjbwh3pt1d/Descent_II_foo_midi_HMP_vs_MIDI.7z/file
I'll have a look. The HMP conversion code is fairly simple. Maybe the conversion of the variable length values is of.

Just to be clear: is the HMP file the original?
Some HMP dialects specify the playback speed. foo_midi uses 160 BPM unless the file contains metadata that specifies a different master tempo.

You can tweak the tempo on the Processing sub page in the Preferences dialog.

Re: foo_midi (foobar2000 v2.0)

Reply #282
Just to be clear: is the HMP file the original?
Im fairly sure it is.

Some HMP dialects specify the playback speed. foo_midi uses 160 BPM unless the file contains metadata that specifies a different master tempo.

You can tweak the tempo on the Processing sub page in the Preferences dialog.

Hm. Does this mean these hmp midis do not contain any specific bpm value in the metadata which results in them playing at the default 160 which might be unintended and too fast? Wonder if the game code specifies this...


Actually I think I now know whats the problem. https://www.reddit.com/r/descent/comments/1fonvil/midi_differences_between_d1xrebirth_and_msdos_port/
Seems indeed like the game specifies a playback speed and adds a additional external sample bank.

Re: foo_midi (foobar2000 v2.0)

Reply #283
v2.16.0.0, 2025-02-24

* New: Support for XMF (Extensible Music Format) and MXMF (Mobile Extensible Music Format) files.
* New: Metadata XMF_META_FILE_VERSION, XMF_FILE_TYPE and XMF_FILE_TYPE_REVISION.
* Fixed: VSTi plugins did not load or save their configuration anymore (regression).
* Fixed: VSTi plugins did not always show the correct name in the Preferences dialog (regression).

Download from GitHub or the foobar2000 Components repository.
Automatic update from within foobar2000 does not work.

Re: foo_midi (foobar2000 v2.0)

Reply #284
hey @pqyt thx for another update. :D

Re: foo_midi (foobar2000 v2.0)

Reply #285
It has come to my attention that the x86 build is unable to play XMF/MXMF files if they contain an embedded DLS SoundFont. This a known limitation of the x86 build of FluidSynth (currently 2.4.3). Hopefully this will be fixed in later version of FluidSynth.


Re: foo_midi (foobar2000 v2.0)

Reply #287
v2.16.1.0-alpha1, 2025-03-08

* Improved: Support for XMF/MXMF files with raw deflated content.
* Improved: Tweaked the handling of embedded sound fonts for BASS MIDI again.
  * The Official SF2 RMIDI Specification example files seem to work now.

Download only available from GitHub during testing.

Re: foo_midi (foobar2000 v2.0)

Reply #288
v2.16.1.0-alpha2, 2025-03-12

* Fixed: A pending SysEx message would get skipped when the next event used the running status.
* Fixed: More Multi Port MIDI files play correctly now.
  * The first MIDI Port message of a track is now added at the start of a track to make sure it occurs before any Program Change events.

Download only available from GitHub during testing.

Re: foo_midi (foobar2000 v2.0)

Reply #289
v2.16.1.0-alpha2, 2025-03-12

* Fixed: A pending SysEx message would get skipped when the next event used the running status.
* Fixed: More Multi Port MIDI files play correctly now.
  * The first MIDI Port message of a track is now added at the start of a track to make sure it occurs before any Program Change events.

Download only available from GitHub during testing.

The two latest versions cannot open this file


 

Re: foo_midi (foobar2000 v2.0)

Reply #290
v2.16.1.0-alpha2, 2025-03-12

* Fixed: A pending SysEx message would get skipped when the next event used the running status.
* Fixed: More Multi Port MIDI files play correctly now.
  * The first MIDI Port message of a track is now added at the start of a track to make sure it occurs before any Program Change events.

Download only available from GitHub during testing.
The two latest versions cannot open this file
It opens and plays just fine. Which error message do you get? Are there any messages in the fb2k console?

Re: foo_midi (foobar2000 v2.0)

Reply #291
Quote
It opens and plays just fine. Which error message do you get? Are there any messages in the fb2k console?
It's really strange.
The mid file in the attachment I sent is named:
至少还有你 - pai31415926.mid
in my file directory.
When using this file name,
the new version of foo_midi plugin will report an error:
Opening track for playback: "D:\music\MIDI\至少还有你 - pai31415926.mid"
Unable to open item for playback (

If i change to another file name,
such as 01.mid used in my attachment,
it can be played normally.
This has never happened in the old version two versions ago.

This text is translated by Google.
Please forgive me if there are any unclear expressions.

Re: foo_midi (foobar2000 v2.0)

Reply #292
Quote
It opens and plays just fine. Which error message do you get? Are there any messages in the fb2k console?
It's really strange.
The mid file in the attachment I sent is named:
至少还有你 - pai31415926.mid
in my file directory.
When using this file name,
the new version of foo_midi plugin will report an error:
Opening track for playback: "D:\music\MIDI\至少还有你 - pai31415926.mid"
Unable to open item for playback (

If i change to another file name,
such as 01.mid used in my attachment,
it can be played normally.
This has never happened in the old version two versions ago.

This text is translated by Google.
Please forgive me if there are any unclear expressions.
Probably due to the Unicode file name containing Chinese/Japanese(?) glyphs even though nothing was changed in that area of the code.

Can you please attach the file that causes a problem? I'll see if I can replicate the issue.

Re: foo_midi (foobar2000 v2.0)

Reply #293
Quote
Probably due to the Unicode file name containing Chinese/Japanese(?) glyphs even though nothing was changed in that area of the code.

Can you please attach the file that causes a problem? I'll see if I can replicate the issue.

This file is the same as the 01.mid file I sent last time.
The only difference is the file name.

Re: foo_midi (foobar2000 v2.0)

Reply #294
I unzipped the file, added it to foobar2000 and it played without problem. I'm afraid I can't help you if I can't replicate the problem.

Re: foo_midi (foobar2000 v2.0)

Reply #295
 I test that midi player is installable on v1.6.x and crash when adding midi file to playlist. Its not that I use v1.6.x as I'm on latest v2.24.3. I just want to inform that :)

Re: foo_midi (foobar2000 v2.0)

Reply #296
the new version of foo_midi plugin will report an error:
Opening track for playback: "D:\music\MIDI\至少还有你 - pai31415926.mid"
Unable to open item for playback (
Perhaps it would help to see the full error message. Or are you saying the error message ends here? There should be an explanation about why the file can't be opened inside the parenthesis.

I hope pgyt uses foobar2000 I/O to open and read the files regardless of chosen midi player or other settings. Bypassing the player I/O prevents all fancy features like transparent archive support and network access from working.

Re: foo_midi (foobar2000 v2.0)

Reply #297
I hope pgyt uses foobar2000 I/O to open and read the files regardless of chosen midi player or other settings. Bypassing the player I/O prevents all fancy features like transparent archive support and network access from working.
It still uses kode54's original code: file->read_object()

Re: foo_midi (foobar2000 v2.0)

Reply #298
v2.16.1.0-alpha4, 2025-03-15

* Improved: The RIFF IPRD chunk will also be used to add an Album tag in case an IALB chunk is not found.
* New: Metadata MIDI_EMBEDDED_SOUNDFONT: Contains "SF x.x" (where x.x is the version number of the SoundFont specification) or "DLS" if the MIDI file contains an embedded soundfont.
* Improved: FluidSynth player understands Polyphonic Key Pressure (Aftertouch) now.
* Changed: Increased the gain of the FluidSynth player.

Download only available from GitHub during testing.

Re: foo_midi (foobar2000 v2.0)

Reply #299
Quote
v2.16.1.0-alpha4, 2025-03-15

This beta version still cannot play some files with CJK characters in the file name properly,
but the v2.16.0.0 version can work normally.