TII`?s6YD:\A68(D=>?@A<=>?@ABCDEEEEEEEEE |MNOJKLOHILMNIJK`M`N`O`J`K`L@O`H`I@L@M@N@I@J@K N O@H K L MO H ILMNIJKFGHCDEG@ADEFABCFG@CDE@ABEFGABCa ;)   /1ieotnecorooctaverioempitcnv~I ˜`  rd*2):23133]Z,568+(loop*5)  ":17  68:17  MMMnXrWq0 Mn˫4ǫ6e3Y'-3ū2ūū3`ū0%(``"Rv>!@?66 mllc`66  6ɶMmmlkd[&6ɶM@ @66 mllc`66  6ɶMmmlkd[&6ɶM 6ɶMmmlkd[&6ɶMI$I$I$I$I$I$I$I$I$I 66 mllc`66 6ɶMmmlkd[&6ɶMI$I$I$I$I$I$I$I$I$I ?  @B<@ B~ B~ B>>>~ =<~ =<@#@$@4!@  /<<"s<<E,@P!}=I <<x~<BD@` ~B<B(" (BB2BFe<<@P!gM'Ą B@D@BBH@x $BB("< (*BJU <@t!OO$$ę B<B|@~p@~s"<Ϝ} @B(B <H&>RM ,@ !O'Ĥ ~B@NBBH@~">>""">AQ @B@B~"pbE $@aM$$ BBD@BBBD@x"<"yW  $B$>~<<<@I$$ B<x@<B<B~`" ""A ~B<@ \@'Ą p /} :8::x8:x8:8:xaqxaqxaqxaqxaqxaqxaqxaqxaqxaq$8pppp````8PPPP 8pppp````8PPPP8=8:98x@x@xxx@x@x@xxx@x@xxxx8=8:88x 8x 8x 8hhhhHHHH8XXXX8hhhhHHHH8XXXX8:8:0?66 mllc`66  6ɶMmmlkd[&6ɶM  @ @66 mllc`66    6ɶMmmlkd[&6ɶM   6ɶMmmlkd[&6ɶMI$I$I$I$I$I$I$I$I$I 66 mllc`66  6ɶMmmlkd[&6ɶMI$I$I$I$I$I$I$I$I$I ?     @ ?<<<<@ ?B((B@~ ?@|~ ?@>>>>~<<@ #@$@4!@  /<<"s<<E,@P!}=I <<x~<BD@` <<~B<B<<<$" (BB2BFe<<@P!gM'Ą B@D@BBH@x BB$BB(B(@F$"< (*BJU <@t!OO$$ę B<B|@~p@~s"<Ϝ}@@B<|J$B <H&>RM ,@ !O'Ĥ ~B@NBBH@~">>""">AQ@<@BBBR@B~"pbE $@aM$$ BBD@BBBD@x"<"yWB@ $B$BBb>~<<<@I$$ B<x@<B<B~`" ""A<~~B<> <><<@ \@'Ą p /} :8::xhhh x8:xhhh x8:8:xaqxaqxaqxaqxaqxaqxaqxaqxaqxaq$8pppp````8PPPP 8pppp````8PPPP8=8:98x@x@xxx@x@x@xxx@x@xxxx8=8:88x88=8x 8x 8hhhhHHHH8XXXX8hhhhHHHH8XXXX8:8:"0 # <@|\\\`|«`ūūū\{X?![!PP!!88  K SR P5GarageBEEP 2 - Copyright (c) 2008-2009 Andrew Owen. Define note array including all 18 keyboard keys for each octave. Note: in octave 11 some keys repeat to avoid out of range values n(11 ,18) Nx=1 11 :y=1 18:n(x,y)=x*12 +y-73I:y:x 1x=11 18:n(11 ,x)=69E:x .Define display data array for printing notes !s(25,3):9990' <x=1 25:y=1 3:a:s(x,y)=a:y:x ?clear tune array (over-length to prevent stave drawing error) t(2,1055) define initial values Iview=5:note=1:end=128:record=0:loop=0 1octave=6:period=4:tempo=120x editor 62:0:58620,27:58612 L23038Y,568+(record*2):23133]Z,568+(loop*5) 01250:1380d:1580,:6000p i$= i$=""200 keyboard notes ,i$="a"pitch=n(octave,1):900 ,i$="w"pitch=n(octave,2):900 ,i$="s"pitch=n(octave,3):900 ",i$="e"pitch=n(octave,4):900 ,,i$="d"pitch=n(octave,5):900 6,i$="f"pitch=n(octave,6):900 @,i$="t"pitch=n(octave,7):900 J,i$="g"pitch=n(octave,8):900 T,i$="y"pitch=n(octave,9 ):900 ^-i$="h"pitch=n(octave,10 ):900 h-i$="u"pitch=n(octave,11 ):900 r-i$="j"pitch=n(octave,12 ):900 -i$="k"pitch=n(octave,13 ):900 -i$="o"pitch=n(octave,14):900 -i$="l"pitch=n(octave,15):900 -i$="p"pitch=n(octave,16):900 -i$=";"pitch=n(octave,17):900 -i$="'"pitch=n(octave,18):900 change octave i$="z"1100L i$="x"1200 change period i$="c"1300 i$="v"1350F &change tempo 0i$=","1500 :i$="."1550 X change view bi$="1"1600@ li$="2"1650r  change note i$="3"1700 i$="4"1750  change end i$="9"1800 i$="0"1850: play current note i$="b"800  record on/off Pi$=13 record=0 record=1:23038Y,58::200 Pi$=13 record=1 record=0:23038Y,568:200  loop on/off Li$=10 loop=0 loop=1:23133]Z,61=:200 Li$=10 loop=1 loop=0:23133]Z,568:200 back to start )i$=11 note=1:1700 back 32 notes .i$=8 note=note-31:1700 forward 32 notes .i$=9 note=note+31:1750 switch to file menu i$="m"2000  clear note Di$="n"t(1,note)=0:t(2,note)=0:17  playback i$=" "3000  200  play note %&t(2,note)=0 1020 *3240/(tempo*t(2,note)),t(1,note) 4 1020 play note (freeplay)  240/(tempo*period),pitch record=0  record note t(1,note)=pitch t(2,note)=period note=note+1 note=end+1 note=end  1780 L octave down V?1; 1; 7;1,octave*2.45;" " `?1; 1; 7;2,octave*2.45;" " joctave=octave-1 t!octave=0 octave=1 ~ 1250  octave up ?1; 1; 7;1,octave*2.45;" " ?1; 1; 7;2,octave*2.45;" " octave=octave+1 #octave=12 octave=11 ?1; 1; 5;1,octave*2.45;" " ?1; 1; 5;2,octave*2.45;" " W#0; 0; 7;0,4;" ";0,2;"C";octave-4   period down period=period*2 (%period=256 period=128 2 1380d F period up Pperiod=period/2 Z!period<1 period=1 d#0;0,14; n7period=1 #0; 0; 7;" 1 " x7period=2 #0; 0; 7;" 1/2 " 7period=4 #0; 0; 7;" 1/4 " 7period=8 #0; 0; 7;" 1/8 " 8period=16 #0; 0; 7;" 1/16" 8period=32 #0; 0; 7;" 1/32" 8period=64@ #0; 0; 7;" 1/64" 9period=128 #0; 0; 7;"1/128"   tempo down tempo=tempo-1 !tempo=39' tempo=40(  1580,  tempo up tempo=tempo+1 "#tempo=241 tempo=240 ,;#0; 0; 7;0,25;tempo;" " 6 @ view down Jview=view-1 Tview=0 view=1 ^ 1680 r view up |view=view+1 view=11 view=10  6000p   note down note=note-1 note<1 note=1  1780  note up note=note+1 note>end note=end  6000p   end down end=end-1 end=0 end=1 & 1880X :end up Dend=end+1 N!end=1025 end=1024 X115,26;" ";15,25;end b  file menu  14,0; 7; 2; 31;" GarageBEEP"; 18;"2.0.0 (000.03)Copyright ";127;"2008-2009 Andrew Owen"' 31;" 1 - LOAD TUNE"; 31;" 2 - SAVE TUNE"; 31;" 3 - CLEAR TUNE"; 31;" 4 - EXIT MENU"; 31;" " &0,63?:255,0: a 0a=1 "FILENAME? ";f$:f$ t():11 0a=2 "FILENAME? ";f$:f$ t():11 a=3 9 a=4 15  2003 playback 23197Z,61= &t(2,note)=0 3030 3240/(tempo*t(2,note)),t(1,note) note=note+1 Cnote>end loop=0 note=end:23197Z,568:17 note>end note=1 '=" "23197Z,568:17 3020 pdisplay notes z,58620,16:just clear the stave 58612 :15,2;" ";15,0;"C";view-4 215,14;" ";15,13 ;note 115,26;" ";15,25;end a=73I-view*12 x=1 31 0t(2,note+x-1)=0 6110 n=t(1,note+x-1)+a 'v=256-t(2,note+x-1) Nn1 n25 s(n,1)+x,v:s(n,2)+x,v:s(n,3)+x,v x  '#loader - starts here on first run ',7:23693\,63?:58611 ''LOAD "loading" SCREEN$: PRINT AT 0,0; '*"editor"58612,6924 :0 ' 1 'note display data 'm19872M,20128N,20384O,19104J,19360K,19616L,20352O,18592H,18848I 'm19584L,19840M,20096N,18816I,19072J,19328K,19808`M,20064`N,20320`O ' m19040`J,19296`K,19552`L,20288@O,18528`H,18784`I,19520@L,19776@M,20032@N ' m18752@I,19008@J,19264@K,20000 N,20256 O,18496@H,19232 K,19488 L,19744 M ' m20224O,18464 H,18720 I,19456L,19712M,19968N,18688I,18944J,19200K ' m18144F,18400G,18432H,17376C,17632D,17888E,18368G,16608@,16864A ' m17600D,17856E,18112F,16832A,17088B,17344C,18080F,18336G,16576@ 'm17312C,17568D,17824E,16544@,16800A,17056B,17792E,18048F,18304G '%16768A,17024B,17280C      !"#$%&'()$%&'()*+,-./0123450123456789:;<