• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Status of support for ChordPro meta data
#1
Most of the songs I have in MSPro are in ChordPro format. For obvious reasons, I would like to maintain as much of the song metadata in the ChordPro source file.

(Group A) When a song is imported into MSPro, currently the following meta data directives are recognized:
  • title
  • subtitle
  • artist
  • album
  • time
  • key
  • tempo
  • duration
  • time (corresponds to signature)
  • capo
(Note: Only single values can be set.)

(Group B) The following ChordPro meta data directives are not yet recognized:
  • composer
  • year

(Group C) The following ChordPro meta data directives have no MSPro counterpart:
  • lyricist
  • arranger

(Group D) The following MSPro meta data do not have a ChordPro directive:
  • sorttitle
  • collection
  • setlist
  • source
  • genre
  • difficulty
  • custom
  • custom2
  • (custom) group
  • keywords

Fortunately, ChordPro has a {meta} directive that can be used to set the known meta data, but also allows for new meta data to be defined. For example, to set the genre:

Code:
{meta: genre Irish}

So I humbly request:
  1. to add support for the directives of group B;
  2. to ignore the directives of group C;
  3. to add support for {meta} and the keywords of group D;
  4. for all groups: allow multiple values to be defined.

Notes:
  • These features can be implemented independently, not everything needs to be done at once.
  • I do not think it is necessary to be able to automatically (or on demand) update the source file on disk when meta data is modified although it would be nice if the source editor could update the source with actual meta data.
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#2
I can certainly work on that. When it comes to defining multiple values, do you mean a delimited list of values in the same directive, or combine all of the values from separate directives into one list? I'm assuming you mean the latter, so that you could do something like:

{artist: Artist 1}
{artist: Artist 2}

and they would both be added in MobileSheetsPro.  Also, your very last bullet about updating the source with actual meta data, can you elaborate a little bit about exactly what that would mean? Do you mean if you edit a chord pro file in MobileSheetsPro, at that moment in time I inject metadata values into the file to reflect the current metadata in MobileSheetsPro?

Thanks,
Mike
Reply
#3
(04-07-2018, 02:10 AM)Zuberman Wrote: I can certainly work on that.

Super!

Quote:When it comes to defining multiple values, do you mean a delimited list of values in the same directive, or combine all of the values from separate directives into one list? I'm assuming you mean the latter, so that you could do something like:

{artist: Artist 1}
{artist: Artist 2}

and they would both be added in MobileSheetsPro.

Yes, that's the idea. The ChordPro standard says “Multiple [...] can be specified using multiple directives.”. There is no provision for multiple entries in a single directive, mostly by lack of a sufficiently acceptable delimeter.

Quote:Also, your very last bullet about updating the source with actual meta data, can you elaborate a little bit about exactly what that would mean? Do you mean if you edit a chord pro file in MobileSheetsPro, at that moment in time I inject metadata values into the file to reflect the current metadata in MobileSheetsPro?

Not automatically, and not by default. I would suggest a menu entry (alongside Transpose, Insert, ...) "Actualize Metadata" or something similar. This would basically remove all (supported) meta data directives from the source and insert a new set of directives at the beginning, immedeately following {title}.

There are some complications, though. Meta data directives time, tempo and key are (assumed to be) position dependent. The standard says “Multiple key specifications are possible, each specification is assumed to apply from where it was specified.”

For example:

Code:
{tempo 100}
...normal tempo...
{tempo: 120}
...faster tempo...
{tempo: 80}
..slower tempo...

I know of no tool that actually supports this at this moment, but it could be made to work some day.

Unless someone has some clear ideas how to handle this I would leave updating meta data for a future version.
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#4
I've added everything you asked for besides updating the metadata in the editor. It will be included with the next update which I'm in the process of preparing.

Mike
Reply
#5
Great job!
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#6
I did some experimenting and in general it works as expected. Thanks for implementing this.

I noticed MSPro does not accept the form {meta genre: Irish} (colon after item name). I'll be the first to say I can live with this, but according to the V5 standard this form should be allowed.

Unrelated: I often exchange songs via the Telegram app. When opening the song in Telegram on Android, it offers MobileSheetsPro for import. If I confirm this, MSPro starts up and crashes almost immediately.
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#7
I can update the code to that format. I hadn't checked the V5 standard - I was just going off your post. I'll make sure to check against that next time.

As for the issue with Telegram, I'll see if I can reproduce that on my devices.

Thanks,
Mike
Reply
#8
There's one meta datum we both forgot: rating.
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#9
I just added support for rating - thanks.

Mike
Reply
#10
Johan,

Is MobileSheetsPro still crashing when you import from Telegram with version 2.1.8?

Thanks,
Mike
Reply
#11
Just checked. It no longer crashes.
Thanks!
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#12
Excellent, thanks for checking.

Mike
Reply




Users browsing this thread:
1 Guest(s)


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2024 MyBB Group.