Skip to content

Releases: slime4ik/backmess

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 20 Jul 13:53
Все события озвучены: сигналы различаются тоном и ритмом

Приложение почти всегда свёрнуто за игрой или браузером, поэтому звук —
единственный способ понять, что произошло. Раньше часть событий молчала
или пищала синтезированным тоном; теперь озвучены все, и твоими звуками.

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

Свои действия дополнительно отличаются двойным семплом: «я вышел» и
«кто-то вышел» не спутать в разгар катки. Мут, глухота и их отмена
звучат по-разному — в игре надо на слух понимать, что именно нажал.

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

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

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 20 Jul 13:35
Звуки уведомлений вместо синтезированных сигналов

Добавлены два звука, разложенные по событиям от частоты и заметности:
- henta_ahh (0.54 с, выразительный) — кто-то зашёл в голосовой и когда
  ответили именно тебе: редкие события, их надо заметить
- kentut (0.21 с, короткий и тихий) — кто-то вышел и новое сообщение в
  другом канале: происходит часто, поэтому самый ненавязчивый

Заход и выход намеренно звучат по-разному, иначе на слух не отличить,
пришёл человек или ушёл.

Мут и подтверждение подключения оставлены на коротких синтезированных
щелчках: это отклик на своё же действие, он срабатывает постоянно, и
звук-уведомление там приелся бы за пять минут.

Файлы лежат уже раскодированными в сырой PCM 48 кГц моно — ровно в
формате микшера. Поэтому в приложении нет ни MP3-декодера, ни
ресемплера, а звук просто копируется в буфер воспроизведения. При
подготовке срезана тишина по краям (в исходнике её была половина),
громкость выровнена до 0.45 от максимума и добавлено сглаживание на
краях, чтобы не щёлкало. Оба звука занимают 76 КБ.

Есть тест, который ловит подмену файлов на пустые, слишком длинные или
неоправданно громкие.

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 20 Jul 13:34
Звуки уведомлений вместо синтезированных сигналов

Добавлены два звука, разложенные по событиям от частоты и заметности:
- henta_ahh (0.54 с, выразительный) — кто-то зашёл в голосовой и когда
  ответили именно тебе: редкие события, их надо заметить
- kentut (0.21 с, короткий и тихий) — кто-то вышел и новое сообщение в
  другом канале: происходит часто, поэтому самый ненавязчивый

Заход и выход намеренно звучат по-разному, иначе на слух не отличить,
пришёл человек или ушёл.

Мут и подтверждение подключения оставлены на коротких синтезированных
щелчках: это отклик на своё же действие, он срабатывает постоянно, и
звук-уведомление там приелся бы за пять минут.

Файлы лежат уже раскодированными в сырой PCM 48 кГц моно — ровно в
формате микшера. Поэтому в приложении нет ни MP3-декодера, ни
ресемплера, а звук просто копируется в буфер воспроизведения. При
подготовке срезана тишина по краям (в исходнике её была половина),
громкость выровнена до 0.45 от максимума и добавлено сглаживание на
краях, чтобы не щёлкало. Оба звука занимают 76 КБ.

Есть тест, который ловит подмену файлов на пустые, слишком длинные или
неоправданно громкие.

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 20 Jul 13:11
Правки интерфейса: всплывашка сообщений, меню за краем, плотная лента

Всплывашка с ответом и удалением мигала и не давалась в руки. Причина в
особенности Fyne: как только курсор заходит на кнопку внутри строки,
сама строка получает MouseOut, панель прячется, курсор снова оказывается
над строкой — и так по кругу. Теперь наведение считается по группе
виджетов (строка плюс кнопки) и панель прячется с небольшой задержкой,
чтобы пережить перескок курсора.

Меню по правому клику в правой колонке уезжало за край окна. Добавлено
ограничение позиции границами окна — для меню участника, сообщения,
канала, группы и всплывашки громкости.

Иконки микрофона и звука были чёрными на чёрном: currentColor в
статическом ресурсе Fyne не подставляется. Задан явный светлый цвет.

Лента сообщений стала компактнее: свой вертикальный лейаут вместо VBox,
который добавлял отступ между каждой парой элементов.

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

Удаление с зажатым Shift пропускает подтверждение, как в Discord.
Модификатор берём из события мыши: в Tapped его нет, поэтому запоминаем
на нажатии кнопки.

Память после этих правок: 163 МБ (было ~300 МБ до оптимизаций), 2.4%
процессора в покое.

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 20 Jul 12:49
Правки по замечаниям: ответы, удаление, громкость, шумодав, экономия …

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 20 Jul 12:08
Linux-сборка падала из-за отсутствия флага исполняемости у скрипта

scripts/package-linux.sh закоммитился как 100644, а workflow звал его
через ./scripts/... — получалось "Permission denied", и задача падала
ещё до компиляции. У macOS-скрипта флаг был, поэтому он собирался
нормально и разница не бросалась в глаза.

Флаг проставлен, плюс оба скрипта теперь вызываются через bash: если
режим файла когда-нибудь снова потеряется, сборка от этого не встанет.

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 20 Jul 11:38
Сборка релизов: 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

Choose a tag to compare

@github-actions github-actions released this 20 Jul 10:56
Кольцо говорящего вокруг аватарки и выбор звуковых устройств

Понять, кто говорит, по одному лишь цвету ника не получалось. Теперь
вокруг аватарки говорящего рисуется зелёное кольцо — и в списке
участников голосового канала, и в панели участников, и на своей
аватарке внизу. Кольцо есть всегда, но прозрачное, когда человек
молчит, иначе строка дёргалась бы в момент начала речи. У того, кто в
муте, кольцо не загорается.

Выбор микрофона и наушников: кнопка шестерёнки в панели профиля.
Раньше, если система выбрала не то устройство, починить это изнутри
приложения было нельзя. Выбранное запоминается между запусками; если
устройство выдернули, откатываемся на системное по умолчанию и не
падаем. Там же кнопка проверки звука.