Написал за вечер плеер для репетиций, который крупно показывает текст песни

  • Автор темы Автор темы maxo
  • Дата начала Дата начала

maxo

Active Member
10 Ноя 2007
434
82
28
Вчера я познал мощь искусственного интеллекта))
Хотел побаловаться с вайб-кодингом, при том что я не программист вообще. Для меня ИИ-шки это что-то типа джиннов, выполняющих желания, которые надо формулировать желательно почетче, а не так, как в известном анекдоте))

Я поющий гитарист, и мне по работе надо иметь возможность быстро разучивать разные песни с бэкинг-треками. Мне нужен был очень лёгкий плеер без лишних наворотов, который при проигрывании wav/mp3 показывает картинку с размеченным мной текстом песни из той же папки.

Причем картинка должна быть БОЛЬШОЙ (увы, возраст).
И еще она должна не вылезать за левую половину экрана, ибо на правой пасутся мои плагины-педальки.

Плеер должен быть СТРОГО с управлением клавишами:
- Открыть песню / Поиск песен cmd+O / cmd+F
- Перемотка на 10 сек вперед-назад стрелками вправо-влево (для репетиций с бэкинг-треками прямо мастхэв)
- Следующая/предыдущая песня стрелками вверх-вниз
- Пауза пробелом
- Стоп (ESC)

И всё.

Самого окна плеера не должно быть видно, зачем оно мне?

Я на маке, и встроенных в макос Quicktime и Preview хватило бы за глаза. Надо было только автоматизировать и повесить на горячие клавиши контроль над этими приложениями.

Итак, я попросил ИИшку, и она мне софт на Javascript написала за 3 минуты.
На вылов багов ушел вечер, но в багах виноват в основном я, так как плохо написал ТЗ.

Это первое приложение, написанное по моим кастомным хотелкам. Я назвал его SongLyr. Для меня сюрпризом стало осознание, насколько мне его не хватало - насколько неудобно было репетировать с бэками раньше и насколько стало удобно сейчас.

В общем, сижу и раздумываю - может, мне попросить у джинна дописать к этому плееру плагиновый хост о четырех дорожках и с переключением цепочек эффектов по MIDI?

Сам софт тут, в zip-файле.
У меня MacOS Sequoia, тестил на ней.
 
Последнее редактирование:
1.9.15 - навел порядок в структуре меню

Функционал не менял по сравнению с 1.9.13, просто сделал интерфейс более логичным:
- Убрал меню Controls (по факту оно дублировало меню Hotkeys)
- Убрал второе меню File
- Передвинул переключалку интерфейсного языка внутрь меню PressNext Live

Ссылка https://github.com/m10071978/pressn...45edb1342f88ea4ba94/PressNext_Live_1_9_15.zip
 
В версии 2.0.2 реализована ещё одна моя давняя идея — возможность «зашивать» в название песни автоматические переключения пресетов в программе-педалборде. Тестировал в Logic Pro.

PressNext распознаёт в имени файла пять команд: >, >>, <, << и 0 — точку отсчёта. Для каждой из них можно заранее назначить свою клавиатурную команду. Например, >>5 означает: перейти на точку отсчёта, а затем пять раз выполнить команду >>. Это удобно для автоматического выбора нужного пресета в банке сразу после запуска песни.

Дальнейшие переключения задаются прямо в названии файла в формате:

минуты-секунды-миллисекунды + команда

Например:

00-42-450<<1

означает: на отметке 42,450 секунды выполнить команду << один раз.

В одну песню можно записать множество таких переключений — практическое ограничение связано в основном с максимальной длиной имени файла.

Получить точный тайминг просто: слушаем песню и в момент, когда обычно нажали бы педаль, нажимаем, например, Cmd+T. PressNext копирует в буфер обмена точное время в формате 02-04-125, которое можно сразу вставить в название файла.

Да, подготовка названия выглядит немного громоздко. Зато сделать её нужно только один раз. Для вокалиста-гитариста это означает возможность во время нужных песен вообще не отвлекаться на переключение пресетов ногами — PressNext сделает всё автоматически.

 
Проведена большая работа над оптимизацией считывания горячих клавиш из имени файла песни. Теперь указанные Вами в названии файла автоматические смены пресетов привязаны к соответствующим моментам с точностью примерно 10 мс. Вряд ли добьётесь лучшего результата ногой вживую, если Вы конечно не человек-метроном)))

 
Перевел часть кода в нативный для мака C++, чтобы сделать автоматические переключения пресетов по таймкодам, зашитым в именах песен, максимально точными. Написал плагин для Logic, работающий в контакте с основным софтом, заранее ловящий и заглушающий треск, который может возникать при автоматическом переключении пресетов с помощью прыжков по маркерам трека, где применена автоматизация плагинов типа ON/OFF.

В связи со всем перечисленным софт пришлось переименовать в Logic Onstage Helper.

 
похоже тему пора переименовать, это уже не за вечер :D
 
  • Like
Реакции: maxo
Угу, начиналось как спонтанное баловство, в итоге превратилось в рабочий инструмент который я использую каждый день
 
  • Like
Реакции: Zvuk-Ach
V 0.6.7.12 Stable Preview: теперь везде нативный C++.
JavaScript остался только в меню приложения. Никакого использования системных QuickTime и Preview. Плеер, окно просмотра текста песен и движок автоматического переключения пресетов полностью переписаны с нуля на C++. Окна плеера и просмотра могут подстраиваться под размер окна Logic. AU-плагин для Logic, который глушит щелчки и треск при автопереключении пресетов, остался без изменений (версия 0.4), так как он и так работает.


Такое впечатление, что скоро даже могу выложить в Appstore. Главное потестить подольше.
 

Сейчас просматривают