April 11th, 2014

not

Sprint #1 review

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

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

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

Теперь у нас свой проект, и у нас всё по-взрослому. У нас scrum, TDD, continuous integration.

А где скрам, там и спринт-ревю. Первый спринт получился довольно длинный, четыре недели (за это время потрачено 89 чистых часов). Будем считать, что его продолжительность вызвана тем, что он был пилотным. Следующие спринты будут длиться по две недели, и поэтому каждую вторую пятницу в 9:00 по московскому времени здесь, в этом ЖЖ, будет проходить спринт-ревю. (Напомним для неискушённых в скраме, что спринт-ревю это встреча, на которой всем заинтересованным в продукте рассказывается о его новых функциях, появившихся с момента предыдущего спринт-ревю.)

Понятно, что у нас есть масса идей, которые будут отличать нашу программу от всех существующих. Однако нужно принять один простой факт: в ней должны присутствовать и те вещи, которые есть во всех остальных программах. То есть мы должны уметь делать всё то, что умеет Sibelius, плюс много другого. Для поддержания мотивации мы решили над обычными и над эксклюзивными функциями работать параллельно. Единственное, что оставлено на потом, это брендинг. У программы сейчас ещё даже нет названия. Мы будем называть её нашей программой-нотатором или прототипом.

Вот так выглядит наш нынешний прототип.



Он пока умеет не многое. Но нам нужно было перво-наперво соорудить испытательный полигон.

Это стандартный многодокументный интерфейс.
В документах работает постраничная навигация и масштабирование.
Масштабирование умеет пристраиваться к высоте и ширине страницы (и менять масштаб пропорционально с изменениями размера окна).

Что касается собственно нот, то нам удалось продумать структуру документа — как осуществляется нарезка нотоносцев и систем.
Мы умеем собирать системы из любого количества нотных станов любого количества разных раштров.
Умеем объединять станы в группы при помощи акколад.
Нотные станы и их системы умеют автоматически равномерно размещаться на странице, соблюдая одинаковое нижнее и верхнее поля страниц.
При этом уплотняются или растягиваются расстояния между системами, между группами и между отдельными станами.

Мы ввели понятие разделов документа, которое облегчит хранение в одном документе партитур с разным составом, создание мультипьесных файлов, манипуляции с пагинацией, настройками и др.

Программа умеет отображать традиционную для нотной штамповки или аппликации второй половины XX века вспомогательную сетку.
Мы умеем рисовать сплошную сетку на всю страницу, на каждую систему или на каждый нотный стан. Это существенно, поскольку расстояния между станами и системами могут иметь дробный шаг, при котором сплошная страничная сетка оказывается бесполезной. Да и в системах с разным раштром нотоносцев для каждого из них нужна своя сетка:



Шаг сетки в любом случае равен расстоянию между линейками нотоносца и позволяет откладывать расстояния при ранжире квадратами (спейсами).

Внутренние расчёты производятся при помощи специальной универсальной единицы измерения, Smart measurement unit, которая поддерживает расстояния в метрической системе или в долях спейсов, привязанных к какому-либо нотоносцу или системе. Здесь мы уже заложили концептуальное отличие от одной известной программы на букву ф, где миллиметры и спейсы абсолютно взаимозаменяемы и конвертируются друг в друга при помощи простого умножения на постоянный коэффициент, в результате чего в этой программе становится возможным установить раштр нотоносца в спейсах. Это примерно такой же нонсенс, как, скажем индивидуальная настройка количества сантиметров в дюйме. При том, что любой школьник знает, что как в дюйме всегда 2,54 сантиметра, так и любой раштр нотоносца всегда равен 4 спейсам (иными словами, между пятью нотными линейками всегда четыре промежутка).

На этом нынешняя функциональность прототипа исчерпывается.

Ах, ну да, довесок. Мы придерживаемся мнения, что интерфейс компьютерной программы должен быть обязательно на английском языке. Однако ради развлечения мы добавили возможность моментального переключения языка интерфейса на русский:



[Кстати, не исключено, что мы вынуждены будем с какого-то момента проводить наши спринт-ревю на английском. (Да-да, на нашем чудовищном доморощенном кондовом английском.) Этому есть две причины: во-первых, нам приходится употреблять массу слов и выражений, которых в русском языке и не существует. Само слово скрам чего стоит. Прямо стыд и срам. А во-вторых, мы, хотя и ставим себе задачу воплотить все тонкости отечественного нотопечатания (мимо которых обычно спокойно проходят западные коллеги), но всё-таки не хотим ограничивать нашу аудиторию лишь одной шестой частью суши.]

Спасибо за внимание, следующее спринт-ревю состоится ровно через две недели, 25 апреля в 9:00 по московскому времени.