wrong note name conversion in musicxml2ly

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

wrong note name conversion in musicxml2ly

mari+lilypond
when converting a mxl file with "musicxml2ly --language=deutsch" the
note "beses" is converted to "bes". Lilypond gives an error at this
notename with \language "deutsch", because the correct german notename
for "double flat b" is "heses". This happens with all musicxml2ly
versions at least from 2.18.2 to 2.21.0.

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

David Kastrup
[hidden email] writes:

> when converting a mxl file with "musicxml2ly --language=deutsch" the
> note "beses" is converted to "bes". Lilypond gives an error at this
> notename with \language "deutsch", because the correct german notename
> for "double flat b" is "heses". This happens with all musicxml2ly
> versions at least from 2.18.2 to 2.21.0.

Just trying to fix it, but I find the following in
scm/define-note-names.ly in the German section:

                (heses . ,(ly:make-pitch -1 6 DOUBLE-FLAT))
                (heseh . ,(ly:make-pitch -1 6 THREE-Q-FLAT))
                (b . ,(ly:make-pitch -1 6 FLAT))
                (beh . ,(ly:make-pitch -1 6 SEMI-FLAT))
                (h . ,(ly:make-pitch -1 6 NATURAL))
                (hih . ,(ly:make-pitch -1 6 SEMI-SHARP))
                (his . ,(ly:make-pitch -1 6 SHARP))
                (hisih . ,(ly:make-pitch -1 6 THREE-Q-SHARP))
                (hisis . ,(ly:make-pitch -1 6 DOUBLE-SHARP))

That looks almost like something I could work with, except for beh .
For all other note names, the suffix -eh indicates _lowering_ by a
quarter note, whereas beh _raises_ b by a quarternote.  Shouldn't it
rather be heh , making b the _only_ exception?

--
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

mari+lilypond
At least the output of musicxml2ly should be consistent with lilypond
and should not not give an error message when compiling.

Here the german Wikipedia for "double flat b":
https://de.wikipedia.org/wiki/Doppel-b


On 2/9/20 1:49 PM, David Kastrup wrote:

> [hidden email] writes:
>
>> when converting a mxl file with "musicxml2ly --language=deutsch" the
>> note "beses" is converted to "bes". Lilypond gives an error at this
>> notename with \language "deutsch", because the correct german notename
>> for "double flat b" is "heses". This happens with all musicxml2ly
>> versions at least from 2.18.2 to 2.21.0.
>
> Just trying to fix it, but I find the following in
> scm/define-note-names.ly in the German section:
>
>                 (heses . ,(ly:make-pitch -1 6 DOUBLE-FLAT))
>                 (heseh . ,(ly:make-pitch -1 6 THREE-Q-FLAT))
>                 (b . ,(ly:make-pitch -1 6 FLAT))
>                 (beh . ,(ly:make-pitch -1 6 SEMI-FLAT))
>                 (h . ,(ly:make-pitch -1 6 NATURAL))
>                 (hih . ,(ly:make-pitch -1 6 SEMI-SHARP))
>                 (his . ,(ly:make-pitch -1 6 SHARP))
>                 (hisih . ,(ly:make-pitch -1 6 THREE-Q-SHARP))
>                 (hisis . ,(ly:make-pitch -1 6 DOUBLE-SHARP))
>
> That looks almost like something I could work with, except for beh .
> For all other note names, the suffix -eh indicates _lowering_ by a
> quarter note, whereas beh _raises_ b by a quarternote.  Shouldn't it
> rather be heh , making b the _only_ exception?
>

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

mari+lilypond
According to
http://www.ekmelic-music.org/de/extra/name24.htm
the "beh" in Netherlands or "bqf" in English does correspond indeed to
"heh" in German. But I never worked with quarter notes.


On 2/9/20 5:52 PM, David Kastrup wrote:

> [hidden email] writes:
>
>>> On 2/9/20 1:49 PM, David Kastrup wrote:
>>>> [hidden email] writes:
>>>>
>>>>> when converting a mxl file with "musicxml2ly --language=deutsch" the
>>>>> note "beses" is converted to "bes". Lilypond gives an error at this
>>>>> notename with \language "deutsch", because the correct german notename
>>>>> for "double flat b" is "heses". This happens with all musicxml2ly
>>>>> versions at least from 2.18.2 to 2.21.0.
>>>>
>>>> Just trying to fix it, but I find the following in
>>>> scm/define-note-names.ly in the German section:
>>>>
>>>>                 (heses . ,(ly:make-pitch -1 6 DOUBLE-FLAT))
>>>>                 (heseh . ,(ly:make-pitch -1 6 THREE-Q-FLAT))
>>>>                 (b . ,(ly:make-pitch -1 6 FLAT))
>>>>                 (beh . ,(ly:make-pitch -1 6 SEMI-FLAT))
>>>>                 (h . ,(ly:make-pitch -1 6 NATURAL))
>>>>                 (hih . ,(ly:make-pitch -1 6 SEMI-SHARP))
>>>>                 (his . ,(ly:make-pitch -1 6 SHARP))
>>>>                 (hisih . ,(ly:make-pitch -1 6 THREE-Q-SHARP))
>>>>                 (hisis . ,(ly:make-pitch -1 6 DOUBLE-SHARP))
>>>>
>>>> That looks almost like something I could work with, except for beh .
>>>> For all other note names, the suffix -eh indicates _lowering_ by a
>>>> quarter note, whereas beh _raises_ b by a quarternote.  Shouldn't it
>>>> rather be heh , making b the _only_ exception?
>>
>> At least the output of musicxml2ly should be consistent with lilypond
>> and should not not give an error message when compiling.
>>
>> Here the german Wikipedia for "double flat b":
>> https://de.wikipedia.org/wiki/Doppel-b
>
> That is all very well, but making musicxml2ly agree with LilyPond here
> makes mostly sense when we are reasonably sure that LilyPond will not
> need to get changed again soon.  So even while I understand that you are
> not interested in getting quarternotes working or consistent as well, I
> don't think it makes sense to not cater for consistency here too while
> I am touching the code.
>
> Since the interest on the bug list is limited for the quarternote naming
> problem in German, I am including the developer list here.  I don't
> think the discussion will be so long that adding two separate fixes will
> prove necessary.
>

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

Torsten Hämmerle
In reply to this post by David Kastrup
In any case, the current musicxml2ly problem is about heses. And the heses
note name definition in LilyPond (scm/define-note-names.scm) is correct and
should not be changed.
musicxml2ly must not produce a German "bes", because this clearly should be
"heses"

Here's the coding for German pitch names:


Replacing generic "hes" by "b" is OK, but, that way, generic "heses" will
become "bes", wich is clearly wrong and will lead to the error observed.

So obviously, it's a problem with *python substring replacement*.
I don't know much about python, but replace() doesn't seem to work out here.
Probably only a direct string comparison will help here, perhaps someone
knowledgeable has a more elegant solution.




dak wrote
> That looks almost like something I could work with, except for beh .
> For all other note names, the suffix -eh indicates _lowering_ by a
> quarter note, whereas beh _raises_ b by a quarternote.  Shouldn't it
> rather be heh , making b the _only_ exception?


Yes, "beh" should definitely be "heh".

In my never ending triple-flat-issue 3356, here are the triple flat/sharp
range German note names:
The incorrect original beh has been replaced by the correct heh:
"beh" hasn't even been kept because it is inherently inconsistent:



All the best,
Torsten




--
Sent from: http://lilypond.1069038.n5.nabble.com/Bugs-f58488.html

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

David Kastrup
Torsten Hämmerle <[hidden email]> writes:

> In any case, the current musicxml2ly problem is about heses. And the heses
> note name definition in LilyPond (scm/define-note-names.scm) is correct and
> should not be changed.
> musicxml2ly must not produce a German "bes", because this clearly should be
> "heses"
>
> Here's the coding for German pitch names:
>
>
> Replacing generic "hes" by "b" is OK, but, that way, generic "heses" will
> become "bes", wich is clearly wrong and will lead to the error observed.
>
> So obviously, it's a problem with *python substring replacement*.
> I don't know much about python, but replace() doesn't seem to work out here.
> Probably only a direct string comparison will help here, perhaps someone
> knowledgeable has a more elegant solution.

Well,

Tracker issue: 5746 (https://sourceforge.net/p/testlilyissues/issues/5746/)
Rietveld issue: 547610043 (https://codereview.appspot.com/547610043)
Issue description:
  Fix and align musicxml and input language "deutsch"  Has commits:
  In \language "deutsch" use b only to replace hes  The quartertone
  names should all be derived from h instead of b since beh was being
  used inconsistently.   Fix deutsch language of musicxml2py  Use b
  only for hes and nothing else.  Also use asas and asah instead of
  ases and aseh.

should fix either.  It doesn't use patterns for hes.  Somewhat artless.
So what.

--
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

Torsten Hämmerle
Oh, great, thanks,

I missed issue 5746. it exactly solves the problem and even will produce the
more common "asah" instead of "aseh" etc.
So apologies for my late (and hence superfluent) reply/hint.

Torsten





--
Sent from: http://lilypond.1069038.n5.nabble.com/Bugs-f58488.html

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

David Kastrup
Torsten Hämmerle <[hidden email]> writes:

> Oh, great, thanks,
>
> I missed issue 5746. it exactly solves the problem and even will produce the
> more common "asah" instead of "aseh" etc.
> So apologies for my late (and hence superfluent) reply/hint.

Well, I should have posted a notice regarding the tracker issue to the
thread once it was done.  Giving people the mistaken impression that
nobody cares about their bug reports is needlessly wasting their
motivation for reporting problems.

Sorry for having forgotten about that.

--
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

mari+lilypond
In reply to this post by David Kastrup
As far as I understand the closed issue 5746 should fix the problem
musicxml2ly generating the note name "bes" instead of "heses" with
--language=deutsch.

In fact the problem is not fixed in the actual git repository. See my
attached mxl-file and the ly output of
musicxml2ly --language=deutsch --nd --nrp --npl  xml_test.mxl
which still contains "bes".


On 2/11/20 5:22 PM, David Kastrup wrote:

> Torsten Hämmerle <[hidden email]> writes:
>
>> In any case, the current musicxml2ly problem is about heses. And the heses
>> note name definition in LilyPond (scm/define-note-names.scm) is correct and
>> should not be changed.
>> musicxml2ly must not produce a German "bes", because this clearly should be
>> "heses"
>>
>> Here's the coding for German pitch names:
>>
>>
>> Replacing generic "hes" by "b" is OK, but, that way, generic "heses" will
>> become "bes", wich is clearly wrong and will lead to the error observed.
>>
>> So obviously, it's a problem with *python substring replacement*.
>> I don't know much about python, but replace() doesn't seem to work out here.
>> Probably only a direct string comparison will help here, perhaps someone
>> knowledgeable has a more elegant solution.
>
> Well,
>
> Tracker issue: 5746 (https://sourceforge.net/p/testlilyissues/issues/5746/)
> Rietveld issue: 547610043 (https://codereview.appspot.com/547610043)
> Issue description:
>   Fix and align musicxml and input language "deutsch"  Has commits:
>   In \language "deutsch" use b only to replace hes  The quartertone
>   names should all be derived from h instead of b since beh was being
>   used inconsistently.   Fix deutsch language of musicxml2py  Use b
>   only for hes and nothing else.  Also use asas and asah instead of
>   ases and aseh.
>
> should fix either.  It doesn't use patterns for hes.  Somewhat artless.
> So what.
>

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond

xml_test.mxl (2K) Download Attachment
xml_test.ly (994 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

David Kastrup
[hidden email] writes:

> As far as I understand the closed issue 5746 should fix the problem
> musicxml2ly generating the note name "bes" instead of "heses" with
> --language=deutsch.
>
> In fact the problem is not fixed in the actual git repository. See my
> attached mxl-file and the ly output of
> musicxml2ly --language=deutsch --nd --nrp --npl  xml_test.mxl
> which still contains "bes".

I think the \version string points to you using the wrong musicxml2ly
executable.

I get


\version "2.21.0"
% automatically converted by musicxml2ly from xml_test.mxl
\pointAndClickOff

%% additional definitions required by the score:
\language "deutsch"


\header {
    encodingsoftware =  "MuseScore 3.4.2"
    encodingdate =  "2020-02-16"
    composer =  Composer
    title =  Title
    }

\layout {
    \context { \Score
        skipBars = ##t
        autoBeaming = ##f
        }
    }
PartPOneVoiceOne =  \relative h' {
    \clef "treble" \key c \major \numericTimeSignature\time 4/4 | % 1
    \stemDown h4 \stemDown b4 \stemDown bes4 \stemDown his4 | % 2
    R1*31 \bar "|."
    }


% The score definition
\score {
    <<
       
        \new Staff
        <<
            \set Staff.instrumentName = "Piano"
            \set Staff.shortInstrumentName = "Pno."
           
            \context Staff <<
                \mergeDifferentlyDottedOn\mergeDifferentlyHeadedOn
                \context Voice = "PartPOneVoiceOne" {  \PartPOneVoiceOne }
                >>
            >>
       
        >>
    \layout {}
    % To create MIDI output, uncomment the following line:
    %  \midi {\tempo 4 = 100 }
    }



--
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: wrong note name conversion in musicxml2ly

mari+lilypond
You are right. It was My fault. I did use the wrong path.

Thank you for fixing.

On 2/16/20 6:30 PM, David Kastrup wrote:

> [hidden email] writes:
>
>> As far as I understand the closed issue 5746 should fix the problem
>> musicxml2ly generating the note name "bes" instead of "heses" with
>> --language=deutsch.
>>
>> In fact the problem is not fixed in the actual git repository. See my
>> attached mxl-file and the ly output of
>> musicxml2ly --language=deutsch --nd --nrp --npl  xml_test.mxl
>> which still contains "bes".
>
> I think the \version string points to you using the wrong musicxml2ly
> executable.
>
> I get
>
>
>
>
> _______________________________________________
> bug-lilypond mailing list
> [hidden email]
> https://lists.gnu.org/mailman/listinfo/bug-lilypond
>

_______________________________________________
bug-lilypond mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-lilypond