Архивы: по дате | по разделам | по авторам

А вы ноктюрн сыграть смогли бы...

АрхивОфисные приложения (архив)
автор : Валерий Белунцов   24.10.2000

Пользователь рояля вынужден устанавливать Linux?

Счастье есть...
DJ Грув

На сегодняшний день единственная встретившаяся мне программа, в которой можно набирать действительно удобный для восприятия нотный текст, работает под Linux и называется MusiXTeX. Собственно говоря, это даже не программа, а всего лишь макрорасширение для TeX, позволяющее легко вводить нотный текст. Поскольку ввод нот в MusiXTeX осуществляется не в режиме WYSIWYG  [1], а с помощью TeX-команд, набираемых в любом текстовом редакторе, автор MusiXTeX'а не был обременен мыслями о пресловутом "удобстве для неподготовленного пользователя" и все внимание уделил удобству музыканта. И это дало свои плоды: ноты, подготовленные в MusiXTeX, прекрасно воспринимаются музыкантом, да и выглядят почти безупречно. (Впрочем, это вполне в традициях TeX - качественный документ на выходе.)

Разумеется, необходимость ввода нот с помощью текстовых команд может кого-то с непривычки отпугнуть. Однако из предыдущей статьи ясно, что для работы с "традиционными" программами нотного набора подготовка все равно необходима. А освоение MusiXTeX, по большому счету, не сложнее, а проще, чем освоение той же Finale (конечно, если вы не собрались тут же стать "TeX'пертом", что для набора нот в MusiXTeX вовсе необязательно).

Кроме того, в MusiXTeX, хотя она написана совсем недавно, уже реализованы многие возможности, которых до сих пор нет в Finale и подобных ей программах, - например, "инвертированные" лиги, группы нот, пересекающие тактовую черту, и т. п. (Причем это не экзотика - на отсутствие этих возможностей, например, в Finale я обратил внимание еще в 1994 году, и ситуация до сих пор не изменилась...)

Как же вводится нотный текст в MusiXTeX? Очень просто! Каждому элементу нотной графики соответствует своя команда. Например, чтобы написать целую ноту, нужно ввести \wh  [2], а для написания половинной ноты - \hu или \hl (в зависимости от направления штиля). Кстати, все команды MusiXTeX довольно легко запоминаются, так как представляют собой в основном аббревиатуры музыкальных терминов (правда, англоязычные). Например, начало лиги, развернутой вверх, кодируется как \isluru, то есть Initiate SLUR Up. Нетрудно догадаться, что лига, развернутая вниз, инициируется командой \islurd.

Что касается высоты нот, то для ее кодирования используются буквы латинского алфавита. Большое "A" обозначает ноту "ля" контроктавы, большое "B" - "си" контроктавы и т. д. до буквы "N", обозначающей "соль" малой октавы. Более высокие ноты кодируются строчными буквами: "a" означает "ля" малой октавы, "b" - "си" малой октавы, вплоть до "z" - "ми" четвертой октавы. Кроме того, могут быть использованы префиксы октавного повышения или понижения.

Динамические оттенки и прочие исполнительские обозначения также кодируются простыми и ясными командами. Например, для того чтобы поставить обозначение "fortissimo", нужно написать просто \ff, а точка "стаккато/пиццикато" обозначается \upz.

Как же посмотреть результат набора? После того как пользователь набрал все необходимые команды в любом текстовом редакторе, нужно сохранить этот файл (желательно с расширением .tex), например, test.tex, и затем дать в командной строке такую последовательность из трех команд  [3]:

tex test.tex
musixflx test.mx1
tex test.tex

Если в исходном файле не было ошибок, первая из этих команд запускает TeX для компиляции файла, при этом все параметры, необходимые для форматирования страницы, записываются в служебный файл с расширением .mx1  [4]. Вторая команда запускает специальную программу musixflx (в этом пакете она единственная, не имеющая "прямого" отношения к TeX, это просто исполняемый файл), которая подготавливает информацию для окончательного распределения музыкального материала по страницам и строкам, записывая его в другой служебный файл с расширением .mx2. Затем снова запускается TeX, но теперь при компиляции используется информация из файла mx2 (который автоматически загружается при компиляции test.tex по команде \startmuflex, входящей в \startpiece), и генерируется окончательное изображение в файле dvi, который можно просмотреть на экране или распечатать.

Для примера покажу, как записать приведенный на рисунке музыкальный фрагмент известной песенки "Чижик-пыжик":

\input musixtex
\instrumentnumber1
\generalmeter{\meterfrac44}
\startpiece
\NOtes\qu{ecec}\enotes\bar
\NOtes\qu{fe}\hu d\sk\enotes\bar
\NOtes\qu{NNN}\enotes
\Notes\ibu0a1\qb0a\tbu0\qb0b\enotes\bar
\NOtes\qu{cc}\hu c\sk\enotes
\Endpiece
\end

Вкратце поясню, что здесь к чему. Первая строка приказывает TeX'у использовать расширение MusiXTeX, вторая задает количество инструментов (1), а третья - размер (4/4). Четвертая строка начинает музыкальный фрагмент, после чего идет собственно нотный текст.

Здесь команда \qu означает четвертные ноты со штилем вверх, а команда \hu - половинную ноту (также со штилем вверх). В фигурные скобки заключены последовательности нот одной длительности (собственно говоря, это просто TeX'овское сокращение, то есть мы пишем \qu{ecec} вместо \qu e\qu c\qu e\qu c). Команда \sk означает "пробел", а \bar - тактовую черту. Команда \enotes заканчивает последовательности нот, а команды \NOtes и \Notes - их начинают. Обратите внимание, что количество прописных букв в команде \notes определяет расстояние между метрическими единицами в последовательности нот.

Восьмая строка примера выглядит несколько сложнее других, поскольку в ней определена последовательность нот под ребром. Команда \ibu0a1 начинает ребро .0, причем "1" здесь означает наклон ребра в 5., а "a" - высоту ребра, соответствующую ноте "ля". Команда \tbu0 завершает ребро .0.

Сложно? Только на первый взгляд. К этому привыкаешь буквально за несколько раз - так все удобно и продуманно. Кстати, в отличие от Finale и подобных ей программ, за которые производители просят немалые сотни долларов, MusiXTeX можно скачать бесплатно, зайдя, например, на одну из главных страничек разработчика. Правда, не уверен, что вы сможете использовать этот пакет под Windows, даже если у вас уже стоит TeX: исполняемый файл musixflx, похоже, существует пока только для Linux. Зато на сайте имеется и вариант для сборки программы из исходников, и готовый rpm (устанавливается "одним щелчком мыши").

Кстати, тех, кому получить качественный результат хочется, а учить команды MusiXTeX лень, могу порадовать: уже появилась первая графическая оболочка для MusiXTeX, написанная независимым разработчиком. Она называется Mux2D и лежит на сайте mux2d.sourceforge.net. Правда, это еще очень ранняя бета-пташка, однако начало положено, и есть надежда, что пользователь рояля скоро перестанет страдать от пользователя компьютера.


[1] - Кстати, ни в одной WYSIWYG-программе нотного набора этот самый WYSIWYG не реализован без ошибок, мелких, но неприятных. Впрочем, в Windows это скорее всего связано с реализацией Microsoft'овских системных библиотек, о чем недавно писала "КТ".
[обратно к тексту]

[2] - Для тех, кто не знает: в TeX все команды начинаются с символа \ (обратная косая черта) и продолжаются до первой "не-буквы".
[обратно к тексту]

[3] - Если файл компилируется не в первый раз, то последовательность этих трех команд обычно бывает нужно предварить командой rm -f test.mx2 для удаления mx2-файла.
[обратно к тексту]

[4] - Правда, только в том случае, если в исходном файле использована команда \startmuflex или \startpiece.
[обратно к тексту]

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.