Анализ сайта tonalic.com
Основное Готовность: 85%
Домен
tonalic.com
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Домен второго уровня идеален для продвижения.
Отличный запоминающийся домен.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Кол-во редиректов 3 слишком большое! Проверьте настройки сайта и веб-сервера!
Цепочка редиректов:
http://tonalic.com
302 Found
https://tonalic.com/
302 Found
https://www.tonalic.com/
200 OK
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 15.11.2026 23:33:43.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Кодировка на странице не определена. Укажите явно кодировку документа!
Язык
de
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: de.
Скорость загрузки
~0,85сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,85сек оптимальна.
Объем документа
241Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 241Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 5
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 5 достаточно.
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | /assets/managed/videojs.css | |
| js | /assets/managed/videojs.js | |
| js | /assets/managed/alpine.js | |
| js | /assets/managed/htmx.js | |
| js | text/javascript | https://consent.cookiebot.com/uc.js |
Серверные заголовки
Кол-во: 6
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 6шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Accept-Ranges | bytes |
| Cache-Control | no-cache |
| ETag | "dk4zwtw3f82i5atw" |
| Server | Caddy |
| Vary | Accept-Encoding |
| Date | Fri, 21 Aug 2026 22:31:35 GMT |
CMS
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
Сайт работает на CMS Amiro.CMS.
Веб-сервер
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере Caddy.
Мета-теги Готовность: 32%
Title
Tonalic – a musician by your side
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо увеличить число символов в title (текущее значение: 33, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
Tonalic adapts real studio performances from world-class musicians to your song’s chords, tempo and groove. No AI, no loops, no MIDI. Just living, musical performances powered by Celemony’s Tonalic Engine and always royalty-free.
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо уменьшить число символов в description (текущее значение: 229, оптимально: от 120 до 130)
Keywords
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Установите мета-тег keywords!
Канонический Url
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Рекомендуем прописать канонический Url.
Robots
Ошибок нет
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots не указан. Страница свободна для индексации.
Адаптивность
width=device-width, initial-scale=1.0, user-scalable=no
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Meta-тег viewport со значением user-scalable определяет доступность масштабирования страницы пользователем.
Разметка OpenGraph
Не найдено
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph не задана. Страница не оптимизирована под социальные сети. Мета-теги с разметкой Og помогают социальным роботам лучше структурировать Ваш сайт.
Все мета-теги
Кол-во: 4
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 4шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1.0, user-scalable=no |
| name | msapplication-TileColor | #000000 |
| name | msapplication-TileImage | /mstile-150x150.png |
| name | description | Tonalic adapts real studio performances from world-class musicians to your song’s chords, tempo and groove. No AI, no loops, no MIDI. Just living, musical performances powered by Celemony’s Tonalic Engine and always royalty-free. |
Оптимизация Готовность: 82%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в одном экземпляре).
Контент
Ошибок нет
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Слова из title 7 встречаются в тексте достаточно.
Абзацев с текстом 115 достаточно.
Среднее число слов в абзаце 26 достаточно.
Кол-во знаков контента 21937 на странице оптимально.
Кол-во слов 3481 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 11. Это прекрасно.
На странице присутствуют заголовки <h2> 1. Это хорошо.
На странице присутствуют заголовки <h3> 1.
Тошнота
8,19
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 5. Измените текст страницы!
Академич. тошнота
25,05%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| tonalic | 67 | 1,92% |
| studio | 22 | 0,63% |
| adjust | 19 | 0,55% |
| musicians | 18 | 0,52% |
| musician | 14 | 0,40% |
| cookie | 14 | 0,40% |
| settings | 14 | 0,40% |
| requires | 13 | 0,37% |
| necessary | 13 | 0,37% |
| cookies | 13 | 0,37% |
| guitar | 11 | 0,32% |
| musical | 11 | 0,32% |
| groove | 11 | 0,32% |
| guitarist | 11 | 0,32% |
| playing | 10 | 0,29% |
| chords | 10 | 0,29% |
| session | 9 | 0,26% |
| tonalics | 9 | 0,26% |
| performance | 9 | 0,26% |
| arranger | 7 | 0,20% |
Индексация Готовность: 45%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 70 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Кол-во редиректов для файла robots.txt 3 слишком большое! Это может вызывать затруднение при индексации поисковыми роботами!
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Цепочка редиректов для файла robots.txt:
http://tonalic.com/robots.txt
302 Found
https://tonalic.com/robots.txt
302 Found
https://www.tonalic.com/
200 OK
Показать содержимое robots.txt
<!DOCTYPE html><html lang="de" class="overflow-x-hidden"><head ><script src="/assets/managed/videojs.js" ></script>
<link rel="stylesheet" href="/assets/managed/videojs.css"/>
<script src="/assets/managed/alpine.js" defer></script>
<script src="/assets/managed/htmx.js" defer></script><style >/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-scroll-snap-strictness:proximity;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:"Avenir",ui-sans-serif,system-ui,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-green-500:oklch(72.3% .219 149.579);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-lg:1.125rem;--text-lg--line-height:1.55556;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--text-3xl:1.875rem;--text-3xl--line-height:1.2;--text-4xl:2.25rem;--text-4xl--line-height:1.11111;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-light:300;--font-weight-medium:500;--font-weight-bold:700;--leading-tight:1.25;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--drop-shadow-md:0 3px 3px #0000001f;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:#e6a33a;--color-grey:#282828;--color-medium-grey:#7c7b7b;--color-light-grey:#eee;--color-content-white:#b5b2ae}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{scroll-behavior:smooth;scroll-padding-top:120px}p{color:var(--color-content-white);max-width:800px;padding-bottom:calc(var(--spacing)*4)}.text-black p{color:var(--color-black)}p:last-child{padding-bottom:calc(var(--spacing)*0)}ul{list-style-type:disc;margin-left:calc(var(--spacing)*5);max-width:800px}ul li{color:var(--color-content-white);margin-bottom:calc(var(--spacing)*2)}.text-black ul li{color:var(--color-black)}.vjs-big-play-button{display:none!important}p a{color:var(--color-primary)}.requirements ul,.with-checkmarks ul{margin-left:0}.requirements ul li,.with-checkmarks ul li{background-image:url(/assets/img/checkmark.svg);background-position:0 3px;background-repeat:no-repeat;background-size:10px;list-style:none;padding-left:20px}}@layer components{h1,h2{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height));margin-bottom:calc(var(--spacing)*6);max-width:800px;text-transform:uppercase}h1,h1 b,h2,h2 b,h3 b,h4 b{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}h1 b,h2 b,h3 b,h4 b{color:var(--color-primary)}.top-margin-default{margin-top:calc(var(--spacing)*48)}.bottom-margin-default{margin-bottom:calc(var(--spacing)*48)}.vertical-margin-default{margin-block:calc(var(--spacing)*48)}.vertical-margin-small{margin-block:calc(var(--spacing)*24)}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.-top-36{top:calc(var(--spacing)*-36)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-1\/3{top:33.3333%}.top-4{top:calc(var(--spacing)*4)}.top-5{top:calc(var(--spacing)*5)}.top-8{top:calc(var(--spacing)*8)}.top-16{top:calc(var(--spacing)*16)}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.right-8{right:calc(var(--spacing)*8)}.right-\[-0\.25rem\]{right:-.25rem}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-5{bottom:calc(var(--spacing)*5)}.bottom-8{bottom:calc(var(--spacing)*8)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing)*3)}.left-\[-0\.25rem\]{left:-.25rem}.left-full{left:100%}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-90{z-index:90}.z-100{z-index:100}.order-first{order:-9999}.order-last{order:9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing)*0)}.my-8{margin-block:calc(var(--spacing)*8)}.my-16{margin-block:calc(var(--spacing)*16)}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-10{margin-top:calc(var(--spacing)*10)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-40{margin-top:calc(var(--spacing)*40)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-\[10\%\]{margin-left:10%}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.list-item{display:list-item}.table{display:table}.size-3{height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.size-4{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.size-5{height:calc(var(--spacing)*5);width:calc(var(--spacing)*5)}.size-6{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6)}.size-8{height:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.size-10{height:calc(var(--spacing)*10);width:calc(var(--spacing)*10)}.size-16{height:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.size-44{height:calc(var(--spacing)*44);width:calc(var(--spacing)*44)}.h-0{height:calc(var(--spacing)*0)}.h-0\.5{height:calc(var(--spacing)*.5)}.h-2{height:calc(var(--spacing)*2)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-64{height:calc(var(--spacing)*64)}.h-\[1px\]{height:1px}.h-\[40vw\]{height:40vw}.h-\[80px\]{height:80px}.h-\[125px\]{height:125px}.h-\[400px\]{height:400px}.h-\[580px\]{height:580px}.h-\[600px\]{height:600px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-8{max-height:calc(var(--spacing)*8)}.min-h-14{min-height:calc(var(--spacing)*14)}.min-h-\[40vh\]{min-height:40vh}.w-0{width:calc(var(--spacing)*0)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing)*2)}.w-2\/3{width:66.6667%}.w-5\/6{width:83.3333%}.w-6{width:calc(var(--spacing)*6)}.w-10{width:calc(var(--spacing)*10)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-60{width:calc(var(--spacing)*60)}.w-\[20vw\]{width:20vw}.w-\[80px\]{width:80px}.w-\[90\%\]{width:90%}.w-\[140px\]{width:140px}.w-\[180px\]{width:180px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[300px\]{width:300px}.w-full{width:100%}.w-max{width:max-content}.w-screen{width:100vw}.min-w-70{min-width:calc(var(--spacing)*70)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow-0,.grow-0{flex-grow:0}.origin-bottom-left{transform-origin:0 100%}.-translate-1\/2{--tw-translate-x:-50%;--tw-translate-y:-50%}.-translate-1\/2,.-translate-x-1\/2{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-5{--tw-translate-x:calc(var(--spacing)*-5)}.-translate-x-10,.-translate-x-5{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-10{--tw-translate-x:calc(var(--spacing)*-10)}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.translate-x-0{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0)}.translate-x-1\/6{--tw-translate-x:16.66667%}.translate-x-10,.translate-x-1\/6{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-10{--tw-translate-x:calc(var(--spacing)*10)}.translate-x-\[70\%\]{--tw-translate-x:70%}.translate-x-\[70\%\],.translate-x-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.-translate-y-1\/4{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/4{--tw-translate-y:-25%}.-translate-y-\[100\%\],.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-0,.translate-y-2{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2)}.translate-y-4{--tw-translate-y:calc(var(--spacing)*4)}.translate-y-10,.translate-y-4{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-10{--tw-translate-y:calc(var(--spacing)*10)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%}.scale-0,.scale-75{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%}.scale-100,.scale-300{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-300{--tw-scale-x:300%;--tw-scale-y:300%;--tw-scale-z:300%}.scale-x-0{--tw-scale-x:0%}.scale-x-0,.scale-x-100{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-x-100{--tw-scale-x:100%}.-rotate-12{rotate:-12deg}.-rotate-90{rotate:-90deg}.-rotate-180{rotate:-180deg}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.snap-none{scroll-snap-type:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.snap-always{scroll-snap-stop:always}.scroll-pb-6{scroll-padding-bottom:calc(var(--spacing)*6)}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}.gap-16{gap:calc(var(--spacing)*16)}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-tl-full{border-top-left-radius:3.40282e+38px}.rounded-tr-full{border-top-right-radius:3.40282e+38px}.rounded-br-full{border-bottom-right-radius:3.40282e+38px}.rounded-bl-full{border-bottom-left-radius:3.40282e+38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#2D2D2D\]{border-color:#2d2d2d}.border-black{border-color:var(--color-black)}.border-light-grey{border-color:var(--color-light-grey)}.border-primary{border-color:var(--color-primary)}.border-transparent{border-color:#0000}.border-b-primary{border-bottom-color:var(--color-primary)}.border-b-white{border-bottom-color:var(--color-white)}.bg-\[\#2D2D2D\]{background-color:#2d2d2d}.bg-black{background-color:var(--color-black)}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-grey{background-color:var(--color-grey)}.bg-light-grey{background-color:var(--color-light-grey)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/30{background-color:#e6a33a4d}@supports (color:color-mix(in lab,red,red)){.bg-primary\/30{background-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab}.bg-gradient-to-b,.bg-gradient-to-l{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-l{--tw-gradient-position:to left in oklab}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.bg-gradient-to-r,.bg-gradient-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab}.from-black{--tw-gradient-from:var(--color-black);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-0\%{--tw-gradient-from-position:0%}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-40\%{--tw-gradient-to-position:40%}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-center{object-position:center}.p-0{padding:calc(var(--spacing)*0)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.p-\[2px\]{padding:2px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-12{padding-inline:calc(var(--spacing)*12)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-16{padding-top:calc(var(--spacing)*16)}.pt-24{padding-top:calc(var(--spacing)*24)}.pr-12{padding-right:calc(var(--spacing)*12)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-nowrap{text-wrap:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-black{color:var(--color-black)}.text-content-white{color:var(--color-content-white)}.text-green-500{color:var(--color-green-500)}.text-medium-grey{color:var(--color-medium-grey)}.text-primary{color:var(--color-primary)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-lg{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-width:1px}.outline,.outline-0{outline-style:var(--tw-outline-style)}.outline-0{outline-width:0}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow-md{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md))}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition,.transition-\[grid-template-rows_margin-top\]{transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows_margin-top\]{transition-property:grid-template-rows margin-top;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all,.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-opacity,.transition-transform{transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.\!delay-0{transition-delay:0s!important}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-\[cubic-bezier\(0\.075\,0\.820\,0\.165\,1\.000\)\]{--tw-ease:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:h-auto:is(:where(.group):hover *){height:auto}.group-hover\:min-h-10:is(:where(.group):hover *){min-height:calc(var(--spacing)*10)}.group-hover\:w-80:is(:where(.group):hover *){width:calc(var(--spacing)*80)}.group-hover\:translate-x-2:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-y-0:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:scale-100:is(:where(.group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:opacity-95:is(:where(.group):hover *){opacity:.95}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/child\:visible:is(:where(.group\/child):hover *){visibility:visible}.group-hover\/child\:translate-x-0:is(:where(.group\/child):hover *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/child\:translate-y-0:is(:where(.group\/child):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/child\:opacity-100:is(:where(.group\/child):hover *){opacity:1}}.placeholder\:text-white::placeholder{color:var(--color-white)}@media (hover:hover){.hover\:z-40:hover{z-index:40}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:text-white:hover{color:var(--color-white)}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}}.focus\:border-black:focus{border-color:var(--color-black)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.active\:opacity-70:active{opacity:.7}@media (min-width:40rem){.sm\:absolute{position:absolute}.sm\:top-1\/2{top:50%}.sm\:mb-0{margin-bottom:calc(var(--spacing)*0)}.sm\:ml-0{margin-left:calc(var(--spacing)*0)}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:min-h-\[25vw\]{min-height:25vw}.sm\:w-1\/2{width:50%}.sm\:w-1\/3{width:33.3333%}.sm\:-translate-y-3\/4{--tw-translate-y:-75%;translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:items-end{align-items:flex-end}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:p-8{padding:calc(var(--spacing)*8)}.sm\:px-8{padding-inline:calc(var(--spacing)*8)}.sm\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media (min-width:48rem){.md\:right-12{right:calc(var(--spacing)*12)}.md\:right-\[-0\.5rem\]{right:-.5rem}.md\:bottom-12{bottom:calc(var(--spacing)*12)}.md\:left-\[-0\.5rem\]{left:-.5rem}.md\:z-0{z-index:0}.md\:my-0{margin-block:calc(var(--spacing)*0)}.md\:mb-0{margin-bottom:calc(var(--spacing)*0)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-10{height:calc(var(--spacing)*10)}.md\:h-\[125px\]{height:125px}.md\:w-1\/3{width:33.3333%}.md\:w-2\/5{width:40%}.md\:w-\[220px\]{width:220px}.md\:max-w-\[1024px\]{max-width:1024px}.md\:max-w-\[1200px\]{max-width:1200px}.md\:translate-x-2\/3{--tw-translate-x:66.66667%}.md\:-translate-y-1\/4,.md\:translate-x-2\/3{translate:var(--tw-translate-x)var(--tw-translate-y)}.md\:-translate-y-1\/4{--tw-translate-y:-25%}.md\:justify-end{justify-content:flex-end}.md\:gap-4{gap:calc(var(--spacing)*4)}.md\:p-8{padding:calc(var(--spacing)*8)}.md\:px-4{padding-inline:calc(var(--spacing)*4)}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-1\/3{width:33.3333%}.lg\:w-2\/3{width:66.6667%}.lg\:flex-row{flex-direction:row}.lg\:gap-16{gap:calc(var(--spacing)*16)}}@media (prefers-color-scheme:dark){.dark\:border-white{border-color:var(--color-white)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:text-white{color:var(--color-white)}.dark\:focus\:border-white:focus{border-color:var(--color-white)}}}@font-face{font-family:Avenir;font-style:normal;font-weight:400;src:url(/assets/font/AvenirNext-Regular.woff2)format("woff2"),url(/assets/font/AvenirNext-Regular.woff)format("woff")}@font-face{font-family:Avenir;font-style:normal;font-weight:700;src:url(/assets/font/AvenirNext-Bold.woff2)format("woff2"),url(/assets/font/AvenirNext-Bold.woff)format("woff")}@font-face{font-family:Avenir;font-style:normal;font-weight:800;src:url(/assets/font/AvenirNext-Heavy.woff2)format("woff2"),url(/assets/font/AvenirNext-Heavy.woff)format("woff")}.select-none{-webkit-user-select:none;user-select:none}.select-none img{pointer-events:none}[x-cloak]{display:none}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,textarea:-webkit-autofill{color:inherit!important;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#fff!important;background-color:#0000!important;-webkit-box-shadow:inset 0 0 0 1000px #0000!important}textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{color:inherit!important;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#fff!important;background-color:#0000!important;-webkit-box-shadow:inset 0 0 0 1000px #0000!important}.video-js{height:100%!important;width:100%!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}</style><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/><script data-cookieconsent="ignore">window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("consent", "default", {
ad_personalization: "denied",
ad_storage: "denied",
ad_user_data: "denied",
analytics_storage: "denied",
functionality_storage: "denied",
personalization_storage: "denied",
security_storage: "granted",
wait_for_update: 500,
});
gtag("set", "ads_data_redaction", true);
gtag("set", "url_passthrough", true);</script><script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="402974c2-f666-4865-b3a7-e6eb048392d2" data-blockingmode="auto" type="text/javascript"></script><script type="text/plain" data-cookieconsent="marketing">!function(f,b,e,v,n,t,s){
if(f.fbq)return;
n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '881121234377812');
fbq('track', 'PageView');</script><script type="text/plain" data-cookieconsent="statistics">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-KLVVDHMG');</script><link rel="manifest" href="/assets/site.webmanifest"/><link rel="icon" type="image/x-icon" href="/assets/favicon/favicon.ico"/><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png"/><link rel="shortcut icon" href="/assets/favicon/favicon.ico"/><link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon-180x180.png"/><meta name="msapplication-TileColor" content="#000000"/><meta name="msapplication-TileImage" content="/mstile-150x150.png"/><title >Tonalic – a musician by your side</title><meta name="description" content="Tonalic adapts real studio performances from world-class musicians to your song’s chords, tempo and groove. No AI, no loops, no MIDI. Just living, musical performances powered by Celemony’s Tonalic Engine and always royalty-free."/></head><body hx-ext="sse" sse-connect="/dev" sse-swap="hot-reload" x-data="{"scrollY":0}" class="overflow-x-hidden relative bg-black text-white pt-16" x-init="window.addEventListener('scroll', () => scrollY = window.scrollY)"><div x-data="{"visible":true,"lastY":0,"menuOpen":false}" class="fixed left-0 right-0 top-0 bg-black z-90 border-b-primary border-b transition-all" x-bind:class="visible ? 'translate-y-0' : '-translate-y-full'" x-init="
window.addEventListener('scroll', () => {
const currentY = window.scrollY;
const delta = lastY - currentY;
if (delta < 0 && window.scrollY > 300) {
visible = false;
} else {
visible = true;
}
lastY = currentY;
});
"><div class="container mx-auto w-full relative md:max-w-[1200px] my-0 py-4 h-full"><div class="px-4 flex items-center justify-between gap-8"><a href="/index.html"><svg class="h-8 mb-1.5" viewBox="0 0 996.89 266" xmlns="http://www.w3.org/2000/svg"><path d="m578.69 78.18c-41.13 0-84.55 5.43-90.54 52.56h48.56c7.14-21.14 18.28-22.85 39.7-22.85 29.13 0 39.42 6 39.42 18.28s-5.14 14.85-20.57 16l-53.41 3.71c-24.67 1.61-50.81 7.15-59.98 28.74v-39.59c0-45.13-39.7-55.13-65.69-55.13-29.42 0-53.41 13.42-62.55 26.28h-.57v-22.28h-48.56v47.12c-11.91-36.73-47.82-52.83-96.83-52.83-37.87 0-67.92 9.61-85.12 30.91v-25.2h-40.56v-47.41h-50.29v47.41h-31.7v33.71h31.7v77.41c0 27.71 4.57 45.42 52.27 45.42 11.14 0 29.99-1.71 39.42-2.86v-24.74c17.33 20.59 47.01 29.89 84.26 29.89 49.01 0 84.92-16.1 96.83-52.83v47.12h50.27v-73.98c0-32.56 19.71-44.27 43.13-44.27s33.7 10.28 33.7 31.42v86.83h50.27v-24.67c8.6 21.54 32.78 30.39 64.55 30.39 22.56 0 54.55-4.86 71.69-21.99.29 5.43 0 16.28 0 16.28h47.99v-106.83c0-28.56-15.42-51.98-87.4-51.98l.01-.04zm-479.86 126.82c-13.14 0-16.85-4-16.85-16v-71.41h34.74c-6.61 11.51-10.18 25.72-10.18 42.84s3.79 32.16 10.78 43.84c-5.92.4-11.89.72-18.49.72zm108.82 2.29c-31.13 0-49.13-16.85-49.13-46.84s17.99-46.84 49.13-46.84 49.13 16.85 49.13 46.84-17.99 46.84-49.13 46.84zm409.88-32.28c0 25.71-28.28 37.99-53.7 37.99-18.85 0-31.7-7.71-31.7-21.42s8.85-18.57 26.56-19.99l29.13-2.57c10-.86 20.28-2 29.71-6.57v12.57zm327.38 1.2h51.98c-9.14 54.27-47.99 66.55-97.97 66.55-57.7 0-96.83-24.56-96.83-82.26s40.56-82.26 101.11-82.26c38.85 0 84.26 11.71 93.69 62.27h-51.98c-6-20.28-21.42-26.85-41.7-26.85-31.13 0-49.13 16.85-49.13 46.84s18 46.84 49.13 46.84c22.28 0 39.13-12 41.7-31.13zm-216.82-151.21v164c0 13.81-11.19 25-25 25s-25-11.19-25-25v-164c0-13.81 11.19-25 25-25s25 11.19 25 25zm62 114v102c0 13.81-11.19 25-25 25s-25-11.19-25-25v-102c0-13.81 11.19-25 25-25s25 11.19 25 25z" fill="#fff"></path><path d="m765.09 53c13.807 0 25 11.193 25 25s-11.193 25-25 25-25-11.193-25-25 11.193-25 25-25z" fill="#ffb133"></path></svg></a><nav class="flex-1 hidden md:block"><ul class="m-0 p-0 list-none flex justify-start items-center gap-8"><li class="m-0 p-0"><a class="hover:text-white" href="/index.html#pricing">Pricing</a></li><li class="m-0 p-0"><a class="hover:text-white" href="/index.html#musicians">Musicians</a></li><li class="m-0 p-0"><a class="hover:text-white" href="/helpcenter.html">Helpcenter</a></li></ul></nav><div class="hidden md:flex justify-between gap-4"><a href="http://services.tonalic.com" target="_blank" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-transparent border-1 border-primary text-white py-1 text-sm">Log in</a><a href="/index.html#pricing" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-1 text-sm">Buy</a></div><button class="md:hidden flex flex-col items-center justify-center w-10 h-10 cursor-pointer" aria-label="Toggle navigation" x-on:click="menuOpen = !menuOpen"><div class="block w-6 h-0.5 bg-white mb-1"></div><div class="block w-6 h-0.5 bg-white mb-1"></div><div class="block w-6 h-0.5 bg-white"></div></button></div></div><div class="md:hidden bg-black border-t border-b-primary" x-show="menuOpen" x-transition="" x-cloak="" x-on:click.outside="menuOpen = false"><nav ><ul class="m-0 p-4 list-none flex flex-col gap-4"><li class="text-center"><a class="block py-2 text-lg hover:text-white" href="/index.html#pricing" x-on:click="menuOpen = false">Pricing</a></li><li class="text-center"><a class="block py-2 text-lg hover:text-white" href="/index.html#musicians" x-on:click="menuOpen = false">Musicians</a></li><li class="text-center"><a class="block py-2 text-lg hover:text-white" href="/helpcenter.html" x-on:click="menuOpen = false">Helpcenter</a></li></ul></nav><div class="p-4 flex justify-center gap-4"><a href="http://services.tonalic.com" target="_blank" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-transparent border-1 border-primary text-white py-1 text-sm">Log in</a><a href="/index.html#pricing" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-1 text-sm">Buy</a></div></div></div><div x-data="{"playing":false,"player":null}" x-init="
const videoElement = $el.querySelector('.video');
if (videoElement) {
player = videojs(videoElement, {
fluid: false,
});
player.on('play', function() { playing = true; window.dispatchEvent(new Event('hero-video-started')); })
window.addEventListener('video-started', (e) => {
player.pause();
});
}
" x-bind:style="{ backgroundPositionY: `${scrollY * 0.5}px` }" class="h-[580px] bg-cover bg-no-repeat bg-center transition-all duration-200 ease-out relative flex items-center justify-center"><video x-ref="backgroundVideo" x-show="playing === false" autoplay="true" playsinline="true" webkit-playsinline="true" muted="true" loop="true" class="absolute top-0 left-0 bottom-0 right-0 w-full h-full object-cover"><source src="https://d24de7cvkwf5gq.cloudfront.net/Banner/banner_start_website_ek203.mp4" type="video/mp4"/></video><div x-show="playing === false" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0" style="background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent);"></div><div class="container mx-auto w-full relative md:max-w-[1200px] relative z-10 font-bold uppercase text-4xl h-full" id="" x-show="playing === false" x-transition:enter="transition ease-out duration-500" x-transition:enter-start="opacity-0 translate-y-4" x-transition:enter-end="opacity-100 translate-y-0"><div class="px-4 py-8 h-full flex flex-col items-center sm:items-start justify-end w-full"><p><b></b></p><svg class="absolute w-5/6 top-1/3 sm:top-1/2 left-1/2 -translate-1/2 transition-opacity duration-500" x-init="setTimeout(() => $el.classList.add('opacity-0'), 15000);" viewBox="0 0 996.89 266" xmlns="http://www.w3.org/2000/svg"><path d="m578.69 78.18c-41.13 0-84.55 5.43-90.54 52.56h48.56c7.14-21.14 18.28-22.85 39.7-22.85 29.13 0 39.42 6 39.42 18.28s-5.14 14.85-20.57 16l-53.41 3.71c-24.67 1.61-50.81 7.15-59.98 28.74v-39.59c0-45.13-39.7-55.13-65.69-55.13-29.42 0-53.41 13.42-62.55 26.28h-.57v-22.28h-48.56v47.12c-11.91-36.73-47.82-52.83-96.83-52.83-37.87 0-67.92 9.61-85.12 30.91v-25.2h-40.56v-47.41h-50.29v47.41h-31.7v33.71h31.7v77.41c0 27.71 4.57 45.42 52.27 45.42 11.14 0 29.99-1.71 39.42-2.86v-24.74c17.33 20.59 47.01 29.89 84.26 29.89 49.01 0 84.92-16.1 96.83-52.83v47.12h50.27v-73.98c0-32.56 19.71-44.27 43.13-44.27s33.7 10.28 33.7 31.42v86.83h50.27v-24.67c8.6 21.54 32.78 30.39 64.55 30.39 22.56 0 54.55-4.86 71.69-21.99.29 5.43 0 16.28 0 16.28h47.99v-106.83c0-28.56-15.42-51.98-87.4-51.98l.01-.04zm-479.86 126.82c-13.14 0-16.85-4-16.85-16v-71.41h34.74c-6.61 11.51-10.18 25.72-10.18 42.84s3.79 32.16 10.78 43.84c-5.92.4-11.89.72-18.49.72zm108.82 2.29c-31.13 0-49.13-16.85-49.13-46.84s17.99-46.84 49.13-46.84 49.13 16.85 49.13 46.84-17.99 46.84-49.13 46.84zm409.88-32.28c0 25.71-28.28 37.99-53.7 37.99-18.85 0-31.7-7.71-31.7-21.42s8.85-18.57 26.56-19.99l29.13-2.57c10-.86 20.28-2 29.71-6.57v12.57zm327.38 1.2h51.98c-9.14 54.27-47.99 66.55-97.97 66.55-57.7 0-96.83-24.56-96.83-82.26s40.56-82.26 101.11-82.26c38.85 0 84.26 11.71 93.69 62.27h-51.98c-6-20.28-21.42-26.85-41.7-26.85-31.13 0-49.13 16.85-49.13 46.84s18 46.84 49.13 46.84c22.28 0 39.13-12 41.7-31.13zm-216.82-151.21v164c0 13.81-11.19 25-25 25s-25-11.19-25-25v-164c0-13.81 11.19-25 25-25s25 11.19 25 25zm62 114v102c0 13.81-11.19 25-25 25s-25-11.19-25-25v-102c0-13.81 11.19-25 25-25s25 11.19 25 25z" fill="#fff"></path><path d="m765.09 53c13.807 0 25 11.193 25 25s-11.193 25-25 25-25-11.193-25-25 11.193-25 25-25z" fill="#ffb133"></path></svg></div></div></div><div ><div id="" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-small"><div class="px-4 flex flex-col items-center text-center"><h1>A Musician by <b>your</b> Side</h1><p>More than 30 world-class studio musicians have lent their signature styles to Tonalic – a groundbreaking new music software from Celemony, the inventors of Melodyne. Create guitar parts that sound like a real player. Whatever the chord or key. Add bass lines and drums that lock naturally to your tempo and musical feel.<br />
Tonalic adapts real studio performances to your music, creating an experience that feels like having a musician playing right inside your DAW.</p></div></div></div><div ><div class="relative" x-data="{
factor: 400,
offset: 0,
ticking: false,
side: 'left',
updateOffset() {
const rect = this.$el.getBoundingClientRect();
const viewportHeight = window.innerHeight;
const centerDeltaVH = ((rect.top + rect.height / 2) - (viewportHeight / 2)) / viewportHeight;
const progress = -centerDeltaVH;
this.offset = progress * this.factor;
},
onScroll() {
if (!this.ticking) {
requestAnimationFrame(() => { this.updateOffset(); this.ticking = false; });
this.ticking = true;
}
},
init() {
this.updateOffset();
addEventListener('scroll', this.onScroll.bind(this));
addEventListener('resize', this.onScroll.bind(this));
}
}" x-init="init()"><div class="absolute -z-10 top-1/2 overflow-hidden rounded-full h-[40vw] w-[20vw] left-0" x-bind:style="`transform: translateX(${side === 'left' ? '-50%' : '50%'}) translateY(${offset}px)`"><img src="/assets/img/mood.png" class="hidden md:block w-full h-full object-cover scale-300" style="transform: translateY(0)" x-bind:style="`transform: translateY(${offset * factor * 0.0001}px)`"/></div></div><div id="" class="container mx-auto w-full relative md:max-w-[1024px] video-element vertical-margin-small"><div class="px-4 flex flex-col items-center text-center mb-16"></div><div class="px-4 video-element-inner"><div class="video-gallery-inner flex flex-col gap-8" x-ref="player" x-data="
{
currentVideo: 0,
numVideos: 5,
nextVideo: function() {
if (this.currentVideo < this.numVideos - 1) {
this.currentVideo++;
}
},
previousVideo: function() {
if (this.currentVideo > 0) {
this.currentVideo--;
}
},
init: function() {
const allPlayers = Array.from(
document.querySelectorAll('.video-gallery-inner')
);
const myIndex = allPlayers.indexOf(this.$el);
if (myIndex === -1) return;
const hash = document.location.hash;
if (!hash.startsWith('#video-')) {
return;
}
const parts = hash.replace('#video-', '').split('-');
const targetPlayer = parseInt(parts.length === 2 ? parts[0] : 1, 10) - 1;
const targetVideo = parseInt(parts.length === 2 ? parts[1] : parts[0], 10) - 1;
if (myIndex === targetPlayer && !isNaN(targetVideo)) {
this.$nextTick(() => {
this.currentVideo = targetVideo;
this.$el.scrollIntoView({ behavior: 'smooth' });
});
}
}
}
" x-init="init()"><div ><template x-if="0 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/Kirkpatrick2_video-poster_producers_sk001_RELEASE.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/SvVKWuKq0ik?autoplay=0&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/SvVKWuKq0ik?autoplay=0&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="1 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/Harlin_video_poster_tutorial.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/SICpvvjRxL8?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/SICpvvjRxL8?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="2 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/Harlin_beatmaking_video_poster_tutorial.jpeg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/J_JvYoCfCZQ?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/J_JvYoCfCZQ?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="3 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/CreativeFlow_video-poster-tutorial_sk001_RELEASE.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/BMdr8VJEvQA?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/BMdr8VJEvQA?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="4 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_basics/basic_firststeps_poster.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/lONJgHOKiIM?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/lONJgHOKiIM?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template></div><div class="relative overflow-hidden select-none" x-data="
{
indicatorDragging: false,
indicatorStartX: 0,
indicatorStartOffset: 0,
xOffset: 0,
isDragging: false,
startX: 0,
lastXOffset: 0,
velocity: 0,
momentum: false,
lastMoveTime: 0,
lastMoveX: 0,
currentIndex: 0,
track: null,
container: null,
indicator: null,
scrollbar: null,
init() {
this.track = this.$refs.stripTrack;
this.container = this.$el;
this.indicator = this.$refs.indicator;
this.scrollbar = this.$el.querySelector('[data-scrollbar]');
this.$watch('currentVideo', () => this.scrollToIndex(this.currentVideo));
requestAnimationFrame(() => {
this.scrollToIndex(this.currentVideo ?? 0);
});
this.$el.addEventListener(
'wheel',
(e) => {
if (Math.abs(e.deltaX) > Math.abs(e.deltaY)) {
e.preventDefault();
this.xOffset -= e.deltaX;
this.constrainOffset();
}
},
{ passive: false },
);
this.animate();
},
totalWidth() { return this.track.scrollWidth; },
visibleWidth() { return this.container.clientWidth; },
shouldShowScrollbar() {
if (!this.track || !this.container) return false;
return this.totalWidth() > this.visibleWidth();
},
constrainOffset() {
const maxOffset = 0;
const minOffset = this.visibleWidth() - this.totalWidth();
if (this.xOffset > maxOffset) this.xOffset = maxOffset;
if (this.xOffset < minOffset) this.xOffset = minOffset;
},
scrollToIndex(index) {
const children = Array.from(this.track.children);
const selected = children[index];
if (!selected) return;
const trackRect = this.track.getBoundingClientRect();
const selectedRect = selected.getBoundingClientRect();
const pillCenter = selectedRect.left - trackRect.left + selectedRect.width / 2;
const containerCenter = this.visibleWidth() / 2;
this.xOffset = containerCenter - pillCenter;
this.constrainOffset();
this.detectCurrentItem();
},
onMouseDown(event) {
this.isDragging = true;
this.startX = event.clientX;
this.lastXOffset = this.xOffset;
this.velocity = 0;
this.momentum = false;
this.lastMoveX = event.clientX;
this.lastMoveTime = performance.now();
},
onMouseMove(event) {
if (!this.isDragging) return;
const dx = event.clientX - this.startX;
this.xOffset = this.lastXOffset + dx;
const now = performance.now();
const deltaX = event.clientX - this.lastMoveX;
const deltaTime = now - this.lastMoveTime;
if (deltaTime > 0) {
this.velocity = deltaX / deltaTime;
this.lastMoveX = event.clientX;
this.lastMoveTime = now;
}
this.constrainOffset();
},
onMouseUp() {
if (this.isDragging) {
this.isDragging = false;
this.momentum = true;
}
},
onTouchStart(e) { this.onMouseDown(e.touches[0]); },
onTouchMove(e) { this.onMouseMove(e.touches[0]); },
animate() {
requestAnimationFrame(() => {
if (this.momentum && !this.isDragging) {
this.xOffset += this.velocity * 16;
this.velocity *= 0.94;
if (Math.abs(this.velocity) < 0.05) this.momentum = false;
this.constrainOffset();
}
this.detectCurrentItem();
this.animate();
});
},
detectCurrentItem() {
const containerCenter = this.visibleWidth() / 2;
let closestIndex = -1;
let closestDistance = Infinity;
const children = Array.from(this.track.children);
for (let i = 0; i < children.length; i++) {
const el = children[i];
const rect = el.getBoundingClientRect();
const elCenter = rect.left + rect.width / 2;
const distance = Math.abs(containerCenter - elCenter);
if (distance < closestDistance) {
closestDistance = distance;
closestIndex = i;
}
}
if (closestIndex !== this.currentIndex) this.currentIndex = closestIndex;
},
indicatorStyle() {
if (!this.track || !this.container || !this.scrollbar || !this.indicator) return '';
const trackWidth = this.totalWidth();
const visible = this.visibleWidth();
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxIndicatorOffset = Math.max(0, barWidth - indWidth);
const maxScroll = Math.max(1, trackWidth - visible);
const scrollProgress = Math.max(0, Math.min(1, -this.xOffset / maxScroll));
const indicatorX = scrollProgress * maxIndicatorOffset;
return `transform: translateX(${indicatorX}px) translateY(-50%)`;
},
getIndicatorOffset() {
if (!this.track || !this.container || !this.scrollbar || !this.indicator) return 0;
const trackWidth = this.totalWidth();
const visible = this.visibleWidth();
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxOffset = Math.max(0, barWidth - indWidth);
const maxScroll = Math.max(1, trackWidth - visible);
const progress = Math.max(0, Math.min(1, -this.xOffset / maxScroll));
return progress * maxOffset;
},
onIndicatorDown(event) {
this.indicatorDragging = true;
this.indicatorStartX = event.clientX || event.touches[0].clientX;
this.indicatorStartOffset = this.getIndicatorOffset();
},
onIndicatorMove(event) {
if (!this.indicatorDragging) return;
const clientX = event.clientX || event.touches[0].clientX;
const delta = clientX - this.indicatorStartX;
const trackWidth = this.totalWidth();
const visible = this.visibleWidth();
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxOffset = Math.max(0, barWidth - indWidth);
const newIndicatorOffset = Math.min(maxOffset, Math.max(0, this.indicatorStartOffset + delta));
const scrollRatio = maxOffset ? newIndicatorOffset / maxOffset : 0;
const maxScroll = Math.max(0, trackWidth - visible);
this.xOffset = -scrollRatio * maxScroll;
},
onIndicatorUp() {
this.indicatorDragging = false;
},
hasLeft() { return this.xOffset < 0; },
hasRight() { return this.xOffset > (this.visibleWidth() - this.totalWidth()); }
}
" x-init="init" x-on:mousemove="onMouseMove" x-on:mousedown="onMouseDown" x-on:mouseup="onMouseUp" x-on:mouseleave="onMouseUp" x-on:touchstart="onTouchStart" x-on:touchmove="onTouchMove" x-on:touchend="onMouseUp"><div class="pointer-events-none absolute inset-y-0 left-0 w-16 z-10"><div class="h-full w-full bg-gradient-to-r from-black to-transparent" x-show="hasLeft()" x-cloak="" x-transition.opacity.duration.1200ms=""></div></div><div class="pointer-events-none absolute inset-y-0 right-0 w-16 z-10"><div class="h-full w-full bg-gradient-to-l from-black to-transparent" x-show="hasRight()" x-cloak="" x-transition.opacity.duration.1200ms=""></div></div><div x-ref="stripTrack" class="flex w-full gap-2" x-bind:style="`transform: translateX(${xOffset}px);`" role="listbox"><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 0, 'border-transparent': currentVideo !== 0 }" x-on:click="currentVideo = 0"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/Kirkpatrick2_video-poster_producers_sk001_RELEASE.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 1, 'border-transparent': currentVideo !== 1 }" x-on:click="currentVideo = 1"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/Harlin_video_poster_tutorial.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 2, 'border-transparent': currentVideo !== 2 }" x-on:click="currentVideo = 2"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/Harlin_beatmaking_video_poster_tutorial.jpeg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 3, 'border-transparent': currentVideo !== 3 }" x-on:click="currentVideo = 3"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/CreativeFlow_video-poster-tutorial_sk001_RELEASE.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 4, 'border-transparent': currentVideo !== 4 }" x-on:click="currentVideo = 4"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_basics/basic_firststeps_poster.jpg"/></div></div><div class="relative hidden sm:flex justify-center mt-10" x-show="shouldShowScrollbar()" x-cloak=""><div class="w-2/3 h-[1px] bg-light-grey relative mb-10" data-scrollbar="true"><div class="absolute top-0 left-0 w-16 h-4 bg-primary rounded-full transform cursor-pointer" x-ref="indicator" x-bind:style="indicatorStyle()" x-on:mousedown="onIndicatorDown" x-on:touchstart="onIndicatorDown" x-on:mousemove.window="onIndicatorMove" x-on:touchmove.window="onIndicatorMove" x-on:mouseup.window="onIndicatorUp" x-on:touchend.window="onIndicatorUp"></div></div></div></div></div></div></div></div><div ><div class="relative" x-data="{
factor: 250,
offset: 0,
ticking: false,
side: 'right',
updateOffset() {
const rect = this.$el.getBoundingClientRect();
const viewportHeight = window.innerHeight;
const centerDeltaVH = ((rect.top + rect.height / 2) - (viewportHeight / 2)) / viewportHeight;
const progress = -centerDeltaVH;
this.offset = progress * this.factor;
},
onScroll() {
if (!this.ticking) {
requestAnimationFrame(() => { this.updateOffset(); this.ticking = false; });
this.ticking = true;
}
},
init() {
this.updateOffset();
addEventListener('scroll', this.onScroll.bind(this));
addEventListener('resize', this.onScroll.bind(this));
}
}" x-init="init()"><div class="absolute -z-10 top-1/2 overflow-hidden rounded-full h-[40vw] w-[20vw] right-0" x-bind:style="`transform: translateX(${side === 'left' ? '-50%' : '50%'}) translateY(${offset}px)`"><img src="/assets/img/mood.png" class="hidden md:block w-full h-full object-cover scale-300" style="transform: translateY(0)" x-bind:style="`transform: translateY(${offset * factor * 0.0001}px)`"/></div></div><div id="" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-default"><div class="px-4 flex flex-col items-center text-center"><h1>Bring the <b>human element</b> back to modern music production</h1><p>Tonalic offers a new way to produce music — powered by real musicians, guided by the Tonalic engine, and designed to make your songs feel alive.</p></div><div class="px-4 md:flex justify-between my-8 gap-8"><div class="bg-grey rounded-xl flex-1 overflow-hidden my-8 md:my-0"><img src="/uploads/tonalic_box_Argumente_1_dfc3e195ff.png" class="w-full h-64 object-cover"/><div class="flex flex-col items-center text-center my-8 px-2 text-medium-grey"><div class="text-primary font-bold mb-2 text-lg">Real musicians. Real feel.</div><p>At the heart of Tonalic are real, emotional performances — recorded by world-class session musicians and shaped by your song’s chords, tempo, and groove. <br />
No loops. No AI. Just real music that fits.</p></div></div><div class="bg-grey rounded-xl flex-1 overflow-hidden my-8 md:my-0"><img src="/uploads/image_ef9b6435c7.png" class="w-full h-64 object-cover"/><div class="flex flex-col items-center text-center my-8 px-2 text-medium-grey"><div class="text-primary font-bold mb-2 text-lg">The Tonalic engine.</div><p>A deeply musical system built on Celemony’s DNA technology – preserving what musicians played in the studio and adapting those performances so they follow your song, as a real musician would.</p></div></div><div class="bg-grey rounded-xl flex-1 overflow-hidden my-8 md:my-0"><img src="/uploads/tonalic_box_Argumente_3_7dae809442.png" class="w-full h-64 object-cover"/><div class="flex flex-col items-center text-center my-8 px-2 text-medium-grey"><div class="text-primary font-bold mb-2 text-lg">Make it your own — every time.</div><p>Each Tonalic is infinitely flexible, adapting uniquely to every song. Get endless variations, human nuance, and one‑of‑a‑kind results — all royalty‑free and production-ready.</p></div></div></div></div></div><div ><div id="1" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-default"><div class="px-4"><a class="block relative group" href="/index.html#pricing"><div class="bg-grey rounded-xl p-8 sm:flex space-between items-center group-hover:opacity-95 transition-all"><img class="block w-full sm:w-1/2" src="/uploads/1_Euro_Kasten_Mont_93682ff1f4.png"/><div class="pt-8 sm:p-8"><h1><b>offer</b>: Try Tonalic now!</h1><p>For just<b> 1 Euro or 1 US-Dollar</b>, you can try Tonalic arranger or Tonalic studio for a full month. After that, the regular subscription prices apply.</p></div></div><div class="absolute right-6 bottom-4 text-primary flex items-center gap-2">to the launch offer<svg class="transform size-5 group-hover:translate-x-2 transition-all" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></div></a></div></div></div><div ><div id="musicians" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-small"><div class="px-4 flex flex-col items-center text-center"><h1><b>Meet</b> the musicians</h1><p>World-class studio musicians play along with your song – bringing real feel, tone, and musical intuition. Tonalic provides a deep palette of guitars, bass, drums, and percussion, shaped by a wide range of instrument models, setups, and playing approaches.</p><p>Recorded in great music cities around the world, the library keeps expanding with new musicians, instruments, and styles over time.</p></div></div></div><div class="vertical-margin-default" id=""><div x-data="{
indicatorDragging: false,
indicatorStartX: 0,
indicatorStartOffset: 0,
currentIndex: -1,
hoveredIndex: -1,
xOffset: 0,
isDragging: false,
startX: 0,
lastXOffset: 0,
velocity: 0,
momentum: false,
lastMoveTime: 0,
lastMoveX: 0,
track: null,
container: null,
indicator: null,
scrollbar: null,
minOffset: 0, // max left translation (last pill centered)
maxOffset: 0, // max right translation (first pill centered)
init() {
this.track = this.$refs.track;
this.container = this.$el;
this.indicator = this.$refs.indicator;
this.scrollbar = this.container.querySelector('[data-scrollbar]');
// Measure once layout is ready, then center a random item
requestAnimationFrame(() => {
this.measureBounds();
const children = Array.from(this.track.children);
const randomIndex = Math.floor(Math.random() * children.length);
this.scrollToIndex(randomIndex);
});
requestAnimationFrame(() => {
const children = Array.from(this.track.children);
const randomIndex = Math.floor(Math.random() * children.length);
this.scrollToIndex(randomIndex);
});
// Re-measure on resize (and keep current centering)
window.addEventListener('resize', () => {
this.measureBounds();
this.constrainOffset();
});
this.$nextTick?.(); // optional if available
const imgs = this.track.querySelectorAll('img');
imgs.forEach(img => img.addEventListener('load', () => {
this.measureBounds();
this.constrainOffset();
}, { once: true }));
this.animate();
this.$el.addEventListener(
'wheel',
(e) => {
if (Math.abs(e.deltaX) > Math.abs(e.deltaY)) {
e.preventDefault();
this.xOffset -= e.deltaX;
this.constrainOffset();
}
},
{ passive: false },
);
},
measureBounds() {
// Temporarily remove transform to measure in layout coords
const prev = this.track.style.transform;
this.track.style.transform = 'none';
const trackRect = this.track.getBoundingClientRect();
const children = Array.from(this.track.children);
if (!children.length) { this.track.style.transform = prev; return; }
const firstRect = children[0].getBoundingClientRect();
const lastRect = children[children.length - 1].getBoundingClientRect();
const firstCenter = (firstRect.left - trackRect.left) + firstRect.width / 2;
const lastCenter = (lastRect.left - trackRect.left) + lastRect.width / 2;
const containerCenter = this.container.clientWidth / 2;
// Offsets that put first/last centers at container center
this.maxOffset = containerCenter - firstCenter; // rightmost clamp
this.minOffset = containerCenter - lastCenter; // leftmost clamp
// Restore transform
this.track.style.transform = prev;
},
scrollToIndex(index) {
const children = Array.from(this.track.children);
const selected = children[index];
if (!selected) return;
// Measure relative to track (no transform)
const prev = this.track.style.transform;
this.track.style.transform = 'none';
const trackRect = this.track.getBoundingClientRect();
const selRect = selected.getBoundingClientRect();
const selCenter = (selRect.left - trackRect.left) + selRect.width / 2;
this.track.style.transform = prev;
const containerCenter = this.container.clientWidth / 2;
this.xOffset = containerCenter - selCenter;
this.constrainOffset();
this.detectCurrentItem();
},
constrainOffset() {
if (this.xOffset > this.maxOffset) this.xOffset = this.maxOffset;
if (this.xOffset < this.minOffset) this.xOffset = this.minOffset;
},
onMouseDown(event) {
this.isDragging = true;
this.startX = event.clientX;
this.lastXOffset = this.xOffset;
this.velocity = 0;
this.momentum = false;
this.lastMoveX = event.clientX;
this.lastMoveTime = performance.now();
},
onMouseMove(event) {
if (!this.isDragging) return;
const dx = event.clientX - this.startX;
this.xOffset = this.lastXOffset + dx;
const now = performance.now();
const deltaX = event.clientX - this.lastMoveX;
const deltaTime = now - this.lastMoveTime;
if (deltaTime > 0) {
this.velocity = deltaX / deltaTime;
this.lastMoveX = event.clientX;
this.lastMoveTime = now;
}
this.constrainOffset();
},
onMouseUp() {
if (this.isDragging) {
this.isDragging = false;
this.momentum = true;
}
},
onTouchStart(event) {
this.onMouseDown(event.touches[0]);
},
onTouchMove(event) {
this.onMouseMove(event.touches[0]);
},
animate() {
requestAnimationFrame(() => {
if (this.momentum && !this.isDragging) {
this.xOffset += this.velocity * 16;
this.velocity *= 0.94;
if (Math.abs(this.velocity) < 0.05) {
this.momentum = false;
}
this.constrainOffset();
}
this.detectCurrentItem();
this.animate();
});
},
detectCurrentItem() {
const containerCenter = this.container.clientWidth / 2;
let closestIndex = -1;
let closestDistance = Infinity;
const children = Array.from(this.track.children);
for (let i = 0; i < children.length; i++) {
const el = children[i];
const rect = el.getBoundingClientRect();
const elCenter = rect.left + rect.width / 2;
const distance = Math.abs(containerCenter - elCenter);
if (distance < closestDistance) {
closestDistance = distance;
closestIndex = i;
}
}
if (closestIndex !== this.currentIndex) {
this.currentIndex = closestIndex;
}
},
_progress() {
const span = this.maxOffset - this.minOffset || 1; // positive
// invert: left when xOffset==maxOffset, right when xOffset==minOffset
return Math.max(0, Math.min(1, (this.maxOffset - this.xOffset) / span));
},
indicatorStyle() {
if (!this.scrollbar || !this.indicator) return '';
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxIndicatorOffset = Math.max(0, barWidth - indWidth);
const indicatorX = this._progress() * maxIndicatorOffset;
return `transform: translateX(${indicatorX}px) translateY(-50%)`;
},
getIndicatorOffset() {
if (!this.scrollbar || !this.indicator) return 0;
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxIndicatorOffset = Math.max(0, barWidth - indWidth);
return this._progress() * maxIndicatorOffset;
},
onIndicatorDown(event) {
this.indicatorDragging = true;
this.indicatorStartX = event.clientX || event.touches[0].clientX;
this.indicatorStartOffset = this.getIndicatorOffset();
},
onIndicatorMove(event) {
if (!this.indicatorDragging) return;
const clientX = event.clientX || event.touches[0].clientX;
const delta = clientX - this.indicatorStartX;
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxOffset = Math.max(0, barWidth - indWidth);
const newIndicatorOffset = Math.min(maxOffset, Math.max(0, this.indicatorStartOffset + delta));
const ratio = maxOffset ? (newIndicatorOffset / maxOffset) : 0; // 0..1 left→right
// Inverse mapping back to xOffset:
this.xOffset = this.maxOffset - ratio * (this.maxOffset - this.minOffset);
this.constrainOffset();
},
onIndicatorUp() {
this.indicatorDragging = false;
}
}" x-init="init" x-on:mousemove="onMouseMove" x-on:mousedown="onMouseDown" x-on:mouseup="onMouseUp" x-on:mouseleave="onMouseUp" x-on:touchstart="onTouchStart" x-on:touchmove="onTouchMove" x-on:touchend="onMouseUp" x-on:artist-hover="hoveredIndex = $event.detail.index" class="relative select-none"><div x-ref="track" class="flex items-center gap-10" x-bind:style="`transform: translateX(${xOffset}px);`"><a x-on:mouseenter="$dispatch('artist-hover', { index: 0 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 0, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/kenny-aronoff.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Kenny_Aronoff_web_vertical_02_13644dc6f7.jpg);transform: translateY(-7.5%);" x-bind:style="`transform: translateY(${-7.5 + 4 * Math.sin(0.07 * (0.015625 * 0 + -7.5))}%); background-image: url(/uploads/Kenny_Aronoff_web_vertical_02_13644dc6f7.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Kenny Aronoff</div><div class="text-sm"><p>Today, Kenny is one of the most sought-after drummers in the world. His unique skills and talents transcend all musical genres, often featuring a powerful back beat and a lot of punch.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 1 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 1, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/uwe-bossert.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/uwe_Bossert_web_vertical_02_ac2393c627.jpg);transform: translateY(3.147721184468537%);" x-bind:style="`transform: translateY(${3.147721184468537 + 4 * Math.sin(0.07 * (0.015625 * 0 + 3.147721184468537))}%); background-image: url(/uploads/uwe_Bossert_web_vertical_02_ac2393c627.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Uwe Bossert</div><div class="text-sm"><p>Uwe is best known as the guitarist of the German pop-rock band Reamonn. His guitar mastery blends intricate fingerpicking with emotive melodies that resonate with depth and emotion.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 2 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 2, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/randy-bowland.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/randy_Bowland_web_vertical_02_4ffd36bb70.jpg);transform: translateY(7.1140238522639265%);" x-bind:style="`transform: translateY(${7.1140238522639265 + 4 * Math.sin(0.07 * (0.015625 * 0 + 7.1140238522639265))}%); background-image: url(/uploads/randy_Bowland_web_vertical_02_4ffd36bb70.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Randy Bowland</div><div class="text-sm"><p>Randy is known for his work across R&B, gospel, pop and soul. Drawing inspiration from classic jazz, his guitar work blends melodic clarity with harmonic sophistication shifting seamlessly between lead and rhythm roles.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 3 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 3, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/corey-britz.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Corey_Britz_web_vertical_02_3807449ba1.jpg);transform: translateY(-4.498791019916553%);" x-bind:style="`transform: translateY(${-4.498791019916553 + 4 * Math.sin(0.07 * (0.015625 * 0 + -4.498791019916553))}%); background-image: url(/uploads/Corey_Britz_web_vertical_02_3807449ba1.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Corey Britz</div><div class="text-sm"><p>In addition to being the bassist for Bush, Corey is a sought-after session musician and producer. He's fantastic with a pick, especially when it comes to fat sounding 90s rock, but also shines in pop and alternative.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 4 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 4, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/jt-corenflos.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Jt_Corenflos_web_vertical_02_0d9212c09f.jpg);transform: translateY(7.125703810775121%);" x-bind:style="`transform: translateY(${7.125703810775121 + 4 * Math.sin(0.07 * (0.015625 * 0 + 7.125703810775121))}%); background-image: url(/uploads/Jt_Corenflos_web_vertical_02_0d9212c09f.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">J.T. Corenflos</div><div class="text-sm"><p>J.T. was a renowned guitarist from Nashville, who infused his musical approach with versatility and virtuosity, spanning genres from country to rock, making him a sought-after session musician and a true legend.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 5 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 5, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/julian-coryell.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Julian_Coryell_web_vertical_02_b07d74b0cf.jpg);transform: translateY(3.8588005292422167%);" x-bind:style="`transform: translateY(${3.8588005292422167 + 4 * Math.sin(0.07 * (0.015625 * 0 + 3.8588005292422167))}%); background-image: url(/uploads/Julian_Coryell_web_vertical_02_b07d74b0cf.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Julian Coryell</div><div class="text-sm"><p>Julian, a versatile guitarist, singer, songwriter, and producer, has collaborated with artists like Alanis Morissette, Aimee Mann and Jewel. Beyond his jazz roots, he moves fluidly across genres and styles.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 6 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 6, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/justin-derrico.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Justin_Derrico_web_vertical_02_2234161842.jpg);transform: translateY(5.175270161123535%);" x-bind:style="`transform: translateY(${5.175270161123535 + 4 * Math.sin(0.07 * (0.015625 * 0 + 5.175270161123535))}%); background-image: url(/uploads/Justin_Derrico_web_vertical_02_2234161842.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Justin Derrico</div><div class="text-sm"><p>Justin gained prominence as the lead guitarist for Pink and NBC's "The Voice". His playing seamlessly blends rock and pop influences, showcasing technical prowess and stirring expression.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 7 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 7, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/adrian-X.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Adrian_X_Ecclestone_web_vertical_02_ba1223e880.jpg);transform: translateY(5.489807818362351%);" x-bind:style="`transform: translateY(${5.489807818362351 + 4 * Math.sin(0.07 * (0.015625 * 0 + 5.489807818362351))}%); background-image: url(/uploads/Adrian_X_Ecclestone_web_vertical_02_ba1223e880.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Adrian X</div><div class="text-sm"><p>Adrian X, a distinguished guitarist, writer and producer, is celebrated for his genre-defying style that seamlessly blends R&B, reggae grooves, metal riffs and hip hop.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 8 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 8, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/ahmed-el-salamouny.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Ahmed_El_Salamouny_web_vertical_02_9eb27c1886.jpg);transform: translateY(1.2369935072729277%);" x-bind:style="`transform: translateY(${1.2369935072729277 + 4 * Math.sin(0.07 * (0.015625 * 0 + 1.2369935072729277))}%); background-image: url(/uploads/Ahmed_El_Salamouny_web_vertical_02_9eb27c1886.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Ahmed El-Salamouny</div><div class="text-sm"><p>Although he studied and lives in Europe, Ahmed is widely recognized as a leading interpreter of Brazilian music. He combines excellent technique on the classical guitar with the rhythmic vitality of Brazilian genres.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 9 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 9, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/paul-geary.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/paul_Geary_web_vertical_02_65b0eb0c07.jpg);transform: translateY(-4.727213736514386%);" x-bind:style="`transform: translateY(${-4.727213736514386 + 4 * Math.sin(0.07 * (0.015625 * 0 + -4.727213736514386))}%); background-image: url(/uploads/paul_Geary_web_vertical_02_65b0eb0c07.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Paul Geary</div><div class="text-sm"><p>Influenced by Marcus Miller and Mark King, Paul prefers slapping and thumb playing. The top-tier session and touring bassist is renowned for his tasteful approach – a versatile style that's groove-oriented yet melodic.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 10 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 10, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/binky-griptite.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Binky_Griptite_web_vertical_02_39984d1b9e.jpg);transform: translateY(4.333366594528343%);" x-bind:style="`transform: translateY(${4.333366594528343 + 4 * Math.sin(0.07 * (0.015625 * 0 + 4.333366594528343))}%); background-image: url(/uploads/Binky_Griptite_web_vertical_02_39984d1b9e.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Binky Griptite</div><div class="text-sm"><p>Binky is a cornerstone of the modern soul revival as the guitarist for Sharon Jones & the Dap-Kings, later also for artists like Amy Winehouse. His guitar work is deeply rooted in 1960s funk and soul traditions.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 11 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 11, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/rob-harris.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/rob_Harris_web_vertical_02_145f7c213a.jpg);transform: translateY(-6.0309826055163285%);" x-bind:style="`transform: translateY(${-6.0309826055163285 + 4 * Math.sin(0.07 * (0.015625 * 0 + -6.0309826055163285))}%); background-image: url(/uploads/rob_Harris_web_vertical_02_145f7c213a.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Rob Harris</div><div class="text-sm"><p>Rob, a highly accomplished English guitarist and songwriter, has recorded and toured with renowned artists like Jamiroquai and Kylie Minogue. He loves playing jazzy and funky rhythm parts on acoustic or electric guitar.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 12 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 12, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/sean-hurley.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/sean_Hurley_web_vertical_02_ae96ca2dfa.jpg);transform: translateY(-3.4377000652420975%);" x-bind:style="`transform: translateY(${-3.4377000652420975 + 4 * Math.sin(0.07 * (0.015625 * 0 + -3.4377000652420975))}%); background-image: url(/uploads/sean_Hurley_web_vertical_02_ae96ca2dfa.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Sean Hurley</div><div class="text-sm"><p>Sean has collaborated with artists like John Mayer and Robin Thicke, contributing to numerous chart-topping records. He is an incredibly versatile bassist, known for his earthy, warm and thick tone that supports the song.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 13 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 13, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/victor-indrizzo.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/victor_Indrizzo_web_vertical_02_e5ecf70c1d.jpg);transform: translateY(2.555523996138618%);" x-bind:style="`transform: translateY(${2.555523996138618 + 4 * Math.sin(0.07 * (0.015625 * 0 + 2.555523996138618))}%); background-image: url(/uploads/victor_Indrizzo_web_vertical_02_e5ecf70c1d.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Victor Indrizzo</div><div class="text-sm"><p>Victor is an accomplished drummer, acclaimed for his dynamic and eclectic style. His drumming has been the driving force behind countless albums and performances, leaving an indelible mark on the industry.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 14 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 14, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/venzella-joy.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/venzella_Joy_web_vertical_02_a2103c3e85.jpg);transform: translateY(-6.396645769436873%);" x-bind:style="`transform: translateY(${-6.396645769436873 + 4 * Math.sin(0.07 * (0.015625 * 0 + -6.396645769436873))}%); background-image: url(/uploads/venzella_Joy_web_vertical_02_a2103c3e85.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Venzella Joy</div><div class="text-sm"><p>Known for her dynamic, precise and groove-heavy drumming style, Joy gained global recognition as the heartbeat of Beyoncé's all-female band. She also works as an actress, musical director and music producer.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 15 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 15, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/martin-ace-kent.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/martin_Ace_Kent_COV_web_vertical_02_d1443eb0c3.jpg);transform: translateY(5.676023567521042%);" x-bind:style="`transform: translateY(${5.676023567521042 + 4 * Math.sin(0.07 * (0.015625 * 0 + 5.676023567521042))}%); background-image: url(/uploads/martin_Ace_Kent_COV_web_vertical_02_d1443eb0c3.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Martin "Ace" Kent</div><div class="text-sm"><p>Ace, guitar player of the UK rock band Skunk Anansie, is one of the top creative rock guitarists, authors and educators. His trademark lies in crafting heavy riffs built on simplicity and strength.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 16 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 16, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/paul-kleber.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/paul_Kleber_web_vertical_02_18d30742d4.jpg);transform: translateY(7.002500240203062%);" x-bind:style="`transform: translateY(${7.002500240203062 + 4 * Math.sin(0.07 * (0.015625 * 0 + 7.002500240203062))}%); background-image: url(/uploads/paul_Kleber_web_vertical_02_18d30742d4.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Paul Kleber</div><div class="text-sm"><p>Coming from a classical background as a double bass player, Paul quickly adapted his style to jazz, pop and eletronic music with artists like Jazzanova and Emilíana Torrini. His bass lines are known for their harmonic sophistication and fluidity.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 17 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 17, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/david-kuckhermann.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/David_Kuckhermann_web_vertical_03d_0c4a784c19.jpg);transform: translateY(-7.123781933514692%);" x-bind:style="`transform: translateY(${-7.123781933514692 + 4 * Math.sin(0.07 * (0.015625 * 0 + -7.123781933514692))}%); background-image: url(/uploads/David_Kuckhermann_web_vertical_03d_0c4a784c19.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">David Kuckhermann</div><div class="text-sm"><p>David, a Grammy-nominated percussionist, fell in love early with finger-style drumming. He studied Indian tabla and Iranian tombak, later immersing himself in the world of frame drums and handpans.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 18 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 18, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/brent-mason.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Brent_Mason_web_vertical_02_9899279fe6.jpg);transform: translateY(-5.5870157514300445%);" x-bind:style="`transform: translateY(${-5.5870157514300445 + 4 * Math.sin(0.07 * (0.015625 * 0 + -5.5870157514300445))}%); background-image: url(/uploads/Brent_Mason_web_vertical_02_9899279fe6.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Brent Mason</div><div class="text-sm"><p>Brent is a Grammy-winning Nashville session guitarist whose exceptional talent and trademark hybrid picking has shaped countless chart-topping country hits over the past four decades.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 19 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 19, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/troy-mclawhorn.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/troy_Mc_Lawhorn_web_vertical_02_21097a98ef.jpg);transform: translateY(4.081449442852545%);" x-bind:style="`transform: translateY(${4.081449442852545 + 4 * Math.sin(0.07 * (0.015625 * 0 + 4.081449442852545))}%); background-image: url(/uploads/troy_Mc_Lawhorn_web_vertical_02_21097a98ef.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Troy McLawhorn</div><div class="text-sm"><p>Troy is an American alternative rock and metal guitar player, well-known as Evanescence's lead guitarist and for his heavy, but also bluesy style.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 20 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 20, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/nate-mendel.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/nate_Mendel_web_vertical_02_827ed1a41c.jpg);transform: translateY(-0.7123908558423864%);" x-bind:style="`transform: translateY(${-0.7123908558423864 + 4 * Math.sin(0.07 * (0.015625 * 0 + -0.7123908558423864))}%); background-image: url(/uploads/nate_Mendel_web_vertical_02_827ed1a41c.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Nate Mendel</div><div class="text-sm"><p>As a founding member of Foo Fighters, Nate's bass lines anchor each composition with precision and depth, blending his melodic sensibilities and rhythmic foundation into a powerful sound.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 21 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 21, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/dwayne-moore.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Dwayne_Moore_web_vertical_02_df056f4d01.jpg);transform: translateY(0.8457804083991505%);" x-bind:style="`transform: translateY(${0.8457804083991505 + 4 * Math.sin(0.07 * (0.015625 * 0 + 0.8457804083991505))}%); background-image: url(/uploads/Dwayne_Moore_web_vertical_02_df056f4d01.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Dwayne Moore</div><div class="text-sm"><p>Dwayne, originally a cornerstone of the Philly scene, is a versatile American bassist prominently known for his work with Beck's live band. He prioritizes a big tone as well as pocket over flashy technique.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 22 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 22, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/nick-movshon.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/nick_Movshon_web_vertical_02_ebca43213f.jpg);transform: translateY(-0.19639356058135604%);" x-bind:style="`transform: translateY(${-0.19639356058135604 + 4 * Math.sin(0.07 * (0.015625 * 0 + -0.19639356058135604))}%); background-image: url(/uploads/nick_Movshon_web_vertical_02_ebca43213f.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Nick Movshon</div><div class="text-sm"><p>Nick, a key figure in Brooklyn's funk and soul revival scene, is acclaimed for his groove-centric bass lines with impeccable timing and ghost notes. He anchors compositions with a rich, unmistakable vintage sound.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 23 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 23, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/larry-paxton.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/larry_Paxton_web_vertical_02_5688c3a446.jpg);transform: translateY(4.439373724417237%);" x-bind:style="`transform: translateY(${4.439373724417237 + 4 * Math.sin(0.07 * (0.015625 * 0 + 4.439373724417237))}%); background-image: url(/uploads/larry_Paxton_web_vertical_02_5688c3a446.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Larry Paxton</div><div class="text-sm"><p>Larry is a legendary Nashville session bassist whose exceptional talent has shaped numerous chart-topping country hits. Whether on upright or electric bass, his tone is warm and articulate.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 24 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 24, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/tim-pierce.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/tim_Pierce_web_vertical_02_0b645a2c00.jpg);transform: translateY(-4.254300993579818%);" x-bind:style="`transform: translateY(${-4.254300993579818 + 4 * Math.sin(0.07 * (0.015625 * 0 + -4.254300993579818))}%); background-image: url(/uploads/tim_Pierce_web_vertical_02_0b645a2c00.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Tim Pierce</div><div class="text-sm"><p>Tim is one of the most featured and influential session guitarists of all time, playing on countless chart-topping records. His superior harmonic knowledge leads to versatile and creative guitar parts that always support the song.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 25 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 25, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/alex-reeves.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Alex_Reeves_web_vertical_02_a7172fa2c9.jpg);transform: translateY(-0.26251466595567763%);" x-bind:style="`transform: translateY(${-0.26251466595567763 + 4 * Math.sin(0.07 * (0.015625 * 0 + -0.26251466595567763))}%); background-image: url(/uploads/Alex_Reeves_web_vertical_02_a7172fa2c9.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Alex Reeves</div><div class="text-sm"><p>Alex is a live and session drummer from London. He performed and recorded among others with Elbow, Shania Twain, Dizzee Rascal and is celebrated for "big phat grooves" and a "hip British swing".</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 26 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 26, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/oli-rubow.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/oliver_Rubow_web_vertical_02_b8b66e478d.jpg);transform: translateY(1.267571940425114%);" x-bind:style="`transform: translateY(${1.267571940425114 + 4 * Math.sin(0.07 * (0.015625 * 0 + 1.267571940425114))}%); background-image: url(/uploads/oliver_Rubow_web_vertical_02_b8b66e478d.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Oli Rubow</div><div class="text-sm"><p>Oli played and toured with artists like Hellmut Hattler and DePhazz. Apart from being an incredibly skilled jazz drummer, he often blends acoustic and electronic elements.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 27 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 27, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/jared-scharff.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Jared_Scharff_web_vertical_02_bfc7a34db6.jpg);transform: translateY(3.889260675459809%);" x-bind:style="`transform: translateY(${3.889260675459809 + 4 * Math.sin(0.07 * (0.015625 * 0 + 3.889260675459809))}%); background-image: url(/uploads/Jared_Scharff_web_vertical_02_bfc7a34db6.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Jared Scharff</div><div class="text-sm"><p>Jared, former Saturday Night Live guitarist, now thriving as a sought-after producer, songwriter and session musician. Whether it's pumping funk, soulful blues or ambient textures, he adapts instantly.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 28 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 28, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/hubert-steiner.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Hubert_Steiner_web_vertical_02_13fa4f5de8.jpg);transform: translateY(-6.631753819644928%);" x-bind:style="`transform: translateY(${-6.631753819644928 + 4 * Math.sin(0.07 * (0.015625 * 0 + -6.631753819644928))}%); background-image: url(/uploads/Hubert_Steiner_web_vertical_02_13fa4f5de8.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Hubert Steiner</div><div class="text-sm"><p>Beyond his role as the bass player of Thees Uhlmann, Hubert is also known for his work with Sportfreunde Stiller. Playing primarily with a pick, his fat tone delivers serious drive and groove.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 29 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 29, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/bryan-sutton.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/Bryan_Sutton_web_vertical_02_b917d7b414.jpg);transform: translateY(2.417368054875624%);" x-bind:style="`transform: translateY(${2.417368054875624 + 4 * Math.sin(0.07 * (0.015625 * 0 + 2.417368054875624))}%); background-image: url(/uploads/Bryan_Sutton_web_vertical_02_b917d7b414.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Bryan Sutton</div><div class="text-sm"><p>Bryan, a Grammy-winning acoustic guitarist – legendary for his flatpicking, has collaborated with Ricky Skaggs, The Chicks, Taylor Swift and many more, earning multiple IBMA awards along the way.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 30 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 30, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/paul-turner.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/paul_Turner_web_vertical_02_97eec812d8.jpg);transform: translateY(2.756386070732333%);" x-bind:style="`transform: translateY(${2.756386070732333 + 4 * Math.sin(0.07 * (0.015625 * 0 + 2.756386070732333))}%); background-image: url(/uploads/paul_Turner_web_vertical_02_97eec812d8.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Paul Turner</div><div class="text-sm"><p>Paul, bassist for Jamiroquai, has also collaborated with artists like Tina Turner, Bryan Ferry, Tom Jones and Seal. He tends to have a clear sound, though he also likes a fat, round tone.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a><a x-on:mouseenter="$dispatch('artist-hover', { index: 31 })" x-on:mouseleave="$dispatch('artist-hover', { index: -1 })" x-data="{ index: 31, isActive() { return this.index === currentIndex && hoveredIndex === -1 } }" href="/artists/raoul-walton.html" x-bind:class="isActive() ? 'border-primary' : 'border-transparent'" class="rounded-full py-6 bg-cover bg-center bg-no-repeat relative overflow-hidden grow-0 shrink-0 group bg-primary/30 border transition-all duration-75 hover:border-primary px-12 h-[600px] w-[300px]" style="background-image: url(/uploads/raoul_Walton_web_vertical_02_25a1a10156.jpg);transform: translateY(1.853201540250211%);" x-bind:style="`transform: translateY(${1.853201540250211 + 4 * Math.sin(0.07 * (0.015625 * 0 + 1.853201540250211))}%); background-image: url(/uploads/raoul_Walton_web_vertical_02_25a1a10156.jpg)`"><div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Raoul Walton</div><div class="text-sm"><p>Raoul is a seasoned bassist best known for his presence in the German scene. He fuses funk, jazz and R&B – sculpting deep grooves with impeccable timing, anchoring compositions with a rich, dynamic sound.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div></a></div><div class="relative hidden sm:flex justify-center mt-40"><div class="w-1/3 h-[1px] bg-light-grey relative" data-scrollbar="true"><div class="absolute top-0 left-0 w-16 h-4 bg-primary rounded-full transform cursor-pointer" x-ref="indicator" x-bind:style="indicatorStyle" x-on:mousedown="onIndicatorDown" x-on:touchstart="onIndicatorDown" x-on:mousemove.window="onIndicatorMove" x-on:touchmove.window="onIndicatorMove" x-on:mouseup.window="onIndicatorUp" x-on:touchend.window="onIndicatorUp"></div></div></div></div></div><div ><div id="" class="container mx-auto w-full relative md:max-w-[1024px] video-element vertical-margin-small"><div class="px-4 flex flex-col items-center text-center mb-16"><h1>The library <b>keeps growing</b></h1><h3>Latest drop: <b>New Percussion Colors</b> — June 2026</h3><p>David Kuckhermann · Grammy-nominated percussionist. Calabash in his signature style, plus udu, djembe, cajon and conga – a palette of hand percussion that moves from a subtle organic pulse behind an acoustic guitar to the driving foundation of a hip-hop or EDM track.</p><p>Already subscribed? Open Tonalic in your DAW and everything new is already there.<a href="/artists/julian-coryell.html"></a></p></div><div class="px-4 video-element-inner"><div class="video-gallery-inner flex flex-col gap-8" x-ref="player" x-data="
{
currentVideo: 0,
numVideos: 7,
nextVideo: function() {
if (this.currentVideo < this.numVideos - 1) {
this.currentVideo++;
}
},
previousVideo: function() {
if (this.currentVideo > 0) {
this.currentVideo--;
}
},
init: function() {
const allPlayers = Array.from(
document.querySelectorAll('.video-gallery-inner')
);
const myIndex = allPlayers.indexOf(this.$el);
if (myIndex === -1) return;
const hash = document.location.hash;
if (!hash.startsWith('#video-')) {
return;
}
const parts = hash.replace('#video-', '').split('-');
const targetPlayer = parseInt(parts.length === 2 ? parts[0] : 1, 10) - 1;
const targetVideo = parseInt(parts.length === 2 ? parts[1] : parts[0], 10) - 1;
if (myIndex === targetPlayer && !isNaN(targetVideo)) {
this.$nextTick(() => {
this.currentVideo = targetVideo;
this.$el.scrollIntoView({ behavior: 'smooth' });
});
}
}
}
" x-init="init()"><div ><template x-if="0 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/DavidKuckhermann_video-poster_tutoria_sk001_RELEASE.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/FXj1aZaKeZo?autoplay=0&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/FXj1aZaKeZo?autoplay=0&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="1 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/DavidKuckhermann_video-poster_ContentRelease_sk001.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/K1eZ0qpEvTk?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/K1eZ0qpEvTk?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="2 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_instrument/DavidKuckhermann_Afroton-Waterdrum-Calabash_video-poster-instruments_sk001_RELEASE.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/Pb-Dh9epD2A?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/Pb-Dh9epD2A?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="3 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_musicians/DavidKuckhermann_video-poster_musicians.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/AkRkRK6voPc?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/AkRkRK6voPc?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="4 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_instrument/DavidKuckhermann_Pepote-Bass-Cajon_video-poster-instruments_sk001_RELEASE.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/nAjee6FapX4?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/nAjee6FapX4?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="5 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_instrument/DavidKuckhermann_LP-Aspire-Djembe_video-poster-instruments_sk001_RELEASE.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/KRTGIP0si34?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/KRTGIP0si34?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template><template x-if="6 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><img src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_instrument/DavidKuckhermann_Bauer-Percussion-Conga_video-poster-instruments_sk002_RELEASE.jpg" alt="Video placeholder" class="absolute inset-0 w-full h-full object-cover opacity-60"/><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/SvxXrn1WsPg?autoplay=1&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/SvxXrn1WsPg?autoplay=1&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template></div><div class="relative overflow-hidden select-none" x-data="
{
indicatorDragging: false,
indicatorStartX: 0,
indicatorStartOffset: 0,
xOffset: 0,
isDragging: false,
startX: 0,
lastXOffset: 0,
velocity: 0,
momentum: false,
lastMoveTime: 0,
lastMoveX: 0,
currentIndex: 0,
track: null,
container: null,
indicator: null,
scrollbar: null,
init() {
this.track = this.$refs.stripTrack;
this.container = this.$el;
this.indicator = this.$refs.indicator;
this.scrollbar = this.$el.querySelector('[data-scrollbar]');
this.$watch('currentVideo', () => this.scrollToIndex(this.currentVideo));
requestAnimationFrame(() => {
this.scrollToIndex(this.currentVideo ?? 0);
});
this.$el.addEventListener(
'wheel',
(e) => {
if (Math.abs(e.deltaX) > Math.abs(e.deltaY)) {
e.preventDefault();
this.xOffset -= e.deltaX;
this.constrainOffset();
}
},
{ passive: false },
);
this.animate();
},
totalWidth() { return this.track.scrollWidth; },
visibleWidth() { return this.container.clientWidth; },
shouldShowScrollbar() {
if (!this.track || !this.container) return false;
return this.totalWidth() > this.visibleWidth();
},
constrainOffset() {
const maxOffset = 0;
const minOffset = this.visibleWidth() - this.totalWidth();
if (this.xOffset > maxOffset) this.xOffset = maxOffset;
if (this.xOffset < minOffset) this.xOffset = minOffset;
},
scrollToIndex(index) {
const children = Array.from(this.track.children);
const selected = children[index];
if (!selected) return;
const trackRect = this.track.getBoundingClientRect();
const selectedRect = selected.getBoundingClientRect();
const pillCenter = selectedRect.left - trackRect.left + selectedRect.width / 2;
const containerCenter = this.visibleWidth() / 2;
this.xOffset = containerCenter - pillCenter;
this.constrainOffset();
this.detectCurrentItem();
},
onMouseDown(event) {
this.isDragging = true;
this.startX = event.clientX;
this.lastXOffset = this.xOffset;
this.velocity = 0;
this.momentum = false;
this.lastMoveX = event.clientX;
this.lastMoveTime = performance.now();
},
onMouseMove(event) {
if (!this.isDragging) return;
const dx = event.clientX - this.startX;
this.xOffset = this.lastXOffset + dx;
const now = performance.now();
const deltaX = event.clientX - this.lastMoveX;
const deltaTime = now - this.lastMoveTime;
if (deltaTime > 0) {
this.velocity = deltaX / deltaTime;
this.lastMoveX = event.clientX;
this.lastMoveTime = now;
}
this.constrainOffset();
},
onMouseUp() {
if (this.isDragging) {
this.isDragging = false;
this.momentum = true;
}
},
onTouchStart(e) { this.onMouseDown(e.touches[0]); },
onTouchMove(e) { this.onMouseMove(e.touches[0]); },
animate() {
requestAnimationFrame(() => {
if (this.momentum && !this.isDragging) {
this.xOffset += this.velocity * 16;
this.velocity *= 0.94;
if (Math.abs(this.velocity) < 0.05) this.momentum = false;
this.constrainOffset();
}
this.detectCurrentItem();
this.animate();
});
},
detectCurrentItem() {
const containerCenter = this.visibleWidth() / 2;
let closestIndex = -1;
let closestDistance = Infinity;
const children = Array.from(this.track.children);
for (let i = 0; i < children.length; i++) {
const el = children[i];
const rect = el.getBoundingClientRect();
const elCenter = rect.left + rect.width / 2;
const distance = Math.abs(containerCenter - elCenter);
if (distance < closestDistance) {
closestDistance = distance;
closestIndex = i;
}
}
if (closestIndex !== this.currentIndex) this.currentIndex = closestIndex;
},
indicatorStyle() {
if (!this.track || !this.container || !this.scrollbar || !this.indicator) return '';
const trackWidth = this.totalWidth();
const visible = this.visibleWidth();
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxIndicatorOffset = Math.max(0, barWidth - indWidth);
const maxScroll = Math.max(1, trackWidth - visible);
const scrollProgress = Math.max(0, Math.min(1, -this.xOffset / maxScroll));
const indicatorX = scrollProgress * maxIndicatorOffset;
return `transform: translateX(${indicatorX}px) translateY(-50%)`;
},
getIndicatorOffset() {
if (!this.track || !this.container || !this.scrollbar || !this.indicator) return 0;
const trackWidth = this.totalWidth();
const visible = this.visibleWidth();
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxOffset = Math.max(0, barWidth - indWidth);
const maxScroll = Math.max(1, trackWidth - visible);
const progress = Math.max(0, Math.min(1, -this.xOffset / maxScroll));
return progress * maxOffset;
},
onIndicatorDown(event) {
this.indicatorDragging = true;
this.indicatorStartX = event.clientX || event.touches[0].clientX;
this.indicatorStartOffset = this.getIndicatorOffset();
},
onIndicatorMove(event) {
if (!this.indicatorDragging) return;
const clientX = event.clientX || event.touches[0].clientX;
const delta = clientX - this.indicatorStartX;
const trackWidth = this.totalWidth();
const visible = this.visibleWidth();
const barWidth = this.scrollbar.offsetWidth;
const indWidth = this.indicator.offsetWidth;
const maxOffset = Math.max(0, barWidth - indWidth);
const newIndicatorOffset = Math.min(maxOffset, Math.max(0, this.indicatorStartOffset + delta));
const scrollRatio = maxOffset ? newIndicatorOffset / maxOffset : 0;
const maxScroll = Math.max(0, trackWidth - visible);
this.xOffset = -scrollRatio * maxScroll;
},
onIndicatorUp() {
this.indicatorDragging = false;
},
hasLeft() { return this.xOffset < 0; },
hasRight() { return this.xOffset > (this.visibleWidth() - this.totalWidth()); }
}
" x-init="init" x-on:mousemove="onMouseMove" x-on:mousedown="onMouseDown" x-on:mouseup="onMouseUp" x-on:mouseleave="onMouseUp" x-on:touchstart="onTouchStart" x-on:touchmove="onTouchMove" x-on:touchend="onMouseUp"><div class="pointer-events-none absolute inset-y-0 left-0 w-16 z-10"><div class="h-full w-full bg-gradient-to-r from-black to-transparent" x-show="hasLeft()" x-cloak="" x-transition.opacity.duration.1200ms=""></div></div><div class="pointer-events-none absolute inset-y-0 right-0 w-16 z-10"><div class="h-full w-full bg-gradient-to-l from-black to-transparent" x-show="hasRight()" x-cloak="" x-transition.opacity.duration.1200ms=""></div></div><div x-ref="stripTrack" class="flex w-full gap-2" x-bind:style="`transform: translateX(${xOffset}px);`" role="listbox"><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 0, 'border-transparent': currentVideo !== 0 }" x-on:click="currentVideo = 0"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/DavidKuckhermann_video-poster_tutoria_sk001_RELEASE.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 1, 'border-transparent': currentVideo !== 1 }" x-on:click="currentVideo = 1"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_marketing/DavidKuckhermann_video-poster_ContentRelease_sk001.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 2, 'border-transparent': currentVideo !== 2 }" x-on:click="currentVideo = 2"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_instrument/DavidKuckhermann_Afroton-Waterdrum-Calabash_video-poster-instruments_sk001_RELEASE.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 3, 'border-transparent': currentVideo !== 3 }" x-on:click="currentVideo = 3"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_musicians/DavidKuckhermann_video-poster_musicians.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 4, 'border-transparent': currentVideo !== 4 }" x-on:click="currentVideo = 4"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_instrument/DavidKuckhermann_Pepote-Bass-Cajon_video-poster-instruments_sk001_RELEASE.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 5, 'border-transparent': currentVideo !== 5 }" x-on:click="currentVideo = 5"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_instrument/DavidKuckhermann_LP-Aspire-Djembe_video-poster-instruments_sk001_RELEASE.jpg"/></div><div class="flex-shrink-0 w-[220px] h-[125px] border cursor-pointer rounded-lg overflow-hidden" x-bind:class="{ 'border-primary': currentVideo === 6, 'border-transparent': currentVideo !== 6 }" x-on:click="currentVideo = 6"><img class="w-full h-full object-cover" src="https://d24de7cvkwf5gq.cloudfront.net/thumbnails_instrument/DavidKuckhermann_Bauer-Percussion-Conga_video-poster-instruments_sk002_RELEASE.jpg"/></div></div><div class="relative hidden sm:flex justify-center mt-10" x-show="shouldShowScrollbar()" x-cloak=""><div class="w-2/3 h-[1px] bg-light-grey relative mb-10" data-scrollbar="true"><div class="absolute top-0 left-0 w-16 h-4 bg-primary rounded-full transform cursor-pointer" x-ref="indicator" x-bind:style="indicatorStyle()" x-on:mousedown="onIndicatorDown" x-on:touchstart="onIndicatorDown" x-on:mousemove.window="onIndicatorMove" x-on:touchmove.window="onIndicatorMove" x-on:mouseup.window="onIndicatorUp" x-on:touchend.window="onIndicatorUp"></div></div></div></div></div></div></div></div><div ><div class="relative" x-data="{
factor: 450,
offset: 0,
ticking: false,
side: 'left',
updateOffset() {
const rect = this.$el.getBoundingClientRect();
const viewportHeight = window.innerHeight;
const centerDeltaVH = ((rect.top + rect.height / 2) - (viewportHeight / 2)) / viewportHeight;
const progress = -centerDeltaVH;
this.offset = progress * this.factor;
},
onScroll() {
if (!this.ticking) {
requestAnimationFrame(() => { this.updateOffset(); this.ticking = false; });
this.ticking = true;
}
},
init() {
this.updateOffset();
addEventListener('scroll', this.onScroll.bind(this));
addEventListener('resize', this.onScroll.bind(this));
}
}" x-init="init()"><div class="absolute -z-10 top-1/2 overflow-hidden rounded-full h-[40vw] w-[20vw] left-0" x-bind:style="`transform: translateX(${side === 'left' ? '-50%' : '50%'}) translateY(${offset}px)`"><img src="/assets/img/mood.png" class="hidden md:block w-full h-full object-cover scale-300" style="transform: translateY(0)" x-bind:style="`transform: translateY(${offset * factor * 0.0001}px)`"/></div></div><div id="" class="container mx-auto w-full relative md:max-w-[1024px] video-element vertical-margin-default"><div class="px-4 flex flex-col items-center text-center mb-16"><h1><b>INSIDE</b> THE SESSIONS</h1><p>Tonalic is built on real studio performances by exceptional musicians, recorded in great music cities around the world. Musical Director Uwe Bossert shares why these sessions happen where the music is made — and how their musicality is preserved and brought into Tonalic.</p></div><div class="px-4 video-element-inner"><div class="video-gallery-inner flex flex-col gap-8" x-ref="player" x-data="
{
currentVideo: 0,
numVideos: 1,
nextVideo: function() {
if (this.currentVideo < this.numVideos - 1) {
this.currentVideo++;
}
},
previousVideo: function() {
if (this.currentVideo > 0) {
this.currentVideo--;
}
},
init: function() {
const allPlayers = Array.from(
document.querySelectorAll('.video-gallery-inner')
);
const myIndex = allPlayers.indexOf(this.$el);
if (myIndex === -1) return;
const hash = document.location.hash;
if (!hash.startsWith('#video-')) {
return;
}
const parts = hash.replace('#video-', '').split('-');
const targetPlayer = parseInt(parts.length === 2 ? parts[0] : 1, 10) - 1;
const targetVideo = parseInt(parts.length === 2 ? parts[1] : parts[0], 10) - 1;
if (myIndex === targetPlayer && !isNaN(targetVideo)) {
this.$nextTick(() => {
this.currentVideo = targetVideo;
this.$el.scrollIntoView({ behavior: 'smooth' });
});
}
}
}
" x-init="init()"><div ><template x-if="0 === currentVideo"><div class="relative w-full overflow-hidden rounded-lg " style="padding-top: 56.25%;" x-data="{ hasConsent: window.Cookiebot?.consent?.necessary || false }" x-init="
window.addEventListener('CookiebotOnConsentReady', () => {
hasConsent = window.Cookiebot?.consent?.necessary || false;
});
"><template x-if="!hasConsent"><div class="absolute inset-0 flex flex-col items-center justify-center bg-gray-100 dark:bg-gray-800 text-center"><div class="relative z-10 p-4 bg-black/60 text-white rounded-md flex flex-col items-center"><p class="mb-3">This video requires necessary cookies to play.</p><button x-on:click="window.Cookiebot?.show();" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Adjust cookie settings</button></div></div></template><iframe data-cookieblock-src="https://www.youtube-nocookie.com/embed/MJ9OcDL9llM?autoplay=0&rel=0&mute=0" data-cookieconsent="necessary" x-data="{"cookieBlockSrc":"https://www.youtube-nocookie.com/embed/MJ9OcDL9llM?autoplay=0&rel=0&mute=0"}" x-effect="if (hasConsent) { $el.src = cookieBlockSrc; } else { $el.src = undefined; }" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="true" class="absolute top-0 left-0 w-full h-full border-0 rounded-lg"></iframe></div></template></div></div></div></div></div><div id="" class="container mx-auto w-full relative md:max-w-[1200px] top-margin-default mb-8"><div class="px-4 flex flex-col items-center text-center"><h1>Get to know <b>Tonalic</b></h1></div></div><div x-data="{"currentIndex":0}" class="container mx-auto w-full relative md:max-w-[1200px]"><div class="px-4"><div class="flex flex-wrap justify-center gap-2 w-full mx-auto p-2 rounded-lg my-8"><div x-on:click="currentIndex = 0" x-bind:class="currentIndex === 0 ? 'bg-primary text-black' : 'bg-grey'" class="rounded-full font-bold py-1 text-xs px-8 cursor-pointer hover:opacity-80 transition-all">Explore</div><div x-on:click="currentIndex = 1" x-bind:class="currentIndex === 1 ? 'bg-primary text-black' : 'bg-grey'" class="rounded-full font-bold py-1 text-xs px-8 cursor-pointer hover:opacity-80 transition-all">Explore tools</div><div x-on:click="currentIndex = 2" x-bind:class="currentIndex === 2 ? 'bg-primary text-black' : 'bg-grey'" class="rounded-full font-bold py-1 text-xs px-8 cursor-pointer hover:opacity-80 transition-all">Search</div><div x-on:click="currentIndex = 3" x-bind:class="currentIndex === 3 ? 'bg-primary text-black' : 'bg-grey'" class="rounded-full font-bold py-1 text-xs px-8 cursor-pointer hover:opacity-80 transition-all">Tonalic Sets</div><div x-on:click="currentIndex = 4" x-bind:class="currentIndex === 4 ? 'bg-primary text-black' : 'bg-grey'" class="rounded-full font-bold py-1 text-xs px-8 cursor-pointer hover:opacity-80 transition-all">Tonalic Groove</div><div x-on:click="currentIndex = 5" x-bind:class="currentIndex === 5 ? 'bg-primary text-black' : 'bg-grey'" class="rounded-full font-bold py-1 text-xs px-8 cursor-pointer hover:opacity-80 transition-all">Refine (studio edition only)</div></div><div class="relative w-full w-full mx-auto" x-data="{
slideCount: 6,
meta: {},
height: 0,
setMeta(i, w, h) { this.meta[i] = { w, h }; this.recalc(); },
recalc() {
this.height = this.$el.clientWidth / (1168 / 876);
const m = this.meta[this.currentIndex];
if (!m) return;
const width = this.$el.clientWidth || 0;
if (!width) return;
this.height = Math.round(m.h * (width / m.w));
},
next() { this.currentIndex = (this.currentIndex + 1) % this.slideCount; },
prev() { this.currentIndex = (this.currentIndex - 1 + this.slideCount) % this.slideCount; },
goTo(i) { if (i >= 0 && i < this.slideCount) this.currentIndex = i; }
}" x-init="recalc()" x-on:resize.window="recalc()" x-on:slide:loaded="setMeta($event.detail.index, $event.detail.w, $event.detail.h)" x-bind:style="height ? 'height:' + height + 'px' : ''"><div class="absolute inset-0 transition-opacity duration-700 ease-in-out" x-show="currentIndex === 0" x-transition:enter="opacity-0" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="opacity-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"><img src="/uploads/Explore_Page_no_timeline_no_panels_e9617bc2eb.png" class="select-none pointer-events-none block w-full" x-on:load="$dispatch('slide:loaded', { index: 0, w: $event.target.naturalWidth, h: $event.target.naturalHeight })"/><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 40%;top: 10%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Featured Content<br />
</b>Explore the world of Tonalic. Discover featured musicians to inspire your next song idea, along with helpful tutorials and looks behind the scene. </p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 20%;top: 30%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Musicians<br />
</b>Get inspired by more than 30 world-class musicians. Preview their styles and use them as starting points for a new search to find the right Tonalic for your song. </p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 50%;top: 60%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Instruments<br />
</b>Explore a wide array of instruments—from electric and acoustic guitars to basses, drums, and percussion—so you can easily build a strong foundation for your song.</p></div></div></div></div></div><div class="absolute inset-0 transition-opacity duration-700 ease-in-out" x-show="currentIndex === 1" x-transition:enter="opacity-0" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="opacity-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"><img src="/uploads/Explore_Page_with_timeline_and_panels_692aeec534.png" class="select-none pointer-events-none block w-full" x-on:load="$dispatch('slide:loaded', { index: 1, w: $event.target.naturalWidth, h: $event.target.naturalHeight })"/><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 32%;top: 70%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Key Signature<br />
</b>Tonalic automatically detects your song’s key based on the chords you enter, ensuring a quick and seamless workflow.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 60%;top: 60%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Chord Assistant<br />
</b>Get inspired to discover interesting chords and build progressions with ease. Brighter colors suggest safe choices, while dimmer colors lead you toward more unexpected chord paths.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 90%;top: 60%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Get Help<br />
</b>If you ever wonder how a particular feature in Tonalic works, simply enable the help panel to access useful information about everything Tonalic has to offer.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 40%;top: 80%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Chord Track<br />
</b>Build your chord track with ease, and all Tonalics will follow automatically. Tonalic adapts to you—not the other way around.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 70%;top: 85%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Tonalic Track<br />
</b>Pick any Tonalic you like, drag onto a Tonalic track, and create a performance that instantly adapts to your selected key, chords, tempo, and groove.</p></div></div></div></div></div><div class="absolute inset-0 transition-opacity duration-700 ease-in-out" x-show="currentIndex === 2" x-transition:enter="opacity-0" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="opacity-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"><img src="/uploads/Search_Page_8301152690.png" class="select-none pointer-events-none block w-full" x-on:load="$dispatch('slide:loaded', { index: 2, w: $event.target.naturalWidth, h: $event.target.naturalHeight })"/><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 40%;top: 13%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Suggested Tags<br />
</b>Get started quickly with useful suggested tags that adapt to your search as you explore Tonalic’s library.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 90%;top: 10%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>More Details<br />
</b>Switch to “All" to browse a wide array of tags describing every musical and technical detail of a Tonalic.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 14.000000000000002%;top: 20%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Result List<br />
</b>Tonalics that best match your search appear at the top, while still giving you a smart and diverse overview of all relevant results, so you can get a sense of what to expect further down the list.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 90%;top: 25%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Sorting Options<br />
</b>Sort your results using musical criteria such as higher or lower density, darker or brighter tones, or by filtering for specific beat accents.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 30%;top: 30%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Tonalic Icon<br />
</b>The Tonalic Icon is a graphical representation of the Tonalic’s pattern, giving you a feel for what it does, before you even listen. </p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 10%;top: 60%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Playback<br />
</b>Preview any Tonalic directly from the Search Page. When your DAW is playing, Tonalics are previewed in sync with your song’s tempo, key, chords, and groove to help you find the right fit quickly.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 40%;top: 50%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Alternatives & Additions<br />
</b>Quickly discover alternatives similar to the Tonalics you like, as well as complementary options that work well together.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 85%;top: 82%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Preview Panel<br />
</b>Get a feel for a Tonalic by previewing it alongside matching accompaniment instruments, a sample tempo, and a chord progression. </p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 12%;top: 90%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Tempo & Signature<br />
</b>Tonalic always follows your DAW’s tempo and time signature—variable tempos and signature changes work just as seamlessly. </p></div></div></div></div></div><div class="absolute inset-0 transition-opacity duration-700 ease-in-out" x-show="currentIndex === 3" x-transition:enter="opacity-0" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="opacity-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"><img src="/uploads/Set_Page_with_timeline_2_70370d0e37.png" class="select-none pointer-events-none block w-full" x-on:load="$dispatch('slide:loaded', { index: 3, w: $event.target.naturalWidth, h: $event.target.naturalHeight })"/><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 13%;top: 5%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Main Patterns<br />
</b>Use different main patterns—each based on the same musical idea—to build a complete and cohesive performance.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 50%;top: 5%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Transitions & Endings<br />
</b>Connect ideas or song parts with tasteful transitions, and finish with a variety of endings and stops, all designed to fit together seamlessly.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 20%;top: 34%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Detailed Information<br />
</b>Explore detailed information about the musician, the instrument, the gear used, and the entire recording chain. Click the links to watch videos about the musician or the instrument if you’d like to dive deeper.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 20%;top: 64%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Sound Controls (studio edition only) </b><br />
Adjust amp gain, room amount, and other effects on the fly, all while staying true to the musician’s original vision.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 50%;top: 77%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Chord track<br />
</b>Enter chords by typing them directly, getting inspired by the Chord Assistant, or simply dragging in a MIDI file.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 70%;top: 86%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Build your track<br />
</b>Create a complete performance by dragging different Tonalics onto a track. They automatically adapt to your tempo, key, and chords—as if the musician played them specifically for your song.</p></div></div></div></div></div><div class="absolute inset-0 transition-opacity duration-700 ease-in-out" x-show="currentIndex === 4" x-transition:enter="opacity-0" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="opacity-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"><img src="/uploads/Set_Page_Groove_Master_464667a99e.png" class="select-none pointer-events-none block w-full" x-on:load="$dispatch('slide:loaded', { index: 4, w: $event.target.naturalWidth, h: $event.target.naturalHeight })"/><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 22%;top: 41%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Groove Master<br />
</b>Choose a Groove Master and watch your entire Tonalic arrangement snap into the same pocket—as if all the musicians were performing together in the same room.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 22%;top: 53%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>External Groove<br />
</b>Import an external MIDI file, like an MPC swing, as your Groove Master. You can also import an audio file, let Tonalic analyze its feel and timing, and every Tonalic will lock onto that groove.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 6%;top: 87%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Multitrack View<br />
</b>Switch to Multitrack View to see all your Tonalic tracks in a single window—perfect for staying organized and arranging your song on the fly. </p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 53%;top: 70%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Multiple Tracks<br />
</b>Whether you’re working with one or several Tonalic Tracks, you can edit and arrange them all in one place, just like in your DAW.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 82%;top: 49%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Timing and Swing<br />
</b>Easily adjust swing and timing, always preserving the musician’s original intent and feel.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 93%;top: 49%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Fine adjustment<br />
</b>Make precise tweaks with subtle nudge and tuning options, plus convenient double-time or half-time controls.</p></div></div></div></div></div><div class="absolute inset-0 transition-opacity duration-700 ease-in-out" x-show="currentIndex === 5" x-transition:enter="opacity-0" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="opacity-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"><img src="/uploads/Refine_Page_c199d5cbb7.png" class="select-none pointer-events-none block w-full" x-on:load="$dispatch('slide:loaded', { index: 5, w: $event.target.naturalWidth, h: $event.target.naturalHeight })"/><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 10%;top: 10%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Refine Tools<br />
</b>Tonalic always creates a performance with the musician’s intent in mind. Use different tools to make the result fit your song’s needs even better by easily changing its voice leading, pitch, amplitude and micro-timing.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 50%;top: 10%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Inspector Controls<br />
</b>Depending on the active tool, view and adjust the detailed values of the selected element for precise and detailed control.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 60%;top: 39%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Voice Leading<br />
</b>Guided by the musician’s original intent, Tonalic generates natural voice leading that perfectly matches your song’s chord progression.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 60%;top: 23%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 top-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Choose a Voice<br />
</b>Easily select a different voice line for any chord in your progression. Tonalic will adapt the voice-leading lines of other chords as needed - just like collaborating with the musician directly.</p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 10%;top: 70%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm left-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Refine Background<br />
</b>Freely zoom and edit your tracks while maintaining a clear overview of the entire performance. </p></div></div></div></div><div class="absolute hidden sm:block transition-all size-8 group -translate-x-1/2 cursor-pointer hover:z-40" style="left: 60%;top: 68%;"><div class="bg-primary h-full w-full rounded-full relative"><div class="absolute z-30 bg-primary text-black rounded-2xl w-0 group-hover:w-80 h-0 group-hover:min-h-10 group-hover:h-auto pointer-events-none group-hover:pointer-events-auto transition-all px-4 py-4 text-sm right-0 bottom-0"><div class="scale-0 group-hover:scale-100 min-w-70"><p><b>Highlighted Notes<br />
</b>During playback, currently playing notes are highlighted to provide clear visual feedback that matches what you hear.</p></div></div></div></div></div></div></div></div><div ><div class="relative" x-data="{
factor: 500,
offset: 0,
ticking: false,
side: 'right',
updateOffset() {
const rect = this.$el.getBoundingClientRect();
const viewportHeight = window.innerHeight;
const centerDeltaVH = ((rect.top + rect.height / 2) - (viewportHeight / 2)) / viewportHeight;
const progress = -centerDeltaVH;
this.offset = progress * this.factor;
},
onScroll() {
if (!this.ticking) {
requestAnimationFrame(() => { this.updateOffset(); this.ticking = false; });
this.ticking = true;
}
},
init() {
this.updateOffset();
addEventListener('scroll', this.onScroll.bind(this));
addEventListener('resize', this.onScroll.bind(this));
}
}" x-init="init()"><div class="absolute -z-10 top-1/2 overflow-hidden rounded-full h-[40vw] w-[20vw] right-0" x-bind:style="`transform: translateX(${side === 'left' ? '-50%' : '50%'}) translateY(${offset}px)`"><img src="/assets/img/mood.png" class="hidden md:block w-full h-full object-cover scale-300" style="transform: translateY(0)" x-bind:style="`transform: translateY(${offset * factor * 0.0001}px)`"/></div></div><div id="1" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-default"><div class="px-4"><a class="block relative group" href="/helpcenter.html"><div class="bg-grey rounded-xl p-8 sm:flex space-between items-center group-hover:opacity-95 transition-all"><img class="block w-full sm:w-1/2" src="/uploads/image_2fdd295221.png"/><div class="pt-8 sm:p-8"><h1><b>Get started</b> with Leo's Tonalic basics</h1><p>Learn the core concepts of Tonalic through short, focused video tutorials. In just 20 minutes, you’ll understand how to work with Tonalic and start making music.</p></div></div><div class="absolute right-6 bottom-4 text-primary flex items-center gap-2">to the videos<svg class="transform size-5 group-hover:translate-x-2 transition-all" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></div></a></div></div></div><div ><div id="" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-default"><div class="px-4 flex flex-col items-center text-center"><h1>TONALIC <b>STUDIO</b> — WHAT DOES IT ADD?</h1><p>Tonalic studio includes everything from Tonalic arranger – and adds deep sound shaping and precise musical refinement, down to individual notes. It’s designed for producers who want full control without losing the natural feel of a real performance.</p></div><div class="px-4 md:flex justify-between my-8 gap-8"><div class="bg-grey rounded-xl flex-1 overflow-hidden my-8 md:my-0"><img src="/uploads/tonalic_box_parameter_7d237b50f9.png" class="w-full h-64 object-cover"/><div class="flex flex-col items-center text-center my-8 px-2 text-medium-grey"><div class="text-primary font-bold mb-2 text-lg">Shape the Sound</div><p>Shape tone with Drive, Effects, and Ambience — all designed to sit naturally in your mix. For drums, adjust kit and cymbals independently, so each element finds its place in the mix without losing the player’s feel.</p></div></div><div class="bg-grey rounded-xl flex-1 overflow-hidden my-8 md:my-0"><img src="/uploads/image_d69a90b92e.png" class="w-full h-64 object-cover"/><div class="flex flex-col items-center text-center my-8 px-2 text-medium-grey"><div class="text-primary font-bold mb-2 text-lg">Refine, inspired by Melodyne</div><p>Refine lets you shape individual notes and chords while preserving the intent of the original performance. It feels like working directly with the musician. Adjust notes, amplitude, timing, or voice-leading — and Tonalic responds musically, reshaping the surrounding harmony to keep the performance natural.</p></div></div></div></div></div><div x-data="{
subscription: 'monthly',
articles: [{"articleName":"Tonalic arranger","productId":2,"prices":[{"priceStringMain":"1 EUR","priceStringSuffix":"month","priceAddition":"Launch Offer: 1 EUR for the first month,\nafter 14,90 EUR","interval":"monthly","entryUrl":"http://localhost:9000/customer/registration/details?articleId=65436144-890f-47c4-bbe2-60e088d6a904&countryCode=DE&pricePlanInterval=MONTHLY","buttonTitle":"Try now for 1 EUR","buttonSubtext":"Launch offer for the first month\nafter 14,90 EUR / month","callout":null},{"priceStringMain":"149 EUR","priceStringSuffix":"year","priceAddition":"billed yearly, you save 29,80 €\ncompared to the monthly plan","interval":"yearly","entryUrl":"http://localhost:9000/customer/registration/details?articleId=65436144-890f-47c4-bbe2-60e088d6a904&countryCode=DE&pricePlanInterval=YEARLY","buttonTitle":"Order now","buttonSubtext":null,"callout":null}]},{"articleName":"Tonalic studio","productId":3,"prices":[{"priceStringMain":"1 EUR","priceStringSuffix":"month","priceAddition":"Launch Offer: 1 EUR for the first month,\nafter 24,90 EUR","interval":"monthly","entryUrl":"http://localhost:9000/customer/registration/details?articleId=1e475f51-53ee-42be-ac54-cd0619e3fde1&countryCode=DE&pricePlanInterval=MONTHLY","buttonTitle":"Try now for 1 EUR","buttonSubtext":"Launch offer for the first month\nafter 24,90 EUR","callout":{"headline":"LAUNCH OFFER","price":"1 EUR","subline":"for the first month"}},{"priceStringMain":"249 EUR","priceStringSuffix":"year","priceAddition":"billed yearly, you save 49,80 €\ncompared to the monthly plan","interval":"yearly","entryUrl":"http://localhost:9000/customer/registration/details?articleId=1e475f51-53ee-42be-ac54-cd0619e3fde1&countryCode=DE&pricePlanInterval=YEARLY","buttonTitle":"Order now","buttonSubtext":null,"callout":null}]}],
editions: [{"id":177,"name":"arranger","productId":2,"features":"<ul><li>Real performances by 30+ world-class studio musicians</li><li>Spans a wide range of major genres and musical styles</li><li>Guitars, bass, drums and percussion</li><li>Large, continuously growing library</li><li>Wide range of performance types, organized into cohesive sets</li><li>Adapts to your chords, tempo and groove</li></ul><ul><li>Musical search, alternatives & additions</li><li>Preview and arrange directly in your song</li><li>Works in all major DAWs</li><li>Fully royalty-free for all commercial uses</li><li>Upgrade to Tonalic studio anytime</li></ul>","hasAddons":null},{"id":178,"name":"studio","productId":3,"features":"<p>Includes everything in Tonalic Arranger, plus:</p><ul><li>Full sound control with Drive, Ambience & Effects</li><li>Refine tools for note-level pitch, timing and dynamics</li><li>Musical voice-leading adjustments</li><li>Independent drum kit and cymbal control</li><li>Final polish — without losing the performance feel</li></ul>","hasAddons":true}],
apiUrl: 'https://services.tonalic.com/api/cms/v1/articleList',
async getSubscriptions() {
try {
if (this.apiUrl) {
const response = await fetch(this.apiUrl, {
method: 'GET',
headers: { 'Content-Type': 'application/json' },
});
if (response.ok) {
const data = await response.json();
this.articles = data?.articles;
}
}
} catch (error) {
console.error(error);
} finally {
for (const edition of this.editions) {
const article = this.articles.find(a => a.productId == edition.productId);
if (article) {
article.features = edition.features;
article.prices = article.prices.map(p => ({
...p,
priceStringMain: p.priceStringMain?.replace(/\n/g, '<br />'),
priceStringSuffix: p.priceStringSuffix?.replace(/\n/g, '<br />'),
priceAddition: p.priceAddition?.replace(/\n/g, '<br />'),
}));
}
}
}
},
}" x-init="getSubscriptions()"><div id="pricing" class="container mx-auto w-full relative md:max-w-[1200px] top-margin-default"><div class="px-4 flex flex-col items-center text-center"></div><div class="px-4 my-16 flex justify-center"><div x-modelable="selected" x-data="{"options":[{"label":"Monthly","value":"monthly"},{"label":"Yearly","value":"yearly"}],"selected":null}" x-model="subscription" class="relative flex justify-between border border-light-grey rounded-full p-[2px]"><div x-data="{"value":"monthly"}" x-bind:class="selected === value ? 'bg-primary text-black' : 'bg-black text-white'" x-on:click="selected = value" class="rounded-full font-bold py-1 text-xs px-8 cursor-pointer hover:opacity-90 transition-all">Monthly</div><div x-data="{"value":"yearly"}" x-bind:class="selected === value ? 'bg-primary text-black' : 'bg-black text-white'" x-on:click="selected = value" class="rounded-full font-bold py-1 text-xs px-8 cursor-pointer hover:opacity-90 transition-all">Yearly</div><div class="rounded-full font-bold py-1 text-xs px-2 absolute right-0 translate-x-[70%] -translate-y-[100%] bg-white text-black -rotate-12 pointer-events-none">Best Offer</div></div></div></div><div class="container mx-auto w-full relative md:max-w-[1200px]"><div class="px-4 sm:flex justify-center gap-16"><template x-for="edition in articles" x-bind:key="edition.productId"><a target="_blank" x-bind:href="subscription === 'monthly'
? edition.prices.find(p => p.interval === 'monthly')?.entryUrl
: edition.prices.find(p => p.interval === 'yearly')?.entryUrl" class="mb-8 sm:mb-0 border-primary border relative group rounded-3xl sm:w-1/2 md:w-1/3 sm:min-h-[25vw] items-center text-center py-16 px-4 flex flex-col justify-between gap-8"><div class="flex flex-col justify-start flex-1"><div class="flex flex-col items-center text-primary mb-8 gap-2 text-xl"><svg class="h-6" viewBox="0 0 996.89 266" xmlns="http://www.w3.org/2000/svg"><path d="m578.69 78.18c-41.13 0-84.55 5.43-90.54 52.56h48.56c7.14-21.14 18.28-22.85 39.7-22.85 29.13 0 39.42 6 39.42 18.28s-5.14 14.85-20.57 16l-53.41 3.71c-24.67 1.61-50.81 7.15-59.98 28.74v-39.59c0-45.13-39.7-55.13-65.69-55.13-29.42 0-53.41 13.42-62.55 26.28h-.57v-22.28h-48.56v47.12c-11.91-36.73-47.82-52.83-96.83-52.83-37.87 0-67.92 9.61-85.12 30.91v-25.2h-40.56v-47.41h-50.29v47.41h-31.7v33.71h31.7v77.41c0 27.71 4.57 45.42 52.27 45.42 11.14 0 29.99-1.71 39.42-2.86v-24.74c17.33 20.59 47.01 29.89 84.26 29.89 49.01 0 84.92-16.1 96.83-52.83v47.12h50.27v-73.98c0-32.56 19.71-44.27 43.13-44.27s33.7 10.28 33.7 31.42v86.83h50.27v-24.67c8.6 21.54 32.78 30.39 64.55 30.39 22.56 0 54.55-4.86 71.69-21.99.29 5.43 0 16.28 0 16.28h47.99v-106.83c0-28.56-15.42-51.98-87.4-51.98l.01-.04zm-479.86 126.82c-13.14 0-16.85-4-16.85-16v-71.41h34.74c-6.61 11.51-10.18 25.72-10.18 42.84s3.79 32.16 10.78 43.84c-5.92.4-11.89.72-18.49.72zm108.82 2.29c-31.13 0-49.13-16.85-49.13-46.84s17.99-46.84 49.13-46.84 49.13 16.85 49.13 46.84-17.99 46.84-49.13 46.84zm409.88-32.28c0 25.71-28.28 37.99-53.7 37.99-18.85 0-31.7-7.71-31.7-21.42s8.85-18.57 26.56-19.99l29.13-2.57c10-.86 20.28-2 29.71-6.57v12.57zm327.38 1.2h51.98c-9.14 54.27-47.99 66.55-97.97 66.55-57.7 0-96.83-24.56-96.83-82.26s40.56-82.26 101.11-82.26c38.85 0 84.26 11.71 93.69 62.27h-51.98c-6-20.28-21.42-26.85-41.7-26.85-31.13 0-49.13 16.85-49.13 46.84s18 46.84 49.13 46.84c22.28 0 39.13-12 41.7-31.13zm-216.82-151.21v164c0 13.81-11.19 25-25 25s-25-11.19-25-25v-164c0-13.81 11.19-25 25-25s25 11.19 25 25zm62 114v102c0 13.81-11.19 25-25 25s-25-11.19-25-25v-102c0-13.81 11.19-25 25-25s25 11.19 25 25z" fill="#fff"></path><path d="m765.09 53c13.807 0 25 11.193 25 25s-11.193 25-25 25-25-11.193-25-25 11.193-25 25-25z" fill="#ffb133"></path></svg><div x-html="edition.articleName"></div></div><div class="font-bold text-4xl flex items-end gap-2 justify-center"><span class="text-nowrap" x-show="subscription === 'monthly'" x-html="edition.prices.find(p => p.interval === 'monthly')?.priceStringMain"></span><span class="text-nowrap" x-show="subscription === 'yearly'" x-html="edition.prices.find(p => p.interval === 'yearly')?.priceStringMain"></span><div class="text-sm font-medium pb-1">/ <span x-show="subscription === 'monthly'" x-html="edition.prices.find(p => p.interval === 'monthly')?.priceStringSuffix"></span><span x-show="subscription === 'yearly'" x-html="edition.prices.find(p => p.interval === 'yearly')?.priceStringSuffix"></span></div></div><div class="text-sm text-primary whitespace-pre-line" x-show="subscription === 'monthly'" x-html="edition.prices.find(p => p.interval === 'monthly')?.priceAddition || ''"></div><div class="text-sm text-primary whitespace-pre-line" x-show="subscription === 'yearly'" x-html="edition.prices.find(p => p.interval === 'yearly')?.priceAddition || ''"></div><div class="mt-8 text-sm with-checkmarks text-left w-full sm:px-8"><template x-if="edition.hasAddons"><ul ><li class="text-primary">all tonalic arranger features</li></ul></template><div x-html="edition.features"></div></div></div><template x-if="subscription === 'monthly'
? edition.prices.find(p => p.interval === 'monthly')?.entryUrl
: edition.prices.find(p => p.interval === 'yearly')?.entryUrl"><div class="flex justify-center flex-col items-center gap-4"><button x-html="edition.prices.find(p => p.interval === subscription)?.buttonTitle" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Buy now</button><div class="text-primary text-sm whitespace-pre-line" x-html="edition.prices.find(p => p.interval === subscription)?.buttonSubtext"></div></div></template><div class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(45deg, rgba(230, 163, 58, 0.3), transparent);"></div><template x-if="edition.prices.find(p => p.interval === subscription)?.callout !== null"><div class="size-44 rounded-full absolute right-0 top-0 flex flex-col justify-center items-center bg-primary translate-x-1/6 md:translate-x-2/3 -translate-y-1/4 sm:-translate-y-3/4 md:-translate-y-1/4"><div class="text-black font-bold text-sm" x-html="edition.prices.find(p => p.interval === subscription)?.callout?.headline"></div><div class="text-white font-bold text-4xl" x-html="edition.prices.find(p => p.interval === subscription)?.callout?.price"></div><div class="text-black font-bold text-sm" x-html="edition.prices.find(p => p.interval === subscription)?.callout?.subline"></div></div></template></a></template></div></div></div><div ><div id="1" class="container mx-auto w-full relative md:max-w-[1024px] vertical-margin-default"><div class="flex justify-center"><h2 class="text-center">FAQ</h2></div><div class="px-4"><div x-data="{"collapsed":true}" class="mb-4"><div class="text-md sm:text-lg flex flex-row justify-between items-center bg-grey rounded-full px-6 py-2 cursor-pointer" x-on:click="collapsed = !collapsed"><div class="pr-12 flex-grow-0 font-bold">What’s the difference between the Tonalic arranger and studio editions?</div><svg x-show="collapsed === true" class="size-4 transition duration-300 ease-out text-primary" width="100%" height="100%" viewBox="0 0 1029 1029" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g transform="matrix(1,0,0,1,-4658.75,-845.462)"><g transform="matrix(1,0,0,1.30256,0,-411.408)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g><g transform="matrix(6.12323e-17,1,-1.30256,7.97586e-17,6944.23,-3813.29)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g></g></svg><svg x-show="collapsed === false" class="size-5 transition duration-300 ease-out text-primary rotate-90" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></div><div class="overflow-hidden grid transition-[grid-template-rows_margin-top] px-6" x-bind:class="!collapsed ? 'grid-rows-[1fr] mt-4' : 'grid-rows-[0fr]'"><div class="overflow-hidden"><p>Both editions come with the same inspiring content — but Tonalic studio takes your creativity to the next level.<br />
With Tonalic studio, you get access to effect parameters (Drive, Ambience, Effect) and powerful tools to fine-tune every note — including voice leading, pitch, amplitude, and timing — right on the Refine page.</p></div></div></div><div x-data="{"collapsed":true}" class="mb-4"><div class="text-md sm:text-lg flex flex-row justify-between items-center bg-grey rounded-full px-6 py-2 cursor-pointer" x-on:click="collapsed = !collapsed"><div class="pr-12 flex-grow-0 font-bold">Can I upgrade from Tonalic arranger to studio at any time?</div><svg x-show="collapsed === true" class="size-4 transition duration-300 ease-out text-primary" width="100%" height="100%" viewBox="0 0 1029 1029" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g transform="matrix(1,0,0,1,-4658.75,-845.462)"><g transform="matrix(1,0,0,1.30256,0,-411.408)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g><g transform="matrix(6.12323e-17,1,-1.30256,7.97586e-17,6944.23,-3813.29)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g></g></svg><svg x-show="collapsed === false" class="size-5 transition duration-300 ease-out text-primary rotate-90" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></div><div class="overflow-hidden grid transition-[grid-template-rows_margin-top] px-6" x-bind:class="!collapsed ? 'grid-rows-[1fr] mt-4' : 'grid-rows-[0fr]'"><div class="overflow-hidden"><p>Absolutely! You can upgrade to Tonalic studio whenever you want.<br />
Just start a new Tonalic studio subscription — the remaining value of your current Tonalic arranger plan will be credited automatically. <a href="/helpcenter.html#legal">Find more about upgrades here...</a></p></div></div></div><div x-data="{"collapsed":true}" class="mb-4"><div class="text-md sm:text-lg flex flex-row justify-between items-center bg-grey rounded-full px-6 py-2 cursor-pointer" x-on:click="collapsed = !collapsed"><div class="pr-12 flex-grow-0 font-bold">Can I use Tonalic Audio Content freely in my own production?</div><svg x-show="collapsed === true" class="size-4 transition duration-300 ease-out text-primary" width="100%" height="100%" viewBox="0 0 1029 1029" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g transform="matrix(1,0,0,1,-4658.75,-845.462)"><g transform="matrix(1,0,0,1.30256,0,-411.408)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g><g transform="matrix(6.12323e-17,1,-1.30256,7.97586e-17,6944.23,-3813.29)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g></g></svg><svg x-show="collapsed === false" class="size-5 transition duration-300 ease-out text-primary rotate-90" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></div><div class="overflow-hidden grid transition-[grid-template-rows_margin-top] px-6" x-bind:class="!collapsed ? 'grid-rows-[1fr] mt-4' : 'grid-rows-[0fr]'"><div class="overflow-hidden"><p>Yes — Tonalic Audio Content is 100% royalty-free and can be used and monetized without restrictions in any kind of music production you can think of. <a href="/helpcenter.html#legal">Find detailed legal information here...</a></p></div></div></div><div x-data="{"collapsed":true}" class="mb-4"><div class="text-md sm:text-lg flex flex-row justify-between items-center bg-grey rounded-full px-6 py-2 cursor-pointer" x-on:click="collapsed = !collapsed"><div class="pr-12 flex-grow-0 font-bold">Why a subscription?</div><svg x-show="collapsed === true" class="size-4 transition duration-300 ease-out text-primary" width="100%" height="100%" viewBox="0 0 1029 1029" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g transform="matrix(1,0,0,1,-4658.75,-845.462)"><g transform="matrix(1,0,0,1.30256,0,-411.408)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g><g transform="matrix(6.12323e-17,1,-1.30256,7.97586e-17,6944.23,-3813.29)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g></g></svg><svg x-show="collapsed === false" class="size-5 transition duration-300 ease-out text-primary rotate-90" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></div><div class="overflow-hidden grid transition-[grid-template-rows_margin-top] px-6" x-bind:class="!collapsed ? 'grid-rows-[1fr] mt-4' : 'grid-rows-[0fr]'"><div class="overflow-hidden"><p>Because Tonalic keeps growing — and you get it all at no extra cost.<br />
Our content is constantly expanded and improved, so you’ll always have access to the latest and most complete collection. Plus, the musicians involved share in Tonalic’s success, and a subscription model is the only fair and transparent way to make that possible.</p><p>If you prefer not to start a continuous subscription, you can also get prepaid licenses through retailers — available for one month or one year. <a href="/helpcenter.html#legal">Find more about the Tonalic license models here...</a></p></div></div></div><div x-data="{"collapsed":true}" class="mb-4"><div class="text-md sm:text-lg flex flex-row justify-between items-center bg-grey rounded-full px-6 py-2 cursor-pointer" x-on:click="collapsed = !collapsed"><div class="pr-12 flex-grow-0 font-bold">Why do I need to be online?</div><svg x-show="collapsed === true" class="size-4 transition duration-300 ease-out text-primary" width="100%" height="100%" viewBox="0 0 1029 1029" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g transform="matrix(1,0,0,1,-4658.75,-845.462)"><g transform="matrix(1,0,0,1.30256,0,-411.408)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g><g transform="matrix(6.12323e-17,1,-1.30256,7.97586e-17,6944.23,-3813.29)"><rect x="5020.62" y="964.924" width="304.869" height="789.687" style="fill:rgb(230,163,58);"></rect></g></g></svg><svg x-show="collapsed === false" class="size-5 transition duration-300 ease-out text-primary rotate-90" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></div><div class="overflow-hidden grid transition-[grid-template-rows_margin-top] px-6" x-bind:class="!collapsed ? 'grid-rows-[1fr] mt-4' : 'grid-rows-[0fr]'"><div class="overflow-hidden"><p>To search for and download the Tonalics, you need a good Internet connection. Once the required data is on your hard disk, however, you can just as easily work offline, but your access thereafter will be limited to the Tonalics you have already downloaded.</p><p>Then why not download the whole library? For one thing, because it's far too big (you couldn't download all Netflix or Spotify either, for that matter), but also because we are constantly improving and expanding the content. Online access ensures that users have access at all times to the latest and best versions of everything currently available.</p></div></div></div><div class="mt-8 flex justify-center"><a href="/helpcenter.html" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg">Read more FAQ</a></div></div></div></div><div ><div id="" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-default"><div class="px-4 flex flex-col items-center text-center"><h1>A WORKFLOW THAT <b>ADAPTS TO YOU</b></h1></div><div class="px-4 md:flex justify-between my-8 gap-8"><div class="bg-grey rounded-xl flex-1 overflow-hidden my-8 md:my-0"><img src="/uploads/tonalic_box_software_Instrument_d8e9538c96.png" class="w-full h-64 object-cover"/><div class="flex flex-col items-center text-center my-8 px-2 text-medium-grey"><div class="text-primary font-bold mb-2 text-lg">Works in any DAW</div><p>Use Tonalic as an Instrument plug-in in any major DAW – <br />
including Logic Pro, Pro Tools and Live.</p><p>All Tonalics follow your chords, tempo, and key and behave musically the same everywhere, letting you arrange and build songs naturally in your DAW of choice.</p></div></div><div class="bg-grey rounded-xl flex-1 overflow-hidden my-8 md:my-0"><img src="/uploads/tonalic_box_studio_d38651a1ae.png" class="w-full h-64 object-cover"/><div class="flex flex-col items-center text-center my-8 px-2 text-medium-grey"><div class="text-primary font-bold mb-2 text-lg">Deep Integration</div><p>In Studio One Pro 7.2.3, Fender Studio Pro 8, Cubase 15.0.30, Nuendo 15.0.30 and Waveform 14.0.45, Tonalic additionally offers a deeper ARA-based workflow. Here, Tonalics can live directly in your DAW's timeline and be placed, extended, and moved like audio clips – becoming a natural part of your song arrangement.</p><p>More DAWs are set to follow.</p></div></div></div></div></div><div ><div id="" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-default"><div class="px-4 flex flex-col items-center text-center"><h1><b>System </b>requirements</h1><p>macOS 13.0 or later<br />
Windows 10 or 11 (64-bit)</p><p>Tonalic Instrument: 64-bit DAWs that support VST3, AU (Generator), or AAX plug-ins<br />
Tonalic ARA: currently supported by Studio One Pro 7.2.3, Fender Studio Pro 8, Cubase 15.0.30, Nuendo 15.0.30 and Waveform 14.0.45</p><p><b>Hardware<br />
</b>Broadband Internet Connection <br />
Multi-core CPU (Intel, AMD, or Apple Silicon)<br />
at least 16 GB of RAM, at least 20 GB of free disk space<br />
ASIO or Core Audio compatible audio interface recommended</p></div></div></div><div ><div id="" class="container mx-auto w-full relative md:max-w-[1200px] overflow-hidden vertical-margin-default"><div class="px-4"><a class="block relative group" target="_blank" href="https://services.tonalic.com/customer/registration/license"><div class="bg-grey rounded-xl p-8 sm:flex space-between items-center group-hover:opacity-95 transition-all"><div class="pt-8 sm:p-8"><p>Do you have a prepaid license from a retailer or a Tonalic essential from a bundle?</p></div></div><div class="absolute right-6 bottom-4 text-primary flex items-center gap-2">click here to open an account and redeem your license<svg class="transform size-5 group-hover:translate-x-2 transition-all" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></div></a></div></div></div><div id="" class="container mx-auto w-full relative md:max-w-[1024px] vertical-margin-default" x-data="{
email: '',
apiUrl: 'https://services.tonalic.com/api/cms/v1/newsletter/subscribe',
message: '',
isSuccess: false,
async submit() {
this.message = '';
this.isSuccess = false;
try {
const response = await fetch(this.apiUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ emailAddress: this.email })
});
if (response.status === 200) {
this.message = 'Thank you for subscribing to the Tonalic newsletter!';
this.isSuccess = true;
this.email = '';
} else if (response.status === 409) {
this.message = 'This email has already been subscribed.';
this.isSuccess = false;
} else {
this.message = 'Something went wrong.';
this.isSuccess = false;
}
} catch (err) {
this.message = 'A network error occurred.';
this.isSuccess = false;
}
}
}"><div class="px-4 block md:flex justify-between gap-16 items-center flex-wrap"><div class="font-bold text-primary text-2xl mb-8 md:mb-0">Sign up for the newsletter</div><div class="block sm:flex justify-between flex-1 gap-16"><input class="w-full border-0 border-b border-b-white outline-0 mb-8 sm:mb-0" placeholder="Your email" type="text" x-model="email"/><div class="flex justify-center sm:block"><button x-show="!isSuccess" x-on:click="submit" class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg"><svg class="size-6 rotate-45" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></button></div></div></div><div x-show="message" class="px-4"><div class="text-right text-lg font-bold my-8 p-4 border-2 rounded-sm" x-bind:class="isSuccess ? 'text-green-500' : 'text-red-500'" x-text="message"></div></div></div><div class="container mx-auto w-full relative md:max-w-[1200px]"><div class="px-4"><hr /><div class="md:flex justify-between gap-8 mt-16"><div class="text-white text-sm w-full md:w-2/5"><svg class="h-8 mb-2" viewBox="0 0 996.89 266" xmlns="http://www.w3.org/2000/svg"><path d="m578.69 78.18c-41.13 0-84.55 5.43-90.54 52.56h48.56c7.14-21.14 18.28-22.85 39.7-22.85 29.13 0 39.42 6 39.42 18.28s-5.14 14.85-20.57 16l-53.41 3.71c-24.67 1.61-50.81 7.15-59.98 28.74v-39.59c0-45.13-39.7-55.13-65.69-55.13-29.42 0-53.41 13.42-62.55 26.28h-.57v-22.28h-48.56v47.12c-11.91-36.73-47.82-52.83-96.83-52.83-37.87 0-67.92 9.61-85.12 30.91v-25.2h-40.56v-47.41h-50.29v47.41h-31.7v33.71h31.7v77.41c0 27.71 4.57 45.42 52.27 45.42 11.14 0 29.99-1.71 39.42-2.86v-24.74c17.33 20.59 47.01 29.89 84.26 29.89 49.01 0 84.92-16.1 96.83-52.83v47.12h50.27v-73.98c0-32.56 19.71-44.27 43.13-44.27s33.7 10.28 33.7 31.42v86.83h50.27v-24.67c8.6 21.54 32.78 30.39 64.55 30.39 22.56 0 54.55-4.86 71.69-21.99.29 5.43 0 16.28 0 16.28h47.99v-106.83c0-28.56-15.42-51.98-87.4-51.98l.01-.04zm-479.86 126.82c-13.14 0-16.85-4-16.85-16v-71.41h34.74c-6.61 11.51-10.18 25.72-10.18 42.84s3.79 32.16 10.78 43.84c-5.92.4-11.89.72-18.49.72zm108.82 2.29c-31.13 0-49.13-16.85-49.13-46.84s17.99-46.84 49.13-46.84 49.13 16.85 49.13 46.84-17.99 46.84-49.13 46.84zm409.88-32.28c0 25.71-28.28 37.99-53.7 37.99-18.85 0-31.7-7.71-31.7-21.42s8.85-18.57 26.56-19.99l29.13-2.57c10-.86 20.28-2 29.71-6.57v12.57zm327.38 1.2h51.98c-9.14 54.27-47.99 66.55-97.97 66.55-57.7 0-96.83-24.56-96.83-82.26s40.56-82.26 101.11-82.26c38.85 0 84.26 11.71 93.69 62.27h-51.98c-6-20.28-21.42-26.85-41.7-26.85-31.13 0-49.13 16.85-49.13 46.84s18 46.84 49.13 46.84c22.28 0 39.13-12 41.7-31.13zm-216.82-151.21v164c0 13.81-11.19 25-25 25s-25-11.19-25-25v-164c0-13.81 11.19-25 25-25s25 11.19 25 25zm62 114v102c0 13.81-11.19 25-25 25s-25-11.19-25-25v-102c0-13.81 11.19-25 25-25s25 11.19 25 25z" fill="#fff"></path><path d="m765.09 53c13.807 0 25 11.193 25 25s-11.193 25-25 25-25-11.193-25-25 11.193-25 25-25z" fill="#ffb133"></path></svg><div class="mb-8"><p>Tonalic feels like having a musician by your side.<br />
No AI, no loops, no MIDI. Just a musician playing along to every chord, every tempo, every groove. Effortlessly.</p><p>The result? Authentic guitar, bass, and drum tracks in your song – with the sound, the emotion, and all the performance magic that happens between the notes.</p><p>From Celemony, the creators of Melodyne.<br />
Played by world-class studio musicians.<br />
Driven by your song.</p><p><b>Tonalic – a musician by your side</b></p></div></div><div class="text-white text-sm mt-2"><b >Services</b><ul class="m-0 p-0 list-none mt-2 mb-8"><li class="mb-2"><a class="hover:text-white" href="/essential-upgrade.html">Upgrades for essential users</a></li><li class="mb-2"><a class="hover:text-white" href="/arranger-upgrade.html">Upgrade for arranger users</a></li><li class="mb-2"><a class="hover:text-white" target="_blank" href="https://services.tonalic.com/customer/registration/license">Register Prepaid Licenses</a></li><li class="mb-2"><a class="hover:text-white" target="_blank" href="https://services.tonalic.com/customer/login">Cancel subscription</a></li><li class="mb-2"><a class="hover:text-white" href="/fenderstudiopro.html">Bundle with Fender Studio Pro</a></li><li class="mb-2"><a class="hover:text-white" href="/cubase.html">Bundle with Cubase and Nuendo</a></li><li class="mb-2"><a class="hover:text-white" href="/melodyne.html">Bundle for Melodyne users</a></li></ul></div><div class="text-white text-sm mt-2"><b >About Tonalic</b><ul class="m-0 p-0 list-none mt-2 mb-8"><li class="mb-2"><a class="hover:text-white" href="/index.html#pricing">Pricing</a></li><li class="mb-2"><a class="hover:text-white" href="/index.html#musicians">Musicians</a></li><li class="mb-2"><a class="hover:text-white" href="/helpcenter.html">Helpcenter</a></li><li class="mb-2"><a class="hover:text-white" href="/helpcenter.html#supportteam">Support</a></li><li class="mb-2"><a class="hover:text-white" href="/release-notes.html">Release Notes</a></li></ul></div><div class="text-white text-sm mt-2"><b >Company</b><ul class="m-0 p-0 list-none mt-2 mb-8"><li class="mb-2"><a class="hover:text-white" href="/contact.html">Contact us</a></li><li class="mb-2"><a class="hover:text-white" href="/privacy_policy.html">Privacy Policy</a></li><li class="mb-2"><a class="hover:text-white" href="/terms_and_conditions.html">Terms and Conditions</a></li><li class="mb-2"><a class="hover:text-white" href="/imprint.html">Imprint</a></li><li class="mb-2"><span class="cursor-pointer" x-on:click="window.Cookiebot?.show();">Adjust cookie settings</span></li></ul></div></div><div class="flex justify-start md:justify-end gap-4 mb-16"><a href="https://www.instagram.com/tonalic" target="_blank"><svg class="text-white size-10" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 319.7 319.7"><path style="fill: currentColor;" d="M251.1,15c29.55,0,53.6,24.04,53.6,53.6v182.51c0,29.55-24.04,53.6-53.6,53.6H68.6c-29.55,0-53.6-24.04-53.6-53.6V68.6c0-29.55,24.04-53.6,53.6-53.6h182.51M251.1,0H68.6C30.71,0,0,30.71,0,68.6v182.51c0,37.88,30.71,68.6,68.6,68.6h182.51c37.88,0,68.6-30.71,68.6-68.6V68.6C319.7,30.71,288.99,0,251.1,0h0ZM132.4,68.46c18.47-.47,37.72-.35,56.16.18s33.23,1.36,46.76,14.17,15.57,29.65,16.04,47.36c.38,14.12.14,28.34-.02,42.43-.27,24.29,2.18,48.28-17.75,65.88-13.37,11.81-29.58,12.24-46.51,12.69-18.08.48-36.41.48-54.49,0-19.86-.53-37.03-1.4-51.07-17.25-11.76-13.27-12.46-28.64-12.94-45.53-.54-18.94-.55-38.26,0-57.21.48-16.56,1.18-31.96,12.69-45.03,13.86-15.74,31.29-17.18,51.14-17.68ZM132.65,84.74c-12.67.32-26.58.43-36.46,9.42-11.44,10.41-10.96,24.96-11.33,39.24-.47,17.59-.47,35.43,0,53.02.4,15.03-.07,29.16,12.19,39.86,10.95,9.54,28.32,8.36,41.95,8.62,17.83.34,35.71.43,53.51-.25,12.37-.47,24.03-1.29,32.95-10.96s8.95-21.35,9.36-33.57c.65-19.78.65-40.63,0-60.42-.39-11.92-.53-23.65-8.86-33.07-10.34-11.7-24.71-11.31-39.11-11.7-17.94-.49-36.21-.64-54.18-.18ZM206.86,159.89c0,25.94-21.03,46.97-46.97,46.97s-46.97-21.03-46.97-46.97,21.03-46.97,46.97-46.97,46.97,21.03,46.97,46.97ZM190.52,159.9c0-16.92-13.72-30.64-30.64-30.64s-30.64,13.72-30.64,30.64,13.72,30.64,30.64,30.64,30.64-13.72,30.64-30.64ZM208.84,100.1c-6,0-10.87,4.87-10.87,10.87s4.87,10.87,10.87,10.87,10.87-4.87,10.87-10.87-4.87-10.87-10.87-10.87Z"></path></svg></a><a href="https://www.youtube.com/celemony" target="_blank"><svg class="text-white h-10" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 319.7 319.7"><path style="fill: currentColor;" d="M251.1,15c29.55,0,53.6,24.04,53.6,53.6v182.51c0,29.55-24.04,53.6-53.6,53.6H68.6c-29.55,0-53.6-24.04-53.6-53.6V68.6c0-29.55,24.04-53.6,53.6-53.6h182.51M251.1,0H68.6C30.71,0,0,30.71,0,68.6v182.51c0,37.88,30.71,68.6,68.6,68.6h182.51c37.88,0,68.6-30.71,68.6-68.6V68.6C319.7,30.71,288.99,0,251.1,0h0ZM148.47,91.03c21.8-.26,44.51-.09,66.23,1.37,21.08,1.41,36.19,2.02,40.41,26.1,3.17,18.12,3.13,39.16,2.23,57.51-.7,14.2-.36,35.9-13.48,44.6-9.18,6.09-28.21,5.85-39.26,6.37-29.66,1.4-59.7,1.41-89.35.01-12.29-.58-32.77,0-42.16-8.52-10.39-9.42-10.22-31.37-10.81-44.62-.8-18.04-.96-41.29,3-58.9,3.52-15.67,13.54-19.95,28.36-21.58,17.76-1.96,36.94-2.12,54.84-2.33ZM140.12,130.3v58.53l50.93-29.15-50.93-29.38Z"></path></svg></a><a href="https://www.facebook.com/tonalicmusic" target="_blank"><svg class="text-white size-10" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 319.7 319.7"><path style="fill: white" d="M251.1,15c29.55,0,53.6,24.04,53.6,53.6v182.51c0,29.55-24.04,53.6-53.6,53.6H68.6c-29.55,0-53.6-24.04-53.6-53.6V68.6c0-29.55,24.04-53.6,53.6-53.6h182.51M251.1,0H68.6C30.71,0,0,30.71,0,68.6v182.51c0,37.88,30.71,68.6,68.6,68.6h182.51c37.88,0,68.6-30.71,68.6-68.6V68.6C319.7,30.71,288.99,0,251.1,0h0ZM173.82,249.46h-37.54v-90.87h-18.76v-31.31h18.76v-18.8c0-25.55,10.59-40.74,40.68-40.74h25.05v31.32h-15.66c-11.72,0-12.49,4.38-12.49,12.54l-.05,15.67h28.37l-3.32,31.31h-25.05v90.87Z"></path></svg></a></div></div></div><div x-data="{"isVisible":false}" x-init="isVisible = scrollY > 500" x-transition_opacity="true" x-effect="isVisible = scrollY > 500" class="fixed bottom-5 right-3 md:bottom-12 md:right-12 z-40 transition-all duration-300 ease-in-out transform" x-bind:class="isVisible ? 'translate-y-0 opacity-100' : 'translate-y-full opacity-0'" x-cloak=""><button id="scroll-top" x-on:click="window.scrollTo({ top: 0, behavior: 'smooth' })" class="
cursor-pointer
text-primary
bg-grey
rounded-full
p-4
shadow-lg
transition-all
duration-300
flex
items-center
justify-center
" aria-label="Scroll to top"><svg class="transform -rotate-90 size-6" version="1.1" viewBox="0 0 369.32 291.67" fill="currentColor"><path d="M14.93,175.75v-61.32h234.7L154.86,19.65h86.97l105.36,105.92v39.02l-105.36,105.92h-86.97l94.77-94.77H14.93Z"></path></svg></button></div></body></html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 48
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
На странице присутствуют внутренние ссылки с пустым анкором: 1!
Внутренних ссылок на странице 48 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
На странице присутствуют изображения 2.
Показать внутренние ссылки
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| /index.html |
<svg class="h-8 mb-1.5" viewbox="0 0 996.89 266" xmlns="http://www.w3.org/2000/svg"><path d="m578.69 78.18c-41.13 0-84.55 5.43-90.54 52.56h48.56c7.14-21.14 18.28-22.85 39.7-22.85 29.13 0 39.42 6 39.42 18.28s-5.14 14.85-20.57 16l-53.41 3.71c-24.67 1.61-50.81 7.15-59.98 28.74v-39.59c0-45.13-39.7-55.13-65.69-55.13-29.42 0-53.41 13.42-62.55 26.28h-.57v-22.28h-48.56v47.12c-11.91-36.73-47.82-52.83-96.83-52.83-37.87 0-67.92 9.61-85.12 30.91v-25.2h-40.56v-47.41h-50.29v47.41h-31.7v33.71h31.7v77.41c0 27.71 4.57 45.42 52.27 45.42 11.14 0 29.99-1.71 39.42-2.86v-24.74c17.33 20.59 47.01 29.89 84.26 29.89 49.01 0 84.92-16.1 96.83-52.83v47.12h50.27v-73.98c0-32.56 19.71-44.27 43.13-44.27s33.7 10.28 33.7 31.42v86.83h50.27v-24.67c8.6 21.54 32.78 30.39 64.55 30.39 22.56 0 54.55-4.86 71.69-21.99.29 5.43 0 16.28 0 16.28h47.99v-106.83c0-28.56-15.42-51.98-87.4-51.98l.01-.04zm-479.86 126.82c-13.14 0-16.85-4-16.85-16v-71.41h34.74c-6.61 11.51-10.18 25.72-10.18 42.84s3.79 32.16 10.78 43.84c-5.92.4-11.89.72-18.49.72zm108.82 2.29c-31.13 0-49.13-16.85-49.13-46.84s17.99-46.84 49.13-46.84 49.13 16.85 49.13 46.84-17.99 46.84-49.13 46.84zm409.88-32.28c0 25.71-28.28 37.99-53.7 37.99-18.85 0-31.7-7.71-31.7-21.42s8.85-18.57 26.56-19.99l29.13-2.57c10-.86 20.28-2 29.71-6.57v12.57zm327.38 1.2h51.98c-9.14 54.27-47.99 66.55-97.97 66.55-57.7 0-96.83-24.56-96.83-82.26s40.56-82.26 101.11-82.26c38.85 0 84.26 11.71 93.69 62.27h-51.98c-6-20.28-21.42-26.85-41.7-26.85-31.13 0-49.13 16.85-49.13 46.84s18 46.84 49.13 46.84c22.28 0 39.13-12 41.7-31.13zm-216.82-151.21v164c0 13.81-11.19 25-25 25s-25-11.19-25-25v-164c0-13.81 11.19-25 25-25s25 11.19 25 25zm62 114v102c0 13.81-11.19 25-25 25s-25-11.19-25-25v-102c0-13.81 11.19-25 25-25s25 11.19 25 25z" fill="#fff"></path><path d="m765.09 53c13.807 0 25 11.193 25 25s-11.193 25-25 25-25-11.193-25-25 11.193-25 25-25z" fill="#ffb133"></path></svg>
|
|
Анализировать url |
| /helpcenter.html |
Helpcenter
|
|
Анализировать url |
| /helpcenter.html |
Helpcenter
|
|
Анализировать url |
| /artists/kenny-aronoff.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Kenny Aronoff</div><div class="text-sm"><p>Today, Kenny is one of the most sought-after drummers in the world. His unique skills and talents transcend all musical genres, often featuring a powerful back beat and a lot of punch.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/uwe-bossert.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Uwe Bossert</div><div class="text-sm"><p>Uwe is best known as the guitarist of the German pop-rock band Reamonn. His guitar mastery blends intricate fingerpicking with emotive melodies that resonate with depth and emotion.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/randy-bowland.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Randy Bowland</div><div class="text-sm"><p>Randy is known for his work across R&B, gospel, pop and soul. Drawing inspiration from classic jazz, his guitar work blends melodic clarity with harmonic sophistication shifting seamlessly between lead and rhythm roles.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/corey-britz.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Corey Britz</div><div class="text-sm"><p>In addition to being the bassist for Bush, Corey is a sought-after session musician and producer. He's fantastic with a pick, especially when it comes to fat sounding 90s rock, but also shines in pop and alternative.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/jt-corenflos.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">J.T. Corenflos</div><div class="text-sm"><p>J.T. was a renowned guitarist from Nashville, who infused his musical approach with versatility and virtuosity, spanning genres from country to rock, making him a sought-after session musician and a true legend.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/julian-coryell.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Julian Coryell</div><div class="text-sm"><p>Julian, a versatile guitarist, singer, songwriter, and producer, has collaborated with artists like Alanis Morissette, Aimee Mann and Jewel. Beyond his jazz roots, he moves fluidly across genres and styles.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/justin-derrico.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Justin Derrico</div><div class="text-sm"><p>Justin gained prominence as the lead guitarist for Pink and NBC's "The Voice". His playing seamlessly blends rock and pop influences, showcasing technical prowess and stirring expression.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/adrian-X.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Adrian X</div><div class="text-sm"><p>Adrian X, a distinguished guitarist, writer and producer, is celebrated for his genre-defying style that seamlessly blends R&B, reggae grooves, metal riffs and hip hop.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/ahmed-el-salamouny.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Ahmed El-Salamouny</div><div class="text-sm"><p>Although he studied and lives in Europe, Ahmed is widely recognized as a leading interpreter of Brazilian music. He combines excellent technique on the classical guitar with the rhythmic vitality of Brazilian genres.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/paul-geary.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Paul Geary</div><div class="text-sm"><p>Influenced by Marcus Miller and Mark King, Paul prefers slapping and thumb playing. The top-tier session and touring bassist is renowned for his tasteful approach – a versatile style that's groove-oriented yet melodic.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/binky-griptite.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Binky Griptite</div><div class="text-sm"><p>Binky is a cornerstone of the modern soul revival as the guitarist for Sharon Jones & the Dap-Kings, later also for artists like Amy Winehouse. His guitar work is deeply rooted in 1960s funk and soul traditions.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/rob-harris.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Rob Harris</div><div class="text-sm"><p>Rob, a highly accomplished English guitarist and songwriter, has recorded and toured with renowned artists like Jamiroquai and Kylie Minogue. He loves playing jazzy and funky rhythm parts on acoustic or electric guitar.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/sean-hurley.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Sean Hurley</div><div class="text-sm"><p>Sean has collaborated with artists like John Mayer and Robin Thicke, contributing to numerous chart-topping records. He is an incredibly versatile bassist, known for his earthy, warm and thick tone that supports the song.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/victor-indrizzo.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Victor Indrizzo</div><div class="text-sm"><p>Victor is an accomplished drummer, acclaimed for his dynamic and eclectic style. His drumming has been the driving force behind countless albums and performances, leaving an indelible mark on the industry.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/venzella-joy.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Venzella Joy</div><div class="text-sm"><p>Known for her dynamic, precise and groove-heavy drumming style, Joy gained global recognition as the heartbeat of Beyoncé's all-female band. She also works as an actress, musical director and music producer.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/martin-ace-kent.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Martin "Ace" Kent</div><div class="text-sm"><p>Ace, guitar player of the UK rock band Skunk Anansie, is one of the top creative rock guitarists, authors and educators. His trademark lies in crafting heavy riffs built on simplicity and strength.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/paul-kleber.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Paul Kleber</div><div class="text-sm"><p>Coming from a classical background as a double bass player, Paul quickly adapted his style to jazz, pop and eletronic music with artists like Jazzanova and Emilíana Torrini. His bass lines are known for their harmonic sophistication and fluidity.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/david-kuckhermann.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">David Kuckhermann</div><div class="text-sm"><p>David, a Grammy-nominated percussionist, fell in love early with finger-style drumming. He studied Indian tabla and Iranian tombak, later immersing himself in the world of frame drums and handpans.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/brent-mason.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Brent Mason</div><div class="text-sm"><p>Brent is a Grammy-winning Nashville session guitarist whose exceptional talent and trademark hybrid picking has shaped countless chart-topping country hits over the past four decades.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/troy-mclawhorn.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Troy McLawhorn</div><div class="text-sm"><p>Troy is an American alternative rock and metal guitar player, well-known as Evanescence's lead guitarist and for his heavy, but also bluesy style.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/nate-mendel.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Nate Mendel</div><div class="text-sm"><p>As a founding member of Foo Fighters, Nate's bass lines anchor each composition with precision and depth, blending his melodic sensibilities and rhythmic foundation into a powerful sound.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/dwayne-moore.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Dwayne Moore</div><div class="text-sm"><p>Dwayne, originally a cornerstone of the Philly scene, is a versatile American bassist prominently known for his work with Beck's live band. He prioritizes a big tone as well as pocket over flashy technique.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/nick-movshon.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Nick Movshon</div><div class="text-sm"><p>Nick, a key figure in Brooklyn's funk and soul revival scene, is acclaimed for his groove-centric bass lines with impeccable timing and ghost notes. He anchors compositions with a rich, unmistakable vintage sound.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/larry-paxton.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Larry Paxton</div><div class="text-sm"><p>Larry is a legendary Nashville session bassist whose exceptional talent has shaped numerous chart-topping country hits. Whether on upright or electric bass, his tone is warm and articulate.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/tim-pierce.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Tim Pierce</div><div class="text-sm"><p>Tim is one of the most featured and influential session guitarists of all time, playing on countless chart-topping records. His superior harmonic knowledge leads to versatile and creative guitar parts that always support the song.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/alex-reeves.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Alex Reeves</div><div class="text-sm"><p>Alex is a live and session drummer from London. He performed and recorded among others with Elbow, Shania Twain, Dizzee Rascal and is celebrated for "big phat grooves" and a "hip British swing".</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/oli-rubow.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Oli Rubow</div><div class="text-sm"><p>Oli played and toured with artists like Hellmut Hattler and DePhazz. Apart from being an incredibly skilled jazz drummer, he often blends acoustic and electronic elements.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/jared-scharff.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Jared Scharff</div><div class="text-sm"><p>Jared, former Saturday Night Live guitarist, now thriving as a sought-after producer, songwriter and session musician. Whether it's pumping funk, soulful blues or ambient textures, he adapts instantly.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/hubert-steiner.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Hubert Steiner</div><div class="text-sm"><p>Beyond his role as the bass player of Thees Uhlmann, Hubert is also known for his work with Sportfreunde Stiller. Playing primarily with a pick, his fat tone delivers serious drive and groove.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/bryan-sutton.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Bryan Sutton</div><div class="text-sm"><p>Bryan, a Grammy-winning acoustic guitarist – legendary for his flatpicking, has collaborated with Ricky Skaggs, The Chicks, Taylor Swift and many more, earning multiple IBMA awards along the way.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/paul-turner.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Paul Turner</div><div class="text-sm"><p>Paul, bassist for Jamiroquai, has also collaborated with artists like Tina Turner, Bryan Ferry, Tom Jones and Seal. He tends to have a clear sound, though he also likes a fat, round tone.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/raoul-walton.html |
<div x-bind:class="{ 'opacity-100': isActive() }" class="pointer-events-none absolute top-0 left-0 right-0 bottom-0 transition-all opacity-0 group-hover:opacity-100" style="background: linear-gradient(to top, rgba(0, 0, 0, 1), transparent);"></div><div x-bind:class="{ 'pointer-events-auto opacity-100': isActive() }" class="relative z-10 flex flex-col justify-end h-full text-center transition-all pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100"><div class="text-primary font-bold text-lg">Raoul Walton</div><div class="text-sm"><p>Raoul is a seasoned bassist best known for his presence in the German scene. He fuses funk, jazz and R&B – sculpting deep grooves with impeccable timing, anchoring compositions with a rich, dynamic sound.</p></div><div class="flex justify-center"><button class="text-center px-6 rounded-full block cursor-pointer transition-all hover:opacity-90 active:opacity-70 font-bold bg-primary text-black border-1 border-transparent py-2 text-lg my-8">More info</button></div></div>
|
|
Анализировать url |
| /artists/julian-coryell.html |
Пустой анкор
|
|
Анализировать url |
| /helpcenter.html |
Read more FAQ
|
|
Анализировать url |
| /essential-upgrade.html |
Upgrades for essential users
|
|
Анализировать url |
| /arranger-upgrade.html |
Upgrade for arranger users
|
|
Анализировать url |
| /fenderstudiopro.html |
Bundle with Fender Studio Pro
|
|
Анализировать url |
| /cubase.html |
Bundle with Cubase and Nuendo
|
|
Анализировать url |
| /melodyne.html |
Bundle for Melodyne users
|
|
Анализировать url |
| /helpcenter.html |
Helpcenter
|
|
Анализировать url |
| /release-notes.html |
Release Notes
|
|
Анализировать url |
| /contact.html |
Contact us
|
|
Анализировать url |
| /privacy_policy.html |
Privacy Policy
|
|
Анализировать url |
| /terms_and_conditions.html |
Terms and Conditions
|
|
Анализировать url |
| /imprint.html |
Imprint
|
|
Анализировать url |
Внешние ссылки
Кол-во: 3
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 3 оптимально.
На странице присутствуют ссылки на субдомены 5.
Показать внешние ссылки
| Url | Анкор | Анализировать |
|---|---|---|
| instagram.com |
<svg class="text-white size-10" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 319.7 319.7"><path style="fill: currentColor;" d="M251.1,15c29.55,0,53.6,24.04,53.6,53.6v182.51c0,29.55-24.04,53.6-53.6,53.6H68.6c-29.55,0-53.6-24.04-53.6-53.6V68.6c0-29.55,24.04-53.6,53.6-53.6h182.51M251.1,0H68.6C30.71,0,0,30.71,0,68.6v182.51c0,37.88,30.71,68.6,68.6,68.6h182.51c37.88,0,68.6-30.71,68.6-68.6V68.6C319.7,30.71,288.99,0,251.1,0h0ZM132.4,68.46c18.47-.47,37.72-.35,56.16.18s33.23,1.36,46.76,14.17,15.57,29.65,16.04,47.36c.38,14.12.14,28.34-.02,42.43-.27,24.29,2.18,48.28-17.75,65.88-13.37,11.81-29.58,12.24-46.51,12.69-18.08.48-36.41.48-54.49,0-19.86-.53-37.03-1.4-51.07-17.25-11.76-13.27-12.46-28.64-12.94-45.53-.54-18.94-.55-38.26,0-57.21.48-16.56,1.18-31.96,12.69-45.03,13.86-15.74,31.29-17.18,51.14-17.68ZM132.65,84.74c-12.67.32-26.58.43-36.46,9.42-11.44,10.41-10.96,24.96-11.33,39.24-.47,17.59-.47,35.43,0,53.02.4,15.03-.07,29.16,12.19,39.86,10.95,9.54,28.32,8.36,41.95,8.62,17.83.34,35.71.43,53.51-.25,12.37-.47,24.03-1.29,32.95-10.96s8.95-21.35,9.36-33.57c.65-19.78.65-40.63,0-60.42-.39-11.92-.53-23.65-8.86-33.07-10.34-11.7-24.71-11.31-39.11-11.7-17.94-.49-36.21-.64-54.18-.18ZM206.86,159.89c0,25.94-21.03,46.97-46.97,46.97s-46.97-21.03-46.97-46.97,21.03-46.97,46.97-46.97,46.97,21.03,46.97,46.97ZM190.52,159.9c0-16.92-13.72-30.64-30.64-30.64s-30.64,13.72-30.64,30.64,13.72,30.64,30.64,30.64,30.64-13.72,30.64-30.64ZM208.84,100.1c-6,0-10.87,4.87-10.87,10.87s4.87,10.87,10.87,10.87,10.87-4.87,10.87-10.87-4.87-10.87-10.87-10.87Z"></path></svg>
|
|
| youtube.com |
<svg class="text-white h-10" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 319.7 319.7"><path style="fill: currentColor;" d="M251.1,15c29.55,0,53.6,24.04,53.6,53.6v182.51c0,29.55-24.04,53.6-53.6,53.6H68.6c-29.55,0-53.6-24.04-53.6-53.6V68.6c0-29.55,24.04-53.6,53.6-53.6h182.51M251.1,0H68.6C30.71,0,0,30.71,0,68.6v182.51c0,37.88,30.71,68.6,68.6,68.6h182.51c37.88,0,68.6-30.71,68.6-68.6V68.6C319.7,30.71,288.99,0,251.1,0h0ZM148.47,91.03c21.8-.26,44.51-.09,66.23,1.37,21.08,1.41,36.19,2.02,40.41,26.1,3.17,18.12,3.13,39.16,2.23,57.51-.7,14.2-.36,35.9-13.48,44.6-9.18,6.09-28.21,5.85-39.26,6.37-29.66,1.4-59.7,1.41-89.35.01-12.29-.58-32.77,0-42.16-8.52-10.39-9.42-10.22-31.37-10.81-44.62-.8-18.04-.96-41.29,3-58.9,3.52-15.67,13.54-19.95,28.36-21.58,17.76-1.96,36.94-2.12,54.84-2.33ZM140.12,130.3v58.53l50.93-29.15-50.93-29.38Z"></path></svg>
|
Анализировать url |
| facebook.com |
<svg class="text-white size-10" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 319.7 319.7"><path style="fill: white" d="M251.1,15c29.55,0,53.6,24.04,53.6,53.6v182.51c0,29.55-24.04,53.6-53.6,53.6H68.6c-29.55,0-53.6-24.04-53.6-53.6V68.6c0-29.55,24.04-53.6,53.6-53.6h182.51M251.1,0H68.6C30.71,0,0,30.71,0,68.6v182.51c0,37.88,30.71,68.6,68.6,68.6h182.51c37.88,0,68.6-30.71,68.6-68.6V68.6C319.7,30.71,288.99,0,251.1,0h0ZM173.82,249.46h-37.54v-90.87h-18.76v-31.31h18.76v-18.8c0-25.55,10.59-40.74,40.68-40.74h25.05v31.32h-15.66c-11.72,0-12.49,4.38-12.49,12.54l-.05,15.67h28.37l-3.32,31.31h-25.05v90.87Z"></path></svg>
|
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Выполнен подробный анализ сайта tonalic.com: готовность на 61%. Чтобы выполнить все условия и попасть на первую страницу выдачи поисковых систем требуется:
Исправьте ошибки в мета-тегах.
Исправьте ошибки индексации.
Поделитесь с друзьями: