https://github.com/jpcima/miniopl3
A simple mono-timbral OPL3 plugin
https://github.com/jpcima/miniopl3
Last synced: 8 months ago
JSON representation
A simple mono-timbral OPL3 plugin
- Host: GitHub
- URL: https://github.com/jpcima/miniopl3
- Owner: jpcima
- License: other
- Created: 2020-01-03T11:30:19.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-11T05:12:23.000Z (over 6 years ago)
- Last Synced: 2025-08-03T06:25:43.841Z (11 months ago)
- Language: C++
- Size: 163 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MiniOPL3
FM synthesizer with OPL3
## Description
This program is a music synthesizer based on emulation of one or more OPL3 chips.
This simplified instrument is mono-timbral, it supports one channel of MIDI playback.
It can be more adequate for devices which do not use a GUI editor (for example the Zynthian).
Instead, the chip registers are manipulated as parameters, and they can be collected to form independent presets.
Inside the tools directory, a program `bank2preset` is provided for converting WOPL banks to LV2 presets.
By default, just a small subset of banks is provided, because the documents can be quite heavy and slow down LV2 loading.
This is how to obtain more banks:
- create or convert some using the tool [OPL3 Bank Editor](https://github.com/Wohlstand/OPL3BankEditor);
- get some from an [existing collection](https://github.com/jpcima/ADLplug-embedded-banks/tree/master/opl3).
## Generating a preset bundle
A preset bundle in LV2 format is a directory of suffix `.lv2` containing 2 files.
- `manifests.ttl`, generated by option `-M `
- `presets.ttl`, generated by option `-L `
The bundle will be designated by a URI prefix of your choice, which you should terminate with the character `#`.
**Usage example:**
```
mkdir my-presets.lv2
bank2preset -M "http://example.com/my-presets#" my-presets.wopl > my-presets.lv2/manifest.ttl
bank2preset -L "http://example.com/my-presets#" my-presets.wopl > my-presets.lv2/presets.ttl
```