diff options
| -rw-r--r-- | backends/midi/ym2612.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/backends/midi/ym2612.cpp b/backends/midi/ym2612.cpp index 1a128df8d1..0bb8e6ee33 100644 --- a/backends/midi/ym2612.cpp +++ b/backends/midi/ym2612.cpp @@ -280,25 +280,25 @@ void Operator2612::frequency(int freq) { } _attackTime = (int32) value; // 1 秒 == (1 << 12) - r = _specifiedDecayRate / _owner->_rate; + r = _specifiedDecayRate; if (r != 0) { r = r * 2 + (keyscaleTable[freq/262205] >> (3-_keyScale)); if (r >= 64) r = 63; } value = (double) powtbl[(r&3) << 7] * (0x10 << (r>>2)) / 31; - _decayRate = (int32) value; + _decayRate = (int32) value / _owner->_rate; - r = _specifiedSustainRate / _owner->_rate; + r = _specifiedSustainRate; if (r != 0) { r = r * 2 + (keyscaleTable[freq/262205] >> (3-_keyScale)); if (r >= 64) r = 63; } value = (double) powtbl[(r&3) << 7] * (0x10 << (r>>2)) / 31; - _sustainRate = (int32) value; + _sustainRate = (int32) value / _owner->_rate; - r = _specifiedReleaseRate / _owner->_rate; + r = _specifiedReleaseRate; if (r != 0) { r = r * 2 + 1; // このタイミングで良いのかわからん r = r * 2 + (keyscaleTable[freq/262205] >> (3-_keyScale)); @@ -307,7 +307,7 @@ void Operator2612::frequency(int freq) { r = 63; } value = (double) powtbl[(r&3) << 7] * (0x10 << (r>>2)) / 31; - _releaseRate = (int32) value; + _releaseRate = (int32) value / _owner->_rate; } int Operator2612::nextTick(uint16 rate, int phaseShift) { |
