private TreeNode buildVibrato(Vibrato vibrato, Note note, IBounds bounds)
        {
            var bounded = new StaticSingleBounded(new VibratoBounds(vibrato, note, bounds, info, new UnorderedDelegate()));
            var handler = new StaticEffectMouseHandler(bounded.Bounds, new UnorderedMouseDelegate());
            var drawing = new StaticDrawingVisual(new VibratoDrawingStrategy(vibrato, bounded.Bounds, info, new UnorderedDelegate()));

            return(new EffectTreeNode(vibrato, bounded, handler, drawing));
        }
        private TreeNode buildTie(Tie tie, Note note, IBounds bounds)
        {
            var bounded = new StaticSingleBounded(new TieBounds(tie, note, bounds, info, new UnorderedDelegate()));
            var handler = new StaticEffectMouseHandler(bounded.Bounds, new UnorderedMouseDelegate());
            var drawing = new StaticDrawingVisual(new TieDrawingStrategy(tie, bounded.Bounds, info, new UnorderedDelegate()));

            return(new EffectTreeNode(tie, bounded, handler, drawing));
        }
        private TreeNode buildPinchHarmonic(PinchHarmonic pinch_harmonic, Note note, IBounds bounds)
        {
            var bounded = new StaticSingleBounded(new PinchHarmonicBounds(pinch_harmonic, note, bounds, info, new UnorderedDelegate()));
            var handler = new StaticEffectMouseHandler(bounded.Bounds, new UnorderedMouseDelegate());
            var drawing = new StaticDrawingVisual(new PinchHarmonicDrawingStrategy(pinch_harmonic, bounded.Bounds, info, new UnorderedDelegate()));

            return(new EffectTreeNode(pinch_harmonic, bounded, handler, drawing));
        }