Sprint #7 review

Jul 04, 2014 09:00

Закончился седьмой спринт работы над нашей нотной программой. Нам удалось уделить проекту более пятидесяти идеальных инженерных часов, так что сделано многое. Вот наш бэк-лог со списком решённых задач:



Кому интересно, может сам заходить на наш мантис и копаться в прошлых и будущих задачах. Вот адрес: http://notovodstvo.ru/mantis/changelog_page.php?version_id=4

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

Теперь по порядку.

Системы нотоносцев

Мы добавили возможность держать пустую систему - без единого стана. Разумеется, это задача не первостепенной важности, однако нам нужно было предписать программе какое-то поведение при удалении последнего стана, и мы это сделали.

Появились новые команды для работы с системой:



Добавление перед и после текущей, удаление. В принципе, новые системы будут добавляться автоматически по мере появления нотного текста. Однако пока нот ещё нет, нам нужно уметь работать с системами вручную.

Строка состояния

Строка состояния в нижней части окна у нас имеется уже давно, но мы не говорили о ней. Поскольку в этом спринте мы добавили в строку ещё один индикатор, то попутно расскажем и об остальных.





Каждый индикатор в строке состояния является активным. Это означает, что при щелчке по нему мышью появляется окно, в котором выбранный параметр можно поменять. То есть, например, перейти к другому разделу или странице. Или задать масштаб.

Теперь мы показываем в строке состояния раштр нотоносца в позиции курсора. Естественно, поэтому, нам пришлось добавить и соответствующую команду смены раштра, поскольку при щелчке по индикатору даётся возможность его поменять:





Можно выбрать свой раштр для каждого нотоносца в каждой системе. В этом смысле мы уже обогнали всем хорошо известную программу на букву С., где можно задать только два раштра на весь файл. А ведь даже в клавире «Бориса Годунова», награвированном в Музгизе в 1928 году, используется четыре раштра на одном развороте! (Если приглядеться в лупу, то на других страницах этого же издания можно найти и пятый). Что уж говорить о современной музыке.

Контекстное меню

Мы слегка доработали наше контекстное меню, и теперь команды в него добавляются полуавтоматически, исходя из контекста:



Команда Undo теперь снабжена дополнительным пояснением, какая именно команда будет отменена. То же самое сделано и в основном меню у обеих команд Undo и Redo:



Кроме того, в меню Edit добавлена третья команда - Notation settings. О ней подробнее.

Свойства нотации

Смена настроек тоже записывается в историю, как и любая другая команда (и может быть потом отменена или возобновлена), однако эта команда может нести в себе гораздо больше неизвестных, чем все остальные.

В данный момент окно настроек выглядит так:



Слева - оглавление разделов настроек, оно может быть древовидным, но до этого надо ещё дожить. Пока мы добавили лишь две страницы. Но это всё, как у всех. А вот кое-что необычное находится в правом верхнем углу окна. Это выбор области применения настроек:



Настройки можно применить к документу, и тогда они будут действовать на весь документ. Можно поменять в одном из разделов. А можно - у одной отдельной системы нотоносцев. Это может быть необходимо, например, для индивидуального управления алгоритмом ранжира. Если же материал во всём документе однотипный, то вполне можно ограничиться настройками документа.

Стрелки вверх и вниз (рядом с раскрывающимся списком выбора сферы применения настроек) позволяют быстро переходить на уровень выше или ниже без открывания списка.

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



в то время, как все остальные параметры раздела наследуют свои значения из настроек документа.

Что касается отдельно стоящих чек-боксов, то они, в отличие от общепринятого, имеют не два, а три состояния, переключаемые по очереди. Помимо стандартного включено и выключено, есть третье состояние - не установлено. При этом фон чек-бокса становится серым, а галочка или её отсутствие показывает, какое значение этого параметра наследуется из настроек верхнего уровня.

Например, на следующей картинке



первый параметр для данного раздела установлен в значение «выключено», в то время, как второй - включён, но в настройках более высокого уровня, то есть на уровне документа. Если первый параметр в документе поменять, то это никак не повлияет на данный раздел. Зато если в документе поменять второй параметр, то раздел унаследует это изменение.

Для документа верхним уровнем является прошитый дефолт. Это означает, что если в документе значения не выставлены, то они выбираются по умолчанию.

Для любого уровня настроек всегда видно, какие настройки в нём выставлены принудительно, а какие унаследованы с верхнего уровня. И значения унаследованных настроек тоже всегда видны.

Большинство числовых полей в окне настроек сопровождает селектор единицы измерения. Это наша SMU - умная единица измерения. В зависимости от выбранной физической единицы, значение будет либо абсолютным, либо привязанным к раштру нотоносца.



При переводе на русский язык английского термина space мы выбрали слово квадрат, хотя в литературе оно почти не используется. Приносить ещё один англицизм («спейс») мы не захотели - и так тут уже полно «чек-боксов», «дефолта» и прочего трэша. Переводить space, как промежуток мы тоже не стали (может быть, из-за того, что вспомнили детскую поговорку «За такие шутки в зубах бывают промежутки» и связанные с нею неприятности?) Пусть будет квадрат. Если вам удастся подобрать что-то более подходящее, то мы с радостью рассмотрим предложения. Это важно, поскольку квадрат / space является основополагающей величиной в нотоводстве. Термин «квадрат» при этом тоже не самый удачный, поскольку он уже используется в типометрической типографской системе мер, и там равен 48 пунктам. В нашем случае он получается в восемь раз меньше (высота пятилинейного нотного стана принимается за 24 пункта, space равен четверти этой величины, т. е. 6 пунктам), из-за чего возможны недоразумения.

Второй в списке единиц измерения идёт EVPU, которая представляет собой 1/24 часть квадрата. Как не сложно догадаться, эту единицу мы позаимствовали из известной программы на букву Ф., поскольку она идеально подходит для указания мелких расстояний, привязанных к раштру нотоносца, например - сдвига между нотными головками в секундах, толщины вязок или длины штилей. Остальные единицы - дюймы, сантиметры, миллиметры и микрометры - являются абсолютными, и не привязаны к раштру нотоносца.

Таким образом, если мы укажем, что поля нотного стана должны составлять 3 квадрата, то при раштре 4 мм эти 3 квадрата будут равняться 3 миллиметрам. Но если раштр нотоносца увеличить, то и поля его увеличатся пропорционально. Если же в настройках поля задать в миллиметрах, то изменение раштра ноотоносца на них не повлияет, и поля как были 3 мм, так и останутся.

Мы так подробно остановились на элементах управления только потому, что все они были реализованы в этом спринте. На самом деле всё это само собой разумеющиеся вещи, необходимые ради главного - собственно настроек. Кое-что об этих настройках мы уже обсуждали в связи с работой в прошлых спринтах, но смысл большинства из них станет очевиден только позже, когда появятся первые (и не только первые) ноты, и их нужно будет правильно и красиво располагать. А пока мы продолжаем наращивать инфраструктуру, чтобы возвести фундамент для будущих нот.

Приглашаем всех заинтересованных на следующее спринт-ревью, которое состоится ровно через две недели, 18 июля, в 9:00 по московскому времени.

Мусоргский, sprint review, scoring application, notovodstvo

Previous post Next post
Up