(mysqlt): select p1.cID, pt.ctHandle from Pages p1 left join Pages p2 on (p1.cPointerID = p2.cID) left join PagePaths on (PagePaths.cID = p1.cID and PagePaths.ppIsCanonical = 1) left join PageSearchIndex psi on (psi.cID = if(p2.cID is null, p1.cID, p2.cID)) inner join CollectionVersions cv on (cv.cID = if(p2.cID is null, p1.cID, p2.cID) and cvID = (select cvID from CollectionVersions where cvIsApproved = 1 and cID = cv.cID)) left join PageTypes pt on pt.ctID = cv.ctID inner join Collections c on (c.cID = if(p2.cID is null, p1.cID, p2.cID)) left join CollectionSearchIndexAttributes on (CollectionSearchIndexAttributes.cID = if (p2.cID is null, p1.cID, p2.cID)) where 1=1 and (ak_pebble_authorName LIKE '%jasontiller%') and (p1.cID!='128') and cvName != '' and pt.ctID = '10' and (ak_exclude_page_list = 0 OR ak_exclude_page_list is null) and PagePaths.cPath like '/apps/%' and PagePaths.ppIsCanonical = '1' and cvIsApproved = '1' and (p1.cIsTemplate = 0 or p2.cIsTemplate = 0) and ((select count(cID) from PagePermissionAssignments ppa1 inner join PermissionAccessList pa1 on ppa1.paID = pa1.paID where ppa1.cID = if(p2.cID is null, p1.cInheritPermissionsFromCID, p2.cInheritPermissionsFromCID) and pa1.accessType = 10 and pa1.pdID in (0)
and pa1.peID in (2) and (if(pa1.peID = 4 and p1.uID <>0, false, true)) and (ppa1.pkID = 1 and cv.cvIsApproved = 1)) > 0
or (p1.cPointerExternalLink !='' AND p1.cPointerExternalLink IS NOT NULL)) and ((select count(cID) from PagePermissionAssignments ppaExclude inner join PermissionAccessList paExclude on ppaExclude.paID = paExclude.paID where ppaExclude.cID = if(p2.cID is null, p1.cInheritPermissionsFromCID, p2.cInheritPermissionsFromCID) and accessType = -1 and pdID in (0)
and paExclude.peID in (2) and (if(paExclude.peID = 4 and p1.uID <>0, false, true)) and (ppaExclude.pkID = 1 and cv.cvIsApproved = 1)) = 0) and ak_pebble_flag = '0' and ak_pebble_subApp = '0' and p1.cIsActive = '1' order by ak_pebble_dateAdded desc limit 0,56
-
Description
This is a metronome application for Pebble. It has two main features: it can vibrate and blink at a user-specified rate and it can help the user determine a particular tempo. It runs exclusively on the watch and has no smartphone component.
The watch has three screens:
1. Main metronome screen. Here the user can change the tempo up or down (with auto repeat and fast repeat) and start/stop the beat.
2. Find the Tempo screen. Get to here from the main metronome screen by double-tapping the select button. Tap the down button at the tempo you're hearing and the screen will update to show you the numeric tempo at which you're tapping. The top value is the instantaneous tempo and the bottom value is the average tempo over your last four taps. Tap the select button and you'll be returned to the main metronome tempo screen with the average tempo as the new tempo.
3. Pebblenome configuration screen. You get here by long-pressing on the select button from the main metronome screen. Here you can turn vibrating on the beat on or off, you can change the vibration duration, and you can set how many times the metronome will beat before stopping. This latter feature could be useful if you were conducting or starting a piece and wanted a steady tempo to get going but didn't want the watch beating the tempo all the way through.
A note about compatibility: This was built against 1.12.1 of the Pebble SDK. Also, in order to improve the accuracy of the "find the tempo" process, I had to bypass the OS and directly use a hardware timer (TIM5). This means that the app is fragile and could break horribly on the next OS update. Or, if some other app uses TIM5 awful things might happen. You've been warned.
created by - jasontiller