Skip to content

Create meta extraction algorithm #65

@Godley

Description

@Godley

Algorithm will work as follows:

  • upon refresh or creation, check the given folder for files
    • for MXL files, check if there is an unzipped copy with the same name in the folder. if not, unzip it. issue create file unzipper #184
    • for XML files:
      • get a list of all files in the database ( compare list of files in DB to list of files in folder #185 )
      • for any files not in the list, ( compare list of files in DB to list of files in folder #185 ) parse the file ( create an xml file parser #186 ) and sort the data into a dict containing:
        • filename
        • title
        • composer
        • instruments, which should be organised into a list of dicts containing:
          • name
          • transposition, which should again be a dict containing
            • octave change
            • diatonic change
            • chromatic change (if any of these are unchanged, set them to 0)
        • keys, which should be a dict with instrument names as keys, and a list of dicts containing fifths and mode as indexes
        • clefs which should be the same as keys
        • time which should be a list of dicts, with "beat" and "b_type" as indexes
        • tempos which should be a list of dicts with beat and either minute or beat_2 as indexes. Beat and beat_2 should be the rhythmic name in either English or American terminology. Where beats are semi/hemi/demi they should not contain spaces, and where beats are dotted this should be denoted by dots put at the end of the beat name.
      • for any files in the list which aren't in the folder, delete them or archive them.

This will all be managed by the musicManager class described in issue #189

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions