Song Database Journal
Friday, 09-09-2016 (1.5 hours)- Goal: Move a FileMaker Pro database of guitar chords to the web
- The FileMaker Pro database has been great but is not very shareable
- Created date
- Created reason
- screenshot of a song
- screenshot index
- screenshot of printable page
- search capabilities
- shortcomings - not shareable, FileMaker Go is a good for offline but clunky, opening the program/database
- www.kirkhopkins.com purchased on BlueHost for 3 years at $3.50/month ($124)
- WebDav setup using cPanel to mount the drive (so that it works like other folders on my Mac)
- index.htm created with "Hello World"
- ThePerfectWebsite copied over - www.htaccess (used to pre-pend a header and post-pend a footer) file works differently
- Setup a test PostgreSQL database
- Setup a test MySQL database
- Created a test table with mySQLadmin (name?) and myPostgresAdmin version (name?)
- mySQLadmin shows more info about what it is doing (SQL)
- Inserted a record into each table with mySQLadmin and myPostgresAdmin
- Created PostgreSQL.php and MySQL.php and tried to insert a record (unsuccessful)
- Inserted "I'm Gonna Sing Medley" into MySQL table with mySQLadmin
- Created a query in MySQL.php and read the record and display the song title and content
- Color-coded the chords (manually) with CSS; 7 different colors
- Added code to read the data in the field (explode) to determine if a line contained chords or lyrics
- Switched CSS to color-code chords to one color
- Allow user to change the key of a song
- Move all FileMaker Pro solutions to a one page, filter/auto-submit function
- Create a user table to allow other people to be able to add songs and manage their preferences (Facebook authentication or self-contained???)
- Create a song preference table (to save notes and their favorite key)
- Added song key chart (key of D means that a D is the root chord, Em is the 2nd, F#m is the 3rd and so on)
Sample: if($The_Key=='D'){ $One='D';$Two='Em';$Three='F#m';$Four='G';$Five='A';$Six='Bm';$Seven='C#dim'; } - Added code to be able to switch "I'm Gonna Sing Medley" from the key of D to the key of C
- Allow guests to do everything except add songs
- Keep the site ad free and very minimal, allow use on all devices (iPad target for live performance); real estate is very important
- Legal concerns
- Add a donate option?
- Allow users to create multiple line-ups with Yes/No and song order option; possibly share them too
- Option to see the song with or without the chords
- Option to replace Harmony/EasyWorship/ProPresenter
- Remove "Easy/Medium/Hard" and "1 page/2 page"
- Filters: Allow user createable groups? -> Secular/Sacred/Current Kidz World/Retired etc.
- Text searching by title and song text (like FileMaker Pro)
- Added journal to track this project
- Added code to be able to switch other keys
- Added option to change the key of the song (but not store it)
- Added filter for searching and do a live search
- Added pretty buttons for searching
- Added record inserts
- Added viewing the names of all titles after insert
- Exported 1010 records from FileMaker Pro database as .csv files
- Wrote a utility to import the records into the new web database
- Created 5 tables for songs, 2 tables for lists (play lists, set lists, categories, what ever you want to call them), users, and personalization (your favorite key and song notes)
- Imported records, more tweaks needed; some philosphy changes (for example 2 more tables than planned) while working on the import
- Still need to address a funky carriage return presented by FileMaker Pro
- Re-imported records after re-exporting from FileMaker Pro, opened & replaced carriage return in Text Wrangler and "Save As" with Windows encoding (line feeds/carriage returns now work appropriately)
- Re-worked the loop that read the .csv to work like a standard loop now that the import file is more standard
- Added a "Song lists" query to see the lists, only one showing :-(
- Re-worked the form post variable creator/finder
- Re-worked import to create song lists appropriately
- SQL to show all song lists
- Temporarily hid displaying songs (was showing all song info)
- SQL to show all songs in the song lists
- Added HTML to pretty up the lists
- Changed SQL to show the song names in the lists
- Added HTML to show the song list names as expandable options to show the songs in the list
- Not able to search for songs now?! :-( Probably from the form post change; yep, an echo was added then commented the whole line out instead of just removing the echo; silly mistake
- Used myPHPadmin to create a song list for a worship service and switched the program to only pull up that list
- Later that night, switched the program to pull up either the song list selected or search results
- Can add a song list now; need to be able to add songs to the list
- Added code to show in my favorite key, still need to be able to set my favorite key
- Working on an xml file with song names for the song list search
- &'s kill xml files
- Started to add an option to add songs to a song list via check boxes
- Continued the option of adding songs to a song list via check boxes, it works now
- Added a Create User option
- Add an Edit User option (started) - Primary Key stuff was killing this (found out later)
- Created an "Emmaus 2016" song list
- Added songs that aren't in the database
- Added songs to the Emmaus 2016 play list
- Added Emmaus users
- Reorganize what is displayed and when
- Login required to open a songlist from a web address/email - see all lists for now
- Edit logic for finding chord lines (Forever by Chris Tomlin)
- Use "invite" option to send an email to the Emmaus music team
- Allow song editing
- Add a song list remover
- Add a song remover
- Found that Primary Key's were causing problems with updating records; removed them with phpMyAdmin; couldn't remove them with PHP?!
- Added song editing
- Added song list creation
- Added song list ordering
- Added 3 new playlists and ordered 2 of them
- Need to allow removing songs from a song list
- Added an Edit User option
- Added gzuslivz users
- Manually updated invitations to 3 new playlists
- Created a utility to view query info and data
- Modifications for user accounts (case-insensitive user name login)
- Modifications for song list ordering
- Added song list remover
- Added song remover
- Song name and order when looking at a list
- Added "invite" option using User Names, not email
- To do: Re-work chord calculating logic
- To do: Allow adding song notes per person per song (started)
- Squashed a bug that sometimes created a new user instead of logging someone in
- Re-formatted song list result options
- Displaying previously invited info for a song list
- Displaying recently previously invited lists to copy/paste into a new song list
- Started to add "Edit List with choices from the selected list" option
- Finished adding "Edit List with choices from the selected list" option
- Updated songs with no created by data
- Changed insert to save created by data for new songs
- Added de-bugging code for the future
- Usability modifications for working with song lists to follow a path that I usually take
- Added "Rename List" option
- New styling for the text box when adding a new song
- Added a "Remove from this list" option
- Relabel "Edit List" buttons, changed to "Add to list" since that's what the button does
- Kludge to fix a double minor problem if key signature not calculated correctly
- Replaced line feeds with html breaks in a utility that shows table data
- Added song_key to songs table
- Enhanced key detecter
- Pre-populated song keys into the database
- Allow entry of song key on new songs
- Allow updating the song key
- Re-designed layout when searching for a song
- Added "Start Over" to "View More" sections
- Started "Jump to Song" option
- Finished "Jump to Song" option as "Reload and return to: {song name}"
- Finished personalized song notes inserting/updating
- Displaying personalized song notes in "View More" option
- Displaying "Personalized Song Key" if there is one and transposing based on the selection
- Started showing personalized song notes in the transposed song display area
- Finished showing personalized song notes in the song display area
- Added View more type option for personalizing song notes
- Added View more type option for adding a song
- Added string replace of "{chorus}" to go to "Chorus:" and the like
- Added string replace of "[chorus]" to go to "Chorus:" and the like
- Reworked some requirements for identifying lines with cords
- Added check to see if the note for song notes changed before updating
- Added "View List with option to Jump to a Song"
- If song_key is saved, use the saved key instead of the calculated key
- Added "View Past Song Lists" (for lists I created or was invited to)
- Fixed a bug where minors were mistakenly added to slash chords
- Added color coding for repeat sections (i.e. Repeat Chorus)
- Fixed an apostrophe problem in songs database and reformatted a bunch of songs
- Links to all songs between the songs of more than x songs
- SongsFullListing.php and include on Songs.php
- Added Bb and other flat keys
- Added a quick jump to the "Next Song"
- Move "View Un-enhanced Version" and "View for ProPresenter6" above song title so the "Next Song" quick jump takes you to the song title
- Replaced many hidden form items with session tracking
- Dark mode added
- Session-based light mode or dark mode
- Landscape or portrait mode replaced iPad vs laptop mode
- Javascript added to search so you are less logged out if you search and hit the enter button
- Added "Overview" to show line-ups (song list) and songs in the line-up if they have been ordered
- Remember/show original song list name when renaming
- Hide top image (taking up too much space)
- Bug fix in "Overview" (and renamed) to show line-ups and songs in the line-up if they have been ordered but stop multiple versions of re-ordered lists
- New account, modify account, and password change bug fixes created after switching to sessions
- Major changes to account management
- Remember/show original song list username and email when renaming
- Bug fix - got temporary chord change to work for a whole page of songs again
- Option added to share a list of songs with chords or lyrics only, can also type in a short number for a song list
- My web space hosting company upgraded PHP on me causing many, many warning messages to show up; changed code to eliminate the warning messages
- Re-sized fonts again - tested with opening a new window on the iPad each time; may look at different css for the future
Total time: 65.75 hours
blogs
- 2024 Zildjian Custom Special Dry Pack and Zildjian K Sweet Pack (posted 11-09-2024)
- 2024 Kirks A400 Traps Drums Drumset (posted 09-29-2024)
- 2024 Tree Project (posted 09-05-2024)
- 2023 Oculocutaneous Albinism (posted 03-28-2023)
- 2022 Allocate Time Log (posted 09-02-2022)
- 2022 Setting Up Your Mac (posted 07-30-2022)
- Emmaus Music (posted 01-29-2022)
- 2022 Gretsch Catalina Maple new drum head sound check (posted 01-22-2022)
- 2022 Griffin Remote Hi Hat Stand (posted 01-22-2022)
- 2022 New Amedia Cymbals (posted 01-08-2022)
- 2021 Hi Hat Fun (posted 08-30-2021)
- 2021 Senior Pictures for Seth (posted 08-28-2021)
- 2021 August Worship Drummer Weekly Freebie (posted 08-01-2021)
- 2021 July Worship Drummer Weekly Freebie (posted 07-27-2021)
- 2021 June Worship Drummer Weekly Freebie (posted 07-19-2021)
- 2021 Doug Dunaway Memorial Motocross Junior Track (posted 06-27-2021)
- 2021 Father's Day (posted 06-20-2021)
- iPhone 11 Pro Max camera vs iPhone 12 Pro Max camera (posted 06-03-2021)
- 2021 20 inch Zildjian EFX cymbal (posted 06-02-2021)
- 2021 Floor Snare Debut (posted 05-15-2021)
- 2021 Drum Desk Light (posted 05-11-2021)
- 2021 May Worship Drummer Weekly Freebie (posted 05-02-2021)
- 2021 Remove Drums for Practicing (posted 04-18-2021)
- 2021 Amedia 19 inch Thrace Series Crash (posted 04-08-2021)
- 2021 Zildjian Gong Sheet (posted 03-29-2021)
- 2021 Microphone Challenge - Samson Q2U vs MacBook Pro (posted 03-27-2021)
- 2021 Audio Quality Test for Screen Recordings (posted 03-25-2021)
- 2021 Cost of Video Editing (posted 03-31-2021)
- 2020 2nd Hand Hammered Snare Drum and Big Fat Snare Drum (posted 11-10-2020)
- 2020 Drum Lights (posted 11-03-2020)
- 2020 Cymbal Garden (posted 08-30-2020)
- 2020 Gibraltar Rack (posted 08-18-2020)
- 2020 Hand Hammered Snare Drum (posted 08-12-2020)
- 2020 Yamaha MOTIF XS8 key transposing demo (posted 07-04-2020)
- 2020 Refinishing d2 ddrums (posted 06-19-2020)
- 2020 Djembe Sampler (posted 06-06-2020)
- 2020 Floor Tom End Tables (posted 06-06-2020, updated 07-22-2020)
- 2020 Bass Drum Ottoman (posted 05-13-2020)
- 2020 Drum Kit Sound Test (posted 05-09-2020)
- 2020 Paradiddles (for Bob Packwood) (posted 05-09-2020)
- 2020 Big Fat Snare Drum demo (posted 05-09-2020)
- 2020 AKG vs CAD Pro Bass Drum mics (posted 05-09-2020)
- 2020 Amedia Galata and Dervish Stingray cymbal demo (posted 03-15-2020)
- 2019 Kirk's Gretsch Energy Drum Set (posted 12-31-2019)
- 2019 Studio Upgrade (posted 12-31-2019)
- Kirk's (Tama) Drumset as it went to Tim Terry (posted 12-07-2019)
- Engagement Photos (posted 10-19-2019)
- 2019 Recording Audio for Cross Country video (posted 10-07-2019)
- 2019 Nikon Follow Your Passion Video Contest by Kirk Hopkins (posted 08-10-2019)
- 2019 Church Drumset (posted 07-17-2019)
- 2019 Drum Cage (posted 06-19-2019)
- Camera Comparison (posted 05-25-2019)
- 2019 The Making of Light Background Music (How I Record Music) (posted 05-12-2019)
- Church Stage Design (posted 03-16-2019 with updates for each new design)
- 2018 GoPro Hero6 Black vs Hero7 Black (posted 10-23-2018)
- 2018 21 and 17 inch Zildjian K Custom Special Dry EFX cymbals (posted 05-01-2018)
- 2018 Capo Review (posted 05-04-2018)
- 2018 Gretsch EQ test (posted 03-31-2018)
- Kirk's Zildjian Dry Cymbals (posted 03-31-2018)
- 2018 GoPro Hero 5 vs GoPro Hero 6 (posted 03-05-2018)
- Kirk's (Tama) Drum Lesson Drumset (posted 04-03-2017, updated 03-08-2018, updated 03-31-2018, updated 02-09-2019)
- 2017 New Driveway (posted 04-01-2018)
- Senior Pictures (posted 01-10-2018)
- College - Does it make financial sense to go? (posted 11-30-2017)
- 2017 Harrison Junior High Cross Country (posted 11-10-2017)
- UNI Journal (Private) (posted 11-04-2017)
- Countdown Creation (posted 10-23-2017)
- Sanctuary Remodel (posted 06-18-2017, updated 03-05-2018)
- Outdoor Movie Screen (posted 06-12-2017)
- iPhone 7 Plus Audio Test (posted 05-02-2017)
- Worship Leading Song Selection Methodology (posted 04-17-2017)
- Church Presentation Software Comparison (posted 04-15-2017, updated 08-13-2017)
- Kirk's Wuhans and Zildjian Cymbals (posted 04-10-2017)
- Kirk's Dream Drumset - Gretsch Catalina Maple - Satin Deep Cherry Burst (posted 04-03-2017, updated many times)
- Song Database Journal (posted 04-03-2017)
- 2017 Timelapse Spinning in 4K (posted 02-22-2017)
- 2017 Timelapse and Duzi Slider Testing (posted 02-22-2017)
- 2017 Camcorder and Camera Comparison (posted 02-12-2017)
- 2017 GoPro Hero4 vs iPhone 7 Plus (posted 02-12-2017)
- 2016 Cigar Box Guitar (posted 02-14-2016)
- 2015 Camera and Camcorder Comparison (posted 09-17-2015)
- 2014 Drum test with new small tom drum heads (posted 01-04-2014)
- 2013 How to Mic a Large Drumset (posted 04-04-2013)
- 2012 Using GarageBand with an MBox 2 Mini (posted 10-15-2012)