17 June 2006

Power Tab Taxonomy 101

Power Tab Taxonomy 101

I've added a couple of new category related fields to the header information portion of the Power Tab file format with the hopes that it will help people better catalogue their files. These fields will eventually be added to the PT Librarian with full searching and filtering capabilities. What I need now is some input on the categories themselves. The goal is to keep the list of categories as small as possible. If there are any categories that you think should be added, combined, replaced or removed from the following lists, please post a comment. Thanks.

Genre

The first field, is the genre field, which indicates the music genre of the song or lesson. I went to a handful of popular music related Web sites, (allmusic/amazon/etc) and jotted down the primary musical categories they use for navigating their sites. I took the most common items among the sites, and came up with the following list:

Alternative
Blues
Children's Music
Christian & Gospel
Classical
Country
Dance
Easy Listening
Electronic
Flamenco
Folk
Heavy Metal
Holiday
Jazz
Latin
New Age
Other
Pop
Rhythm & Blues
Rap
Reggae
Rock
Soundtrack
Unclassified
Vocal
World

Lesson Category

The second field, is a category field that applies to lessons. This field represents the area of study the lesson entails. For this item, I went to a handful of guitar, bass and percussion lesson sites and jotted down as many topics as I could find. Here's the list:

Intervals
Scales
Chords
Modes
Keys
Chord Progressions
Rhythm
Soloing
Arpeggios
Alternate Picking
Tapping
Slapping
Bending
Sliding
Hammer/Pull
Harmonics
Fingerpicking
Flatpicking
Slide Guitar
Artist Style (i.e. How to play like 'x')
Flams
Rolls
Fills
Pedal Hi-Hat
Open Hi-Hat
Bass Drum
Exercises/Warm-ups
Other

This list is the one that will need some tweaking. Instructors will have a better feel than I about which categories are more important/popular than others.

25 March 2006

Ideas for Power Tab Librarian v1.0

Ideas for Power Tab Librarian v1.0

These are some of the ideas I have in my todo list for PT Librarian 1.0. Free free to add your own by using the comments feature:

- Add delete functionality to the summary lists (delete all of an artists songs, etc.)

- Customize keyboard shortcuts

- A search/replace/clean-up tool that uses regular expression syntax for batch updating data, or replacing whitespace, surrounding quotes, etc.

- Replace AutoComplete in edit dialog box with an inline lookup that searches for artists/albums/etc. already in the database, ala iTunes

- Smart editing: if you've entered the name of an artist, the album field will automatically present a list of albums by that artist. Entering an album automatically fills in the year if the album already exists in the library, etc.

- Add a favorites feature to mark a song or lesson as a favorite

- Add code to temporarily remove read-only attribute from a file so updates can occur without error; restore read-only after update is finished

- Add a small button on the right side of the artist and album fields for selecting that artist or album in the summary lists

- Use Win32 to monitor folder any changes that occur from outside the program while the program is running. When a notification is received, it will auto-sync the library (or ask the user to sync)

- Add a programs option which allows user to set which program to use to actually open the .ptb files (as opposed to using the default Windows association)

- Speed up the sync process; file I/O big bottleneck, if caching doesn't apply

- Add estimated time left to the backup feature

- Add a Copy To Folder/Zip To Folder feature to the shortcut menu; backup an artist quickly, or backup the selected items quickly.

- Use a yellow information bar, ala IE/Firefox, to remind users to check for updates as opposed to the reminder dialog box - less intrusive

- Add Print to shortcut menu

- Add an Online service for retrieving song information (ala CDDB) from the Web

24 January 2006

Power Tab Librarian v1.0

Overview

Power Tab Librarian is a software tool used to catalogue Power Tab files. (.ptb files) The software scans user selected folders for Power Tab files, extracts the metadata (title, artist, album, etc.) and places the information in a database where it can be easily searched and edited.

Screenshots

A small set of screenshots is available at http://www.flickr.com/photos/51242930@N00/sets/72057594054074702/

History

The project really got started the day I finally discovered a good use for the DVD-RAM disc I got with my DVD burner – use it to hold mp3 rips of all my blues CDs, thus creating the dreaded blues “party” mix. Blues songs never struck me as being something that had to be listened to in the order they appear on the album, ala Dark Side of the Moon, or Court/Crimson King, so this seemed like a great idea.

After burning, I needed a way to catalogue all of the songs on the disc, so I immediately imported the mp3s into Windows Media Player. After about a week of WMP wackiness, I came to the conclusion that I needed something new to catalogue the songs, and promptly downloaded iTunes.

After using iTunes for about a week, I pretty much knew I had found a great piece of software. I really liked the main layout, (especially the browser lists) and the cool “autoresults” search feature. Eventually, with the more frequent use of iTunes (and subsequently, the more frequent use of mp3 tagging software) I came up with the idea of creating something similar for Power Tab files.

Designing the Backend

I spent a few weeks testing various databases to use for storing the data. Of course, I was looking for the best combination of speed and distribution size. After testing everything from SQLite to SQL Server, and lots of “SQL”s in between, I decided the best backend was my own custom backend. It gave me performance second only to SQL Server, and it carried no distribution hassles.

Designing the Front end

As mentioned earlier, I really like the layout of iTunes, and that’s where the look of Power Tab Librarian comes from. There’s a little bit of Vista explorer and MSN search thrown in as well. The dialog boxes used for editing songs and lessons use an information bar similar to the one that you see in Internet Explorer.

Testing

Internal tests were done using a data sample of about 65,000 .ptb files. The app seemed to handle that load relatively well on a Pentium IV 3.0 GHz.

I have given the program to a small number of beta testers so far. If you have any interest in testing out the program, drop me a line using the Webmaster link on the Power Tab site.

Developers

I can’t say for certain when, or if, this project will be released as open source. There is some code in the program that can’t be released as open source, and that code is something that is fairly large, and has been tested extensively, so a quick replacement isn't going to happen. At any rate, feel free to develop your own library. I plan on including a “Library” menu item in the next version of Power Tab Editor, which will allow users to activate a library of their choice. You can use the Power Tab Parser project to get an idea on how to read the header information in a Power Tab file.

Problems

A big problem is bandwidth. Bandwidth has increased dramatically the last year, reaching the old threshold, and that's without having PTE stored on site. Where will I place the files for download? Even if 1/20th of the people who download PTE download this program, bandwidth for the month would be gone in a week at most. Any ideas on where I can store the files are greatly appreciated.

The Future

  • Migrate to .Net?

  • Use SQL Server Express as a backend?

  • Build a plug-in architecture to handle other tab file formats. Each plug-in would be able to handle the parsing and editing of a file type. (.ptb, .gtp, .tef, .txt, .etc) This will allow multiple tab formats to reside in the library. Users could associate the appropriate program with each tab format for viewing the tabs.

  • Find/Replace feature - use regular expressions; helpful for removing quotes from titles, updating spelling errors, etc.

  • File naming feature - rename files based on the title and artist; store them in folders named after albums, etc.