Partscaster 1.0: программа для правки нейротрека

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

После первой статьи я собрал отзывы и готов показать переработанную программу - Partscaster. Кто-то увидит её впервые, поэтому начну с того, что это, зачем и чем отличается от других.

Сайт с примерами "было/стало": https://zazza.github.io/partscaster/, репозиторий: https://github.com/Zazza/partscaster.

Что это и откуда название

Не так давно вышла вторая версия открытой модели для генерации музыки — YuE2. Открытых моделей несколько, но YuE2 сейчас одна из сильнейших.

По замерам самих авторов на 192 песнях она обходит открытые LeVo 2, ACE-Step 1.5 и SongBloom и держится рядом с Suno. Независимого сравнения я не нашёл, так что это оценка авторов.

В итоге GitHub завален графическими оболочками для её Python-скриптов: ввёл стиль и текст - получил трек.

Поэтому первое название, yue-studio, я поменял на Partscaster - так называют гитару, собранную своими руками из деталей разных производителей: корпус от одной, гриф от другой, звукосниматели от третьей. Это лучше всего передаёт идею: не сгенерировать трек, а собрать его и довести до результата, который отличается от нейротрека.

Зачем

Нейротрек плоский: играет почти статично, мелодия будто посчитана математикой. Той самой "живости" нет.

Музыка - дело субъективное: кому-то она неинтересна, кому-то — фон. Я же меломан: обожаю живые гитары и барабаны, примочки и педали, которые меняют звук, барабанные сбивки и гитарные соло на электрухе. Всегда мечтал купить электрогитару, комбик и играть для себя, но руки у меня только под клавиатуру.

Я не очень люблю мейнстрим, которым завалены интернет и площадки вроде Яндекс Музыки. А обычный звук любого генератора нейротреков не вызывает у меня особой радости. В Partscaster я сделал то, чего мне не хватало.

Что изменилось после первой статьи

Работает на видеокарте с 8 ГБ

Установка воркера
Установка воркера

В комментариях двое написали, что у них карта на 8 ГБ, а я ориентировался на 16 (прежний движок на PyTorch занимал около 11 ГБ). И дали ссылку на yue2.cpp - отдельную реализацию YuE2 на C++ (на GGML, как llama.cpp для текстовых моделей). Веса там уже переведены в формат GGUF и сжаты до разной точности, есть свой сервер.

И оно действительно работает. В итоге, я убрал движок генерации на PyTorch и перевёл всё на yue2.cpp. Может, он пока еще сыроват, но так мне и не очень важно - рабоатет без проблем, к тому же автор так уже перегнал кучу других моделей, то есть у него есть опыт.

Замеры на моей 4070 Ti Super:

  • трек на 2:47 — за 50 секунд вместо 91;

  • модель Q8 занимает около 8 ГБ, в экономном режиме — около 4,5 ГБ;

  • модель подбирается по объёму видеокарты при установке, выбрать можно любую.

Проверил и на RTX 4060 с 8 ГБ — на другом компьютере: работает.

Живые барабаны и бас

Барабаны нейротрека заменяются сэмплами настоящих: бочка, малый, хэт, тарелки, томы — каждый удар на своём месте и со своей силой. YuE2 почти не играет томы и сбивки, поэтому в пресетах есть "барабанщик": перед сменой частей песни он делает сбивку. Бас тоже заменяется сэмплами настоящего баса по нотам исходной партии. Для электроники — драм-машины 808, 909, Linn, CR-78, Simmons.

Гитара: что получилось и что нет

То же самое хотелось провернуть с гитарой, но разделение трека на дорожки выделяет её плохо даже у лучшей модели — RoFormer. Зато появился "гитарист по аккордам": он играет новую партию по аккордам трека, приемлемо работает с нейлоном или полуакустикой. И умеет записать второй дубль - это добавляет еще больше "живости" треку. Так делают настоящие записи, одно и тоже играется дважды и пишется в разные каналы, в итоге звук гитары становится "шире" и это отчётливо слышно в нейротреках, они "узкие".

Заменить им гитару нейротрека один в один пока не выходит, но буду пытаться ещё.

Страница «Инструменты»: педали и усилители

Моя любимая страница. Здесь не нужен трек: короткая фраза гитары, баса или барабанов играет по кругу через цепочку "педали -> усилитель -> кабинет -> пространство". Усилители и педали - захваты настоящего железа (NAM, нейросетевые копии реальных приборов). Крутишь регулятор - через четверть секунды фраза звучит уже с новой настройкой, не останавливаясь. Можно менять темп и выключать обработку, чтобы сравнить с сухим звуком.

Понравившийся звук сохраняется как свой инструмент, и потом его можно выбрать в студии для дорожки трека. Для меня это то самое "купить примочку и покрутить", только в программе.

Дорожки в студии
Дорожки в студии

Пресеты звука

В прошлой версии "мастеринг" и "барабанные сбивки" я делал руками. Теперь это пресеты звука - правила по жанрам: больше сотни встроенных, 34 направления по три варианта. Пресет меняет барабаны и бас, обрабатывает гитару, выставляет громкость дорожек по замеру трека, делает мастеринг. Голос не трогает. Свой пресет можно собрать в редакторе - так получается ещё лучше. "Дыхание" осталось отдельной обработкой в один клик.

На странице "Пресеты звука" любой пресет можно послушать: он накладывается на демо-трек своего жанра (в первый раз это занимает несколько минут). Встроенный пресет не правится напрямую - делаешь копию, меняешь обработки и сохраняешь как свой. Свои пресеты можно править, переименовывать и удалять. А если удачно довёл трек в студии, эти правки можно сохранить как новый пресет и потом наложить на другой трек.

Верх частот

YuE2 обрезает звук выше 16 кГц (вообще, 10кГц (!) но ИИ настаивает на 16, не буду спорить, вероятно, что-то редкое выше 10 поднимается) и почти не играет тарелки: крэш у неё тише, чем в живых записях, на 6–30 дБ. Partscaster достраивает верх и добавляет тарелки. Уровни подбирал по замеру против живых записей в FLAC. На нормальной акустике это хорошо слышно.

Через ИИ-агента

У приложения есть MCP-сервер: трек можно доводить не руками, а попросив ИИ-агента — сгенерировать, поменять барабаны, наложить пресет, послушать замеры.

Что убрал

Помощника по стихам на Ollama и профили исполнителей ("стиль как у группы X"). Это быстрые пути "сделать нейротрек", а Partscaster — про доводку трека, что я лишний раз подчеркиваю, чтобы не лезть в нишу Suno и Yue2-studio (мне там нечего делать). К тому же, стало меньше зависимостей.

Было/стало

Лучше один раз послушать: на сайте есть куски треков сгенерированных программе. Можно переключать "было / стало" прямо во время игры — вторая версия продолжает с того же места: https://zazza.github.io/partscaster/#examples

Сами треки я собираю альбомами (это моя вкусовщина):

https://samotoy.ru/dmitry/static-and-gold/

https://samotoy.ru/dmitry/smoke-and-flint/

Установка

Готовые пакеты под Windows, Linux и macOS: приложение, MCP-сервер и воркер — часть, которая генерирует на видеокарте. Воркер может стоять на той же машине или на отдельной с видеокартой.

  • Windows — partscaster-worker.exe, без WSL: окно установки, дальше работает в фоне со значком в трее.

  • Linux — ./install.sh из архива воркера, либо приложение само ставит его на машину по SSH.

  • Установка качает модели и наборы сэмплов — около 20 ГБ.

Сайт: https://zazza.github.io/partscaster

Репозиторий: https://github.com/Zazza/partscaster.

ЗЫ

  • На macOS не проверял: приложение собирается, а воркеру нужна видеокарта NVIDIA.

  • Гитара через разделение на дорожки пока выделяется плохо — заменить её один в один не выходит.

Источник: https://habr.com/ru/articles/1097846/


Интересные статьи

Интересные статьи

Представьте себе: 2004 год, инженеры Intel готовятся к анонсу нового флагманского процессора Tejas. Семь гигагерц тактовой частоты — цифра, о которой разработчики могли только мечтать. И вдруг — неожи...
Apple не смогла добиться отсрочки запрета на импорт и продажу Watch Series 9 и Watch Ultra 2. Комиссия по международной торговле США (ITC) отклонила ходатайство компании о приостановлении запрета в ож...
В 1С-Битрикс: Управление сайтом (как и в Битрикс24) десятки, если не сотни настраиваемых типов данных (или сущностей): инфоблоки, пользователи, заказы, склады, форумы, блоги и т.д. Стр...
Здравствуйте. Я уже давно не пишу на php, но то и дело натыкаюсь на интернет-магазины на системе управления сайтами Битрикс. И я вспоминаю о своих исследованиях. Битрикс не любят примерно так,...
Автокэширование в 1с-Битрикс — хорошо развитая и довольно сложная система, позволяющая в разы уменьшить число обращений к базе данных и ускорить выполнение страниц.