?

Log in

No account? Create an account
Sprint #2 review - В Северном Ледовитом
April 25th, 2014
09:00

[Link]

Previous Entry Share Next Entry
Sprint #2 review
Закончился второй спринт работы над нашей программой-нотатором. Мы рады сообщить всем заинтересованным о достигнутых успехах.

Во-первых, нам удалось внести свой вклад в СРаМуШ — Стандартную раскладку музыкальных шрифтов (SMuFL — Standard Music Font Layout). Неделю назад опубликована версия 0.9 стандарта, куда включены следующие символы, которые оказались бы забыты без нашего участия:


1. Знак дыхания



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

- Павел Чесноков. Литургия, op. 42. Изд. Юргенсон, 1915.
- Дмитрий Шостакович. Десять поэм на стихи революционных поэтов, op. 88. Изд. Музыка, 1967.

а также иллюстрации из учебников по нотопечатанию, где сообщается кое-что о графических и семантических особенностях этого знака:

- [Карцев, 2004]
- [Дудка, 1985]
- [Смирнов, 1988]

Поскольку у нас под рукой не оказалось примеров с этим знаком из зарубежной музыки, то и в описании стандарта он сопровождается словами «as used in music from Russia». Ну, пусть. Хотя у нас было стойкое ощущение, что знак применяется не только в России.


2. Опущенная слоговая чёрточка в двух вариантах — обычная и неразрывная:



Для этого знака образцов можно найти сколько угодно, но мы представили фрагменты западных партитур:

- Людвиг ван Бетховен. Messe C-Dur, op. 86. Edition Breitkopf.
- Луиджи Керубини. Requiem No.2 D-moll. Edition Peters.

Хотя на этот раз примеры подобраны совсем не из русской музыки, но в стандарт и про эти символы записали, что они представлены «as used in music from Russia». Видимо, по инерции. А может быть, из-за третьего образца, который мы взяли ради того, чтобы показать, что символ опущенной слоговой чёрточки и дефис не могут быть взаимозаменяемы:

- Георгий Свиридов. Песни на стихи английских поэтов. Изд. НСФ, 2012.

[Лирическое отступление по поводу русской музыки. Один очень известный магазин, через который все русские ноты поступают в продажу в остальной мир в интернете, делает время от времени тематические рекламные рассылки. Пару дней назад в ответ на такую рассылку в магазин пришло гневное письмо из одной европейской страны, в котором говорилось: «Пожалуйста, больше не присылайте никаких материалов о русской культуре, пока эта культура связана со страной-агрессором». К счастью, шрифтовой стандарт делают люди, которые умеют отделять мух от котлет, поэтому все наши поправки подвергались обсуждению исключительно с точки зрения нотной графики.]


3. Раз речь зашла о подтекстовке, то мы отдали свой голос за внесение в стандарт символа элизион, хотя он и так есть в стандарте Юникод (под названием undertie). Теперь в СРаМуШе три варианта элизиона разной ширины:



В качестве образцов элизиона мы взяли два фрагмента из бессмертной оперы «Паяццы»:

Ruggero Leoncavallo. Pagliacci. Piano-vocal score. Edition Peters.
- http://notovodstvo.ru/smufl/lyrics/leoncavallo1.pdf
- http://notovodstvo.ru/smufl/lyrics/leoncavallo2.pdf

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


4. Стилистический вариант дубль-бемоля — с перекладиной:



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

- [Нюрнберг, 1953]
- [Дудка, 1985]
- [Атовмьян, 1946]

Кстати, на наше предложение откликнулся коллега из MIT, Майкл Катберт, и отметил, что дубль-бемоли с перекладиной встречаются в музыке Николая Рославца. Более того, там даже есть и тройные бемоли — тоже с перекладиной. Поэтому такой тройной бемоль с перекладиной тоже внесли в стандарт, как стилистический вариант обычного тройного бемоля (если про такое диво можно сказать, что он «обычный»):




5. Серединка для паузы в виде кроватки :)

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




6. Пять знаков пропорций из мензуральной нотации:



Эти знаки мы выискали, разумеется, в труде Вилли Апеля, доступном с некоторыми различиями на двух языках — английском и немецком.


Несколько слов о том, для чего нужен этот шрифтовой стандарт и какая связь между ним и нашей программой. В принципе, стандарт не нужен. Каждый может налепить любых символов, какие ему вздумается, и пользоваться ими за милую душу. Собственно, все мы давно именно так и поступаем. Однако когда мы начинаем переносить сделанную работу из одной программы в другую, заменять один шрифт на другой, то важно две вещи: чтобы в разных шрифтах совпадали порядковые номера одинаковых символов, и чтобы у символов были близкие размеры. У текстовых шрифтов близкие. А у нотных лучше, чтоб одинаковые. Вот это и описывает стандарт.

В нашем прототипе мы используем нотный шрифт Bravura, который разрабатывается одновременно со стандартом SMuFL и уже содержит все символы стандарта, включая упомянутые выше. Этот шрифт бесплатно распространяется разработчиками для любого использования (включая адаптацию его и доработку под собственные нужды — с условием, что результаты этой адаптации точно так же будут распространяться свободно).

В перспективе мы сможем подключать к программе любые шрифты, даже старые, не соответствующие стандарту SMuFL. Однако благодаря стандарту можно будет пользоваться таблицами перекодировки. Вместо того, чтоб делать для каждого шрифта таблицу перекодировки во все остальные кодировки, достаточно будет сделать одну — из шрифта в SMuFL.


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

Формат файла на период прототипирования — json, для удобства отладки. Возможно, мы в какой-то момент перейдём на его более компактный двоичный вариант — bson или на zip-архив с json внутри. И, разумеется, это не Music-json, а наш собственный json, отражающий нашу структуру данных.



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

Концепция нашего пользовательского интерфейса такова, что курсор будет виден в нотах всегда. Это приглашение к действию и указание на место действия. Если курсора нет, значит программа не работает.

В этом спринте мы реализовали простейшие операции перемещения курсора:



На этом новые функции исчерпываются. Немножко метрик. На работу затрачено 134 идеальных инженерных часа, за это время собрано 112 билдов, их работу проверяют 256 автоматических тестов. Если, работая над новой функцией, мы повредим старую, то на всех наших мониторах сразу загорятся красные лампочки. Поэтому у нас всё надёжно, как в космосе.

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

Tags: , , , ,

(6 comments | Leave a comment)

Comments
 
[User Picture]
From:dikochka
Date:April 25th, 2014 05:55 am (UTC)
(Link)
как доскональный труд!!! снимаю шляпу :))
[User Picture]
From:ptrue
Date:April 25th, 2014 06:30 am (UTC)
(Link)
Спасибо! Мы не будем останавливаться на достигнутом :)
[User Picture]
From:nsavio
Date:April 25th, 2014 06:54 am (UTC)
(Link)
Вот это круто.
Благодаря вам теперь можно свободно вздохнуть :)
[User Picture]
From:ptrue
Date:April 25th, 2014 06:59 am (UTC)
(Link)
Дышите глубже :)
[User Picture]
From:niclaus
Date:April 25th, 2014 07:33 am (UTC)
(Link)
Круто!
From:ptrue
Date:April 25th, 2014 08:32 am (UTC)
(Link)
Пока чуть-чуть, но скоро будет круто, да :)
Powered by LiveJournal.com