Музыкальные проекты

Навигация по проекту

1
new album
COMING SOON
2
album release
ALIENATION
3
single release
WORST WAY
4
album release
TOTAL INSANE
5
album release
STEEL HARBOUR
stat
creating status
PLANNING
about
Project info
ABOUT

среда, 15 июля 2026 г.

Здесь есть обновление

Так, я тут еще немного докрутил мобильную часть этой творческой платформы (blogspot). Случайно выяснилось, что с телефона не работает плеер (скрипт просто не запускался), нет каруселей с навигацией а еще внизу страницы наблюдаются какие-то странные белые прямоугольники.
Плееру добавил параметр, запускающий его в мобильной версии. Теперь все мои старания (и страдания) доступны с телефона. Навигацию добавил простую и сделал ее доступной только в мобильной версии. А то пользователям приходилось перебирать записи в поисках релизов. Теперь в топе на них есть прямые ссылки.
Ну а прямоугольники после некоторых манипуляций были опознаны как ссылки для переходов на главную страницу и между порциями постов. Пришлось немного подкрутить css в этой области, чтобы это стало очевидно не только мне как админу, а всем заглянувшим на огонек.
p.s. по нейрорелизу есть продвижение. Осталось всего два текста до завершения.

четверг, 9 июля 2026 г.

И еще технические новости

Еще одна позитивная техническая новость. Вчера удалось заставить прототип приложения Inspirer зазвучать. Пока в основной проект я этот момент не перенес, как и то, ради чего создавался этот прототип, но результат уже вполне себе интригующий.
Под прототипом я подразумеваю тестовое приложение, в котором гораздо удобнее, чем в основном проекте, было писать элемент управления для вывода нот (и не только, у него есть и обратная связь, а еще я в нем прописал математические функции, которые будут считать длительности в тактах), также в нем создавал и доводил до ума т.н. 'Piano Roll', элемент управления с клавишами от рояля. И на последнем, собственно, налаживал звучание, т.к. именно к нему было удобнее всего привязывать эту часть функционала.
Теперь небольшое опровержение. Я говорил, что у меня есть два приложения в исходниках под анализ, извлечение звукового функционала и перенос. Одно является плеером (что мне не особо подходило, но в принципе, читая код C++, я понимал, как можно это все вытащить на поверхность и использовать в своих корыстных целях), второе же - эмулятор пианино (что подходило мне куда больше, но на первый взгляд казалось переусложненным всякими ненужными мне дополнениями). В общем, оба отложены на потом ))
Я тут нашел еще одно приложение в исходнике, типа самое-самое простое (и оно таковое и есть). И в нем все сделано на редкость изящно и удобно для переноса. Настолько, что мне хватило пары часов, чтобы в нем разобраться, перенести из него функциональную часть в прототип, адаптировать вызовы и запустить это все. Хотя я был уверен, что у меня уйдет не меньше пары недель для запуска звукового блока, исходя из предварительного анализа тех двух приложений.
Вообще, я не исключаю, что вернусь к тем двум, даже скорее, к плееру, т.к. он гораздо функциональнее. Но это потом, может уже к 4-й версии Inspirer. А может и позже. На данный момент текущего функционала звукового движка мне достаточно (надеюсь).
Сомнения у меня из-за возможных подводных камней. В частности, звук хочу пускать еще и через различные наушники, как проводные, так и беспроводные, а это можно проверить только на реальном устройстве. Но проверить надо обязательно.
Зато другую часть сомнений мне удалось рассеять. Речь про многоканальность. Пример показывал отправку нескольких нот (аккордов) в звук, и это работало. Но они все шли одним инструментом. И у меня была мысль создать несколько экземпляров движка, по одному на дорожку. Но при адаптации вызова я засомневался, что так вообще получится. Однако, и это важно, Inspirer должен предусматривать многодорожечность. И я провел несколько тестов, отправляя одновременно несколько нот на разные инструменты. И это сработало. Это означает, что одним экземпляром вполне можно обойтись, что хорошо с точки зрения оптимизации. Короче, я полноценно вернулся к разработке Inspirer, результаты мне нравятся, процесс идет.
p.s. обещанный релиз нейросетевой музыки застрял по части текстов. Не знаю, чего мне не хватает, но пока не получается их дописать. Как допишу - обязательно сообщу.

суббота, 4 июля 2026 г.

Еще одна техническая новость

Итак, кажется, получилось. По крайней мере, последние тесты показали, что проделанная работа была проделана не зря. Плееры работают, скрипт действует корректно. И даже некоторые внезапно обнаруженные проблемы тоже решаемы.
По порядку. Самое главное достижение, как по мне, я свел обертку к одной строке. То есть, теперь для запуска плеера не нужно копипастить всю его разметку, достаточно одной строки div с указанием класса и несколькими параметрами, главный из которых - id плейлиста в библиотеке iBroadcast. На этом все, остальную часть разметки (которая у всех будет одинаковой!) скрипт запихнет сам. К тому же, это сильно упростит возможную будущую доработку скрипта. Дело в том, что для переделки алгоритма пришлось переломать еще и разметку. Так вот, чтобы больше не бегать по постам и не искать, где там еще надо что-то поправить, теперь код разметки зашит в самом скрипте и если её надо будет поправить, будет достаточно исправления в самом скрипте.
Дальше, я отказался от использования id элементов, как это было в предыдущей рабочей версии. Это устранило ошибки, возникающие от самого наличия нескольких плееров с однинаковым id на странице (это когда несколько постов с релизами на одной странице). Теперь для поиска используется class, поиск идет по всем плеерам, сколько их есть на странице, столько скрипт и обрабатывает.
Переписал и блок стилей css, и сам скрипт. От оригинального кода в скрипте вообще мало что осталось, я сознательно писал в более удобном мне стиле. Предыдущая версия собиралась, скажем так, из кусков, оттуда там был некоторый бардак. Где-то обработчики событий задавались прямо в разметке, где-то цеплялись скриптом и т.д. Сейчас все одинаково задается. Самое забавное то, что пользователи этого не заметят, я полностью сохранил прежний внешний вид. А css переписать пришлось из-за перехода с id на class.
Интересный момент, я говорил в прошлом посте, что единый плеер, исключающий воспроизведение нескольких треков одновременно получится сам по себе. Это оказалось не так, первые же тесты показали, что прекрасно запускается какофония из треков, было бы желание. Однако, я все-таки реализовал защиту от какофонии, так что в пределах страницы на треки можно тыкать как угодно, играть всегда будет только один.
И последнее, самое неочевидное, что всплыло внезапно и оказалось несколько проблематичным к исправлению. Отказоустойчивость. Пока оно все работает - оно работает. Но бывает, что какой-то из плееров не прогружается. И приходится обновлять страницу. Еще веселый момент, токен доступа к iBroadcast имеет срок жизни час. Соответственно, если загрузить страницу, подождать час и попытаться проиграть трек - будет тишина, плюс, сам плеер будет вести себя неадекватно. Решение придумал простое. Переделал обработку ошибок в блоке запроса плейлиста (откуда ссылки на треки получаются с как раз токенами), и сделал проверку на ошибку на выходе из этого запроса. И если выпадает ошибка - поставил перезапуск запроса с двухсекундной задержкой. Причем, эта штука вызывается и в случае ошибки воспроизведения, только там есть проверка, если плейлист пустой, значит идет первичная загрузка плейлиста, если плейлист не пустой - попытка проиграть музыку провалилась и надо обновить токены в плейлисте. И это, пришлось еще в случае такого провала дать пользователю понять, что надо чуть подождать, в плеере возвращаются надписи, как до загрузки.