On Wed, 2015-10-28 at 23:23 +0000, Thomas WillNot wrote: > Hi Everyone, > > Thanks for all your ideas! > Jacques, I appreciate you trying conversion in Mac OSX, though it looks like > you got the same result as me with those error messages complaining about > having too many children or something. I don't think anything's wrong with > my Sibelius files, but maybe Sibelius 7's MusicXML converter just isn't very > good. It is the first version to natively support MusicXML export! > I wish it would just spit something out despite the errors! I find LilyPond > itself to be very good at doing that as it rarely fails me (unless I mess up > something serious like the nestedness of my brackets or I leave Acrobat > Reader open; then it will freak out of course!) > I think the easiest for me will be just using Denemo since it seems to work
You may find some little scripts I have written to fix bugs in Sibelius's musicXML output. The first is to fix the slurs-instead-of-ties bug. It may be that this is just a common error when using Sibelius, rather than a MusicXML generation error. This script looks for pairs of same pitch notes connected by a slur and changes them into two tied notes. That one is actually so common (people make the mistake when entering music in Denemo too) that it is available in Denemo as a command. The second fixes the problem that Sibelius outputs two barlines end-repeat and start repeat for a :||: barline; this script replaces such pairs with a proper end-repeat-start-repeat barline. The third one replaces rests that fill a whole measure with a whole measure rest - again this may just be a characteristic error made by Sibelius users. 8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8>< ;;two successive notes of equal pitch both begin slur should be tie (while (d-NextObject) (if (and (d-IsSlurStart) (d-NextObject) (d-IsSlurStart)) (let ((note (d-GetNote))) (d-ToggleBeginSlur) (d-PrevObject) (if (equal? note (d-GetNote)) (begin (d-ToggleBeginSlur) (d-ToggleTie)))))) ;;;Replace end repeat start repeat with EndStartRepeat (while (d-NextObject) (if (and (d-DirectiveGetForTag-standalone "RepeatEnd") (d-NextObject) (d-DirectiveGetForTag-standalone "RepeatStart")) (begin (d-DeleteObject) (d-DeletePreviousObject) (d-RepeatEndStart)))) ;;; replace rests that are for whole measure with whole-measure rests. (while (d-NextObject) (if (Rest?) (let ((duration (d-GetDurationInTicks))) (if (= duration (* 1536 (GetPrevailingTimeSig #t))) (begin (d-DeleteObject) (DenemoWholeMeasureRestCommand)))))) 8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8>< These scripts are all acting on a single staff - if you have a lot of staffs it would be worth while creating a loop around them to go through all the staffs executing them. You use them by placing the cursor at the start of the staff and the script in the Scheme Window and clicking Execute (or pressing the Execute Scheme shortcut if you have one). More serious problems with Sibelius' MusicXML is a failure to output time signature changes. Mostly these are harmless, the LilyPond is still functional, or at worst you have to add them back in. But in the case of compound time signatures I've been forced to insert the time signature code into the MusicXML file to get something worth having. (It's not as hairy as it sounds - you find the measure concerned by searching for the <measure number="nnn"> field in a text editor and paste in the time signature block which you can copy from the one Sibelius *does* output at the start of the whole piece modified from 4/4 to 12/8 or whatever). To digress slightly, most of this is symptomatic of the fact that MusicXML is not a good standard for describing music notation, it is a hodge-podge of recipes with a MIDI-centric view of music that Finale generates and which other programs then have to try to mimic. > and then use Simon's idea of converting each file to relative mode with > Frescobaldi. I was going to point out that you don't have to use Denemo's default LilyPond output. Besides the commands to output just the parts Denemo also allows you to step through the music emitting whatever massaged output suits you. A script (similar to the ones above) would look at each object in turn and output your preferred LilyPond style, be it relative mode or French note names or what have you. The Denemo mailing list denemo-de...@gnu.org would be the place to get help with doing that. Richard > Thanks again, > Thomas > > > _______________________________________________ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user