Пример #1
0
        public void mk_ext(int i)           //連符の作成
        {
            if (extend == 1 || length % extend != 0 || length <= gWork.LimitExCounter)
            {
                extend = 1; return;
            }                                  //連符なしならリターン

            int ln = length / extend;
            int y;

            int[] n = new int[DEF.MAXEXTEND], o = new int[DEF.MAXEXTEND], l = new int[DEF.MAXEXTEND];
            n[0] = note; o[0] = octave; l[0] = ln;
            for (y = 1; y < extend; y++)                //あらかじめ連符の内容を作っておく
            {
                m98.newrnte(ref n[y], ref o[y], i);
                if (m98.nao2key(n[y], o[y]) == m98.nao2key(n[y - 1], o[y - 1]))
                {                //もし前と同じkeyだったら
                    l[y - 1] += ln;
                    extend--;
                    y--;
                }
                else
                {
                    l[y] = ln;
                }
            }

            length = l[0];
            TONE p, q;

            p      = new TONE(flag.OFF, m98);
            extadr = p;
            for (y = 1; y < extend; y++)
            {
                q = new TONE(flag.OFF, m98);

                p.note   = n[y];
                p.octave = o[y];
                p.length = l[y];
                if (p.qtz > 0 && p.qtz < 192)
                {
                    p.qtz = qtz / extend;
                }
                else
                {
                    p.qtz = qtz;
                }
                p.volume = volume;
                p.voice  = voice;
                p.ptm    = 0;
                p.tie    = 0;
                p.macro  = 0;
                p.pan    = pan;
                p.clock  = clock;
                p.ksift  = ksift;
                p.extend = 1;
                p.extadr = q;
                p        = q;
            }
        }
Пример #2
0
 public void Copy(TONE tONE)
 {
     note   = tONE.getnte();
     qtz    = tONE.getqtz();
     length = tONE.getlen();
     octave = tONE.getoct();
     volume = tONE.getvol();
     voice  = tONE.getvoi();
     tie    = tONE.gettie();
     ptm    = tONE.getptm();
     macro  = tONE.getmac();
     pan[0] = tONE.getpan(0);
     pan[1] = tONE.getpan(1);
     ksift  = tONE.getkst();
     clock  = tONE.getclk();
     extend = tONE.getext();
 }