|
|
|
Raffaele-3
|
This is the code I added in exportxml.cpp file at line 2680...
Still some wrong things... I don't know how to recognize properly when I'm considering the first measure... The calculation of the right margin is wrong... See the comments... I put the coordinatesPrinted variable checker in order to implement a mechanism to let the user choose whether to export the coordinates or not... In this case (And in the case we will put some linking features to the XML export code) I suggest to put a dialog to ask the user what do he wants to export... Whether Sorry for my Java like code.. ;) Hear you soon, R int currentSystem = NoSystem; if (m->prev() && ((Measure*)m->prev())- >lineBreak()) // TODO: MeasureBase currentSystem = NewSystem; else if (!m->prev() || (measureNo > 2 && ((Measure*)m->prev())->pageBreak())) // TODO: MeasureBase currentSystem = NewPage; // It does'nt work... How do I understand if I'm in the first measure? Maybe (irregularMeasureNo + measureNo) == 2? if (areCoordinatesPrinted() && currentSystem != NoSystem ){ // COORDINATES, exported only if requested PageFormat* pf = score->pageFormat(); const double tenths = 2 * PPI * 10 / 9; // tenths calculation const double pageHeight = pf->height() * tenths; const double pageWidth = pf->width() * tenths; const double lm = pf->oddLeftMargin * tenths; const double rm = pf->oddRightMargin * tenths; const double tm = pf->oddTopMargin * tenths; const double bm = pf->oddBottomMargin * tenths; if (currentSystem == NewSystem) xml.stag(QString("print new-system=\"yes \"")); else if (currentSystem == NewPage) xml.stag(QString("print new-page=\"yes \"")); double systemLM = (m->canvasPos().x() * tenths / DPI) - lm; // Left Margin double systemRM = 0; // RightMargin for (Measure* currentMeasure = m;currentMeasure; currentMeasure = (Measure*)currentMeasure->next()){ if (currentMeasure->pageBreak() || currentMeasure->lineBreak()){ systemRM = pageWidth - rm - ((m- >canvasPos().x() + m->bbox().width()) * tenths / DPI ); break; } } //Wrong!! How to calculate the right Margin? double systemTM = 0; // Top Margin if (currentSystem == NewPage) systemTM = (m->canvasPos().y() * tenths / DPI) - tm; else if (currentSystem == NewSystem) systemTM = (m->canvasPos().y() - m- >prev()->canvasPos().y() - m->prev()->bbox().height()) * tenths / DPI; xml.stag("system-layout"); xml.stag("system-margins"); xml.tag("left-margin", systemLM); xml.tag("right-margin", systemRM); xml.etag(); if (currentSystem == NewPage) xml.tag("top-system-distance", systemTM); else if (currentSystem == NewSystem) xml.tag("system-distance", systemTM); xml.etag(); } else { if (currentSystem == NewSystem) xml.tagE("print new-system=\"yes\""); else if (currentSystem == NewPage) xml.tagE("print new-page=\"yes\""); } ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
lasconic
|
Maybe you can provide a true patch file ?
http://en.wikipedia.org/wiki/Patch_(Unix) If you use tortoise SVN. Right click -> Tortoise-> Create a patch 2009/5/7 Raffaele <[hidden email]>: > This is the code I added in exportxml.cpp file at line 2680... > Still some wrong things... I don't know how to recognize properly when > I'm considering the first measure... The calculation of the right > margin is wrong... > See the comments... > > I put the coordinatesPrinted variable checker in order to implement a > mechanism to let the user choose whether to export the coordinates or > not... In this case (And in the case we will put some linking features > to the XML export code) I suggest to put a dialog to ask the user what > do he wants to export... Whether > > Sorry for my Java like code.. ;) > > Hear you soon, > R > > > int currentSystem = NoSystem; > > if (m->prev() && ((Measure*)m->prev())- > >lineBreak()) // TODO: MeasureBase > currentSystem = NewSystem; > else if (!m->prev() || (measureNo > 2 && > ((Measure*)m->prev())->pageBreak())) // TODO: MeasureBase > currentSystem = NewPage; // It does'nt > work... How do I understand if I'm in the first measure? Maybe > (irregularMeasureNo + measureNo) == 2? > > if (areCoordinatesPrinted() && currentSystem != > NoSystem ){ // COORDINATES, exported only if requested > > PageFormat* pf = score->pageFormat(); > const double tenths = 2 * PPI * 10 / 9; // > tenths calculation > const double pageHeight = pf->height() * > tenths; > const double pageWidth = pf->width() * tenths; > const double lm = pf->oddLeftMargin * tenths; > const double rm = pf->oddRightMargin * tenths; > const double tm = pf->oddTopMargin * tenths; > const double bm = pf->oddBottomMargin * tenths; > > if (currentSystem == NewSystem) > xml.stag(QString("print new-system=\"yes > \"")); > else if (currentSystem == NewPage) > xml.stag(QString("print new-page=\"yes > \"")); > > > double systemLM = (m->canvasPos().x() * > tenths / DPI) - lm; // Left Margin > > double systemRM = 0; // RightMargin > for (Measure* currentMeasure = > m;currentMeasure; currentMeasure = (Measure*)currentMeasure->next()){ > if (currentMeasure->pageBreak() || > currentMeasure->lineBreak()){ > systemRM = pageWidth - rm - ((m- > >canvasPos().x() + m->bbox().width()) * tenths / DPI ); > break; > } > } //Wrong!! How to calculate the right > Margin? > > double systemTM = 0; // Top Margin > if (currentSystem == NewPage) > systemTM = (m->canvasPos().y() * tenths / > DPI) - tm; > else if (currentSystem == NewSystem) > systemTM = (m->canvasPos().y() - m- > >prev()->canvasPos().y() - m->prev()->bbox().height()) * tenths / DPI; > > xml.stag("system-layout"); > xml.stag("system-margins"); > xml.tag("left-margin", systemLM); > xml.tag("right-margin", systemRM); > xml.etag(); > if (currentSystem == NewPage) > xml.tag("top-system-distance", systemTM); > else if (currentSystem == NewSystem) > xml.tag("system-distance", systemTM); > xml.etag(); > } > else { > if (currentSystem == NewSystem) > xml.tagE("print new-system=\"yes\""); > else if (currentSystem == NewPage) > xml.tagE("print new-page=\"yes\""); > } > > ------------------------------------------------------------------------------ > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > _______________________________________________ > Mscore-developer mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/mscore-developer > ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
|
lasconic
|
It's for the SVN trunk right ?
2009/5/7 Raffaele <[hidden email]>: > Sorry... Attached... > > > > > > Il giorno 07/mag/09, alle ore 12:34, Lasconic ha scritto: > >> Maybe you can provide a true patch file ? >> http://en.wikipedia.org/wiki/Patch_(Unix) >> If you use tortoise SVN. Right click -> Tortoise-> Create a patch >> >> 2009/5/7 Raffaele <[hidden email]>: >>> >>> This is the code I added in exportxml.cpp file at line 2680... >>> Still some wrong things... I don't know how to recognize properly when >>> I'm considering the first measure... The calculation of the right >>> margin is wrong... >>> See the comments... >>> >>> I put the coordinatesPrinted variable checker in order to implement a >>> mechanism to let the user choose whether to export the coordinates or >>> not... In this case (And in the case we will put some linking features >>> to the XML export code) I suggest to put a dialog to ask the user what >>> do he wants to export... Whether >>> >>> Sorry for my Java like code.. ;) >>> >>> Hear you soon, >>> R >>> >>> >>> int currentSystem = NoSystem; >>> >>> if (m->prev() && ((Measure*)m->prev())- >>> >lineBreak()) // TODO: MeasureBase >>> currentSystem = NewSystem; >>> else if (!m->prev() || (measureNo > 2 && >>> ((Measure*)m->prev())->pageBreak())) // TODO: MeasureBase >>> currentSystem = NewPage; // It does'nt >>> work... How do I understand if I'm in the first measure? Maybe >>> (irregularMeasureNo + measureNo) == 2? >>> >>> if (areCoordinatesPrinted() && currentSystem != >>> NoSystem ){ // COORDINATES, exported only if requested >>> >>> PageFormat* pf = score->pageFormat(); >>> const double tenths = 2 * PPI * 10 / 9; // >>> tenths calculation >>> const double pageHeight = pf->height() * >>> tenths; >>> const double pageWidth = pf->width() * tenths; >>> const double lm = pf->oddLeftMargin * tenths; >>> const double rm = pf->oddRightMargin * tenths; >>> const double tm = pf->oddTopMargin * tenths; >>> const double bm = pf->oddBottomMargin * tenths; >>> >>> if (currentSystem == NewSystem) >>> xml.stag(QString("print new-system=\"yes >>> \"")); >>> else if (currentSystem == NewPage) >>> xml.stag(QString("print new-page=\"yes >>> \"")); >>> >>> >>> double systemLM = (m->canvasPos().x() * >>> tenths / DPI) - lm; // Left Margin >>> >>> double systemRM = 0; // RightMargin >>> for (Measure* currentMeasure = >>> m;currentMeasure; currentMeasure = (Measure*)currentMeasure->next()){ >>> if (currentMeasure->pageBreak() || >>> currentMeasure->lineBreak()){ >>> systemRM = pageWidth - rm - ((m- >>> >canvasPos().x() + m->bbox().width()) * tenths / DPI ); >>> break; >>> } >>> } //Wrong!! How to calculate the right >>> Margin? >>> >>> double systemTM = 0; // Top Margin >>> if (currentSystem == NewPage) >>> systemTM = (m->canvasPos().y() * tenths / >>> DPI) - tm; >>> else if (currentSystem == NewSystem) >>> systemTM = (m->canvasPos().y() - m- >>> >prev()->canvasPos().y() - m->prev()->bbox().height()) * tenths / DPI; >>> >>> xml.stag("system-layout"); >>> xml.stag("system-margins"); >>> xml.tag("left-margin", systemLM); >>> xml.tag("right-margin", systemRM); >>> xml.etag(); >>> if (currentSystem == NewPage) >>> xml.tag("top-system-distance", systemTM); >>> else if (currentSystem == NewSystem) >>> xml.tag("system-distance", systemTM); >>> xml.etag(); >>> } >>> else { >>> if (currentSystem == NewSystem) >>> xml.tagE("print new-system=\"yes\""); >>> else if (currentSystem == NewPage) >>> xml.tagE("print new-page=\"yes\""); >>> } >>> >>> >>> ------------------------------------------------------------------------------ >>> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >>> production scanning environment may not be a perfect world - but thanks >>> to >>> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK >>> i700 >>> Series Scanner you'll get full speed at 300 dpi even with all image >>> processing features enabled. http://p.sf.net/sfu/kodak-com >>> _______________________________________________ >>> Mscore-developer mailing list >>> [hidden email] >>> https://lists.sourceforge.net/lists/listinfo/mscore-developer >>> >> >> >> ------------------------------------------------------------------------------ >> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >> production scanning environment may not be a perfect world - but thanks to >> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK >> i700 >> Series Scanner you'll get full speed at 300 dpi even with all image >> processing features enabled. http://p.sf.net/sfu/kodak-com >> _______________________________________________ >> Mscore-developer mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/mscore-developer > > > ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
lasconic
|
exportxml.cpp has changed in r1804 and r1807.
Can you provide a patch on current trunk instead of r1800? Sorry ... Regarding the code, if coordinates are compatible with musicXML DTD, I'm not sure it makes sense to ask the user if he wants coordinates or not. As far as I know Finale and Sibelius don't ask. Any opinion? Lasconic 2009/5/7 Lasconic <[hidden email]>: > It's for the SVN trunk right ? > > 2009/5/7 Raffaele <[hidden email]>: >> Sorry... Attached... >> >> >> >> >> >> Il giorno 07/mag/09, alle ore 12:34, Lasconic ha scritto: >> >>> Maybe you can provide a true patch file ? >>> http://en.wikipedia.org/wiki/Patch_(Unix) >>> If you use tortoise SVN. Right click -> Tortoise-> Create a patch >>> >>> 2009/5/7 Raffaele <[hidden email]>: >>>> >>>> This is the code I added in exportxml.cpp file at line 2680... >>>> Still some wrong things... I don't know how to recognize properly when >>>> I'm considering the first measure... The calculation of the right >>>> margin is wrong... >>>> See the comments... >>>> >>>> I put the coordinatesPrinted variable checker in order to implement a >>>> mechanism to let the user choose whether to export the coordinates or >>>> not... In this case (And in the case we will put some linking features >>>> to the XML export code) I suggest to put a dialog to ask the user what >>>> do he wants to export... Whether >>>> >>>> Sorry for my Java like code.. ;) >>>> >>>> Hear you soon, >>>> R >>>> >>>> >>>> int currentSystem = NoSystem; >>>> >>>> if (m->prev() && ((Measure*)m->prev())- >>>> >lineBreak()) // TODO: MeasureBase >>>> currentSystem = NewSystem; >>>> else if (!m->prev() || (measureNo > 2 && >>>> ((Measure*)m->prev())->pageBreak())) // TODO: MeasureBase >>>> currentSystem = NewPage; // It does'nt >>>> work... How do I understand if I'm in the first measure? Maybe >>>> (irregularMeasureNo + measureNo) == 2? >>>> >>>> if (areCoordinatesPrinted() && currentSystem != >>>> NoSystem ){ // COORDINATES, exported only if requested >>>> >>>> PageFormat* pf = score->pageFormat(); >>>> const double tenths = 2 * PPI * 10 / 9; // >>>> tenths calculation >>>> const double pageHeight = pf->height() * >>>> tenths; >>>> const double pageWidth = pf->width() * tenths; >>>> const double lm = pf->oddLeftMargin * tenths; >>>> const double rm = pf->oddRightMargin * tenths; >>>> const double tm = pf->oddTopMargin * tenths; >>>> const double bm = pf->oddBottomMargin * tenths; >>>> >>>> if (currentSystem == NewSystem) >>>> xml.stag(QString("print new-system=\"yes >>>> \"")); >>>> else if (currentSystem == NewPage) >>>> xml.stag(QString("print new-page=\"yes >>>> \"")); >>>> >>>> >>>> double systemLM = (m->canvasPos().x() * >>>> tenths / DPI) - lm; // Left Margin >>>> >>>> double systemRM = 0; // RightMargin >>>> for (Measure* currentMeasure = >>>> m;currentMeasure; currentMeasure = (Measure*)currentMeasure->next()){ >>>> if (currentMeasure->pageBreak() || >>>> currentMeasure->lineBreak()){ >>>> systemRM = pageWidth - rm - ((m- >>>> >canvasPos().x() + m->bbox().width()) * tenths / DPI ); >>>> break; >>>> } >>>> } //Wrong!! How to calculate the right >>>> Margin? >>>> >>>> double systemTM = 0; // Top Margin >>>> if (currentSystem == NewPage) >>>> systemTM = (m->canvasPos().y() * tenths / >>>> DPI) - tm; >>>> else if (currentSystem == NewSystem) >>>> systemTM = (m->canvasPos().y() - m- >>>> >prev()->canvasPos().y() - m->prev()->bbox().height()) * tenths / DPI; >>>> >>>> xml.stag("system-layout"); >>>> xml.stag("system-margins"); >>>> xml.tag("left-margin", systemLM); >>>> xml.tag("right-margin", systemRM); >>>> xml.etag(); >>>> if (currentSystem == NewPage) >>>> xml.tag("top-system-distance", systemTM); >>>> else if (currentSystem == NewSystem) >>>> xml.tag("system-distance", systemTM); >>>> xml.etag(); >>>> } >>>> else { >>>> if (currentSystem == NewSystem) >>>> xml.tagE("print new-system=\"yes\""); >>>> else if (currentSystem == NewPage) >>>> xml.tagE("print new-page=\"yes\""); >>>> } >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >>>> production scanning environment may not be a perfect world - but thanks >>>> to >>>> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK >>>> i700 >>>> Series Scanner you'll get full speed at 300 dpi even with all image >>>> processing features enabled. http://p.sf.net/sfu/kodak-com >>>> _______________________________________________ >>>> Mscore-developer mailing list >>>> [hidden email] >>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >>> production scanning environment may not be a perfect world - but thanks to >>> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK >>> i700 >>> Series Scanner you'll get full speed at 300 dpi even with all image >>> processing features enabled. http://p.sf.net/sfu/kodak-com >>> _______________________________________________ >>> Mscore-developer mailing list >>> [hidden email] >>> https://lists.sourceforge.net/lists/listinfo/mscore-developer >> >> >> > ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
Raffaele-3
|
In reply to this post
by lasconic
Yes...
https://mscore.svn.sourceforge.net/svnroot/mscore/trunk/mscore Il giorno 07/mag/09, alle ore 12:51, Lasconic ha scritto: > It's for the SVN trunk right ? > > 2009/5/7 Raffaele <[hidden email]>: >> Sorry... Attached... >> >> >> >> >> >> Il giorno 07/mag/09, alle ore 12:34, Lasconic ha scritto: >> >>> Maybe you can provide a true patch file ? >>> http://en.wikipedia.org/wiki/Patch_(Unix) >>> If you use tortoise SVN. Right click -> Tortoise-> Create a patch >>> >>> 2009/5/7 Raffaele <[hidden email]>: >>>> >>>> This is the code I added in exportxml.cpp file at line 2680... >>>> Still some wrong things... I don't know how to recognize properly >>>> when >>>> I'm considering the first measure... The calculation of the right >>>> margin is wrong... >>>> See the comments... >>>> >>>> I put the coordinatesPrinted variable checker in order to >>>> implement a >>>> mechanism to let the user choose whether to export the >>>> coordinates or >>>> not... In this case (And in the case we will put some linking >>>> features >>>> to the XML export code) I suggest to put a dialog to ask the user >>>> what >>>> do he wants to export... Whether >>>> >>>> Sorry for my Java like code.. ;) >>>> >>>> Hear you soon, >>>> R >>>> >>>> [...] ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
lasconic
|
In reply to this post
by lasconic
I tried your patch. The patch is for revision 1800. Please update to
trunk. Current revision is 1810 now. I apply your patch "manually" by copy and paste. Some things are missing I guess. NoSystem, NewSystem etc ... are not declared so I can't compile. Regarding the algorithm itself, you relies on measure->linebreak() and measure->pageBreak(). I'm not sure it's ok. As you can see on the demo score, between line 3 and 4 or measure 12 and 13, there is no line break sign but the line breaks. Previous implementation for new-system and new-page exports these tags only when the user has forced the line break. (if you export the demo score you'll see only 3 new system in the result XML) Hope you see my point ? The only other way I can think about is comparing the canvas position to know if the line really breaks. Regarding debugging, if you need it. It works with gdb as command line. 2009/5/7 Raffaele <[hidden email]>: > OK... I'm sorry... > We can export the coordinates in any case... I changed the code... > > Bye, > R > > > > > Il giorno 07/mag/09, alle ore 12:56, Lasconic ha scritto: > >> exportxml.cpp has changed in r1804 and r1807. >> Can you provide a patch on current trunk instead of r1800? Sorry ... >> >> Regarding the code, if coordinates are compatible with musicXML DTD, >> I'm not sure it makes sense to ask the user if he wants coordinates or >> not. >> As far as I know Finale and Sibelius don't ask. Any opinion? >> >> Lasconic >> >> >> 2009/5/7 Lasconic <[hidden email]>: >>> >>> It's for the SVN trunk right ? >>> >>> 2009/5/7 Raffaele <[hidden email]>: >>>> >>>> Sorry... Attached... >>>> >>>> >>>> >>>> >>>> >>>> Il giorno 07/mag/09, alle ore 12:34, Lasconic ha scritto: >>>> >>>>> Maybe you can provide a true patch file ? >>>>> http://en.wikipedia.org/wiki/Patch_(Unix) >>>>> If you use tortoise SVN. Right click -> Tortoise-> Create a patch >>>>> >>>>> 2009/5/7 Raffaele <[hidden email]>: >>>>>> >>>>>> This is the code I added in exportxml.cpp file at line 2680... >>>>>> Still some wrong things... I don't know how to recognize properly when >>>>>> I'm considering the first measure... The calculation of the right >>>>>> margin is wrong... >>>>>> See the comments... >>>>>> >>>>>> I put the coordinatesPrinted variable checker in order to implement a >>>>>> mechanism to let the user choose whether to export the coordinates or >>>>>> not... In this case (And in the case we will put some linking features >>>>>> to the XML export code) I suggest to put a dialog to ask the user what >>>>>> do he wants to export... Whether >>>>>> >>>>>> Sorry for my Java like code.. ;) >>>>>> >>>>>> Hear you soon, >>>>>> R >>>>>> >>>>>> >>>>>> int currentSystem = NoSystem; >>>>>> >>>>>> if (m->prev() && ((Measure*)m->prev())- >>>>>> >lineBreak()) // TODO: MeasureBase >>>>>> currentSystem = NewSystem; >>>>>> else if (!m->prev() || (measureNo > 2 && >>>>>> ((Measure*)m->prev())->pageBreak())) // TODO: MeasureBase >>>>>> currentSystem = NewPage; // It does'nt >>>>>> work... How do I understand if I'm in the first measure? Maybe >>>>>> (irregularMeasureNo + measureNo) == 2? >>>>>> >>>>>> if (areCoordinatesPrinted() && currentSystem != >>>>>> NoSystem ){ // COORDINATES, exported only if requested >>>>>> >>>>>> PageFormat* pf = score->pageFormat(); >>>>>> const double tenths = 2 * PPI * 10 / 9; // >>>>>> tenths calculation >>>>>> const double pageHeight = pf->height() * >>>>>> tenths; >>>>>> const double pageWidth = pf->width() * tenths; >>>>>> const double lm = pf->oddLeftMargin * tenths; >>>>>> const double rm = pf->oddRightMargin * tenths; >>>>>> const double tm = pf->oddTopMargin * tenths; >>>>>> const double bm = pf->oddBottomMargin * tenths; >>>>>> >>>>>> if (currentSystem == NewSystem) >>>>>> xml.stag(QString("print new-system=\"yes >>>>>> \"")); >>>>>> else if (currentSystem == NewPage) >>>>>> xml.stag(QString("print new-page=\"yes >>>>>> \"")); >>>>>> >>>>>> >>>>>> double systemLM = (m->canvasPos().x() * >>>>>> tenths / DPI) - lm; // Left Margin >>>>>> >>>>>> double systemRM = 0; // RightMargin >>>>>> for (Measure* currentMeasure = >>>>>> m;currentMeasure; currentMeasure = (Measure*)currentMeasure->next()){ >>>>>> if (currentMeasure->pageBreak() || >>>>>> currentMeasure->lineBreak()){ >>>>>> systemRM = pageWidth - rm - ((m- >>>>>> >canvasPos().x() + m->bbox().width()) * tenths / DPI ); >>>>>> break; >>>>>> } >>>>>> } //Wrong!! How to calculate the right >>>>>> Margin? >>>>>> >>>>>> double systemTM = 0; // Top Margin >>>>>> if (currentSystem == NewPage) >>>>>> systemTM = (m->canvasPos().y() * tenths / >>>>>> DPI) - tm; >>>>>> else if (currentSystem == NewSystem) >>>>>> systemTM = (m->canvasPos().y() - m- >>>>>> >prev()->canvasPos().y() - m->prev()->bbox().height()) * tenths / >>>>>> DPI; >>>>>> >>>>>> xml.stag("system-layout"); >>>>>> xml.stag("system-margins"); >>>>>> xml.tag("left-margin", systemLM); >>>>>> xml.tag("right-margin", systemRM); >>>>>> xml.etag(); >>>>>> if (currentSystem == NewPage) >>>>>> xml.tag("top-system-distance", systemTM); >>>>>> else if (currentSystem == NewSystem) >>>>>> xml.tag("system-distance", systemTM); >>>>>> xml.etag(); >>>>>> } >>>>>> else { >>>>>> if (currentSystem == NewSystem) >>>>>> xml.tagE("print new-system=\"yes\""); >>>>>> else if (currentSystem == NewPage) >>>>>> xml.tagE("print new-page=\"yes\""); >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! >>>>>> Your >>>>>> production scanning environment may not be a perfect world - but >>>>>> thanks >>>>>> to >>>>>> Kodak, there's a perfect scanner to get the job done! With the NEW >>>>>> KODAK >>>>>> i700 >>>>>> Series Scanner you'll get full speed at 300 dpi even with all image >>>>>> processing features enabled. http://p.sf.net/sfu/kodak-com >>>>>> _______________________________________________ >>>>>> Mscore-developer mailing list >>>>>> [hidden email] >>>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer >>>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! >>>>> Your >>>>> production scanning environment may not be a perfect world - but thanks >>>>> to >>>>> Kodak, there's a perfect scanner to get the job done! With the NEW >>>>> KODAK >>>>> i700 >>>>> Series Scanner you'll get full speed at 300 dpi even with all image >>>>> processing features enabled. http://p.sf.net/sfu/kodak-com >>>>> _______________________________________________ >>>>> Mscore-developer mailing list >>>>> [hidden email] >>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer >>>> >>>> >>>> >>> >> >> >> ------------------------------------------------------------------------------ >> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >> production scanning environment may not be a perfect world - but thanks to >> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK >> i700 >> Series Scanner you'll get full speed at 300 dpi even with all image >> processing features enabled. http://p.sf.net/sfu/kodak-com >> _______________________________________________ >> Mscore-developer mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/mscore-developer > > > ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
lasconic
|
Hi,
No hurry. Open source means you have the time too. I tried your patch. It compiled smoothly. I tried to export the demo score and musescore crashed :) For what I see - Crash occurs in the right margin part. - the </print> element is not at the good place. - The format of the numbers are not good I have some things like : <right-margin>1.7053e-13</right-margin> You understand that I can't put it in the repository as it... Can you tell us how you test your changes ? Do you try to open the resulting musicXML with a specific program ? Regarding debugging I can't help. I don't use gdb. I know that you can use printf statement if you compile musescore with -mconsole. Check mscore/mscore/CMakeList.txt for mconsole. Lasconic 2009/5/8 Raffaele <[hidden email]>: > Hi Lasconic... > Sorry for the latency... Here is the last patch. I use now the coordinates > of the measures to calculate the newsystem and newpage conditions... > There's still the problem of the first measure and how to calculate the > right margin of the system. > > Another question... Is there a particular setting to enable the -g option of > g++ in the compilation? My executable seems to miss the symbols for the > dubugger... > > Thank you, > Raffaele > > > > Il giorno 07/mag/09, alle ore 14:11, Lasconic ha scritto: > >> I tried your patch. The patch is for revision 1800. Please update to >> trunk. Current revision is 1810 now. >> I apply your patch "manually" by copy and paste. >> Some things are missing I guess. NoSystem, NewSystem etc ... are not >> declared so I can't compile. >> >> Regarding the algorithm itself, you relies on measure->linebreak() and >> measure->pageBreak(). >> I'm not sure it's ok. As you can see on the demo score, between line 3 >> and 4 or measure 12 and 13, there is no line break sign but the line >> breaks. >> Previous implementation for new-system and new-page exports these tags >> only when the user has forced the line break. (if you export the demo >> score you'll see only 3 new system in the result XML) >> Hope you see my point ? The only other way I can think about is >> comparing the canvas position to know if the line really breaks. >> >> Regarding debugging, if you need it. It works with gdb as command line. >> >> 2009/5/7 Raffaele <[hidden email]>: >>> >>> OK... I'm sorry... >>> We can export the coordinates in any case... I changed the code... >>> >>> Bye, >>> R >>> >>> >>> >>> >>> Il giorno 07/mag/09, alle ore 12:56, Lasconic ha scritto: >>> >>>> exportxml.cpp has changed in r1804 and r1807. >>>> Can you provide a patch on current trunk instead of r1800? Sorry ... >>>> >>>> Regarding the code, if coordinates are compatible with musicXML DTD, >>>> I'm not sure it makes sense to ask the user if he wants coordinates or >>>> not. >>>> As far as I know Finale and Sibelius don't ask. Any opinion? >>>> >>>> Lasconic >>>> >>>> >>>> 2009/5/7 Lasconic <[hidden email]>: >>>>> >>>>> It's for the SVN trunk right ? >>>>> >>>>> 2009/5/7 Raffaele <[hidden email]>: >>>>>> >>>>>> Sorry... Attached... >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Il giorno 07/mag/09, alle ore 12:34, Lasconic ha scritto: >>>>>> >>>>>>> Maybe you can provide a true patch file ? >>>>>>> http://en.wikipedia.org/wiki/Patch_(Unix) >>>>>>> If you use tortoise SVN. Right click -> Tortoise-> Create a patch >>>>>>> >>>>>>> 2009/5/7 Raffaele <[hidden email]>: >>>>>>>> >>>>>>>> This is the code I added in exportxml.cpp file at line 2680... >>>>>>>> Still some wrong things... I don't know how to recognize properly >>>>>>>> when >>>>>>>> I'm considering the first measure... The calculation of the right >>>>>>>> margin is wrong... >>>>>>>> See the comments... >>>>>>>> >>>>>>>> I put the coordinatesPrinted variable checker in order to implement >>>>>>>> a >>>>>>>> mechanism to let the user choose whether to export the coordinates >>>>>>>> or >>>>>>>> not... In this case (And in the case we will put some linking >>>>>>>> features >>>>>>>> to the XML export code) I suggest to put a dialog to ask the user >>>>>>>> what >>>>>>>> do he wants to export... Whether >>>>>>>> >>>>>>>> Sorry for my Java like code.. ;) >>>>>>>> >>>>>>>> Hear you soon, >>>>>>>> R >>>>>>>> >>>>>>>> >>>>>>>> int currentSystem = NoSystem; >>>>>>>> >>>>>>>> if (m->prev() && ((Measure*)m->prev())- >>>>>>>> >lineBreak()) // TODO: MeasureBase >>>>>>>> currentSystem = NewSystem; >>>>>>>> else if (!m->prev() || (measureNo > 2 && >>>>>>>> ((Measure*)m->prev())->pageBreak())) // TODO: MeasureBase >>>>>>>> currentSystem = NewPage; // It does'nt >>>>>>>> work... How do I understand if I'm in the first measure? Maybe >>>>>>>> (irregularMeasureNo + measureNo) == 2? >>>>>>>> >>>>>>>> if (areCoordinatesPrinted() && currentSystem != >>>>>>>> NoSystem ){ // COORDINATES, exported only if requested >>>>>>>> >>>>>>>> PageFormat* pf = score->pageFormat(); >>>>>>>> const double tenths = 2 * PPI * 10 / 9; // >>>>>>>> tenths calculation >>>>>>>> const double pageHeight = pf->height() * >>>>>>>> tenths; >>>>>>>> const double pageWidth = pf->width() * tenths; >>>>>>>> const double lm = pf->oddLeftMargin * tenths; >>>>>>>> const double rm = pf->oddRightMargin * tenths; >>>>>>>> const double tm = pf->oddTopMargin * tenths; >>>>>>>> const double bm = pf->oddBottomMargin * tenths; >>>>>>>> >>>>>>>> if (currentSystem == NewSystem) >>>>>>>> xml.stag(QString("print new-system=\"yes >>>>>>>> \"")); >>>>>>>> else if (currentSystem == NewPage) >>>>>>>> xml.stag(QString("print new-page=\"yes >>>>>>>> \"")); >>>>>>>> >>>>>>>> >>>>>>>> double systemLM = (m->canvasPos().x() * >>>>>>>> tenths / DPI) - lm; // Left Margin >>>>>>>> >>>>>>>> double systemRM = 0; // RightMargin >>>>>>>> for (Measure* currentMeasure = >>>>>>>> m;currentMeasure; currentMeasure = >>>>>>>> (Measure*)currentMeasure->next()){ >>>>>>>> if (currentMeasure->pageBreak() || >>>>>>>> currentMeasure->lineBreak()){ >>>>>>>> systemRM = pageWidth - rm - ((m- >>>>>>>> >canvasPos().x() + m->bbox().width()) * tenths / DPI ); >>>>>>>> break; >>>>>>>> } >>>>>>>> } //Wrong!! How to calculate the right >>>>>>>> Margin? >>>>>>>> >>>>>>>> double systemTM = 0; // Top Margin >>>>>>>> if (currentSystem == NewPage) >>>>>>>> systemTM = (m->canvasPos().y() * tenths / >>>>>>>> DPI) - tm; >>>>>>>> else if (currentSystem == NewSystem) >>>>>>>> systemTM = (m->canvasPos().y() - m- >>>>>>>> >prev()->canvasPos().y() - m->prev()->bbox().height()) * tenths / >>>>>>>> DPI; >>>>>>>> >>>>>>>> xml.stag("system-layout"); >>>>>>>> xml.stag("system-margins"); >>>>>>>> xml.tag("left-margin", systemLM); >>>>>>>> xml.tag("right-margin", systemRM); >>>>>>>> xml.etag(); >>>>>>>> if (currentSystem == NewPage) >>>>>>>> xml.tag("top-system-distance", systemTM); >>>>>>>> else if (currentSystem == NewSystem) >>>>>>>> xml.tag("system-distance", systemTM); >>>>>>>> xml.etag(); >>>>>>>> } >>>>>>>> else { >>>>>>>> if (currentSystem == NewSystem) >>>>>>>> xml.tagE("print new-system=\"yes\""); >>>>>>>> else if (currentSystem == NewPage) >>>>>>>> xml.tagE("print new-page=\"yes\""); >>>>>>>> } >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------------------------ >>>>>>>> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! >>>>>>>> Your >>>>>>>> production scanning environment may not be a perfect world - but >>>>>>>> thanks >>>>>>>> to >>>>>>>> Kodak, there's a perfect scanner to get the job done! With the NEW >>>>>>>> KODAK >>>>>>>> i700 >>>>>>>> Series Scanner you'll get full speed at 300 dpi even with all image >>>>>>>> processing features enabled. http://p.sf.net/sfu/kodak-com >>>>>>>> _______________________________________________ >>>>>>>> Mscore-developer mailing list >>>>>>>> [hidden email] >>>>>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------------ >>>>>>> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! >>>>>>> Your >>>>>>> production scanning environment may not be a perfect world - but >>>>>>> thanks >>>>>>> to >>>>>>> Kodak, there's a perfect scanner to get the job done! With the NEW >>>>>>> KODAK >>>>>>> i700 >>>>>>> Series Scanner you'll get full speed at 300 dpi even with all image >>>>>>> processing features enabled. http://p.sf.net/sfu/kodak-com >>>>>>> _______________________________________________ >>>>>>> Mscore-developer mailing list >>>>>>> [hidden email] >>>>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >>>> production scanning environment may not be a perfect world - but thanks >>>> to >>>> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK >>>> i700 >>>> Series Scanner you'll get full speed at 300 dpi even with all image >>>> processing features enabled. http://p.sf.net/sfu/kodak-com >>>> _______________________________________________ >>>> Mscore-developer mailing list >>>> [hidden email] >>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer >>> >>> >>> >> >> >> ------------------------------------------------------------------------------ >> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your >> production scanning environment may not be a perfect world - but thanks to >> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK >> i700 >> Series Scanner you'll get full speed at 300 dpi even with all image >> processing features enabled. http://p.sf.net/sfu/kodak-com >> _______________________________________________ >> Mscore-developer mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/mscore-developer > > > ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
Raffaele-3
|
Hi Lasconic...
I prepared a new patch with the correct calculation for the layout values. The measures widths are as well exported and horizontal and vertical spaces are considered without problems. I answer ... Il giorno 09/mag/09, alle ore 00:00, Lasconic ha scritto: > You understand that I can't put it in the repository as it... For sure.... > Can you tell us how you test your changes ? Do you try to open the > resulting musicXML with a specific program ? I tried MusicXML produced with the last patch with a friend's Sibelius 5.2 . The layout seems perfect... Something strange happens with slurs but... I don't think the layout patch is responsible for that... I put the patch as attachment... Hear you soon. Raffaele ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
lasconic
|
Thanks ! I will try it and let you know.
Finale is a better option than Sibelius for musicXML. I try to compare my changes in musescore export with Finale musicXML export when possible. Lasconic 2009/5/15 Raffaele <[hidden email]>: > Hi Lasconic... > I prepared a new patch with the correct calculation for the layout values. > The measures widths are as well exported and horizontal and vertical spaces > are considered without problems. > > I answer ... > Il giorno 09/mag/09, alle ore 00:00, Lasconic ha scritto: >> >> You understand that I can't put it in the repository as it... > > For sure.... > >> Can you tell us how you test your changes ? Do you try to open the >> resulting musicXML with a specific program ? > > I tried MusicXML produced with the last patch with a friend's Sibelius 5.2 . > The layout seems perfect... > Something strange happens with slurs but... I don't think the layout patch > is responsible for that... > > I put the patch as attachment... > > Hear you soon. > Raffaele ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
lasconic
|
Ok :) It looks better. Compilation ok. Musescore exports the demo
score without crashing and I can import the demo in finale. Several points: - I took a look to the resulting XML and a finale xml. system left margin are almost always 0 in finale. I'm not sure the position of the first measure of a system is the good start point to calculate this. You get it ? - In finale the lines are not layouted the same so something is wrong somewhere. Not related with your patch but while you are at it :) I'm not sure the paper and margins are good... Recalculating page width and page height based on <millimeters> and <tenths> does not give back A4 format I think. Lasconic 2009/5/15 Lasconic <[hidden email]>: > Thanks ! I will try it and let you know. > Finale is a better option than Sibelius for musicXML. I try to compare > my changes in musescore export with Finale musicXML export when > possible. > > Lasconic > > 2009/5/15 Raffaele <[hidden email]>: >> Hi Lasconic... >> I prepared a new patch with the correct calculation for the layout values. >> The measures widths are as well exported and horizontal and vertical spaces >> are considered without problems. >> >> I answer ... >> Il giorno 09/mag/09, alle ore 00:00, Lasconic ha scritto: >>> >>> You understand that I can't put it in the repository as it... >> >> For sure.... >> >>> Can you tell us how you test your changes ? Do you try to open the >>> resulting musicXML with a specific program ? >> >> I tried MusicXML produced with the last patch with a friend's Sibelius 5.2 . >> The layout seems perfect... >> Something strange happens with slurs but... I don't think the layout patch >> is responsible for that... >> >> I put the patch as attachment... >> >> Hear you soon. >> Raffaele > ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
|
Raffaele-3
|
Il giorno 15/mag/09, alle ore 15:49, Lasconic ha scritto:
> - I took a look to the resulting XML and a finale xml. system left > margin are almost always 0 in finale. I'm not sure the position of the > first measure of a system is the good start point to calculate this. > You get it ? Yes, I get it but... My system left margin is not taking care of the braket(it's exactly 17 tenths large). So do you think I have to refer to the braket to get the left margin? > > - In finale the lines are not layouted the same so something is > wrong somewhere. I figure out now... It seems that for Finale the first system(measures from 1 to 4) width exceeds the available page width... As well as the third(measure from 9 to 12)... For this reason it uses the whole page width for the measure 4 and 12 and after it puts a line break, because the 10 and 13 have new-system = yes.... Maybe the left braket is the key to solve this problem as well? mmm > > Not related with your patch but while you are at it :) I'm not sure > the paper and margins are good... > Recalculating page width and page height based on <millimeters> and > <tenths> does not give back A4 format I think. mmmmmm I'll take a look... Hear you soon, Raffaele > > > Lasconic > > > > > 2009/5/15 Lasconic <[hidden email]>: >> Thanks ! I will try it and let you know. >> Finale is a better option than Sibelius for musicXML. I try to >> compare >> my changes in musescore export with Finale musicXML export when >> possible. >> >> Lasconic >> >> 2009/5/15 Raffaele <[hidden email]>: >>> Hi Lasconic... >>> I prepared a new patch with the correct calculation for the layout >>> values. >>> The measures widths are as well exported and horizontal and >>> vertical spaces >>> are considered without problems. >>> >>> I answer ... >>> Il giorno 09/mag/09, alle ore 00:00, Lasconic ha scritto: >>>> >>>> You understand that I can't put it in the repository as it... >>> >>> For sure.... >>> >>>> Can you tell us how you test your changes ? Do you try to open the >>>> resulting musicXML with a specific program ? >>> >>> I tried MusicXML produced with the last patch with a friend's >>> Sibelius 5.2 . >>> The layout seems perfect... >>> Something strange happens with slurs but... I don't think the >>> layout patch >>> is responsible for that... >>> >>> I put the patch as attachment... >>> >>> Hear you soon. >>> Raffaele >> ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Mscore-developer mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/mscore-developer |
||||||||||||||||
| Free Embeddable Forum Powered by Nabble | Help |