/* @B Notes V. 1.2 @P@ICopyright A.Faust 1999 This Genie prints notes */ /* History Version 1.0 (January 1999) - first release Version 1.1. (2.2.99) -some errors removed in the #?.files -notationsrule for the "notefiles" altered (in the case of - "n" - natural sign like the other in one line) Version 1.2 (10.2.99) -removed a error if givein is a b-accidental (example:"AB3") -simplified the routine for accidentals -added the possibility of writing single notelines with one notekey -multiple questions at the beginning collected in one requester -expanded the range of the violinkey */ address command 'execute C:AssignNotenDruck' /* The file "AssignNotePrint" in the C: directory shall be written with a normal texteditor, like ed or AE(Articel Editor from ProPage). There will be assigned where the Genie looks for the Notefiles. Also will be assigned the directory, where are the genies from ProPage are placed. example: assign Notes: Work:MyNoteFileDirectory assign Genies: DTP:ProPage/ARexx |_______________________| please insert your paths here */ call SafeEndEdit.rexx() call ppm_AutoUpdate(0) call ppm_SetWireframe(0) notex=0 notey=0 call ppm_SetLineWeight(0.25) call ppm_SetMagMode(300) call ppm_SetBoxOutlines(0) signal on halt signal on break_c signal on break_e signal on break_d start: do neu = ppm_GetUserText(2, "New begin? (ALL WILL BE DELETED !!!!) Nothing=Break y/n") if neu == "Y" then neu = "y" if neu == "N" then neu = "n" select when neu == "y" then do sicher = call ppm_New() call ppm_SetUnits(2) call ppm_SetMagMode(200) call ppm_SetFont('(CG)Times') pgnm = ppm_CreatePage(1, 1, 0) call ppm_SetPageType(pgnm, 4) call ppm_SetRulerType(4) call ppm_SetBoxLock(0, 0) call ppm_DeleteBox(0) /* Headline */ haedln = ppm_CreateBox(4, 0.2, 11.5, 1.2, 0) call ppm_SetSize(20) call ppm_SetStyle(U) call ppm_SetJustification(2) call ppm_TextIntoBox(haedln, 'Title') end when neu == "n" then notenlinien() otherwise exit_msg("User Break!") end notenlinien: cr = '0a'x form = "notelines ? (y/n):y"cr"2/1 system (2/1v/1b):2"cr"accidentals (1#=1 #):"cr"time (4/4=4 4):4 4"cr"v_iol/b_ass [f_ile]:v" eingabe = ppm_GetForm("Please give in ... ", 5, form) parse var eingabe res '0a'x systemart '0a'x vorz '0a'x takt '0a'x violbass if systemart == '1B' then systemart = '1b' if systemart == '1V' then systemart = '1v' if res == '' then res = 'y' if res == 'J' then res = 'y' if res == 'y' then do call ppm_SetUnits(2) call ppm_SetMagMode(200) call ppm_SetFont('(CG)Times') pgnm = ppm_CurrentPage() call ppm_SetPageType(pgnm, 4) call ppm_SetRulerType(4) call ppm_SetBoxLock(0, 0) call ppm_DeleteBox(0) /* headline */ haedln = ppm_CreateBox(4, 0.2, 11.5, 1.2, 0) call ppm_SetSize(20) call ppm_SetStyle(U) call ppm_SetJustification(2) call ppm_TextIntoBox(haedln, 'Title') /* Autor */ autor = ppm_CreateBox(13, 0.9, 6.5, 0.64, 0) call ppm_SetSize(12) call ppm_SetStyle(U) call ppm_SetJustification(1) call ppm_TextIntoBox(autor, "Autor: © Noname") /* Draw notelines */ do a=1 to 12 do b=1 to 5 call ppm_DrawLine(0, a*2+((b-1)/5), 19.5, a*2+((b-1)/5)) end end /* Notekey and bracket at front */ if systemart == '1v' then do call ppm_SetFont('(CG)Noten') violschl = ppm_CreateBox(0, 1.55, 1, 1.6, 0) call ppm_SetStyle(N) call ppm_SetJustification(0) call ppm_SetSize(45) call ppm_TextIntoBox(violschl, 't') do c=1 to 11 call ppm_CloneBox(violschl, 0, (c*2)) end end if systemart == '1b' then do call ppm_SetFont('(CG)Noten') bassschl = ppm_CreateBox(0.034, 1.88, 1.1, 1.1, 0) call ppm_SetStyle(N) call ppm_SetJustification(0) call ppm_SetSize(30) call ppm_TextIntoBox(bassschl, 'b') do c=1 to 11 call ppm_CloneBox(bassschl, 0, (c*2)) end end if systemart == '2' then do call ppm_SetFont('(CG)Noten') violschl = ppm_CreateBox(0, 1.55, 1, 1.6, 0) call ppm_SetStyle(N) call ppm_SetJustification(0) call ppm_SetSize(45) call ppm_TextIntoBox(violschl, 't') bassschl = ppm_CreateBox(0.034, 3.88, 1.1, 1.1, 0) call ppm_SetSize(30) call ppm_TextIntoBox(bassschl, 'b') call ppm_SetLineWeight(4) vl = ppm_DrawLine(0, 1.98, 0, 4.82) call ppm_SetLineWeight(2) vo = ppm_DrawLine(-0.07, 2.08, 0.303, 1.7627) vu = ppm_DrawLine(-0.07, 4.74, 0.303, 5.052) do c=1 to 5 call ppm_CloneBox(violschl, 0, (c*4)) call ppm_CloneBox(bassschl, 0, (c*4)) call ppm_CloneBox(vl, 0, (c*4)) call ppm_CloneBox(vo, 0, (c*4)) call ppm_CloneBox(vu, 0, (c*4)) end end vorzeichen() end else do if res == 'N' then res = 'n' if res == 'n' then vorzeichen() else start() end end noteneingabe: if violbass == '' then notenlinien() resa = word(violbass,1) resb = word(violbass,2) if resa=='V' then resa = 'v' if resa=='B' then resa = 'b' if resb=='F' then resb = 'f' select when resa=='v' then violschl() when resa=='b' then basschl() otherwise noteneingabe() end violschl: do call ppm_SetFont('(CG)Noten') select when resb='' then do address command rx 'Genies:Violinkey.rexx' end when resb='f' then do address command rx 'Genies:Violinkey.file' end otherwise noteneingabe() end exit end basschl: do call ppm_SetFont('(CG)Noten') select when resb='' then do address command rx 'Genies:Basskey.rexx' end when resb='f' then do address command rx 'Genies:Basskey.file' end otherwise noteneingabe() end exit end exit vorzeichen: if vorz == "" then do k = 0 takt() end else do call ppm_SetFont('(CG)Noten') call ppm_SetSize(20) zahl = word(vorz, 1) if zahl >6 then vorzeichen() art = word(vorz, 2) if art == 'B' then art = 'b' yy = 0.28 j = 0 k = zahl select when art == 'b' then do art = 'f' if systemart == '2' then do do i=1 to 6 if zahl== 1 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1, (4.15+j) end if zahl == 2 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1, (4.15+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.2, (3.85+j) end if zahl == 3 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1, (4.15+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.2, (3.85+j) call vorzeichenbox 1.4, (2.05+j) call vorzeichenbox 1.4, (4.25+j) end if zahl == 4 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1, (4.15+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.2, (3.85+j) call vorzeichenbox 1.4, (2.05+j) call vorzeichenbox 1.4, (4.25+j) call vorzeichenbox 1.6, (1.75+j) call vorzeichenbox 1.6, (3.95+j) end if zahl == 5 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1, (4.15+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.2, (3.85+j) call vorzeichenbox 1.4, (2.05+j) call vorzeichenbox 1.4, (4.25+j) call vorzeichenbox 1.6, (1.75+j) call vorzeichenbox 1.6, (3.95+j) call vorzeichenbox 1.8, (2.15+j) call vorzeichenbox 1.8, (4.35+j) end if zahl == 6 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1, (4.15+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.2, (3.85+j) call vorzeichenbox 1.4, (2.05+j) call vorzeichenbox 1.4, (4.25+j) call vorzeichenbox 1.6, (1.75+j) call vorzeichenbox 1.6, (3.95+j) call vorzeichenbox 1.8, (2.15+j) call vorzeichenbox 1.8, (4.35+j) call vorzeichenbox 2.0, (1.85+j) call vorzeichenbox 2.0, (4.05+j) end j=j+4 end end if systemart == '1b' then do do i=1 to 12 if zahl== 1 then do call vorzeichenbox 1, (2.15+j) end if zahl == 2 then do call vorzeichenbox 1, (2.15+j) call vorzeichenbox 1.2, (1.85+j) end if zahl == 3 then do call vorzeichenbox 1, (2.15+j) call vorzeichenbox 1.2, (1.85+j) call vorzeichenbox 1.4, (2.25+j) end if zahl == 4 then do call vorzeichenbox 1, (2.15+j) call vorzeichenbox 1.2, (1.85+j) call vorzeichenbox 1.4, (2.25+j) call vorzeichenbox 1.6, (1.95+j) end if zahl == 5 then do call vorzeichenbox 1, (2.15+j) call vorzeichenbox 1.2, (1.85+j) call vorzeichenbox 1.4, (2.25+j) call vorzeichenbox 1.6, (1.95+j) call vorzeichenbox 1.8, (2.35+j) end if zahl == 6 then do call vorzeichenbox 1, (2.15+j) call vorzeichenbox 1.2, (1.85+j) call vorzeichenbox 1.4, (2.25+j) call vorzeichenbox 1.6, (1.95+j) call vorzeichenbox 1.8, (2.35+j) call vorzeichenbox 2.0, (2.05+j) end j=j+2 end end if systemart == '1v' then do do i=1 to 12 if zahl== 1 then do call vorzeichenbox 1, (1.95+j) end if zahl == 2 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1.2, (1.65+j) end if zahl == 3 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.4, (2.05+j) end if zahl == 4 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.4, (2.05+j) call vorzeichenbox 1.6, (1.75+j) end if zahl == 5 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.4, (2.05+j) call vorzeichenbox 1.6, (1.75+j) call vorzeichenbox 1.8, (2.15+j) end if zahl == 6 then do call vorzeichenbox 1, (1.95+j) call vorzeichenbox 1.2, (1.65+j) call vorzeichenbox 1.4, (2.05+j) call vorzeichenbox 1.6, (1.75+j) call vorzeichenbox 1.8, (2.15+j) call vorzeichenbox 2.0, (1.85+j) end j=j+2 end end end when art == '#' then do art = 's' if systemart == '2' then do do i=1 to 6 if zahl == 1 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1, (3.87+j) end if zahl == 2 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1, (3.87+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.2, (4.17+j) end if zahl == 3 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1, (3.87+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.2, (4.17+j) call vorzeichenbox 1.4, (1.57+j) call vorzeichenbox 1.4, (3.77+j) end if zahl == 4 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1, (3.87+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.2, (4.17+j) call vorzeichenbox 1.4, (1.57+j) call vorzeichenbox 1.4, (3.77+j) call vorzeichenbox 1.6, (1.87+j) call vorzeichenbox 1.6, (4.07+j) end if zahl == 5 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1, (3.87+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.2, (4.17+j) call vorzeichenbox 1.4, (1.57+j) call vorzeichenbox 1.4, (3.77+j) call vorzeichenbox 1.6, (1.87+j) call vorzeichenbox 1.6, (4.07+j) call vorzeichenbox 1.8, (2.17+j) call vorzeichenbox 1.8, (4.37+j) end if zahl == 6 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1, (3.87+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.2, (4.17+j) call vorzeichenbox 1.4, (1.57+j) call vorzeichenbox 1.4, (3.77+j) call vorzeichenbox 1.6, (1.87+j) call vorzeichenbox 1.6, (4.07+j) call vorzeichenbox 1.8, (2.17+j) call vorzeichenbox 1.8, (4.37+j) call vorzeichenbox 2.0, (1.77+j) call vorzeichenbox 2.0, (3.97+j) end j=j+4 end end if systemart == '1b' then do do i=1 to 12 if zahl == 1 then do call vorzeichenbox 1, (1.87+j) end if zahl == 2 then do call vorzeichenbox 1, (1.87+j) call vorzeichenbox 1.2, (2.17+j) end if zahl == 3 then do call vorzeichenbox 1, (1.87+j) call vorzeichenbox 1.2, (2.17+j) call vorzeichenbox 1.4, (1.77+j) end if zahl == 4 then do call vorzeichenbox 1, (1.87+j) call vorzeichenbox 1.2, (2.17+j) call vorzeichenbox 1.4, (1.77+j) call vorzeichenbox 1.6, (2.07+j) end if zahl == 5 then do call vorzeichenbox 1, (1.87+j) call vorzeichenbox 1.2, (2.17+j) call vorzeichenbox 1.4, (1.77+j) call vorzeichenbox 1.6, (2.07+j) call vorzeichenbox 1.8, (2.37+j) end if zahl == 6 then do call vorzeichenbox 1, (1.87+j) call vorzeichenbox 1.2, (2.17+j) call vorzeichenbox 1.4, (1.77+j) call vorzeichenbox 1.6, (2.07+j) call vorzeichenbox 1.8, (1.37+j) call vorzeichenbox 2.0, (2.97+j) end j=j+2 end end if systemart == '1v' then do do i=1 to 12 if zahl == 1 then do call vorzeichenbox 1, (1.67+j) end if zahl == 2 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1.2, (1.97+j) end if zahl == 3 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.4, (1.57+j) end if zahl == 4 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.4, (1.57+j) call vorzeichenbox 1.6, (1.87+j) end if zahl == 5 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.4, (1.57+j) call vorzeichenbox 1.6, (1.87+j) call vorzeichenbox 1.8, (2.17+j) end if zahl == 6 then do call vorzeichenbox 1, (1.67+j) call vorzeichenbox 1.2, (1.97+j) call vorzeichenbox 1.4, (1.57+j) call vorzeichenbox 1.6, (1.87+j) call vorzeichenbox 1.8, (2.17+j) call vorzeichenbox 2.0, (1.77+j) end j=j+2 end end end otherwise vorzeichen() end takt() end takt: do call ppm_SetFont('(CG)Times') call ppm_SetSize(16) if takt ~= '' then do oben = WORD(takt, 1) unten = WORD(takt, 2) if unten == '' then takt() id = ppm_CreateBox(1.15+(k*0.2), 2, 0.3, 0.6, 0) call ppm_TextIntoBox(id, oben) id = ppm_CreateBox(1.15+(k*0.2), 2.4, 0.3, 0.6, 0) call ppm_TextIntoBox(id, unten) if systemart == '2' then do id = ppm_CreateBox(1.15+(k*0.2), 4, 0.3, 0.6, 0) call ppm_TextIntoBox(id, oben) id = ppm_CreateBox(1.15+(k*0.2), 4.4, 0.3, 0.6, 0) call ppm_TextIntoBox(id, unten) end end else NOP call ppm_SetFont('(CG)Noten') call ppm_SetSize(20) call ppm_UpdateScreen() noteneingabe() end vorzeichenbox: do parse arg bx,by id = ppm_CreateBox(bx, by, 0.35, 0.75, 0) call ppm_TextIntoBox(id, art) return end break_d: break_e: break_c: halt: call exit_msg("User aborted Genie!") exit_msg: procedure do parse arg message if message ~= '' then call ppm_Inform(1,message,) call ppm_ClearStatus() call ppm_AutoUpdate(1) exit end