Open Wohlstand opened 5 years ago
Hello,
we already bundle one FM Midi Synthesizer, it is simply called "Fmmidi" and is based on this: http://unhaut.x10host.com/fmmidi/
It is used as a fallback when no bank files are provided.
Thanks for listing alternative synthesizers, we will consider to integrate them as external dependencies someday.
I see, also I have just now tried it, and yeah, I wanna to convert it's program.h
into WOPN to try use it with libOPNMIDI, thanks! :fox_face: :+1:
Anyway yeah, the OPNA emulator that is used here is not so accurate (I may guess, it's some sort of PMDWin, I have found very familiar decay envelope trouble hearing), but will compare the result... libOPNMIDI is more complex library which is intended for good sounding and better MIDI support include GS and XG.
You can use pkgconfig to detect libADLMIDI or libOPNMIDI which are provided for use :wink:
Just now I have reminded that I have left this suggestion. Gonna make in the evening something myself...
This doesn't really have any priority for me but when the linked libraries support external sequencers they can be now easily added.
Maybe we should readd the "Good first issue" label to indicate stuff that is nice to have. 🤔
These libraries are support external sequencers by the Real-Time API. You need to simply pass your sequencer's events into rt_* calls for each type of event and use adl/opn_generateFormat() to retrieve output. Every library has an example of use in a form of VLC plugin where are RT calls used. The real-time api is very similar to that FluidSynth has. My libraries also having the SysEx support that tweaks GS and XG features like extra drum channels and bank change formats.
(Every library has the 'utils/vlc_plugin' folder with a C file. Also, keep in a mind that if output sound will look too silent, multiple every sample in a buffer with a gain factor to get sounding be louder)
I have found, you are using MIDI synths are requiring to use external bank files to work, otherwise, the music will be silent. It's a big con of SF2-based and WT synthesizers. I have a suggestion, why not to add some alternative MIDI synthesizer(s) for optional use are... using FM Synth emulation?
Myself I have two of them:
libADLMIDI (some info about)
It's the MIDI synthesizer library that does use of OPL3 synth emulation. This synthesizer can reproduce epoch of Windows 9x (bank-58 "The FatMan" is well-known GM bank used in Windows drivers for OPL2/3 chip) and various DOS games.
libOPNMIDI
It's my alternative MIDI synthesizer which does use of OPN2 or OPNA synth emulation. This synthesizer can provide the good sounding like Sega Megadrive or Janapese NEC PC98 computers.
.h
-compiled default bank to pass it into the library to get it working without using of external bank files. Custom bank files are in WOPN format. In my collection I have some banks are made by me and by other people.Both libraries
Here you can check out my demos of sounding: https://www.youtube.com/playlist?list=PLrUcHGBNRjJMJ_s71k2DtSscsQtqgmWut