Статьи

Введение

На решение перевести и представить публике этот документ повлияло осознание мной того факта, что не все мощные средства, которые предоставляет пользователям нотный редактор Sibelius, находят широкое применение (а некоторые не применяются вообще). Среди этих средств находятся и плагины (plug-ins), а точнее возможность их самостоятельного написания пользователем. Вы, конечно, можете меня поправить, но, по крайней мере, среди тех моих знакомых, которые занимаются набором нот с использованием программы Sibelius, мало кто вообще использует плагины, а тем более знает, что их можно делать самому (и тем более, как их делать). Именно о том, как писать плагины для Sibelius, ведётся речь в этом документе.
Заранее извиняюсь за допущенные мной при переводе вольности - мой английский оставляет желать лучьшего (даже ещё хуже), но зато я кое-что понимаю и в музыке, и в программировании (и непосредственно в нотном редакторе Sibelius), так что смысл материала я передал верно. Также я позволил себе произвести некоторые сокращения, которые никак не повлияют на понимание описанной темы - они отмечены знаками [...].
Надеюсь, моя работа хоть кому-то окажется полезной.
С уважением,
Владимир Головнёв.

 

Введение
ManuScript™ - простой, музыкально-ориентированный язык программирования, разработанный для написания плагинов для музыкального процессора Sibelius.
Он основан на Simkin, встраиваимом языке сценариев, разработанным Саймоном Уайтсайдом и расширенным им и Грехемом Вестлейком.
[…]

Объяснение
При добавлении языка плагинов Sibelius мы попробовали учесть несколько различных проблем:
• Музыкальная нотация сложна и бесконечно расширяема, поэтому некоторые пользователи будут иногда хотеть добавить к программе то, что будет справляться с этими расширениями.
• Полезно автоматизировать часто повторяющиеся действия (например, открытия файла MIDI и сохранение его как партитуры), используя систему сценариев или макросов.
• Некоторые более сложные действия, используемые при написании и аранжировке музыки, могут быть частично автоматизированы, но их слишком много, чтобы они все были включены в стандартный набор функций Sibelius.
При принятии решения, какой язык использовать, мы хотели выполнить несколько условий:
• Язык должен был быть прост, т.к. мы хотели, чтобы его использовали обычные пользователи, а не только опытные программисты.
• Мы хотели, чтобы плагины можно было использовать на любом компьютере, поскольку PC, Mac’и и другие платформы широко распространены в мире музыки.
• Мы хотели, чтобы Sibelius был снабжён инструментами, для программирования на этом языке.
• Мы хотели, чтобы музыкальные понятия (такты, ноты) могли быть легко выражены на этом языке.
• Мы хотели, чтобы программы могли легко общаться с Sibelius (чтобы вставлять и извлекать информацию из павртитур).
• Мы хотели, чтобы простые диалоговые окна и другие элементы пользовательского интерфейса могли быть легко запрограммированы.
C/C++ - мировые стандарты языков программирования – были непригодны, т.к. они нелегки для использования неспециалистом, требуют отдельного компилятора и повторную сборку для каждой платформы, поддержку которой Вы хотели бы обеспечить (т.о. создавая множество версий каждого плагина).
Язык Java был более многообещающ, поскольку он относительно прост и не требует перекомпиляции для каждой платформы.
Однако, на нём мы не могли так же легко выражать музыкальные понятия, как смогли на новом языке.
Так что мы решили создать наш собственный язык; он интерпретируется, поэтому может работать на разных платформах, он встроен в Sibelius, поэтому не требует отдельных инструментов и он может быть расширен новыми музыкальными понятиями в любое время.
В результате мы имеем очень простой язык ManuScript. Его синтаксис и многие понятия будут знакомы программистам C/C++ и Java. Также в него встроены и музыкальные понятия (Партитура, Нотоносец, Такт, Ключ, Пауза).

Обязательно использовать ManuScript?
Теоретически нет: если Вы не хотите писать на ManuScript, Вы можете использовать другой язык, создавая динамические библиотеки (DLL) в директории плагинов Sibelius – например, конвертеры файлов для Finale, Allegro, PrintMusic, NIFF, и SCORE работают по этому принципу.
Однако, написание плагинов в виде DLL требует наличия Software Development Kit (SDK), который в настоящее время недоступен, так что практически плагины можно писать только на ManuScript.
[…]