## 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 and it relies on some peculiarities of Bass_VST library.

(Bass_VST does not use the deltaFrames member of VstMidiEvent struct.)

So under other hosts timing problems can occur with bigger buffers.

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.

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:

- Soundfont Midi Player
- SAVIHost
- VSTHost
- Reaper
- Cubase

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.

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)

http://falcosoft.hu/

zbacsko@falcosoft.hu