Архив рубрики: ноты

Excelsior — предок Журнальной

Гарнитура Журнальная попадается мне в нотах достаточно давно, да и сам я применял её время от времени уже лет девять. Среди свободных шрифтов я её не находил (не уверен я насчёт лицензионной чистоты того, что называется JournalPSCyr), да и отсутствие дореволюционной кириллицы иногда смущало. Но больше смущало отсутствие букв с диакритическими знаками из западноевропейских алфавитов — più mosso уже не напишешь. В свежих версиях, судя по Паратайповскому каталогу, буква ù уже есть, но хочется и сэкономить (набор из 4 начертаний стоит со скидкой 7500 ₽), и честно пользоваться. В том же самом каталоге пишут и об истории шрифтов:

Гарнитура Journal (Журнальная) представляет собой малоконтрастный текстовой шрифт группы «Леджибилити». Гарнитура была разработана в трех начертаниях в Отделе наборных шрифтов НПО Полиграфмаш, 1951–53 (дизайнеры Лев Маланов, Елена Царегородцева) на основе рисунков кириллической версии шрифта Эксцельсиор, 1936 (коллектив дизайнеров под руководством профессора Михаила Щелкунова при участии Николая Кудряшева), который, в свою очередь, был разработан на основе шрифта Excelcior фирмы Mergenthaler Linotype, 1931 (дизайнер Чонси Гриффит).

Пробуем поискать шрифт Excelsior — находим версию, бесплатную для персонального использования. Засунем её в ноты:

Дореволюционная кириллица есть, причём курсивные ять и ижица выглядят вполне прилично, однако буквы К и Ж в прямых начертаниях выглядят не совсем привычно: с засечками на наклонных элементах. И буквы ù всё-таки нет. И буква Э что-то раздражает. Но зато З — лучше, чем в Edwin.

Ноты без номеров страниц

Делать нотные сборники средствами Лилипонда вроде бы можно: с одной стороны LilyPond сам по себе позволяет размещать несколько пьес рядышком, а с другой содержит в своём составе утилиту lilypond-book, которая позволяет внедрять лилипондовые ноты в документы различных форматов, включая \LaTeX и HTML.

Я проверял — такой способ действительно работает, но мне он показался каким-то неудобным:
во-первых, с ТеХом я давно дела не имел,
во-вторых, верстать печатное издание в HTML — изначально странная затея (хотя CSS3 и включае в себя различные стилевые правила для печати),
ну и самое главное — ноты я сейчас набираю в MuseScore, так получается быстрее, удобнее и качественнее — многие ошибки отлавливаются на слух ещё на этапе набора.

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

При этом остаётся лишь один вопрос — как убрать номера со страниц произведений, которые должны войти в сборник — в сборниках используется сквозная нумерация и исходные номера не нужны. Понятно, что из сторонних материалов номера придётся вы́резать, но в тех нотах, которые сам набираешь, проще сразу отключить нумерацию. В MuseScore отображение номеров страниц можно настроить (и отключить) в стилевых настройках, которые доступны через меню: Format → Style, после чего в открывшемся окне надо выбрать пункт Header, Footer в левом меню:

Чтобы каждый раз не пробираться через дебри настроек, можно сохранить стилевые настройки (Format → Save Style) и использовать их в других нотах для того же сборника.

В Лилипонде для управления нумерацией страниц можно указать значения соответствующих переменных в блоке \paper — для полного отключения нумерации надо присвоить ложное значение переменной print-page-number

\paper {
  #(set-paper-size "a4")
  print-page-number=##f

  % остальные настроки: размеры, шрифты
}

Для повторного использования настроек листа бумаги (включая нумерацию) целесообразно вынести их в отдельный файл, который присоединять командой \include:

\include "../lib/paper-book-2022.ly"

Боль-ше де-фи-сов

Нотный редактор LilyPond по умолчанию считает, что при недостатке свободного места для текста в вокальных произведениях можно выкинуть лишние пробелы и дефисы между слогами — в результате слова такого текста вообще не разбиваются на слоги:

Слипшиеся слоги

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

Решение нашлось в LilyPond Snippet Repository — переопределив значение свойства LyricHyphen.minimum-distance, можно добиться не только увеличения дистанции между слогами, но и принудительной расстановки дефисов — такое переопредение можно засунуть прямо в блок с текстом:

choirVerse = \lyricmode {
  \override LyricHyphen.minimum-distance = #0.5

  Да не у -- мрёт ни с_на -- ми, ни по -- том

Результат — появились дефисы:

Слоги разделены дефисами

Если вместо 0.5 указать значение побольше, слоги разойдутся дальше.

Edwin — очередной потомок Школьной

В состав нотного редактора MuseScore начиная с версии 3.6 входит шрифт Edwin — он используется для текста по умолчанию и неплохо выглядит в латинской части — всё-таки она даже в страшненьких свободных вариантах шрифта, скопированного с New Century Schoolbook, была нормальной, чего не скажешь о кириллице — во входящем в состав GhostScript шрифте Century Schoolbook L она была вообще ужасна.

В Эдвине кириллицу слегка подправили — иногда ноты с ней смотрятся вполне терпимо, особенно если там нет букв З и Э. С дореволюционной кириллицей ситуация хуже: буква ять — только строчная, да и та страшная, ижица в курсиве смотрится странновато.

Ноты с шрифтом Edwin

Для современных нот этот шрифт использовать уже можно (если не сильно всматриваться в детали), для дореволюционных — ещё нѣтъ.

Больше нот!

Семь лет назад я замерял скорость нотного набора, когда используешь LilyPond — на простых хоровые нотах без аккомпанемента получалось около 0,8 листа в час. С аккомпанементом, как я предполагал, скорость должна была упасть ещё в несколько раз.

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

Не бравурно

Ради вёрстки нотного сборника пришлось всё-таки наладить относительно новый компьютер (ну он тоже не новый, но хотя бы сильно шустрее старого), а в нём — сюрприз! — лилипондовые ноты компилируются как-то странно: LilyPond выдаёт кучу ошибок

make
lilypond a4.ly
GNU LilyPond 2.18.2
Processing `a4.ly'
Parsing...
Interpreting music...
MIDI output to `part-bass.midi'...
Interpreting music...
MIDI output to `part-soprano1.midi'...
Interpreting music...
MIDI output to `part-soprano2.midi'...
Interpreting music...
MIDI output to `part-alto1.midi'...
Interpreting music...
MIDI output to `part-alto2.midi'...
Interpreting music...[8][16][24][32][40][48]
Preprocessing graphical objects...
warning: no glyph for character U+E062 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E0A4 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E0A4 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E0A4 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E0A4 in font `/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
warning: no glyph for character U+E050 in font 

независимо от способа запуска: хоть мышкой в кнопки Frescobaldi тычь, хоть в терминале команды набирай — итог один.

Да и внешне результат далёк от желаемого:

Ноты с ошибками

Причина оказалось простой, но из лога совершенно невозможно понять в чём же дело — действительно, LilyPond не мог найти нужных символов, но шрифт DejaVu Sans тут ни при чём — символов не было, потому что используемый в этих нотах шрифт Bravura (хороший, кстати, шрифт — крут как тот, что в лилипонде по умолчанию, но при этом в нём скрипичный ключ не имеет лишних изгибов) отсутствовал в системе. Решается легко — копированием шрифтовых файлов в /usr/share/lilypond/ВЕРСИЯ/fonts/otf

Как засунуть имиджмеджиком растровые картинки в PDF нужного размера

Для несложных преобразований картинок: изменение размера, увеличение резкости, добавление надписей и преобразование типов — большой и тяжёлый графический редактор не нужен — достаточно взять ImageMagick. ImageMagick знает не только кучу разных растровых форматов файлов, но и кое-какие векторные, в том числе PDF, однако преобразование в них требует иногда плясок с бубном: например, если для преобразования толпы PNG-файлов написать

convert *png result.pdf

то результат может и не понравиться. Путём экспериментов с найденным на всяких форумах кодом получился такой рецепт для преобразования в PDF размером 210×297 мм (A4) кучи растровых файлов, отсканированных с разрешением 600 точек на дюйм

convert *png -units pixelsperinch -density 600 -resize 100% \
 -gravity center -background white -extent 4960x7016 result.pdf

размер растровых файлов не меняется, они располагаются в центре получившихся страниц.

PDF-файл с разным заполнением страниц

Для картинок с разрешением 300 dpi цифры будут чуть другими:

convert *png -units pixelsperinch -density 300 -resize 100% \
-gravity center -background white -extent 2480x3508 result.pdf

Для 150 dpi числа надо ещё вдвое уменьшить:

convert *png -units pixelsperinch -density 150 -resize 100% \
-gravity center -background white -extent 1240x1754 result.pdf

Из Лилипонда в Музскор

Из всего, в чём доводилось набирать ноты последние лет двадцать, самые красивые получаются в Лилипонде — там и шрифт хороший (хотя Bravura ещё лучше), и расположение нот на листе достаточно компактное. Но в MuseScore набирать проще плюс можно услышать любую ноту да и все изменения видны сразу — не надо ждать, пока компиляция завершится. Лет десять назад MuseScore, как и Denemo, можно было использовать лишь для предварительного набора — сборку и доводку приходилось делать в Лилипонде, потому что Музскор не способен был нормально расставить ноты по странице. Со временем Музскор улучшился — теперь его можно использовать для всего процесса — до самого конца — вывода на печать или в готовый PDF-файл.

И встал вопрос открытия лилипондовых файлов Музскором — нынешние его версии умеют работать с MusicXML, но формат Лилипонда не понимают совсем. Сам же LilyPond умеет читать всякое (точнее, в его состав входит скрипт на питоне, перегоняющий в формат Лилипонда ноты из MusicXML, ABC, MIDI и, вроде, ETF), но выводить в это всякое не желает.

Поэтому воспользуемся сторонним ПО. Например, выяснилось, что Frescobaldi умеет экспортировать ноты в формат MusicXML, но по умолчанию эта возможность в нём отключена. Включить можно в настройках: Edit → Preferences → Generap Preferences → Enable experimental features.

Настройки Frescobaldi

После перезапуска Фрескобальди в его меню File → Export можно найти пункт Export to MusicXML. А уж MusicXML можно открыть и в Музскоре, который будет ругаться на на корявость файла,

Сообщение о невалидном XML

Сообщение о повреждённом файле

но всё равно (если повезёт?) его откроет

MuseScore — результат импорта

Вместо экспорта через Frescobaldi можно с командной строки использовать python-ly:


ly musicxml solo.ly -o solo.musicxml

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

Как увеличить отступ одной строки в MuseScore

Иногда нужно отодвинуть от края страницы не все нотные станы, а лишь одну их строку группу (system) — например, для того, чтоб указать, для какой партии этот нотный стан написан. Если нотный стан не сдвинуть, то название инструмента окажется на полях, что не всегда хорошо. В MuseScore добавить отступ можно вставкой горизонтального фрейма: выделяем такт, который надо сдвинуть, затем добавляем фрейм любым подходящим способом:

  • Через меню: A̲dd → F̲rames → Insert Horizontal Frame вставит фрейм перед текущим тактом;
  • A̲dd → F̲rames → Append Horizontal Frame — после текущего;
  • Команду Insert Horizontal Frame можно найти и в палитрах инструментов: и в обычной, вызываемой клавишей F9, и в мастер-палитре (Shift+F9) в разделе Frames & Measures.
    Insert horizontal frame

Фрейм вставляется перед всей группой нотных станов — нет нужды двигать каждый нотный стан.

Отступ в MuseScore

Счётчики в углу

Случается, что сложные партитуры я набираю в каком-то странном порядке: то из одной партии кусочек, то из другой. Чтоб не забывать, где остановился, сам себе придумал небольшой lifehack — записывать номера последних набранных тактов прямо в нотах и лучше всего — в левом верхнем углу, чтоб быстрее найти можно было.

Счётчики

Попробую на практике — может быть, приживётся…

UPDATE/28.10.2023: Не прижилось. Вместо того, чтобы указывать текущее состояние непосредственно в нотах, пишу сведения о прогрессе в отдельный файл progress.md, где могу отметить не только число набранных тактов и страниц, но и конкретные места, над которыми ещё надо поработать.