[JW Lua] Enharmonic Flip Bit

Jan Angermüller jan at angermueller.com
Wed Mar 1 17:02:12 CET 2023


Did you get feedback from MakeMusic on how it works?
Was it only the 4? Or were more bits involved?

Jan

Am 23.02.2023 um 14:57 schrieb Jan Angermüller:
> 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
>
> _______________________________________________
> 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/20230301/28203656/attachment.html>


More information about the JWLua mailing list