Releases: slime4ik/backmess
Releases · slime4ik/backmess
Release list
v0.1.7
Все события озвучены: сигналы различаются тоном и ритмом Приложение почти всегда свёрнуто за игрой или браузером, поэтому звук — единственный способ понять, что произошло. Раньше часть событий молчала или пищала синтезированным тоном; теперь озвучены все, и твоими звуками. Двух семплов на одиннадцать событий не хватает, поэтому из них собраны разные сигналы — меняется высота и ритм. Правило одинаковое везде: - выше по тону и восходящий рисунок = вход, появление, включение - ниже и нисходящий = выход, уход, выключение - крупный семпл про людей, мелкий про тебя и твои действия Свои действия дополнительно отличаются двойным семплом: «я вышел» и «кто-то вышел» не спутать в разгар катки. Мут, глухота и их отмена звучат по-разному — в игре надо на слух понимать, что именно нажал. Сигналы собираются один раз на старте, а не при воспроизведении: событие может прилететь из аудио-потока, где считать лишнее нельзя. Синтезатор пищалок удалён за ненадобностью. Тесты проверяют, что все сигналы собрались, не перегружены при наложении семплов и не совпадают друг с другом — иначе теряется весь смысл затеи.
v0.1.6
Звуки уведомлений вместо синтезированных сигналов Добавлены два звука, разложенные по событиям от частоты и заметности: - henta_ahh (0.54 с, выразительный) — кто-то зашёл в голосовой и когда ответили именно тебе: редкие события, их надо заметить - kentut (0.21 с, короткий и тихий) — кто-то вышел и новое сообщение в другом канале: происходит часто, поэтому самый ненавязчивый Заход и выход намеренно звучат по-разному, иначе на слух не отличить, пришёл человек или ушёл. Мут и подтверждение подключения оставлены на коротких синтезированных щелчках: это отклик на своё же действие, он срабатывает постоянно, и звук-уведомление там приелся бы за пять минут. Файлы лежат уже раскодированными в сырой PCM 48 кГц моно — ровно в формате микшера. Поэтому в приложении нет ни MP3-декодера, ни ресемплера, а звук просто копируется в буфер воспроизведения. При подготовке срезана тишина по краям (в исходнике её была половина), громкость выровнена до 0.45 от максимума и добавлено сглаживание на краях, чтобы не щёлкало. Оба звука занимают 76 КБ. Есть тест, который ловит подмену файлов на пустые, слишком длинные или неоправданно громкие.
v0.1.5
Звуки уведомлений вместо синтезированных сигналов Добавлены два звука, разложенные по событиям от частоты и заметности: - henta_ahh (0.54 с, выразительный) — кто-то зашёл в голосовой и когда ответили именно тебе: редкие события, их надо заметить - kentut (0.21 с, короткий и тихий) — кто-то вышел и новое сообщение в другом канале: происходит часто, поэтому самый ненавязчивый Заход и выход намеренно звучат по-разному, иначе на слух не отличить, пришёл человек или ушёл. Мут и подтверждение подключения оставлены на коротких синтезированных щелчках: это отклик на своё же действие, он срабатывает постоянно, и звук-уведомление там приелся бы за пять минут. Файлы лежат уже раскодированными в сырой PCM 48 кГц моно — ровно в формате микшера. Поэтому в приложении нет ни MP3-декодера, ни ресемплера, а звук просто копируется в буфер воспроизведения. При подготовке срезана тишина по краям (в исходнике её была половина), громкость выровнена до 0.45 от максимума и добавлено сглаживание на краях, чтобы не щёлкало. Оба звука занимают 76 КБ. Есть тест, который ловит подмену файлов на пустые, слишком длинные или неоправданно громкие.
v0.1.4
Правки интерфейса: всплывашка сообщений, меню за краем, плотная лента Всплывашка с ответом и удалением мигала и не давалась в руки. Причина в особенности Fyne: как только курсор заходит на кнопку внутри строки, сама строка получает MouseOut, панель прячется, курсор снова оказывается над строкой — и так по кругу. Теперь наведение считается по группе виджетов (строка плюс кнопки) и панель прячется с небольшой задержкой, чтобы пережить перескок курсора. Меню по правому клику в правой колонке уезжало за край окна. Добавлено ограничение позиции границами окна — для меню участника, сообщения, канала, группы и всплывашки громкости. Иконки микрофона и звука были чёрными на чёрном: currentColor в статическом ресурсе Fyne не подставляется. Задан явный светлый цвет. Лента сообщений стала компактнее: свой вертикальный лейаут вместо VBox, который добавлял отступ между каждой парой элементов. Ползунки получили заголовок, текущее значение цифрой и подписи краёв — раньше было непонятно, что они регулируют и в какую сторону. Удаление с зажатым Shift пропускает подтверждение, как в Discord. Модификатор берём из события мыши: в Tapped его нет, поэтому запоминаем на нажатии кнопки. Память после этих правок: 163 МБ (было ~300 МБ до оптимизаций), 2.4% процессора в покое.
v0.1.3
Правки по замечаниям: ответы, удаление, громкость, шумодав, экономия …
v0.1.2
Linux-сборка падала из-за отсутствия флага исполняемости у скрипта scripts/package-linux.sh закоммитился как 100644, а workflow звал его через ./scripts/... — получалось "Permission denied", и задача падала ещё до компиляции. У macOS-скрипта флаг был, поэтому он собирался нормально и разница не бросалась в глаза. Флаг проставлен, плюс оба скрипта теперь вызываются через bash: если режим файла когда-нибудь снова потеряется, сборка от этого не встанет.
v0.1.1
Сборка релизов: dmg для мака, tar.gz для линукса, починен linux-билд Linux-сборка в v0.1.0 падала: Fyne 2.8 без тега x11 компилирует wayland-путь и требует wayland-client через pkg-config, а libwayland-dev в зависимостях не было. Список пакетов приведён к тому, что ставит у себя сама Fyne. macOS Intel собирался отдельной задачей на macos-13 и часами висел в очереди — таких раннеров у GitHub мало. Вместо этого собираем обе архитектуры на Apple Silicon и склеиваем через lipo, на выходе один universal-бинарь. Появились нормальные пакеты вместо голых бинарей: - mess-macos.dmg — mess.app с иконкой, перетаскиванием в Applications и ad-hoc подписью. Бандл нужен ещё и потому, что без Info.plist с NSMicrophoneUsageDescription macOS не даёт доступ к микрофону. - mess-linux-amd64.tar.gz — бинарь, иконка, .desktop и install.sh, который раскладывает приложение в меню без root. - Windows остаётся zip с exe и нужными dll. Скрипты сборки вынесены в scripts/, CI зовёт ровно их, поэтому пакет можно собрать локально той же командой. Добавлена Icon.png (та же картинка, что в icon.svg) — из неё делаются .icns и иконка для линукса.
v0.1.0
Кольцо говорящего вокруг аватарки и выбор звуковых устройств Понять, кто говорит, по одному лишь цвету ника не получалось. Теперь вокруг аватарки говорящего рисуется зелёное кольцо — и в списке участников голосового канала, и в панели участников, и на своей аватарке внизу. Кольцо есть всегда, но прозрачное, когда человек молчит, иначе строка дёргалась бы в момент начала речи. У того, кто в муте, кольцо не загорается. Выбор микрофона и наушников: кнопка шестерёнки в панели профиля. Раньше, если система выбрала не то устройство, починить это изнутри приложения было нельзя. Выбранное запоминается между запусками; если устройство выдернули, откатываемся на системное по умолчанию и не падаем. Там же кнопка проверки звука.