/// <summary> /// 指定した位置に,指定した量の空白を挿入します /// </summary> /// <param name="clock_start">空白を挿入する位置</param> /// <param name="clock_amount">挿入する空白の量</param> public void insertBlank(int clock_start, int clock_amount) { // イベントをシフト for (Iterator <VsqEvent> itr = getEventIterator(); itr.hasNext();) { VsqEvent item = itr.next(); if (item.ID.type == VsqIDType.Singer && item.Clock <= 0) { continue; } if (clock_start <= item.Clock) { item.Clock += clock_amount; } } // コントロールカーブをシフト foreach (string name in CURVES) { VsqBPList list = getCurve(name); if (list == null) { continue; } // 後ろからシフトしないといけない int size = list.size(); for (int i = size - 1; i >= 0; i--) { int clock = list.getKeyClock(i); if (clock_start <= clock) { int value = list.getElementA(i); list.move(clock, clock + clock_amount, value); } } } }