OPL3 C++ research implementation

An investigation into the behaviour of the Yamaha OPL3 chipset.
With a view to a more accurate emulator

Re: OPL3 C++ research implementation

Postby sto » Sun Mar 02, 2014 9:46 pm

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.pdf

If 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 :D ).

Thanks in advance,
Sto
sto
 
Posts: 60
Joined: Thu Nov 08, 2012 4:33 am

Re: OPL3 C++ research implementation

Postby sto » Thu Oct 30, 2014 5:34 am

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?
sto
 
Posts: 60
Joined: Thu Nov 08, 2012 4:33 am

Re: OPL3 C++ research implementation

Postby carbon14 » Thu Oct 30, 2014 9:39 am

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#p1610

When 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.
User avatar
carbon14
 
Posts: 124
Joined: Tue Aug 05, 2008 9:11 am
Location: York, England

Re: OPL3 C++ research implementation

Postby sto » Thu Oct 30, 2014 2:15 pm

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.
sto
 
Posts: 60
Joined: Thu Nov 08, 2012 4:33 am

Previous

Return to Yamaha OPL-3 research

Who is online

Users browsing this forum: No registered users and 6 guests

cron