• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Batch Import: Use custom mask for metadata
#1
I've been using your app for a couple of weeks now. Really appreciate some of the features, so thanks for a useful app.

Flattery aside, I've got a pretty large PDF library that I've managed to sort into some kind of order by naming each file with relevant metadata. Currently I'm using a NAME—AUTHOR—TYPE schema to describe what's in each PDF.

I noticed that your batch import function allows filling out metadata based on folder structure, so I was considering writing a script to create a fake file hierarchy with symlinks. I may still do that, when I get chance, but I was wondering how difficult it would be to import the same information by describing a file mask: specifying a separator, and variables like ${TITLE}, ${GENRE}, etc.

Thanks,
Ben
Reply
#2
I'd like to add to this thread, with a similar idea based on a slightly different scenario. Part of this is based on another thread of mine that you may have already seen.

We now have two people in our church choir with Android tablets, which we use for our worship music. I was able to successfully "bootstrap" the new MobileSheets user's tablet with my entire music library, and going forward, I will be sending her new songs to add to her library (after I've added them to mine) It doesn't make sense to me to have to go through the whole backup/restore process to keep our two tablets in sync. The most obvious way to do this is for me to send her the image(s) or PDF files for a new song via email or Dropbox, and let her add those images or PDF to her library, either via the Android or companion app, and manually edit the metadata (artist, key, album, genre, etc.) I realize that it's possible to use the batch import function to add songs, and if the files are stored in an appropriately named folder path, it will automate the entry of some of the metadata, but the folder path mechanism seems cumbersome for adding one or two songs at a time.

As an alternate to bejomin's scripting approach, I had another idea: would it be possible to have a file present in the batch import folder that could specify the metadata values for the song? Something like "metadata.xml" (or JSON if you prefer that format), where you could specify as many metadata values as you wanted. Then if the batch import function found this file, it would assign those values.

Now, here is the really fun part: a function in the companion app that will EXPORT selected songs to a user specified folder, and would automatically create the metadata.xml file for each exported song. This would make it easier to share songs with other Mobilesheets users. Of course, it might also make sense to allow the recipient to override or ignore the metadata, if they so choose.

Let me know if you think this makes sense. Maybe you've already had a similar idea to this, as part of your roadmap.
Reply
#3
Doing both would be a bonus, but I'd appreciate the portability of saving off the metadata in the way Snard suggests. Especially since then you can easily translate the same information to other formats and make it serve other uses.

If this is in the works, I've already got a CSV formatted index of my music collection that I could use to populate my metadata entries in MobileSheets. I suppose, essentially the principle is the same for both whether you're pulling data from the filesystem or some sort of data exchange format.
Reply
#4
As far as the batch importing goes, I definitely have plans to add more control over what metadata is used for the imported songs. I like some of the ideas you guys have put forth, so I'll definitely use those concepts. I'm thinking that I'll allow users to specify the xml file they want to use for a given directory, otherwise I'll look for a file by a default name (metadata.xml works). I would also look for an xml file named the same thing as the imported file (abc.pdf->abc.xml), this would allow for details on individual files, or overrides.

As far as exporting goes, I'm actually going to generate my own unique file format that embeds all of the metadata, links, annotations, etc with the song (I may allow the user to choose what gets exported). Using this file format, I can also support exporting entire setlists. This would make it really easy to transport songs around. I personally like this idea better than having to send multiple files to people. What do you guys think?

Bejomin - do you care if I use xml versus CSV? The more file formats I try to support, the more confusing it will get to explain to users, but if more people might use CSV, I'm open to it.
Reply
#5
One thing that's nice about XML (versus CSV) is that it lends itself to hierarchical data. CSV works best for 2 dimensional data (i.e. rows and columns). So for example, when MobileSheets is updated to allow multiple artists for a song, this might be messy to handle in a CSV file (i.e. a semicolon separated list?), but it would be easy in XML. (I am probably preaching to the choir [ha!] for our program author)

Oh, one more note: if you have a recent version of Excel, it can load and save XML data (after you create an XML map), so an existing CSV file can easily be converted to XML.
Reply
#6
Silly of me to mention CSVs really, it's only that that's the format I currently have—an index that PianoFiles conveniently generated for me. I don't think it's a necessary format to support, and would just translate my data to the XML schema you devise.
I like the ideas you propose, and especially that metadata can be included per folder or per file. I must say that being able to export data in a human-readable format that you can play with would still be useful. I'd love to be able to use the metadata from MobileSheets in applications on my desktop, even if it's just make a database of all the sheets I have.

Completely off topic, but my ultimate dream when it comes to PDF music, and something that I've researched a fair deal and not found any existing solutions for, would be some sort of music-oriented CMS. I could bring up my music database and search for all songs of a particular type/genre/voicing/etc., and then instantly click a link that takes me to the right page in the right file. It's the same as an application like MobileSheets, except that one file could be referenced by one song or by many, each referring to a particular page as well. Maybe I've just been googling for the wrong things...
Reply




Users browsing this thread:
2 Guest(s)


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