СПОСОБ, УСТРОЙСТВО И КОМПЬЮТЕРНЫЙ ПРОГРАММНЫЙ ПРОДУКТ ДЛЯ ПРОКРУТКИ ПАРТИТУРЫ
METHOD, DEVICE AND COMPUTER PROGRAM PRODUCT FOR SCROLLING MUSICAL SCORE

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к области отображения и прокрутки информации на экране и, в частности, к способам и системам для отображения и прокрутки музыкальных композиций на экране.
УРОВЕНЬ ТЕХНИКИ
Хорошо известно, что музыканты иногда используют виртуальные или электронные партитуры вместо обычных бумажных. В числе прочих преимуществ, электронные партитуры позволяют значительно экономить на расходе бумаги и занимают меньше места.
Один из основных вопросов, связанных с электронными партитурами, заключается в том, как пользователю, играющему на музыкальном инструменте, прокручивать виртуальную нотную тетрадь назад или вперед. Возможно, первым схожим решением, хотя и не имеющим отношения к партитурам, стал так называемый телесуфлер. Телесуфлер представляет собой устройство на основе дисплея, отображающий текст в электронном виде для человека, который должен его прочитать. Пользователю телесуфлера не нужно смотреть вниз, чтобы читать свои заметки. Так создается впечатление, что он запомнил речь. Поэтому телесуфлеры особенно полезны на телевидении, например, для ведущих новостных программ. Развитие программного обеспечения привело к созданию современных телесуфлеров, работающих на настольных компьютерах, ноутбуках или планшетах и позволяющих говорящему контролировать скорость и плавность своей речи.
Стоит также отметить, что музыкальный язык очень специфичен и несравним ни с одним из других языков. Например, оцифровка партитур - пока еще не решенная проблема (по меньшей мере, ее не удалось решить без жестких ограничений). По сравнению с процессом оцифровки обычного текста, который широко используется благодаря системе оптического распознавания символов (OCR), существующий эквивалент для музыки - система оптического распознавания музыкальных нот (OMR) демонстрирует не столь высокие результаты. Это объясняется тем, что ошибку в слове можно легко обнаружить с помощью логических механизмов, работающих по принципам человеческого мозга: если буква пропущена или указана неверно, это не влияет на распознавание слова, так как оно может быть восстановлено по контексту. Однако музыкальную ноту невозможно угадать по контексту. Например, некоторые исследования показали, что процент ошибок при оцифровке партитур составляет около 40% для рукописных партитур и около 24% для нерукописных партитур (Дэвид Карретеро-де-ла-Роча, дипломная работа «Sistema de reconocimiento de partituras musicales», Мадридский университет имени Карлоса III).
Современные решения для отображения электронных партитур основаны на системе с постраничной навигацией. Это означает, что электронные партитуры сохраняются постранично на носителе информации. Устройство отображения прокручивает страницы статически, одну за другой. Страница показывается в течение определенного промежутка времени и исчезает с экрана, после чего появляется следующая страница. В конце этого промежутка времени фрагмент музыкальных нот, показанный на экране (то есть, страница или слайд) автоматически заменяется следующим фрагментом музыкальных нот (то есть, следующей страницей или слайдом), который в свою очередь остается на экране в течение определенного промежутка времени. Например, в американской патентной заявке US 7098392B2 описан способ отображения партитур на экране, реагирующем на музыкальные данные, сохраненные в музыкальной базе данных. В этом способе сначала определяется страница с изображением партитуры из музыкальной базы данных; затем определяются упорядоченные логические разделы внутри этой страницы; затем полученные данные о сопоставлении сохраняются на запоминающем устройстве для выборочного извлечения; и после этого на экране отображается партитура в соответствии с данными о сопоставлении и хранении. Партитуры всегда отображаются в статичном виде. Другими словами, прокрутка партитур выполняется по страницам или по слайдам, то есть страница (или раздел, или слайд) отображается в течение определенного промежутка времени и затем резко исчезает с экрана, после чего сразу появляется следующая страница (или раздел, или слайд). Это означает, что ноты не перемещаются и не прокручиваются в непрерывном режиме, а статически отображаются в течение определенного промежутка времени в виде страниц (разделов или слайдов). Таким образом, музыкант не может заранее прочитать партитуры, которые еще не проиграны. Когда он играет последние ноты, отображаемые на экране, он не может заранее прочитать следующие такты/ноты, которые появятся на следующей странице/слайде/разделе.
Проблема, связанная с определением скорости прокрутки виртуальных партитур для пользователя, играющего на музыкальном инструменте, рассматривалась ранее. Другими словами в музыкальном мире существует неизбежная необходимость прокрутки музыкальных нот в соответствии с реальным темпом исполнения музыканта, в соответствии с темпом, задаваемым дирижером, или в соответствии с темпом, определенным композитором в самой партитуре.
Например, в американском патенте US 8530735 B2 описан способ отображения партитур на экране, в котором темп исполнения композиции музыкантом определяется, пока фрагмент музыкальных нот композиции отображается на экране и музыкант играет на своем инструменте. После определения темпа исполнителя вычисляется промежуток времени, необходимый музыканту на исполнение отображаемого фрагмента музыкальных нот. В конце этого периода фрагмент музыкальных нот, отображаемый на экране, автоматически заменяется последующим фрагментом музыкальных нот. Другими словами описанный способ работает на постраничной основе.
Такое изобретение имеет несколько ограничений. Основное ограничение заключается в том, что это изобретение применимо только к прокрутке музыкальных нот в реальном темпе исполнения музыканта. В частности, оно неприменимо в ситуациях, когда требуется адаптация к темпу, который задается композитором (или определен в примечаниях к партитуре). Еще один недостаток такого способа, а также любого другого общепринятого способа, основанного на постраничном выводе, заключается в том, что он не позволяет управлять повторами, которые так часто встречаются в партитурах. Это означает, что для повтора группы музыкальных нот музыканту потребуется вручную вернуться к началу группы.
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Объектом настоящего изобретения является предоставление способа прокрутки партитур на мониторе и экране, устраняющего описанные недостатки.
В соответствии с аспектом настоящего изобретения предоставляется способ для прокрутки партитуры на экране устройства, содержащий следующие этапы: загружают файл с цифровой партитурой в область памяти указанного устройства, причем указанная партитура представлена в цифровом формате для представления музыкальной нотации; отображают множество нот из указанной партитуры на экране. Способ дополнительно содержит следующие этапы: прокручивают указанную партитуру непрерывным образом путем перемещения нот, отображаемых на экране, таким образом, чтобы следующие музыкальные ноты начинали постепенно появляться на экране, а уже прокрученные ноты начинали постепенно исчезать с экрана; регулируют скорость прокрутки в соответствии с отображаемыми нотами и темпом, причем указанный темп содержит справочную музыкальную фигуру, в отношении которой могут быть представлены указанные отображаемые ноты, а также значение, определяющее количество справочных музыкальных фигур, которые должны быть исполнены за единицу времени.
note_i
В частном случае осуществления изобретения скорость прокрутки вычисляют следующим образом: вычисляют время Т, необходимое для исполнения нот, отображаемых на экране за определенный момент времени в соответствии со следующей формулой:  где N - общее количество нот, отображаемых на экране для последовательного исполнения, которое считывается с цифровой партитуры, a T = (количество справочных цифровых фигур в note_i) / значение темпа; получают с устройства размеры экрана и тем самым рассчитывают пространство, на котором будут отображаться указанные ноты; рассчитывают скорость прокрутки на основе указанного расчетного времени Т, требуемого для исполнения отображаемых нот, и указанного рассчитанного пространства, на котором будут отображаться указанные ноты, и непрерывно прокручивают партитуру с рассчитанной ранее скоростью; повторяют указанные расчеты и регулируют скорость прокрутки каждый раз, когда новая нота появляется на экране.
В частном случае осуществления изобретения цифровую партитуру прокручивают либо вертикально, либо горизонтально, причем при использовании вертикальной прокрутки отображаемые ноты перемещаются по экрану снизу вверх, а при использовании горизонтальной прокрутки отображаемые ноты перемещаются по экрану справа налево.
В частном случае осуществления изобретения темп выбирают из следующей группы темпов: в соответствии с реальным темпом исполнения музыканта, в соответствии с темпом, определенным в партитуре, или, когда группа музыкантов играет вместе, в соответствии с темпом, задаваемым одним из музыкантов.
В соответствии с другим аспектом настоящего изобретения предоставляется способ прокрутки партитуры на экране устройства. Способ содержит следующие этапы: загружают файл с цифровой партитурой в область памяти устройства, причем партитура содержит множество тактов; отображают по меньшей мере один такт из партитуры на экране; прокручивают партитуру непрерывным образом путем отображения на экране следующих музыкальных тактов, когда уже прокрученные такты исчезают с экрана; регулируют скорость прокрутки относительно отображаемых тактов в соответствии с темпом и количеством ударов, образующих такт. Темп выбирают из следующей группы темпов: в соответствии с реальным темпом исполнения музыканта, в соответствии с темпом, определенным в партитуре, или, когда группа музыкантов играет вместе, в соответствии с темпом, задаваемым одним из музыкантов. Количество ударов, образующих такт, выбирают из следующей группы: в соответствии с количеством ударов, образующих такт, задаваемый музыкантом, в соответствии с количеством ударов, образующих такт, определенным в цифровой партитуре, или, когда группа музыкантов играет вместе, в соответствии с количеством ударов, образующих такт, задаваемый одним из музыкантов.
measure
_
i
measure
_
i
measure
_
i
В частном случае осуществления изобретения цифровую партитуру прокручивают вертикально. В этом случае скорость прокрутки предпочтительно вычисляют следующим образом: вычисляют время Т, необходимое для исполнения по меньшей мере одного указанного такта, в соответствии со следующей формулой: , где N - общее количество тактов, отображаемых на экране для последовательного исполнения, которое считывается с цифровой партитуры, a T = n_beats / tempo, где «tempo» - это либо темп, определенный в цифровой партитуре, либо темп, задаваемый пользователем, a n_beats - это количество ударов, образующих количество тактов «i», причем указанное количество считывается с цифровой партитуры или задается пользователем; получают с устройства размеры экрана и тем самым рассчитывают пространство, на котором будет отображаться по меньшей мере один такт; рассчитывают скорость прокрутки на основе указанного расчетного времени Т, требуемого для исполнения отображаемых на экране нот, и рассчитанного пространства, на котором будут отображаться ноты, и прокручивают партитуру с рассчитанной ранее скоростью; повторяют расчеты и регулируют скорость прокрутки при каждом обновлении экрана.
k
1
2
K
av
av
av
В более конкретном варианте осуществления с вертикальной прокруткой, в котором множество нотных линеек K отображается на экране, каждая из линеек содержит по меньшей мере такт Mk, количество тактов в линейке является переменным, скорость прокрутки рассчитывается следующим образом: вычисляют время T, необходимое для исполнения каждой нотной линейки, отображаемой на экране следующим образом: , где k изменяется от 1 до K, K - общее количество линеек, отображаемых на экране, Mk - количество тактов в линейке k, a M М … Mk … M считываются с цифровой партитуры; вычисляют общее время Т, необходимое для исполнения Mk линеек, отображаемых на экране следующим образом: ; вычисляют среднее время T на линейку: ; округляя указанное время T до меньшего натурального числа; вычисляют скорость прокрутки на основе указанного рассчитанного времени T, необходимого для исполнения тактов, отображаемых на экране, и указанного рассчитанного пространства, на котором будут отображаться указанные такты, и прокручивают партитуру с рассчитанной ранее скоростью; повторяют расчеты и регулируют скорость прокрутки при каждом обновлении экрана.
measure
_
i
measure
_
i
measure
_
i
В альтернативном варианте осуществления цифровую партитуру прокручивают горизонтально. В этом случае скорость прокрутки предпочтительно вычисляют следующим образом: каждый раз, когда такт i начинает отображаться на экране: вычисляют время Т, необходимое для исполнения этого такта следующим образом: T = n_beats / темп, где «темп» - это либо темп, определенный в цифровой партитуре, либо темп, задаваемый пользователем, а n_beats - это количество ударов, образующих количество тактов «i», причем указанное количество считывается с цифровой партитуры или задается пользователем; получают с устройства длину экрана и тем самым рассчитывают пространство, на котором будет отображаться такт i; считывают с цифровой партитуры длину такта i; рассчитывают скорость прокрутки путем деления суммы пространства, на котором будет отображаться этот такт и длины этого такта на расчетное время Т, необходимое для исполнения указанного такта; и прокручивают партитуру непрерывным образом с рассчитанной ранее скоростью.
В частном варианте осуществления способ дополнительно содержит следующие шаги: в цифровой партитуре определяют по меньшей мере один знак, определяющий повторение одного музыкального фрагмента; копируют фрагмент, который необходимо повторить; вставляют в файл необходимое количество повторений, определенное по меньшей мере одним знаком, в каскадном виде, что позволяет музыканту играть музыку в линейном виде без необходимости возвращаться назад в цифровой партитуре.
В конкретном варианте осуществления способ может быть использован множеством пользователей, играющих одновременно одинаковую партитуру, при этом цифровая партитура будет отображаться на устройстве каждого пользователя.
Предпочтительно цифровая партитура имеет формат MusicXML. В качестве альтернативы можно использовать формат Standard MIDI File (SMF) или формат MXL.
В соответствии с другим аспектом настоящего изобретения предоставляется устройство. Устройство содержит средства для использования ранее использованного способа. Это устройство может быть персональным цифровым помощником (PDA), портативным считывающим устройством, планшетом, сотовым телефоном или любым устройством, содержащим запоминающее устройство, процессор и экран.
В соответствии с заключительными аспектами настоящего изобретения предоставляется компьютерный программный продукт, содержащий команды/код компьютерной программы для выполнения вышеописанного способа. Также предоставляется считываемые компьютером запоминающее устройство/носитель, хранящие команды/код программы для выполнения вышеописанного способа.
Дополнительные преимущества и особенности настоящего изобретения станут очевидными из следующего подробного описания и будут частично рассмотрены в прилагаемой формуле.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для более полного описания настоящего изобретения предоставляется набор чертежей. Указанный чертежи являются неотъемлемой частью настоящего изобретения и иллюстрируют вариант осуществления настоящего изобретения, который должен рассматриваться не как ограничивающий объем настоящего изобретения, а как пример его реализации. Чертежи содержат следующие фигуры:
На Фигуре 1 показана схема горизонтальной прокрутки (смещение) такта.
На Фигуре 2 показана схема вертикальной прокрутки такта.
На Фигуре 3 показан пример вертикальной прокрутки целой партитуры.
На Фигуре 4 показан пример горизонтальной прокрутки целой партитуры.
На Фигурах 5A-5D показан пример (четыре последовательности) вертикальной прокрутки, в котором наглядно продемонстрирована непрерывность прокрутки.
На Фигурах 6А-6Е показан пример (четыре последовательности) горизонтальной прокрутки, в котором наглядно продемонстрирована непрерывность прокрутки.
На Фигуре 7 показана виртуальное представление непрерывной прокрутки согласно изобретению, которая явно отличается от обычной постраничной прокрутки.
ОПИСАНИЕ СПОСОБА РЕАЛИЗАЦИИ ИЗОБРЕТЕНИЯ
В настоящем описании термин «содержит» и его вариации (например, «содержащий» и т.д.) не должны толковаться как исключающие возможность наличия дополнительных элементов, этапов и т.д. в описанных понятиях.
В контексте настоящего изобретения термин «приблизительно» и его вариации (например, «приблизительный» и т.д.) следует понимать как указание значений, очень близких к упомянутому термину. Иначе говоря, отклонение от точного значения в разумных пределах должно быть допустимо, так как специалист в данной области техники понимает, что такое отклонение от указанных значений неизбежно из-за погрешностей измерений и т.д. То же самое относится к терминам «около», «примерно» и «по существу».
Настоящее описание не должно толковаться в ограничительном смысле, оно приведено исключительно с целью описания общих принципов настоящего изобретения. Следующие варианты осуществления настоящего изобретения будут описаны в качестве примера со ссылкой на вышеупомянутые чертежи, на которых изображены устройства и результаты в соответствии с настоящим изобретением.
Способ, описанный в настоящем документе, главным образом, предназначен для использования на электронном устройстве, таком как персональный цифровой помощник (PDA), портативное считывающее устройство, планшет, сотовый телефон или любое устройство, содержащее запоминающее устройство, процессор и экран. Способ предпочтительно выполняют в виде программного приложения. Кроме того, этот способ предназначен для одновременной работы на нескольких таких устройствах, например, во время выступления оркестра или другой группы музыкантов. В этой ситуации одно из устройств работает как «ведущее», а остальные устройства с ним синхронизируются. В этом контексте термин «синхронизированный» означает, что ведущее устройство определяет, на каком месте партитуры (например, определенный такт) находятся все остальные устройства (хотя на экранах этих устройств могут отображаться разные ноты или разное количество нот) и/или выбирает темп исполнения.
В контексте настоящего изобретения термины «система» и «линейка», относящиеся к партитуре, являются взаимозаменяемыми. Строго говоря, музыкальная линейка представляет собой нотный стан («pentagrama» на испанском языке), соответствующий одному инструменту, а музыкальная система («sistema» на испанском языке) включает в себя несколько линеек, относящихся к одному фрагменту музыки, каждая из которых соответствует либо определенному инструменту, либо руками пианиста, либо музыке, которая должны быть исполнена на определенных инструментах, использующих системы. Как правило, партитура дирижера содержит системы, а партитуры музыкантов, играющих на разных инструментах, содержат линейки (нотные станы).
Аналогичным образом, в данном контексте, термин «партитура» используется для обозначения как нотной тетради, используемой дирижером и содержащей одновременно все звуки, которые должны создавать все музыканты в групповом исполнении (на испанском языке «partitura»), так и нотной тетради музыканта, играющего на одном инструменте (на испанском языке «particella», на английском языке «part»).
В отличие от традиционных способов прокрутки партитур, основанных на формате страницы, настоящий способ позволяет читать музыкальные ноты последовательно, как они и написаны. Бумажные нотные тетради включают нотные линейки, расположенные горизонтально на странице. В каждой строке есть единицы поменьше, так называемые такты (на испанском языке «compases»). Такт - это музыкальная структура, ограниченная вертикальными тактовыми чертами. Такт упрощает чтение партитуры и ее исполнение. Тактовые черты ограничивают группу музыкальных нот.«Обозначение такта» определяет количество ударов в каждом такте. «Обозначение такта» и «обозначение темпа» позволяют рассчитать длительность каждого такта. В каждом такте есть отдельные музыкальные ноты, изображенные множеством различных символов.
Музыкальные метрические фигуры или просто музыкальные фигуры представляют собой отдельные знаки, включая обозначения звуков («ноты») и обозначения тишины («паузы»). Каждый знак (примечания и паузы) представляет определенный промежуток времени в пределах такта (продолжительность звука и продолжительность тишины, соответственно).
Между продолжительностью различных музыкальных фигур (нот и пауз) существует взаимосвязь. Взаимосвязь между неполным списком музыкальных нот следующая: 1 целая нота (Semibreve) = 2 половинные ноты (Minim) = 4 чертвертных нот (Crotchet) = 8 восьмых нот (Quaver) = 16 шестнадцатых нот (Semiquaver) = 32 тридцать две ноты (Demisemiquaver) = 64 шестьдесят четвертых ноты (Hemidemisemiquaver) = 128 сто двадцать восьмых нот (Semihemidemisemiquaver) = 256 двести пятьдесят шестых нот = 512 пятьсот двенадцатых нот. Также существует: 1 лонга = 2 двойные целые ноты (Breve) = 4 целых ноты (Semibreve). Первое отношение имеет соответствующее обозначение тишины (паузу) такой же продолжительности. Как уже упоминалось, это только примерный список наиболее часто используемых нот. Некоторые ноты не включены в этот список. Кроме того, существуют нерегулярные группы фигур («триоль»), в которых группа нот определенной фигуры равнозначна той же группе фигур за исключением одной с точки зрения продолжительности времени. Например: триплет восьмой ноты = две восьмые ноты.
Таким образом, каждая обычная нота может быть разделена на определенное количество «справочных музыкальных фигур». «Справочная музыкальная фигура» (далее «справочная фигура») может быть любой из предыдущих нот (целой, половинной, четвертной, восьмой и т.д.), которая выбрана в качестве справочной для партитуры или фрагмента партитуры. Например, если в качестве «справочной фигуры» выбрана шестнадцатая нота, целая нота состоит из шестнадцати справочных фигур. Если в качестве «справочной фигуры» выбрана четвертная нота, целая нота состоит из четырех справочных фигур.
Продолжительность пустого знака такта, относящегося к целому пустому такту (без нот), равна определенному количеству ударов (указанному в партитуре или дирижером (музыкантом)).
Темп, который обычно выражается в ударах в минуту (ВРМ), контролирует скорость, с которой исполняются музыкальные ноты в линейке (или в целой партитуре). В цифровой партитуре темп определяется или выражается в виде «справочной фигуры» и «значения» (в частности, на музыкальном языке «справочная фигура = значение»), в которой «значение» определяет, сколько раз «справочная фигура» (или любые ее эквиваленты) должна быть исполнена в течение одной минуты. Например, если определен темп «четвертная нота = 50» ВРМ, это означает, что в минуту играется 50 четвертных нот (или эквивалентных фигур). Темп указывается в партитуре и может меняться в пределах одной партитуры. Темп также может быть задан дирижером или исполнителем. В обычных партитурах «темп», как правило, указывается в текстовом виде (например, «аллегро»). Когда обычные партитуры (на бумаге) преобразуют в цифровые, общепринятые формулировки не распознаются и «темп» выражается в описанном выше формате «справочная фигура = значение». Например, «аллегро» условно выражается как «четвертная нота = 120» ВРМ.
Партитуры должны быть представлены в цифровом формате. Формат партитур обеспечивает представление и понимание музыкальной нотации, то есть позволяет однозначно получить все символы, из которых состоит партитура. Другими словами, необходимо использовать формат музыкальной нотации, отличающийся от других цифровых форматов, таких как PDF, TIFF, JPG, BMP, EPS, PostScript и др. В предпочтительном варианте осуществления партитуры представляются в форматах MusicXML, Standard MIDI File (SMF) или MXL, которые широко используются для представления музыкальной нотации. Например, формат MusicXML является стандартным форматом на основе XML для представления музыкальной нотации, имеющим полную и стандартную документацию. Стандарт MusicXML включает такую информацию, как название, автор, количество тактов, количество систем, номер и название инструмента, позиция и длительность нот - в общем, ту же информацию, что и партитура на бумаге. Изначально формат MusicXML был разработан для обмена партитурами, в частности, между различными редакторами партитур. MIDI (Musical Instrument Digital Interface) - технический стандарт, описывающий протокол, цифровой интерфейс и разъемы. Он позволят использовать широкий спектр электронных музыкальных инструментов, компьютеров и других связанных устройств для подключения и обмена данными. MIDI хранит сообщения о событиях, содержащие нотацию, высоту звука и скорость, управляющие сигналы для таких параметров, как объем, вибрато, аудиопанорамирование, знаки вступления и тактовые импульсы, устанавливающие и синхронизирующие темп между несколькими устройствами. Эти сообщения отправляются на другие устройства, где они контролируют генерацию звука и другие функции. Эти данные также могут быть записаны на аппаратном или программном устройстве, секвенсоре, с помощью которого можно редактировать данные и воспроизводить их позднее. Standard MIDI File (SMF) - файловый формат, обеспечивающий стандартизированный способ сохранения, передачи последовательностей и их открытия в других системах.
Способ реализуют в виде команд/кода компьютерной программы, выполняемой на одном или нескольких ранее упомянутых устройствах. Также требуется хранилище для хранения партитур (в виде цифровых файлов). Это хранилище может быть локальным или распределенным, например, в облаке. Можно использовать дополнительное оборудование, например, педали для работы со свободными руками.
После того, как партитуру в формате музыкальной нотации - в цифровом формате, позволяющем однозначно получить все символы, из которых состоит партитура, включая форматы MusicXML, Standard MIDI File (SMF) или MXL - открывают на локальном устройстве (сохраняют локально или в Интернете, например, с ограниченным доступом), на экране отображается содержание партитуры. Предпочтительным форматом является MusicXML. Содержимое адаптируется к экрану устройства. Далее термин «файл» обозначает файл в цифровом формате (формате музыкальной нотации), содержащим всю музыкальную партитуру. Файл предпочтительно загружается на устройство и хранится локально в буфере памяти устройства.
Процесс отображения партитуры, сохраненной в файле, выглядит следующим образом. Сначала считывается содержимое файла, сохраненного в буфере. Затем рассчитывается общая высота партитуры, чтобы по умолчанию отображалась вся партитура. Ширина адаптируется к той части экрана, в которой отображается партитура. Другими словами, по умолчанию отображается/прорисовывается необходимое количество нотных линеек, чтобы показать на экране все ноты партитуры по ширине экрана. Но, поскольку по практическим соображениям на экране может отображаться только определенное количество «линеек» (чтобы пользователь мог их прочитать), активируется функция прокрутки или смещения, которая подробно описана ниже.
После считывания содержимого файла, сохраненного в буфере, раскрываются повторы. Это означает, что такты (или ноты, в целом), которые должны быть исполнены более одного раза, объединяются в ряд столько раз, сколько повторений указано в партитуре в соответствии с определенной нотацией. Примечания, соответствующие повторениям, указаны в цифровом файле. Благодаря этим меткам алгоритм знает, какие фрагменты должны быть раскрыты и сколько раз они должны быть раскрыты (скопированы в каскадном виде). Другими словами, такты (или ноты, в целом), относящиеся к блоку (указанному для повторения), копируются и вставляются столько раз, сколько требуется, в местоположение метки в файле. Этот процесс записывается в буфер полностью «раскрытую» партитуру. В этом процессе предварительный буфер сохраняется во временном буфере для последующего использования. В связи с тем, что музыканты привыкли читать музыку с повторами и их символику, повторы предпочтительно раскрываются на экране только в момент отображения фрагмента музыки, который необходимо повторить (при прокрутке партитуры). В противном случае музыканты не смогут прочитать партитуру. Поэтому, когда прокрутка не активна, нераскрытая партитура хранится в буфере. При активации прокрутки повторы раскрываются, и развернутая партитура сохраняется в другом буфере. В результате партитура отображается на экране в соответствии с содержимым этого буфера (раскрытая партитура). Таким образом, пользователь может читать и интерпретировать музыку в линейном виде, без необходимости возвращаться назад в цифровой партитуре.
Одно из главных преимуществ способа заключается в том, он позволяет адаптировать скорость, с которой партитура появляется на экране, в соответствии с отображаемыми тактами (или нотами, в целом) и темпом. Как уже отмечалось, музыка - это очень специфический «язык», в котором содержание линейки (или обычной страницы, в целом) имеет переменную длительность. Поэтому, желательно адаптировать прокрутку в соответствии с содержанием партитуры и, в частности, музыкальными нотами, отображаемыми на экране. Кроме того, желательно адаптировать прокрутку к разным «темпам»: в соответствии с реальным темпом исполнения музыканта, в соответствии с темпом, предложенным дирижером (или указанным в примечаниях к партитуре), или, когда группа музыкантов играет вместе в темпе, задаваемым одним из музыкантов. Метод расчета этой скорости описан далее.
После прорисовки рассчитывается скорость прокрутки в соответствии с темпом по умолчанию, указанным в партитуре. Этот темп по умолчанию считывается и определяется с помощью партитуры, представленной в цифровом формате (формате музыкальной нотации), включая форматы MusicXML, Standard MIDI File (SMF) или MXL. В качестве альтернативы пользователь может установить этот темп вручную (руками или с помощью педалей).
Партитуру можно прокручивать по вертикали или по горизонтали. Алгоритм вычисляет скорость, с которой партитура (такты или ноты) должна двигаться на экране по вертикали или по горизонтали так, чтобы пользователь мог читать и интерпретировать ее, играя на инструменте без перерывов и в линейном режиме. Другими словами, скорость прокрутки должна позволять музыканту читать нотную линейку слева направо в соответствии с установленным темпом.
Темп выражается в количестве ударов на единицу времени. Предпочтительно темп указывается в ударах в минуту (bpm или ВРМ). Отмечается, что это эквивалентно определению темпа как «справочная фигура = значение»), так как, в целом, справочная фигура относится к одному удару.
С точки зрения одного такта скорость можно рассматривать как объем пространства экрана, на котором отображается такт, разделенный на время, которое требуется пользователю, чтобы прочитать или интерпретировать этот такт. Аналогичным образом, с точки зрения одной ноты скорость можно рассматривать как объем пространства экрана, на котором отображается нота, разделенный на время, которое требуется пользователю, чтобы прочитать или интерпретировать эту ноту. На Фигуре 1 показана схема горизонтальной прокрутки (смещение). На Фигуре 2 показана схема вертикальной прокрутки. В обоих случаях этот такт начинается в положении «0» (Х = 0 в фигуре 1 и Y = 0 в фигуре 2) и охватывает определенное пространство Е в момент времени Т. Е представляет собой охваченное пространство. Е представляет собой ширину или длину экрана, соответственно. Скорость прокрутки получаются после деления Е на время Т, которое требуется для воспроизведения этого такта. То же самое рассуждение применяется, с учетом соответствующих изменений, если рассматривается нота, а не такт. На Фигурах 5A-5D показан пример вертикальной прокрутки, в котором наглядно продемонстрирована непрерывность прокрутки. В определенный момент времени отображаются две полные системы партитуры, и начинает появляться третья система (фигура 5А). В следующий момент времени партитура перемещается вверх и отображается большая часть третьей системы (фигура 5В). В следующий момент времени партитура еще больше перемещается вверх и третья система отображается почти полностью (фигура 5С). И, наконец, в четвертый момент времени партитура еще больше перемещается вверх и третья система отображается полностью (фигура 5D). Новая система начнет отображаться в следующий момент времени.
Далее скорость рассчитывается двумя разными способами. В первом способе учитываются «такты». Во втором - «ноты».
РАСЧЕТ НА ОСНОВЕ ТАКТОВ
Для вычисления времени Т необходимо учесть ритм и темп. Как уже упоминалось, количество ударов в такте не является фиксированным универсальными значением. Несмотря на то, что партитура управляет определенным количеством ударов в такт (выраженное в партитуре конкретным кодом музыкального языка), это значение может быть изменено пользователем вручную.
В общем, алгоритм считывает (сканирует) содержание партитуры и может обнаружить в цифровом файле (файле в формате музыкальной нотации) (например, MusicXML, SMF или MXL) количество ударов, содержащееся в каждом такте по умолчанию.
Снова ссылаясь на один такт, время Т, необходимое для исполнения такта, получают путем деления числа ударов такта на указанный темп.
measure
measure
T = n_beats / tempo
Например, tempo = 60 означает, что в минуту играется 60 ударов. Аналогичным образом, tempo = 120 означает, что в минуту играется 120 ударов (то есть 2 удара в секунду).
measure
Таким образом, если такт содержит, например, 4 удара, а темп составляет 120, время, необходимое для исполнения такта (T) составляет 4 уд./(120 уд./мин.):
Как следствие, скорость, с которой один такт перемещается по экрану, рассчитывается следующим образом.
Сначала с устройства получают размеры экрана (длину и ширину). С помощью этой информации получают охватываемое пространство Е.
measure
Затем из файла партитуры получают количество ударов в такт (n_beats). В качестве альтернативы, это значение задается пользователем.
После этого получают темп, который применяется к ударам. В качестве альтернативы, это значение задается пользователем.
measure
measure
В результате, T = n_beats / tempo - это временный промежуток, за который такт охватывает пространство Е.
Скорость такта определяется формулой
Предыдущая формула представляет собой специфическую ситуацию, в которой партитура формируется либо одним тактом, либо для очень специфической шкалы визуализации, в которой на экране отображается один такт. Скорость прокрутки целой партитуры (или, точнее, фрагмента партитуры, отображаемого на экране в определенный момент) описывают следующим образом. На экране часто отображается несколько тактов с вертикальной или горизонтальной прокруткой, как показано на фигурах 3 и 4.
Сначала файл с цифровой партитурой (партитура в формате музыкальной нотации) загружается на устройство. Как уже говорилось, партитура содержит множество тактов. Затем по меньшей мере один такт из партитуры отображается на экране. При использовании вертикальной прокрутки, как правило, множество тактов отображается на экране в различных линейках (нотные линейки, станы или системы) в соответствии с прокручиваемой партитурой. При использовании горизонтальной прокрутки обычно отображается меньше тактов, поскольку на экране отображается одна линейка (система). Партитура прокручивается непрерывно, показывая на экране следующие такты музыки, в то время как уже сыгранные такты исчезают с экрана. Отображаемые такты динамично перемещаются вдоль линейки (нотного стана) или партитуры в соответствии с темпом и исчезают, когда достигают конца линейки (или противоположного конца экрана). Как непосредственно вытекает из определения термина «прокрутка», такты не сразу появляются на экране, а постепенно разворачиваются. Это означает, что при вертикальной прокрутке начинает появляться целая линейка, причем все содержащиеся в ней такты не отображаются полностью, пока не появится вся линейка. При горизонтальной прокрутке, когда начинает разворачиваться новый такт, он отображается не полностью, и его размер или длина увеличиваются по мере прокрутки партитуры.
Скорость прокрутки регулируется в зависимости от отображаемых тактов и темпа. Темп можно выбрать из следующей группы темпов: в соответствии с реальным темпом исполнения музыканта, в соответствии с темпом, определенным в партитуре, или, когда группа музыкантов играет вместе, в соответствии с темпом, задаваемым одним из музыкантов. Аналогичным образом, количество ударов (количество ударов на такт) можно выбрать из следующей группы ударов: количество, задаваемое исполнителем, количество, определенное в цифровой партитуре или, когда группа музыкантов играет вместе, количество ударов, задаваемое одним из музыкантов.
В последнем случае (группа музыкантов) у каждого исполнителя есть устройство, позволяющее выполнять текущий способ прокрутки партитуры на экране устройства. Все устройства синхронизируются с ведущим устройством, которое может задавать групповой темп.
Это обуславливает дополнительной сложности. При вертикальной прокрутке или смещении, когда музыкальная линейка (нотный стан, система) прокручивается снизу вверх, в определенный момент времени отображается несколько линеек (нотных станов, систем), причем каждая из линеек (нотных станов, систем) содержит несколько тактов (их количество в каждой линейке (нотном стане, системе) может меняться). Как следствие, каждая линейка (нотный стан, система) может иметь разное количество ударов. Другими словами, количество ударов в линейке (нотном стане, системе) не является постоянной величиной.
line
Не рекомендуется вычислять скорость прокрутки в каждой нотной линейке (нотном стане, системе) (v), так как это означало бы, что линейки (нотные станы, системы) будут двигаться (прокручиваться) с различной скоростью относительно друг от друга (учитывая общую ситуацию, в которой количество ударов в линейке (нотном стане, системе) не является постоянной величиной). В результате партитура будет разборчивой. Как следствие, необходимо регулировать скорость прокрутки содержимого, отображаемого на экране.
Далее описан метод вычисления корректировки скорости вертикальной прокрутки.
Для расчета времени, необходимого для чтения/воспроизведения тактов, требуется получить количество тактов, отображаемых на экране. В конкретном варианте осуществления среднее количество тактов в линейке (нотном стане, системе) рассчитывается для того, чтобы определить, сколько времени необходимо для чтения/воспроизведения тактов.
Время Т, необходимое для воспроизведения тактов, одновременно отображаемых на экране, вычисляется по следующей формуле:
где N - общее количество тактов, отображаемых на экране, которое считывается с цифровой партитуры, а
measure
_
i
measure
_
i
measure
_
i
T = n_beats / tempo где «tempo» - это либо темп, определенный в цифровой партитуре, либо темп, задаваемый пользователем (или дирижером), a n_beats - это количество ударов, образующих количество тактов «i», причем указанное количество считывается с цифровой партитуры или задается пользователем (или дирижером).
Подобные вычисления производятся в случае горизонтальной прокрутки. Единственное отличие заключается в том, что при горизонтальной прокрутке не требуется рассчитать время, необходимое для чтения нескольких тактов. Фактически, при горизонтальной прокрутке каждый такт может иметь разную скорость, так как каждый такт в зависимости от своей длины может охватывать разное пространство. Это подробно описано далее.
Затем с устройства получают размеры экрана (длину и ширину). Таким образом, можно вычислить пространство, на котором должны отображаться такты. Нужно учитывать, что количество тактов, которые помещаются на экране, рассчитывается исходя из размеров экрана и от масштаба, выбранного пользователем (этот параметр задается исключительно исполнителем). Другое требование заключается в том, что такты не могут быть разделены на две линейки (два стана). Система всегда масштабируется так, чтобы такты можно было увидеть в одной линейке на экране.
Теперь скорость прокрутки можно рассчитать на основе расчетного времени Т, необходимого для воспроизведения отображаемых на экране тактов, вычисленного пространства, на котором отображаются указанные такты. Прокрутка будет выполняться с полученной скоростью:
Эти расчеты повторяются, и скорость прокрутки корректируется при каждом обновлении экрана. Фактически скорость корректируется, только когда целая линейка (нотный стан, система) исчезает и на экране отображается новая линейка (нотный стан, система) (за исключением случаев, когда исполнитель или дирижер задает какое-либо изменение). Например, пользователь может изменять темп несколькими нажатиями на экран устройства, с помощью педалей или любой другой системы, позволяющей отправлять сигналы на устройство. Интервалы времени между двумя последовательно отправленными сигналами определяют темп, задаваемый пользователем. Аналогичным образом, пользователь может изменить количество ударов в такт, используя доступные пункты меню.
Как уже упоминалось, в конкретном варианте осуществления среднее количество тактов в линейке рассчитывается для того, чтобы определить, сколько времени необходимо для чтения/воспроизведения тактов. Это необязательно значение позволяет пользователю определить среднего количества тактов в линейке. В этом случае необходимо ввести понятие «линейка», которое, в целом относится либо к нотной линейке или нотному стану («pentagrama») или системе («sistema»). Кроме исключения, описанного далее, линейка соответствует нотному стану.
То есть, поскольку линейки могут иметь различное количество тактов, вычисляется среднее количество тактов. Например, если на экране показаны четыре линейки, содержащие в общей сложности 22 такта, среднее количество тактов в линейке составит 22/4 = 5,5 тактов в каждой линейке. В предпочтительном варианте осуществления это число округляется в меньшую сторону (в данном примере до 5). Другими словами, по практическим причинам, вычисляется средняя скорость всех линеек (систем), отображаемых на экране. Кроме того, всякий раз, когда на экране отображается новая система (линейка), выполняется перерасчет средней скорости для всех текущих линеек на экране, и ее смещение/прокрутка регулируется автоматически. После вычисления скорости обрабатывается смещение партитуры вверх путем изменения положения каждой системы (линейки). Это повторяется до тех пор, пока на экране не отображается последняя линейка партитуры.
1
2
K
1
2
K
Таким образом, на экране устройства одновременно отображается множество нотных линеек К. Каждая из K линеек имеет по меньшей мере один такт и Mk тактов, в целом: например, линейка 1 имеет M тактов, линейка 2 имеет М тактов и линейка K имеет M тактов. В общем случае количество тактов в линейке меняется в зависимости от линейки (в целом, M ≠ М … ≠ M). Скорость прокрутки определяется следующим образом.
k
Сначала вычисляют время T, необходимое для воспроизведения каждой нотной линейки, отображаемой на экране:
1
2
k
K
где k изменяется от 1 до K, K - общее количество линеек, отображаемых на экране, при этом Mk - это количество тактов в линейке k, и значения M М … M … M считываются с цифровой партитуры.
Затем общее время Т, необходимое для воспроизведения Mk линеек, отображаемых на экране, определяется следующим образом.
av
Вычисляют время T на линейку:
При необходимости это значение округляется до наименьшего целого числа. Эта операция может быть выбрана пользователем.
av
После этого скорость прокрутки вычисляют на основе расчетного времени T, необходимого для воспроизведения отображаемых на экране тактов, и на основе вычисленного пространства, на котором отображаются такты. Партитура прокручивается на расчетной скорости.
Эти расчеты и корректировка прокрутки повторяется при каждом обновлении экрана, то есть, каждый раз, когда первая линейка исчезает и в нижней части экрана появляется следующая. Обновление выполняется попиксельно или группами пикселей на высокой скорости, подобно кинематографическим кадрам, что создает впечатление непрерывной прокрутки.
В альтернативном варианте осуществления партитура прокручивается по горизонтали, а не по вертикали. Это означает, что на экране отображается только одна нотная линейка. В этой ситуации сложность расчетов обусловлена разными размерами (в частности, разной длиной) тактов, причем каждый такт имеют одинаковое количество ударов, а значит и одинаковую длительность.
В этом варианте осуществления скорость прокрутки вычисляют с учетом последнего такта, отображаемого на экране или, точнее, с учетом каждого нового такта, появляющегося на экране (сначала разворачивается маленький фрагмент такта, который начинает увеличиваться по мере прокрутки).
Каждый раз, когда такт i начинает отображаться на экране, время Т, необходимое для воспроизведения такта, вычисляется следующим образом:
measure
_
i
measure
_
i
T = n_beats / tempo
measure
_
i
где «tempo» - это либо темп, определенный в цифровой партитуре, либо темп, задаваемый пользователем (или дирижером), a n_beats - это количество ударов, образующих количество тактов «i», причем это количество считывается с цифровой партитуры или задается пользователем или дирижером.
Далее с устройства получают длину экрана, чтобы рассчитать пространство, на котором будет отображаться такт i. Кроме того, с цифровой партитуры считывается длина текущего такта i. Это делается потому, что файл находится в цифровом формате и содержит метку, идентифицирующую начало и конец такта.
Получают сумму пространств, на которых отображается такт, а также длину такта: Е = пространство, на котором отображается такт + длина такта.
После этого сумма делится на расчетное время Т, необходимое для исполнения такта.
После этого партитура может прокручиваться на расчетной скорости.
Перерасчет скорость выполняется при каждом обновлении экрана. В частности, каждый раз, когда на экране появляется новый такт «i + 1».
РАСЧЕТ НА ОСНОВЕ НОТ
Как уже было сказано, с точки зрения нот скорость можно рассматривать как объем пространства экрана, на котором отображается одна нота, разделенный на время Т, которое требуется пользователю, чтобы прочитать или интерпретировать эту ноту. Для вычисления времени Т необходимо учесть темп. Темп выражается как «справочная фигура = значение», где «значение» определяет, сколько раз «справочная фигура» (или любые ее эквиваленты) должна быть исполнена в течение одной минуты. То есть, зная темп и ноту, время Т, необходимое для интерпретации этой ноты, можно рассчитать следующим образом.
note
T = (количество справочных фигур в этой ноте) / значение темпа
note
note
По умолчанию время T выражается в минутах (как темп). Путем умножения на 60 можно получить значение T в секундах.
Например, если указан темп «восьмая нота = 50» и необходимо исполнить целую ноту, время Т, необходимое для интерпретации целой ноты, можно рассчитать следующим образом.
whole
note
T = (8 восьмых нот / целая нота) / 50 = 0,16 минут = 9,6 секунд
В общем, алгоритм считывает (сканирует) содержание партитуры и может обнаружить в цифровом файле (файле в формате музыкальной нотации) (например, MusicXML или SMF) отдельные ноты, которые необходимо исполнить, и время, необходимое для их исполнения.
Как следствие, скорость, с которой одна нота перемещается по экрану, рассчитывается следующим образом.
Сначала с устройства получают размеры экрана (длину и ширину). С помощью этой информации получают охватываемое пространство Е.
note
Затем рассчитывается время Т, необходимое для интерпретации этой ноты (как уже было описано). T - это временной промежуток, за который нота охватывает пространство Е.
Скорость ноты определяется формулой
Предыдущая формула представляет собой специфическую ситуацию, в которой на экране отображается одна нота (например, очень специфическая шкала визуализации для слабовидящих). Скорость прокрутки целой партитуры (или, точнее, фрагмента партитуры, отображаемого на экране в определенный момент) описывают следующим образом. На экране часто отображается несколько нот с вертикальной или горизонтальной прокруткой, как показано на фигурах 6А-6Е, на которых наглядно продемонстрирована непрерывность прокрутки.
Сначала файл с цифровой партитурой (партитура вформате музыкальной нотации) загружается на устройство. Как уже говорилось, партитура содержит множество нот. Чаще всего на экране одновременно отображается множество нот из партитуры. При использовании вертикальной прокрутки, как правило, множество нот отображается на экране в различных линейках (нотные линейки, станы или системы) в соответствии с прокручиваемой партитурой. При использовании горизонтальной прокрутки на экране также отображается множество нот на одной линейке (системе). Партитура прокручивается непрерывно (попиксельно или группами пикселей), показывая на экране следующие ноты, в то время как уже сыгранные ноты исчезают с экрана. Другими словами, ноты не отображаются на экране статично (как происходит при прокрутке по страницам или по слайдам), а непрерывно прокручиваются или смещаются справа налево (при горизонтальной прокрутке) или снизу вверх (при вертикальной прокрутке) со скоростью, рассчитанной системой на основе темпа. Как непосредственно вытекает из определения термина «прокрутка», ноты не сразу появляются на экране, а постепенно разворачиваются. Это означает, что при вертикальной прокрутке начинает появляться целая линейка (система, нотный стан), причем все содержащиеся в ней ноты не отображаются полностью, пока не появится вся линейка (система, нотный стан). Другими словами, система (линейка, стан) и ноты постепенно поднимаются вверх, пока не исчезают за верхней границей экрана устройства. В предпочтительном варианте осуществления партитура перемещается снизу вверх, но в качестве альтернативы возможно перемещение сверху вниз. При горизонтальной прокрутке, когда начинает разворачиваться новая нота, она отображается не полностью, и ее размер или длина увеличиваются по мере прокрутки партитуры. Другими словами, ноты постепенно перемещаются справа налево и исчезают за левой границей экрана устройства. В предпочтительном варианте осуществления партитура перемещается справа налево, но в качестве альтернативы возможно перемещение слева направо.
Скорость прокрутки регулируется в зависимости от отображаемых нот и темпа. Темп можно выбрать из следующей группы темпов: в соответствии с реальным темпом исполнения музыканта, в соответствии с темпом, определенным в цифровой партитуре (справочная фигура = значение), или, когда группа музыкантов играет вместе, в соответствии с темпом, задаваемым одним из музыкантов.
В последнем случае (группа музыкантов) у каждого исполнителя есть устройство, позволяющее выполнять текущий способ прокрутки партитуры на экране устройства. Все устройства синхронизируются с ведущим устройством, которое может задавать групповой темп.
Это обуславливает дополнительной сложности. При вертикальной прокрутке или смещении, когда музыкальная линейка (нотный стан, система) прокручивается снизу вверх, в определенный момент времени отображается несколько линеек (нотных станов, систем), причем каждая из линеек (нотных станов, систем) содержит несколько нот (их количество в каждой линейке может меняться). Как следствие, каждая линейка (нотный стан, система) может иметь разное количество справочных фигур. Другими словами, количество справочных фигур в линейке (нотном стане, системе) не является постоянной величиной.
line
Не рекомендуется вычислять скорость прокрутки в каждой нотной линейке (v), так как это означало бы, что линейки будут двигаться (прокручиваться) с различной скоростью относительно друг от друга (учитывая общую ситуацию, в которой количество справочных фигур в линейке (нотном стане, системе) не является постоянной величиной). В результате партитура будет разборчивой. Как следствие, необходимо регулировать скорость прокрутки содержимого, отображаемого на экране.
Далее описан метод вычисления корректировки скорости, который применим как к вертикальной, так и к горизонтальной прокрутке.
Для расчета времени, необходимого для чтения/воспроизведения нот, требуется получить количество тактов, отображаемых на экране, в каждый момент времени. При вертикальной прокрутке в конкретном варианте осуществления среднее количество нот в линейке (нотном стане, системе) рассчитывается для того, чтобы определить, сколько времени необходимо для чтения/воспроизведения тактов.
Время Т, необходимое для воспроизведения нот, одновременно отображаемых на экране, вычисляется по следующей формуле:
где N - общее количество нот, отображаемых на экране, которое считывается с цифровой партитуры, а
note
_
i
T = (количество справочных фигур в этой ноте) / значение темпа
где «темп» выражается как «справочная фигура = значение» и представляет собой либо темп, определенный в цифровой партитуре, либо темп, задаваемый пользователем (или дирижером)
Ввиду особенностей некоторых музыкальных инструментов, например, гитары, в полифонической партитуре одновременно могут исполняться разные ноты. Такие ноты не суммируются, так как их нужно играть одновременно. И наоборот: образец одной ноты из каждой группы одновременно исполняемых нот рассматривается в сумме для расчета Т. В предпочтительном варианте осуществления рассматривается образец ноты в соответствии с музыкальными фразами. Другими словами, N - это общее количество отображаемых на экране нот, которые исполняются последовательно.
Подобные вычисления производятся в случае горизонтальной прокрутки. В этом варианте осуществления скорость прокрутки вычисляют с учетом каждой новой ноты, появляющейся на экране (сначала разворачивается маленький фрагмент ноты, который начинает увеличиваться по мере прокрутки).
Затем с устройства получают размеры экрана (длину и ширину). Таким образом, можно вычислить пространство, на котором должны отображаться ноты. Нужно учитывать, что количество нот, которые помещаются на экране, рассчитывается исходя из размеров экрана и от масштаба, выбранного пользователем (этот параметр задается исключительно исполнителем). Другое требование заключается в том, что ноты не могут быть разделены на две линейки (нотные линейки, стана или системы). Ноты всегда масштабируется так, чтобы их можно было увидеть в одной линейке (нотном стане, системе) на экране.
Теперь скорость прокрутки можно рассчитать на основе расчетного времени Т, необходимого для воспроизведения отображаемых на экране нот, вычисленного пространства, на котором отображаются указанные ноты. Прокрутка будет выполняться с полученной скоростью:
Эти расчеты повторяются, и скорость прокрутки корректируется при каждом обновлении экрана (попиксельно или группами пикселей). Фактически при вертикальной прокрутке скорость корректируется, только когда целая линейка (нотный стан, система) исчезает и на экране отображается новая линейка (нотный стан, система) (за исключением случаев, когда исполнитель или дирижер задает какое-либо изменение). Например, пользователь может изменять темп несколькими нажатиями на экран устройства, с помощью педалей или любой другой системы, позволяющей отправлять сигналы на устройство. Интервалы времени между двумя последовательно отправленными сигналами определяют темп, задаваемый пользователем. При горизонтальной прокрутке перерасчет скорости выполняется каждый раз, когда в правой части экрана полностью появляется новая нота.
Как уже упоминалось, при вертикальной прокрутке в конкретном варианте осуществления среднее количество нот в линейке рассчитывается для того, чтобы определить, сколько времени необходимо для чтения/воспроизведения нот. Эта операция не является обязательной и может быть выбрана пользователем. В этом случае необходимо ввести понятие «линейка», которое, в целом относится либо к нотной линейке или нотному стану («pentagrama») или системе («sistema»). Кроме исключения, описанного далее, линейка соответствует нотному стану.
Поскольку каждая линейка содержит разное количество нот, каждая из которых обозначает определенное количество справочных фигур, можно рассчитать среднее количество справочных фигур (с учетом темпа). Например, если на экране показаны четыре линейки, содержащие в общей сложности 40 нот и, в частности 150 справочных фигур, среднее количество справочных фигур в линейке составит 150/4 = 37,5 справочных фигур в каждой линейке. Это число можно округлить в меньшую (до 37) или большую (до 38) сторону. Другими словами, по практическим причинам, вычисляется средняя скорость всех линеек (систем, нотных станов), отображаемых на экране. Кроме того, всякий раз, когда на экране отображается новая система (линейка, нотный стан), выполняется перерасчет средней скорости для всех текущих линеек (систем, нотных станов) на экране, и ее смещение/прокрутка регулируется автоматически. После вычисления скорости обрабатывается смещение партитуры вверх путем плавного изменения положения каждой системы (нотной линейки, стана). Для обеспечения точного перемещения изменение должно происходить настолько плавно, насколько позволяют технологии. Это повторяется до тех пор, пока на экране не отображается последняя линейка партитуры.
1
2
K
1
2
K
Таким образом, при вертикальной прокрутке на экране устройства одновременно отображается множество нотных линеек К. Каждая из К линеек, в целом, имеет Nk нот : например, линейка 1 имеет N тактов, линейка 2 имеет N тактов и линейка K имеет N тактов. В общем случае количество нот в линейке меняется в зависимости от линейки (в целом, N ≠ N … ≠ N). Скорость прокрутки определяется следующим образом.
k
Сначала вычисляют время T, необходимое для воспроизведения каждой нотной линейки, отображаемой на экране:
1
2
k
K
где k изменяется от 1 до K, K - общее количество линеек, отображаемых на экране, при этом Nk - это количество нот в линейке k, и значения N N … N … N считываются с цифровой партитуры.
Затем общее время Т, необходимое для воспроизведения Mk линеек, отображаемых на экране, определяется следующим образом.
av
Вычисляют время T на линейку:
av
После этого скорость прокрутки вычисляют на основе расчетного времени T, необходимого для воспроизведения отображаемых на экране нот (или эквивалентных справочных фигур) и вычисленного пространства, на котором отображаются ноты. Партитура прокручивается на расчетной скорости.
Эти расчеты и корректировка прокрутки повторяется при каждом обновлении экрана, то есть, каждый раз, когда первая линейка исчезает и в нижней части экрана появляется следующая.
Получают пространство экрана, на котором будут отображаться ноты: Е = пространство, на котором будут отображаться ноты. При вертикальной прокрутке пространство Е равно длине экрана. При горизонтальной прокрутке пространство Е равно ширине экрана.
После этого пространство Е делится на расчетное время Т, необходимое для исполнения нот на экране.
После этого партитура может прокручиваться на расчетной скорости.
Перерасчет скорость выполняется при каждом обновлении экрана. В частности, каждый раз, когда на экране появляется новая нота «i + 1».
Этот способ обеспечивает дополнительное преимущество, так как исключает концепцию страницы в партитуре. В результате партитура представляет собой непрерывную строку музыкальных знаков, похожую на бесконечный рулон бумаги, что позволяет музыканту читать ноты, которые еще не исполнены, и уже исполненные ноты. Такой подход повышает гибкость и выразительность исполнения. Благодаря цифровому формату (формату музыкальной нотации), включая MusicXML, SMF или MXL, все музыкальные ноты выводятся на экран последовательно и динамично, что позволяет отказаться от постраничного отображения. На Фигуре 7 показана виртуальное представление непрерывной прокрутки согласно изобретению, которая явно отличается от обычной постраничной прокрутки. В отличие от обычной постраничной прокрутки (или прокрутки по слайдам), при которой ноты или такты отображаются в определенном, статическом месте на экране, пока новая страница (или слайд) не заменяют предыдущую страницу (или слайд), способ прокрутки согласно настоящему изобретению допускает перемещение нот и тактов по экрану (снизу вверх или справа налево). Другими словами, создается впечатление, что музыкальные символы выводятся на одну бесконечную страницу, которая динамически сворачивается или разворачивается, выполняя физическое смещение нот или тактов. Для достижения такого эффекта определяются размеры экрана устройства. Предпочтительно также определяется ориентация экрана. В конкретном варианте осуществления также определяют различные режимы визуализации: группировка по системам (или линейкам) или представление в виде одной линейки тактов (или нот).
Вычисляются размеры музыкальных знаков, которые затем адаптируются к размерам экрана. Кроме того, создается буфер, содержащий необходимые размеры, чтобы обеспечить линейное представление партитуры, содержащейся в цифровом файле (файле в формате музыкальной нотации). Для корректной визуализации партитуры содержимое цифрового файла (MusicXML, SMF или MXL) адаптируется к ширине экрана. Музыкальные знаки всегда масштабируются по ширине экрана. Тем не менее, всегда должно быть достигнуто состояние, при котором по меньшей мере один целый такт или определенное количество нот одновременно (в определенный момент времени) отображаются (выведены) на экране.
Дополнительно этот способ может быть использован множеством пользователей, играющих одновременно одинаковую партитуру. В этом случае каждый пользователь имеет одно из описанных выше устройств (по меньшей мере с процессором, запоминающим устройством и экраном), и цифровая партитура отображается на устройстве каждого пользователя. В этом случае одно из устройств может работать в качестве ведущего, то есть, его пользователь сможет задавать темп или ритм исполнения партитуры. В этом случае остальные устройства синхронизируются с ведущим устройством. Однако остальные устройства поддерживают возможность масштабирования экрана в соответствии с потребностями пользователя (например, визуальными) и управления скоростью прокрутки устройства.
Как уже упоминалось в настоящем описании, после загрузки цифрового файла в область памяти устройства пользователь может взаимодействовать с приложением, настраивая его под свои предпочтения в отношении нескольким аспектов. Например, партитура может быть прочитана путем задания скорости прокрутки из внешней среды, включая без ограничений, сенсорное управление экраном, использование стилуса или любого другого устройства, а также педали с ножным управлением для работы со свободными руками. В конкретном примере одна педаль управляет темпом, а другая - автопрокруткой. С помощью медали также можно увеличить/уменьшить скорость прокрутки. Иногда требуется беспроводное соединение, Bluetooth или Wi-Fi. Кроме того, к партитуре можно добавлять примечания и обмениваться ими.
Предпочтительно при игре на инструменте по умолчанию запускается автоматическая прокрутка (параметр основан на примечаниях к цифровому файлу), но в любой момент управление можно переключить с автоматического на внешнее (контролируется пользователем). Автоматическая прокрутка также может быть приостановлена. Масштаб изображения можно регулировать из внешней среды, чтобы адаптироваться к предпочтениям пользователя (в зависимости от инструмента пользователь может сидеть ближе к экрану или дальше от него). Когда пользователь выбирает новое значение масштаба, производится перерасчет содержимого партитуры в буфере для адаптации к новому размеру. Впоследствии содержимое, сохраненное в буфере, перерисовывается на экране.
Темп автоматической прокрутки также может быть изменен (задан извне) без отключения автоматической прокрутки. Темп партитуры, влияющий на скорость автоматической прокрутки, может быть изменен (пользователем) двумя способами: (1) путем выбора конкретного значения (в интерфейсе устройства, через экран или ключевое слово) или (2) путем периодических пульсаций. Вторая возможность воспроизводит обычную ситуацию, когда музыкант поддерживает ритм, используя руки или ноги. При обнаружении первого нажатия ожидается второе. Время между двумя последовательными нажатиями определяет выбранный темп. Нажать можно непосредственно на экран устройства, на педаль (ногой) или использовать любой другой способ.
Пользователь (музыкант или дирижер) также может изменить количество ударов в такте (предварительно определенное в цифровой партитуре) путем внешнего выбора определенного значения, например, в интерфейсе устройства, через экран или ключевое слово.
Что касается партитур, то они могут быть сохранены либо на самом устройстве (локально), либо на внешнем сайте в Интернете (облако). В последнем случае пользователь обычно получает ограниченный доступ к партитурам по имени идентификатору и паролю.
Программное приложение также позволяет пользователю приобрести баллы. Предпочтительно после покупки партитуры она сохраняется во внешней системе с ограничением по определенной классификации метаданных.
Очевидно, что настоящее изобретение не ограничено конкретными вариантами осуществления, описанными в настоящем документе, а также охватывает любые модификации, которые могут быть рассмотрены специалистом в данной области техники (например, в отношении выбора материалов, размеров, компонентов, конфигурации и т.д.), в пределах общего объема настоящего изобретения, определенного в его формуле.