Re: OPL3 C++ research implementation

Posted:
Sun Mar 02, 2014 9:46 pm
by sto
I have rewritten most parts of the OPL analysis document; the things from the middle of page 7 to the end are still work in progress. Hopefully, it isn't intriguing that much anymore:
http://earvillage.square7.ch/opl3math.pdfIf you have time, please take a look at it and say what you think (don't be shy, it takes much effort until I feel offended

).
Thanks in advance,
Sto
Re: OPL3 C++ research implementation

Posted:
Thu Oct 30, 2014 5:34 am
by sto
Me again, this time about decay/release: I have the strong suspicion that the "instant attack" statement for AR=15 also holds for decay and release phases, i.e. a DR=15 instantly sets the envelope value to the sustain level and a RR=15 immediately sets the envelope value to full silence. Can somebody confirm or disprove this?
Re: OPL3 C++ research implementation

Posted:
Thu Oct 30, 2014 9:39 am
by carbon14
It's a long time since I looked at this, but I went through the topic on Envelopes and I don't believe that your suspicion is correct.
http://forums.submarine.org.uk/phpBB/viewtopic.php?f=9&t=16&start=20#p1610When you take into account the key rate scaling, the data tables for the OPL-4 show a non-zero time for the delay and release phases. I can't find anywhere where I have explicitly written that I have experimentally proven this, and I don't have my logbook handy to check my original data. But the code fragment that I proposed for the envelope certainly does not appear to have an instantaneous drop.
Re: OPL3 C++ research implementation

Posted:
Thu Oct 30, 2014 2:15 pm
by sto
I had another look at the MSX timings table, and it seems that in the decay/release phases the envelope counter increment is always 4<<15 for DR/RR=15 (indepented of block or frequency), i.e. the time for doing a full release from 0 to 511 is always 127 (or 128?) samples for this rate.