示例#1
0
        public TownsPC98_FmSynthOperator(uint timerbase, uint rtt,
                                         byte[] rateTable, byte[] shiftTable, byte[] attackDecayTable,
                                         uint[] frqTable, uint[] sineTable, int[] tlevelOut, int[][] detuneTable)
        {
            _rtt        = rtt;
            _rateTbl    = rateTable;
            _rshiftTbl  = shiftTable;
            _adTbl      = attackDecayTable;
            _fTbl       = frqTable;
            _sinTbl     = sineTable;
            _tLvlTbl    = tlevelOut;
            _detnTbl    = detuneTable;
            _tickLength = timerbase * 2;


            _state        = EnvelopeState.Ready;
            _currentLevel = 1023;

            fs_a      = new EvpState();
            fs_d      = new EvpState();
            fs_r      = new EvpState();
            fs_s      = new EvpState();
            fs_a.rate = fs_a.shift = fs_d.rate = fs_d.shift = fs_s.rate = fs_s.shift = fs_r.rate = fs_r.shift = 0;

            Reset();
        }
        public TownsPC98_FmSynthOperator(uint timerbase, uint rtt,
                                         byte[] rateTable, byte[] shiftTable, byte[] attackDecayTable,
                                         uint[] frqTable, uint[] sineTable, int[] tlevelOut, int[][] detuneTable)
        {
            _rtt = rtt;
            _rateTbl = rateTable;
            _rshiftTbl = shiftTable;
            _adTbl = attackDecayTable;
            _fTbl = frqTable;
            _sinTbl = sineTable;
            _tLvlTbl = tlevelOut;
            _detnTbl = detuneTable;
            _tickLength = timerbase * 2;

        
            _state = EnvelopeState.Ready;
            _currentLevel = 1023;

            fs_a = new EvpState();
            fs_d = new EvpState();
            fs_r = new EvpState();
            fs_s = new EvpState();
            fs_a.rate = fs_a.shift = fs_d.rate = fs_d.shift = fs_s.rate = fs_s.shift = fs_r.rate = fs_r.shift = 0;

            Reset();
        }