LINUX.ORG.RU

IronTick 1.0: стабильный кроссплатформенный метроном

 , , ,

IronTick 1.0: стабильный кроссплатформенный метроном

0

1

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

Возможности и особенности:

  1. Высокая точность: стабильные щелчки, точное поддержание темпа.

  2. Поддержка различных размеров: основные размеры (2/4, 3/4, 4/4, 6/8), а также возможность задания любого другого размера.

  3. Визуализация: индикатор сильных и слабых долей.

  4. Управление темпом: изменение темпа, запуск и останов метронома возможен при помощи одной клавиатуры, без мыши.

Какие проблемы решает

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

Эта проблема в IronTick решена очень просто — он синтезирует непрерывный PCM поток аудиосемплов, в котором точно в нужные места вставлены звуки кликов. Этот поток воспроизводится непрерывно звуковой картой, как любой аудио поток, например песня в аудиоплеере. У вас же песня в плеере не заикается периодически, независимо от того какая программа на переднем плане, и какая нагрузка? Вот и метроном, работающий по такому принципу, щелкает так же стабильно как аудио плеер воспроизводит трек. Для этого ему не нужен неточный таймер.

Вторая проблема, уже менее важная — как правило, неудобно менять темп, не выпуская гитару из рук. Поэтому, в IronTick из коробки сделано клавиатурное управление одной клавишей (именно одной, не надо зажимать «аккорды») для основных функций. Так же, сделан настраиваемый шаг увеличения/уменьшения темпа. Я использую это так — начинаю отрабатывать пассаж с медленного темпа, например 120 bpm, и периодически нажимаю клавишу J чтобы увеличить bpm на 5 единиц. Потом еще на 5, и так далее. Можно задать любой шаг. Нажать одну кнопку легко, не выпуская медиатор из рук.

Файлы

В рамках релиза подготовлен AppImage.

Программа написана на языке c++, лицензия – GPL 3.0 или более новая.

>>> Проект на GitHub

★★★★★

Проверено: dataman ()
Последнее исправление: hobbit (всего исправлений: 6)
Ответ на: комментарий от ales_boroda

Собрано в Ubuntu 24.04, в более старых версиях дистрибутивов, Qt Multimedia сломан, к сожалению. В Ubuntu 22.04 у меня не работало, в Debian 13 не пробовал собирать.

James_Holden ★★★★★
() автор топика
Ответ на: комментарий от James_Holden

Вобщем по инструкции с гита проекта прога собралась и стартует. Appimage не собирал. Debian 13.

ales_boroda
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.