Pull to refresh

Comments 15

пользователь загружает скор

Каво он загружает?

Юзер лоадит скор, какое слово тут непонятно?

Ага, именно, скор) Это один из форматов цифрового предстваления sheet music

Здравствуйте, Андрей. Спасибо за интересный взгляд изнутри. Я давно знаком с MuseScore, теперь вот узнал, как вы работаете над производительностью. У меня вопросы, может быть, слишком приземлённые. Это вы делали плеер на сайте, например, https://musescore.com/user/12461571/scores/3291706/piano-tutorial ? Вы рассматривали вариант загрузки SVG, а не PNG? Когда плеер играет, что это звучит mp3, midi? Я посмотрел network, но уловить там формат тяжело. В то же время, если бы вы проигрывали midi, то вам нужно было бы загрузить music-font, который весит около 2Мб. А такого размера в network я не нахожу. Как происходит выделение тактов во время проигрывания? На сервере, я так понимаю, вы подготовили некий формат данных, чтобы потом отрисовывать такты на клиенте. Вот меня интересует, как нашли x,y для всех тактов. Какой подход использовали. Всё это я спрашиваю, потому что сам недавно реализовал похожий плеер, и мне интересно, как это у вас сделано и почему вы выбрали то или иное решение. Если это коммерческая тайна, то заранее прошу прощения. Провоцировать на нарушение NDA у меня не было цели.

Везде SVG, играет mp3 или midi (через sound font) на выбор.

Нет вообще-то. Грузится вот этот PNG https://musescore.com/static/musescore/scoredata/g/8fbceb3e46eb0cf31b7f20922556d3f5ebcfa43d/score_0.png@0?no-cache=1621346013

Выбора "mp3 или midi" нет на сайте как опции.

Зачем вы вообще отвечаете, если не знаете? Или вы не вникли в вопрос. Я спрашивал про веб-плеер на сайте https://musescore.com/ , а не про open source продукт MuseScore.

Так тому и быть. Хотел как лучше.

PNG осталось у кучки старых скоров.

Mp3 или Midi можно выбрать в микшере. (если долго искать можно найти)

PS

Веб плеер и Piano Roll за моим авторством.

А, раз так. Извините. И как же тогда вы отрисовываете такты на клиенте? Откуда берёте x, y координаты?

Выбор mp3 или midi звучания как раз скрыт в микшере. Выбирая Synthesizer, вы будете слышать при проигрывании именно звук на основе midi.

А, как ранее отметил @JiLiZART, формат графики для отображения скора (png или svg) будет зависеть от того, на какой версии MuseScore редактора был создан скор. Если на старой, то png. Вот, например, относитетельно новый скор https://musescore.com/user/37107790/scores/7081694 - тут уже svg. А а скоры с png картинками мы точно не будем торогать, так как при конвертации исходных файлов скоров сейчас будут артефакты, а для нас важнее, чтобы пользователь получил именно правильный контент

Ясненько. Это очень круто сделано. Я сам тут делаю обучающий плеер, типа flowkey, но для баяна и аккордеона. Поэтому меня вся эта тема интересует.

Вот меня интересует, как нашли x,y для всех тактов

Тут все просто:

  • Есть массив ноты (у каждого из инструментов свой массивчик будет);

  • У каждой ноты есть длительность и начало по времени.

Всю эту информацию можно вытащить из самого midi файла

Затем нам остается расположить наши ноты на канвасе на основе вышеописанных данных. Ну и раскраить эти ноты для каждого истремента и руки.

Если Я где-то ошибся, то, думаю, @JiLiZART меня поправит, так как это его "детище")

Ого. Ну это очень сложно. Ведь это означает, что вы сами ноты рендерите? А в каком формате изначально ноты хранятся? Миди? Что-то я сомневаюсь... Скорее всего вы там какой-то движок используете LilyPond, Sibelius, Finale... А потом экспортируете в SVG и оттуда x, y выковыриваете.

Нет, изначально все храниться в формате mscz (musescore editor). А из него и midi можно получить и mp3 и svg...

А! Всё, я понял. У вас же свой редактор есть. Т.е. свой рендерер. Ну тогда понятно. Я остановился на Sibelius, но для меня это не принципиально. Основные форматы SVG, PNG и MIDI.

В решении подобных задач (оптимизация Core Vitals) я постоянно натыкаюсь на проблему GA и прочих сервисов метрики. Можете пожалуйста рассказать как у Вас реализована отдача подобных скриптов?

Sign up to leave a comment.

Articles