Here is the complete clip I now use.
^!ClearVariables
^!Toolbar New Document
^!Toolbar New Document
^!Set %Preacher%=^?[Click on the Service Taker's name=_Adrian
Worsfold|Barry Cundill|Bernard McHugh|Chris Pilkington|David Arthur|Elizabeth
Faiers|Ernest Baker|Jim Timiney|John Midgley|John Williams|June Pettitt|Keith
Brown|Marion Baker|Mavis Lake|Michael Tracey|Rosemary Arthur|Stephanie
Cage|Stephen Carlile]
^!Info [L]"Print the CD Cover to PDF and copy the
tracks.^PAlso note the total time of tracks before the first hymn^P(wipe out
first hymn onward - do not save!)."
^!ShellWait "C:\Program
Files\CDBurnerXP\cdbxpp.exe"
^!SetScreenUpdate Off
^!InsertHTML ^P^P
^!Set %Date%=^$GetDateFromInt(^$Calc(CEIL((^$GetDateToInt$+6)/7)*7-6)$;yyyymmdd)$
^!Set %Filename%="Service ^%Date%"
^!Toolbar New Document
^!Set %Trackslist1%=^$Getclipboard$
^!InsertText ^%Trackslist1%
^!InsertText ^%Trackslist1%
^!Jump Doc_Start
^!SetHintInfo Working...
^!SetScreenUpdate Off
; Remove spaces at start or end of lines
^!Replace "^\x20+|\x20+$" >> "" WARS
; Make new line break
^!Replace "\R(?![1-9])" >> "\x20" WARS
; Remove new space at EOF
^!Replace "\x20+\Z" >> "" WRS
^!Jump Doc_Start
:Seconds
^!Find "(\d\d)\.\d$" RS
^!IfError Skip_2
^!InsertText "^$Calc(^$GetReSubstrings$+1)$"
^!Goto Seconds
^!Jump Doc_Start
:Minutes_1
^!Find "([0][1-8]):60$" RS
^!IfError Skip_2
^!InsertText "0^$Calc(^$GetReSubStrings$+1)$:00"
^!Goto Minutes_1
^!Jump Doc_Start
:Minutes_2
^!Find "([0][1-9]):60$" RS
^!IfError Skip_2
^!InsertText "^$Calc(^$GetReSubStrings$+1)$:00"
^!Goto Minutes_2
^!Jump Doc_Start
:Minutes_3
^!Find "(\d\d):60$" RS
^!IfError Out
^!InsertText "^$Calc(^$GetReSubStrings$+1)$:00"
^!Goto Minutes_3
:Out
^!Replace ":\K(?=\d$)" >> "0" WARS
; Embrace time with square brackets / Remove '00' hours
^!Replace "00:(\d\d:\d\d)$" >> "[$1]" WARS
^!Jump 1
^!SetScreenUpdate Off
; Remove spaces at start or end of lines
^!Replace "^\x20+|\x20+$" >> "" WARS
; Make new line break
^!Replace "\R(?![1-9])" >> "\x20" WARS
; Remove new space at EOF
^!Replace "\x20+\Z" >> "" WRS
^!Jump Doc_Start
:Seconds
^!Find "(\d\d)\.\d$" RS
^!IfError Skip_2
^!InsertText "^$Calc(^$GetReSubstrings$+1)$"
^!Goto Seconds
^!Jump Doc_Start
:Minutes_1
^!Find "([0][1-8]):60$" RS
^!IfError Skip_2
^!InsertText "0^$Calc(^$GetReSubStrings$+1)$:00"
^!Goto Minutes_1
^!Jump Doc_Start
:Minutes_2
^!Find "([0][1-9]):60$" RS
^!IfError Skip_2
^!InsertText "^$Calc(^$GetReSubStrings$+1)$:00"
^!Goto Minutes_2
^!Jump Doc_Start
:Minutes_3
^!Find "(\d\d):60$" RS
^!IfError Out
^!InsertText "^$Calc(^$GetReSubStrings$+1)$:00"
^!Goto Minutes_3
:Out
^!Replace ":\K(?=\d$)" >> "0" WARS
; Embrace time with square brackets / Remove '00' hours
^!Replace "00:(\d\d:\d\d)$" >> "[$1]" WARS
^!Jump 1
^!Clip "Sorting numbers zeros"
^!Select All
^!Set %Trackslist2%=^$GetSelection$
^!Set %Trackslist2%=^$GetSelection$
^!DestroyDoc
^!FocusDoc
;Removes last lines if blank
^!Replace "\R{1,}\Z" >> "" WRS
^!Replace "\R{1,}\Z" >> "" WRS
^!Jump Doc_Start
^!Set %Minutes%=^?{Minutes Long (two digits)=20}
^!Set %Seconds%=^?{Seconds Long (two digits)=00}
^!Set %Minsclock%=^$Calc(60-^%Minutes%)$
^!Set %Seconds%=^?{Seconds Long (two digits)=00}
^!Set %Minsclock%=^$Calc(60-^%Minutes%)$
^!InsertText "^P^PService ^%Date%^P^P^%Preacher%^P^P^P
^!InsertText ^%Trackslist2%
^!Save As "C:\Shared
Documents\Music\^%Filename%.txt"
The clip for adding zeros - "Sorting numbers zeros" -
functions fully and is this:
^!SetHintInfo Working...
^!SetScreenUpdate Off
^!Set %dig%=2
^!Find "^\d{^%dig%}" WRS
^!IfError Skip_2
^!Inc %dig%
^!Goto Skip_-3
^!Dec %dig%
^!Set %q%=^$Calc(^%dig%-1)$
^!Replace "^" >> "^$StrFill(\x30;^%dig%)$" WARS
^!Replace "^\x30+?(.{^%q%}\d\b)" >> "$1" WARS
^!Select All
^$StrSort("^$GetSelection$";0;1;0)$
^!SetScreenUpdate Off
^!Set %dig%=2
^!Find "^\d{^%dig%}" WRS
^!IfError Skip_2
^!Inc %dig%
^!Goto Skip_-3
^!Dec %dig%
^!Set %q%=^$Calc(^%dig%-1)$
^!Replace "^" >> "^$StrFill(\x30;^%dig%)$" WARS
^!Replace "^\x30+?(.{^%q%}\d\b)" >> "$1" WARS
^!Select All
^$StrSort("^$GetSelection$";0;1;0)$
So this is what happens. There are preset choices for
preachers to select, timings for the service to begin (at the first hymn; the
seconds don't count - it helps to start slightly late anyway), the document gets
dated and saved using the Sunday's date, and the list is made neat, as derived
from the CD cover printed to PDF from its raw 3 lines to track 9 and 2 lines to
track 10 when examined as text.
* There is one final potential clip that hardly saves on
human viewing, but one may as well push it to the logical end.
After the number, the presence of HL nnn, SF nnn, LS nn, CC nn, HW nnn, HF nnn, or NB nn indicates a hymn book (or latter no book still with numbers up to 99). Before each hymn book, and after it but not before another hymn book, there is a blank line inserted. This is to tell me to use a second CD made at a higher level of volume which people sing against. Now I am sure this is within my abilities, eventually, the complication being not wanting a blank line in between two hymns indicated by either leading code after the number.
After the number, the presence of HL nnn, SF nnn, LS nn, CC nn, HW nnn, HF nnn, or NB nn indicates a hymn book (or latter no book still with numbers up to 99). Before each hymn book, and after it but not before another hymn book, there is a blank line inserted. This is to tell me to use a second CD made at a higher level of volume which people sing against. Now I am sure this is within my abilities, eventually, the complication being not wanting a blank line in between two hymns indicated by either leading code after the number.
This final clip would produce (including the effect of the
clips above):
Service 20130526
David Arthur
01 Prinknash Stanbrook Abbeys Monks Nuns Abbey Bells Introit
[02:00]
02 RudorffErnst KerseyJohn Impromptu op. 51 [03:52]
03 FranckEduard KerseyJohn Klavierstuck op 62 no 6 [05:57]
04 SmithSydney KerseyJohn Aspiration melodie op 208 no 1 [04:14]
05 AshtonAlgernon KerseyJohn Toccata op 127 no 4 [02:17]
06 WolfHugo RegerMax KerseyJohn Begegnung [02:03]
02 RudorffErnst KerseyJohn Impromptu op. 51 [03:52]
03 FranckEduard KerseyJohn Klavierstuck op 62 no 6 [05:57]
04 SmithSydney KerseyJohn Aspiration melodie op 208 no 1 [04:14]
05 AshtonAlgernon KerseyJohn Toccata op 127 no 4 [02:17]
06 WolfHugo RegerMax KerseyJohn Begegnung [02:03]
07 HL 126 Stenka Razin choir [01:41]
08 SF 064 Wentworth choir [01:38]
09 ReussHeinrich KerseyJohn Andante in G minor [05:04]
10 SF 060 This Old Man choir piano [01:51]
11 KopylovAlexander KerseyJohn Feuille d'album in C [01:54]
12 SF 030 Middleton choir [02:28]
13 Rosenhain KerseyJohn Romance op 14 no 4 [03:01]
14 ScholtzHerrmann KerseyJohn Albumblatt op 20 no 3 [02:54]
15 RudorffErnst KerseyJohn Capriccio appassionato, op 48 [05:14]
16 Birtwistle Triumph of Time [29:32]
No comments:
Post a Comment