I am looking for help on writing plugins.
I have quite a lot of experience in other programming languages but this is my first Sibelius plugin.
My aim is to export only one page, let's say the page where user has selected a bar or a note, to PNG.
But for more than 1 pages, SaveAs() outputs "0001.png", "0002.png" etc. Which is fine as long as I can also get which page the user has in mind (by selecting a bar or a note to signify that).
So, is there a way to get the page a selected bar is in?
I tried:
Code: Select all
score = Sibelius.ActiveScore;
if( score.StaffCount=0 ){ Sibelius.MessageBox("no staff!"); ExitPlugin(); }
astaff = score.NthStaff(1);
if( astaff.BarCount=0 ){ Sibelius.MessageBox("no bar!"); ExitPlugin(); }
abar = astaff.NthBar(1);
pageCount = score.PageCount;
selection = score.Selection;
currentPage = 1;
if( pageCount > 1 ){
if( not(selection.IsPassage) ){
Sibelius.MessageBox("There are "&pageCount&" pages, you must select a bar in the page you want.");
ExitPlugin();
}
found = 0;
for each Bar b in selection {
currentPage = b.GetPageNumber();
// this shows curren t page as blank!
Sibelius.MessageBox(currentPage);
found = 1;
}
Sibelius.MessageBox(currentPage);
if( found = 0 ){
Sibelius.MessageBox("Selection is empty");
ExitPlugin();
}
}