Comments (12)
Oh, I see. But OPL1 is 100% compatible with later OPL2 and OPL3, so you can kinda say it is OPL2 format as well 😄
But yeah, I don't understand why it support only OPL1 waveforms while it was meant for PCs with Adlibs or SoundBlasters... there were even commercial games which used this driver...
from opn2bankeditor.
which text format do you have in mind? It looks like for OPNA the MML format as used in PMD98 is a kind of standard, you can see some example in the last paragraph of this tutorial:
https://www.delmunsoft.com/PMD%20Programming.html
from opn2bankeditor.
There exist a multitude of formats, not mutually compatible.
The idea is from BambooTracker which list a number of distinct formats, and it's a choice in the configuration.
They are listed starting here:
https://github.com/rerrahkr/BambooTracker/blob/c91dfbe5b4a7bb1da11f69f5c00f8019a1f957d4/BambooTracker/configuration.cpp#L65
It will extract a series of numbers from input text, and will assign according to definitions.
A problem is that when instruments contain names with embedded numbers, this extractor will be confused. So we could make a similar thing, except more strict, such that it's more compatible with current files.
from opn2bankeditor.
To make sure all software able to store all data (include unique features of each thing: OPL3-BE or BambooTracker), this needs to have the TAGGED format that is able to store any alien data are can be taken back with no losses, and let other software use possible for that data.
from opn2bankeditor.
I'm a little confused by what you mean, do you mean we should have our custom text format ?
For established formats, it's not recommandable that we add some things which are out of their spec.
from opn2bankeditor.
@farvardin also, since this work has a chance to be shared with OPL-BE, are you aware of any text formats which are used with the OPL? (I don't know any)
from opn2bankeditor.
@jpcima there is one - PMD for IBM PC OPL2: https://github.com/NoyemiK/PMD-for-IBM
from opn2bankeditor.
@Papiezak I've tried to fiddle around with this tool and I discovered it's not supposed to work with OPL2 or OPL3 chips, only OPL(1): https://github.com/NoyemiK/PMD-for-IBM/issues/1
So I don't know any other textual format for OPL2 or OPL3. Probably MML is more suitable for OPN chips.
from opn2bankeditor.
I don't think it's a good idea to use these formats like this which supports OPL1 only for copy-paste. When speak about OPL3-BE, OPN2-BE, BambooTracker, and something also which is open source: we are really can produce own textual format which will be tagged and will contain all necessary data which will be handled by all software and every software thing will be able to store own exclusive values with no loss when copying data for using with self, and the compatibility for copying between different programs. The format would be like:
D: xxxxx=y; xxxxx=y; xxx=y; xx=y; xxxx=yyy; ....
OP1: XX=YY; XX=YY; XX=YY;....
OP2: XX=YY; XX=YY; XX=YY;....
OP3: XX=YY; XX=YY; XX=YY;....
OP4: XX=YY; XX=YY; XX=YY;....
Where D - common setup, where OPx - setup for each operator (OR raw registers, OR each OPLx related parameter like attack, decay, release, sustain, volume, AM/FM mode, etc...). The format should be tagged to guarantee full backward compatibility between any versions and any software that using this format: any unknown fields will be just ignored, any missing fields will just be set with a default value, etc.
from opn2bankeditor.
There are already some established specifications, It's important that we use them.
To add our own specification is a possibility, I think of it as secondary.
A generic way how to establish this, it's to put together a kind of meta-grammar to construct custom format specifications, somewhat like BT does.
For an imaginary example
%(name)
OP1: %(TL) %(AR) %(DR) %(SL) %(RR) ...
OP2: ...
And it permits to work in both directions, loading and saving.
from opn2bankeditor.
Also, I'm having a problem with variation of FMP and PMD - they aren't even regocnized by editor:
FMP:
'@ 0 ; name
'@ 31, 0, 0, 7, 0, 32, 0, 0, 0
'@ 31, 0, 0, 7, 0, 0, 0, 0, 0
'@ 31, 0, 0, 7, 0, 32, 0, 0, 0
'@ 31, 0, 0, 7, 0, 0, 0, 0, 0
'@ 4, 0
PMD:
@ 0 4 0 =name
31 0 0 7 0 32 0 0 0 0 0
31 0 0 7 0 0 0 0 0 0 0
31 0 0 7 0 32 0 0 0 0 0
31 0 0 7 0 0 0 0 0 0 0
from opn2bankeditor.
Closing as abandoned. If something still need to debug/improve, please re-open.
from opn2bankeditor.
Related Issues (20)
- Link for 64-bit Windows dev build is broken HOT 3
- [Feature Request]Option to show detune values as unsigned (0-7ε) HOT 4
- [Bug]Instrument list keeps jumping to GM1 Melodic bank after changing LSB HOT 10
- Add PCM sampling instrument HOT 2
- support importing OPL musical instruments HOT 4
- The same crash problem as OPL3-BE HOT 4
- Feature request: ability to detune an instrument by n cents
- Allow detuning percussion instruments by n cents HOT 1
- Options for VGM importer HOT 1
- Build error on delay_analysis.cpp HOT 5
- Instrument importer cannot import multiple files HOT 1
- Gyb checksum formula HOT 7
- Definitions of banks for XG and other standards HOT 13
- Support for other instrument formats part 2 HOT 23
- Bug when importing instrument with no item selected on a main window list HOT 2
- update GYB file format specification HOT 10
- cmdline utilites? HOT 3
- VGM importer glitchy behaviour HOT 12
- Rework layout for smaller screens HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opn2bankeditor.