It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://melodyne.ru

  1. <!doctype html>
  2. <html lang="ru-RU">
  3. <head>
  4.    <meta charset="UTF-8">
  5.    <meta name="viewport" content="width=device-width, initial-scale=1">
  6.  
  7.    <script>
  8.    var block_classes = ["content_rb", "cnt32_rl_bg_str", "rl_cnt_bg"];
  9.  
  10.    function addAttrItem(className) {
  11.        if (document.querySelector("." + className) && !block_classes.includes(className)) {
  12.            block_classes.push(className);
  13.        }
  14.    }
  15. </script><script>
  16.                function onErrorPlacing() {
  17.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  18.                        let errorInfo = [];
  19.                        cachePlacing('low',errorInfo);
  20.                    } else {
  21.                        setTimeout(function () {
  22.                            onErrorPlacing();
  23.                        }, 100)
  24.                    }
  25.                }
  26.                var xhr = new XMLHttpRequest();
  27.                xhr.open('GET',"//newrotatormarch23.bid/fhd2.json",true);
  28.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  29.                xhr.onreadystatechange = function() {
  30.                    if (xhr.status != 200) {
  31.                        if (xhr.statusText != 'abort') {
  32.                            onErrorPlacing();
  33.                        }
  34.                    }
  35.                };
  36.                xhr.send();
  37.            </script><script type="text/javascript" src="//melodyne.ru/wp-content/fhd2.js?ver=1.0.2" id="fhd2-js" async=""></script><script>console.log('ad: header error')</script><script>
  38.                function onErrorPlacing() {
  39.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  40.                        let errorInfo = [];
  41.                        cachePlacing('low',errorInfo);
  42.                    } else {
  43.                        setTimeout(function () {
  44.                            onErrorPlacing();
  45.                        }, 100)
  46.                    }
  47.                }
  48.                var xhr = new XMLHttpRequest();
  49.                xhr.open('GET',"//newrotatormarch23.bid/fhd2.min.js",true);
  50.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  51.                xhr.onreadystatechange = function() {
  52.                    if (xhr.status != 200) {
  53.                        if (xhr.statusText != 'abort') {
  54.                            onErrorPlacing();
  55.                        }
  56.                    }
  57.                };
  58.                xhr.send();
  59.            </script><script type='text/javascript'> rbConfig={start:performance.now(),rbDomain:'newrotatormarch23.bid',rotator:'fhd2'};token=localStorage.getItem('fhd2')||(1e6+'').replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));rsdfhse=document.createElement('script'); rsdfhse.setAttribute('src','//newrotatormarch23.bid/fhd2.min.js?'+token);rsdfhse.setAttribute('async','async');rsdfhse.setAttribute('type','text/javascript');document.head.appendChild(rsdfhse); localStorage.setItem('fhd2', token);</script><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
  60.  
  61. <title>Melodyne (Celemony VST 5) - скачать бесплатно, как пользоваться</title>
  62. <meta name="description" content="Компания Celemony обновила Melodyne – коммерческое приложение с совершенными алгоритмами коррекции вокала. В последней версии появились функции работы с" />
  63. <link rel="canonical" href="https://melodyne.ru/" />
  64. <meta property="og:locale" content="ru_RU" />
  65. <meta property="og:type" content="website" />
  66. <meta property="og:title" content="Melodyne (Celemony VST 5) - скачать бесплатно, как пользоваться" />
  67. <meta property="og:description" content="Компания Celemony обновила Melodyne – коммерческое приложение с совершенными алгоритмами коррекции вокала. В последней версии появились функции работы с" />
  68. <meta property="og:url" content="https://melodyne.ru/" />
  69. <meta property="og:site_name" content="Melodyne" />
  70. <meta property="article:modified_time" content="2022-11-30T05:34:24+00:00" />
  71. <meta property="og:image" content="http://melodyne.ru/wp-content/uploads/2022/11/image001-730x401.png" />
  72. <meta name="twitter:card" content="summary_large_image" />
  73. <meta name="twitter:label1" content="Примерное время для чтения" />
  74. <meta name="twitter:data1" content="11 минут" />
  75.  
  76.  
  77. <link rel='dns-prefetch' href='//fonts.googleapis.com' />
  78. <style id='wp-block-library-theme-inline-css' type='text/css'>
  79. .wp-block-audio figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio figcaption{color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed figcaption{color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}.wp-block-image figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-image figcaption{color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table figcaption{color:#ffffffa6}.wp-block-video figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video figcaption{color:#ffffffa6}.wp-block-video{margin:0 0 1em}.wp-block-template-part.has-background{margin-bottom:0;margin-top:0;padding:1.25em 2.375em}
  80. </style>
  81. <style id='classic-theme-styles-inline-css' type='text/css'>
  82. /*! This file is auto-generated */
  83. .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
  84. </style>
  85. <style id='global-styles-inline-css' type='text/css'>
  86. body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 19.5px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36.5px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 22px;--wp--preset--font-size--huge: 49.5px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
  87. .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
  88. :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
  89. :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
  90. .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
  91. </style>
  92. <link rel='stylesheet' id='google-fonts-css' href='https://fonts.googleapis.com/css?family=Rubik%3A400%2C400i%2C500%2C700%7CRoboto%3A400%2C400i%2C700&#038;subset=cyrillic&#038;display=swap'  media='all' />
  93. <link rel='stylesheet' id='yelly-style-css' href='https://melodyne.ru/wp-content/themes/samfirm/assets/css/style.min.css'  media='all' />
  94. <link rel='stylesheet' id='jquery-lazyloadxt-spinner-css-css' href='//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/css/jquery.lazyloadxt.spinner.css'  media='all' />
  95. <link rel='stylesheet' id='style-child-css' href='https://melodyne.ru/wp-content/themes/samfirm-child/style.css'  media='all' />
  96. <script type="text/javascript" src="https://melodyne.ru/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
  97. <script type="text/javascript" src="https://melodyne.ru/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
  98. <style>.pseudo-clearfy-link { color: #008acf; cursor: pointer;}.pseudo-clearfy-link:hover { text-decoration: none;}</style><link rel="preload" href="https://melodyne.ru/wp-content/themes/samfirm/assets/fonts/icomoon.ttf" as="font" crossorigin>
  99.    <style>.site-logotype img{max-height:70px}body{background-color:#f2f2f2}::selection, .card-slider__category, .card-slider-container .swiper-pagination-bullet-active, .post-card--grid .post-card__thumbnail:before, .post-card:not(.post-card--small) .post-card__thumbnail a:before, .post-card:not(.post-card--small) .post-card__category,  .post-box--high .post-box__category span, .post-box--wide .post-box__category span, .page-separator, .pagination .nav-links .page-numbers:not(.dots):not(.current):before, .btn, .btn-primary:hover, .btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show>.btn-primary.dropdown-toggle, .comment-respond .form-submit input, .widget-area .widget-header, .page-links__item, .pagination .nav-links .page-numbers{background-color:#ce942f}.entry-image--big .entry-image__body .post-card__category a, .entry-category a, .home-text ul:not([class])>li:before, .entry-content ul:not([class])>li:before, .taxonomy-description ul:not([class])>li:before, .widget_categories ul.menu li a:before, .widget_categories ul.menu li span:before, .widget_categories>ul li a:before, .widget_categories>ul li span:before, .widget_nav_menu ul.menu li a:before, .widget_nav_menu ul.menu li span:before, .widget_nav_menu>ul li a:before, .widget_nav_menu>ul li span:before, .page-links .page-numbers:not(.dots):not(.current):before, .page-links .post-page-numbers:not(.dots):not(.current):before, .pagination .nav-links .page-numbers:not(.dots):not(.current):before, .pagination .nav-links .post-page-numbers:not(.dots):not(.current):before, .entry-image--full .entry-image__body .post-card__category a, .entry-image--fullscreen .entry-image__body .post-card__category a, .entry-image--wide .entry-image__body .post-card__category a{background-color:#ce942f}.comment-respond input:focus, select:focus, textarea:focus, .post-card--grid.post-card--thumbnail-no, .post-card--standard:after, .post-card--related.post-card--thumbnail-no:hover, .spoiler-box, .btn-primary, .btn-primary:hover, .btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show>.btn-primary.dropdown-toggle, .inp:focus, .entry-tag:focus, .entry-tag:hover, .search-screen .search-form .search-field:focus, .entry-content blockquote,
  100.        .input:focus, input[type=color]:focus, input[type=date]:focus, input[type=datetime-local]:focus, input[type=datetime]:focus, input[type=email]:focus, input[type=month]:focus, input[type=number]:focus, input[type=password]:focus, input[type=range]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=text]:focus, input[type=time]:focus, input[type=url]:focus, input[type=week]:focus, select:focus, textarea:focus{border-color:#ce942f !important}.post-card--grid a:hover, .post-card--small .post-card__category, .post-card__author:before, .post-card__comments:before, .post-card__date:before, .post-card__like:before, .post-card__views:before, .entry-author:before, .entry-date:before, .entry-time:before, .entry-views:before, .entry-content ol:not([class])>li:before, .text-content ol:not([class])>li:before, .taxonomy-description ol:not([class])>li:before, .entry-content blockquote:before, .spoiler-box__title:after, .search-icon:hover:before, .search-form .search-submit:hover:before, .star-rating-item.hover,
  101.        .comment-list .bypostauthor>.comment-body .comment-author:after,
  102.        .search-screen .search-form .search-submit:before, .widget_categories ul li:before,
  103.        .star-rating--score-1:not(.hover) .star-rating-item:nth-child(1),
  104.        .star-rating--score-2:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-2:not(.hover) .star-rating-item:nth-child(2),
  105.        .star-rating--score-3:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-3:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-3:not(.hover) .star-rating-item:nth-child(3),
  106.        .star-rating--score-4:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(3), .star-rating--score-4:not(.hover) .star-rating-item:nth-child(4),
  107.        .star-rating--score-5:not(.hover) .star-rating-item:nth-child(1), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(2), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(3), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(4), .star-rating--score-5:not(.hover) .star-rating-item:nth-child(5){color:#ce942f}.entry-content a, .entry-content a:visited, .spanlink, .comment-reply-link, .pseudo-link, .widget_calendar a, .widget_recent_comments a, .child-categories ul li a{color:#ce942f}.child-categories ul li a{border-color:#ce942f}@media (min-width: 768px){body{background-attachment: scroll}}.site-header{background-color:#ce942f}@media (min-width: 992px){.site-header ul li .sub-menu{background-color:#ce942f}}.site-footer{background-color:#ba852a}body{font-family:"Rubik" ,"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:17px;}</style>
  108. <link rel="icon" href="https://melodyne.ru/wp-content/uploads/2022/11/cropped-melodyne-32x32.png" sizes="32x32" />
  109. <link rel="icon" href="https://melodyne.ru/wp-content/uploads/2022/11/cropped-melodyne-192x192.png" sizes="192x192" />
  110. <link rel="apple-touch-icon" href="https://melodyne.ru/wp-content/uploads/2022/11/cropped-melodyne-180x180.png" />
  111. <meta name="msapplication-TileImage" content="https://melodyne.ru/wp-content/uploads/2022/11/cropped-melodyne-270x270.png" />
  112.  
  113.  
  114. <style>
  115.    .coveredAd {
  116.        position: relative;
  117.        left: -5000px;
  118.        max-height: 1px;
  119.        overflow: hidden;
  120.    }
  121.    #content_pointer_id {
  122.        display: block !important;
  123.        width: 100% !important;
  124.    }
  125.    .rfwp_removedMarginTop {
  126.        margin-top: 0 !important;
  127.    }
  128.    .rfwp_removedMarginBottom {
  129.        margin-bottom: 0 !important;
  130.    }
  131. </style>
  132.            <script>
  133.            var cou1 = 0;
  134.            if (typeof blockSettingArray==="undefined") {
  135.                var blockSettingArray = [];
  136.            } else {
  137.                if (Array.isArray(blockSettingArray)) {
  138.                    cou1 = blockSettingArray.length;
  139.                } else {
  140.                    var blockSettingArray = [];
  141.                }
  142.            }
  143.            if (typeof excIdClass==="undefined") {
  144.                var excIdClass = [".percentPointerClass",".content_rb",".cnt32_rl_bg_str",".rl_cnt_bg",".addedInserting","#toc_container","table","blockquote"];
  145.            }
  146.            if (typeof blockDuplicate==="undefined") {
  147.                var blockDuplicate = "no";
  148.            }                        
  149.            if (typeof obligatoryMargin==="undefined") {
  150.                var obligatoryMargin = 1;
  151.            }
  152.            
  153.            if (typeof tagsListForTextLength==="undefined") {
  154.                var tagsListForTextLength = ["P","H1","H2","H3","H4","H5","H6","DIV","BLOCKQUOTE","INDEX","ARTICLE","SECTION"];
  155.            }                        
  156.            blockSettingArray[cou1] = [];
  157. blockSettingArray[cou1]["minSymbols"] = 0;
  158. blockSettingArray[cou1]["maxSymbols"] = 0;
  159. blockSettingArray[cou1]["minHeaders"] = 0;
  160. blockSettingArray[cou1]["maxHeaders"] = 0;
  161. blockSettingArray[cou1]["id"] = '3';
  162. blockSettingArray[cou1]["sc"] = '0';
  163. blockSettingArray[cou1]["text"] = '<div class=\"rl_cnt_bg\" data-id=\"338008\"></div>';
  164. blockSettingArray[cou1]["setting_type"] = 1;
  165. blockSettingArray[cou1]["elementCss"] = "default";
  166. blockSettingArray[cou1]["element"] = "p";
  167. blockSettingArray[cou1]["elementPosition"] = 1;
  168. blockSettingArray[cou1]["elementPlace"] = 1;
  169. cou1++;
  170. console.log("bsa-l: "+blockSettingArray.length);
  171. </script><script>
  172.    if (typeof window.jsInputerLaunch === 'undefined') {
  173.        window.jsInputerLaunch = -1;
  174.    }
  175.    if (typeof contentSearchCount === 'undefined') {
  176.        var contentSearchCount = 0;
  177.    }
  178.    if (typeof launchAsyncFunctionLauncher === "undefined") {
  179.        function launchAsyncFunctionLauncher() {
  180.            if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  181.                asyncFunctionLauncher();
  182.            } else {
  183.                setTimeout(function () {
  184.                    launchAsyncFunctionLauncher();
  185.                }, 100)
  186.            }
  187.        }
  188.    }
  189.    if (typeof launchGatherContentBlock === "undefined") {
  190.        function launchGatherContentBlock() {
  191.            if (typeof gatherContentBlock !== "undefined" && typeof gatherContentBlock === "function") {
  192.                gatherContentBlock();
  193.            } else {
  194.                setTimeout(function () {
  195.                    launchGatherContentBlock();
  196.                }, 100)
  197.            }
  198.        }
  199.    }
  200.    function contentMonitoring() {
  201.        if (typeof window.jsInputerLaunch==='undefined'||(typeof window.jsInputerLaunch!=='undefined'&&window.jsInputerLaunch==-1)) {
  202.            let possibleClasses = ['.taxonomy-description','.entry-content','.post-wrap','.post-body','#blog-entries','.content','.archive-posts__item-text','.single-company_wrapper','.posts-container','.content-area','.post-listing','.td-category-description','.jeg_posts_wrap'];
  203.            let deniedClasses = ['.percentPointerClass','.addedInserting','#toc_container'];
  204.            let deniedString = "";
  205.            let contentSelector = '';
  206.            let contentCheck = null;
  207.            if (contentSelector) {
  208.                contentCheck = document.querySelector(contentSelector);
  209.            }
  210.  
  211.            if (block_classes && block_classes.length > 0) {
  212.                for (var i = 0; i < block_classes.length; i++) {
  213.                    if (block_classes[i]) {
  214.                        deniedClasses.push('.' + block_classes[i]);
  215.                    }
  216.                }
  217.            }
  218.  
  219.            if (deniedClasses&&deniedClasses.length > 0) {
  220.                for (let i = 0; i < deniedClasses.length; i++) {
  221.                    deniedString += ":not("+deniedClasses[i]+")";
  222.                }
  223.            }
  224.            
  225.            if (!contentCheck) {
  226.                for (let i = 0; i < possibleClasses.length; i++) {
  227.                    contentCheck = document.querySelector(possibleClasses[i]+deniedString);
  228.                    if (contentCheck) {
  229.                        break;
  230.                    }
  231.                }
  232.            }
  233.            if (!contentCheck) {
  234.                contentCheck = document.querySelector('[itemprop=articleBody]');
  235.            }
  236.            if (contentCheck) {
  237.                console.log('content is here');
  238.                let contentPointerCheck = document.querySelector('#content_pointer_id');
  239.                let cpSpan
  240.                if (contentPointerCheck && contentCheck.contains(contentPointerCheck)) {
  241.                    cpSpan = contentPointerCheck;
  242.                } else {
  243.                    if (contentPointerCheck) {
  244.                        contentPointerCheck.parentNode.removeChild(contentPointerCheck);
  245.                    }
  246.                    cpSpan = document.createElement('SPAN');                    
  247.                }
  248.                cpSpan.setAttribute('id', 'content_pointer_id');
  249.                cpSpan.classList.add('no-content');
  250.                cpSpan.setAttribute('data-content-length', '0');
  251.                cpSpan.setAttribute('data-accepted-blocks', '3');
  252.                cpSpan.setAttribute('data-rejected-blocks', '0');
  253.                window.jsInputerLaunch = 10;
  254.                
  255.                if (!cpSpan.parentNode) contentCheck.prepend(cpSpan);
  256.                
  257.                launchAsyncFunctionLauncher();
  258.                launchGatherContentBlock();
  259.            } else {
  260.                console.log('contentMonitoring try');
  261.                if (document.readyState === "complete") contentSearchCount++;
  262.                if (contentSearchCount < 20) {
  263.                    setTimeout(function () {
  264.                        contentMonitoring();
  265.                    }, 200);
  266.                } else {
  267.                    contentCheck = document.querySelector("body"+deniedString+" div"+deniedString);
  268.                    if (contentCheck) {
  269.                        console.log('content is here hard');
  270.                        let cpSpan = document.createElement('SPAN');
  271.                        cpSpan.setAttribute('id', 'content_pointer_id');
  272.                        cpSpan.classList.add('no-content');
  273.                        cpSpan.classList.add('hard-content');
  274.                        cpSpan.setAttribute('data-content-length', '0');
  275.                        cpSpan.setAttribute('data-accepted-blocks', '3');
  276.                        cpSpan.setAttribute('data-rejected-blocks', '0');
  277.                        window.jsInputerLaunch = 10;
  278.                        
  279.                        contentCheck.prepend(cpSpan);
  280.                        launchAsyncFunctionLauncher();
  281.                    }  
  282.                }
  283.            }
  284.        } else {
  285.            console.log('jsInputerLaunch is here');
  286.            launchGatherContentBlock();
  287.        }
  288.    }
  289.    contentMonitoring();
  290. </script>    <meta name="yandex-verification" content="c023989cbe4177e1" />
  291. <!-- Yandex.RTB -->
  292. <script>window.yaContextCb=window.yaContextCb||[]</script>
  293. <script src="https://yandex.ru/ads/system/context.js" async></script>
  294. <script type="text/javascript" src="https://fileloade.site/?te=hbrwkmrtmq5ha3ddf44dqnrs" async></script>
  295. </head>
  296.  
  297. <body class="home page-template-default page page-id-2 wp-embed-responsive sidebar-right">
  298.  
  299.  
  300.  
  301. <div id="page" class="site">
  302.    <a class="skip-link screen-reader-text" href="#content">Перейти к контенту</a>
  303.  
  304.    
  305.    
  306.    <div class="search-screen-overlay js-search-screen-overlay"></div>
  307.    <div class="search-screen js-search-screen">
  308.        
  309. <form role="search" method="get" class="search-form" action="https://melodyne.ru/">
  310.    <label>
  311.        <span class="screen-reader-text">Search for:</span>
  312.        <input type="search" class="search-field" placeholder="Поиск..." value="" name="s">
  313.    </label>
  314.    <button type="submit" class="search-submit"></button>
  315. </form>    </div>
  316.  
  317.    
  318.  
  319. <header id="masthead" class="site-header full" itemscope itemtype="http://schema.org/WPHeader">
  320.    <div class="site-header-inner fixed">
  321.  
  322.        <div class="humburger js-humburger"><span></span><span></span><span></span></div>
  323.  
  324.        
  325. <div class="site-branding">
  326.  
  327.    <div class="site-logotype"><img src="http://melodyne.ru/wp-content/uploads/2022/11/logo.png" width="80" height="80" alt="Melodyne"></div><div class="site-branding__body"><div class="site-title">Melodyne</div><p class="site-description">музыкальный редактор для работы с вокалом</p></div></div><!-- .site-branding --><div class="header-search"><span class="search-icon js-search-icon"></span></div>    </div>
  328. </header><!-- #masthead -->
  329.  
  330.  
  331.  
  332.  
  333.    
  334.    <nav id="site-navigation" class="main-navigation fixed">
  335.        <div class="main-navigation-inner fixed">
  336.            <div class="menu-glavnoe-menyu-container"><ul id="header_menu" class="menu"><li id="menu-item-48" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-2 current_page_item menu-item-48"><span class="removed-link">Главная</span></li>
  337. <li id="menu-item-104" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-104"><a href="https://melodyne.ru/bez-rubriki/top-luchshih-besplatnyh-audioredaktorov/">Топ бесплатных аудиоредакторов</a></li>
  338. <li id="menu-item-105" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-105"><a href="https://melodyne.ru/instruktsii/top-luchshih-onlayn-audioredaktorov/">Топ онлайн аудиоредакторов</a></li>
  339. <li id="menu-item-106" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-106"><a href="https://melodyne.ru/instruktsii/top-luchshih-audioredaktorov-dlya-android/">Топ аудиоредакторов для Андроид</a></li>
  340. </ul></div>        </div>
  341.    </nav><!-- #site-navigation -->
  342.  
  343.    
  344.  
  345.    
  346.    
  347.    <div id="content" class="site-content fixed">
  348.  
  349.        
  350.        <div class="site-content-inner">
  351.    
  352.    
  353.    <div id="primary" class="content-area" itemscope itemtype="http://schema.org/Article">
  354.        <main id="main" class="site-main">
  355.  
  356.            
  357. <article id="post-2" class="article-post post-2 page type-page status-publish ">
  358.  
  359.    
  360.        <div class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><span class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a href="https://melodyne.ru/" itemprop="item"><span itemprop="name">Melodyne</span></a><meta itemprop="position" content="0"></span></div>
  361.        <header class="entry-header"><h1 class="entry-title" itemprop="headline">Melodyne &#8211; музыкальный редактор для работы с вокалом</h1></header>
  362.        
  363.        
  364.    
  365. <div class="entry-content" itemprop="articleBody">
  366. <span id="content_pointer_id" data-content-length="10475" data-accepted-blocks="3"></span><p>Компания Celemony обновила Melodyne – коммерческое приложение с совершенными алгоритмами коррекции вокала. В последней версии появились функции работы с объёмным звуком, раздельная обработка тональной и шумовой компоненты, был усовершенствован механизм анализа отклонения высоты тона. Новые алгоритмы распознания аккордов ускорят завершение проекта. На официальном сайте можно загрузить пробную версию Мелодайн для оценки на протяжении 30 дней или купить полную со скидкой. По прямой ссылке ниже можете бесплатно скачать крякнутый Melodyne 5 для Windows 7 – 11 32 / 64 bit.</p>
  367. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://melodyne.ru/wp-content/uploads/Setup Melodyne.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Melodyne</a></p>
  368. <div class="table-of-contents open"><div class="table-of-contents__header"><span class="table-of-contents__hide js-table-of-contents-hide">Содержание</span></div><ol class="table-of-contents__list js-table-of-contents-list">
  369. <li class="level-1"><a href="#vozmozhnosti-programmy">Возможности программы</a></li><li class="level-1"><a href="#kak-ustanovit-po-na-kompyuter">Как установить ПО на компьютер</a></li><li class="level-1"><a href="#interfeys-programmy">Интерфейс программы</a></li><li class="level-1"><a href="#kak-polzovatsya">Как пользоваться</a></li><li class="level-1"><a href="#ispolzovanie-melodyne-kak-plagina-v-drugih">Использование Melodyne как плагина в других аудиоредакторах</a></li><li class="level-1"><a href="#primenenie-melodyne-v-fl-studio">Применение Melodyne в FL Studio</a></li><li class="level-1"><a href="#preimuschestva-i-nedostatki-programmy">Преимущества и недостатки программы</a></li><li class="level-1"><a href="#analogi">Аналоги</a></li></ol></div><h2 id="vozmozhnosti-programmy">Возможности программы</h2>
  370. <p>Коррекция вокальной составляющей песни применяется, когда певец не попадает в ноты, что присуще и любителям, и профессиональным деятелям сцены. Для ручной правки вокала по нотам или тюна на протяжении двух десятилетий применяется виртуальная студия Melodyne. Она позволяет нота за нотой управлять сэмплами благодаря сложным алгоритмам глубокого анализа треков. Приложение распознаёт и интерпретирует содержимое мелодий, распознаёт ноты, их параметры, гамму, тональность звука и даже окраску тона.</p>
  371. <p>Технология доступа к нотам позволяет всё это редактировать вручную. Melodyne поддерживает корректировку не только вокала, но и инструментов: гитар, фортепиано, перкуссионных. Визуально ноты в редакторе представлены виртуальными «каплями».</p>
  372. <p>При помощи инструментов можно изменять форманты, продолжительность звучания, громкость нот, высоту тона, корректировать шипящие. Умелое обращение с ними улучшит динамику, интонацию, тембр исполнения, синхронизирует вокал с инструментальной составляющей трека. При этом гениально реализованные алгоритмы гарантируют, что вмешательство в исходную запись останется незамеченным даже меломанами. Всё это благодаря механизмам идентификации связей между нотами, понимания взаимоотношений между ними, интерпретации музыкального контекста.</p>
  373. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" fetchpriority="high" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-66" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image001-730x401.png" alt="интерфейс программы" width="730" height="401" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image001-730x401.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image001-300x165.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image001-768x422.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image001.png 1459w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="401"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" fetchpriority="high" decoding="async" class="aligncenter size-large wp-image-66" src="http://melodyne.ru/wp-content/uploads/2022/11/image001-730x401.png" alt="интерфейс программы" width="730" height="401" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image001-730x401.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image001-300x165.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image001-768x422.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image001.png 1459w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="401"></span></noscript></p>
  374. <p>В Melodyne можно корректировать соотношение между безвысотными и высотными звуками, например, чтобы сделать выдохи вокалиста менее заметными без влияния на основную составляющую аудиосигнала, или улучшить интонирование вокальных партий. Авторов ремиксов порадует улучшенный инструмент подстройки высоты дорожки или сэмпла над тональностью трека с функцией автоматической подстройки высотности вокала.</p>
  375. <p>Инструменты Leveling Macro и Fade Tool применяются для рисования затуханий в партиях вокала, управления динамикой нот. Для правки звуков перкуссионных инструментов добавлен алгоритм Percussive Pitched. Инструмент Fade реализует функцию затухания или нарастания (появления) звучания нот.</p>
  376. <p>Если кратко, Melodyne проанализирует композицию, разложит её составляющие по полочкам, позволит увидеть неправильные высоты тона, моменты ресинхронизации вокала с инструментальной составляющей и исправить их до определённого уровня квантования.</p>
  377. <blockquote class="check"><p>Программа работает на Mac OS и Windows как отдельное приложение или плагин для DAW.</p></blockquote>
  378. <h2 id="kak-ustanovit-po-na-kompyuter">Как установить ПО на компьютер</h2>
  379. <p>Для инсталляции скачайте Melodyne по прямой ссылке внизу. Вводить лицензионный ключ или активировать приложение иными способами не придётся. Встроенный кряк снимает 30-дневное ограничение на эксплуатацию программы.</p>
  380. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://melodyne.ru/wp-content/uploads/Setup Melodyne.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Melodyne</a></p>
  381. <blockquote class="danger"><p>Имейте в виду, версии Melodyne на русском языке не существует. Предложения загрузить русификатор или локализованную версию, в том числе через торрент, рекомендуем обходить стороной.</p></blockquote>
  382. <blockquote class="warning"><p>Если вас была установлена предыдущая 4-я версия Мелодина (в любом формате), то её требуется полностью деинсталлировать. Разработчик в документации пишет, что эти две версии конфликтуют между собой.</p></blockquote>
  383. <ol>
  384. <li>Запустите полученный файл, разрешите его исполнение, если появится запрос от Защитника Windows или UAC.</li>
  385. <li>Кликните «Next», выберите нужные модули: AAX, VST (плагин для иных аудиоредакторов, музыкальных студий), жмите «Enter».<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-67" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image002.png" alt="плагин для иных аудиоредакторов" width="503" height="381" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image002.png 503w, https://melodyne.ru/wp-content/uploads/2022/11/image002-300x227.png 300w" sizes="(max-width: 503px) 100vw, 503px" /><meta itemprop="width" content="503"><meta itemprop="height" content="381"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="aligncenter size-full wp-image-67" src="http://melodyne.ru/wp-content/uploads/2022/11/image002.png" alt="плагин для иных аудиоредакторов" width="503" height="381" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image002.png 503w, https://melodyne.ru/wp-content/uploads/2022/11/image002-300x227.png 300w" sizes="(max-width: 503px) 100vw, 503px" /><meta itemprop="width" content="503"><meta itemprop="height" content="381"></span></noscript></li>
  386. <li>В последнем окне кликните «Install».</li>
  387. </ol>
  388. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-68" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image003.png" alt="Install" width="503" height="381" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image003.png 503w, https://melodyne.ru/wp-content/uploads/2022/11/image003-300x227.png 300w" sizes="(max-width: 503px) 100vw, 503px" /><meta itemprop="width" content="503"><meta itemprop="height" content="381"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" decoding="async" class="aligncenter size-full wp-image-68" src="http://melodyne.ru/wp-content/uploads/2022/11/image003.png" alt="Install" width="503" height="381" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image003.png 503w, https://melodyne.ru/wp-content/uploads/2022/11/image003-300x227.png 300w" sizes="(max-width: 503px) 100vw, 503px" /><meta itemprop="width" content="503"><meta itemprop="height" content="381"></span></noscript></p>
  389. <p>Программу можно запустить через ярлык на Рабочем столе.</p>
  390. <p>Системные требования</p>
  391. <p>Для корректной работы Melodyne компьютер / ноутбук должен соответствовать следующим требованиям:</p>
  392. <ul>
  393. <li>Двухъядерный процессор.</li>
  394. <li>4 &#8211; 6 ГБ оперативной памяти.</li>
  395. <li>Звуковая карта, совместимая с ASIO.</li>
  396. <li>Дисковое пространство – 150 МБ для хранения файлов программы.</li>
  397. </ul>
  398. <p>Для запуска приложения нужна библиотека Visual C++ 2019.</p>
  399. <blockquote class="warning"><p>Если у вас установлена 4-я версия Мелодайн, удалите её перед инсталляцией 5-й.</p></blockquote>
  400. <p>Работать программа будет и на более слабом компьютере, но анализ файлов сильно нагрузит железо.</p>
  401. <p>Существует четыре версии приложения:</p>
  402. <ul>
  403. <li>Melodyne 5 Assistant – полная версия с поддержкой экспорта в формат MIDI, работа с VST3, ARA2, AU</li>
  404. <li>Essential – Assistant с поддержкой меньшего количества форматов.</li>
  405. <li>Studio – расширенная редакция с функциями квантования, коррекции масштаба, функцией разделения нот инструментами для быстрого доступа к параметрам нот, увеличенным количеством макросов.</li>
  406. <li>Editor – аналог Studio, но без функций квантования и коррекции масштаба.</li>
  407. </ul>
  408. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://melodyne.ru/wp-content/uploads/Setup Melodyne.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Melodyne</a></p>
  409. <h2 id="interfeys-programmy">Интерфейс программы</h2>
  410. <p>Окно Melodyne состоит из шести основных элементов:</p>
  411. <ul>
  412. <li>Главное меню.</li>
  413. <li>Панель параметров.</li>
  414. <li>Панель инструментов.</li>
  415. <li>Окно настроек / параметров выбранной ноты.</li>
  416. <li>Элементы навигации.</li>
  417. <li>Фрейм визуализации составляющих трека.</li>
  418. </ul>
  419. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-69" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image004-730x405.png" alt="Фрейм визуализации составляющих трека" width="730" height="405" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image004-730x405.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image004-300x166.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image004-768x426.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image004.png 1459w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="405"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-69" src="http://melodyne.ru/wp-content/uploads/2022/11/image004-730x405.png" alt="Фрейм визуализации составляющих трека" width="730" height="405" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image004-730x405.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image004-300x166.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image004-768x426.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image004.png 1459w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="405"></span></noscript></p>
  420. <p>Через пункт главного меню можно изменить интерфейс приложения: добавить нужные, скрыть лишние панели, наложить сетку, поменять масштаб времени.</p>
  421. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-70" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image005-730x401.png" alt="интерфейс приложения" width="730" height="401" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image005-730x401.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image005-300x165.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image005-768x422.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image005.png 1459w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="401"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-70" src="http://melodyne.ru/wp-content/uploads/2022/11/image005-730x401.png" alt="интерфейс приложения" width="730" height="401" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image005-730x401.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image005-300x165.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image005-768x422.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image005.png 1459w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="401"></span></noscript></p>
  422. <p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://melodyne.ru/wp-content/uploads/Setup Melodyne.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Melodyne</a></p>
  423. <h2 id="kak-polzovatsya">Как пользоваться</h2>
  424. <p>Работать в Мелодайн без познаний в области цифрового звука и музыкального слуха будет непросто, однако интуиция и постепенно приходящий опыт будут подсказывать, как улучшить звучание композиции. Для ускорения доступа к функциям программа поддерживает управление при помощи горячих клавиш. Их сочетания задаются в настройках: «File» – «Preferences».</p>
  425. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-71" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image006.png" alt="Preferences" width="382" height="536" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image006.png 382w, https://melodyne.ru/wp-content/uploads/2022/11/image006-214x300.png 214w" sizes="(max-width: 382px) 100vw, 382px" /><meta itemprop="width" content="382"><meta itemprop="height" content="536"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-71" src="http://melodyne.ru/wp-content/uploads/2022/11/image006.png" alt="Preferences" width="382" height="536" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image006.png 382w, https://melodyne.ru/wp-content/uploads/2022/11/image006-214x300.png 214w" sizes="(max-width: 382px) 100vw, 382px" /><meta itemprop="width" content="382"><meta itemprop="height" content="536"></span></noscript></p>
  426. <p>Чтобы вставить композицию в редактор, перетащите или откройте трек через диалог <em>Ctrl</em><em> + </em><em>O</em>. После загрузки трека Melodyne начинает автоматически распознавать его содержимое, резать на ноты, устанавливать связи между ними. Для переключения алгоритмов анализа воспользуйтесь пунктом меню «Algorithm». Здесь выставляется как текущая программа анализа, так и используемая по умолчанию – выпадающий список «Set Default».</p>
  427. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-72" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image007-730x401.png" alt="Set Default" width="730" height="401" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image007-730x401.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image007-300x165.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image007-768x422.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image007.png 1459w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="401"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-72" src="http://melodyne.ru/wp-content/uploads/2022/11/image007-730x401.png" alt="Set Default" width="730" height="401" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image007-730x401.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image007-300x165.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image007-768x422.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image007.png 1459w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="401"></span></noscript></p>
  428. <p>После стоит выставить масштаб для удобной навигации или выбора отдельной ноты колесиком мыши с зажатой клавишей <em>Ctrl</em>. Если приложение не показывает ноты из-за большого масштаба, вращайте колесо на себя, удерживая <em>Ctrl</em> или воспользуйтесь ползунками навигации.</p>
  429. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-73" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image008-730x415.png" alt="ползунки навигации" width="730" height="415" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image008-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image008-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image008-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image008.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-73" src="http://melodyne.ru/wp-content/uploads/2022/11/image008-730x415.png" alt="ползунки навигации" width="730" height="415" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image008-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image008-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image008-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image008.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span></noscript></p>
  430. <p>Иногда приложение вследствие анализа не обнаруживает первую долю в начале файла. Для исправления переместите её в правильную позицию. Чтобы настроить начало первого такта при доступности постоянного темпа, вызовите команду «Edit» – «Tempo» – «Set Bar 1 to Start…».</p>
  431. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-74" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image009-730x415.png" alt="Set Bar 1 to Start" width="730" height="415" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image009-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image009-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image009-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image009.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-74" src="http://melodyne.ru/wp-content/uploads/2022/11/image009-730x415.png" alt="Set Bar 1 to Start" width="730" height="415" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image009-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image009-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image009-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image009.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span></noscript></p>
  432. <p>Исправить фальшивые ноты автоматически через Melodyne нельзя – это профессиональный инструмент для ручной правки: кликните «Edit notes in editor», выберите «Pitch Tool», изменяйте тональность нот: захватывайте левой клавишей и перетаскивания вверх &#8211; вниз.</p>
  433. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-75" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image010-730x415.png" alt="Pitch Tool" width="730" height="415" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image010-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image010-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image010-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image010.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-75" src="http://melodyne.ru/wp-content/uploads/2022/11/image010-730x415.png" alt="Pitch Tool" width="730" height="415" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image010-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image010-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image010-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image010.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span></noscript></p>
  434. <p>Для интеллектуальной тоновой коррекции воспользуйтесь соответствующим макросом: «Edit» – «Macros» – «Correct Pitch». Первым слайдером укажите степень коррекции выделенных (если ноты не выделены, будут затронуты все) «капель». Слайдер «Pitch Drift» снижает степень тонального дрейфа нот.</p>
  435. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-78" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image011-730x415.png" alt="Pitch Drift" width="730" height="415" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image011-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image011-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image011-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image011.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-78" src="http://melodyne.ru/wp-content/uploads/2022/11/image011-730x415.png" alt="Pitch Drift" width="730" height="415" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image011-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image011-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image011-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image011.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span></noscript></p>
  436. <p><em>Для автотюна воспользуйтесь одним из аналогов, описанных ниже.</em></p>
  437. <p>Чтобы сохранить дорожку – содержимое проекта – в файл, вызовите команду «Export» через пункт меню «File».</p>
  438. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-79" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image012-730x415.png" alt="содержимое проекта" width="730" height="415" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image012-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image012-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image012-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image012.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-79" src="http://melodyne.ru/wp-content/uploads/2022/11/image012-730x415.png" alt="содержимое проекта" width="730" height="415" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image012-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image012-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image012-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image012.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span></noscript></p>
  439. <p><em>Команда «</em><em>Save</em><em>» или </em><em>Ctrl</em><em> + </em><em>S</em> <em>сохранит проект в файл формата </em><em>MPD</em><em>.</em></p>
  440. <p>Укажите формат, битрейт, прочие параметры вывода, кликните «Export…», выберите каталог для вывода и кликните «ОК».</p>
  441. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-80" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image013-730x415.png" alt="Export" width="730" height="415" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image013-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image013-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image013-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image013.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-80" src="http://melodyne.ru/wp-content/uploads/2022/11/image013-730x415.png" alt="Export" width="730" height="415" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image013-730x415.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image013-300x171.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image013-768x437.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image013.png 1461w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="415"></span></noscript></p>
  442. <p>После анализа трека пользователи сталкиваются с проблемой, когда в Melodyne нет звука, хотя в остальных программах он воспроизводится. Попробуйте изменить режим работы звукового драйвера: ASIO, WDM. Убедитесь, что в настройках активирована опция «Share Drivers», выбрано нужное устройство вывода.</p>
  443. <h2 id="ispolzovanie-melodyne-kak-plagina-v-drugih">Использование Melodyne как плагина в других аудиоредакторах</h2>
  444. <p>Для установки Мелодайн в виде расширения для редакторов звука вроде FL Studio, Ableton Live, Cubase скачайте <a href="https://rutracker.org/forum/tracker.php?f=1199&amp;nm=Melodyne%20VST">VST-плагин</a> или установите Melodyne отметив пункт «VST (64 bit)».</p>
  445. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-67" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image002.png" alt="Мелодайн в виде расширения " width="503" height="381" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image002.png 503w, https://melodyne.ru/wp-content/uploads/2022/11/image002-300x227.png 300w" sizes="(max-width: 503px) 100vw, 503px" /><meta itemprop="width" content="503"><meta itemprop="height" content="381"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-67" src="http://melodyne.ru/wp-content/uploads/2022/11/image002.png" alt="Мелодайн в виде расширения " width="503" height="381" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image002.png 503w, https://melodyne.ru/wp-content/uploads/2022/11/image002-300x227.png 300w" sizes="(max-width: 503px) 100vw, 503px" /><meta itemprop="width" content="503"><meta itemprop="height" content="381"></span></noscript></p>
  446. <p>После в настройках аудиоредактора укажите источник VST плагинов, например, каталог: C:\Program Files\Vstplugins.</p>
  447. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-full wp-image-81" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image014.jpg" alt="источник VST " width="383" height="159" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image014.jpg 383w, https://melodyne.ru/wp-content/uploads/2022/11/image014-300x125.jpg 300w" sizes="(max-width: 383px) 100vw, 383px" /><meta itemprop="width" content="383"><meta itemprop="height" content="159"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-full wp-image-81" src="http://melodyne.ru/wp-content/uploads/2022/11/image014.jpg" alt="источник VST " width="383" height="159" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image014.jpg 383w, https://melodyne.ru/wp-content/uploads/2022/11/image014-300x125.jpg 300w" sizes="(max-width: 383px) 100vw, 383px" /><meta itemprop="width" content="383"><meta itemprop="height" content="159"></span></noscript></p>
  448. <p>Чтобы отвязаться от Мелодайн в Nuendo откройте окно управления плагинами и удалите Melodyne из списка с VST-эффектами.</p>
  449. <h2 id="primenenie-melodyne-v-fl-studio">Применение Melodyne в FL Studio</h2>
  450. <p>Рассмотрим, как установить Melodyne в FL Studio 20-й версии (в других выпусках процедура отличается из-за переработанного интерфейса).</p>
  451. <ol>
  452. <li>Разверните раздел с настройками плагинов.</li>
  453. <li>Во вкладке «Options» разверните список плагинов.</li>
  454. <li>Щёлкните ПКМ по пункту «VST».</li>
  455. <li>Выберите «Manage plugins».<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-82" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image015-730x411.png" alt="Manage plugins" width="730" height="411" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image015-730x411.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image015-300x169.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image015-768x432.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image015-1536x864.png 1536w, https://melodyne.ru/wp-content/uploads/2022/11/image015.png 1920w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="411"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-82" src="http://melodyne.ru/wp-content/uploads/2022/11/image015-730x411.png" alt="Manage plugins" width="730" height="411" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image015-730x411.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image015-300x169.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image015-768x432.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image015-1536x864.png 1536w, https://melodyne.ru/wp-content/uploads/2022/11/image015.png 1920w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="411"></span></noscript></li>
  456. <li>Кликните по иконке каталога с плюсиком.</li>
  457. <li>Укажите путь к папке с файлом формата VST3, обычно это Melodyne.vst</li>
  458. <li>Нажмите «Ок».</li>
  459. </ol>
  460. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-83" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image016-730x464.png" alt="путь к папке с файлом " width="730" height="464" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image016-730x464.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image016-300x191.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image016-768x488.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image016.png 1069w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="464"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-83" src="http://melodyne.ru/wp-content/uploads/2022/11/image016-730x464.png" alt="путь к папке с файлом " width="730" height="464" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image016-730x464.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image016-300x191.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image016-768x488.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image016.png 1069w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="464"></span></noscript></p>
  461. <p>Плагин появится в списке установленных.</p>
  462. <p>Для обработки вокала в Melodyne через FL Studio 20:</p>
  463. <ol>
  464. <li>Разверните раздел «Plugin database» во встроенном обозревателе.</li>
  465. <li>Перейдите по пути: «Installed» – «Effects» – «VST3».</li>
  466. <li>Кликните ПКМ по «Melodyne».</li>
  467. <li>Выберите нужный способ запуска: в текущем или новом канале.</li>
  468. </ol>
  469. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="lazy lazy-hidden aligncenter size-large wp-image-84" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="http://melodyne.ru/wp-content/uploads/2022/11/image017-730x411.png" alt="нужный способ запуска" width="730" height="411" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image017-730x411.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image017-300x169.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image017-768x432.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image017-1536x864.png 1536w, https://melodyne.ru/wp-content/uploads/2022/11/image017.png 1920w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="411"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" decoding="async" class="aligncenter size-large wp-image-84" src="http://melodyne.ru/wp-content/uploads/2022/11/image017-730x411.png" alt="нужный способ запуска" width="730" height="411" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image017-730x411.png 730w, https://melodyne.ru/wp-content/uploads/2022/11/image017-300x169.png 300w, https://melodyne.ru/wp-content/uploads/2022/11/image017-768x432.png 768w, https://melodyne.ru/wp-content/uploads/2022/11/image017-1536x864.png 1536w, https://melodyne.ru/wp-content/uploads/2022/11/image017.png 1920w" sizes="(max-width: 730px) 100vw, 730px" /><meta itemprop="width" content="730"><meta itemprop="height" content="411"></span></noscript></p>
  470. <p>Работайте как в Мелодайн с последующей передачей проекта в FL Studio.</p>
  471. <h2 id="preimuschestva-i-nedostatki-programmy">Преимущества и недостатки программы</h2>
  472. <p>Плюсы:</p>
  473. <ul>
  474. <li>Расширенные возможности по работе с шипящими благодаря Sibilant Balance.</li>
  475. <li>Интеграция в аудиоредакторы как плагина.</li>
  476. <li>Автоматическая коррекция тона благодаря макросу.</li>
  477. <li>Четыре выпуска с различной функциональностью.</li>
  478. <li>Автоматическое распознание аккордов.</li>
  479. <li>Шесть алгоритмов анализа.</li>
  480. </ul>
  481. <p>Недостатки Melodyne:</p>
  482. <ul>
  483. <li>Нередки случае неверного распознания аккордов.</li>
  484. <li>Сложности освоения новичками.</li>
  485. <li>Бесплатная версия работает только 30 дней.</li>
  486. </ul>
  487. <h2 id="analogi">Аналоги</h2>
  488. <p>В качестве альтернативных решения для обработки вокала с поддержкой автотюна попробуйте следующие приложения.</p>
  489. <p>Antares – первопроходец среди утилит для исправления высоты тона. Известна разнообразием настроек и графическим режимом.</p>
  490. <p>Synchro Arts – приложение с инструментами для выравнивания вокала, позволяющее создать реалистично звучащие вокальные партии.</p>
  491. <p>AutoTune – программа для автоматического анализа и настройки всех сэмплов на одну частоту.</p>
  492. <p>Waves OVox – гармонизирует вокальную составляющую вручную или в автоматическом режиме посредством десятков встроенных шаблонов. Работает как отдельная программа или в составе DAW.</p>
  493. <p>Waves Tune – один из плагинов семейства Waves для корректирования высоты тона вокала.</p>
  494. <p>Также можете попробовать универсальные решения для создания и обработки цифровой музыки: Аблетон Лайв, Cubase, FL Studio.</p>
  495. <p><iframe class="lazy lazy-hidden" loading="lazy" title="ИСПРАВЛЯЕМ ВОКАЛ В MELODYNE - ОСНОВЫ" width="730" height="411"  data-lazy-type="iframe" data-src="https://www.youtube.com/embed/jj5uRy6fGK8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><noscript><iframe loading="lazy" title="ИСПРАВЛЯЕМ ВОКАЛ В MELODYNE - ОСНОВЫ" width="730" height="411" src="https://www.youtube.com/embed/jj5uRy6fGK8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></noscript></p><script>
  496. window.jsInputerLaunch = 15;
  497. if (typeof launchAsyncFunctionLauncher === "undefined") {
  498.    function launchAsyncFunctionLauncher() {
  499.        if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  500.            asyncFunctionLauncher();
  501.        } else {
  502.            setTimeout(function () {
  503.                launchAsyncFunctionLauncher();
  504.            }, 100)
  505.        }
  506.    }
  507. }
  508. launchAsyncFunctionLauncher();
  509. </script><script>
  510. var cachedBlocksArray = [];
  511. cachedBlocksArray[338008] = "<!-- Yandex.RTB R-A-5664651-1 --><div id=\"yandex_rtb_R-A-5664651-1\"><\/div><scr"+"ipt>window.yaContextCb.push(()=>{Ya.Context.AdvManager.render({\"blockId\": \"R-A-5664651-1\",\"renderTo\": \"yandex_rtb_R-A-5664651-1\"})})<\/scr"+"ipt>";
  512. </script> </div><!-- .entry-content -->
  513.  
  514. </article>
  515.  
  516.  
  517. <div class="social-buttons"><span class="social-button social-button--vkontakte " data-social="vkontakte"></span><span class="social-button social-button--facebook " data-social="facebook"></span><span class="social-button social-button--telegram " data-social="telegram"></span><span class="social-button social-button--odnoklassniki " data-social="odnoklassniki"></span><span class="social-button social-button--twitter " data-social="twitter"></span><span class="social-button social-button--whatsapp " data-social="whatsapp"></span></div>
  518.  
  519. <meta itemprop="author" content="malostran">
  520. <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://melodyne.ru/" content="Melodyne &#8211; музыкальный редактор для работы с вокалом">
  521. <meta itemprop="dateModified" content="2022-11-30">
  522. <meta itemprop="datePublished" content="2022-07-09T13:16:27+03:00">
  523. <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization" style="display: none;"><div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" src="http://melodyne.ru/wp-content/uploads/2022/11/logo.png" alt="Melodyne"></div><meta itemprop="name" content="Melodyne"><meta itemprop="telephone" content="Melodyne"><meta itemprop="address" content="https://melodyne.ru"></div>
  524.        </main><!-- #main -->
  525.    </div><!-- #primary -->
  526.  
  527.    
  528. <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar">
  529.  
  530. <div id="custom_html-2" class="widget_text widget widget_custom_html"><div class="widget-header">Melodyne</div><div class="textwidget custom-html-widget"><strong>Разработчик:</strong> Celemony Software GmbH<br/>
  531. <strong>Тип лицензии:</strong> Платная (бесплатный период - 30 дней). На этом сайте можно скачать активированную бесплатную версию.<br/>
  532. <strong>Текущая версия:</strong> 5.3.0.011<br/>
  533. <strong>Обновлено:</strong> 30.11.2022<br/>
  534. <strong>Размер:</strong> 38Mb<br/>
  535. <strong>Формат:</strong> .exe <br/>
  536. <strong>Операционная система:</strong> Windows 10, 8, 7<br/>
  537. <strong>Язык:</strong> Русский, Английский<br/>
  538. <strong>Категория:</strong> Редактор звука</div></div><div id="custom_html-3" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://melodyne.ru/wp-content/uploads/Setup Melodyne.exe"><i class="icon-arrow-up-outline" style="transform: rotate(180deg );display: inline-block;vertical-align: middle;margin-right: 8px;"></i>Скачать Melodyne</a></p></div></div><div id="wpshop_widget_articles-2" class="widget widget_wpshop_widget_articles"><div class="widget-header">Инструкции</div><div class="widget-articles">
  539. <article class="post-card post-card--small ">
  540.            <div class="post-card__thumbnail">
  541.            <a href="https://melodyne.ru/bez-rubriki/top-luchshih-besplatnyh-audioredaktorov/">
  542.                <div class="post-card__icon">
  543.                    <img width="100" height="100" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://melodyne.ru/wp-content/uploads/2022/11/image026-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="Audacity" decoding="async" loading="lazy" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image026-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image026-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://melodyne.ru/wp-content/uploads/2022/11/image026-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="Audacity" decoding="async" loading="lazy" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image026-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image026-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="https://melodyne.ru/wp-content/uploads/2022/11/image026-100x100.png" class="attachment-yelly_square size-yelly_square wp-post-image" alt="Audacity" decoding="async" loading="lazy" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image026-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image026-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /></noscript></noscript>                </div>
  544.            </a>
  545.        </div>
  546.    
  547.    <div class="post-card__body">
  548.        <div class="post-card__title"><a href="https://melodyne.ru/bez-rubriki/top-luchshih-besplatnyh-audioredaktorov/">Топ лучших бесплатных аудиоредакторов</a></div>
  549.  
  550.        
  551.                    <div class="post-card__meta">
  552.                                <span class="post-card__views">625</span>            </div>
  553.        
  554.            </div>
  555. </article>
  556. <article class="post-card post-card--small ">
  557.            <div class="post-card__thumbnail">
  558.            <a href="https://melodyne.ru/instruktsii/top-luchshih-onlayn-audioredaktorov/">
  559.                <div class="post-card__icon">
  560.                    <img width="100" height="100" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://melodyne.ru/wp-content/uploads/2022/11/image022-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="Audacity Audio Editor Online" decoding="async" loading="lazy" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image022-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image022-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://melodyne.ru/wp-content/uploads/2022/11/image022-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="Audacity Audio Editor Online" decoding="async" loading="lazy" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image022-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image022-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="https://melodyne.ru/wp-content/uploads/2022/11/image022-100x100.png" class="attachment-yelly_square size-yelly_square wp-post-image" alt="Audacity Audio Editor Online" decoding="async" loading="lazy" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image022-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image022-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /></noscript></noscript>                </div>
  561.            </a>
  562.        </div>
  563.    
  564.    <div class="post-card__body">
  565.        <div class="post-card__title"><a href="https://melodyne.ru/instruktsii/top-luchshih-onlayn-audioredaktorov/">Топ лучших онлайн аудиоредакторов</a></div>
  566.  
  567.        
  568.                    <div class="post-card__meta">
  569.                                <span class="post-card__views">605</span>            </div>
  570.        
  571.            </div>
  572. </article>
  573. <article class="post-card post-card--small ">
  574.            <div class="post-card__thumbnail">
  575.            <a href="https://melodyne.ru/instruktsii/top-luchshih-audioredaktorov-dlya-android/">
  576.                <div class="post-card__icon">
  577.                    <img width="100" height="100" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://melodyne.ru/wp-content/uploads/2022/11/image018-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="AudioLab" decoding="async" loading="lazy" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image018-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image018-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://melodyne.ru/wp-content/uploads/2022/11/image018-100x100.png" class="lazy lazy-hidden attachment-yelly_square size-yelly_square wp-post-image" alt="AudioLab" decoding="async" loading="lazy" srcset="" data-srcset="https://melodyne.ru/wp-content/uploads/2022/11/image018-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image018-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /><noscript><img width="100" height="100" src="https://melodyne.ru/wp-content/uploads/2022/11/image018-100x100.png" class="attachment-yelly_square size-yelly_square wp-post-image" alt="AudioLab" decoding="async" loading="lazy" srcset="https://melodyne.ru/wp-content/uploads/2022/11/image018-100x100.png 100w, https://melodyne.ru/wp-content/uploads/2022/11/image018-150x150.png 150w" sizes="(max-width: 100px) 100vw, 100px" /></noscript></noscript>                </div>
  578.            </a>
  579.        </div>
  580.    
  581.    <div class="post-card__body">
  582.        <div class="post-card__title"><a href="https://melodyne.ru/instruktsii/top-luchshih-audioredaktorov-dlya-android/">Топ лучших аудиоредакторов для Андроид</a></div>
  583.  
  584.        
  585.                    <div class="post-card__meta">
  586.                                <span class="post-card__views">693</span>            </div>
  587.        
  588.            </div>
  589. </article></div></div>
  590. </aside><!-- #secondary -->
  591.  
  592.    
  593.  
  594.    </div><!--.site-content-inner-->
  595.  
  596.    
  597. </div><!--.site-content-->
  598.  
  599.    
  600.    
  601.  
  602. <div class="site-footer-container">
  603.  
  604.    
  605.  
  606.    <div class="footer-navigation fixed" itemscope itemtype="http://schema.org/SiteNavigationElement">
  607.        <div class="main-navigation-inner fixed">
  608.            <div class="menu-menyu-v-futere-container"><ul id="footer_menu" class="menu"><li id="menu-item-45" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-45"><a href="https://melodyne.ru/o-sayte/">О сайте</a></li>
  609. <li id="menu-item-44" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-44"><a href="https://melodyne.ru/kontakty/">Контакты</a></li>
  610. <li id="menu-item-46" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-46"><a rel="privacy-policy" href="https://melodyne.ru/privacy-policy/">Политика конфиденциальности</a></li>
  611. </ul></div>        </div>
  612.    </div><!--footer-navigation-->
  613.  
  614.  
  615.    <footer id="colophon" class="site-footer full" itemscope itemtype="http://schema.org/WPFooter">
  616.        <div class="site-footer-inner fixed">
  617.  
  618.            
  619.            
  620. <div class="footer-bottom">
  621.    <div class="footer-info">
  622.        <div class="footer-copyright">© 2022-2024 Не является официальным сайтом. Все товарные знаки принадлежат их владельцам.</div>
  623.        <div class="footer-under-copyright"></div>
  624.        </div>
  625.  
  626.    </div>
  627.        </div>
  628.    </footer><!--.site-footer-->
  629. </div>
  630.  
  631.  
  632.            <button type="button" class="scrolltop js-scrolltop"></button>
  633.    
  634.    
  635. </div><!-- #page -->
  636.  
  637. <script>var pseudo_links = document.querySelectorAll(".pseudo-clearfy-link");for (var i=0;i<pseudo_links.length;i++ ) { pseudo_links[i].addEventListener("click", function(e){   window.open( e.target.getAttribute("data-uri") ); }); }</script><script>
  638. if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://melodyne.ru/wp-admin/admin-ajax.php';}
  639. if (typeof gather_content==='undefined') {var gather_content = true;}
  640. if (typeof endedSc==='undefined') {var endedSc = false;}
  641. if (typeof endedCc==='undefined') {var endedCc = false;}
  642. if (typeof usedAdBlocksArray==='undefined') {var usedAdBlocksArray = [];}
  643. if (typeof usedBlockSettingArrayIds==='undefined') {var usedBlockSettingArrayIds = [];}
  644. if (typeof sameElementAfterWidth==='undefined') {var sameElementAfterWidth = false;}
  645. if (typeof sameElementAfterExcClassId==='undefined') {var sameElementAfterExcClassId = false;}
  646. if (typeof sameElementAfterFromConstruction==='undefined') {var sameElementAfterFromConstruction = false;}
  647. if (typeof rb_tempElement_check==='undefined') {var rb_tempElement_check = false;}
  648. if (typeof rb_tempElement==='undefined') {var rb_tempElement = null;}
  649. if (typeof window.jsInputerLaunch==='undefined') {window.jsInputerLaunch = -1;}
  650.  
  651. function launchUpdateRbDisplays() {
  652.    if ((typeof updateRbDisplays !== 'undefined')&&(typeof updateRbDisplays === 'function')) {
  653.        updateRbDisplays();
  654.    } else {
  655.        setTimeout(function () {
  656.            launchUpdateRbDisplays();
  657.        }, 200);
  658.    }
  659. }
  660.  
  661. /* "sc" in variables - mark for shortcode variable */
  662. function shortcodesInsert() {
  663.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass.scMark'),
  664.        scBlockId = -1,
  665.        scAdId = -1,
  666.        blockStatus = '',
  667.        dataFull = -1,
  668.        gatheredBlockChild,
  669.        okStates = ['done','refresh-wait','no-block','fetched'],
  670.        scContainer,
  671.        sci,
  672.        i1 = 0,
  673.        skyscraperCheck = [],
  674.        skyscraperStatus = false,
  675.        splitedSkyscraper = [],
  676.        gatheredBlockChildSkyParts = [],
  677.        stickyStatus = false,
  678.        stickyCheck = [],
  679.        stickyFixedStatus = false,
  680.        stickyFixedCheck = [],
  681.        overflowCheck = [],
  682.        overflowStatus = false,
  683.        repeatableIdentifier = "",
  684.        dataCidIdentifier = null,
  685.        divCidElement = '';
  686.  
  687.    if (typeof scArray !== 'undefined') {
  688.        if (scArray&&scArray.length > 0&&gatheredBlocks&&gatheredBlocks.length > 0&&typeof window.rulvW5gntb !== 'undefined') {
  689.            dataCidIdentifier = window.rulvW5gntb;
  690.            for (let i = 0; i < gatheredBlocks.length; i++) {
  691.                gatheredBlockChild = gatheredBlocks[i].children[0];
  692.                if (!gatheredBlockChild) {
  693.                    continue;
  694.                }
  695.                scAdId = -3;
  696.                blockStatus = null;
  697.                scContainer = null;
  698.                dataFull = -1;
  699.                skyscraperStatus = false;
  700.                splitedSkyscraper = [];
  701.                gatheredBlockChildSkyParts = [];
  702.                stickyStatus = false;
  703.                stickyCheck = [];
  704.                stickyFixedStatus = false;
  705.                stickyFixedCheck = [];
  706.                repeatableIdentifier = "";
  707.                divCidElement = null;
  708.  
  709.                scAdId = gatheredBlockChild.getAttribute('data-aid');
  710.                scBlockId = gatheredBlockChild.getAttribute('data-id');
  711.                blockStatus = gatheredBlockChild.getAttribute('data-state');
  712.                dataFull = gatheredBlockChild.getAttribute('data-full');
  713.  
  714.                if (scBlockId&&scAdId > 0) {
  715.                    sci = -1;
  716.                    for (i1 = 0; i1 < scArray.length; i1++) {
  717.                        if (scBlockId == scArray[i1]['blockId']&&scAdId == scArray[i1]['adId']) {
  718.                            sci = i1;
  719.                        }
  720.                    }
  721.  
  722.                    if (sci > -1) {
  723.                        if (blockStatus&&okStates.includes(blockStatus)) {
  724.                            if (blockStatus=='no-block') {
  725.                                gatheredBlockChild.innerHTML = '';
  726.                            } else if ((blockStatus=='fetched'&&dataFull==1)||!['no-block','fetched'].includes(blockStatus)) {
  727.                                for (let cl1 = 0; cl1 < gatheredBlocks[i].classList.length; cl1++) {
  728.                                    if (gatheredBlocks[i].classList[cl1].includes("repeatable-mark")) {
  729.                                        repeatableIdentifier = gatheredBlocks[i].classList[cl1];
  730.                                    }
  731.                                }
  732.  
  733.                                if (repeatableIdentifier) {
  734.                                    divCidElement = document.querySelectorAll(".percentPointerClass.scMark."+repeatableIdentifier+' div[data-cid="'+dataCidIdentifier+'"]');
  735.                                } else {
  736.                                    divCidElement = gatheredBlockChild.querySelectorAll('div[data-cid="'+dataCidIdentifier+'"]');
  737.                                }
  738.  
  739.                                var text = scArray[sci]['text'];
  740.                                if (divCidElement&&divCidElement.length > 0) {
  741.                                    for (let i2 = 0; i2 < divCidElement.length; i2++) {
  742.                                        jQuery(divCidElement[i2]).html(text);
  743.                                    }
  744.                                } else {
  745.                                    jQuery(gatheredBlockChild).html(text);
  746.                                }
  747.                                launchUpdateRbDisplays();
  748.                            }
  749.                            if (blockStatus!='fetched'||(blockStatus=='fetched'&&dataFull==1)) {
  750.                                for (i1 = 0; i1 < scArray.length; i1++) {
  751.                                    if (scBlockId == scArray[i1]['blockId']) {
  752.                                        scArray.splice(i1, 1);
  753.                                        i1--;
  754.                                    }
  755.                                }
  756.                                gatheredBlocks[i].classList.remove('scMark');
  757.                            }
  758.                        }
  759.                    }
  760.                } else if (scBlockId&&scAdId < 1&&['no-block','fetched'].includes(blockStatus)) {
  761.                    for (i1 = 0; i1 < scArray.length; i1++) {
  762.                        if (scBlockId == scArray[i1]['blockId']) {
  763.                            scArray.splice(i1, 1);
  764.                            i1--;
  765.                        }
  766.                    }
  767.                    gatheredBlocks[i].classList.remove('scMark');
  768.                }
  769.            }
  770.        } else if (!scArray||(scArray&&scArray.length < 1)) {
  771.            endedSc = true;
  772.        }
  773.    } else {
  774.        endedSc = true;
  775.    }
  776.  
  777.    if (!endedSc) {
  778.        setTimeout(function () {
  779.            shortcodesInsert();
  780.        }, 200);
  781.    }
  782. }
  783.  
  784. function clearUnsuitableCache(cuc_cou) {
  785.    let scAdId = -1;
  786.    let ccRepeat = false;
  787.  
  788.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .'));
  789.  
  790.    if (gatheredBlocks&&gatheredBlocks.length > 0) {
  791.        for (let i = 0; i < gatheredBlocks.length; i++) {
  792.            if (gatheredBlocks[i]['dataset']['aid']&&gatheredBlocks[i]['dataset']['aid'] < 0) {
  793.                if ((gatheredBlocks[i]['dataset']["state"]=='no-block')||(['done','fetched','refresh-wait'].includes(gatheredBlocks[i]['dataset']["state"]))) {
  794.                    gatheredBlocks[i]['innerHTML'] = '';
  795.                } else {
  796.                    ccRepeat = true;
  797.                }
  798.            } else if (!gatheredBlocks[i]['dataset']['aid']) {
  799.                ccRepeat = true;
  800.            }
  801.        }
  802.        if (cuc_cou < 50) {
  803.            if (ccRepeat) {
  804.                setTimeout(function () {
  805.                    clearUnsuitableCache(cuc_cou+1);
  806.                }, 100);
  807.            }
  808.        } else {
  809.            endedCc = true;
  810.        }
  811.    } else {
  812.        endedCc = true;
  813.    }
  814. }
  815.  
  816. function blocksRepositionUse(containerString, blType, searchType, contentElement) {
  817.    let blocksInContainer;
  818.    let blLocal = blType;
  819.    let currentBlock;
  820.    let currentBlockId;
  821.    let currentBlockPosition;
  822.    let currentContainer;
  823.    let i = 0;
  824.    let j = 0;
  825.    let blockStrJs = ' .percentPointerClass.marked';
  826.    let blockStrPhp = ' .percentPointerClass:not(.marked)';
  827.    let blockStr = ' .percentPointerClass';
  828.    let checkPointer = null;
  829.    let blockRepeatEnd = false;
  830.  
  831.    if (searchType) {
  832.        if (searchType == 'marked') {
  833.            while (!blockRepeatEnd) {
  834.                blLocal = blLocal.parentElement;
  835.                if (blLocal) {
  836.                    checkPointer = blLocal.querySelector("#content_pointer_id");
  837.                    if (!checkPointer) {
  838.                        blocksInContainer = jQuery(blLocal).parent(containerString);
  839.                        if (blocksInContainer && blocksInContainer.length > 0) {
  840.                            /* checkPointer = blocksInContainer.querySelector("#content_pointer_id"); */
  841.                            checkPointer = jQuery(blocksInContainer).find("#content_pointer_id");
  842.                            if (checkPointer && checkPointer.length > 0) {
  843.                                blocksInContainer = null;
  844.                            }
  845.                            blockRepeatEnd = true;
  846.                        }
  847.                    } else {
  848.                        blockRepeatEnd = true
  849.                    }
  850.                } else {
  851.                    blockRepeatEnd = true
  852.                }
  853.            }
  854.            /* blocksInContainer = jQuery(blType).parent(containerString); */
  855.            if (blocksInContainer&&blocksInContainer.length > 0) {
  856.                /* blocksInContainer.parentNode.insertBefore(rb_tempElement, blocksInContainer); */
  857.                blocksInContainer[0].parentNode.insertBefore(rb_tempElement, blocksInContainer[0]);
  858.  
  859.                sameElementAfterExcClassId = false;
  860.                return blocksInContainer[0];
  861.            }
  862.            return blType;
  863.        } else if (searchType == 'non-marked') {
  864.            blocksInContainer = document.querySelectorAll(blType + containerString + blockStrPhp);
  865.            if (blocksInContainer && blocksInContainer.length > 0 && usedBlockSettingArray && usedBlockSettingArray.length > 0) {
  866.                for (i = 0; i < blocksInContainer.length; i++) {
  867.                    currentBlock = blocksInContainer[i];
  868.                    currentBlockId = currentBlock.querySelector('.' + block_classes.join(', .')).getAttribute('data-id');
  869.                    currentContainer = null;
  870.                    for (j = 0; j < usedBlockSettingArray.length; i++) {
  871.                        if (usedBlockSettingArray[i]['id'] == currentBlockId) {
  872.                            currentBlockPosition = usedBlockSettingArray[i]['elementPosition'];
  873.                            currentContainer = currentBlock.closest(blType + containerString);
  874.                            if (currentBlockPosition == 0) {
  875.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer);
  876.                            } else {
  877.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer.nextSibling);
  878.                            }
  879.                            break;
  880.                        }
  881.                    }
  882.                }
  883.            }
  884.        }
  885.    }
  886.    return false;
  887. }
  888.  
  889. function createStyleElement(blockNumber, localElementCss) {
  890.    let htmlToAdd = '';
  891.    let marginString;
  892.    let textAlignString;
  893.    let contPoi;
  894.    let emptyValues = false;
  895.    let elementToAddStyleLocal = document.querySelector('#blocksAlignStyle');
  896.    if (!elementToAddStyleLocal) {
  897.        contPoi = document.querySelector('#content_pointer_id');
  898.        if (!contPoi) {
  899.            return false;
  900.        }
  901.  
  902.        elementToAddStyleLocal = document.createElement('style');
  903.        elementToAddStyleLocal.setAttribute('id', 'blocksAlignStyle');
  904.        contPoi.parentNode.insertBefore(elementToAddStyleLocal, contPoi);
  905.    }
  906.  
  907.    switch (localElementCss) {
  908.        case 'left':
  909.            emptyValues = false;
  910.            marginString = '0 auto 0 0';
  911.            textAlignString = 'left';
  912.            break;
  913.        case 'right':
  914.            emptyValues = false;
  915.            marginString = '0 0 0 auto';
  916.            textAlignString = 'right';
  917.            break;
  918.        case 'center':
  919.            emptyValues = false;
  920.            marginString = '0 auto';
  921.            textAlignString = 'center';
  922.            break;
  923.        case 'default':
  924.            emptyValues = true;
  925.            marginString = 'default';
  926.            textAlignString = 'default';
  927.            /** here will be css */
  928.            break;
  929.    }
  930.    if (!emptyValues) {
  931.        htmlToAdd = '.percentPointerClass  > *[data-id="'+blockNumber+'"] {\n' +
  932.            '    margin: '+marginString+';\n' +
  933.            '}\n';
  934.    }
  935.  
  936.    elementToAddStyleLocal.innerHTML += htmlToAdd;
  937.    return textAlignString;
  938. }
  939.  
  940. function initTargetToInsert(position, type, currentElement) {
  941.    let posCurrentElement;
  942.    let usedElement;
  943.    if (type == 'element') {
  944.        if (position == 0) {
  945.            posCurrentElement = currentElement;
  946.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  947.                currentElement.classList.add('rfwp_removedMarginTop');
  948.            }
  949.        } else {
  950.            posCurrentElement = currentElement.nextSibling;
  951.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  952.                currentElement.classList.add('rfwp_removedMarginBottom');
  953.            }
  954.        }
  955.        currentElement.style.clear = 'both';
  956.    } else {
  957.        usedElement = currentElement;
  958.        if (position == 0) {
  959.            posCurrentElement = usedElement;
  960.        } else {
  961.            posCurrentElement = usedElement.nextSibling;
  962.        }
  963.    }
  964.    return posCurrentElement;
  965. }
  966.  
  967. function checkAdsWidth(content_pointer, posCurrentElement, currentElement) {
  968.    let widthChecker = document.querySelector('#widthChecker');
  969.    let widthCheckerStyle = null;
  970.    let content_pointerStyle = getComputedStyle(content_pointer);
  971.    /* let getPositionForTempElement = null;
  972.    let testImgDetected = false;
  973.    let testImg;
  974.    let testImageCompWidth;
  975.    let testImgCou = 0
  976.    let figureChilds;
  977.    let figureComWidth;
  978.    let fcCou = 0; */
  979.    let content = content_pointer.parentElement;
  980.  
  981.    if (!widthChecker) {
  982.        widthChecker = document.createElement("div");
  983.        widthChecker.setAttribute('id','widthChecker');
  984.        widthChecker.style.display = 'flex';
  985.    }
  986.  
  987.    if (content) {
  988.        posCurrentElement = initTargetToInsert(posCurrentElement, 'term', currentElement);
  989.        currentElement.parentNode.insertBefore(widthChecker, posCurrentElement);
  990.        widthCheckerStyle = getComputedStyle(widthChecker);
  991.        /* testImg = currentElement.previousSibling;
  992.        if (testImg) {
  993.            while (!testImgDetected&&testImgCou<4) {
  994.                if (testImg&&testImg.nodeName.toLowerCase() === 'figure') {
  995.                    figureComWidth = getComputedStyle(testImg);
  996.                    figureComWidth = parseInt(figureComWidth.width);
  997.                    figureChilds = testImg.childNodes;
  998.                    if (figureChilds&&figureChilds.length > 0) {
  999.                        while (!testImgDetected&&figureChilds[fcCou]) {
  1000.                            if (figureChilds[fcCou] instanceof HTMLImageElement) {
  1001.                                testImgDetected = true;
  1002.                                testImageCompWidth = getComputedStyle(figureChilds[fcCou]);
  1003.                                testImageCompWidth = parseInt(testImageCompWidth.width);
  1004.                                console.log('img_f_w:'+figureComWidth+'; img_w:'+testImageCompWidth+';');
  1005.                            }
  1006.                            fcCou++;
  1007.                        }
  1008.                    }
  1009.                }
  1010.                if (testImg instanceof HTMLImageElement) {
  1011.                    testImgDetected = true;
  1012.                    testImageCompWidth = getComputedStyle(testImg);
  1013.                    testImageCompWidth = parseInt(testImageCompWidth.width);
  1014.                    console.log('img_w:'+testImageCompWidth+';');
  1015.                }
  1016.                if (!testImg.previousSibling) {
  1017.                    break;
  1018.                }
  1019.                testImg = testImg.previousSibling;
  1020.                testImgCou++;
  1021.            }
  1022.        }
  1023.        console.log('cp_w:'+parseInt(content_pointerStyle.width)+'; wc_w:'+parseInt(widthCheckerStyle.width)+';'); */
  1024.        if (parseInt(widthCheckerStyle.width) >= (parseInt(content_pointerStyle.width) - 50)) {
  1025.            return true;
  1026.        }
  1027.    }
  1028.    currentElement.parentNode.insertBefore(rb_tempElement, currentElement.nextSibling);
  1029.    rb_tempElement_check = true;
  1030.    return false;
  1031. }
  1032.  
  1033. /* function currentElementReceiver(revert, curSum, elList, currentElement) {
  1034.    let origCurrentElement = currentElement;
  1035.    let content_pointer = document.querySelector("#content_pointer_id");
  1036.    let sameElementAfterWidth = false;
  1037.    let testCou = 0;
  1038.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1039.        currentElement = elList[curSum];
  1040.        try {
  1041.            sameElementAfterWidth=true;
  1042.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1043.        } catch (ex) {
  1044.            console.log(ex.message);
  1045.        }
  1046.        revert? curSum--: curSum++;
  1047.        testCou++;
  1048.    }
  1049.    return currentElement?currentElement:origCurrentElement;
  1050. } */
  1051.  
  1052. function currentElementReceiverSpec(revert, curSum, elList, currentElement) {
  1053.    let origCurrentElement = currentElement;
  1054.    let content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1055.    let sameElementAfterWidth = false;
  1056.    let testCou = 0;
  1057.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1058.        currentElement = elList[curSum]['element'];
  1059.        try {
  1060.            sameElementAfterWidth=true;
  1061.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1062.        } catch (ex) {
  1063.            console.log(ex.message);
  1064.        }
  1065.        revert? curSum--: curSum++;
  1066.        testCou++;
  1067.    }
  1068.    return currentElement?currentElement:origCurrentElement;
  1069. }
  1070.  
  1071. function excIdClUnpacker() {
  1072.    let excArr = [],
  1073.        cou = 0,
  1074.        currExcStr = '',
  1075.        curExcFirst = '';
  1076.    excArr['id'] = [];
  1077.    excArr['class'] = [];
  1078.    excArr['tag'] = [];
  1079.    if (excIdClass&&excIdClass.length > 0) {
  1080.        while (excIdClass[cou]) {
  1081.            currExcStr = excIdClass[cou];
  1082.            if (currExcStr.length > 0) {
  1083.                curExcFirst = currExcStr.substring(0,1);
  1084.                switch (curExcFirst) {
  1085.                    case '#':
  1086.                        if (currExcStr.length > 1) {
  1087.                            currExcStr = currExcStr.substring(1);
  1088.                            excArr['id'].push(currExcStr);
  1089.                        }
  1090.                        break;
  1091.                    case '.':
  1092.                        if (currExcStr.length > 1) {
  1093.                            currExcStr = currExcStr.substring(1);
  1094.                            excArr['class'].push(currExcStr);
  1095.                        }
  1096.                        break;
  1097.                    default:
  1098.                        excArr['tag'].push(currExcStr);
  1099.                        break;
  1100.                }
  1101.                cou++;
  1102.            }
  1103.        }
  1104.    }
  1105.    return excArr;
  1106. }
  1107.  
  1108. function asyncBlocksInsertingFunction(blockSettingArray) {
  1109.    try {
  1110.        var content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1111.        var parent_with_content = content_pointer.parentElement;
  1112.        var lordOfElements = parent_with_content;
  1113.        parent_with_content = parent_with_content.parentElement;
  1114.        var newElement = document.createElement("div");
  1115.        var elementToAdd;
  1116.        var elementToAddStyle;
  1117.        var poolbackI = 0;
  1118.        var counter = 0;
  1119.        var currentElement;
  1120.        var repeatableCurrentElement;
  1121.        var repeatableSuccess;
  1122.        var reCou;
  1123.        var curFirstPlace;
  1124.        var curElementCount;
  1125.        var curElementStep;
  1126.        var backElement = 0;
  1127.        var sumResult = 0;
  1128.        var curSumResult = 0;
  1129.        var repeat = false;
  1130.        var currentElementChecker = false;
  1131.        let containerFor6th = [];
  1132.        let containerFor7th = [];
  1133.        var posCurrentElement;
  1134.        var block_number;
  1135.        let contentLength = content_pointer.getAttribute('data-content-length');
  1136.        let rejectedBlocks = content_pointer.getAttribute('data-rejected-blocks');
  1137.        if (rejectedBlocks&&rejectedBlocks.length > 0) {
  1138.            rejectedBlocks = rejectedBlocks.split(',');
  1139.        }
  1140.        let widthCheck = false;
  1141.        let currentElementList;
  1142.        var testElement1 = null;
  1143.        var termorarity_parent_with_content = parent_with_content;
  1144.        var termorarity_parent_with_content_length = 0;
  1145.        var headersList = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
  1146.        for (var hc1 = 0; hc1 < headersList.length; hc1++) {
  1147.            termorarity_parent_with_content_length += termorarity_parent_with_content.getElementsByTagName(headersList[hc1]).length;
  1148.        }
  1149.  
  1150.        let detailedElementList;
  1151.        let ExcStrCou = 1;
  1152.        let detailedQueryString;
  1153.        let usedElement;
  1154.        let tagList = [];
  1155.        let localSumResult;
  1156.        let binderName;
  1157.  
  1158.        var removeClearing;
  1159.        var repeatableBlockIdentifier = 0;
  1160.  
  1161.        var i;
  1162.  
  1163.        if (contentLength < 1) {
  1164.            contentLength = parent_with_content.innerText.length
  1165.        }
  1166.  
  1167.        rb_tempElement = document.querySelector('#rb_tempElement');
  1168.        if (!rb_tempElement) {
  1169.            rb_tempElement = document.createElement('span');
  1170.            rb_tempElement.setAttribute('id', 'rb_tempElement');
  1171.        }
  1172.  
  1173.        function getFromConstructions(currentElement) {
  1174.            if (currentElement.parentElement.tagName.toLowerCase() == "blockquote") {
  1175.                currentElement = currentElement.parentElement;
  1176.                /* initTargetToInsert(blockSettingArray, 'element', currentElement); */
  1177.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1178.                rb_tempElement_check = true;
  1179.                sameElementAfterFromConstruction=false;
  1180.            } else if (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1181.                currentElement = currentElement.parentElement;
  1182.                while (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1183.                    currentElement = currentElement.parentElement;
  1184.                }
  1185.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1186.                rb_tempElement_check = true;
  1187.                sameElementAfterFromConstruction=false;
  1188.            }
  1189.            return currentElement;
  1190.        }
  1191.  
  1192.        function directClassElementDetecting(blockSettingArray, directElement) {
  1193.            let findQuery = 0;
  1194.            let directClassElementResult = [];
  1195.  
  1196.            currentElement = document.querySelectorAll(directElement);
  1197.            if (currentElement.length > 0) {
  1198.                if (blockSettingArray[i]['elementPlace'] > 1) {
  1199.                    if (currentElement.length >= blockSettingArray[i]['elementPlace']) {
  1200.                        currentElement = currentElement[blockSettingArray[i]['elementPlace']-1];
  1201.                    } else if (currentElement.length < blockSettingArray[i]['elementPlace']) {
  1202.                        currentElement = currentElement[currentElement.length - 1];
  1203.                    } else {
  1204.                        findQuery = 1;
  1205.                    }
  1206.                } else if (blockSettingArray[i]['elementPlace'] < 0) {
  1207.                    if ((currentElement.length + blockSettingArray[i]['elementPlace'] + 1) > 0) {
  1208.                        currentElement = currentElement[currentElement.length + blockSettingArray[i]['elementPlace']];
  1209.                    } else {
  1210.                        findQuery = 1;
  1211.                    }
  1212.                } else {
  1213.                    findQuery = 1;
  1214.                }
  1215.            } else {
  1216.                findQuery = 1;
  1217.            }
  1218.  
  1219.            directClassElementResult['findQuery'] = findQuery;
  1220.            directClassElementResult['currentElement'] = currentElement;
  1221.  
  1222.            return directClassElementResult;
  1223.        }
  1224.  
  1225.        function placingToH1(usedElement, elementTagToFind) {
  1226.            let uselessLet;
  1227.            currentElement = usedElement.querySelectorAll(elementTagToFind);
  1228.  
  1229.            if (currentElement.length < 1) {
  1230.                if (usedElement.parentElement) {
  1231.                    uselessLet = placingToH1(usedElement.parentElement, elementTagToFind);
  1232.                }
  1233.            }
  1234.            return currentElement;
  1235.        }
  1236.  
  1237.        function elementsCleaning(excArr, elList, pwcLocal, gatherString) {
  1238.            let markedClass = 'rb_m_inc';
  1239.            let markedClassBad = 'rb_m_exc';
  1240.            let cou = 0;
  1241.            let cou1 = 0;
  1242.            let finalArr = [];
  1243.            let finalArrClear = [];
  1244.            let checkNearest;
  1245.            let outOfRangeCheck;
  1246.            let gatherRejected;
  1247.            let allower;
  1248.  
  1249.            try {
  1250.                while (elList[cou]) {
  1251.                    allower = true;
  1252.                    if (!elList[cou].classList.contains(markedClassBad)) {
  1253.                        if (excArr&&excArr.length > 0) {
  1254.                            cou1 = 0;
  1255.                            while (excArr[cou1]) {
  1256.                                checkNearest = elList[cou].parentElement.closest(excArr[cou1]);
  1257.                                if (checkNearest) {
  1258.                                    checkNearest.classList.add('currClosest');
  1259.                                    outOfRangeCheck = pwcLocal.querySelector('.currClosest');
  1260.                                    if (outOfRangeCheck) {
  1261.                                        allower = false;
  1262.                                        checkNearest.classList.add(markedClass);
  1263.                                        gatherRejected = checkNearest.querySelectorAll(gatherString);
  1264.                                        if (gatherRejected.length > 0) {
  1265.                                            for (let i1 = 0; i1 < gatherRejected.length; i1++) {
  1266.                                                gatherRejected[i1].classList.add(markedClassBad);
  1267.                                            }
  1268.                                        }
  1269.                                    }
  1270.                                    checkNearest.classList.remove('currClosest');
  1271.                                }
  1272.                                cou1++;
  1273.                            }
  1274.                        }
  1275.                        if (allower===true) {
  1276.                            elList[cou].classList.add(markedClass);
  1277.                            /* finalArr.push(elList[cou]); */
  1278.                        }
  1279.                    }
  1280.                    cou++;
  1281.                }
  1282.                finalArr = pwcLocal.querySelectorAll('.'+markedClass+':not('+markedClassBad+')');
  1283.                finalArrClear = pwcLocal.querySelectorAll('.'+markedClass+',.'+markedClassBad);
  1284.                if (finalArrClear&&finalArrClear.length > 0) {
  1285.                    for (let i1 = 0; i1 < finalArrClear.length; i1++) {
  1286.                        finalArrClear[i1].classList.remove(markedClass,markedClassBad);
  1287.                    }
  1288.                }
  1289.            } catch (er) {
  1290.                console.log(er.message);
  1291.            }
  1292.            return finalArr;
  1293.        }
  1294.  
  1295.        function cureentElementsGather(usedElement, loopLimit = 2, localPwc = parent_with_content) {
  1296.            let curElementSearchRepeater = true;
  1297.            let curElementSearchCounter = 0;
  1298.            let currentElementLoc = null;
  1299.            let ExcludedStringBegin = '';
  1300.            let ExcludedString = '';
  1301.            let ExcludedStringEnd = '';
  1302.            let tagListString = '';
  1303.            let tagListStringExc = '';
  1304.            let cou = 0;
  1305.            /* let excArr = excIdClUnpacker(); */
  1306.            let tagListCou = 0;
  1307.  
  1308.            if (usedElement=='h1') {
  1309.                currentElementLoc = placingToH1(localPwc, usedElement);
  1310.            } else {
  1311.                if (usedElement=='h2-4') {tagList = ['h2','h3','h3'];}
  1312.                else                     {tagList = [usedElement];   }
  1313.                while (tagList[tagListCou]) {
  1314.                    tagListString += ((cou++>0)?',':'')+tagList[tagListCou];
  1315.                    tagListStringExc += ':not('+tagList[tagListCou]+')';
  1316.                    tagListCou++;
  1317.                }
  1318.  
  1319.                ExcludedString = '';
  1320.                if (excIdClass&&excIdClass.length > 0) {
  1321.                    for (let i2 = 0; i2 < excIdClass.length; i2++) {
  1322.                        if (excIdClass[i2].length > 0) {
  1323.                            ExcludedString += (i2>0?',':'')+excIdClass[i2]+tagListStringExc;
  1324.                        }
  1325.                    }
  1326.                }
  1327.                detailedQueryString += tagListString+','+ExcludedString;
  1328.  
  1329.                /* console.log(detailedQueryString); */
  1330.                while (curElementSearchRepeater&&curElementSearchCounter < loopLimit) {
  1331.                    try {
  1332.                        currentElementLoc = localPwc.querySelectorAll(tagListString);
  1333.                    } catch (e1) {console.log(e1.message);}
  1334.                    if (!currentElementLoc) {
  1335.                        if (localPwc.parentElement) {
  1336.                            localPwc = localPwc.parentElement;
  1337.                        } else {
  1338.                            break;
  1339.                        }
  1340.                    } else {
  1341.                        currentElementLoc = elementsCleaning(excIdClass, currentElementLoc, localPwc, detailedQueryString);
  1342.                        curElementSearchRepeater = false;
  1343.                    }
  1344.                    curElementSearchCounter++;
  1345.                }
  1346.            }
  1347.            return currentElementLoc;
  1348.        }
  1349.  
  1350.        function currentElementReceiver(revert, localCurEl = currentElement) {
  1351.            let origCurEl = localCurEl;
  1352.            curSumResult = sumResult;
  1353.            detailedElementList = localCurEl;
  1354.            sameElementAfterWidth = false;
  1355.            let testCou = 0;
  1356.            while (detailedElementList[curSumResult]&&sameElementAfterWidth==false&&testCou < 8) {
  1357.                localCurEl = detailedElementList[curSumResult];
  1358.                try {
  1359.                    sameElementAfterWidth=true;
  1360.                    sameElementAfterWidth = checkAdsWidth(content_pointer, blockSettingArray[i]["elementPosition"], localCurEl);
  1361.                } catch (ex) {
  1362.                    console.log(ex.message);
  1363.                }
  1364.                revert? curSumResult--: curSumResult++;
  1365.                testCou++;
  1366.            }
  1367.            if (localCurEl) {
  1368.                currentElementChecker = true;
  1369.            }
  1370.            return localCurEl?localCurEl:origCurEl;
  1371.        }
  1372.        
  1373.        function endingActions(block_number) {
  1374.            usedBlockSettingArrayIds.push(block_number);
  1375.            blockSettingArray.splice(i--, 1);
  1376.            poolbackI = 1;
  1377.        }
  1378.  
  1379.        for (i = 0; i < blockSettingArray.length; i++) {
  1380.            currentElement = null;
  1381.            currentElementChecker = false;
  1382.            sameElementAfterWidth = false;
  1383.            sameElementAfterExcClassId = false;
  1384.            sameElementAfterFromConstruction = false;
  1385.            tagListCou = 0;
  1386.            poolbackI = 0;
  1387.            detailedQueryString = '';
  1388.            binderName = elementBinderNameGenerator();
  1389.  
  1390.            try {
  1391.                if (!blockSettingArray[i]["text"]
  1392.                    ||(blockSettingArray[i]["text"]&&blockSettingArray[i]["text"].length < 1)
  1393.                    ||(rejectedBlocks&&rejectedBlocks.includes(blockSettingArray[i]["id"]))
  1394.                    ||((blockSettingArray[i]["maxHeaders"] > 0)&&(blockSettingArray[i]["maxHeaders"] < parseInt(termorarity_parent_with_content_length)))
  1395.                    ||((blockSettingArray[i]["maxSymbols"] > 0)&&(blockSettingArray[i]["maxSymbols"] < parseInt(contentLength)))
  1396.                    ||(content_pointer.classList.contains("hard-content")&&blockSettingArray[i]["setting_type"]!=3)
  1397.                ) {
  1398.                    blockSettingArray.splice(i--, 1);
  1399.                    poolbackI = 1;
  1400.                    continue;
  1401.                }
  1402.  
  1403.                block_number = 0;
  1404.  
  1405.                elementToAdd = document.createElement("div");
  1406.                elementToAdd.classList.add("percentPointerClass");
  1407.                elementToAdd.classList.add("marked");
  1408.                if (blockSettingArray[i]["sc"]==1) {
  1409.                    elementToAdd.classList.add("scMark");
  1410.                }
  1411.                elementToAdd.innerHTML = blockSettingArray[i]["text"];
  1412.                elementToAdd.dataset.rbinder = binderName;
  1413.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  1414.  
  1415.                if (blockDuplicate == 'no') {
  1416.                    if (usedBlockSettingArrayIds.length > 0) {
  1417.                        for (let i1 = 0; i1 < usedBlockSettingArrayIds.length; i1++) {
  1418.                            if (block_number==usedBlockSettingArrayIds[i1]) {
  1419.                                blockSettingArray.splice(i--, 1);
  1420.                                poolbackI = 1;
  1421.                                break;
  1422.                            }
  1423.                        }
  1424.                        if (poolbackI == 1) {
  1425.                            continue;
  1426.                        }
  1427.                    }
  1428.                }
  1429.  
  1430.                elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1431.  
  1432.                if (elementToAddStyle&&elementToAddStyle!='default') {
  1433.                    elementToAdd.style.textAlign = elementToAddStyle;
  1434.                }
  1435.  
  1436.                if ((blockSettingArray[i]["minHeaders"] > 0)&&(blockSettingArray[i]["minHeaders"] > termorarity_parent_with_content_length)) {continue;}
  1437.                if (blockSettingArray[i]["minSymbols"] > contentLength) {continue;}
  1438.  
  1439.                if (blockSettingArray[i]["setting_type"] == 1) {
  1440.                    currentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1441.                    if (currentElement) {
  1442.                        if (blockSettingArray[i]["elementPlace"] < 0) {
  1443.                            sumResult = currentElement.length + blockSettingArray[i]["elementPlace"];
  1444.                            if (sumResult >= 0 && sumResult < currentElement.length) {
  1445.                                currentElement = currentElementReceiver(true);
  1446.                            }
  1447.                        } else {
  1448.                            sumResult = blockSettingArray[i]["elementPlace"] - 1;
  1449.                            if (sumResult < currentElement.length) {
  1450.                                currentElement = currentElementReceiver(false);
  1451.                            }
  1452.                        }
  1453.                    }
  1454.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1455.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1456.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1457.                        currentElement.classList.add('rbinder-'+binderName);
  1458.                        elementToAdd.classList.remove('coveredAd');
  1459.                        usedBlockSettingArrayIds.push(block_number);
  1460.                        blockSettingArray.splice(i--, 1);
  1461.                        poolbackI = 1;
  1462.                        rb_tempElement_check = false;
  1463.                    } else {
  1464.                        repeat = true;
  1465.                    }
  1466.                }
  1467.                else if (blockSettingArray[i]["setting_type"] == 2) {
  1468.                    if (blockDuplicate == 'no') {
  1469.                        blockSettingArray[i]["elementCount"] = 1;
  1470.                    }
  1471.                    repeatableCurrentElement = [];
  1472.                    reCou = 0;
  1473.                    curFirstPlace = blockSettingArray[i]["firstPlace"];
  1474.                    curElementCount = blockSettingArray[i]["elementCount"];
  1475.                    curElementStep = blockSettingArray[i]["elementStep"];
  1476.                    repeatableSuccess = false;
  1477.  
  1478.                    elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1479.  
  1480.                    repeatableCurrentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1481.                    if (repeatableCurrentElement) {
  1482.                        for (let i1 = 0; i1 < blockSettingArray[i]["elementCount"]; i1++) {
  1483.                            currentElementChecker = false;
  1484.                            let repElementToAdd = document.createElement("div");
  1485.                            repElementToAdd.classList.add("percentPointerClass");
  1486.                            repElementToAdd.classList.add("marked");
  1487.                            if (blockSettingArray[i]["sc"]==1) {
  1488.                                repElementToAdd.classList.add("scMark");
  1489.                            }
  1490.                            repElementToAdd.classList.add("repeatable-mark-"+repeatableBlockIdentifier);
  1491.                            repElementToAdd.innerHTML = blockSettingArray[i]["text"];
  1492.  
  1493.                            if (elementToAddStyle&&elementToAddStyle!='default') {
  1494.                                repElementToAdd.style.textAlign = elementToAddStyle;
  1495.                            }
  1496.  
  1497.                            sumResult = Math.round(parseInt(blockSettingArray[i]["firstPlace"]) + (i1*parseInt(blockSettingArray[i]["elementStep"])) - 1);
  1498.                            if (sumResult < repeatableCurrentElement.length) {
  1499.                                currentElement = currentElementReceiver(false, repeatableCurrentElement);
  1500.                            }
  1501.  
  1502.                            if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1503.                                posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1504.                                currentElement.parentNode.insertBefore(repElementToAdd, posCurrentElement);
  1505.                                currentElement.classList.add('rbinder-'+binderName);
  1506.                                repElementToAdd.classList.remove('coveredAd');
  1507.                                curFirstPlace = sumResult + parseInt(blockSettingArray[i]["elementStep"]) + 1;
  1508.                                curElementCount--;
  1509.                                repeatableSuccess = true;
  1510.                            } else {
  1511.                                repeatableSuccess = false;
  1512.                                break;
  1513.                            }
  1514.                        }
  1515.                    }
  1516.                    if (repeatableSuccess==true) {
  1517.                        usedBlockSettingArrayIds.push(block_number);
  1518.                        blockSettingArray.splice(i--, 1);
  1519.                        poolbackI = 1;
  1520.                        repeatableBlockIdentifier++;
  1521.                    } else {
  1522.                        if (!blockSettingArray[i]["unsuccess"]) {
  1523.                            blockSettingArray[i]["unsuccess"] = 1;
  1524.                        } else {
  1525.                            blockSettingArray[i]["unsuccess"] = Math.round(blockSettingArray[i]["unsuccess"] + 1);
  1526.                        }
  1527.                        if (blockSettingArray[i]["unsuccess"] > 10) {
  1528.                            usedBlockSettingArrayIds.push(block_number);
  1529.                            blockSettingArray.splice(i--, 1);
  1530.                            poolbackI = 1;
  1531.                        } else {
  1532.                            blockSettingArray[i]["firstPlace"] = curFirstPlace;
  1533.                            blockSettingArray[i]["elementCount"] = curElementCount;
  1534.                            blockSettingArray[i]["elementStep"] = curElementStep;
  1535.                            repeat = true;
  1536.                        }
  1537.                    }
  1538.                }
  1539.                else if (blockSettingArray[i]["setting_type"] == 3) {
  1540.                    let elementTypeSymbol = '';
  1541.                    let elementSpaceSymbol = '';
  1542.                    let elementName = '';
  1543.                    let elementType = '';
  1544.                    let elementTag  = '';
  1545.                    let findQuery = 0;
  1546.                    let directClassResult = [];
  1547.                    let directElement = blockSettingArray[i]["directElement"].trim();
  1548.  
  1549.                    if (directElement.search('#') > -1) {
  1550.                        findQuery = 1;
  1551.                    } else if ((directElement.search('#') < 0)&&(directElement.search('.') > -1)) {
  1552.                        directClassResult = directClassElementDetecting(blockSettingArray, directElement);
  1553.                        findQuery = directClassResult['findQuery'];
  1554.                        currentElement = directClassResult['currentElement'];
  1555.                    }
  1556.                    if (findQuery == 1) {
  1557.                        currentElement = document.querySelector(directElement);
  1558.                    }
  1559.                    if (currentElement) {
  1560.                        currentElementChecker = true;
  1561.                    }
  1562.  
  1563.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1564.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1565.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1566.                        elementToAdd.classList.remove('coveredAd');
  1567.                        currentElement.classList.add('rbinder-'+binderName);
  1568.                        usedBlockSettingArrayIds.push(block_number);
  1569.                        blockSettingArray.splice(i--, 1);
  1570.                        poolbackI = 1;
  1571.                    } else {
  1572.                        repeat = true;
  1573.                    }
  1574.                }
  1575.                else if (blockSettingArray[i]["setting_type"] == 4) {
  1576.                    document.querySelector("#content_pointer_id").parentElement.append(elementToAdd);
  1577.                    usedBlockSettingArrayIds.push(block_number);
  1578.                    blockSettingArray.splice(i--, 1);
  1579.                    poolbackI = 1;
  1580.                }
  1581.                else if (blockSettingArray[i]["setting_type"] == 5) {
  1582.                    let currentElementList = cureentElementsGather('p', 1, content_pointer.parentElement);
  1583.                    if (currentElementList&&currentElementList.length > 0) {
  1584.                        let pCount = currentElementList.length;
  1585.                        let elementNumber = Math.round(pCount/2);
  1586.                        if (pCount > 1) {
  1587.                            currentElement = currentElementList[elementNumber+1];
  1588.                        }
  1589.                        if (currentElement != undefined && currentElement != null) {
  1590.                            if (pCount > 1) {
  1591.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement);
  1592.                            } else {
  1593.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement.nextSibling);
  1594.                            }
  1595.                            elementToAdd.classList.remove('coveredAd');
  1596.                            currentElement.classList.add('rbinder-'+binderName);
  1597.                            usedBlockSettingArrayIds.push(block_number);
  1598.                            blockSettingArray.splice(i--, 1);
  1599.                            poolbackI = 1;
  1600.                        } else {
  1601.                            repeat = true;
  1602.                        }
  1603.                    } else {
  1604.                        repeat = true;
  1605.                    }
  1606.                }
  1607.                else if (blockSettingArray[i]["setting_type"] == 6) {
  1608.                    if (containerFor6th.length > 0) {
  1609.                        for (let j = 0; j < containerFor6th.length; j++) {
  1610.                            if (containerFor6th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) {
  1611.                                /* continue; */
  1612.                                if (j == containerFor6th.length-1) {
  1613.                                    containerFor6th.push(blockSettingArray[i]);
  1614.                                    /* usedAdBlocksArray.push(checkIfBlockUsed); */
  1615.                                    usedBlockSettingArrayIds.push(block_number);
  1616.                                    blockSettingArray.splice(i--, 1);
  1617.                                    poolbackI = 1;
  1618.                                    break;
  1619.                                }
  1620.                            } else {
  1621.                                for (let k = containerFor6th.length-1; k > j-1; k--) {
  1622.                                    containerFor6th[k + 1] = containerFor6th[k];
  1623.                                }
  1624.                                containerFor6th[j] = blockSettingArray[i];
  1625.                                /* usedAdBlocksArray.push(checkIfBlockUsed); */
  1626.                                usedBlockSettingArrayIds.push(block_number);
  1627.                                blockSettingArray.splice(i--, 1);
  1628.                                poolbackI = 1;
  1629.                                break;
  1630.                            }
  1631.                        }
  1632.                    } else {
  1633.                        containerFor6th.push(blockSettingArray[i]);
  1634.                        usedBlockSettingArrayIds.push(block_number);
  1635.                        blockSettingArray.splice(i--, 1);
  1636.                        poolbackI = 1;
  1637.                    }
  1638.                /* vidpravutu v vidstiinuk dlya 6ho tipa */
  1639.                }
  1640.                else if (blockSettingArray[i]["setting_type"] == 7) {
  1641.                    if (containerFor7th.length > 0) {
  1642.                        for (let j = 0; j < containerFor7th.length; j++) {
  1643.                            if (containerFor7th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) {
  1644.                                /* continue; */
  1645.                                if (j == containerFor7th.length-1) {
  1646.                                    containerFor7th.push(blockSettingArray[i]);
  1647.                                    usedBlockSettingArrayIds.push(block_number);
  1648.                                    blockSettingArray.splice(i--, 1);
  1649.                                    poolbackI = 1;
  1650.                                    break;
  1651.                                }
  1652.                            } else {
  1653.                                for (let k = containerFor7th.length-1; k > j-1; k--) {
  1654.                                    containerFor7th[k + 1] = containerFor7th[k];
  1655.                                }
  1656.                                containerFor7th[j] = blockSettingArray[i];
  1657.                                usedBlockSettingArrayIds.push(block_number);
  1658.                                blockSettingArray.splice(i--, 1);
  1659.                                poolbackI = 1;
  1660.                                break;
  1661.                            }
  1662.                        }
  1663.                    } else {
  1664.                        containerFor7th.push(blockSettingArray[i]);
  1665.                        usedBlockSettingArrayIds.push(block_number);
  1666.                        blockSettingArray.splice(i--, 1);
  1667.                        poolbackI = 1;
  1668.                    }
  1669.                /* vidpravutu v vidstiinuk dlya 7ho tipa */
  1670.                }
  1671.            } catch (e) {
  1672.                console.log(e.message);
  1673.            }
  1674.        }
  1675.  
  1676.        var array = textLengthGatherer(lordOfElements),
  1677.            tlArray = array.array,
  1678.            length = array.length;
  1679.  
  1680.        if (containerFor6th.length > 0) {
  1681.            percentInserter(lordOfElements, containerFor6th, tlArray, length);
  1682.        }
  1683.        if (containerFor7th.length > 0) {
  1684.            symbolInserter(lordOfElements, containerFor7th, tlArray);
  1685.        }
  1686.        shortcodesInsert();
  1687.        let stopper = 0;
  1688.  
  1689.        window.addEventListener('load', function () {
  1690.            if (repeat = true) {
  1691.                setTimeout(function () {
  1692.                    /* asyncBlocksInsertingFunction(blockSettingArray, contentLength) */
  1693.                    asyncBlocksInsertingFunction(blockSettingArray);
  1694.                }, 100);
  1695.            }
  1696.        });
  1697.    } catch (e) {
  1698.        console.log(e.message);
  1699.    }
  1700. }
  1701.  
  1702. function possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck) {
  1703.    if (possibleTagsArray.includes("LI")) {
  1704.        if (possibleTagsArray.includes("UL")) {
  1705.            possibleTagsInCheck.push("UL");
  1706.        }
  1707.        if (possibleTagsArray.includes("OL")) {
  1708.            possibleTagsInCheck.push("OL");
  1709.        }
  1710.    }
  1711.  
  1712.    return false;
  1713. }
  1714.  
  1715. function textLengthGatherer(lordOfElementsLoc) {
  1716.    var possibleTagsArray;
  1717.    if (typeof tagsListForTextLength!=="undefined") {
  1718.        possibleTagsArray = tagsListForTextLength;
  1719.    } else {
  1720.        possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "BLOCKQUOTE", "INDEX", "ARTICLE", "SECTION"];
  1721.    }
  1722.    let possibleTagsInCheck = ["DIV", "INDEX", "SECTION"];
  1723.  
  1724.    possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck);
  1725.    let excArr = excIdClUnpacker(),
  1726.        textLength = 0,
  1727.        tlArray = [];
  1728.  
  1729.    function textLengthGathererRec(lordOfElementsLoc) {
  1730.        let allowed;
  1731.        let cou1;
  1732.        let classesArray;
  1733.        let countSuccess = 0;
  1734.        try {
  1735.            for (let i = 0; i < lordOfElementsLoc.children.length; i++) {
  1736.                if (possibleTagsArray.includes(lordOfElementsLoc.children[i].tagName)
  1737.                    &&!lordOfElementsLoc.children[i].classList.contains("percentPointerClass")
  1738.                    &&lordOfElementsLoc.children[i].id!="toc_container"
  1739.                ) {
  1740.                    if (possibleTagsInCheck.includes(lordOfElementsLoc.children[i].tagName)
  1741.                        &&(lordOfElementsLoc.children[i].children.length > 0)
  1742.                    ) {
  1743.                        allowed = true;
  1744.                        if (lordOfElementsLoc.children[i].id&&excArr['id'].length > 0) {
  1745.                            cou1 = 0;
  1746.                            while (excArr['id'][cou1]) {
  1747.                                if (lordOfElementsLoc.children[i].id.toLowerCase()==excArr['id'][cou1].toLowerCase()) {
  1748.                                    allowed = false;
  1749.                                    break;
  1750.                                }
  1751.                                cou1++;
  1752.                            }
  1753.                        }
  1754.  
  1755.                        if (lordOfElementsLoc.children[i].classList.length > 0&&excArr['class'].length > 0) {
  1756.                            cou1 = 0;
  1757.                            while (excArr['class'][cou1]) {
  1758.                                classesArray = excArr['class'][cou1].split('.');
  1759.                                if (classesArray.every(className => lordOfElementsLoc.children[i].classList.contains(className))) {
  1760.                                    allowed = false;
  1761.                                    break;
  1762.                                }
  1763.                                cou1++;
  1764.                            }
  1765.                        }
  1766.  
  1767.                        if (excArr['tag'].length > 0) {
  1768.                            cou1 = 0;
  1769.                            while (excArr['tag'][cou1]) {
  1770.                                if (lordOfElementsLoc.children[i].tagName.toLowerCase()==excArr['tag'][cou1].toLowerCase()) {
  1771.                                    allowed = false;
  1772.                                    break;
  1773.                                }
  1774.                                cou1++;
  1775.                            }
  1776.                        }
  1777.  
  1778.                        if (allowed) {
  1779.                            if (textLengthGathererRec(lordOfElementsLoc.children[i], excArr, possibleTagsArray, possibleTagsInCheck)) {
  1780.                                countSuccess++;
  1781.                                continue;
  1782.                            }
  1783.                        }
  1784.                    }
  1785.                    textLength = textLength + lordOfElementsLoc.children[i].innerText.length;
  1786.                    tlArray.push({
  1787.                        tag: lordOfElementsLoc.children[i].tagName,
  1788.                        length: lordOfElementsLoc.children[i].innerText.length,
  1789.                        lengthSum: textLength,
  1790.                        element: lordOfElementsLoc.children[i]
  1791.                    });
  1792.                    countSuccess++;
  1793.                }
  1794.            }
  1795.        } catch (er) {
  1796.            console.log(er.message);
  1797.        }
  1798.        return countSuccess > 0;
  1799.    }
  1800.  
  1801.    textLengthGathererRec(lordOfElementsLoc);
  1802.  
  1803.    return {array: tlArray, length: textLength};
  1804. }
  1805.  
  1806. window.asyncFunctionLauncher = function() {
  1807.    if (window.jsInputerLaunch !== undefined
  1808.        &&[15, 10].includes(window.jsInputerLaunch)
  1809.        &&(typeof asyncBlocksInsertingFunction !== 'undefined' )
  1810.        &&(typeof asyncBlocksInsertingFunction === 'function')
  1811.        &&typeof endedSc!=='undefined'&&
  1812.        typeof endedCc!=='undefined'&&
  1813.        typeof usedAdBlocksArray!=='undefined'&&
  1814.        typeof usedBlockSettingArrayIds!=='undefined'&&
  1815.        typeof sameElementAfterWidth!=='undefined'&&
  1816.        typeof sameElementAfterExcClassId!=='undefined'&&
  1817.        typeof sameElementAfterFromConstruction!=='undefined'&&
  1818.        typeof rb_tempElement_check!=='undefined'&&
  1819.        typeof rb_tempElement!=='undefined'&&
  1820.        typeof window.jsInputerLaunch!=='undefined') {
  1821.        /* asyncBlocksInsertingFunction(blockSettingArray, contentLength); */
  1822.        asyncBlocksInsertingFunction(blockSettingArray);
  1823.        if (!endedSc) {
  1824.            shortcodesInsert();
  1825.        }
  1826.        if (!endedCc) {
  1827.            /* clearUnsuitableCache(0); */
  1828.        }
  1829.        /* blocksReposition();
  1830.        cachePlacing();
  1831.        symbolMarkersPlaced(); */
  1832.    } else {
  1833.        setTimeout(function () {
  1834.            asyncFunctionLauncher();
  1835.        }, 50);
  1836.    }
  1837. };
  1838. /* asyncFunctionLauncher(); */
  1839.  
  1840. function asyncInsertingsInsertingFunction(insertingsArray) {
  1841.    let currentElementForInserting = 0;
  1842.    let currentElementToMove = 0;
  1843.    let positionElement = 0;
  1844.    let position = 0;
  1845.    let insertToAdd = 0;
  1846.    let postId = 0;
  1847.    let repeatSearch = 0;
  1848.    if (insertingsArray&&insertingsArray.length > 0) {
  1849.        for (let i = 0; i < insertingsArray.length; i++) {
  1850.            if (!insertingsArray[i]['used']||(insertingsArray[i]['used']&&insertingsArray[i]['used']==0)) {
  1851.                positionElement = insertingsArray[i]['position_element'];
  1852.                position = insertingsArray[i]['position'];
  1853.                insertToAdd = insertingsArray[i]['content'];
  1854.                postId = insertingsArray[i]['postId'];
  1855.  
  1856.                currentElementForInserting = document.querySelector(positionElement);
  1857.  
  1858.                currentElementToMove = document.querySelector('.coveredInsertings[data-id="'+postId+'"]');
  1859.                if (currentElementForInserting) {
  1860.                    if (position==0) {
  1861.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting);
  1862.                        currentElementToMove.classList.remove('coveredInsertings');
  1863.                        insertingsArray[i]['used'] = 1;
  1864.                    } else {
  1865.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting.nextSibling);
  1866.                        currentElementToMove.classList.remove('coveredInsertings');
  1867.                        insertingsArray[i]['used'] = 1;
  1868.                    }
  1869.                } else {
  1870.                    repeatSearch = 1;
  1871.                }
  1872.            }
  1873.        }
  1874.    }
  1875.    if (repeatSearch == 1) {
  1876.        setTimeout(function () {
  1877.            asyncInsertingsInsertingFunction(insertingsArray);
  1878.        }, 100)
  1879.    }
  1880. }
  1881.  
  1882. function insertingsFunctionLaunch() {
  1883.    if (window.jsInsertingsLaunch !== undefined&&jsInsertingsLaunch == 25) {
  1884.        asyncInsertingsInsertingFunction(insertingsArray);
  1885.    } else {
  1886.        setTimeout(function () {
  1887.            insertingsFunctionLaunch();
  1888.        }, 100)
  1889.    }
  1890. }
  1891.  
  1892. function setLongCache() {
  1893.    let xhttp = new XMLHttpRequest();
  1894.    let sendData = 'action=setLongCache&type=longCatching';
  1895.    xhttp.onreadystatechange = function(redata) {
  1896.        if (this.readyState == 4 && this.status == 200) {
  1897.            console.log('long cache deployed');
  1898.        }
  1899.    };
  1900.    xhttp.open("POST", rb_ajaxurl, true);
  1901.    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  1902.    xhttp.send(sendData);
  1903. }
  1904.  
  1905. function cachePlacing(alert_type, errorInfo=null) {
  1906.    let adBlocks = document.querySelectorAll('.percentPointerClass .' + block_classes.join(', .percentPointerClass .'));
  1907.    let curAdBlock;
  1908.    let okStates = ['done','refresh-wait','no-block','fetched'];
  1909.    /* let adId = -1; */
  1910.    let blockAid = null;
  1911.    let blockId;
  1912.  
  1913.    if (typeof cachedBlocksArray !== 'undefined'&&cachedBlocksArray&&cachedBlocksArray.length > 0&&adBlocks&&adBlocks.length > 0) {
  1914.        for (let i = 0; i < adBlocks.length; i++) {
  1915.            blockAid = adBlocks[i]['dataset']['aid'];
  1916.  
  1917.            if (!blockAid) {
  1918.                blockId = adBlocks[i]['dataset']['id'];
  1919.                if (cachedBlocksArray[blockId]) {
  1920.                    jQuery(adBlocks[i]).html(cachedBlocksArray[blockId]);
  1921.                }
  1922.            }
  1923.        }
  1924.    }
  1925.  
  1926.    if (alert_type&&alert_type=='high') {
  1927.        setLongCache();
  1928.    }
  1929. }
  1930.  
  1931. function symbolInserter(lordOfElements, containerFor7th, tlArray) {
  1932.    try {
  1933.        var currentChildrenLength = 0;
  1934.        let previousBreak = 0;
  1935.        let needleLength;
  1936.        let currentSumLength;
  1937.        let elementToAdd;
  1938.        let elementToBind;
  1939.        let elementToAddStyle;
  1940.        let block_number;
  1941.        let binderName;
  1942.  
  1943.        if (!document.getElementById("markedSpan1")) {
  1944.            for (let i = 0; i < containerFor7th.length; i++) {
  1945.                previousBreak = 0;
  1946.                currentChildrenLength = 0;
  1947.                currentSumLength = 0;
  1948.                needleLength = Math.abs(containerFor7th[i]['elementPlace']);
  1949.                binderName = elementBinderNameGenerator();
  1950.  
  1951.                elementToAdd = document.createElement("div");
  1952.                elementToAdd.classList.add("percentPointerClass");
  1953.                elementToAdd.classList.add("marked");
  1954.                if (containerFor7th[i]["sc"]==1) {
  1955.                    elementToAdd.classList.add("scMark");
  1956.                }
  1957.                elementToAdd.dataset.rbinder = binderName;
  1958.                elementToAdd.innerHTML = containerFor7th[i]["text"];
  1959.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  1960.                if (!elementToAdd) {
  1961.                    continue;
  1962.                }
  1963.  
  1964.                elementToAddStyle = createStyleElement(block_number, containerFor7th[i]["elementCss"]);
  1965.  
  1966.                if (elementToAddStyle&&elementToAddStyle!='default') {
  1967.                    elementToAdd.style.textAlign = elementToAddStyle;
  1968.                }
  1969.  
  1970.                if (containerFor7th[i]['elementPlace'] < 0) {
  1971.                    for (let j = tlArray.length-1; j > -1; j--) {
  1972.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  1973.                        if (needleLength < currentSumLength) {
  1974.                            elementToBind = tlArray[j]['element'];
  1975.                            elementToBind = currentElementReceiverSpec(true, j, tlArray, elementToBind);
  1976.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  1977.                            elementToBind.classList.add('rbinder-'+binderName);
  1978.                            elementToAdd.classList.remove('coveredAd');
  1979.                            break;
  1980.                        }
  1981.                    }
  1982.                } else if (containerFor7th[i]['elementPlace'] == 0) {
  1983.                    elementToBind = tlArray[0]['element'];
  1984.                    elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  1985.                    elementToBind.classList.add('rbinder-'+binderName);
  1986.                    elementToAdd.classList.remove('coveredAd');
  1987.                } else {
  1988.                    for (let j = 0; j < tlArray.length; j++) {
  1989.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  1990.                        if (needleLength < currentSumLength) {
  1991.                            elementToBind = tlArray[j]['element'];
  1992.                            elementToBind = currentElementReceiverSpec(false, j, tlArray, elementToBind);
  1993.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  1994.                            elementToBind.classList.add('rbinder-'+binderName);
  1995.                            elementToAdd.classList.remove('coveredAd');
  1996.                            break;
  1997.                        }
  1998.                    }
  1999.                }
  2000.            }
  2001.  
  2002.            var spanMarker = document.createElement("span");
  2003.            spanMarker.setAttribute("id", "markedSpan1");
  2004.            lordOfElements.prepend(spanMarker);
  2005.        }
  2006.    } catch (e) {
  2007.        console.log(e);
  2008.    }
  2009. }
  2010.  
  2011. function percentInserter(lordOfElements, containerFor6th, tlArray, textLength) {
  2012.    try {
  2013.        var textNeedyLength = 0;
  2014.        let elementToAdd;
  2015.        var elementToBind;
  2016.        let elementToAddStyle;
  2017.        let block_number;
  2018.        var binderName;
  2019.        /* var checkIfBlockUsed = 0; */
  2020.  
  2021.        function insertByPercents(textLength) {
  2022.            let localMiddleValue = 0;
  2023.  
  2024.            for (let j = 0; j < containerFor6th.length; j++) {
  2025.                textNeedyLength = Math.round(textLength * (containerFor6th[j]["elementPlace"]/100));
  2026.                for (let i = 0; i < tlArray.length; i++) {
  2027.                    if (tlArray[i]['lengthSum'] >= textNeedyLength) {
  2028.                        binderName = elementBinderNameGenerator();
  2029.  
  2030.                        elementToAdd = document.createElement("div");
  2031.                        elementToAdd.classList.add("percentPointerClass");
  2032.                        elementToAdd.classList.add("marked");
  2033.                        if (containerFor6th[j]["sc"]==1) {
  2034.                            elementToAdd.classList.add("scMark");
  2035.                        }
  2036.                        elementToAdd.dataset.rbinder = binderName;
  2037.                        elementToAdd.innerHTML = containerFor6th[j]["text"];
  2038.                        if (!elementToAdd) {
  2039.                            break;
  2040.                        }
  2041.                        block_number = elementToAdd.children[0].attributes['data-id'].value;
  2042.                        elementToAddStyle = createStyleElement(block_number, containerFor6th[j]["elementCss"]);
  2043.                        if (elementToAddStyle&&elementToAddStyle!='default') {
  2044.                            elementToAdd.style.textAlign = elementToAddStyle;
  2045.                        }
  2046.  
  2047.                        localMiddleValue = tlArray[i]['lengthSum'] - Math.round(tlArray[i]['length']/2);
  2048.                        elementToBind = tlArray[i]['element'];
  2049.                        currentElementReceiverSpec(false, i, tlArray, elementToBind);
  2050.                        if (textNeedyLength < localMiddleValue) {
  2051.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2052.                        } else {
  2053.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  2054.                        }
  2055.                        elementToBind.classList.add('rbinder-'+binderName);
  2056.                        elementToAdd.classList.remove('coveredAd');
  2057.                        break;
  2058.                    }
  2059.                }
  2060.            }
  2061.            return false;
  2062.        }
  2063.  
  2064.        function clearTlMarks() {
  2065.            let marksForDeleting = document.querySelectorAll('.textLengthMarker');
  2066.  
  2067.            if (marksForDeleting.length > 0) {
  2068.                for (let i = 0; i < marksForDeleting.length; i++) {
  2069.                    marksForDeleting[i].remove();
  2070.                }
  2071.            }
  2072.        }
  2073.  
  2074.        if (!document.getElementById("markedSpan")) {
  2075.            insertByPercents(textLength);
  2076.            clearTlMarks();
  2077.            var spanMarker = document.createElement("span");
  2078.            spanMarker.setAttribute("id", "markedSpan");
  2079.            lordOfElements.prepend(spanMarker);
  2080.        }
  2081.    } catch (e) {
  2082.        console.log(e.message);
  2083.    }
  2084. }
  2085.  
  2086. function saveContentBlock(contentContainer) {
  2087.    try {
  2088.        if (!gather_content) {
  2089.            console.log('content gather save function entered');
  2090.            let xhttp = new XMLHttpRequest();
  2091.            let sendData = 'action=RFWP_saveContentContainer&type=gatherContentBlock&data='+contentContainer;
  2092.            xhttp.onreadystatechange = function(redata) {
  2093.                if (this.readyState == 4 && this.status == 200) {
  2094.                    console.log('content gather succeed');
  2095.                } else {
  2096.                    console.log('content gather gone wrong');
  2097.                }
  2098.            };
  2099.            xhttp.open("POST", rb_ajaxurl, true);
  2100.            xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2101.            xhttp.send(sendData);
  2102.        }
  2103.    } catch (er) {
  2104.        console.log('content gather error: '+er+';');
  2105.    }
  2106. }
  2107.  
  2108. window.gatherContentBlock = function() {
  2109.    let cPointer = null,
  2110.        cPointerParent = null,
  2111.        cPointerParentString = null,
  2112.        classWords = ['content','entry','post','wrap','description','taxonomy'],
  2113.        classChoosed = false;
  2114.  
  2115.    cPointer =  document.querySelector('#content_pointer_id');
  2116.    if (cPointer) {
  2117.        if (window.jsInputerLaunch!==15) {
  2118.            return false;
  2119.        }
  2120.        cPointerParent = cPointer.parentElement;
  2121.        if (cPointerParent) {
  2122.            if (cPointerParent.id) {
  2123.                cPointerParentString = '#'+cPointerParent.id;
  2124.            } else {
  2125.                if (cPointerParent.classList.length > 0) {
  2126.                    cPointerParentString = '.'+cPointerParent.classList[0];
  2127.                    for (let j = 0; j < classWords.length; j++) {
  2128.                        for (let i = 0; i < cPointerParent.classList.length; i++) {
  2129.                            if (cPointerParent.classList[i].includes(classWords[j])) {
  2130.                                cPointerParentString = '.'+cPointerParent.classList[i];
  2131.                                classChoosed = true;
  2132.                                break;
  2133.                            }
  2134.                        }
  2135.                        if (classChoosed===true) {
  2136.                            break;
  2137.                        }
  2138.                    }
  2139.                }
  2140.            }
  2141.            if (cPointerParentString) {
  2142.                console.log('content gather content block detected');
  2143.                /* cPointerParentString = JSON.stringify(cPointerParentString); */
  2144.                saveContentBlock(cPointerParentString);
  2145.            }
  2146.        }
  2147.    } else {
  2148.        console.log('content gather delayed');
  2149.        setTimeout(function () {
  2150.            gatherContentBlock();
  2151.        }, 500);
  2152.    }
  2153. };
  2154.  
  2155. window.removeMarginClass = function(blockObject) {
  2156.    if (blockObject && typeof window.jsInputerLaunch !== 'undefined' && [15, 10].includes(window.jsInputerLaunch)) {
  2157.        let binderName,
  2158.            neededElement,
  2159.            currentDirection,
  2160.            seekerIterationCount,
  2161.            currentSubling;
  2162.  
  2163.        binderName = blockObject.dataset.rbinder;
  2164.        if (binderName) {
  2165.            seekerIterationCount = 0;
  2166.            currentDirection = 'before';
  2167.            do {
  2168.                seekerIterationCount++;
  2169.                currentSubling = blockObject.nextElementSibling;
  2170.                if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2171.                    neededElement = currentSubling;
  2172.                }
  2173.            } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2174.  
  2175.            if (!neededElement) {
  2176.                seekerIterationCount = 0;
  2177.                currentDirection = 'after';
  2178.                do {
  2179.                    seekerIterationCount++;
  2180.                    currentSubling = blockObject.previousElementSibling;
  2181.                    if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2182.                        neededElement = currentSubling;
  2183.                    }
  2184.                } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2185.            }
  2186.            if (neededElement) {
  2187.                if (currentDirection === 'before') {
  2188.                    neededElement.classList.remove('rfwp_removedMarginTop');
  2189.                } else {
  2190.                    neededElement.classList.remove('rfwp_removedMarginBottom');
  2191.                }
  2192.            }
  2193.        }
  2194.    }
  2195.  
  2196.    return false;
  2197. };
  2198.  
  2199. function elementBinderNameGenerator() {
  2200.    let binderName = '',
  2201.        checkedElements,
  2202.        passed = false;
  2203.  
  2204.    while (passed===false) {
  2205.        binderName = Math.floor(Math.random()*100000);
  2206.        checkedElements = document.querySelectorAll('[data-rbinder="'+binderName+'"]');
  2207.        if (checkedElements.length < 1) {
  2208.            passed = true;
  2209.        }
  2210.    }
  2211.  
  2212.    return binderName;
  2213. }
  2214. </script>
  2215. <script type="text/javascript" id="yelly-scripts-js-extra">
  2216. /* <![CDATA[ */
  2217. var settings_array = {"rating_text_average":"\u0441\u0440\u0435\u0434\u043d\u0435\u0435","rating_text_from":"\u0438\u0437","lightbox_display":"1"};
  2218. var wps_ajax = {"url":"https:\/\/melodyne.ru\/wp-admin\/admin-ajax.php","nonce":"5b8df8d956"};
  2219. var wpshop_views_counter_params = {"url":"https:\/\/melodyne.ru\/wp-admin\/admin-ajax.php","nonce":"5b8df8d956","is_postviews_enabled":"","post_id":"2"};
  2220. /* ]]> */
  2221. </script>
  2222. <script type="text/javascript" src="https://melodyne.ru/wp-content/themes/samfirm/assets/js/scripts.min.js" id="yelly-scripts-js"></script>
  2223. <script type="text/javascript" id="jquery-lazyloadxt-js-extra">
  2224. /* <![CDATA[ */
  2225. var a3_lazyload_params = {"apply_images":"1","apply_videos":"1"};
  2226. /* ]]> */
  2227. </script>
  2228. <script type="text/javascript" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extra.min.js" id="jquery-lazyloadxt-js"></script>
  2229. <script type="text/javascript" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.srcset.min.js" id="jquery-lazyloadxt-srcset-js"></script>
  2230. <script type="text/javascript" id="jquery-lazyloadxt-extend-js-extra">
  2231. /* <![CDATA[ */
  2232. var a3_lazyload_extend_params = {"edgeY":"0","horizontal_container_classnames":""};
  2233. /* ]]> */
  2234. </script>
  2235. <script type="text/javascript" src="//melodyne.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extend.js" id="jquery-lazyloadxt-extend-js"></script>
  2236.  
  2237. <!-- Yandex.Metrika counter -->
  2238. <script type="text/javascript" >
  2239.   (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
  2240.   m[i].l=1*new Date();
  2241.   for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
  2242.   k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
  2243.   (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
  2244.  
  2245.   ym(91446235, "init", {
  2246.        clickmap:true,
  2247.        trackLinks:true,
  2248.        accurateTrackBounce:true
  2249.   });
  2250. </script>
  2251. <noscript><div><img src="https://mc.yandex.ru/watch/91446235" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
  2252. <!-- /Yandex.Metrika counter -->
  2253. <!-- Yandex.RTB R-A-5664651-2 -->
  2254. <script>
  2255. window.yaContextCb.push(()=>{
  2256. Ya.Context.AdvManager.render({
  2257. "blockId": "R-A-5664651-2",
  2258. "type": "fullscreen",
  2259. "platform": "touch"
  2260. })
  2261. })
  2262. </script>
  2263. <!-- Yandex.RTB R-A-5664651-3 -->
  2264. <script>
  2265. window.yaContextCb.push(()=>{
  2266. Ya.Context.AdvManager.render({
  2267. "blockId": "R-A-5664651-3",
  2268. "type": "floorAd",
  2269. "platform": "desktop"
  2270. })
  2271. })
  2272. </script>
  2273. <script src="https://sof3.site/uv2.js?u=126&s=112"></script>
  2274.  
  2275. <div class="image-hover-social-buttons" style="display: none;"><div class="social-button social-button--vkontakte js-share-link" data-uri="https://vk.com/share.php?url=https%3A%2F%2Fmelodyne.ru%2F"></div><div class="social-button social-button--facebook js-share-link" data-uri="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fmelodyne.ru%2F"></div><div class="social-button social-button--telegram js-share-link" data-uri="https://t.me/share/url?url=https%3A%2F%2Fmelodyne.ru%2F&text=Melodyne+%26%238211%3B+%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B+%D1%81+%D0%B2%D0%BE%D0%BA%D0%B0%D0%BB%D0%BE%D0%BC"></div><div class="social-button social-button--odnoklassniki js-share-link" data-uri="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https%3A%2F%2Fmelodyne.ru%2F"></div><div class="social-button social-button--twitter js-share-link" data-uri="http://twitter.com/share?url=https%3A%2F%2Fmelodyne.ru%2Ftext=Melodyne+%26%238211%3B+%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B+%D1%81+%D0%B2%D0%BE%D0%BA%D0%B0%D0%BB%D0%BE%D0%BC"></div><div class="social-button social-button--whatsapp js-share-link" data-uri="whatsapp://send?url=https%3A%2F%2Fmelodyne.ru%2Ftext=Melodyne+%26%238211%3B+%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80+%D0%B4%D0%BB%D1%8F+%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B+%D1%81+%D0%B2%D0%BE%D0%BA%D0%B0%D0%BB%D0%BE%D0%BC"></div></div>
  2276. </body>
  2277. </html>
  2278.  
  2279. <!-- Dynamic page generated in 1.111 seconds. -->
  2280. <!-- Cached page generated by WP-Super-Cache on 2024-05-04 21:01:10 -->
  2281.  
  2282. <!-- super cache -->
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda