April 16th, 2010

Большой в маленьком

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

А вот ещё один образец из разряда doesn’t fit, на этот раз из печатной продукции, которая свёрстана раз и навсегда, сразу с нужными данными. Это титульный лист книги:



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

Кстати, глава из этой книги, касающаяся Хорового училища, теперь доступна для чтения: http://kapellanin.ru/names/1956/atlantov/bolshoi/
not

Finale plug-in development

Поскольку начиная с версии 2007 в Finale перестали поддерживать текстовый формат файла ETF, в котором можно было покопаться и исправить ошибки программы, а сами свои ошибки они не исправляют уже десятилетиями, то пришлось взяться за шашки. То есть решиться на написание полноценного плагина, исправляющего ошибку с нумерацией текстовых блоков (я о ней подробно уже писал).

Одиннадцать лет назад на сайте Finale появился комплект разработчика плагинов (Plug-in development kit, PDK), и я даже начал с ним тогда разбираться, впрочем, весьма своеобразно: портировал с VC++ 6.0 на Delphi. В этом мне помогал один итальянец. Нам с ним удалось даже запустить тестовый плагин. После чего у итальянца родился ребёнок, ему стало не до того, а мне тоже стало не до того.

На днях я решил скачать последнюю версию PDK (как выразился Майкл Гуд — «latest and greatest»), однако обнаружил, что последняя версия на сайте датируется 2000 годом. То есть за те десять лет, что они каждый год выпускали новую версию программы, PDK они не меняли. А меняли они её ровно один раз — аккурат после того, как я портировал предыдущую версию на Делфи.

Впрочем, надежда на то, что этот PDK будет работать с последними Finale, оставалась: ведь TGTools, Patterson Beams и другие плагины (включая те, что входят в комплект поставки) работают как раз со всеми версиями программы с 2000 по 2010 без перекомпиляции.

(На официальном форуме Finale в декабре прошлого года подняли вопрос о новом PDK. И после некоторого времени обсуждения на форуме появился представитель фирмы и сказал, мол: "Мужики, не ссыте: скоро мы сделаем официальное заявление по поводу нового PDK". Мужики налили себе пива, насыпали чипсов и приготовились ждать официального сообщения. Прошёл месяц, два, три. Мужики выпили всё пиво, съели все чипсы и сново полезли на форум с репликами типа: "А не пропустили ли мы официального сообщения? А не выпустили ли уже новый PDK?" Ещё пару месяцев эти сообщения оставались без ответа, когда наконец (кажется, это было уже в марте нынешнего года) на форум снова пришёл представитель фирмы и заявил: "Мы обсудили вопрос нового PDK с разработчиками и официально заявляем, что нового PDK не будет".)

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

1. Download and unpack "Finale 2000 Plugin Source Code Windows" from https://www.finalemusic.com/store/download.aspx?id=202

It includes PDK itself so you don't need to download it separately.

2. Install MS Visual C++ 6.0

3. File > Open Workspace... > ...\FINEXT\PlugIns.dsw
All sample plugins appear in left pane.

4. First problem: when clicking on plugin name (let's take AutoBrln) in ResouceView it cannot find included appinfo.h

Solution: Tools > Options > Directories. Add new: ...\FINEXT\FINEDK\source and ...\FINEXT\FINEDK\source\win

5. Go to FileView, right click on "AutoBrln files" > Build.
Second problem: cannot find findemo.lib

Solution: Build > Set Active Configuration... > AutoBrln - Win32 Release.

6. After successful build result could be found in ...\EXE\NCP\release\plug-ins\AUTOBR32.fxt
Just copy this file to c:\Program Files\Finale 2009\Plug-ins\My Favorite Plug-ins\

It works!