• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
mobilesheets.db
#1
Hello all and especially Michael Zuber,

I'm Bill Lyons, a Mobile Sheets user on Windows and a user of many other music tools, including forScore on iPad. I have an extensive .pdf collection of Fake Books that I have collected since the 80s when I worked on the road and on cruise ships. Most of my stuff is stored using forScores really awkward .csv format. I was really delighted to see that Mobile Sheets uses a proper relational database. I played on the road for a few years and continued to gig to the present day. But more importantly, I worked for Oracle Corporation as a lead Java Engineer in Consulting. I have deep knowledge of both relational and object models.

I've made a copy of the mobilesheets.db and work with a read only copy so that I don't mess anything up in my experiments.
 
I've already figured out how to access mobilesheets.db through DBeaver. I've already discovered some things that are troubling to me. For fakebooks, I would have thought that I would have been given the option to store the Fake Book as both a file and a book. Was the book feature ever implemented? Fake Books contain hundreds of songs. The only way that I can see that it's possible to use your product would be to split each fake book up into individual charts and then load them from there. This would take a massive amount of time. It appears that your DB model supports the notion of a book a join table with BookSong, but those tables are not populated by the app. Am I missing something?

DBeaver does not show any DB triggers on the tables. It also does not show any foreign key constraints. It looks like you're just enforcing those through code. That's fine. I have loads of experience working with pseudo-relational models where the developer is responsible for enforcing DB constraints and integrity.

That brings up a couple of questions regarding importing data, however. I would love to be able to import the 50 Fake Books that I use on gigs into MobileSheets running on Windows. If possible, I would like to be able to import each Fake Book as a Book and then to be able to create an entry for each Song. Then, I'd create an entry in BookSong joining the Song to the Book. There's probably loads of other tables that I have to insert into in order to load a book, and a song properly. Is there some sort of insert script that you could provide so that I make sure that I stuff the right keys and dates in the right places?

Has this been asked for in the past? You've been in business for quite awhile. There are loads of other tools that are in use including forScore, iGigBook, unRealBook, and many others. I would love to be able to migrate to your tool and call it a day.

Can you please help me?

Sincerely,
Bill Lyons
blyons3@yahoo.com
Reply
#2
There is a tutorial video specifically on splitting up large PDFs like Fakebooks using a CSV file: https://www.youtube.com/watch?v=mzLH8tj9vKU

Other users have shared CSV files here: https://www.zubersoft.com/mobilesheets/f...um-29.html

While there are multiple methods of splitting up large files, using a CSV file is the preferred method at the moment. There is also a "Create Snippet" feature that can be accessed through the overlay that creates a new song referencing the same file but a different page range. Repeated use of that can also break up a song containing a large PDF into smaller other songs.

I'm not going to cover populating the database manually outside the app - there are too many pitfalls with trying to do that, and any information I can provide may become outdated as the database changes (and it's going to change a significant amount when I implement the versioning feature that's been discussed). In short though, it boils down to creating new song instances over and over, and pointing them to the same file with a different page range.
 
To directly answer your question, no, that has not been specifically asked for in the past.

Mike
Reply
#3
@bill: you have mail
first language: German
Acer A1-830, Android 4.4.2 - HP x2 210 G2 Detachable, Win 10 22H2 - Huawei Media Pad T5, Android 8.0 - Boox Tab Ultra C, Android 11
www.moonlightcrisis.de - www.basdjo.de - www.frankenbaend.de


Reply
#4
For what it's worth, I've been a Mobile Sheets user since the early days and have imported dozens of Fake books using both the CSV and PDF bookmark methods. Both are quick and easy. No need to write any SQL scripts/procedures. If you can post the structure of what you've got, we can probably help you come up with a way to turn it into a properly formatted CSV or even a PDF bookmark file if you want to add PDF bookmarks first. I like to use JPdfBookmarks for that.
Reply
#5
(04-21-2026, 05:16 AM)mdavej Wrote: For what it's worth, I've been a Mobile Sheets user since the early days and have imported dozens of Fake books using both the CSV and PDF bookmark methods. Both are quick and easy. No need to write any SQL scripts/procedures. If you can post the structure of what you've got, we can probably help you come up with a way to turn it into a properly formatted CSV or even a PDF bookmark file if you want to add PDF bookmarks first. I like to use JPdfBookmarks for that.

Thanks! 

I took a look at the post that Michael provided, and it looks like it will easily get me going. I will definitely take a look at what you suggested above.  Here's what I have in detail:

This is probably work that you guys have already performed.
I have indexes for all of the Fake Books found in the old Fake Book CD that everyone seems to have floating around. 
I also have some indexes for some of the books found in 55 Fake Books and the iGigBook, including the New Bob Book in C. 
I had access to a public GitHub repository that has now been taken down. I still have my local copy of the repository. 
The repo owner posted several .csv's that were completely compatible with iPad forScore. 
I contributed the World's Greatest Fake Book for forScore. 
I've recently completed and tested the Pat Metheny Songbook for forScore. I've also tested and loaded Real Book 1 version 6 and the Real Book 2 version 2. 

Some of the tunes found in Real Book I Version 5 and the original Real Book Version 2 were removed from the latest and greatest versions. I used Google Gemini to create a remainder index that includes only the charts that are no longer found in the new editions of the old books.

The structure is not very important. It's the usual and can easily be rearranged using Excel. My general format is SongTitle, StartPage, EndPage, Composer, OtherMetadata1, ..., etc,,

I'll definitely have a look at JPdfBookmarks. I will leave no tool unturned. 

Bill
Reply
#6
Hello Michael,

Thank you for the prompt reply! The video explaining the index structure and how to import it was just what the Doctor ordered. Just to be on the safe side, I think that I'll back up mobilesheets.db before I import a book to ensure that I don't mess something up. I need to gain some confidence in understanding how to edit and/or remove index entries in case I mess something up.

Thanks,
Bill
Reply
#7
I'm glad to hear that Bill. It's definitely a great idea to create a backup before making any major changes to your library.

Mike
Reply
#8
A huge number of CSV files are already available in the forum. They might save a lot of time and effort when you import your fakebook collection and they are good examples.
first language: German
Acer A1-830, Android 4.4.2 - HP x2 210 G2 Detachable, Win 10 22H2 - Huawei Media Pad T5, Android 8.0 - Boox Tab Ultra C, Android 11
www.moonlightcrisis.de - www.basdjo.de - www.frankenbaend.de


Reply
#9
(04-22-2026, 05:43 AM)itsme Wrote: A huge number of CSV files are already available in the forum. They might save a lot of time and effort when you import your fakebook collection and they are good examples.

Thanks! I'll have a look.

Bill
Reply




Users browsing this thread:
1 Guest(s)


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