Add a Command Interpreter for Conditional Editing
IWBNI there were a command interpreter that could be used for conditional editing of Finale documents. As it is now, the command-line plug-in may be used to enter notes into a given measure. The Finale Plug-in Development Kit (PDK) may be used to create C-language-based compiled programs for conditional editing. There is no command interpreter for modifying existing items.
This could be implemented by adding a menu item called Command Interpreter to the Window menu. This menu item would display a new dialog box called Command Interpreter that could contain the following controls:
-------------------------------------------------
Command Interpreter Dialog Box
Commands:
____________
____________
____________
____________
[Save] [Load] [Run]
-------------------------------------------------
The Command Interpreter window would be a modeless dialog box. That is, it could be kept on the desktop at all times like the Playback Controls and Instrument List windows. The Commands control would be a multi-line edit control that could be similar to that of the Edit Text dialog box that is associated with the text tool. Into this control one could enter commands to edit any Finale document. Command scripts could be saved to or loaded from ASCII text files by using the Save and Load buttons. The Run button would be used to execute the commands that are specified in the Commands control.
The command language could have a syntax that is similar to the BASIC programming language. The interpreted script language Javascript, which has a syntax that is similar to the C programming language and may be inserted into HTML documents, could also serve as a model. The command language could be designed to be extensible to enable third-party developers to provide libraries of command-language scripts or compiled program modules that could be dynamically linked to the core command interpreter to add new variables and functions to the language itself.
For an example of a notation program that has a conditional editing mechanism, see SCORE by San Andreas Press. For example, in SCORE one may use the command:
if p1=2 and p5=1 then p10=20
In SCORE, each object is defined by numbered parameters. The first parameter p1 of each object indicates the object's type. This command modifies all objects of type 2 (i.e. p1=2). Type 2 objects are rests. The fifth parameter p5 of a rest indicates the type of a given rest. This command modifies all rests of type 1 (i.e. p5=1). Type 1 rests are eighth rests. The tenth parameter of a rest is used to displace a rest horizontally from its normal position. In this case, the affected rests will be displaced by 20 units to the right. In short, this command displaces all eighth rests to the right of their normal position by 20 units.
Created: March 16, 2000
Last Updated: March 16, 2000
Version: Finale 2000b