Представляю первый релиз метронома IronTick. Это легковесный, точный, кроссплатформенный метроном, использующий фреймворк Qt6. Отличается тем, что генерирует непрерывный аудиопоток с кликами вместо того, чтобы воспроизводить отдельные клики по таймеру, как это делает большинство других программ-метрономов. Благодаря такому подходу, IronTick кликает намного стабильнее и точнее, даже при наличии большой фоновой нагрузки.
Возможности и особенности:
-
Высокая точность: стабильные щелчки, точное поддержание темпа.
-
Поддержка различных размеров: основные размеры (2/4, 3/4, 4/4, 6/8), а также возможность задания любого другого размера.
-
Визуализация: индикатор сильных и слабых долей.
-
Управление темпом: изменение темпа, запуск и останов метронома возможен при помощи одной клавиатуры, без мыши.
Какие проблемы решает
Я решил разработать это приложение, потому что столкнулся с серьезной проблемой большинства существующих программных метрономов — они часто не точно держат темп, пропускают клики. Ситуация сильно обостряется на слабых машинах при большой фоновой нагрузке. Когда я стал разбираться в причинах такого поведения, оказалось что типичный подход при реализации этих метрономов — создание таймера, на срабатывание которого вешается запуск воспроизведения короткого звука щелчка. Вот и ответ, поскольку это все работает в многозадачной ОС, таймеры в пользовательских процессах не гарантируют работы в реальном времени с приемлемой для музыканта точностью. Периодически, таймер срабатывает значительно позже нужного момента времени.
Эта проблема в IronTick решена очень просто — он синтезирует непрерывный PCM поток аудиосемплов, в котором точно в нужные места вставлены звуки кликов. Этот поток воспроизводится непрерывно звуковой картой, как любой аудио поток, например песня в аудиоплеере. У вас же песня в плеере не заикается периодически, независимо от того какая программа на переднем плане, и какая нагрузка? Вот и метроном, работающий по такому принципу, щелкает так же стабильно как аудио плеер воспроизводит трек. Для этого ему не нужен неточный таймер.
Вторая проблема, уже менее важная — как правило, неудобно менять темп, не выпуская гитару из рук. Поэтому, в IronTick из коробки сделано клавиатурное управление одной клавишей (именно одной, не надо зажимать «аккорды») для основных функций. Так же, сделан настраиваемый шаг увеличения/уменьшения темпа. Я использую это так — начинаю отрабатывать пассаж с медленного темпа, например 120 bpm, и периодически нажимаю клавишу J чтобы увеличить bpm на 5 единиц. Потом еще на 5, и так далее. Можно задать любой шаг. Нажать одну кнопку легко, не выпуская медиатор из рук.
Файлы
В рамках релиза подготовлен AppImage.
Программа написана на языке c++, лицензия – GPL 3.0 или более новая.
>>> Проект на GitHub












