003, 192 Digital I/O, 192 I/O, 96 I/O, 96i I/O, Adrenaline,
AirSpeed, ALEX, Alienbrain, AME, AniMatte, Archive,
Archive II, Assistant Station, AudioPages, AudioStation,
AutoLoop, AutoSync, Avid, Avid Active, Avid Advanced
Response, Avid DNA, Avid DNxcel, Avid DNxHD, Avid DS
Assist Station, Avid Ignite, Avid Liquid, Avid Media Engine,
Avid Media Processor, Avid MEDIArray, Avid Mojo,
Avid Remote Response, Avid Unity, Avid Unity ISIS,
Avid VideoRAID, AvidRAID, AvidShare, AVIDstripe, AVX,
Beat Detective, Beauty Without The Bandwidth,
Beyond Reality, BF Essentials, Bomb Factory, Bruno, C|24,
CaptureManager, ChromaCurve, ChromaWheel,
Cineractive Engine, Cineractive Player, Cineractive Viewer,
Color Conductor, Command|8, Control|24, Cosmonaut Voice,
CountDown, d2, d3, DAE, D-Command, D-Control, Deko,
DekoCast, D-Fi, D-fx, Digi 002, Digi 003, DigiBase,
Digidesign, Digidesign Audio Engine, Digidesign
Development Partners, Digidesign Intelligent Noise
Reduction, Digidesign TDM Bus, DigiLink, DigiMeter,
DigiPanner, DigiProNet, DigiRack, DigiSerial, DigiSnake,
DigiSystem, Digital Choreography, Digital Nonlinear
Accelerator, DigiTest, DigiTranslator, DigiWear, DINR,
DNxchange, Do More, DPP-1, D-Show, DSP Manager,
DS-StorageCalc, DV Toolkit, DVD Complete, D-Verb, Eleven,
EM, Euphonix, EUCON, EveryPhase, Expander,
ExpertRender, Fairchild, FastBreak, Fast Track, Film Cutter,
FilmScribe, Flexevent, FluidMotion, Frame Chase, FXDeko,
HD Core, HD Process, HDpack, Home-to-Hollywood,
HyperSPACE, HyperSPACE HDCAM, iKnowledge, Impact,
Improv, iNEWS, iNEWS Assign, iNEWS ControlAir, InGame,
Instantwrite, Instinct, Intelligent Content Management,
Intelligent Digital Actor Technology, IntelliRender, Intelli-Sat,
Intelli-Sat Broadcasting Recording Manager, InterFX,
Interplay, inTONE, Intraframe, iS Expander, iS9, iS18, iS23,
iS36, ISIS, IsoSync, LaunchPad, LeaderPlus, LFX, Lightning,
Link & Sync, ListSync, LKT-200, Lo-Fi, MachineControl,
Magic Mask, Make Anything Hollywood,
make manage move|media, Marquee, MassivePack,
MassivePack Pro, Maxim, Mbox, Media Composer,
MediaFlow, MediaLog, MediaMix, Media Reader,
Media Recorder, MEDIArray, MediaServer, MediaShare,
MetaFuze, MetaSync, MIDI I/O, Mix Rack, Moviestar,
MultiShell, NaturalMatch, NewsCutter, NewsView,
NewsVision, Nitris, NL3D, NLP, NSDOS, NSWIN, OMF,
OMF Interchange, OMM, OnDVD, Open Media Framework,
Open Media Management, Painterly Effects, Palladiium,
Personal Q, PET, Podcast Factory, PowerSwap, PRE,
ProControl, ProEncode, Profiler, Pro Tools, Pro Tools|HD,
Pro Tools LE, Pro Tools M-Powered, Pro Transfer,
QuickPunch, QuietDrive, Realtime Motion Synthesis,
Recti-Fi, Reel Tape Delay, Reel Tape Flanger,
Reel Tape Saturation, Reprise, Res Rocket Surfer, Reso,
RetroLoop, Reverb One, ReVibe, Revolution, rS9, rS18,
RTAS, Salesview, Sci-Fi, Scorch, ScriptSync,
SecureProductionEnvironment, Shape-to-Shape,
ShuttleCase, Sibelius, SimulPlay, SimulRecord,
Slightly Rude Compressor, Smack!, Soft SampleCell,
Soft-Clip Limiter, SoundReplacer, SPACE, SPACEShift,
SpectraGraph, SpectraMatte, SteadyGlide, Streamfactory,
Streamgenie, StreamRAID, SubCap, Sundance,
Sundance Digital, SurroundScope, Symphony, SYNC HD,
SYNC I/O, Synchronic, SynchroScope, Syntax,
TDM FlexCable, TechFlix, Tel-Ray, Thunder, TimeLiner,
Titansync, Titan, TL Aggro, TL AutoPan, TL Drum Rehab,
TL Everyphase, TL Fauxlder, TL In Tune, TL MasterMeter,
TL Metro, TL Space, TL Utilities, tools for storytellers, Transit,
TransJammer, Trillium Lane Labs, TruTouch, UnityRAID,
Vari-Fi, Video the Web Way, VideoRAID, VideoSPACE,
VTEM, Work-N-Play, Xdeck, X-Form, and XMON are either
registered trademarks or trademarks of Avid Technology, Inc.
in the United States and/or other countries.
Bonjour, the Bonjour logo, and the Bonjour symbol are
trademarks of Apple Computer, Inc.
Thunderbolt and the Thunderbolt logo are trademarks of Intel
Corporation in the U.S. and/or other countries.
This product may be protected by one or more U.S. and nonU.S. patents. Details are available at www.avid.com/patents.
Product features, specifications, system requirements, and
availability are subject to change without notice.
Chapter 5. Global Constants .................................................. 127
Global Constants ..................................................... 127
Contentsv
Contentsvi
Chapter 1: Introduction
ManuScript is a simple, music-based programming language invented by Ben Sloman to write plug-ins for Sibelius. ManuScript is based on Simkin, an embedded scripting language developed by Simon Whiteside, and has
been extended by him and the rest of the Sibelius team ever since. (Simkin is a spooky pet name for Simon sometimes found in Victorian novels.) For more information on Simkin, and additional help on the language and syntax, visit the Simkin website at www.simkin.co.uk.
Rationale
Providing a plug-in language for Sibelius addresses several different issues:
• Music notation is complex and infinitely extensible, so some users will sometimes want to add to a music notation program to expand its possibilities with these new extensions.
• It is useful to allow frequently repeated operations (for example, opening a MIDI file and saving it as a score)
to be automated, using a system of scripts or macros.
Certain more complex techniques used in composing or arranging music can be partly automated, but there are
too many to include as standard features in Sibelius.
There were several conditions that we wanted to meet in deciding what language to use:
The language had to be simple, as we want normal users (not just seasoned programmers) to be able to use it.
We wanted plug-ins to be usable on any computer, as the use of computers running both Windows and Mac OS
X is widespread in the music world.
We wanted the tools to program in the language to be supplied with Sibelius.
We wanted musical concepts (pitch, notes, bars) to be easily expressed in the language.
We wanted programs to be able to talk to Sibelius easily (to insert and retrieve information from scores).
We wanted simple dialog boxes and other user interface elements to be easily programmed.
C/C++, the world’s “standard” programming language(s), were unsuitable as they are not easy for the non-specialist to use, they would need a separate compiler, and you would have to recompile for each different platform
you wanted to support (and thus create multiple versions of each plug-in).
The language Java was more promising as it is relatively simple and can run on any platform without recompilation. However, we would still need to supply a compiler for people to use, and we could not express musical
concepts in Java as directly as we could with a new language.
Chapter 1: Introduction1
So we decided to create our own language that is interpreted so it can run on different platforms, integrated into
Sibelius without any need for separate tools, and can be extended with new musical concepts at any time.
The ManuScript language that resulted is very simple. The syntax and many of the concepts will be familiar to
programmers of C/C++ or Java. Built into the language are musical concepts (Score, Staff, Bar, Clef, NoteRest)
that are instantly comprehensible.
Technical Support
Since the ManuScript language is more the province of our programmers than our technical support team (who
are not, in the main, programmers), we can’t provide detailed technical help on it, any more than Oracle will
help you with Java programming. This document and the sample plug-ins should give you a good idea of how
to do some simple programming fairly quickly.
We would welcome any useful plug-ins you write – please contact us at www.sibelius.com/plugins and we may
put them on our web site; if we want to distribute the plug-in with Sibelius itself, we’ll pay you for it.
Mailing list for plug-in developers
There is a growing community of plug-in developers working with ManuScript, and they can be an invaluable
source of help when writing new plug-ins. To subscribe, go to http://avid-listsrv1.avid.com/mailman/listinfo/plugin-dev.
System Requirements and Compatibility Information
Avid can only assure compatibility and provide support for hardware and software it has tested and approved.
For complete system requirements and a list of qualified computers, operating systems, hard drives, and thirdparty devices, visit: www.avid.com/compatibility.
Sibelius ManuScript Language Guide2
Conventions Used in Sibelius Documentation
Sibelius documentation uses the following conventions to indicate menu choices, keyboard commands, and
mouse commands:
:
ConventionAction
File > SaveChoose Save from the File tab
Control+NHold down the Control key and press the N key
Control-clickHold down the Control key and click the mouse but-
ton
Right-clickClick with the right mouse button
The names of Commands, Options, and Settings that appear on-screen are in a different font.
The following symbols are used to highlight important information:
User Tips are helpful hints for getting the most from your Sibelius system.
Important Notices include information that could affect data or the performance of your Sibelius
system.
Shortcuts show you useful keyboard or mouse shortcuts.
Cross References point to related sections in this guide and other Avid documentation.
Chapter 1: Introduction3
Sibelius ManuScript Language Guide4
Chapter 2: Sibelius ManuScript Language
Tutorial
Edit Plug-ins
A Simple Plug-in
Let’s start a simple plug-in. You are assumed to have some basic experience of programming (such as BASIC
or C), so you’re already familiar with ideas like variables, loops, and so on.
To create a new Sibelius plug-in:
1 Start Sibelius.
2 Choose File > Plug-ins > Edit Plug-ins. The following dialog appears:
Chapter 2: Sibelius ManuScript Language Tutorial5
3 Click New.
4 You are asked to type the internal name of your plug-in (used as the plug-in’s filename), the name that should
appear on the menu and the name of the category in which the plug-in should appear, which will determine
which ribbon tab it appears on.
The reason for having two separate names for plug-ins is that filenames may be no longer than 31 characters on
Macs running Mac OS 9 (which is only significant if you intend your plug-in to be used with versions of Sibelius
prior to Sibelius 4), but the menu names can be as long as you like.
5 Type Test as the internal name, Test plug-in as the menu name and Tests as the category name, then click OK.
6 You’ll see Test (user copy) added to the list in the Edit Plug-ins dialog under a new Tests branch of the tree
view. Click Close. This shows the folder in which the plug-in is located (Tests, which Sibelius has created for
you), the filename of the plug-in (minus the standard .plg file extension), and (user copy) tells you that this
plug-in is located in your user application data folder, not the Sibelius program folder or application package
itself.
7 If you look in the Home > Plug-ins gallery again you’ll see a Tests category, with a Test plug-in underneath it.
8 Choose Home > Plug-ins > Tests > Test and the plug-in will run. You may first be prompted that you cannot
undo plug-ins, in which case click Yes to continue (and you may wish to switch on the Don’t say this again
option so that you’re not bothered by this warning in future.) What does our new Test plug-in do? It just pops
up a dialog which says Test (whenever you start a new plug-in, Sibelius automatically generates in a one-line
program to do this). You’ll also notice a window appear with a button that says Stop Plug-in, which appears
whenever you run any plug-in, and which can be useful if you need to get out of a plug-in you’re working on
that is (say) trapped in an infinite loop.
9 Click OK on the dialog and the plug-in stops.
Chapter 2: Sibelius ManuScript Language Tutorial6
Three Types of Information
Let’s look at what’s in the plug-in so far. Choose File > Plug-ins > Edit Plug-ins again, then select Tests/Test
(user copy) from the lis
showing the three types of information that can make up a plug-in:
t and click Edit (or simply double-click the plug-in’s name to edit it). You’ll see a dialog
Methods
Methods are similar to procedures, functions, or routines in some other languages.
Dialogs
The layout of any special dialogs you design for your plug-in.
Data
Data are variables whose value is remembered between running the plug-in. You can only store strings in these
variables, so they’re useful for things like user-visible strings that can be displayed when the plug-in runs. For a
more sophisticated approach to global variables, ManuScript provides custom user properties for all objects—
see “Edit Plug-ins” on page 5.
Methods
The actual program consists of the methods. As you can see, plug-ins normally have at least two methods, which
are created automatically for you when you create a new plug-in:
Chapter 2: Sibelius ManuScript Language Tutorial7
Initialize
This method is called automatically whenever you start up Sibelius. Normally it does nothing more than add the
name of the plug-in to the Plug-ins menu, although if you look at some of the supplied plug-ins you’ll notice that
it’s sometimes also used to set default values for data variables.
Run
This is called when you run the plug-in, you’ll be startled to hear (it’s like
words, when you choose
Home > Plug-ins > Tests > Test, the plug-in’s Run method is called. If you write any
main() in C/C++ and Java). In other
other methods, you have to call them from the Run method—otherwise how can they ever do anything?
Click on
Run, then click Edit (or you can just double-click Run to edit it). This shows a dialog where you can edit
the Run method:
In the top field you can edit the name; in the next field you can edit the parameters (the variables where values
passed to the method are stored); and below is the code itself:
Sibelius.MessageBox("Test");
This calls a method MessageBox which pops up the dialog box that says Test when you run the plug-in. Notice that the method name is followed by a list of parameters in parentheses. In this case there’s only one parameter: because it is a string (that is, text) it is in double quotes. Notice also that the statement ends in a semicolon,
as in C/C++ and Java. If you forget to type a semicolon, you’ll get an error when the plug-in runs.
What is the role of the word Sibelius in
Sibelius.MessageBox? In fact it’s a variable representing the Si-
belius program; the statement is telling Sibelius to pop up the message box (C++ and Java programmers will recognize that this variable refers to an “object”). If this hurts your brain, we’ll go into it later.
Chapter 2: Sibelius ManuScript Language Tutorial8
Editing the Code
Now try amending the code slightly. You can edit the code just like in a word processor, using the mouse and arrow keys, and you can also use Ctrl+X/C/V or
(Windows) or Control-click (Mac) you get a menu with these basic editing operations on them too.
Change the code to this:
x = 1;
x = x + 1;
Sibelius.MessageBox("1 + 1 = " & x);
You can check this makes sense (or, at least, some kind of sense) by clicking the Check Syntax button. If there
are any blatant mistakes (e.g. missing semicolons) you will be notified where they are.
X/C/V for cut, copy and paste respectively. If you right-click
Then close the dialogs by clicking
and a message box with the answer
How does it work? The first two lines should be obvious. The last line uses & to stick two strings together. You
cannot use
swer!).
One pitfall: try changing the second line to:
+ as this works only for numbers (if you try it in the example above, you will get an interesting an-
OK, OK again then Close. Run your amended plug-in from the Plug-ins menu
1+1=2should appear.
x += 1;
Then click Check syntax. You will encounter an error: this syntax (and the syntax x++) is allowed in various
languages but not in ManuScript. You have to do
x = x+1;.
Where Plug-ins are Stored
Plug-ins supplied with Sibelius are stored in folders buried deep within the Sibelius program folder on Windows,
and inside the application package (or “bundle”) on Mac. It is not intended that end users should add extra plugins to these locations themselves, as we have provided a per-user location for plug-ins to be installed instead.
When you create a new plug-in or edit an existing one, the new or modified plug-in will be saved into the peruser location (rather than modifying or adding to the plug-ins in the program folder or bundle):
• On Windows, additional plug-ins are stored at C:\Users\username\AppData\Roaming\Avid\Sibelius\Plugins.
• On Mac, additional plug-ins are stored in subfolders at /Users/username/Library/Application
Support/Avid/Sibelius/Plugins.
This is worth knowing if you want to give a plug-in to someone else. The plug-ins appear in subfolders which
correspond to the categories in which they appear in the various Plug-ins galleries. The filename of the plug-in
itself is the plug-in’s internal name plus the .plg extension, such as Test.plg.
(Sibelius includes an automatic plug-in installer, which you can access via File > Plug-ins Install Plug-ins. This
makes it easy to download and install plug-ins from the Sibelius web site.)
Chapter 2: Sibelius ManuScript Language Tutorial9
Line Breaks and Comments
As with C/C++ and Java, you can put new lines wherever you like (except in the middle of words), as long as you
remember to put a semicolon after every statement. You can put several statements on one line, or put one statement on several lines.
You can add comments to your program, again like C/C++ and Java. Anything after
the line. Anything between
/* and */ is ignored, whether just part of a line or several lines:
// is ignored to the end of
// comment lasts to the end of the line
/* you can put
several lines of comments here
*/
For instance:
Sibelius.MessageBox("Hi!"); // print the active score
or:
Sibelius /* this contains the application */ .MessageBox("Hi!");
Variables
x in the Test plug-in is a variable. In ManuScript a variable can be any sequence of letters, digits or _ (under-
score), as long as it does not start with a digit.
A variable can contain an integer (whole number), a floating point number, a string (text) or an object (such as
a note)—more about objects in a moment. Unlike most languages, in ManuScript a variable can contain any type
of data—you do not have to declare what type you want. Thus you can store a number in a variable, then store
some text instead, then an object.
Try this:
x = 56; x = x+1;
Sibelius.MessageBox(x); // prints '57' in a dialog box
x = "now this is text"; // the number it held is lost
Sibelius.MessageBox(x); // prints 'now this is text' in a dialog
x = Sibelius.ActiveScore; // now it contains a score
Sibelius.MessageBox(x); // prints nothing in a dialog
Variables that are declared within a ManuScript method are local to that method; in other words, they cannot be
used by other methods in the same plug-in. Global Data variables defined using the plug-in editor can be accessed by all methods in the plug-in, and their values are preserved over successive uses of the plug-in.
A quick aside about strings in ManuScript is in order at this point. Like many programming languages, ManuScript strings uses the back-slash
gle quote character in your strings, use
clude the backslash itself in a ManuScript string one has to write
Chapter 2: Sibelius ManuScript Language Tutorial10
\ as an “escape character” to represent certain special things. To include a sin-
\', and to include a new line you should use \n. Because of this, to in-
\\.
Converting Between Numbers, Text, and Objects
Notice that the method MessageBox is expecting to be sent some text to display. If you give it a number instead (as in the first call to
as a score), no text is produced.
Similarly, if a calculation is expecting a number but is given some text, the text will be converted to a number:
x = 1 + "1"; // the + means numbers are expected
Sibelius.MessageBox(x); // displays '2'
MessageBox above) the number is converted to text. If you give it an object (such
If the text doesn’t start with a number (or if the variable contains an
object instead of text), it is treated as 0:
x = 1 + "fred";
Sibelius.MessageBox(x); // displays ‘1’
Chapter 2: Sibelius ManuScript Language Tutorial11
Chapter 3: Reference
Syntax
Here is an informal run-down of the syntax of ManuScript.
A method consists of a list of statements of the following kinds:
{statements }
Block
While
for example:
{
a = 4;
}
while { expression } block
for example:
while (i < 3) {
Sibelius.MessageBox(i);
i = i + 1;
}
Chapter 3: Reference12
Switch
if else
for each
switch (test-expression) {
case (
[
case (case-expression-2) block ]
case-expression-1) block
…
[ default block ]
The switch statement consists of a “test” expression, multiple case statements and an optional
default statement. If the value of test-expression matches one of the case-expressions, then the
statement block following the matching case statement will be executed. If none of the case statements match, then the statement block following the default statement will be executed. For
example:
switch (note.Accidental) {
case (DoubleSharp) {
Sibelius.MessageBox("Double sharp");
}
case (DoubleFlat) {
Sibelius.MessageBox("Double flat");
}
default {
Sibelius.MessageBox("No double");
}
}
if (expression) block [ else block ]
for example:
if (found) {
Application.ShowFindResults(found);
} else {
Application.NotFindResults();
}
for each variable in expression block
This sets variable to each of the sub-objects within the object given by the expression.
Normally there is only one type of sub-object that the object can contain. For instance, a Note
Rest (such as a chord) can only contain Note objects. However, if more than one type of subobject is possible you can specify the type:
for each Type variable in expression
block
for example:
for each NoteRest n in thisstaff {
n.AddNote(60); // add middle C
}
Chapter 3: Reference13
for
assignment
method call
self method
call
return
for variable = value to value [ step value ]
block
The variable is stepped from the first value up to or down to the end value by the step value. It
stops one step before the final value.
So, for example:
Returns a value from a plug-in method, given by the expression. If a method doesn’t contain a
return statement, then a “null” value is returned (either the number zero, an empty string, or
the null object described below).
Expressions
Here are the operators, literals and other beasts you’re allowed in expressions.
This is a keyword referring to the plug-in owning the method. You can pass yourself
Self
nullThis is a literal object meaning “nothing.”
Identifier
member variable
Chapter 3: Reference14
to other methods, for example:
other.Introduce(Self);
This is the name of a variable or method (letters, digits or underscore, not starting with
a digit) you can precede the identifier with
taken to be a string variable whose value is used as the name of a variable or method.
@to provide indirection; the identifier is then
variable.variable
This accesses a variable in another object.
integer
floating point number
string
not
and
or
equality
for example:
. 1, 100, -1
for example:
1.5, 3.15, -1.8
Text in double quotes, for example: “some text.” For strings that are rendered by
Sibelius as part of the score, i.e. the contents of some text object, there is a small but
useful formatting language allowing one to specify how the text should appear.These
“styled strings” contain commands to control the text style. All commands start and
end with a backslash (\) The full list of available styling commands is as follows:
\n\New paragraph
\N\New line
\B\Bold on
\b\Bold off
\I\Italic on
\i\Italic off
\U\Underline on
\u\Underline off
\fArial Black\ Font change to Arial Black (for example)
\ctext.character.musictext\
Character style change to Music text (for example)
\f_\Font change to text style’s default font, including removing
any active character styles
\s123\Size change to 123 (units are 1/32nds of a space, not points)
\v\Vertical scale in percent
\h\Horizontal scale in percent
\t\Tracking (absolute) in 1/32nds of a space
\p\Baselineadjustment:usenormal,sub(forsubscript)or
super (for superscript)
\$keyword\Substitutes a string from the Score Info dialog (see below)
A consequence of this syntax is that backslashes themselves are represented by \\,
to avoid conflicting with the above commands.
The substitution command \$keyword\ supports the following keywords:
Each of these correspond to a field in the File > Score Info dialog.
not expression
Logically negates an expression, for example:
not (x=0)
expression and expression
Logical and, for example:
FoxFound and BadgerFound
expression or expression
Logical or, for example:
FoxFound or BadgerFound
expression = expression
Equality test, for example:
Name="Clock"
Chapter 3: Reference15
subtract
add
minus
concatenation
subexpression
method call
self method call
expression – expression
Subtraction, for example:
12-1
expression + expression
Addition, for example:
12+1
–expression
Inversion, for example:
-1
expression & expression
Add two strings, for example:
Name = "Fred" & "Bloggs"; // ‘Fred Bloggs’
You can’t use + as this would attempt to add two numbers, and sometimes succeed (!).
For instance:
x = "2" + "2"; // same as x = 4
(expression)
For grouping expressions and enforcing precedence, e.g.
(4+1)*5
variable.identifier(comma-separated expressions);
for example:
x = monkey.CountBananas();
Identifier(comma-separated expressions);
Calls a method in this plug-in, for example:
x = CountBananas();
Operators
Condition Operators
You can put any expressions in parentheses after an if or while statement, but typically they will contain conditions such as
a = bequals (for numbers, text or objects)
a < bless than (for numbers)
a > bgreater than (for numbers)
c and dboth are true
c or deither are true
not cinverts a condition, e.g. not(x=4)
<=
>=greater than or equal to
!=not equal to
Use = to compare for equality, not == as found in C/C++ and Java.
Chapter 3: Reference16
= and <. The available conditions are very simple:
less than or equal to
Arithmetic
a + badd
a - bsubtract
a * bmultiply
a / bdivide
a % bremainder
-anegate
(a)evaluate first
ManuScript will evaluate expressions from left to right, so that 2+3*4 is 20, not 14 as you might expect. To
avoid problems with evaluation order, use parentheses to make the order of evaluation explicit. To get the answer
14, you’d have to write
ManuScript also now supports floating point numbers, so whereas in previous versions 3/2 would work out as
1, it now evaluates to 1.5. Conversion from floating point numbers to integers is achieved with the
RoundUp(expr), RoundDown(expr)and Round(expr)functions, which can be applied to any expression.
2+(3*4).
Chapter 3: Reference17
Chapter 4: Object Reference
Hierarchy of Objects
Sibelius object
Score
VersionHistory
Version
VersionComment
DynamicPartCollection
EngravingRules
DynamicPart
NoteSpacingRule
Stave (including the SystemStave)Selection
Bar
Text, Clef, Line, TimeSignature, KeySignature,
Highlight, Lyric, Barline, Tuplet, GuitarFrame,
GuitarScaleDiagram, Comment,
NoteRest (these are all BarObjects)
Note (in NoteRests only)
Chapter 4: Object Reference18
All Objects
Methods
AddToPluginsMenu("menu text","function name")
Adds a new menu item to the Plug-ins menu. When the menu item is selected the given function is called. This
is normally only used by plug-ins themselves. This method may only be called once per plug-in (that is each
plug-in may only add one item to the Plug-ins menu); subsequent method calls will be ignored.
Asc(expression)
Returns the ASCII value of a given character (the expression should be a string of length 1).
CharAt(expression,position)
Returns the character from the expression at the given (zero-based) position, for example CharAt("Po-
tato",3) would give “a.”
Chr(expression
Returns a character (as a string) with the given ASCII value. This can be used for inserting double quotes (") into
strings with Chr(34).
CreateArray()
Returns a new array object.
CreateHash()
Returns a new hash-table object.
GetValidationError(object)
Returns the validation error, if any, of the specified object. Useful to pass validation errors to the plug-in trace
window.
ExitPlugin()
Exits the plug-in cleanly without dropping into the plug-in editor
IsObject(expression)
Returns 1 (or True) if expression evaluates to an object rather than a null, boolean, string, or any number.
(Not to be confused with the IsPassage variable of Selection objects!)
IsValid(object)
Returns 1 (or True) if the object is valid, returns 0 (or False) if the object no longer exists (that is has been
deleted).
Chapter 4: Object Reference19
JoinStrings(expression, delimiter)
Joins together (concatenates) an array of strings into a single string, separated by the string delimiter.
Length(expression)
Gives the number of characters in the value of the expression.
Round(expression)
Returns the nearest integer to the value of the expression, for example Round(1.5) would be “2” and
Round(1.3) would be “1.”
RoundDown(expression)
Returns the nearest integer less than the value of the expression, for example RoundDown(1.5) would be “1.”
RoundUp(expression)
Returns the nearest integer greater than the value of the expression, for example RoundUp(1.5) would be “2.”
SplitString(expression,[delimiter,][trimEmpty])
Splits a string into an array of strings, using the given delimiter. The delimiter can be a single character or a string
containing several characters – for instance ".," would treat either a comma or full stop as a delimiter. The default delimiter is the space character. If the trimEmpty parameter is True then this will ignore multiple delimiters
(which would otherwise produce some empty strings in the array). The default value of trimEmpty is False.
Stops the plug-in, and shows the optional message in an alert box. Opens the plug-in editor at the line of code
reached.
Substring(expression,start,[length])
This returns a substring of the expression starting from the given start position (zero-based) up to the end of the
expression, for example Substring("Potato",2) would give “tato”. When used with the optional length
parameter, Substring returns a substring of the of the expression starting from the given start position (zerobased) of the given length, for example Substring("Potato",2,2) would give “ta”.
Trace(expression)
Sends a piece of text to be shown in the plug-in trace window, for example Trace("Here
If enable is the only parameter, validation checking is enabled for all types of objects, and across all plug-ins. If
you supply one or more object parameters (such as Tuplet, Score, BarObject, and so on), only those objects will be checked, and only in the currently running plug-in. You should ensure ValidationChecking
is set to false before you give your plug-ins to anybody else to use.
User Properties
All objects (except for the Sibelius object, old-style ManuScript arrays created using CreateArray(),
old-style ManuScript hashes created using CreateHash(), and null) can also have user properties assigned
to them.
Accessibility
Accessed from the Sibelius object.
Methods
None.
Variables
ScoreDescription
Returns true if Sibelius’s built-in score description functionality is enabled (read/write).
Bar
A Bar contains BarObject objects.
for each variable in produces the BarObjects in the bar
for each type variable in produces the BarObjects of the specified type in the bar
Methods
AddBarNumber(new bar number[,format[,extra_text[,prepend[,skip this bar]]]])
Adds a bar number change to the start of this bar. new bar number should be the desired external bar number. The
optional format parameter takes one of the three pre-defined constants that define the bar number format; see
“Global Constants” on page 127. The optional extra_text parameter takes a string that will be added after the numeric part of the bar number, unless the optional boolean parameter prepend is True, in which case the extra_-text is added before the numeric part of the bar number. If the optional skip this bar parameter is True, the bar
number change is created with the Don’t increment bar number option set. Returns the BarNumber object created.
Adds a chord symbol from the given array of pitches at the specified position. The optional instrument style parameter operates the same as in the AddGuitarFrame method (see above). If the method is unable to create a
chord symbol, the method returns null; otherwise it returns the GuitarFrame object created.
Adds a clef to the staff at the specified position. concert pitch clef determines the clef style when Notes > Transposing Score is switched off; the optional transposed pitch clef parameter determines the clef style when this
is switched on. Clef styles should be an identifier like “clef.treble”; for a complete list of available clef styles, see
“Clef Styles” on page 135. Alternatively you can give the name of a clef style, such as “Treble,” but bear in mind
that this may not work in non-English versions of Sibelius. Returns the Clef object created.
AddComment(sr,text[,color[,maximized]])
Adds a comment at the specified sr position in the current bar, displaying the specified text. The optional color
parameter allows you to specify the color of the comment that is created (if not specified, the comment is created
with its default color), and the optional maximized Boolean parameter allows you to set the comment to be minimized (if not specified, the comment is created maximized by default). If you want to specify the maximized parameter without specifying a particular color, set color to -1.
Adds a comment that will display a given username at the specified sr position in the current bar, displaying the
specified text. The optional color parameter allows you to specify the color of the comment that is created (if not
specified, the comment is created with its default color), and the optional maximized Boolean parameter allows
you to set the comment to be minimized (if not specified, the comment is created maximized by default). If you
want to specify the maximized parameter without specifying a particular color, set color to -1.
Adds a graphic above or below the bar at a given position. If below staff is True, Sibelius will position the
graphic below the staff to which it is attached, otherwise it will go above (the default). You may additionally displace the graphic from its default position by specifying x- and y displacements. These should be expressed in
millimeters, the latter defining an offset from the top or bottom line of the staff, as appropriate. By default, the
graphic will be created 5mm away from the staff. To adjust the size of the graphic, you may set a floating point
number for its size ratio. When set to 1.0 (the default), the graphic will be created with a height equal to that of
the staff to which it is attached. A value of 0.5 would therefore halve its size, and 2.0 double it. The graphic may
be rescaled to a maximum of five times the height of its parent staff. This function returns True if successful, otherwise False.
Adds a graphic to a blank page belonging to the current bar. nth page specifies the particular blank page you
would like the graphic to, starting from 1. The x offset and y offset parameters are floating point values relative
to the size of the page the graphic is being added to. For example, an x offset of 0.0 would position the graphic
at the very left of the page; 0.5 in the centre. You may specify the size of the graphic by specifying a value for
size ratio. This defaults to 1.0, which has the same effect as creating a graphic in Sibelius manually using Create
> Graphic. (As with AddGraphic, 0.5 would halve its size, and 2.0 double it.) The graphic may be rescaled
to a maximum of five times its intial size. This function returns True if successful, otherwise False.
Adds a chord symbol for the given chord name to the bar. The optional instrument style parameter should refer
to an existing instrument type that uses tab, and should be specified by identifier; see “Instrument Types” on
page 136. If instrument style is not specified, Sibelius will create a chord symbol that will optionally display a
chord diagram using the default tab tuning associated with the instrument type used by the staff to which the
chord symbol will be attached. The position is in 1/256th quarters from the start of the bar. The optional finger-ings parameter gives the fingerings string to display above (or below) the guitar frame, if supplied. If the method
is unable to create a chord symbol, the method returns null; otherwise it returns the GuitarFrame object created.
Adds an instrument change to the bar at the specified position. styleID is the string representing the instrument
type to change to (see “Instrument Types” on page 136 for a list). The optional boolean parameter add_clef,
True if not specified, determines whether Sibelius will add a clef change at the same position as the instrument
change if required (that is if the clef of the new instrument is different to that of the existing instrument). show_-text is an optional boolean parameter, True if not specified, determining whether or not the text label attached
to the instrument change should be created shown (the default) or hidden. text_label is an optional string parameter; if specified, Sibelius will use this string instead of the default string (the new instrument’s long name).
show_warning is an optional boolean parameter, True if not specified, determining whether or not Sibelius
should create a text object (using the Instrument change staff text style) above the last note preceding the instrument change, announcing the instrument change and giving the player time to pick up the new instrument. warn-ing_label is an optional string parameter; if specified, Sibelius will use this string instead of the default string (the
word “To” followed by the new instrument’s short name). You can also override the names Sibelius will give the
instruments on subsequent systems. If a null string is passed to either full_instrument_name or short_instru-ment_name (or if the arguments are omited), the instrument names will remain unchanged. Returns the InstrumentChange object created.
Adds a key signature to the bar. The key signature is specified by text name, such as “Cb” or “C#”. The third parameter is a Boolean flag indicating if the key is major (or minor). Unless the fourth parameter is set to False,
a double barline will ordinarily be created alongside the key signature change. You may additionally hide the key
signature change by setting hidden to True, and make the change of key appear on the bar’s parent staff only
with the one staff only
Adds a key signature to the bar. The key signature is specified by number of sharps (+1 to +7), flats (–1 to –7),
no accidentals (0) or atonal (-8). The third parameter is a Boolean flag indicating if the key is major (or minor).
Unless the fourth parameter is set to False, a double barline will ordinarily be created alongside the key signature change. You may additionally hide the key signature change by setting hidden to True, and make the
change of key appear on the bar’s parent staff only with the one staff only flag. Returns the key signature object
created.
Adds a line to the bar. The line style can be an identifier such as “line.staff.hairpin.crescendo” or a name, such
as “Crescendo”. For a complete list of line style identifiers that can be used in any Sibelius score, see “Line
Styles” on page 131. Style identifiers are to be preferred to named line styles as they will work across all language versions of Sibelius. Returns the Line object created, which may be one of a number of types depending
on the Line style used.
AddLiveTempoTapPoint(position)
Adds a Live Tempo tap point at the rhythmic position specified by position, in 1/256th quarters from the start of
the bar.
AddLyric(position,duration,text[,syllable type [,number of notes,voicenum]]])
This method adds a lyric to the bar. The position is in 1/256th quarters from the start of the bar, and the duration
is in 1/256th quarter units. The two optional parameters allow you to specify whether the lyric is at the end of a
word (value is “1”, and is the normal value) or at the start or middle of a word (value is “0”), and how many notes
the lyric extends beneath (default value 1). You can also optionally specify the voice in which the lyric should
be created; if voicenum is 0 or not specified, the lyric is created in all voices. Returns the LyricItem object created.
Adds a note to staff, adding to an existing NoteRest if already at this position (in which case the duration is ignored); otherwise creates a new NoteRest. Will add a new bar if necessary at the end of the staff. The position is
in 1/256th quarters from the start of the bar. The optional tied parameter should be True if you want the note to
be tied. Voice 1 is assumed unless the optional voice parameter (with a value of 1, 2, 3 or 4) is specified. You can
also set the diatonic pitch, that is the number of the “note name” to which this note corresponds, 7 per octave (35
= middle C, 36 = D, 37 = E and so on). If a diatonic pitch of zero is given, a suitable diatonic pitch will be calculated from the MIDI pitch. The optional string number parameter gives a string number for this note, which is
only meaningful if the note is on a tablature stave. If this parameter is not supplied then a default string number
is calculated based on the current tablature stave type and the guitar tab fingering options (specified on the Notes
page of File > Preferences). Returns the Note object created (to get the NoteRest containing the note, use
Note.ParentNoteRest).
AddPageNumber([blank page offset])
Creates and returns a page number change at the end of the bar. Due to the nature of adding a page number
change, a page break will also be created at the end of the bar. Therefore, the page number change will actually
be placed at the start of the next bar. The desired properties of the page number change can be set by calling the
appropriate methods on the Page Number Change object returned.
The blank page offset flag allows you to create page number changes on blank pages. If a bar object is followed
by one or more blank pages, each blank page may also have a page number change of its own. If unspecified, the
page number change will be created on the next available page (whether it contains music or not) after the bar,
otherwise the user may specify a 1-based offset which refers to the nth blank page after the bar itself.
Chapter 4: Object Reference24
AddPageNumberAtStartOfBar()
Creates and returns a page number change at the start of the bar. This is useful for adding a page number change
at the very start of the score, that is to change the initial page number, by using this method on the first bar of the
score. If used on a bar later in the score, it will create the page number change at the end of the previous bar, but
unlike the AddPageNumber method, it will not force a page break, so in general the AddPageNumber
method is recommended.
AddRehearsalMark([consecutive[,mark[,new prefix and suffix[,prefix[,suffx[,override defaults]]]]])
Adds a rehearsal mark above the bar. If no parameters have been specified, the rehearsal mark will inherit the
properties of the previous rehearsal mark in the score, incrementing accordingly. Optionally, the appearance of
the rehearsal mark may be overriden. If consecutive is False, Sibelius will not continue the numbering of the
new rehearsal marks consecutively, but allow the user to set a new mark.Amark may be expressed as a number
of a string. For example both 5 and “e” are both valid and equivalent values. If new prefix and suffix is True, the
values set for prefix and suffix will be applied to the new rehearsal mark. The final parameter, override defaults,
is a Boolean defaulting to False whose purpose it is to mimic the behavior of the option with the same name in
the Rehearsal Mark dialog in Sibelius.
AddSpecialBarline(barline type[,pos])
Adds a special barline to a given position in a bar; see “Global Constants” on page 127. If no position has been
specified, start repeat barlines will snap to the start of the bar by default. All other special barline types will snap
to the end.
AddSymbol(pos,symbol index or name)
Adds a symbol to the bar at the specified position. If the second parameter is a number, this is taken to be an
index into the global list of symbols, corresponding to the symbol’s position in the Create > Symbol dialog in
Sibelius (counting left-to-right, top-to-bottom from zero in the top-left hand corner). Some useful symbols
have pre-defined constants; see “Global Constants” on page 127. There are also constants defined for the start of
each group in the Create > Symbol dialog, so that to access the 8va symbol, for example, you can use the index
OctaveSymbols + 2.
It’s better to use indices rather than names, because the names will be different across the various language versions of Sibelius. Returns the Symbol object created, or null if no symbol can be added to the score.
AddText(pos,text,style[,voicenum])
Adds the text at the given position, using the given text style. A staff text style must be used for a normal staff,
and a system text style for a system staff. The styles should be an identifier of the form “text.staff.expression”;
for a complete list of text styles present in all scores, see “Text Styles” on page 129. Alternatively you can give
the name of a text style, eg. “Expression”, but be aware that this may not work in non-English versions of Sibelius. You can also optionally specify the voice in which the lyric should be created; if voicenum is 0 or not specified, the text object is created in all voices. Returns the Text object created.
AddTextToBlankPage(xPos,yPos,text,
style,pa
geOffset)
Adds the text at the given position, using the given text style. A blank page text style must be used; you cannot
add staff text or system text to a blank page. style takes a style ID, using the form “text.blankpage.title”; for a
complete list of text styles present in all scores, see “Text Styles” on page 129. xPos and yPos are the absolute
Chapter 4: Object Reference25
position on the page. pageOffset takes a positive number for a blank page following a special page break (the first
blank page is 1), and negative for a blank page preceding the first bar of the score (the blank page immediately
before the first bar is -1, the one before that -2, and so on). Returns the Text object created.
To add text to a blank page, first create the special page break using the Bar.BreakType variable, and set the
number of blank pages using Bar.NumBlankPages or Bar.NumBlankPagesBefore. Then use
Returns an error string (which will be empty if there was no error) which if not empty should be shown to the
user. The first two parameters are the top and bottom of the new time signature. The third tells Sibelius whether
to display cautionary time signatures from this time signature. If rewrite music is True then all the bars after the
inserted the time signature will be rewritten. You can also create common time and alla breve time signatures. If
you’re creating a time signature in 4/4 or 2/2, set use symbol to True and Sibelius will replace the numbers of the
time signature with their symbolic equivalent.
Adds a tuplet to a bar at a given position. The left and right parameters specify the ratio of the tuplet, for example
3 (left) in the time of 2 (right). The unit parameter specifies the note value (in 1/256th quarters) on which the tuplet should be based. For example, if you wish to create an eighth note (quaver) triplet group, you would use the
value 128. The optional style and bracket parameters take one of the pre-defined constants that affect the visual
appearance of the created tuplet; see “Global Constants” on page 127. If fullDuration is true, the bracket of the
tuplet will span the entire duration of the tuplet. Returns the Tuplet object created.
N.B.: If AddTuplet() has been given illegal parameters, it will not be able to create a valid Tuplet object.
Therefore, you should test for inequality of the returned Tuplet object with null before attempting to use it.
Bar[array element]
Returns the nth item in the bar (counting from 0) for example Bar[0]
Clear([voice
number])
Clears a bar of all its items, leaving only a bar rest. If a particular voice number is specified, only the items in that
voice will be removed.
ClearNotesAndModifiers([voice number])
Clears a bar of all its notes, rests, tuplets and slurs, replacing them with a single bar rest. If a particular voice number is specified, only the items in that voice will be removed.
Delete()
Deletes and removes an entire bar from a score. This, by definition, will affect all the staves in the score.
Chapter 4: Object Reference26
DeletePageNumber([blank page offset])
Deletes the page number change at the end of the bar, or if there are one or more blank pages after the bar, any
page number change that occurs on any of those blank pages. If blank page offset is unspecified, the page number
change on the first page after the bar will be deleted.
GetClefAt(pos)
Returns a Clef object corresponding to the current clef at the specified rhythmic position.
GetKeySignatureAt(pos)
Returns a KeySignature object corresponding to the current clef at the specified rhythmic position.
GetInstrumentTypeAt(pos)
Returns an InstrumentType object representing the instrument type used by the bar at the specified rhythmic position.
GetPageNumber([blank page offset])
Returns the page number change object at the end of the bar, or if the bar contains no page number change, null.
As with AddPageNumber, you may get the page number change from any of the blank pages that follow the
bar by specifying a valid blank page offset.
InsertBarRest(voice number[,rest type])
Inserts a bar rest into the bar, but only if the bar is void of any NoteRests (or an existing bar rest) using the same
voice number. The optional rest type parameter allows you to specify the type of bar rest or repeat bar to be created, defined by the constants WholeBarRest (the default if rest type is not specified), BreveBarRest,
OneBarRepeat, TwoBarRepeat and FourBarRepeat. Returns True if successful.
NthBarObject(n)
Returns the nth object in the bar, counting from 0.
RemoveLiveTempoTapPoint(position)
Removes a Live Tempo tap point at the rhythmic position specified by position, in 1/256th quarters from the start
of the bar.
ResetSpaceAroundBar(above,below
)Does the equivalent of Layout > Reset Space Above Staff and/or Reset Space Below Staff for the given
bar. Set above to True to reset the space above the staff, and below to True to reset the space below the staff.
Respace()
Respaces the notes in this bar.
Chapter 4: Object Reference27
Variables
BarNumber
The bar number of this bar. This is the internal bar number, which always runs consecutively from 1 (read only).
BarObjectCount
The number of objects in the bar (read only).
BreakType
The break at the end of this bar, given by the constants MiddleOfSystem, EndOfSystem, MiddleOf-
Page, EndOfPage, NotEndOfSystem, EndOfSystemOrPage or SpecialPageBreak. To learn the
correspondence between these constants and the menu in the Bars panel of the Properties window, see the discussion in “Global Constants” on page 127.
When you set the break at the end of a bar to be SpecialPageBreak, Sibelius will add one blank page after
the break. You can then adjust the number of pages by setting the value of either Bar.NumBlankPages or
Bar.NumBlankPagesBefore, or tell Sibelius to restart the music on the next left or right page with
Bar.MusicRestartsOnPage.
ExternalBarNumber
This has been deprecated as of Sibelius 5, because it can only return a number, and bar numbers that appear in
the score may now include text. Use ExternalBarNumberString instead, which returns the external bar
number of this bar, taking into account bar number changes in the score (read only). Note that you cannot pass
this bar number to any of the other ManuScript accessors; they all operate with the internal bar number instead.
ExternalBarNumberString
The external bar number of this bar as a string, taking into account bar number changes and bar number format
changes (read only). Note that you cannot pass this bar number to any of the other ManuScript accessors; they
all operate with the internal bar number instead.
GapAfter
Sets the gap (in spaces) after the bar (read/write)
GapBefore
Sets the gap (in spaces) before the bar (read/write).
InMultirest
Returns one of four global constants describing if and/or where the bar falls in a multirest (read only). The constants are NoMultirest, StartsMultirest, EndsMultirest and MidMultirest; see “Global Constants” on page 127.
Length
The rhythmic length (read only).
Chapter 4: Object Reference28
MusicRestartsOnPage
Tells Sibelius to restart the music on the next left or right page after a special page break, and can only be set if
BreakType is SpecialPageBreak. This variable may be set to only two of the global special page break
constants: MusicRestartsOnNextLeftPage or MusicRestartsOnNextRightPage (write only).
NthBarInSystem
Returns the position of the bar in the system, relative to the first bar on the system (bar 0) (read only).
NumBlankPages
The number of blank pages following the bar containing a special page break.
NumBlankPagesBefore
The number of blank pages preceding the bar containing a special page break. This value only has an effect if a
special page break exists in bar 1.
OnHiddenStave
Returns True if the bar is currently hidden by way of Hide Empty Staves (read only).
OnNthPage
Returns the zero-based page number on which the bar occurs in the current part (read only).
OnNthPageExternal
Returns a string containing the external page number (which is the page number displayed in the score) of the
page in which the bar occurs.
OnNthSystem
Returns the zero-based system number (relative to its parent page) in which the bar occurs (read only).
ParentStaff
The staff containing this bar (read only).
SectionEnd
Corresponds to the Section end checkbox on the Bars panel of Properties (read/write).
Selected
Returns True if the entire bar is currently selected (read only).
SpecialPageBreakType
Returns the type of the special page break; see the documentation for the Special page break types in “Global
Constants” on page 127 (read only).
Chapter 4: Object Reference29
SplitMultirest
When True, a multirest intersecting the bar in question will be split (read/write).
Time
The time at which the bar starts in the score in milliseconds (read only).
Barline
Accessed from a Barlines object.
Methods
None.
Variables
BottomStave
Returns the Staff object at which the barline ends, relative to the current part.
BottomStaveNum
Returns the number of the bottom staff included in the barline, relative to the current part.
TopStave
Returns the Staff object at which the barline starts, relative to the current part.
TopStaveNum
Returns the number of the top staff included in the barline, relative to the current part.
Barlines
Accessed from a Score bject. Corresponds to the barline groupings in the score.
for each barline in iterates through all the barlines in the list, for example:
s = Sibelius.ActiveScore;
barlines = s.Barlines;
for each barline in barlines {
// do something with barlines here
}
Array access [int n] returns the nth barline in the list, or null if the barline does not exist.
Chapter 4: Object Reference30
Methods
AddBarline(top staff number, bottom staff number)
Creates a new bar line inclusively spanning the staff numbers (relative to the current part) supplied. Returns the
new Barline object created, or null if it fails.
ClearAll()
Removes all the barlines from the score.
DeleteNthBarline(index)
Removes a given barline identified by index from the score.
Variables
NumChildren
Returns the number of unique barlines in the score (read only).
BarObject
BarObjects include Clef, Line, NoteRest & Text objects. All the methods and variables below apply to all specific types of BarObject—they are listed here instead of separately for each type. (To object-oriented programmers, the NoteRest, Clef and those types are derived from the base class BarObject.)
Methods
Delete()
Deletes an item from the score. This will completely remove text objects, clefs, lines and so on from the score;
however, when a NoteRest is deleted, it will be converted into a rest of similar duration. To delete multiple items
from a bar, see “Deleting Multiple Objects from a Bar” on page 35.
Deselect()
Removes the object from the selection list of the parent score. If the selection is currently a passage selection, it
is first changed to a multiple selection before the object is deselected. Returns True if the object is successfully
removed from the selection.
FreezeMagneticLayoutPositions()
Does the same as selecting an object and choosing Layout > Freeze Magnetic Layout Positions, that explicitly sets the object’s Dx/Dy to the position produced by Magnetic Layout, then disables Magnetic Layout for that
object.
GetIsInVoice(voicenum)
Returns True if the object is in the voicenum specified.
Chapter 4: Object Reference31
GetPlayedOnNthPass(n)
Returns True if the object is set to play back the nth time.
NextItem([voice[, item type]])
Returns the next item in the parent bar of the current item, or null if no item exists. If no arguments have been
supplied, the very next item in the bar will be returned, regardless of its voice number and item type. You may
additionally specify the voice number of the object you’re looking for (1 to 4,or0 for any voice number), and
the item’s type. Note that an item will only be returned if it exists in the same bar as the source item. By way of
example, to find the next crescendo line in voice 2, you would type something along the lines of: hairpin =
item.NextItem(2, “CrescendoLine”);
PreviousItem([voice[, item type]])
As above, but searches backwards.
RemoveVoice(voicenum)
Removes the object from the specified voicenum, leaving the object in all remaining voices.
ResetPosition([horizontal[, vertical]])
Performs Layout > Reset Position on the object. If you supply no parameters, this method will reset both the
horizontal and vertical position of the object. If either or both of the optional Boolean parameters horizontal or
vertical is set to True, you can reset the position of the object either horizontally or vertically independently if
required.
ResetDesign()
Performs Layout > Reset Design on the object.
Select()
Appends the object to the selection list of the parent score. A multiple selection consiting of any number of individual objects can be built up by repeatedly calling Select on each object you wish to add to the list. Note
that calling Select on a BarObject will first clear any existing passage selection.
SetAllVoices()
Sets the object to be in all voices. This has no effect on some types of object, such as NoteRests.
SetVoice(voicenum[,clear other voices])
Sets the object to be in voice voicenum, optionally removing the object from all other voices if the Boolean parameter clear other voices is True.
ShowInAll()
Shows the object in the full score, and in all relevant parts; equivalent to Edit > Hide or Show > Show In All.
Chapter 4: Object Reference32
ShowInParts()
Hides the object in the full score, and shows it in all relevant parts; equivalent to Edit > Hide or Show > Show
In Parts.
ShowInScore()
Hides the object in all relevant parts, and shows it in the full score; equivalent to Edit > Hide or Show > Show
In Score.
SetPlayedOnNthPass(n, do play)
Tells Sibelius whether or not the object should play back the nth time.
TimeOnNthPass(n)
Returns the time at which the object occurs in the score in milliseconds on the nth pass through the score, where
n is an integer specifying the pass (specify 1 for the first pass through the score), or returns -1 in the case of anerror (because the specified value of n is out of range).
Variables
CanBeInMultipleVoices
Returns True if the object can be in more than one voice (read-only).
Color
The color of this BarObject (read/write). The color value is in 24-bit RGB format, with bits 0–7 representing
blue, bits 8–15 green, bits 16–23 red and bits 24–31 ignored. Since ManuScript has no bitwise arithmetic, these
values can be a little hard to manipulate; you may find the individual accessors for the red, green and blue components to be more useful (see below).
ColorAlpha
The alpha channel component of the color of this BarObject, in the range 0–255 (read/write).
ColorRed
The red component of the color of this BarObject, in the range 0–255 (read/write).
ColorGreen
The green component of the color of this BarObject, in the range 0–255 (read/write).
ColorBlue
The blue component of the color of this BarObject, in the range 0–255 (read/write).
CueSize
True if the object is cue-size in the current part or score, and False if the object is normal size (read/write).
Chapter 4: Object Reference33
CurrentTempo
Returns the tempo, in bpm, at the location of the object in the score (read only).
DrawOrder
Returns the layer at which the object is currently drawn. When used to set the layer of an object, values from 1
(meaning the bottom layer) to 32 (meaning the highest layer) can be used; 0 is a special value that tells Sibelius
to use the default layer for that type of object (read/write).
Dx
The horizontal graphic offset of the object from the position implied by the Position field, in units of 1/32
spaces (read/write).
Dy
The vertical graphic offset of the object from the centre staff line, in units of 1/32 spaces, positive going upwards
(read/write).
HasCustomDrawOrder
Returns True if the object is set to a layer other than its default layer (read only).
Hidden
True if the object is hidden in the current part or score, and False if the object is shown (read/write).
OnNthBlankPage
Returns 0 if the object occurs on a page of music, otherwise a number from 1 upwards indicating the nth blank
page of the bar on which the object occurs (read only).
ParentBar
The Bar containing this BarObject (read only).
Position
Rhythmic position of the object in the bar (read only).
Selected
Returns True if the object is currently selected (read only).
Time
The time at which the object occurs in the score in milliseconds; if the score contains repeats, this will always return the time as if for the first pass through the score (read only). Returns -1 in the case of an error.
Type
A string describing the type of object, such as “NoteRest,” “Clef.” This is useful when hunting for a specific type
of object in a bar. See “GuitarScaleDiagram” on page 56 for the possible values (read only).
Chapter 4: Object Reference34
UsesMagneticLayout
Returns
True if the object is positioned by Magnetic Layout. Returns False if the object is set not to be taken into ac-
count by Magnetic Layout. To set whether or not an object should use Magnetic Layout, use one of the global
constants AlwaysDodge (equivalent to Edit > Magnetic Layout > n), SuppressDodge (Edit
Layout > Off)orDefaultDodge (Edit > Magnetic Layout > Default) (read/write).
UsesMagneticLayoutSettingOverridden
Returns True if the object has had its Magnetic Layout settings overridden; otherwise False.
VoiceNumber
Is 0 if the item belongs to more than one voice (a lot of items belong to more than one voice) and 1 to 4 for items
that belong to voices 1 to 4 (read only).
Voices
Returns or sets Sibelius’s internal bitfield that represents the voices to which an object belongs; useful for copying the voices used by a given object (read/write).
Magnetic
Deleting Multiple Objects from a Bar
If you wish to delete multiple objects from a bar, you should first build up a list of items to delete, then iterate
over the list deleting each object in turn. It is not sufficient to simply delete the objects from the bar as you iterate
over them, as this may cause the iterator to go out of sync. Therefore, code to delete all tuplets from a bar should
look something like this:
counter = 0;
for each Tuplet tup in bar {
name = "tuplet" & counter;
@name = tup;
counter = counter + 1;
}
// Delete objects in reverse order
while(counter > 0) {
counter = counter - 1;
name = "tuplet" & counter;
tup = @name;
tup.Delete();
}
Chapter 4: Object Reference35
BarRest
Derived from a BarObject object.
Methods
None.
Variables
PauseType
Returns the type of fermata (pause), if any, on the bar rest. Returns one of the constants PauseTypeNone
(0), PauseTypeSquare (1), PauseTypeRound (2), PauseTypeTriangular (3) (read/write).
RestType
Returns the type of bar rest via one of the constants WholeBarRest (0), BreveBarRest (1), OneBarRe-
peat(2), TwoBarRepeat (3), FourBarRepeat (4) (read only). To create a bar rest of a particular type, use
bar.InsertBarRest() (see above).
Bracket
Accessed from a BracketsAndBraces object.
Methods
None.
Variables
BottomStave
Returns the Staff object at which the bracket ends, relative to the current part.
BottomStaveNum
Returns the number of the bottom staff included in the bracket, relative to the current part.
BracketType
Returns the type of the bracket: BracketFull, BracketBrace or BracketSub.
TopStave
Returns the Staff object at which the bracket starts, relative to the current part.
Chapter 4: Object Reference36
TopStaveNum
Returns the number of the top staff included in the bracket, relative to the current part.
Brackets and Braces
Accessed from a Score object. Describes the brackets (which may be brackets, sub-brackets or braces) present in
the score.
for each bracket in iterates through all the brackets in the list.
Array access [int n] returns the nth bracket in the list, or null if the bracket does not exist.
Methods
AddBracket(type, top staff number, bottom staff number)
Creates a bracket of a given type, spanning the range of staves specified between top staff number and bottom
staff number inclusive, and returns the new Bracket object. The staff numbers are relative to the current part
view. Values for type are BracketFull (0), BracketBrace (1) and BracketSub (2).
ClearAll()
Removes all existing brackets, sub-brackets and braces from the current part, and returns the number of brackets
removed.
DeleteNthBracket(n)
Deletes the nth bracket from the current part, and returns True if successful.
Variables
NumChildren
Returns the number of child brackets, sub-brackets and braces in the list.
Clef
Derived from a BarObject
Methods
None.
Variables
ClefStyle
The name of this clef, which may be different depending on the state of Notes Transposing Score (read only).
Chapter 4: Object Reference37
ConcertClefStyleId
The concert pitch identifier of the style of this clef (read only).
ConcertClefStyle
The concert pitch name of this clef (read only).
StyleId
The identifier of the style of this clef, which may be different depending on whether or not Notes
Score is switched on. This can be passed to the Bar.AddClef method to create a clef of this style (read only).
TransposingClefStyle
The transposing score name of this clef (read only).
TransposingClefStyleId
The transposing score identifier of the style of this clef (read only).
Transposing
Comment
Derived from a BarObject.
Methods
None; create via Bar object.
Variables
Maximized
Returns True if the comment is maximized, otherwise returns False (read/write).
Text
Returns the text of the comment (read/write).
TextWithFormatting
Returns an array containing the various changes of font or style (if any) within the comment’s text in a new element (read only). For example, “This text is \B\bold\b\, and this is \I\italic\i\” would return an array with eight
elements containing the following data:
arr[0] = “This text is “
arr[1] = “\B\”
arr[2] = “bold”
arr[3] = “\b\”
arr[4] = “, and this is “
arr[5] = “\I\”
Chapter 4: Object Reference38
arr[6] = “italic”
arr[7] = “\i\”
TextWithFormattingAsString
The comment’s text including any changes of font or style (read only).
TimeStamp
Returns a DateTime object corresponding to the date the comment was created or last edited (read only).
UserName
Returns the username of the user who created or last edited the comment (read only).
ComponentList
An array that is obtained from Sibelius.HouseStyles or Sibelius.ManuscriptPapers. It can be
used in a for each loop or as an array with the [n] operator to access each Component object:
Methods
None.
Variables
NumChildren
Number of plug-ins (read only).
Component
This represents a Sibelius “component,” namely a house style or a manuscript paper. Examples:
// Create a new score using the first manuscript paper
papers=Sibelius.ManuscriptPapers;
score=Sibelius.New(papers[0]);
// Apply the first house style to the new score
styles=Sibelius.HouseStyles;
score.pplyStyle(styles[0], "ALLSTYLES");
Methods
None.
Chapter 4: Object Reference39
Variables
Name
The name of the component (read only).
DateTime
This object returns information about the current date and time.
Methods
None.
Variables
Seconds
Returns the number of seconds from the time in a date (read only).
Minutes
Returns the number of minutes from the time in a date (read only).
Hours
Returns the number of hours from the time in a date (read only).
DayOfMonth
Returns the nth day on the month, 1-based (read only).
Month
Returns the nth month of the year, 1-based (read only).
Year
Returns the year (read only).
NthDayOfWeek
Returns the nth day of the week, 0-based (read only).
NthDayOfYear
Returns the nth day of the year, 0-based (read only).
LongDate
Returns the date in a human-readable format, for example: 1st May 2008 (read only).
Chapter 4: Object Reference40
ShortDate
Returns the date in a human-readable format, for example: 01/05/2008 (read only).
LongDateAndTime
Returns the date and time in a human-readable format, for example: 1st May 2008 14:07 (read only).
ShortDateAndTime
Returns the date and time in a human-readable format, for example: 01/05/2008 14:07 (read only).
TimeWithSeconds
Returns the time in a human-readable format, for example: 14:07 (read only).
TimeWithoutSeconds
Returns the time in a human-readable format, for example: 14:07:23 (read only).
Dictionary
To create a dictionary, use the built-in function CreateDictionary(name1, value1, name2, value2, ...
nameN, valueN). This creates a dictionary containing user properties called name1, name2, nameN with values
value1, value2, valueN respectively.
To iterate over dictionaries:
1 To iterate over element values in Dictionary objects, use for each n in Dictionary or for each
Value n in Dictionary.
2 To iterate over element names in Dictionary objects,use for each Name n in Dictionary.
3 To iterate over value.name pairs in Dictionary objects, use for each Pair n in Dictionary; this
returns a new Dictionary object: n.Name is the element name, n.Value is the element value.
Methods
CallMethod(methodname,param1,param2,...paramN)
Calls the specified method methodname in the dictionary, passing in any other values that are required for the
method as further parameters.
GetMethodNames()
Returns a sparse array containing the names of the methods belonging to a dictionary.
GetPropertyNames()
Returns a sparse array of the names of all the user properties in the dictionary (same as _propertyNames).
Chapter 4: Object Reference41
MethodExists(methodname)
Returns True if the specified method methodname exists in the dictionary.
PropertyExists(propertyname)
Returns True if the specified user property propertyname exists in the dictionary.
SetMethod(methodname,Self,method)
Binds a method to the dictionary. methodname is the name by which you want to access the method via the dictionary, Self refers to the plug-in in which the method is found, and method is the name of the method itself,
found elsewhere in the plug-in.
Variables
None.
Converting Old-Style Hash Tables to Dictionaries
The Dictionary object is, among other things, a replacement for the old Hash object, which was a simple hash table object. You are recommended to use the new Dictionary object instead of the old Hash object in your plugins, but if you have an existing plug-in in which old-style hashes are used, you can convert them to Dictionaries
as follows:
Hash.ConvertToDictionary()
Returns a new Dictionary object, populated with strings converted from the old-style Hash.
DocumentSetup
Accessed from a Score object. Corresponds to the settings in Layout Document Setup.
When you first access the DocumentSetup object, the units default to millimetres; if you want to use another unit
of measurement, set DocumentSetup.Units before you set any of the other values. This will not, however,
change the units displayed in LayoutumentSetupDialog.
Be careful also that if you set DocumentSetup.PageSize after setting DocumentSetup.PageWidth
or DocumentSetup.PageHeight, the page size specified will override any custom height/width you may
have just set: so set the page size before you then adjust the width or height of the page.
Methods
None.
Chapter 4: Object Reference42
Document Setup; to do that, set DocumentSetup.UnitsInDoc-
Variables
AboveTopStaveGap
Returns or sets the top staff margin on each page in the units specified by the Units variable (read/write).
AboveTopStaveGapAfterFirstPage
Returns or sets the top staff margin on pages after the first page in the units specified by the Units variable
(read/write). To set this, first set FirstPageHasUniqueVerticalStaveMargins to True.
BelowBottomStaveGap
Returns or sets the bottom staff margin on each page in the units specified by the Units variable (read/write).
To set this, first set FirstPageHasUniqueVerticalStaveMargins to True.
BelowBottomStaveGapAfterFirstPage
Returns or sets the bottom staff margin on each page after the first page in the units specified by the Units variable (read/write).
FirstPageHasUniqueVerticalStaveMargins
Returns True if the After first page checkbox is switched on in Document Setup, specifying that the first page
of the score has different top and bottom staff margins to subsequent pages; otherwise returns False
(read/write).
Orientation
Returns or sets the current page orientation. Values are OrientationPortrait (0) and Orientation-
Landscape (1). If you change the orientation, this will swap the PageTopMargin and PageBottomMargin values with the PageLeftMargin and PageRightMargin values, to reflect the change in orientation
(read/write).
PageHeight
Returns or sets the height of a page in the units specified by the Units variable (read/write).
PageSize
Returns or sets the current page size. Values are listed in “PageSize Values” on page 171. If you attempt to set
PageSize to PageSizeCustom, Sibelius will do nothing; to set a custom page size, set PageWidth and
PageHeight individually. Setting any default PageSize value will also change the PageWidth and
PageHeight values (read/write).
PageWidth
Returns or sets the width of a page in the units specified by the Units variable (read/write).
MarginType
Returns or sets the current page margin type. Values are PageMarginsSame (0), PageMarginsMirrored
(1), PageMarginsDifferent (2) (read/write).
Chapter 4: Object Reference43
PageBottomMargin
Returns or sets the bottom page margin in the units specified by the Units variable (read/write).
PageLeftMargin
Returns or sets the left page margin in the units specified by the Units variable (read/write).
PageRightMargin
Returns or sets the right page margin in the units specified by the Units variable (read/write).
PageTopMargin
Returns or sets the top page margin in the units specified by the Units variable (read/write).
RightPageLeftMargin
Returns or sets the left page margin for right-hand pages in the units specified by the Units variable
(read/write). Setting this value automatically sets MarginType to PageMarginsDifferent.
RightPageRightMargin
Returns or sets the right page margin for right-hand pages in the units specified by the Units variable
(read/write). Setting this value automatically sets MarginType to PageMarginsDifferent.
StaffLeftMarginFullNames
Returns or sets the margin to the left of staves showing full instrument names in the units specified by the Units
variable (read/write).
StaffLeftMarginNoNames
Returns or sets the margin to the left of staves showing no instrument names in the units specified by the Units
variable (read/write).
StaffLeftMarginShortNames
Returns or sets the margin to the left of staves showing short instrument names in the units specified by the
Units variable (read/write).
StaffSize
Returns or sets the staff size in the units specified by the Units variable (read/write).
Units
Returns or sets the units of measurement for all of the relevant variables of the DocumentSetup object. Always
returns 0 (millimeters). Values are DocumentSetupUnitsmm (0), DocumentSetupUnitsInches (1),
DocumentSetupUnitsPoints (2) (read/write).
UnitsInDocumentSetupDialog
Returns or sets the units of measurement currently shown in the Layout
Document Setup dialog. Values are
as for Units.
Chapter 4: Object Reference44
DynamicPartCollection
Accessed from a Score object. Contains DynamicPart objects.
The DynamicPartCollection object always contains the full score as the first entry, whether or not any dynamic
parts exist. The DynamicPart objects are returned in the order in which they were created (the last part returned
is the most-recently created one). For scores in which dynamic parts were generated automatically, the parts will
normally be returned in top to bottom score order.
The edit context for ManuScript is stored in the score itself which means that ManuScript can only ever access
one part at a time – the “current” DynamicPart for that Score object. This is irrespective of the number of score
windows open for a score, which dynamic parts are open, and even if the user has managed to create two different
ManuScript Score objects referring to the same Sibelius score.
It is inadvisable to modify Staves, Bars, or any BarObjects that do not exist on Staves in Score.Current-DynamicPart. Doing so will create part overrides for part-specific properties of these objects which will be invisible until those Staves are added to the part. DynamicPart.IncludesStaff() can be used to test if a
DynamicPart contains a particular Staff object.
Both DynamicPartCollection and DynamicPart refer to an underlying Score and part(s) and will generate errors
if the Score and/or part(s) are no longer valid (for example, if a DynamicPart has been deleted). DynamicParts
are never “re-used.” For example, if you delete a DynamicPart and create a new DynamicPart, the old ManuScript DynamicPart object will not refer to the newly-created DynamicPart.
for each variable in iterates through all valid DynamicPart objects for the Score, always starting first with
the full score. Adding or deleting parts while iterating will have undefined results, and is not recommended.
Array access [int n] returns the nth part (0 is always the full score), or null if the part does not exist.
Methods
CreateDefaultParts()
Creates the default set of dynamic parts, as created automatically by Sibelius when clicking the New Part button
in the Parts window. This method does nothing and returns False if the Score has no staves.
CreatePartFromStaff(staff)
Creates a dynamic part from the specified Staff object, if valid. Returns the new DynamicPart object for success,
or null for failure.
DeletePart(dynamic part)
Deletes the specified part, if it’s valid. Returns True for success, False for failure. This method fails is the
specified dynamic part is the currently active part for the Score, or is the full score, or refers to a different Score.
Variables
NumChildren
Returns the number of DynamicPart objects for the Score returned by iteration (read only).
Chapter 4: Object Reference45
DynamicPart
Accessed from a DynamicPartCollection object.
for each variable in returns the Staff objects in the dynamic part, in top to bottom order. Warning: this can
return a Staff that is not included in Score.CurrentDynamicPart.
Methods
AddStaffToPart(staff)
Adds the specified staff to the bottom of the dynamic part. Returns False for failure. This method will cause an
error if it is called on the full score, or if attempting to add a staff that is already present in the part or a staff from
a different score.
DeleteStaffFromPart(staff)
Deletes the specified staff from the dynamic part. Returns False for failure. This method will cause an error if
called on the full score, or if attempting to delete a staff that is not present in the part, or if deleting the last staff
in a part, or attempting to delete a part from a different score.
IncludesStaff(staff)
Returns True if the specified staff is contained in this dynamic part.
Variables
IsFullScore
Returns True if this is the full score (read only).
IsSelectedInPartsWindow
Returns True if the part is selected in the Parts window (read only).
StaveCount
Returns the number of staves in the part (read only).
ParentScore
Returns the Score object containing this dynamic part (read only).
Chapter 4: Object Reference46
EngravingRules
Accessed via the Score object. Corresponds to selected settings in the House Style > Engraving Rules dialog.
Methods
None.
Variables
AdjustTranspositionIfKeySigWraps
Returns True if Sibelius will adjust note spelling for transposing instruments in extreme keys, False otherwise; corresponds to the Adjust note spelling in transposing instruments in remote keys option on the Clefsand Key Signatures page (read/write).
BarlineWidth
Returns or sets the width of normal barlines in spaces, from the Barlines page (read/write).
BeamThickness
Returns or sets the thickness of beams in spaces, from the Beams and Stems page (read/write).
CautionaryNaturalsInKeySignatures
Returns True if key changes will show cautionary naturals; False otherwise, from the Clefs and Key
Signatures page (read/write).
CueNoteScale
Returns or sets the percentage by which cue-sized notes are scaled relative to normal-sized notes, from the Notes
and Tremolos page (read/write).
DashedBarlineWidth
Returns or sets the width of dashed barlines in spaces, from the Barlines page (read/write).
DoubleBarlineSeparation
Returns or sets the distance between the two lines in double barlines in spaces, from the Barlines page
(read/write).
DoubleBarlineWidth
Returns or sets the width of double barlines in spaces, from the Barlines page (read/write).
DoubleTremoloStyle
Returns or sets the style used for double tremolos in the score, from the Notes and Tremolos page; values are
Corresponding to the option for instrument names at the start of new sections on the Instruments page; values
are InstrumentNamesFull (0), InstrumentNamesShort (1), InstrumentNamesNone (2)
(read/write).
InstrumentNamesSubsequentSystems
Corresponding to the option for instrument names on subsequent systems on the Instruments page; values are
InstrumentNamesFull (0), InstrumentNamesShort (1), InstrumentNamesNone (2)
(read/write).
JustifyGrandStaveInstruments
Returns True if Justify both staves of grand staff instruments on the Staves page is switched on, otherwise
False (read/write).
JustifyMultiStaveInstruments
Returns True if Justify all staves of multi-staff instruments on the Staves page
is switched on, otherwise
False (read/write).
LegerLineThickness
Returns or sets the thickness of leger lines in spaces, from the Notes and Tremolos page (read/write).
Chapter 4: Object Reference48
RespellRemoteKeysInTransposingScore
Returns True if Sibelius will choose the equivalent key signature with one fewer flat or sharp for transposing instruments; False otherwise, corresponding to the option Respell remote key signatures in transposingscore on the Clefs and Key Signatures page (read/write).
Returns True if Sibelius will update the instrument name at the start of each system to reflect the current instrument change, False otherwise; corresponds to the Change instrument names at start of system after in-strument changes option on the Instruments page (read/write).
SlurMiddleThickness
Returns or sets the default thickness of the middle of slurs in spaces, from the Slurs page (read/write).
SlurOutlineWidth
Returns or sets the thickness of slur ends in spaces, from the Slurs page (read/write).
SmallStaffSizeScale
Returns or sets the percentage by which small staves are scaled relative to normal-sized staves, from the Staves
page (read/write).
SpacesBetweenStaves
Returns or sets the n spaces between staves value on the Staves page (read/write).
SpacesBetweenSystems
Returns or sets the n spaces between systems value on the Staves page (read/write).
StaffJustificationPercentage
Returns or sets the Justify staves when page is at least n% full value on the Staves page (read/write).
StaffLineWidth
Returns or sets the width of a staff line in spaces, from the Staves page (read/write).
StemThickness
Returns or sets the thickness of stems in spaces, from the Beams and Stems page (read/write).
TieMiddleThickness
Returns or sets the thickness of the middle of ties in spaces, from the Ties 1 page (read/write).
TieOutlineWidth
Returns or sets the thickness of tie ends in spaces, from the Ties 1 page (read/write).
Chapter 4: Object Reference49
File
Retrievable using for each on a folder.
Methods
Delete()
Deletes a file, returning True if successful.
Rename(newFileName)
Renames a file, returning True if successful.
Variables
CreationDate
Returns the file’s creation date and time as a DateTime object, in local time (read only).
CreationDateAndTime
A string giving the date and time the file was last modified in GMT (read only).
ModificationDate
Returns the file’s modification date and time as a DateTime object, in local time (read only).
Name
The complete pathname of the file, no extension (read only).
NameWithExt
The complete pathname of the file, with extension (read only).
NameNoPath
Just the name of the file, no extension (read only).
Path
Returns just the path to the file (read only).
Type
A string giving the name of the type of the object; File for file objects (read only).
Chapter 4: Object Reference50
Folder
Retrievable from methods of the Sibelius object.
for each variable in produces the Sibelius files in the folder, as File objects
for each type variable in produces the files of type type in the folder, where type is a Windows extension.
Useful values are SIB (Sibelius files), MID (MIDI files) or OPT (PhotoScore files), because they can all be
opened directly by Sibelius. On the Macintosh files of the corresponding Mac OS Type are also returned (so, for
example, for each MID f will return all files whose names end in .MID, and all files of type “Midi”).
Both these statements return subfolders recursively.
Methods
FileCount(Type)
Returns the number of files of type Type in the folder. As above, useful values are SIB, MID or OPT.
Variables
FileCount
The number of Sibelius files in the folder (read only).
FileCountAllTypes
The number of files of all types in the folder (read only).
Name
The name of the folder (read only).
Type
A string giving the name of the type of the object; Folder for folder objects (read only).
Chapter 4: Object Reference51
GuitarFrame
Derived from a BarObject. This refers to chord symbols as created by Create > Chord Symbol, whether or not
they show a guitar chord diagram (guitar frame), but is called GuitarFrame in ManuScript for historical reasons.
Methods
CopyOutSuffixes()
Returns an array containing a list of the suffix elements present in the chord. If the chord symbol is an
unrecognised chord type, the array returned will be empty. The values that can be returned in the array are
as follows:
Returns an array containing the chromatic pitches of the notes in the chord, assuming a voicing in close position.
If consider root is True (it defaults to False), the pitches returned will be offset according to the chromatic value
of the root note on which the chord is based.
GetEndStringForNthBarre(barreNum)
Returns the string number on which the nth barré ends.
GetPitchOfNthString(stringNum)]
Returns the pitch of the given (open) string stringNum, as a MIDI pitch.
Chapter 4: Object Reference52
GetPositionOfFingerForNthBarre(barreNum)
Returns the fret position that the nth barré occupies.
GetPositionOfFingerOnNthString(stringNum)
Returns the position of the black dot representing the finger position on a given string stringNum, relative to the
top of the frame. A return value of 0 means the string is open (that is a hollow circle appears at the top of the diagram), and -1 means that the string is not played (that is an X appears at the top of the diagram). Used in conjunction with GetPitchOfNthString(), you can calculate the resulting pitch of each string.
GetStartStringForNthBarre(barreNum)
Returns the string number from which the nth barré begins.
IsNthStringPartOfBarre(stringNum)
Returns True if the given string is part of a barré.
NthStringHasClosedMarkingAtNut(nth string)
Returns True if there’s an X marking at the top or left of the specified string.
NthStringHasOpenMarkingAtNut(nth string)
Returns True if there’s an O marking at the top or left of the specified string.
Variables
BassAsString
The note name of the chord symbol’s altered bass note (for example: “F”).
ChordNameAsStyledString
The name of the chord represented by this chord symbol as it appears in the score, for example: “Cm^7” (read
only).
ChordNameAsPlainText
The name of the chord represented by this chord symbol as it appears when editing the chord symbol, so that in
its plain text representation, for example: “Cmmaj7” (read only).
ChromaticRoot
The chromatic pitch (C = 0, B = 11) of the chord symbol’s root note (read only).
ChromaticBass
The chromatic pitch (C = 0, B = 11) of the chord symbol’s altered bass note (read only).
Chapter 4: Object Reference53
DiatonicRoot
The diatonic pitch, that is the number of the “note name” to which this note corresponds, 7 per octave (0 = C, 1
=D,2=Eandsoon), of the chord symbol’s root note (read only).
DiatonicBass
The diatonic pitch, that is the number of the “note name” to which this note corresponds, 7 per octave (0 = C, 1
=D,2=Eandsoon), of the chord symbol’s altered bass note (read only).
Fingerings
The fingerings string for this chord. This is a textual string with as many characters as the guitar frame has strings
(for example, six for standard guitars). Each character corresponds to a guitar string. Use to denote that a string
has no fingering.
FrameIsVisible
True if the chord symbol is currently showing a guitar chord diagram (read only).
Horizontal
True if the guitar chord diagram is horizontally orientated, False if it is vertically orientated (read/write).
LowestVisibleFret
The number of the top fret shown in the guitar chord diagram; setting the special value -1 resets the lowest visible fret to the default for that chord diagram (read/write).
NumBarresInChord
The number of unique barrés in the guitar chord diagram (read only).
NumberOfFrets
The number of frets in the guitar chord diagram, that is the number of horizontal lines; setting the special value
-1 resets the number of frets to the default for that chord diagram (read/write).
NumberOfStrings
The number of strings in the guitar chord diagram, for example,. the number of vertical lines (read only).
NumPitchesInClosePosition
The number of unique pitches in the chord, assuming a voicing in close position with no duplicates.
Recognized
Returns True if the chord symbol is a specific recognized chord type, and False otherwise, that is if the chord
symbol is shown in red in the score because Sibelius is unable to parse the user’s input (read only).
RootAsString
The note name of the chord symbol’s root (for example, “C#”).
Chapter 4: Object Reference54
ScaleFactor
The scale factor of the guitar chord diagram (as adjustable via the Scale parameter on the General panel of
Properties), expressed as a percentage (read/write).
ShowFingerings
Set to True if the fingerings string should be displayed, False otherwise (read only).
SuffixText
The suffix part of the chord symbol as it appears in the score, or an empty string if the chord isn’t recognised
(read only).
TextIsVisible
True if the chord symbol is currently showing a text chord symbol (read only).
TransposingChromaticRoot
Returns the chromatic pitch of the root note for the specified chord symbol as if the score is shown at transposed
pitch, but regardless of whether or not Notes
Transposing Score is switched on.
TransposingChromaticBass
Returns the chromatic pitch of the altered bass note for the specified chord symbol, if present, as if the score is
shown at transposed pitch, but regardless of whether or not Notes > Transposing Score is switched on.
TransposingDiatonicRoot
Returns the diatonic pitch of the root note for the specified chord symbol as if the score is shown at transposed
pitch, but regardless of whether or not Notes > Transposing Score is switched on.
TransposingDiatonicBass
Returns the diatonic pitch of the altered bass note for the specified chord symbol, if present, as if the score is
shown at transposed pitch, but regardless of whether or not Notes > Transposing Score is switched on.
TransposingRootAsString
Returns a string representing the pitch of the root note for the specified chord symbol as if the score is shown at
transposed pitch, but regardless of whether or not Notes > Transposing Score is switched on.
TransposingBassAsString
Returns a string representing the pitch of the altered bass note for the specified chord symbol, if present, as if the
score is shown at transposed pitch, but regardless of whether or not Notes > Transposing Score is switched on.
VisibleComponents
The visible parts of the chord symbol, that is whether it displays a text chord symbol only (TextOnly), a guitar
chord diagram only (FrameOnly), both a text chord symbol and a guitar chord diagram (FrameAndText), or
whether or not the chord symbol shows a guitar chord diagram based on the type of instrument to which it is attached (InstrumentDependent) (read/write).
Chapter 4: Object Reference55
GuitarScaleDiagram
Derived from a BarObject. This refers to guitar scale diagrams as created by Create Guitar Scale Diagram.
Methods
GetDotFingeringsOnNthString(nth string)
Returns an array of strings containing the text that has been entered on the dots on a given string.
GetDotSymbolsOnNthString(nth string)
Returns an array of values describing the appearance of each of the dots on a given string. The possible values
are DotStyleCircle, DotStyleFilledCircle, DotStyleSquare, DotStyleFilledSquare,
DotStyleDiamond, and DotStyleFilledDiamond.
GetPitchesOfDotsOnNthString(nth string)
Returns an array containing the pitches of all the dots on a given string, in ascending order of pitch.
GetPitchOfNthString(stringNum)
Returns the pitch of the given (open) string stringNum, as a MIDI pitch.
Variables
Fingerings
The fingerings string for this scale diagram. This is a textual string with as many characters as the scale diagram
has strings (for example, six for standard guitars). Each character corresponds to a guitar string. Use – to denote
that a string has no fingering.
Horizontal
True if the guitar scale diagram is horizontally orientated, False if it is vertically orientated (read/write).
LowestVisibleFret
The number of the top fret shown in the guitar scale diagram; setting the special value -1 resets the lowest visible
fret to the default for that scale diagram (read/write).
NumberOfFrets
The number of frets in the guitar scale diagram, for example, the number of horizontal lines; setting the special
value -1 resets the number of frets to the default for that scale diagram (read/write).
NumberOfStrings
The number of strings in the guitar scale diagram,for example, the number of vertical lines (read only).
Chapter 4: Object Reference56
Root
Returns the chromatic pitch (C = 0) of the scale’s root note (read only).
ScaleFactor
The scale factor of the guitar scale diagram (as adjustable via the Scale parameter on the General panel of Properties), expressed as a percentage (read/write).
ScaleType
Returns the type of the guitar scale diagram, as specified in the list of “GuitarScaleDiagram Type Values” on
page 169 (read only).
ShowFingerings
Set to True if the fingerings string should be displayed, False otherwise (read only).
HitPointList
Retrievable as the HitPoints variable of a score. It can be used in a for each loop or as an array with the
[n] operator—this gives access to a HitPoint object. The HitPoint objects are stored in time order, so be careful
if you remove or modify the time of the objects inside a loop. If you want to change the times of all the hit points
by the same value then use the ShiftTimes function.
Methods
Clear()
Removes all hit points from the score.
CreateHitPoint(timeMs,label)
Creates a hit point in the score at the given time (specified in milliseconds) with a specified string label. Returns
the index in the HitPointList at which the new hit point was created.
Remove(index)
Removes the given hit point number.
ShiftTimes(timeMs)
Adds the given time (in milliseconds) onto all the hit points. If the time is negative then this is subtracted from
all the hit points.
Variables
NumChildren
Number of hit points (read only).
Chapter 4: Object Reference57
HitPoint
Individual element of the HitPointList object.
Methods
None.
Variables
Bar
The bar in which this hit point occurs (read only).
Label
The name of the hit point (read/write).
Position
The position within the bar at which this hit point occurs (read only).
Time
The time of the hit point in milliseconds. Note that changing this value may change the position of the hit point
in the HitPointList (read/write).
InstrumentChange
Derived from a Bar object. Provides information about any instrument changes that may exist in the score.
Methods
None.
Variables
StyleIdword
Returns the style ID of the new instrument; see “Instrument Types” on page 136 (read only).
TextLabel
Returns the text that appears above the staff containing the instrument change in the score (read only).
Chapter 4: Object Reference58
InstrumentTypeList
Contains a list of InstrumentType objects common to a given score.
for each type variable in returns each instrument type in the list, in alphabetical order by the instrument
type’s style ID.
Array access [int n] returns the nth instrument type, in the same order as using a for each iterator, or null if
the instrument type does not exist.
Methods
None.
Variables
NumChildren
Returns the number of unique instrument types in the list (read only).
InstrumentType
Provides information about an individual instrument type.
Methods
Clone()
Makes an exact copy of an existing instrument type.
PitchOfNthString(string num)
Returns the pitch of a given string in a tablature staff, with string number 0 being the lowest string on the instrument.
Variables
Balance
Returns the instrument’s default balance, in the range 0–100 (read only).
Category
Returns an index representing the category of the staff type belonging to this instrument type; 0 = pitched; 1 =
percussion; 2 = tablature (read only).
Chapter 4: Object Reference59
ChromaticTransposition
Returns the number of half-steps (semitones) describing the transposition of transposing instruments; such as for
B-flat Clarinet, this returns -2 (read/write).
ChromaticTranspositionInScore
Returns the number of half-steps (semitones) describing the transposition of transposing instruments in a score
shown at concert pitch. Typically this is only used by instruments that transpose by octaves, so this will return,
for example, 12 for piccolo or –12 for guitars (read only).
ComfortableRangeHigh
Returns the highest comfortable note (MIDI pitch) of the instrument (read only).
ComfortableRangeLow
Returns the lowest comfortable note (MIDI pitch) of the instrument (read only).
ConcertClefStyleId
Returns the style ID of the normal clef style of the instrument (read only).
DefaultSoundId
Returns the default sound ID used by the instrument (read only).
DiatonicTransposition
Returns the number of diatonic steps describing the transposition of transposing instruments; such as for B-flat
Clarinet, this returns -1 (read/write).
DiatonicTranspositionInScore
Returns the number of diatonic steps describing the transposition of transposing instruments in a score shown at
concert pitch (read only).
DialogName
Returns the name of the instrument as displayed in the Create
Instruments dialog in Sibelius (read/write).
FullName
Returns the name of the instrument as visible on systems showing full instrument names (read only).
HasBracket
Returns True if the instrument has a bracket (read only).
HasKeySignatureOrTuning
Returns True if the instrument type has the Key signature / Tuning checkbox switched on in the Edit Staff
Type dialog.
Chapter 4: Object Reference60
InstrumentTypeForChordDiagrams
Returns the style ID of the tab instrument type that determines the tuning used for chord diagrams shown for this
instrument, that is corresponding to the Tab instrument to use for string tunings in the New/Edit Instrument
dialogs.
IsVocal
Returns True if the instrument type used has the Vocal staff option switched on, meaning that, for example, the
default positions of dynamics should be above the staff rather than below (read only).
NumStaveLines
Returns the number of staff lines in the staff (read only).
NumStrings
Returns the number of strings in a tablature staff (read only).
OtherClefStyleId
Returns the style ID of the clef style of the second staff of grand staff instruments, piano for example (read only).
Pan
Returns the instrument’s default pan setting, in the range –127 (hard left) to 127 (hard right) (read only).
ProfessionalRangeHigh
Returns the highest playable note (MIDI pitch) of the instrument for a professional player (read only).
ProfessionalRangeLow
Returns the lowest playable note (MIDI pitch) of the instrument for a professional player (read only).
ShortName
Returns the name of the instrument as visible on systems showing short instrument names (read only).
StyleId
Returns the style ID of the instrument; see “Global Constants” on page 127 (read only).
TransposingClefStyleId
Returns the style ID of the clef to be used when Notes > Transposing Score is switched on (read only).
Chapter 4: Object Reference61
KeySignature
Derived from a BarObject.
Methods
None.
Variables
AsText
The name of the key signature as a string (read only).
IsOneStaffOnly
True if this key signature belongs to one staff only (read only).
Major
True if this key signature is a major key (read only).
Sharps
The number of sharps (positive) or flats (negative) in this key signature (read only).
Line
Anything you can create from the Create > Line dialog is a line object, such as CrescendoLine, DiminuendoLine, and so on. These objects are derived from a BarObject.
Methods
None.
Variables
Duration
The total duration of the line, in 1/256th quarters (read/write).
EndBarNumber
The bar number in which the line ends (read only).
EndPosition
The position within the final bar at which the line ends (read only).
Chapter 4: Object Reference62
RhDx
The horizontal graphic offset of the right-hand side of the line, in units of 1/32 spaces (read/write).
RhDy
The vertical graphic offset of the right-hand side of the line from the centre staff line, in units of 1/32 spaces, positive going upwards (read/write).
StyleId
The identifier of the line style associated with this line (read only).
StyleAsText
The name of the line style associated with this line (read only).
LyricItem
Derived from a BarObject
Methods
None.
Variables
The total duration of the lyric line, in 1/256th quarters (see “Line” on page 62) (read/write).
NumNotes
Gives the number of notes occupied by this lyric item (read/write). Note that changing this value will not automatically change the length of the lyric line; you also need to set the lyric line’s Duration variable to the correct length.
StyleAsText
The text style name (read/write).
StyleId
he identifier of the text style of this lyric (read/write).
SyllableType
An integer indicating whether the lyric is the end of a word (EndOfWord) or the start or middle of one (Mid-
dleOfWord) (read/write). This affects how the lyric is jusitifed, and the appearance of hyphens that follow it.
EndOfWord and MiddleOfWord are global constants; see “SyllableTypes for LyricItems” on page 164.
Text
The text as a string (read/write).
Chapter 4: Object Reference63
NoteRest
Derived from a BarObject. A NoteRest contains Note objects, stored in order of increasing diatonic pitch.
for each variable in returns the notes in the NoteRest.
Adds a grace note with a slash on its stem (acciaccatura) before a given NoteRest. The duration should be specified as normal, for example, 128 would create a grace note with one beam/flag. The optional tied parameter
should be True if you want the note to be tied. Voice 1 is assumed unless the optional voice parameter (with a
value of 1, 2, 3 or 4) is specified. If force stem dir is set to True (the default), stems of graces notes in voices 1
and 3 will always point upwards, and stems of notes in voices 2 and 4, downwards. You can also set the diatonic
pitch, that is the number of the “note name” to which this note corresponds, 7 per octave (35 = middle C, 36 =
D, 37 = E and so on). If a diatonic pitch of zero is given then a suitable diatonic pitch will be calculated from the
MIDI pitch. The optional string number parameter gives a string number for this note, which is only meaningful
if the note is on a tablature stave. If this parameter is not supplied then a default string number is calculated based
on the current tablature stave type and the guitar tab fingering options (specified on the Note Input page of File
> Preferences). Returns the Note object created (to get the NoteRest containing the note, use Note.Parent-
NoteRest).
Note that adding a grace note before a NoteRest will always create an additional grace note, just to the left of the
note/rest to which it is attached. If you wish to create grace notes with more than one pitch, you should call Add-
Adds a note with the given MIDI pitch (60 = middle C), for example to create a chord. The optional second parameter specifies whether or not this note is tied (True or False). The optional third parameter gives a diatonic
pitch, which is the number of the ‘note name’ to which this note corresponds, 7 per octave (35 = middle C, 36 =
D, 37 = E etc.). If this parameter is 0 then a default diatonic pitch will be calculated from the MIDI pitch. The optional fourth parameter gives a string number for this note, which is only meaningful if the note is on a tablature
stave. If this parameter is not supplied then a default string number is calculated based on the current tablature
stave type and the guitar tab fingering options (specified on the Notes page of File > Preferences). Returns the
Note object created.
Delete()
Deletes all the notes in the NoteRest, converting the entire chord into a rest of similar duration.
Chapter 4: Object Reference64
FlipStem()
Flips the stem of this NoteRest—this acts as a toggle.
GetArticulation(articulation number)
Returns True or False depending on whether the given articulation is currently set on this note. The valid articulation numbers are defined in “Articulations” on page 163.
NoteRest[array element]
Returns the nth note in the chord, in order of increasing diatonic pitch (counting from 0). For example,
NoteRest[0] returns the lowest note (in terms of diatonic pitch–see AddNote below).
RemoveNote(note)
Removes the specified Note object.
SetArticulation(articulation number,set)
If set is True, turns on the given articulation; otherwise turns it off. The valid articulation numbers are defined
in “Articulations” on page 163.
Transpose(degree, interval type[
Transposes the entire NoteRest up or down by a specified degree and interval type. To transpose up, use positive
values for degree; to transpose down, use negative values. Note that degrees are 0-based, so 0 is equal to a uni-
son, 1 to a second and so on. For descriptions of the various available interval types, see “Global Constants” on
page 127. By default, Sibelius will transpose using double sharps and flats where necessary, but this behavior
may be suppressed by setting the keep double accs flag to False.
For help in calculating the interval and degree required for a particular transposition, see the documentation for
the Sibelius.CalculateInterval and Sibelius.CalculateDegree methods.
,keep double accs])
Variables
ArpeggioDx
The horizontal offset of the arpeggio line on the NoteRest (read/write), in units of 1/32nd of a space (the distance
between two adjacent staff lines).
ArpeggioType
The type of note-attached arpeggio line present on the NoteRest. Values are ArpeggioTypeNone, Arpeg-
The vertical offset of the top of the note-attached arpeggio line on the NoteRest (read/write), in units of 1/32nd
of a space.
Chapter 4: Object Reference65
ArpeggioBottomDy
The vertical offset of the bottom of the note-attached arpeggio line on the NoteRest (read/write), in units of
1/32nd of a space.
ArpeggioHidden
Returns True if the note-attached arpeggio line on the NoteRest is hidden (read/write).
Articulations
Lets you copy a set of articulations from one NoteRest to another (read/write), for example:
destNr.Articulations = sourceNr.Articulations;
Beam
Takes values StartBeam, ContinueBeam, NoBeam and SingleBeam. (see “Global Constants” on
page 127 for details). These correspond to the keys 7, 8, * (/ on Mac) and / (* on Mac) on the third (F9) Keypad
layout.
DoubleTremolos
Gives the number of double tremolo strokes starting at this note, in the range 0–7. Means nothing for rests. To
create a double tremolo between two successive notes, ensure they have the same duration and set the Double-
Tremolos of the first one (read/write).
Duration
The duration of the note rest (read only).
FallDx
The horizontal offset of a fall, if present on the NoteRest (read/write), in units of 1/32nd of a space.
FallType
\The type of note-attached fall present on the NoteRest. Values are FallTypeNone, FallTypeNormal and
FallTypeDoit (read/write)
FeatheredBeamType
Returns one of three values, based on whether a note is set to produce a feathered beam. Values are FeatheredBeamNone (0), FeatheredBeamAccel (1) and FeatheredBeamRit (2) (read/write).
GraceNote
True if it’s a grace note (read only).
HasStemlet
Returns True if the note is showing a stemlet, according either to the state of the Use stemlets on beamed
rests option on the Beams and Stems page of Engraving Rules or the stemlet button on the Keypad (read
only).
Chapter 4: Object Reference66
Highest
The highest Note object in the chord (read only).
IsAcciaccatura
True if it’s an acciaccatura, that is. a grace note with a slash through its stem (read only).
IsAppoggiatura
True if it’s an appoggiatura, that is a grace note without a slash through its stem (read only).
Lowest
The lowest Note object in the chord (read only).
NoteCount
The number of notes in the chord (read only).
ParentTupletIfAny
If the NoteRest intersects a tuplet, the innermost Tuplet object at that point in the score is returned. Otherwise,
null is returned (read only).
PositionInTuplet
Returns the position of the NoteRest relative to the duration and scale-factor of its parent tuplet. If the NoteRest
does not intersect a tuplet, its position within the parent Bar is returned as usual (read only).
RestPosition
The vertical position of a rest (read/write).
ScoopDx
The horizontal offset of a scoop or plop, if present on the NoteRest (read/write), in units of 1/32nd of a space.
ScoopType
The type of note-attached scoop present on the NoteRest. Values are ScoopTypeNone, ScoopTypeNormal,
ScoopTypePlop (read/write).
StemFlipped
True if the stem is flipped (read only).
StemletType
Provides information about whether the NoteRest is set to display a stemlet using the options on the Keypad. Returns either StemletCustomOff (in which case the NoteRest definitely does not show a stemlet), Stem-letCustomOn (in which case the NoteRest definitely does show a stemlet), or StemletUseDefault (in
which case you should use the read-only variable HasStemlet to determine whether the NoteRest currently
shows a stemlet) (read/write).
Chapter 4: Object Reference67
Stemweight
Returns the stemweight of a note, taking beams into account (read only). For an unbeamed note, this is the sum
of the stave positions of all the notes in the NoteRest, where the stave position of the middle line is zero and the
position increases as you move up the stave and decreases as you move downwards. For a beamed note, it is the
sum of all the stemweights of the NoteRests under the beam (treated as though they were unbeamed).
There are some special cases. If a note has its stem direction forced due to voicing, then the stemweight will be
one of the global constants StemweightUp or StemweightDown. If a note has its stem direction forced due
to the “flip” flag being set, the stemweight will be either StemweightFlipUp or StemweightFlipDown.
Finally, cross-stave notes have stemweight equal to StemweightCross.
If the stemweight is less than zero, the stem will point up, otherwise it will point down.
SingleTremolos
Gives the number of tremolo strokes on the stem of this note, in the range –1 (for “z on stem”) to 7. Means nothing for rests (read/write).
Note
Only found in NoteRests. Correspond to individual noteheads.
Methods
Delete()
Removes a single note from a chord.
Transpose(degree, interval type[
Transposes and returns a single Note object up or down by a specified degree and interval type*. To transpose
up, use positive values for degree; to transpose down, use negative values. Note that degrees are 0-based, so 0 is
equal to a unison, 1 to a second and so on. For descriptions of the various available interval types, see “Global
Constants” on page 127. By default, Sibelius will transpose using double sharps and flats where necessary, but
this behavior may be suppressed by setting the keep double accs flag to False. For help in calculating the interval
and degree required for a particular transposition, see the documentation for the Sibelius.CalculateInterval and Sibelius.CalculateDegree methods.
* N.B.: Individual note objects cannot be transposed diatonically.
,keep double accs])
Variables
Accidental
The accidental, for which global constants such as Sharp, Flat and so on are defined; see “Global Constants”
on page 127 (read only).
Chapter 4: Object Reference68
AccidentalStyle
The style of the accidental (read/write). This can be any of following four global constants: NormalAcc,
HiddenAcc, CautionaryAcc (which forces an accidental to appear always) and BracketedAcc
(which forces the accidental to be drawn inside brackets).
Bracketed
The bracketed state of the note, as shown on the F9 layout of the Keypad (read/write).
Color
The color of this Note (read/write). The color value is in 24-bit RGB format, with bits 0–7 representing blue, bits
8–15 green, bits 16–23 red and bits 24–31 ignored. Since ManuScript has no bitwise arithmetic, these values can
be a little hard to manipulate; you may find the individual accessors for the red, green and blue components to
be more useful (see below).
When all Notes in a given NoteRest are the same color, then that color is also promoted to the parent
NoteRest itself. This allows backwards compatibility with versions of Sibelius prior to 8.3 that did not
support the individual coloring of Notes. Coloring of NoteRest-attached objects, such as articulations
and rhythm dots is not supported.
ColorAlpha
The alpha channel component of the color of this Note, in the range 0–255 (read/write).
ColorRed
The red component of the color of this Note, in the range 0–255 (read/write).
ColorGreen
The green component of the color of this Note, in the range 0–255 (read/write).
ColorBlue
The blue component of the color of this Note, in the range 0–255 (read/write).
DiatonicPitch
The diatonic pitch of the note, that is the number of the “note name” to which this note corresponds, 7 per octave
(35 = middle C, 36 = D, 37 = E and so on). (read/write)
If Note.DiatonicPitch is changed from the full score (not a dynamic part), the written pitch and spelling
of any accidental is changed in both the full score and the part (where there is no difference in spelling). If changed from a part, Sibelius respells any accidental in the part only, leaving the full score unchanged. In both cases, while there may be a difference in written pitch, Sibelius guarantees that there
is never a difference in the sounding pitch of a note between a part and the full score.
Chapter 4: Object Reference69
IsAccidentalVisible
Returns True if the accidental on the note is visible, which is the equivalent of whether or not the corresponding
button on the Keypad is illuminated for that note (read only).
Name
The pitch of the note as a string (read only).
NoteStyle
The index of the notehead style of this Note (read/write). The styles correspond to those accessible from the
Notes panel of the Properties window in Sibelius; see “Note Style Names” on page 162 for a complete list of the
defined NoteStyles.
NoteStyleName
The name of the notehead style of this Note (read/write). If an attempt is made to apply a non-existant style name,
the note in question will retain its current notehead.
OriginalDeltaSr
The Live start position of this notehead (in 1/256th quarters), as shown in the Playback panel of Properties
(read/write). This value can be positive or negative, indicating that the note is moved forwards or backwards.
OriginalDuration
The Live duration of this notehead (in 1/256th quarters), as shown in the Playback panel of Properties
(read/write).
OriginalVelocity
The Live velocity of this notehead (in MIDI volume units, 0–127), as shown in the Playback panel of Properties
(read/write). Note that the word “original” refers to the fact that this data is preserved from the original performance if the score was imported from a MIDI file or input via Flexi-time. For further details on this value, and
the ones following below, read the Live Playback section in Sibelius Reference.
ParentNoteRest
The NoteRest object that holds this note (read only).
Pitch
The MIDI pitch of the note, in semitones, 60 = middle C (read only).
Slide
Is True if the note has a slide, False otherwise (read/write).
Chapter 4: Object Reference70
SlideStyleId
The slide line style state of the note lets you attach or detach glissandi and other lines to a note (read/write).
The following Line styles are available by default (as seen in the Inspector):
You can also define and assign additional custom Line styles that are not based on the available default Line
styles (see “Line Styles” on page 131 for more information).
Custom Line style examples:
// Add/set a note slide style
note.SlideStyleId = "line.staff.gliss.straight";
// Log a note slide style to the plug-in trace window
Trace(note.SlideStyleId);
// Using a custom line style
note.SlideStyleId = "line.staff.gliss.straight.user.0000001";
StringNum
The string number of this note, only defined if the note is on a tablature stave. If no string is specified, reading
this value will give –1. Strings are numbered starting at 0 for the bottom string and increasing upwards (read
only).
Tied
Is True if the note is tied to the following note (read/write).
WrittenAccidental
The accidental, taking transposition into account (read only).
WrittenDiatonicPitch
The written diatonic pitch of the note, taking transposition into account if Score.TransposingScore is
True (35 = middle C).
WrittenName
The written pitch of the note as a string (taking transposition into account) (read only).
WrittenPitch
The written MIDI pitch of the note, taking transposition into account if Score.TransposingScore is
True (60 = middle C) (read only).
Chapter 4: Object Reference71
UseOriginalDeltaSrForPlayback
Is True if the Live start position of this Note should be used for Live Playback. Corresponds to the Live start
position checkbox in the Playback panel of the Properties window.
UseOriginalDurationForPlayback
Is True if the Live duration of this Note should be used for Live Playback. Corresponds to the Live duration
checkbox in the Playback panel of the Properties window.
UseOriginalVelocityForPlayback
Is True if the Live velocity of this Note should be used for Live Playback. Corresponds to the Live velocity
checkbox in the Playback panel of the Properties window.
NoteSpacingRule
Provides access to the settings from the Appearance > House Style > Note Spacing Rule dialog. Obtained
by way of the Score object, for example:
nsr = Sibelius.ActiveScore.NoteSpacingRule;
Methods
None.
Variables
The following variables are listed in the same order as the options to which they correspond in the Note Spacing
Rule dialog.
FixedBarRestWidth
The width of an empty bar if the Fixed empty bar width n spaces radio button is chosen (read/write). This
value is only used if DetermineEmptyBarWidthBySrLength is False.
DetermineEmptyBarWidthBySrLength
Returns True if Empty bar width is determined by time signature is chosen , otherwise False (read/write).
StartOfBarGap
The value of Before first note in bar n spaces (read/write).
MinimumDurationSpace
The value of Short notes n spaces (read/write).
SpaceForSixteenth
The value of 16th note (semiquaver) n spaces (read/write).
Chapter 4: Object Reference72
SpaceForEighth
The value of 8th note (quaver) n spaces (read/write).
SpaceForQuarter
The value of Quarter note (crotchet) n spaces (read/write).
SpaceForHalf
The value of Half note (minim) n spaces (read/write).
SpaceForWhole
The value of Whole note (semibreve) n spaces (read/write).
SpaceForDoubleWhole
The value of Double whole note (breve) n spaces (read/write).
AllowSpaceForVoiceConflicts
Returns True if Allow extra space for colliding voices is switched on, otherwise False (read/write).
SpaceAroundGraceNote
The value of Space around grace notes n spaces (read/write).
ExtraSpaceAfterLastGraceNote
The value of Extra space after last grace note n spaces (read/write).
IncludeChordSymbols
Returns True if Allow space for chord symbols is switched on, otherwise False (read/write).
ExtraSpaceBetweenGuitarFrames
The value of Minimum gap between chord symbols n spaces (read/write).
MinSpaceAroundNote
The value of Around noteheads (and dots) n spaces (read/write).
MinSpaceBeforeAccidental
The value of Before accidentals n spaces (read/write).
MinSpaceBeforeArpeggio
The value of Before arpeggio n spaces (read/write).
MinSpaceAfterHook
The value of After tails with stems up n spaces (read/write).
Chapter 4: Object Reference73
MinSpaceAroundLegerLine
The value of Around leger lines n spaces (read/write).
MinSpaceAtStartOfBar
The value of After start of bar n spaces (read/write).
MinSpaceAtEndOfBar
The value of Before end of bar n spaces (read/write).
MinTieSpacing
The value of Min space (tie above/below note) n spaces (read/write).
MinTieSpacingChords
The value of Min space (tie between notes) n spaces (read/write).
IncludeLyrics
Returns True if Allow space for lyrics is switched on, otherwise False (read/write).
AllowFirstLyricOverhang
Returns True if Allow first lyric to overhang barline is switched on, otherwise False (read/write).
AllowSpaceForHyphen
Returns True if Allow extra space for hyphens is switched on, otherwise False (read/write).
SpaceBetweenLyrics
The value of Minimum gap between lyrics n spaces (read/write).
PageNumberChange
Provides access to get and set the attributes of a page number change at the end of a bar or on a blank page.
Methods
SetFormatChangeOnly(format change only)
If format change only is True, this has the same effect as switching off the New page number check box on the
Page Number Change dialog in Sibelius. The page numbering will therefore continue counting consecutively,
but it’s possible to (for example) hide a group of page numbers and restore visibility at a later point on the score
without having to keep track of the previous page numbers.
Chapter 4: Object Reference74
SetHideOrShow(page number visibility)
Takes one of the three Page number visibility global constants to determine the visibility of the initial page
number change and its subsequent pages; see “Global Constants” on page 127.
SetPageNumber(page number)
Takes an integral number specifying the new number you wish to assign to the page.
SetPageNumberFormat(format)
Takes one of the four Page number format global constants to change the format used to display the page number change; see “Global Constants” on page 127.
Variables
BarNumber
Returns the bar number expressed as an integer (read only).
HideOrShow
Returns one of the three Page number visibility global constants; see “Global Constants” on page 127 (read
only).
PageNumber
Returns the page number expressed as an integer. For example, page x when using Roman numerals would be
10,or24 with alphabetics (read only).
PageNumberAsString
Returns the page number change as visible on the corresponding page in Sibelius (read only).
PageNumberBlankPageOffset
Returns the blank page offset of the page number change, or 0 if there are no blank pages following the bar contaning the page number change (read only).
PageNumberFormat
Returns one of four Page number format global constants describing the format of the page number change;
see “Global Constants” on page 127 (read only).
Chapter 4: Object Reference75
PluginList
An array that is obtained from Sibelius.Plugins. It can be used in a for each loop or as an array with
the [n] operator to access each Plugin object.
Methods
Contains(pluginName)
Returns True if a plug-in with the given name is installed. This can be used to query whether a plugin is installed
before you try to call it.
Variables
NumChildren
Number of plug-ins (read only).
Plugin
This represents an installed plugin. Typical usage:
for each p in Sibelius.Plugins
{
trace("Plugin: " & p.Name);
}
Methods
The following methods are intended to allow you to check the existence of specific methods, data and dialogs in
plug-ins, which allows you to check in advance that calling a method in another plug-in will succeed, and fail
gracefully if the method is not found:
MethodExists(method)
Returns True if the specified method exists in the current Plugin object.
DataExists(data)
Returns
True if the specified data exists in the current Plugin object.
DialogExists(dialog)
Returns True if the specified dialog exists in the current Plugin object.
Chapter 4: Object Reference76
Variables
File
The File object corresponding to the file that the plug-in was loaded from (read only).
Name
The name of the plug-in (read only).
RehearsalMark
Derived from a BarObject and found in the system staff only. RehearsalMarks have an internal numbering and
a visible text representation, both of which can be read from ManuScript.
Methods
None.
Variables
Mark
The internal number of this rehearsal mark. By default rehearsal marks are consecutive (with the first one numbered zero), but the user can also create marks with specific numbers.
MarkAsText
The textual representation of this rehearsal mark as drawn in the score. This is determined by the House Style
Engraving Rules options, and can take various forms (numerical or alphabetical).
Score
You can obtain the Score object by way of the Sibelius object, for example:
score = Sibelius.ActiveScore;
A Score contains one SystemStaff and one or more Staff objects.
for each variable in returns each staff in the score or the current dynamic part in turn (not the system staff).
for each type variable in returns the objects in the score in chronological order, from the top staff to the bot-
tom staff (for simultaneous objects) and then from left to right (again, not including the system staff).
Methods
AddBars(n)
Adds n bars to the end of the score.
Chapter 4: Object Reference77
ApplyStyle
Imports named styles from the given house style file (.lib) into the score. The style file parameter can either be
a full path to the file, or just the name of one of the styles that appears in the House Style
dialog. You can import as many “style” elements as you like in the same method. Style names are as follows:
Note that the constant HOUSE refers, for historical reasons, only to those options in the House Style > Engraving Rules and Layout > Document Setup dialogs, not the entire house style. To import the entire House Style,
use the ALLSTYLES constant.
ClefStyleId(clef style name)
Returns the identifier of the clef style with the given name, or the empty string if there is no such clef style.
Creates a new instrument, given the style ID of the instrument type required (see “Instrument Types” on
page 136). If you want to supply the instrument names to be used in the score, set the optional change names parameter to True, then supply strings for the full name and short name. Returns True if the instrument was created successfully and False if the instrument type could not be found.
Behaves the same way as CreateInstrument, only the new instrument is always created below all other instruments that currently exist in the score. This can be useful when programatically copying a list of staves/instruments from one score to another, as you can guarantee the ordering of the staves will be the same in both
scores.
Like CreateInstrument, but returns the Staff object created, or null if unsuccessful. Note that if the instrument being created contains more than one staff (such as piano or harp), the top stave of the instrument in question will be returned.
Exports one dynamic part, a selection of dynamic parts, or all dynamic parts in PDF format, either concatenated
into a single file, or as separate files. The filename parameter should be a complete path. It may contain the following tokens, which Sibelius will expand automatically to generate a complete filename:
%f
= Score filename
%t = Score title (as specified in the Title field in File > Info)
%p = Part name (as specified in the Part name field in File > Info)
%n = Part number
%o = Total number of parts
%d = Date (format YYYY-MM-DD)
%h = Time (format HHMM)
The Boolean parameter single file specifies whether the chosen parts should be extracted into separate PDF files
or concatenated into a single PDF file. This parameter defaults to True if not specified.
To specify which parts to export, create a sparse array of part IDs, and pass this in as the third parameter, partIDs. For example:
s = Sibelius.ActiveScore;
partsToExport = CreateSparseArray();
parts = s.DynamicParts;
firstNPartsToExport = 2;
i = 0;
for each part in parts {
if (i <= firstNPartsToExport) { // <= because the first "part" in
the
//DynamicPartsCollection is the full score.
partsToExport.Push(part);
}
i = i + 1;
}
s.ExportPartsAsPDF("c:\\%f - %p.pdf", true, partsToExport);
To export all parts, pass in 0 instead of a sparse array.
The final optional Boolean parameter, include score, defaults to False. If set to True, the full score will also
be exported along with the parts.
ExportScoreAsPDF(filename)
Exports the full score as a PDF, with the specified filename, which should be a complete path. The filename parameter may use the same tokens as the ExportPartsAsPDF() method—see above.
Extracts parts from the score. The first optional Boolean parameter can be False, in which case the parts are extracted without showing an options dialog. The second optional parameter specifies a folder into which to extract
the parts (must end with a trailing folder separator). The third optional Boolean parameter, which defaults to
True, specifies whether the extracted parts should be opened immediately, or simply saved.
FreezeMagneticLayoutPositions()
Does the same as selecting the whole score and choosing Layout > Magnetic Layout > Freeze Positions,
which explicitly sets the Dx/Dy of every object to the position produced by Magnetic Layout, then disables Magnetic Layout for each object.
GetLocationTime(bar number[,position[,pass]])
Returns the time of a given bar (by passing in its bar number) and optional position within that bar in the score
in milliseconds. If the score contains repeats, the value returned will always be the time on the first pass through
the score, but you can supply the optional pass parameter to specify a particular pass in the repeat structure. If the
bar and position are not valid, the return value will be -1.
GetVersions()
Returns the score’s VersionHistory object (see “VersionHistory” on page 124).
Hides any empty staves between startStaveNum and endStaveNum, from startBarNum to endBarNum. Both the
staff numbers and bar numbers are 1-based, and refer to the active part.
InsertBars(n,barNum[,length])
Inserts n bars before bar number barNum. If no length has been specified, the bar will be created with the correct
length according to the current time signature. However, irregular bars may also be created by specifying a value
for length.
InternalPageNumToExternalPageNum(pagenum)
Returns a string containing the external page number of the given internal page number pagenum.
LineStyleId(line style name)
Returns the identifier of the line style with the given name, or the empty string if there is no such line style.
NoteStyleIndex(notehead style name)
Returns the index of the note style with the given name, or –1 if there is no such note style.
NthStaff(staff index from 1)
Returns the nth staff of the score or the current dynamic part.
Chapter 4: Object Reference80
OptimizeStaffSpacing (from staff number[, to staff number[,from bar[,to bar]]])
Does the equivalent of Layout > Optimize Staff Spacing for the given range of staves or a whole score. from
staff number must be specified; if to staff number is not specified, Sibelius will optimize the distances between
from staff number and the bottom staff in the score; if from bar is not specified, Sibelius sets it to 1;ifto bar is
not specified, Sibelius sets it to the last bar of the score.
PlayLiveTempo(play)
Switches Play > Live Tempo on or off; set play to True to switch it on, or Falseto switch it off.
RemoveAllHighlights()
Removes all highlights in this score.
RemoveVideo()
Removes an attached video from the score.
RenameTextStyle("old name","new name")
Renames a text style to a new name.
Save(filename)
Saves the score, overwriting any previous file with the same name.
SaveAs(filename,type[,use_defaults,foldername])
Saves the score in a specified format, overwriting any previous file with the same name. The optional argument
use_defaults only applies to graphics files, and specifies whether or not the default settings are to be used. When
set to False, the Export Graphics dialog will appear and allow the user to make any necessary adjustments. The
optional foldername specifies the folder in which the file is to be saved, and will create the specified folder if it
does not exist. The foldername parameter must not end with a path separator (which is “\\” on Windows).
The possible values for type are:
SIBL
EMFEMF
BMPWindows bitmap
PICTPICT format
PDFPDF format
PNGPNG format
MidiMIDI format
EPSFEPS format
TIFFTIFF format
XMLUncompressed MusicXML
MXLCompressed MusicXML
So, to save a file using the current Sibelius file format, you would write score.SaveAs(“filename.sib”, “SIBL”);
Chapter 4: Object Reference81
Sibelius format (current version)
SaveAsAudio(filename[,include all staves[,play from start]])
Creates a WAV file (PC) or AIFF file (Mac) of the score, using Sibelius’s File Export Audio feature. If include all staves is True (the default), Sibelius will first clear any existing selection from the score so every in-
strument will be recorded; only selected staves will otherwise be exported. When play from start is True (also
the default), Sibelius will record the entire score from beginning to end, otherwise from the current position of
the playback line. Note that SaveAsAudio will only have an effect if the user’s current playback configuration
consists of solely VST and/or AU devices. The functions returns True if successful, otherwise False (including
if the user clicks Cancel during export).
SaveAsSibelius2(filename[,foldername])
Saves the score in Sibelius 2 format, overwriting any previous file with the same name. The optional foldername
specifies the folder in which the file is to be saved. Note that saving as Sibelius 2 may alter some aspects of the
score; see Sibelius Reference for full details.
SaveAsSibelius3(filename[,foldername])
Saves the score in Sibelius 3 format. See documentation for SaveAsSibelius2 above.
SaveAsSibelius4(filename[,foldername])
Saves the score in Sibelius 4 format. See documentation for SaveAsSibelius2 above.
SaveAsSibelius5(filename[,foldername])
Saves the score in Sibelius 5 format. See documentation for SaveAsSibelius2 above.
SaveAsSibelius6(filename[,foldername])
Saves the score in Sibelius 6 format. See documentation for SaveAsSibelius2 above.
SaveAsSibelius7(filename[,foldername])
Saves the score in Sibelius 7 format. See documentation for SaveAsSibelius2 above.
SaveCopyAs(filename[,foldername])
Saves a copy of the score in the current version’s format without updating the existing score’s file name in Sibelius.
SetPlaybackPos(bar number,sr)
Sets the position of the playback line to a given bar number and rhythmic (sr) position.
Shows any empty staves currently hidden using Layout
Hiding Staves Hide Empty Staves between start-
StaveNum and endStaveNum, from startBarNum to endBarNum. Both the staff numbers and bar numbers are 1-
based, and refer to the active part.
StaveTypeId(stave type name)
Returns the identifier of the stave type with the given name, or the empty string if there is no such stave type.
Chapter 4: Object Reference82
SystemCount(page num)
The number of systems on a page (the first page of the score is page 1).
SymbolExists(symbol)
Returns True if the symbol index or name symbol is found in the score, otherwise False.
SymbolIndex(symbol name)
Returns the index of the symbol with the given name, or –1 if there is no such symbol.
TextStyleId(text style name)
Returns the identifier of the text style with the given name, or the empty string if there is no such text style.
ViewLiveTempo(view)
Switches View > Live Tempo on or off; set view to True to switch it on, or False to switch it off.
Variables
Arranger
Arranger of score from File > Score Info (read/write).
Artist
Artist of score from File > Score Info (read/write)
Barlines
Returns a Barlines object containing information about the barline groupings in the score (read only).
BarPlaybackOrder
Returns a sparse array containing a list of integers that describes the order in which the bars will be played, according to the repeat structure of the score or the settings in Play > Interpretation > Repeats. To set the order
in which bars should be played, pass in a sparse array containing a list of integers describing the order in which
bars should be played back. To return to the score’s automatically-determined playback order, pass in null
(read/write).
BarPlaybackOrderString
Returns a string describing the order in which the bars will be played, according to the repeat structure of the
score. The string uses the same format as the read-out in Play > Interpretation > Repeats, for example, “1–8,
1–5,9–12”. To set the order in which bars should be played, pass in a string of the appropriate format. To return
the score’s automatically-determined playback order, pass in null (read/write).
BracketsAndBraces
Returns a BracketsAndBraces object containing information about the brackets and braces in the score (read
only).
Chapter 4: Object Reference83
Composer
Composer of score from File > Score Info (read/write).
ComposerDates
Value of Composer’s dates from File > Score Info (read/write).
Copyist
Copyist of score from File > Score Info (read/write).
Copyright
Copyright of score from File > Score Info (read/write).
CurrentDynamicPart
Returns or sets the current DynamicPart object for the Score (read/write). Sibelius will not automatically display
the new part: use Sibelius.ShowDynamicPart() to change the displayed part.
CurrentPlaybackPosBar
Returns the bar number in which the playback line is currently located.
CurrentPlaybackPosSr
Returns the rhythmic position within the bar at which the playback line is currently located.
Dedication
Dedication of score from File > Score Info (read/write).
DocumentSetup
Returns a DocumentSetup object representing the settings in Layout > Document Setup (read only).
DynamicParts
Returns a DynamicPartCollection object representing the dynamic parts present in the Score. This object will always stay up to date, even if parts are added or deleted (read only).
EnableScorchPrinting
Corresponds to the Allow printing and saving checkbox in the Export Scorch Web Page dialog (read/write).
EngravingRules
Returns an EngravingRules object corresponding to selected settings in the House Style> Engraving Rules dialog (read only).
FileName
The filename for the score (read only).
Chapter 4: Object Reference84
FocusOnStaves
is True if View > Focus on Staves is switched on (read/write). See also Staff.ShowInFocusOn-
Staves.
HitPoints
The HitPointList object for the score (read/write).
InstrumentChanges
Value of Instrument changes from File > Score Info (read/write).
InstrumentTypes
Returns an InstrumentTypeList containing the score’s instrument types, on which one may execute a for
each loop to get information about each instrument type within the score.
IsDynamicPart
Returns True if the current active score view is a part (read only).
LiveMode
Is True (1)ifPlay > Live Playback is on (read/write).
Lyricist
Lyricist of score from File > Score Info (read/write).
MagneticLayoutEnabled
Returns True if the current score has Layout > Magnetic Layout switched on (read/write).
MainMusicFontName
Returns the name of the font specified as the Main music font (such as “Opus” or “Reprise”) in House Style
>Edit All Fonts (read/write).
MainTextFontName
Returns the name of the font specified as the Main text font (such as “Times New Roman” or “Arial”) in House
Style > Edit All Fonts (read/write).
MusicTextFontName
Returns the name of the font specified as the Music text font (such as “Opus Text” or “Reprise Text”) in House
Style > Edit All Fonts (read/write).
NumberOfPrintCopies
The number of copies to be printed (read/write).
Chapter 4: Object Reference85
OpusNumber
Opus number of score from File > Score Info (read/write).
OriginalProgramVersion
The version of Sibelius in which this score was originally created, as an integer in the following format:
(major version) * 1000 + (minor version) * 100 + (revision) * 10. So Sibelius at the time of this writing
(Sibelius 8.6) would be returned as 8600.
OtherInformation
More information concerning the score from File > Score Info (read/write).
PageCount
The number of pages in the score (read only).
PartName
Value of Part Name from File > Score Info (read/write).
Publisher
Publisher of score from File > Score Info (read/write).
Redraw
Set this to True (1) to make the score redraw after each change to it, False (0) to disallow redrawing (write
only).
ScoreDuration
The duration of the score in milliseconds (read only).
ScoreEndTime
The duration of the score, plus the score start time (see above), in milliseconds (read only).
ScoreHeight
Height of a page in the score, in millimetres (read only).
ScoreStartTime
The value of Timecode of first bar, from Play > Video and Time > Timecode and Duration, in milliseconds
(read only).
ScoreWidth
Width of a page in the score, in millimetres (read only).
Selection
The Selection object for the score, which is a list of selected objects (read only).
Chapter 4: Object Reference86
ShowMultiRests
Is True (1)ifLayout > Show Multirests is on (read/write).
StaffCount
The number of staves in the score (read only).
StaffHeight
Staff height, in millimetres (read only).
Subtitle
Subtitle of score from(read/write).
SystemCount
The number of systems in the score (read only).
SystemObjectPositions
Returns a SystemObjectPositions object corresponding to the settings in House Style > System Object Positions for the score (read only).
SystemStaff
The SystemStaff object for the score (read only).
Title
Title of score from File
Score Info (read/write).
TransposingScore
Is True (1)ifNotes > Transposing Score is on (read/write).
UsingManualBarPlayOrder
Returns True if Manual repeats playback is chosen in Play > Interpretation > Repeats, otherwise False
(read only).
YearOfComposition
Value of Year of composition from File > Score Info (read/write).
Chapter 4: Object Reference87
Selection
for each variable in returns every BarObject (which is an object within a bar) in the selection.
for each type variable in produces each object of type type in the selection. Note that if the selection is a sys-
tem selection (which is surrounded by a double purple box in Sibelius) then objects in the system staff will be returned in such a loop.
Methods
Clear()
Removes any existing selection(s) from the current active score.
ClipboardContainsData([clipboard Id])
Returns True if the given clipboard contains data. As with the Copy and Paste methods, 0 (or no arguments)
refers to Sibelius’s internal clipboard, and all other numeric values will interrogate the temporary clipboard with
the matching ID.
Copy([clipboard Id])
Copies the music within the current selection to Sibelius’s internal clipboard or a ManuScript-specific temporary
clipboard, which goes out of scope along with the Selection object itself. If no clipboard Id is specified, or if it
is set to 0, the selection will be copied to Sibelius’s internal clipboard. Any other numeric value you pass in will
store the data in a temporary clipboard adopting the ID you specify. Used in conjuction with Paste or Paste-
ToPosition (see below).
Delete([remove staves])
Deletes the music currently selected in the active score. Akin to making a selection manually in Sibelius and hitting Delete. If remove staves is omitted or set to True, Sibelius will completely remove any wholly selected
staves from the score. If you wish Sibelius to simply hide such staves instead, set this flag to False.
ExcludeStaff(staff number)
If a passage selection already exists in the current active score, an individual stave may be removed from the selection using this method.
HideSelectedEmptyStaves()
If the current selection contains staves that are empty, they will be hidden (equivalent to selecting a passage and
choosing Layout > Hiding Staves > Hide Empty Staves).
IncludeStaff(staff number)
If a passage selection already exists in the current active score, a non-consecutive stave may be added to the selection using this method.
Chapter 4: Object Reference88
Paste([clipboard Id[,reset positions]])
Pastes the music from a given clipboard to the start of the selection in the current active score. If no clipboard Id
is specified, or if it is set to 0, the data will be pasted from Sibelius’s internal clipboard. Any other numeric value
you pass in will take the data from a temporary clipboard you must have previously created with a call to Copy
(see above). Returns True if successful.
If reset positions is False, the positions of any objects that have been moved by the user in the source selection
will be retained in the copy. This is the default behaviour. If you wish Sibelius to reset objects to their default positions, set this flag to True. This can be useful when copying one or more single objects (which is a non-passage
selection).
Note that pasting into a score using this method will overwrite any existing music. Only one copy of the music
will ever be made, so if your selection happens to span more bars or staves than is necessary, the data will not be
duplicated to fill the entire selection area.
PasteToPosition(stave num, bar num, position[, clipboard Id[
,reset positions]])
Pastes the music from a given clipboard to a specific location in the current active score. The optional parameters
and pasting behavior works in the same way as calls to Paste.
RestoreSelection()
Restores the selection previously recorded with a call to StoreCurrentSelection. Usefully called at the
end of a plug-in to restore the initial selection.
Programmatically makes a passage selection around a given area of the current active score. When no end barNum is given, only the start barNum will be selected. If neither a top- nor bottom staveNum has been specified,
every stave in the score will be selected, whereas if only a top staveNum has been supplied, only that one staff
will be selected. Sibelius will begin the selection from the start of the first bar if no start pos has been given, similarly completing the selection at the end of the final bar if no end pos has been supplied.
NB: The start pos and end pos you supply may be altered by ManuScript: Sibelius requires a passage selection
to begin and end at a NoteRest if it doesn’t encompass the entire bar.
Programmatically makes a system selection around a given area of the current active score. When no end barNum is given, only the start barNum will be selected. Sibelius will begin the selection from the start of the first
bar if no start pos has been given, similarly completing the selection at the end of the final bar if no end pos has
been supplied.
NB: The start pos and end pos you supply may be altered by ManuScript: Sibelius requires a passage selection
to begin and end at a NoteRest if it doesn’t encompass the entire bar.
StoreCurrentSelection()
Stores the current selection in the active score internally. Can be retrieved with a call to RestoreSelection
(see below). Usefully called at the start of a plug-in to store the initial selection.
Transposes the currently selected music up or down by a specified degree and interval type. To transpose up, use
positive values for degree; to transpose down, use negative values. Note that degrees are 0-based, so 0 is equal
to a unison, 1 to a second and so on. For descriptions of the various available interval types, see “Global Constants” on page 127. By default, Sibelius will transpose using double sharps and flats where necessary, but this
behavior may be suppressed by setting the keep double accs flag to False. Sibelius will also transpose any key
signatures within the selection by default, but can be overriden by setting the fourth parameter to False.
For help in calculating the interval and degree required for a particular transposition, see the documentation for
the Sibelius.CalculateInterval and Sibelius.CalculateDegree methods.
Variables
BottomStaff
The number of the bottom staff of a passage (read only).
FirstBarNumber
The internal bar number of the first bar of a passage (read only).
FirstBarNumberString
The external bar number (including any bar number format changes) of the first bar of a passage (read only).
FirstBarSr
The position of the start of the passage selection in the first bar (read only).
IsPassage
True if the selection represents a passage, as opposed to a multiple selection (read only).
IsSystemPassage
True if the selection includes the system staff (read only).
LastBarNumber
The internal bar number of the last bar of a passage (read only).
LastBarNumberString
The external bar number (including any bar number format changes) of the last bar of a passage (read only).
LastBarSr
The position of the end of the passage selection in the last bar (read only).
TopStaff
The number of the top staff of a passage (read only).
Chapter 4: Object Reference90
Copying Entire Bars
Copying passages from one location in a score to another—or even from one score to another—is very simple.
Here is an example function demonstrating how one might go about achieving this:
Note that you may use any temporary clipboard or Sibelius’s own internal clipboard if the source and destination
locations are in the same score, however you can only use Sibelius’s internal clipboard if the data is being transfered between two individual scores. This is because the temporary clipboards belong to the Selection object itself.
Copying Multiple Selections from One Bar to Another
Using a combination of the BarObject’s Select method and the Selection object’s Copy and PasteToPosition methods, it is possible to copy an individual or multiple selection from one location in a score to an-
other. Bear in mind that Paste will always paste the material to the very start of the selection, so if you’re copying a selection that doesn’t start at the very beginning of a bar, you’ll have to store the position of the first item
and pass it to PasteToPosition when you later come to paste the music to another bar.
Chapter 4: Object Reference91
This example code below copies all items from position 256 or later from one bar to another. It is assumed that
sourceBar is a valid Bar object, and destStaffNum and destBarNum contain the destination staff number and
bar number respectively:
sel = Sibelius.ActiveScore.Selection; // Get a Selection object for
this score
sel.Clear(); // Clear the current selection
clipboardToUse = 1; // This clipboard ID we’re going to use
copyFromPos = 256; // Copy all objects from this point in the
source bar
posToCopyTo = 0; // Variable used to store the position of the
first object copied
for each obj in sourceBar { // Iterate over all objects in the bar
if (obj.Position >= copyFromPos) { // Ignore objects before the
start threshold
obj.Select(); // Select each relevant object in turn
if (posToCopyTo = 0) {
posToCopyTo = obj.Position; // Remember the position of the
first item
{
}
}
sel.Copy(clipboardToUse); // Copy the objects we’ve selected to the
clipboard
sel.PasteToPosition(destStaffNum, destBarNum, posToCopyTo, clipboardToUse); // And paste them to the destination bar at the relevant offset
Sibelius
There is a predefined variable that represents the Sibelius program. You can use the Sibelius object to open
scores, close scores, display dialogs or (most commonly) to get currently open Score objects.
for each variable in returns each open score.
Methods
AppendLineToFile(filename,text[,use_unicode])
Appends a line of text to the file specified (adds line feed). See comment for AppendTextFile above for explanation of the use_unicode parameter. Returns True if successful.
Chapter 4: Object Reference92
AppendLineToRTFFile(filename,text)
Appends a line of text to the file specified. Times New Roman 12pt is used, unless you specify a change of formatting. To change formatting, use the following backslash expressions:
\B\
bold on
\I\ italic on
\U\ underline on
\n\ new line
\b\ bold off
\i\ italic off
\u\ underline off
\ffontname\ change to given font name (for example \fArial\ to switch to Arial)
\spoints\set the font size to a specific point size (for example \s16\ to set the font to 16pts).
Note the difference in meaning of \s in the context of adding data to an RTF file, versus its use in the context
of styling text directly within Sibelius (see “Syntax” on page 12 following).
AppendTextFile(filename,text[,use_unicode])
Appends text to the file specified. If the optional Boolean parameter use_unicode is True, then the string specified will be exported in Unicode format; if this parameter is False then it will be converted to 8-bit Latin-1 before being added to the text file. This parameter is True by default. Returns True if successful.
CalculateDegree(source pitch, dest pitch, upward interval)
Takes two note names in the form of a string (for example C, G#, Bb, Fx or Ebb) and a boolean that should be
True if the interval you’re wishing to calculate is upward. Returns a 0-based number describing the degree between the two notes.
For example, CalculateDegree(“C#”, “G”, False) would return 3.
CalculateInterval(source pitch, dest pitch, upward interval)
Takes two note names in the form of a string (for example C, G#, Bb, Fx or Ebb) and a boolean that should be
True if the interval you’re wishing to calculate is upward. Returns a number representing an Interval Type (see
“Global Constants” on page 127). You can use the value returned in calls to NoteRest.Transpose and Se-lection.Transpose.
For example, CalculateInterval(“Bb”, “G#”, True) would return IntervalAugmented.
Close(show dialogs)
Closes the current score or part view; if the current view is the last tab in the current window, the window will
therefore also be closed. If the optional Boolean parameter is True then warning dialogs may be shown about
saving the active score, and if it is False then no warnings are shown (and the score will not be saved).
Chapter 4: Object Reference93
CloseAllWindows(show dialogs)
Closes all open document windows. If the optional Boolean parameter is True then warning dialogs may be
shown about saving any unsaved scores, and if it is False then no warnings are shown (and the scores will not
be saved).
CloseDialog(dialogName,pluginName,returnValue)
Closes the dialog dialogName belonging to the plug-in pluginName (normally this should be set to self), returning the Boolean value returnValue, which can be set to True (1)orFalse (0). Normally you do not need
to use this method to close a dialog, as you can set buttons (typically with labels like OK or Cancel) to close the
dialog and return a value, but if you want greater control over when a dialog is closed, this method provides it.
CloseWindow(show dialogs)
Closes the current window (that closes all of the open tabs in the current window). If the optional Boolean parameter is Truethen warning dialogs may be shown about saving the score, and if it is False then no warnings
are shown (and the score will not be saved).
CreateFolder(foldername)
Creates the folder of specified foldername; returns the Folder object created if successful, or null if it fails.
CreateProgressDialog(caption,min value,max value)
Creates the progress dialog, which shows a slider during a long operation.
CreateRTFFile(filename)
Creates the Rich Text Format (RTF) file specified. Any existing file with the same name is destroyed. Returns
True if successful.
CreateTextFile(filename)
Creates the plain text file specified. Any existing file with the same name is destroyed. Returns True if successful.
DestroyProgressDialog()
Destroys the progress dialog.
EnableControlById(plugin,dialog,controlID,enable)
Dynamically enables or disables a given control on a plug-in dialog: plugin is a plug-in object, for example
Self; dialog is a dialog object, and therefore should not be passed in quotation marks; controlID is the string
corresponding to the control to be enabled or disabled; and enable is a Boolean parameter, which enables the control when set to True and
disables the control when set to False.
EnableNthControl(nth control, enable)
Dynamically enables or disables a given control on a plug-in dialog. Can be called either before a dialog has been
displayed (in which case the operation will apply to the next dialog you show), or while a dialog is already visible
(in which case the operation will affect the top-most currently visible dialog).
Chapter 4: Object Reference94
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.