[JW Lua] Enharmonic Flip Bit

Jan Angermüller jan at angermueller.com
Thu Feb 23 14:57:06 CET 2023


Thank you! This helps indeed.

Am 23.02.2023 um 14:49 schrieb Robert Patterson:
> That 4 value appears to be the enharmonic flip bit, which is not 
> documented in the PDK. I have sent a message to Makemusic to get 
> clarification on how it works. Once I hear back, I will add it to the 
> PDK Framework and Lua.
>
> The 13 is a custom font id. However, 13 is the font ID for Finale 
> Music, so it's the same as the default font. Furthermore, since the 
> "UseCustomFont" option is false, the custom font id is ignored anyway. 
> The 13s appear to be cruft in the file.
>
> You may encounter this situation with any Special Tools modification 
> that is unlinkable, including FCNoteheadMods. It will appear to have 
> all default values in the score but is modified in one or more parts. 
> There is no way to determine this except to compare in all parts that 
> contain the staff.
>
> You may know that my Mass Copy plugin has a "Relink" option. Relinking 
> is not directly supported in the PDK. The way my plugin works is that 
> it makes a copy of the values it wants to relink to, deletes the item 
> entirely and then re-adds it in the score with the copied values.
>
> If you delete seemingly empty note details in the score, you are 
> removing unlinked values from the parts and relinking them to the score.
>
> I hope this helps.
>
> On Thu, Feb 23, 2023 at 3:06 AM Jan Angermüller <jan at angermueller.com> 
> wrote:
>
>     Robert,
>
>     I have recently had a document that included seemingly "empty"
>     FCNoteheadMods.
>     I.e. all options from the NoteheadMod dialog were set to the
>     default value.
>
>     So I deleted it with nh:DeleteData(), because I thought it was an
>     unnecessary/corrupt FCNoteheadMod.
>     This lead to a problem:
>     When you do the CreateRawDataDump and list the 11th value, it may
>     include a "4", and 13th value may include a "13".
>
>     local nu=nh:CreateRawDataDump()
>     print(nu:GetItemAt(10).Int)
>
>     If this returns 4, then the "Enharmonic" bit is activated.
>     Otherwise it returns 0.
>     If you delete the FCNoteheadMod in this case, the enharmonic flip
>     disappears.
>     nu:GetItemAt(12).Int sometimes returns "13". I didn't find out
>     what this is.
>
>     As Perfect Layout wants to delete corrupt/empty FCNoteheadMods by
>     default, it's difficult to find out when looking at the score only:
>     If the enharmonic flip is only in a linked part and you load the
>     FCNoteheadMod in the score, you won't recognize that there may be
>     a flip in a part.
>     Or in other words: if you analyze the DataDump in the score, it
>     looks like the FCNoteheadMod doesn't make sense, because all
>     values are set to 0 (except the 100 resize value).
>
>     My questions:
>     - Maybe you could add the GetEnharmonic() to FCNoteheadMod?
>     - Maybe you know what the 13 is?
>     - Do you know if there is a simple way to decide when looking at
>     the FCNoteheadMod in the score whether this is a "false/empty"
>     FCNoteheadMod or if this is actually an unlinked FCNoteheadMod?
>     According to my documentation there have been situations (maybe in
>     corrupt documents?) where false/empty FCNoteheadMods should be
>     deleted.
>     Until now I did when all values where set to the default values in
>     the score. And I don't want to switch through all parts at that
>     point, if possible.
>
>     Here is a test script for the attached document:
>     local reg=finale.FCMusicRegion()
>     reg:SetFullDocument()
>     local parts=finale.FCParts()
>     parts:LoadAll()
>     for p in each(parts) do
>         p:SwitchTo()
>         for e in eachentry(reg) do
>             if e.NoteDetailFlag then
>                 local nhmods=e:CreateNoteheadMods()
>                 for nh in each(nhmods) do
>                     local nu=nh:CreateRawDataDump()
>                     if nu then
>     print(p.ID,e.Measure,e.MeasurePos,nu:GetItemAt(10).Int,nu:GetItemAt(12).Int)
>                     end
>                 end
>             end
>         end
>         p:SwitchBack()
>     end
>
>     Running [Unnamed Script] ======>
>     0 1 0 0 0  --> Score: Measure 1, Pos 0, all default values (=0)
>     0 1 2048 0 0
>     0 2 0 0 13  -->  13 is set
>     0 3 2560 4 13  --> 4 and 13 is set
>     9 1 0 4 0   --> 4 is set
>     9 1 2048 4 0   --> 4 is set
>     9 2 0 4 13   --> 4 and 13 is set
>     9 3 2560 0 13   --> 13 is set
>     <======= [Unnamed Script] succeeded (Processing time: 0.000 s).
>
>     Four notes have enharmonic flips and two also have the "13" value.
>     Three notes have the "4" in the linked part, one note has it in
>     the score.
>
>     Jan
>
>
>
>     _______________________________________________
>     JWLua mailing list
>     JWLua at jwmusic.nu
>     http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu
>
>
> _______________________________________________
> JWLua mailing list
> JWLua at jwmusic.nu
> http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu

-- 
Jan Angermüller
Orchideenstieg 13
22297 Hamburg
Tel. 040 - 28 94 84 82
Mobil 0173 - 99 33 904
www.elbsound.studio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20230223/40c213aa/attachment.htm>


More information about the JWLua mailing list