private void AddElement(BlockElement element) { element.TimeSignature = _timeSignature; element.Tempo = _piece.Tempo; if (_midiStrategy.OpenBlocks == 0) { _piece.AddElement(element, true); } else { try { BlockElement block = (BlockElement)_piece.Elements[_piece.Elements.Count - 1]; for (int i = 1; i < _midiStrategy.OpenBlocks; i++) { block = (BlockElement)block.Elements[block.Elements.Count - 1]; } block.AddElement(element, true); } catch (Exception) { } } _midiStrategy.OpenBlocks++; }
private void AddToPiece(Element element) { if (ConversionState == ConversionState.Normal) { Piece.AddElement(element, true); } else { var block = (BlockElement)Piece.Elements[Piece.Elements.Count - 1]; for (int i = 1; i < _midiStrategy.OpenBlocks; i++) { block = (BlockElement)block.Elements[block.Elements.Count - 1]; } block.AddElement(element, true); } }