First post, by Galova
Is there an OPL2/3 chip emulation in DosBox?
OPL chip was found on any of the old soundcards and utilized FM synthesis.
Is there an OPL2/3 chip emulation in DosBox?
OPL chip was found on any of the old soundcards and utilized FM synthesis.
Yes. There's even a setting that lets you choose which one to emulate:
- none
- OPL2 (Adlib/SB)
- dual OPL2 (SB Pro)
- OPL3 (SB16)
- auto (let DOSBox decide)
I think DOSBox uses MAME's OPL emulation code.
Well... if so then it must be possible to get OPL chip settings for its internal General Midi interface from developers? I mean bank settings (FM operator settings for intruments) to emulate it with some software synth like NI FM7. I've been looking for such information for a very long time.
I've suspected programmers must really know something about this.
Can anyone help me, please?
There is lots of info out there on OPL chips I think.
You should also know that there is no special support in the OPL chips for MIDI, since they weren't specifically designed to be MIDI synthesizers. Therefore, any software you see that plays MIDI music on an OPL chip is doing a lot of work in that software to translate between MIDI and OPL.
I'm not a programmer... Thus I'm not capable of using most of the public info found on the net. I know nothing about reverse engineering of drivers and anything like.
Of course I've been looking for some information about this translation you told, but really found nothing that would put some light on this matter.
Still can I get some help from developers of the DosBox?
I'm just a "cheep tune" composer....
When I mentioned info about "general midi" sounds that we all know from old soundcards like SoundBlaster I thought about oscillator type, amplitude envelope, osc order etc for each of those instruments. Software of hardware, it is most obviously known to such anvanced programmers that develop emulation software, 'cause as far as I know it must be vital info.
A lot of emulators that emulate OPL chips (including DOSBox) use code from the MAME project. You might want to try getting a hold of whoever wrote that code.
You might also want to look for info on .IBK/.BNK files, which a lot of games used to store instrument data that gets uploaded to OPL chips.
And what is MAME project?
It's an open-source project for emulating arcade machine hardware.
Thank you much.
I've posted a new querry to their forum
wrote:It's an open-source project for emulating arcade machine hardware.
Mame isn't open source, except for one version released under GPL. It does have source available, but that isn't what "open source" means.
I don't think it's quite as bad as you make it out to be:
http://mamedev.com/about.html
http://mamedev.com/license.html
I havent managed to get in contact with any sentient being withing MAME project. 😀 As I expected they "redirected" me somewhere else on Mars maybe. One guy said that I should watch inside ADplug gm patch set. Even if I told I'm not a programmer. I thougt it is quite easy just to tell me "attack set to 5, release set to 2, first waveform type absolute sine, parallel operators order. all makes electric piano in opl"
eeh...
I didn't know it is possible to make emulator being blind
As far as I understand (I am no authority there), making an Adlib emulator means not knowing the settings you search for. Those are provided by the games, not by the emulator. There are several file formats which are used to store these settings, and I guess that's what the MAME people tried to point you at: get one of these OPL2/3 sound bank settings and analyze the contents. Which probably means using the public info you tried to avoid. Sorry to say that, but I think that's unavoidable, unless you find a kind soul who translates such a sound bank into a human readable file.
I understand this of course. But where do I get info about HOW to translate this hexadecimal or just numeric mumble to a human language? They aren't eager to tell the secret of data format. Frankly speaking I din't find anything *public* regarding this thing.
What exactly do you need? I can tell you how to interpret the data, but what good will that do you? How are you going to use this data?
Also, the actual numbers are rather arbitrary. Game A may use an entirely different set of parameters for a "piano" than game X. Neither will sound very much like a real piano anyway.
My site: Ramblings on mostly tech stuff.
I'd like to build a patchset for VST synth for different purposes.
I was actually interested in GM patchset. I've got some file like GM.ibk
But cannot understand its contents
Its contents are raw data that is sent directly to the OPL chip, I think.
wrote:I don't think it's quite as bad as you make it out to be:
Interesting. They must have changed it recently. They used to have an obnoxious clause which basically said "you can distribute derived works, but we don't consider it a derived work if...." "Derived work" is a legal term and you can't redefine it and still be open source; otherwise you could just say "I define a derived work to be one for which you paid me a million dollars. See, you can still distribute derived works!"
But it's still nowhere near open source. Open source lets you sell the program. And the restriction on selling is pointless, since when you do sell it, the people you sell it to can give away copies for free, so nobody's ever going to sell it except as part of thousands of programs on a Linux CD, for instance. And open source can't restrict use ("nor may they be used in a commercial product or activity..") Open source licenses are supposed to grant rights, not take them away; use of a program you have a legitimate copy of is normally allowed. It's not clear whether restricting use this way is even possible by law.
I also found a source code for ADPlug that emulates OPL in Winamp.
It has a source file MIDIDATA.h which must be a liabrary for C compiler.
Well... it contains data as follows:
/* This set of GM instrument patches was provided by Jorrit Rouwe...
*/
{ 0x21, 0x21, 0x8f, 0x0c, 0xf2, 0xf2, 0x45, 0x76, 0x00, 0x00, 0x08, 0, 0, 0 }, /* Acoustic Grand */
{ 0x31, 0x21, 0x4b, 0x09, 0xf2, 0xf2, 0x54, 0x56, 0x00, 0x00, 0x08, 0, 0, 0 }, /* Bright Acoustic */
{ 0x31, 0x21, 0x49, 0x09, 0xf2, 0xf2, 0x55, 0x76, 0x00, 0x00, 0x08, 0, 0, 0 }, /* Electric Grand */
{ 0xb1, 0x61, 0x0e, 0x09, 0xf2, 0xf3, 0x3b, 0x0b, 0x00, 0x00, 0x06, 0, 0, 0 }, /* Honky-Tonk */
etc...
people at MAME project forum directed me to see inside this sourse code.
Though I cannot translate this data to understand theese numbers.
I've refered to Yamaha docs etc. but it didn't follow to anything. I guess it must be some trascription of what contains in the IBK files, but still FM Timbre prog that you told me about has numerical interface too... Without an actual OPL chip onboard I cannot even check which waveforms are those numbers, which operator order etc. And even if I had OPL I would never guess.
Heh. Also those IBK files I found are for OPL2 (2 operator) and even not dual OPL2 or OPL3.