OPL3 GM emulator VSTi
is a portable VST 2.4 instrument/software MIDI synthesizer for Windows that is based on DosBox OPL 2/3 and Nuked OPL3 emulator libraries.
It is developed for my Soundfont Midi Player to integrate OPL3 support.
Opl3emu4v.dll has to be copied to the same (VST) directory as OPL3Vsti.dll.
Supported feature set is essentially conforms the GM Lite specification (+ GM Master Volume).
The x86 version of OPL3Vsti works even on Win9x.
The source of the open source Opl3emu4v library can be downloaded from Github:
https://github.com/Falcosoft/OPLl3emu4v
Notice:
Since OPL3 internally uses 49716 Hz it is recommended to use this sample rate. Soundfont Midi Player from version 4.5 explicitly supports it.
Since this sample rate is not widely supported by other hosts other sample rates are also supported but with potentially reduced quality.
Tested Hosts:
version 1.0
Initial release.
version 1.1
1. Added opl3emu_getpatch() to opl3emu4v.dll. It can be used to get the patchnum for a given channel.
2. Added midiProgramNames implemetation to OPL3Vsti.dll using opl3emu_getpatch().
version 1.2
1. Integrated Nuked OPL3 library as an alternative emulator core. You can switch between DosBox and Nuked OPL3 in real time.
Nuked OPL3 can be more precise but it requires more CPU. DosBox's engine is less CPU hungry especially in idle state.
2. Fixed Pitch Bend sensitivity problems in case of files that send NRPN (0,0) messages.
version 1.3
1. Added instrument customization option.
You have to use SBI (Sound Blaster Instrument) format.
http://www.shikadi.net/moddingwiki/SBI_Format
Fortunately OPL3 FM Bank Editor saves instruments in this format.
http://www.vogons.org/viewtopic.php?f=9&t=48513
You have to place the sbi instruments in the plugin's folder and name it by a special scheme.
The name has to contain: BankXXX where XXX is the 3 digit index of the Patch Bank you would like to customize (currently 0: Fat Man, 1: Maui, 2: FMSynth).
The name also has to contain: PatchYYY where YYY is the 3 digit index of the Patch/Program inside the choosen Bank you would like to replace/customize.(0 -127 standard instruments, 128 -255 drums)
The drums are standard instruments in the sense that they do not use percussion mode of OPL3. The first used drum (note 35) starts at index 163.
Example instruments can be found in the plugin's folder. The extensions have to be renamed from sb_ to sbi in order to activate them.
version 2.0
1. Added Dual Synth mode. If this mode is activated then 2 OPL3 synth instances are initialized to double maximum voice polyphony. This is achieved by channel interleaving meaning even Midi channels are played by the 1st synth and odd Midi channels are played by the 2nd synth.
2. Added bank customization option. So besides the earlier introduced single SBI instruments now full IBK banks containing 128 instruments are also supported.
http://www.shikadi.net/moddingwiki/IBK_Format. OPL3 FM Bank Editor supports this bank format.
A new selectable bank is added to user interface called 'Custom ibk files'. This bank always uses the 2 IBK format files that are placed next to the plugin and named to 'Custom_Instruments.ibk' and 'Custom_Drums.ibk'. There are 2 example banks included in the package as starting point.
Notice that the drum bank does not use percussion mode of OPL3 either so you have to place the percussion instruments in the melodic pool at the position the drum note refers to. Namely place bass drum at position 35 since note 35 on channel 10 refers to bass drum.
version 2.1
1. Since I have added deltaFrames support to Bass_VST from now on the plugin also support it. This means improved Midi timing accuracy.
2. Added maximum voice polyphony to display. It's reset when the synth is reset either by pressing Reset on the interface or when GM/GS reset is sent.
3. When used with Soundfont Midi Player 6.1+ the main display background and font color are synchronized with the player.
4. Fixed misssing active channel indicator dots in case of non-latin language/locale settings of Windows.
5.. Fixed sample rate dependent CC# 1 (vibrato/modulation) frequency problem.
version 2.2
Added GS/XG/GM2 style multiple drum channel support.
The easiest way to set additional drum channels manually is either sending XG Reset and setting Bank MSB to 127 or sending GM2 Reset and setting Bank MSB to 120 on any channels.
I'm aware that full GS/XG/GM2 support is not a realistic option for such a plugin like this but playing melodic instruments where drums are expected is the most disturbing aspect of GM only support.
version 2.2.1
Minor fixes and optimizations.
If you would like to support the development of OPL3 GM VSTi you can donate through PayPal.
OPL3 GM VSTi by Zoltán Bacskó (Falcosoft) is licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Have fun.
Zoltán Bacskó (Falco)
zbacsko@falcosoft.hu