LINUX.ORG.RU

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

 , , ,

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

1

3

Представляю первый релиз метронома 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 ()
Последнее исправление: CrX (всего исправлений: 7)
Ответ на: комментарий от ales_boroda

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

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

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

ales_boroda
()

за программу респект, простенько, но со вкусом
и просоединюсь к остальным - под андроид было бы очень круто
и ещё подумай миди (я понимаю, что уже перебор для простой программы), что бы на контроллере удобное управление настроить, я обычно так запускаю для себя «продвинутый метроном» в рипере

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

Вопрос к знающим - под андроид уже существующие чем-то не устраивают? Точно надо именно это? Я могу сделать, но пока сомневаюсь что не хватает того что есть.

и ещё подумай миди

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

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

у меня стоит из фдродида chubby click, на минималках хватает, что там внутри не особо разбирался

z0idator ★
()
6 октября 2026 г.

Только дошли руки посмотреть. Прикольно! А можно опционально убирать выделение сильной доли? И вообще пропускать некоторые доли?

bbc69
()
Ответ на: комментарий от bbc69

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

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

По хорошему надо иметь возможность выставить для каждого тика одно из 3: или акцент или обычный или отсутствие звука

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

Нет, если сложный размер, пусть будет 6/8, то у него есть сильная доля (1) и относительно сильная (4) которая типа тоже сильная, но не настолько. Просто потому, что размер собран из двух 3/8. Строго говоря и в 4/4 третья доля - относительно сильная. Т.е. нужен акцент, полуакцент, обычный и тишина. Это немножко дебри, не знаю, надо ли туда копать.

bbc69
()
Ответ на: комментарий от bbc69

Так я именно про это

Клик делать по громкости, грубо говоря, среднее между кликом слабой и сильной доли. Я про громкость или акцентированность звука спрашивал.

James_Holden ★★★★★
() автор топика
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от James_Holden

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

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

Думал, у меня в телефоне так есть, но нет - там два звука. А вот в физической пищалке три.

bbc69
()
Ответ на: комментарий от bbc69

Мне кажется это оверхэд, но в целом если кто-то будет использовать, то почему бы и нет

greek_31 ★★
()
Последнее исправление: greek_31 (всего исправлений: 1)

Так же лично мне бы хотелось видеть такие фичи, посмотри в будущих версиях:

  • Возможность задавать режим авто-ускорения по 3 параметрам step, через сколько секунд ускорится и на каком темпе остановиться

  • Возможность ставить таймер на отключение.

  • Возможность установить количество нот на тик, т.е. на тик проиграть 2 ноты, триоль и т.д.

Возможно, если будешь реализовать такое, у метронома должно быть 2 режима: простой и про, не знаю.

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

Я вот тоже думал об этом. Но так можно триоли эмулировать.

bbc69
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.