shectermen

shectermen

Пикабушник
Дата рождения: 27 января
2371 рейтинг 6 подписчиков 23 подписки 22 поста 5 в горячем
Награды:
10 лет на Пикабу
2

Tabify на Мак вышел, Windows до сих пор снится в кошмарах: продолжение истории про приложение для музыкантов⁠⁠

Привет Пикабу! Недавно я рассказывал как полгода плясал с бубном вокруг Tabify, редактора табов для музыкантов. Вышла версия для macOS. И у меня для вас неожиданная новость: это было проще, чем Windows. Намного проще.

Как звук устроен в Windows. Ну, или как он «устроен»

Когда делаешь приложение где гитара подключается к компьютеру, звук обрабатывается в реальном времени и висят VST-плагины, тебе нужна минимальная задержка. Если между щипком струны и звуком в наушниках проходит больше ~10 мс, играть невозможно. Ощущение, будто звонишь себе по межгороду.

В Windows для работы со звуком есть, внимание:

  • MME: древний, как мамонт, и примерно такой же быстрый;

  • DirectSound: чуть моложе мамонта;

  • WASAPI: современный, у него два режима, shared и exclusive, и ведут они себя как два разных человека;

  • ASIO: правильный путь для музыкантов, только это вообще не часть Windows. Это сторонний стандарт, и драйвер под него пишет производитель звуковой карты. Как умеет.

Выбрали ASIO, потому что музыкантам на windows нужен именно он. Дальше началось кино. У каждой звуковой карты свой драйвер со своими представлениями о прекрасном. Одна карта честно отдаёт стерео-вход, другая отдаёт 8 каналов, из которых живые два, и угадай какие. Частота дискретизации в программе одна, в драйвере другая. Буфер выставили, драйвер сделал вид, что согласился, и молча поставил свой.

В истории коммитов этого периода у нас реально лежат подряд:

В истории коммитов этого периода у нас реально лежат подряд:

  • ASIO Fixes

  • ASIO FIXES

  • ASIO config fixed

  • ASIO: optimization, Stereo input reworked...

А вишенка на торте это VST-плагины. Плагин - это чужой код, который грузится прямо в твою программу и работает со звуком в реальном времени. Если он что-то делает не так, а под Windows вместе с кривым ASIO-драйвером это случается, можно поймать не просто вылет, а синий экран. У нас был коммит с честным описанием: «загрузка сохранённых VST отключена - пока что случается BSOD». Синий экран. От табулатуры. В 2026 году.

Отдельная песня это окна плагинов. Многие VST рисуют свой интерфейс через старый оконный цикл Windows. Пока пользователь крутит ручку в окне плагина, наш поток может, скажем так, задуматься о вечном. Пришлось выделять под плагины отдельный поток и учить его не зависать после модальных окон.

А что на маке?

На маке есть CoreAudio. Один. Его используют все, от системных звуков до профессиональных студий. Задержка низкая из коробки, драйверы у большинства звуковых карт либо не нужны вообще (class compliant), либо сделаны прилично, потому что вариантов нет. Частоты, буферы, каналы - всё через одно API, которое ведёт себя одинаково.

Подключил движок, выбрал устройство и работает. Я сидел и ждал подвоха минут сорок. Подвоха не было.

Плагины тоже, на маке помимо VST3 есть AudioUnit, родной формат Apple. Написали сканер для AU, подцепили окна VST - и, что удивительно, ничего синим не загорелось.

«Но ведь не бывает так, чтобы всё было хорошо»

Не бывает. Мак отыгрался на другом, и всё это не про звук, а про «Apple лучше знает»:

  • Подпись и нотаризация. Без них macOS просто не даст запустить приложение, скажет «повреждено, выбросите в корзину». Чтобы подписать сборку, надо сидеть физически за маком или хотя бы в удалённом рабочем столе. По SSH Apple подписывать не даёт никогда, даже если очень попросить.

  • Плавающая панель падала, если у приложения нет разрешения «Универсальный доступ». Не «не работала», а именно падала.

  • Установщик ставил приложение не туда. Пришлось убеждать его, что программы живут в /Applications.

  • В полноэкранном режиме пропадала кнопка входа. Потому что почему бы и нет.

Но знаете что? Это всё лечится за вечер. ASIO лечился месяцами.

Дальше Linux и телефоны

Linux уже в работе, и, если честно, сам я сижу на Fedora, так что это личное. Движок под Linux собирается и запускается, плагины находятся. Тут свой формат, LV2, и для него есть библиотека lilv, которая их ищет. Ещё пришлось повоевать с окном, которое на Linux поначалу открывалось прозрачным. Буквально. Приложение запущено, а окна нет. Призрак табулатуры. Приятным бонусом оказалось что все плагины с windows работающие через yabridge сразу просканировались и подхватились.

Отдельное спасибо GStreamer, который без полного набора плагинов в AppImage отказывался проигрывать звук и даже не говорил почему.

Мобилка. Android-сборка уже собирается, у неё даже есть иконка (это важно, без иконки не считается). Понятно, что VST на телефоне не будет. Но открыть табы, посмотреть, послушать, позаниматься с метрономом в автобусе, вот это хочется.

Если вы играете на маке, заходите на tabify.ru и пробуйте. Если на Linux, напишите в комментах, какой у вас дистрибутив и звуковая подсистема (PipeWire? JACK? «Не знаю, просто работает»?), это реально поможет тестированию.

Показать полностью 7
9

«Танцы с бубном» вместо музыки – как я полгода делал приложение для гитаристов⁠⁠

Сколько вкладок ты открываешь, чтобы начать играть?
Знаешь, как это бывает – вечером после работы просто хочешь разобрать песню.
Взять гитару, воткнуться в комп и пойти играть, но вместо этого уходит пол часа (а то и больше) на настройку, подключение звука и открытие табов.

GuitarPro – отдельно, метроном – отдельно. Тюнер тоже отдельно. Ну, а если совсем не повезло, где-то во вкладках будет ещё и Reaper.
Открыл одно, закрыл другое, забыл, зачем открывал первое…

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

И в какой-то момент большинство просто смиряется, остаётся на этом франкенштейне из приложений. И я прекрасно понимаю «почему».
Но это был не мой путь.

При чём тут я

Я гитарист группы Destshot и разработчик по профессии, пятнадцать лет пишу код. Сам постоянно пользуюсь табами, разбираю партии, подключаю гитару, ковыряюсь со звуком и переключаюсь между кучей программ. Так что зоопарк вкладок – реальность, в которой я живу. Вернее жил, до начала разработки Tabify.

Я ещё прожжёный линуксоид, пересел на него довольно давно, потому что хотел полностью контролировать систему. С табами на Linux в принципе всё нормально. Есть TuxGuitar, он работает, открывает Guitar Pro, умеет проигрывать и редактировать табы. Но мне всё это категорически не нравилось. Не нравился интерфейс, не нравилось, что нужно открывать с десяток вкладок, чтобы оно наконец заработало как надо.

Мне хотелось простого человеческого «сел и играешь». И интерфейс приятный, а не миллиард иконок.

В какойто момент подумал, а почему нет? Написать одно приложение вместо всех этих дурацких вкладок, с понятным даже для новичков интерфейсом, с живым звуком, а не синтетическим MIDI.

Только не очередной редактор табов, который живёт сам по себе, а единое рабочее пространство для музыканта.

И чтобы базовый функционал был доступен бесплатно. Чтобы любой школьник или студент мог пользоваться нормальным музыкальным приложением, а не упираться в платный доступ на второй месяц и искать взломанные версии, потому что лишних денег на подписку просто нет.

Зачем ещё один Guitar Pro?

Почти три месяца мы с командой потратили на исследования: и в первую очередь мы поговорили со всеми гитаристами, до кого смогли дотянуться. Это была смешанная выборка из профессионалов, новичков, любителей и преподавателей. Многие из них играют в группах и (как выяснилось) сталкиваются с такими же проблемами, что и я.

Наткнулись и на уже упомянутую выше потерю времени, и на жонглирование приложениями. Часто жаловались на звук и интерфейс:
«звук через встроенный движок отвратительный»,
«1000 видов дисторшна, а по факту непонятно, какой из них нужен»

Кто-то ушёл в DAW просто потому, что там «звук был лучше». Часто ругали подписки – без них во многих приложениях нет базовых вещей, например лупа, базовый операций копипасты и т.п.

И всё это – лишь малая часть жалоб, которые мы услышали от музыкантов.

Я изначально хотел делать продукт в подходе community driven development; интервью позволили реализовать задумку ещё до выхода MVP.
В итоге мы пересмотрели приоритет фич приложения и включили часть новых. Например, преподаватели поголовно просили функцию записи гитары прямо внутри приложения, а у нас с командой даже мысли про это не было. В итоге включили в лист фич.

Музыкантами для музыкантов

Нас пятеро, и мы все – музыканты. Кто-то пришёл потому, что я искал людей, которые понимают музыкальную часть продукта, а кто-то вообще присоединился случайно, потому что понравилась идея. С февраля за полгода мы довели Tabify до MVP.

Что Tabify умеет уже сейчас


Сейчас Tabify – это десктоп-приложение для Windows (да, ирония — сам на Linux, а Tabify пока только под Windows, macOS и Linux доделываем), которое собирает разбор музыки в одном месте: он поддерживает табы, зацикливание, замедление темпа. В нём можно отключать лишние треки, чтобы оставить только свой инструмент. На грифе визуализируется аппликатура, есть смена строя и аппликатура это учитывает.

А ещё есть мультитрек: гитара, бас, ударные, клавиши — импорт из GP-файлов, поддержка VST, микшер, метроном.

Поддержка VST – для меня одна из самых важных и принципиальных вещей в приложении. Можно открыть таб, подключить гитару, загрузить свой VST-усилитель/эффект, поставить сложный рифф на повтор, замедлить его и играть.

Без отдельной DAW, плеера, пяти окон, между которыми приходится постоянно переключаться.

В MVP-версии мы ещё сделали встроенный каталог партитур, их там примерно 75 000, планируем пополнять.

В общем, если ты играешь по табам, разбираешь каверы или сидишь в Guitar Pro и задолбался от синтетического звука – Tabify для тебя.

Мы открыли бесплатную бету

Сейчас у нас около десяти пользователей, и значительная часть – мы сами. Статистика так себе, я знаю. У нас уже замылился глаз, а многие вещи для нас внутри приложения привычны.

Нам необходима абсолютно другая выборка – гитаристы, которые увидят Tabify первый раз.
Я тут могу долго распинаться про плюсы и минусы приложения, но куда важнее беспристрастная оценка функционала первыми пользователями.

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

Если ты гитарист – буду рад увидеть среди первых пользователей.

А если ты тоже музыкант, но не гитарист – расскажи, каким софтом пользуешься и чего в нём не хватает.

Ну и в завершении, нам на интервью часто говорили об идеальном приложении в формате «воткнулся и пошёл сразу играть из коробки».

Получилось у нас или нет – решать вам, жду комментов.

Также в комментариях готов ответить про разработку, звук, VST, гитару, да и про всё остальное тоже.

Показать полностью 6

Мой побег из Microsoft: как я пересел на Fedora и не пожалел⁠⁠7

Привет, пикабушники!

Я, как и многие из вас, устал от бесконечных качелей Microsoft. То обновления навязчивые, то софт ломается, то система вдруг начинает тормозить «просто потому что может». Мак — не лучше: там та же история с обязательными обновлениями, только ещё и с яблочным диктатом.

Но я нашёл выход — Linux. Да, тот самый, который раньше казался уделом гиков и бородатых админов. Я работаю в IT, но мои познания в Linux ограничивались рабочими задачами. Дома же мне нужно куда больше: музыка, звукозапись (DAW), VST-плагины, Steam, торренты, поддержка MIDI-клавиатуры и джойстиков… Раньше всё это либо не работало, либо требовало танцев с бубном.

Но всё изменилось за 3 дня

К моему удивлению, Fedora 38 (не без костылей, конечно) превратилась в полноценную замену Windows и macOS. И знаете что? Это было весело! Да, пришлось повозиться, но результат того стоил.

Я даже набросал скрипт для автоматизации настройки (хотя назвать это «автоматизацией» язык не поворачивается — каждый раз всплывали новые косяки). Спасибо DeepSeek (не идеальный, но толковый помощник), без него бы не справился.

#!/bin/bash

# Установка всего необходимого (PipeWire, JACK, Wine и прочего)

sudo dnf install -y pipewire-jack-audio-connection-kit qjackctl wine winetricks alsa-tools

# Настройка PipeWire + JACK (чтобы звук не убегал в кусты)

mkdir -p ~/.config/pipewire

cat <<EOT > ~/.config/pipewire/pipewire.conf

{

"context.modules": [

{

"name": "libpipewire-module-jackdbus",

"args": {

"dont-reconnect": true

}

}

]

}

EOT

# Перезапускаем звуковую систему (магическим пинком)

systemctl --user restart pipewire pipewire-pulse pipewire-media-session

# Загружаем модули JACK (чтобы не пропал звук после перезагрузки)

pactl list short modules | grep -q jack || {

pactl load-module module-jack-sink

pactl load-module module-jack-source

}

# Автозагрузка модулей (потому что лень каждый раз вручную)

echo "pactl load-module module-jack-sink" >> ~/.profile

echo "pactl load-module module-jack-source" >> ~/.profile

# Ставим Reaper (лучшая DAW для Linux, да и вообще)

wget https://www.reaper.fm/files/6.x/reaper681_linux_x86_64.tar.x...

mkdir reaper_install && tar -xvf reaper681_linux_x86_64.tar.xz -C reaper_install

cd reaper_install/reaper_linux_x86_64 && ./install-reaper.sh

# Настраиваем Wine и Yabridge (чтобы VST-плагины не плакали)

sudo dnf install wine winetricks -y

winetricks corefonts vcrun6sp6 vcrun2019

git clone https://github.com/robbert-vdh/yabridge.git

cd yabridge && make && sudo make install

mkdir -p ~/.vst ~/.vst3 ~/.wine

yabridgectl sync

# Запускаем pavucontrol (чтобы окончательно не сойти с ума)

pavucontrol &

echo "Готово! Открывай qjackctl, настраивай связи и наслаждайся звуком."

Вывод: Переходить на Linux или нет — личное дело каждого. Но если вам, как и мне, надоела диктатура Microsoft и Apple, попробуйте Fedora.

ЗЫ: Если в комментах знающие пикабушники подскажу как заставить китайских джойстик работать и как действительно автоматизировать установку этих пакетов не уничтожая систему, буду очень благодарен! Всем добра!

Показать полностью

Ответ на пост «В России низкая рождаемость»⁠⁠

Странно что никто не говорит о введении полиаморных браках, женись на 2+ женщинах и от каждой по 1-2 ребенка, здоровье девушек сильно лучше нежели рожавшие 10-15 раз, мужики радуются, но там семейный кодекс так перелопатить надо, а это работать надо... + эту систему ценностей тоже привить, опять работать... не, ерунда какая то.

151

Ответ на пост «Как программист в универе сдавал зачет по программированию»⁠⁠

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

На диплом я принес проект что как раз закончил на работе, это был весомый интернет магазин игрушек одного местного производителя, ответил, получил свою 5 и сел в аудитории что бы чего то дождаться (не помню чего, документы какие то ).

После меня вышел отвечать товарищ которого я не знал и никогда не видел, с горем пополам, еле еле описав свой проект он закончил речь после которой пошли доп вопросы.

- Какой именно язык программирования использовался для реализации проекта ?

- Вы знаете, я давно писал, что то уже не помню, забыл.

1

Destshot - Кто из нас ?⁠⁠

Друзья, сегодня я хотел бы поделиться с вами своими мыслями. За последнее время я уделял много времени и усилий на создание качественных и креативных клипов, которые выкладывал на различных платформах. Однако, несмотря на все усилия, я не получаю достаточно поддержки и признания за свою работу.

Каждый новый клип, который я создаю, становится для меня особым творческим проектом, и я стараюсь делать его наилучшим возможным. Но, к сожалению, не всегда это находит отклик у зрителей. Это иногда может быть разочаровывающе и даже демотивирующе.

Я ценю каждого из вас, кто смотрит мои работы и оставляет свои отзывы. Ваша поддержка мне очень важна и мотивирует продолжать творчество. Буду очень благодарен за ваши лайки, комментарии и обратную связь - это помогает мне стать лучше и расти как творческий человек.

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

Показать полностью 1
4

Ответ на пост «Секреты вашей профессии, о которых лучше не говорить»⁠⁠

Впервые поддержу волну ответов

  1. Не существует ПО без критических логических или синтаксических ошибок

  2. Все ваши персональные данные легко найти в интернете потратив 10-20 минут

  3. Половину сайтов в интернете можно взломать по одной простой инструкции

  4. Даже самые квалифицированные инженеры ошибаются крайне глупым способом

  5. Анонимности не существует

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества