Skip to content

Instantly share code, notes, and snippets.

@jpcima
Created February 22, 2019 23:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpcima/4c0b8ea58d463adb95eaed0031c1583d to your computer and use it in GitHub Desktop.
Save jpcima/4c0b8ea58d463adb95eaed0031c1583d to your computer and use it in GitHub Desktop.
OPNMIDI.txt
------------------------------------------------------------
Title:
------------------------------------------------------------
OPNMIDI Player
------------------------------------------------------------
Short description:
------------------------------------------------------------
A simple OPN2 and OPNA Synth based MIDI Player with use of libOPNMIDI
------------------------------------------------------------
Full description:
------------------------------------------------------------
It's a small and simple MIDI player with OPN2 (Yamaha YM2612) or OPNA (YM2608) FM synthesis. The player can play any MIDI, MUS, or XMI file you will have on your device. Player has General-MIDI and Semi-XG compatible bank timbre bank made from imported instruments from various Sega Megadrive/Genesis games, ported from OPL3, or originally made. Optionally you can use external timbre bank file in WOPN to get the different sounding of your music.
# Key features of the libOPNMIDI synthesizer:
* OPN2 emulation
* Customizable bank of FM patches (You have to use the bank editor (https://github.com/Wohlstand/OPN2BankEditor) to create own soundbank)
* Stereo sound
* Number of simulated OPN2 chips can be specified as 1-100 (maximum channels 600!)
* Pan (binary panning, i.e. left/right side on/off)
* Pitch-bender with adjustable range
* Vibrato that responds to RPN/NRPN parameters
* Sustain (a.k.a. Pedal hold) and Sostenuto enable/disable
* MIDI and RMI file support
* Real-Time MIDI API support
* MIDI and RMI file support
* loopStart / loopEnd tag support (Final Fantasy VII)
* 111'th controller based loop start (RPG-Maker)
* Use automatic arpeggio with chords to relieve channel pressure
* Support for multiple concurrent MIDI synthesizers (per-track device/port select FF 09 message), can be used to overcome 16 channel limit
* Partial support for GS and XG standards (having more instruments than in one 128:128 GM set and ability to use multiple channels for percussion purposes, and support for some GS/XG exclusive controllers)
* CC74 "Brightness" affects a modulator scale (to simulate frequency cut-off on WT synths)
* Portamento support (CC5, CC37, and CC65)
* SysEx support that supports some generic, GS, and XG features
* Full-panning stereo option (works for emulators only)
# Links
* The source code of player: https://github.com/Wohlstand/OPNMIDI-Player-Java
* The source code of libOPNMIDI: https://github.com/Wohlstand/libOPNMIDI
* The OPN2 bank editor which allows you to create or modify WOPL timbre bank files: https://github.com/Wohlstand/OPN2BankEditor/
=== FR ===
------------------------------------------------------------
Title:
------------------------------------------------------------
Lecteur OPNMIDI
------------------------------------------------------------
Short description:
------------------------------------------------------------
Un lecteur MIDI simple basé sur un synthétiseur OPN2 et OPNA utilisant libOPNMIDI
------------------------------------------------------------
Full description:
------------------------------------------------------------
Ceci est un lecteur MIDI simple et léger basé sur la synthèse FM de l'OPN2 (Yamaha YM2612) ou l'OPNA (YM2608). Le lecteur peut jouer tout fichier MIDI, MUS ou XMI dont vous disposez sur votre appareil.
Le lecteur a une banque de timbres compatible avec General-MIDI et en partie avec XG, construite a partir d'instruments importés de divers jeux Sega Megadrive/Genesis, portés depuis OPL3, ou bien faits maison.
Vous avez la possibilité d'utiliser votre propre banque de timbres au format WOPN afin de donner de nouvelles sonorités de votre musique.
# Fonctionnalités clé du synthétiseur libOPNMIDI :
* Émulation de l'OPN2
* Banque personnalisable de patches FM (utilisez l'éditeur (https://github.com/Wohlstand/OPN2BankEditor) afin de créer votre propre banque)
* Son stéréo
* Nombre de circuits OPN2 simulés au choix entre 1 et 100 (600 canaux maximum !)
* Panoramique (binaire, soit canal gauche/droit actif/inactif)
* Modulation de ton à hauteur ajustable
* Vibrato répondant aux paramètres RPN/NRPN
* Maintien (alias Pédale sustain) et Sostenuto
* Gestion des fichiers MIDI et RMI
* Gestion d'une API MIDI en temps réel
* Gestion du marqueur débutBoucle / finBoucle (Final Fantasy VII)
* Début de boucle basé sur le contrôleur 111 (RPG-Maker)
* Utilisation automatique d'arpège pour les accords, afin de réduire la pression sur les canaux
* Gestion des synthétiseurs MIDI multiples en travail simultané, (message FF 09 sélectionnant le port/appareil de la piste), permettant de dépasser la limite de 16 canaux
* Support partiel des standards GS et XG (davantage d'instrument que l'ensemble GM 128:128, possibilité d'avoir plusieurs canaux percussifs, et gestion de certains contrôleurs GS/XG exclusifs)
* Le CC74 "Brillance" affecte le niveau des modulateurs (simule la coupure en fréquence des synthés Wave Table)
* Gestion du portamento (CC5, CC37, and CC65)
* Gestion en SysEx de quelques fonctionnalités génériques, GS, et XG
* Option panoramique stéréo étendue (fonctionne uniquement avec les émulateurs)
# Liens
* Code source du lecteur : https://github.com/Wohlstand/OPNMIDI-Player-Java
* Code source de libOPNMIDI : https://github.com/Wohlstand/libOPNMIDI
* L'éditeur de banques OPN2 permettant de créer ou modifier des banques de timbres WOPL : https://github.com/Wohlstand/OPN2BankEditor/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment