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; } }
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(); }