Interview by Jari Williamsson, January 2005Tobias is the author of the popular TGTools plug-in collection for Finale. Here he talks about different aspects of TGTools and plug-in development.
What is your background?
I studied composition (contemporary/new music) with Heinz Winbeck in Würzburg, Germany, and on the other hand I have also developed software since I was an eighth-grader.
When did you start to use Finale?
I tried a version 2.x on Windows but really started working with it when version 3.0 was released. That was at the beginning of my long years as a student at the Musikhochschule.
For anyone who is only familiar with the "Lite" version of TGTools that is shipped with the recent versions of Finale, how would you describe the differences against the "real" version?
The "Lite" version consists of a few samples from the complete set. Some of the samples are limited in functionality, others are complete. All samples were picked by MakeMusic, and they helped me improve the design and functionality. In Finale 2005, there are seven TGTools menu items included with Finale, while the full TGTools set contains 91 menu items and can help in many more areas.
91 menu items are a lot of choices! What have been your considerations when organizing so much material?
I had to make some difficult choices while the menus became larger. Due to the number of features, there is a lot to discover for new users. Some sub-menus contain features for common engraving tasks such as creating special notation elements or preparing parts. Other menus, such as the "Modify" menu, are a bit more technical.
When TGTools Lite started to be bundled with Finale, did you notice a growing interest from Finale users?
The interest had been great even before that! I don't have any statistics so I can't tell you more.
When did you start to develop TGTools? Which were the first plug-ins you started with?
In 1999, MakeMusic made it possible for anybody with C++ knowledge to develop plug-ins for Finale, and I saw the opportunity that I had been waiting for for many years: to implement my own long-standing wishes. This was incredibly exciting for me and many others. At the same time, I discovered the Finale email discussion list where I was able to exchange ideas with many other Finale users from all over the world.
The first functions were the string harmonics, the secondary beam breaker, and an early version of staff list manager which made it possible to bring back staves that had been optimized out of individual systems in page view.
How would you describe the evolution of TGTools during the years? Which are the milestones?
During the first few years it just got bigger and bigger. I listened to many user requests but obviously I was unable to fulfill them all. Luckily, I was not the only one to develop plug-ins. There were many releases which I found exciting. Big milestones were the first Macintosh plug-in, the major TGTools releases (v1, v2) and the first TGTools plug-ins to be included with Finale.
Did TGTools become what you initially planned? Or did it become something completely different?
That is hard to say! I think that after the first few experiments, the path to a comprehensive plug-in collection was clear and I pursued it feverishly.
Which parts of TGTools do you use the most yourself?
Harmonics, Tremolos, Align Dynamics.
Among the users, what seem to be the most popular plug-ins in TGTools?
From what I hear, the "Parts" menu is used a lot, including Explode to Layers, Smart Explosion, and Join rests of multiple layers. There are also widely used Lyrics tools as well as the layout tool for optimized systems, "Staff List Manager".
What would your advices be to new users of TGTools, to get the most out of the package?
What development tools do you use to develop TGTools?
Borland C++ Builder 5.0 (because 6.0 is slower) for Windows and CodeWarrior 8 for the Mac platform.
What would your advices be to programmers who want to develop their first Finale plug-in?
- ask MakeMusic! for the latest beta PDK
- ask for help at http://groups.yahoo.com/group/FinPDK and, if in doubt, show excerpts from your source code to people there
- be very careful with memory and pointers, especially dispose of each EXTGF pointer that you receive via FX_LoadTGF as soon as possible (using FX_FreeTGF) rather than keeping too much in memory
- modeless plug-ins should use FX_StartFinaleEdit and FX_EndFinaleEdit around any modifications to the document
- use code snippets from the free source code published by MakeMusic
During the years of developing TGTools, have there been any technical difficulties to solve?
Very many! Creating the TGTools menu was very difficult, especially on Macintosh. Then, the Smart Explosion of Parts invokes a lot of Finale menu items as part of the process and even fills in values in a Finale dialog box (Select Region). This was difficult both on Mac and Windows. It has become much easier and much more reliable with Finale 2004 due to the new FX_ExecuteMenuItem function. Another difficulty is creating plug-ins that are compatible with Finale 2000 thru 2005, while also being able to take advantage of some changes in data structures.
Are there any changes/additions in recent Finale versions that have allowed you to create better or different plug-ins than before?
I have taken advantage of some smaller changes since Finale 98, but I haven't really implemented features that would depend on the new possibilities in Finale 2004 or Finale 2005 yet. I want to do that as soon as I find the time.
Which would be your favourite plug-in, not yet written?
I hope to be able to create a major new TGTools update within the next twelve months or so. On top of my list would be a plug-in to automate optimized vertical spacing of complex scores, something that we have been talking about occasionally during the past five years...
Which direction would you like Finale to take in the future?
Personally I would need a way to link score and parts and that more keyboard commands were added to Speedy Entry (to add slurs/hairpins/articulations etc.).