T.R | Title | User | Personal Name | Date | Lines |
---|
174.1 | praise the fortran master! | VOYAGE::DDAVIES | Alligator crawlin round my cabin floor | Tue Sep 08 1987 17:43 | 3 |
| Very nice Dave!
Derek (from grateful)
|
174.2 | Another happy customer... | CSC32::G_HOUSE | | Thu Oct 08 1987 22:01 | 8 |
|
This is GREAT! I've been meaning to write something like this
for about a year (you know how personal projects get pushed to
the background).
Thanks much,
Greg
|
174.3 | | PNO::HEISER | Don't Bb, B# and you'll look # | Mon Apr 24 1989 14:31 | 4 |
| I'm having trouble running this under VMS V5, anyone update the
program for V5?
Mike
|
174.4 | | DEMING::CLARK | Everybody wants all of my time | Mon Apr 24 1989 15:51 | 9 |
| re .3
works fine for me in V5;
with V5 I notice that you have to type in "fort filename" instead
of just "for filename" to get it to compile. Maybe that's your
problem.
-Dave (guitar software maintainability engineer)
|
174.5 | who said musicians are brain dead? :-) | PNO::HEISER | Cold Rock The Groove | Fri Jun 02 1989 19:59 | 50 |
| I've recently taken on the task of re-writing this program. I had
2 reasons for doing this. First of all, I don't have any theory
background and thought it would help me with scales. Secondly,
I've also been looking for an excuse to fool around with GKS calls.
I find the calculations (in music) interesting but, my version isn't
displaying the same scale on the output as .0 with the same exact inputs.
With all the math involved in music, you would think they would
teach it in elementary schools as a math supplement!
These sections of code are executed after the key and chord notes are
entered.
> DO 10 K=1,21
> KE=K+1-KPOS
> IF(KE.LE.0)KE=KE+12
> IF(KE.GT.12)KE=KE-12
> POS(1,K)=NPOS(KE)
> 10 CONTINUE
In the example of the key of C, KPOS = 9 because C is the 9th note
in the chromatic scale, right? KE then becomes the counter (K)
plus 1 - KPOS. KE is then used to determine whether to add or subtract
12. In the key of C (first time through the loop), KE=1+1-9 or
-7. I realize that this is done for 21 frets but why add the counter
(K) and the +1? Also what is the purpose for adding or subtracting
12 depending on KE? I'm sure it is something to do with the chromatic
scale, other than that I'm lost. Then the results are written into
an array, no problem.
> DO 11 J=2,6
> DO 11 K=1,21
> KX=K+IVAL(J-1)
> IF(KX.LE.0)KX=KX+12
> IF(KX.GT.12)KX=KX-12
> POS(J,K)=POS(1,KX)
> 11 CONTINUE
More questions here. Why start the counter (J) at 2, or better
yet, why do you only want to use IVAL(2) through IVAL(6)? I know
it has to do with the notes on each string but the values in IVAL
through me off. What are we doing by adding the counter to
IVAL after substracting one? The answer to adding and subtracting
12 is probably the same here as above. Then they're stored in the
array.
Any help on how these scales are calculated would be appreciated!
Thanks,
Mike
|
174.6 | no documentation'll getcha every time | 6171::CLARK | roots, wings, and oat bran | Mon Jun 05 1989 09:47 | 8 |
| re .-1
send me mail and we'll talk about the internals of the code offline.
I know there was a reason for what I did when I wrote the code,
and it works, but (of course) it never occured to me to DOCUMENT
what I did, so it's kind of fuzzy to me.
-Dave
|
174.7 | | PNO::HEISER | Cold Rock The Groove | Tue Jun 06 1989 13:22 | 5 |
| Dave,
I can't seem to reach you at 6171::, do you have another node?
Mike
|
174.8 | | 6171::CLARK | roots, wings, and oat bran | Tue Jun 06 1989 15:23 | 3 |
| re .7:
deming::clark
|
174.9 | BASIC version | PNO::HEISER | bash-n-the code | Tue Jul 18 1989 17:13 | 111 |
|
Here is a BASIC version of Mr. Clark's program. It is exactly the
same except this one will accept mixed case (upper or lower) and
it sets your terminal to 132 columns for you (and back to 80 when
done). I'm now working on a graphics display for the guitar neck
using GKS.
In case your not familiar with these things, do the following:
Notes> extract/noheader chord.bas
$ basic chord
$ link chord
$ run chord
--------------------------------------------------------
program chord
map (str_var) string chord_key = 2, note = 3, position(6,21) = 3, npos(12) = 3
declare integer ival(5), kpos, nnotes, n, j, k, ke, kx
external long function lib$spawn
ival(1) = -5
ival(2) = -9
ival(3) = -2
ival(4) = -7
ival(5) = 0
call lib$spawn ("set terminal/width=132",,,,,,,,,,,)
beginning:
mat position = nul$(6,21)
mat npos = nul$(12)
input "Enter key"; chord_key
chord_key = edit$(chord_key,32)
if chord_key = "E" then kpos = 1 end if
if chord_key = "F" then kpos = 2 end if
if chord_key = "F#" then kpos = 3 end if
if chord_key = "G-" then kpos = 3 end if
if chord_key = "G" then kpos = 4 end if
if chord_key = "G#" then kpos = 5 end if
if chord_key = "A-" then kpos = 5 end if
if chord_key = "A" then kpos = 6 end if
if chord_key = "A#" then kpos = 7 end if
if chord_key = "B-" then kpos = 7 end if
if chord_key = "B" then kpos = 8 end if
if chord_key = "C" then kpos = 9 end if
if chord_key = "C#" then kpos = 10 end if
if chord_key = "D-" then kpos = 10 end if
if chord_key = "D" then kpos = 11 end if
if chord_key = "E-" then kpos = 12 end if
if chord_key = "D#" then kpos = 12 end if
input "Enter the number of Notes in the Chord/Scale"; nnotes
for n = 1 to nnotes
input "Enter Note"; note
note = edit$(note,32)
if note = "R" then npos(1) = " R" end if
if note = "-2" then npos(2) = "-2" end if
if note = "2" then npos(3) = " 2" end if
if note = "9" then npos(3) = " 9" end if
if note = "-3" then npos(4) = "-3" end if
if note = "+9" then npos(4) = "+9" end if
if note = "3" then npos(5) = " 3" end if
if note = "4" then npos(6) = " 4" end if
if note = "11" then npos(6) = "11" end if
if note = "+4" then npos(7) = "+4" end if
if note = "+11" then npos(7) = "+11" end if
if note = "-5" then npos(7) = "-5" end if
if note = "5" then npos(8) = " 5" end if
if note = "+5" then npos(9) = "+5" end if
if note = "-6" then npos(9) = "-6" end if
if note = "6" then npos(10) = " 6" end if
if note = "--7" then npos(10) = "--7" end if
if note = "13" then npos(10) = "13" end if
if note = "+6" then npos(11) = "+6" end if
if note = "-7" then npos(11) = "-7" end if
if note = "+13" then npos(11) = "+13" end if
if note = "7" then npos(12) = " 7" end if
next n
for k = 1 to 21
ke = k + 1 - kpos
if ke <= 0 then ke = ke + 12 end if
if ke > 12 then ke = ke - 12 end if
position(1,k) = npos(ke)
next k
for j = 2 to 6
for k = 1 to 21
kx = k + (ival(j - 1))
if kx <= 0 then kx = kx + 12 end if
if kx > 12 then kx = kx - 12 end if
position(j,k) = position(1,kx)
next k
next j
print " \"
for k = 1 to 6
for j = 1 to 20
if edit$(position(k,j),4) = "" then
print " ___";
else
print edit$(position(k,j),4); "___";
end if
next j
print edit$(position(k,21),4)
next k
print " /"; tab(19); "."; tab(31); "."; tab(43); "."; tab(55); "."; tab(73); &
":"; tab(91); "."; tab(103); "."; tab(115); "."; tab(127); "."
print
input "Run Again? [Y] "; again$
if again$ = "Y" or again$ = "y" or again$ = "" then
goto beginning
else
goto finish
end if
finish:
call lib$spawn ("set terminal/width=80",,,,,,,,,,,)
end program
|
174.10 | NECK diagram | PNO::HEISER | Cold Rock the Groove! | Wed Aug 09 1989 19:13 | 446 |
| Below is a SIXEL file that I just created as a memory aide. It is a
complete layout of the guitar neck (up to 23 frets). Edit up to the
line (including the line) and print out on any SIXEL printer (i.e.,
LJ250, LN03, ANSI_*). Looks great on the LJ250 since I created it
with colors!
Mike
---------------------------------------------------------
P0;;8q"1;1;677;900
#0;2;100;100;100
#1;2;50;0;0
#2;2;0;50;0
#3;2;0;0;50
#4;2;100;0;50
#5;2;100;0;0
#6;2;0;100;0
#7;2;0;0;100
#8;2;50;0;50
#9;2;100;50;0
#10;2;100;100;0
#11;2;0;100;100
#12;2;100;0;100
#13;2;100;69;50
#14;2;50;50;50
#15;2;0;0;0
-
-
-
-
-
#5!274?_w[EB@@?!43?_}bbbBB@?!44?_WM~~?!33?EEB@@b}[?!37?KEA@@
B}{?!34?AA~?!170?$-
#5!274?~~B@@@@~}?!42?@??@B~]?!41?[^XXWW~~WW?!33?@@@Bf}W?!38?
_o[FB@?!36?~?!170?$-
#5!275?@@BA@@@?!41?@BBAAB@@?!48?BB?!32?@BBAAB@@@?!37?B!7B@?!
33?AABAA?!168?$-
-
#5!273?GGwwGGGGGWw?!41?_Ww_?!44?GGwwG!5Go_?!35?_oWGGGGWow?!2
6?GGwwGGGGWo_?!27?GGwwGGGGGWw?!169?$-
#5!275?~~GGGG{?@?!40?}B?@N}_?!44?~~?!6?B~{?!31?{~B?!5?OOroO?
!26?~~GGGGW~b?!29?~~GGGG{?@?!169?$-
#5!273?OO^^O!5OW[?!35?OW[VP@@@@B^[WO?!39?OO^^O!5OGMF@?!31?@F
MGWOOOOWGNN?!25?OO^^OOOOWGNN?!26?OO^^O!5OW[?!168?$-
-
#7!279?{{{[!51[{{[!56[{{{[!45[{{{[!45[{{[!43[{{{?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~|?!51?x`?!56?rFN?!45?~~~?!45?~~?!43?~~~?!139?$#5!25
5?OOw?!22?AA}}AAAAE]?!40?_wE]w_?!7?w]??w]?!30?AA}}A!5AKwo?!5
?w]??w]?!22?owKEAAAAEK}?!5?w]??w]?!22?owKEAAAECK}?!25?AA}}AA
AAE]?!155?$-
#5!257?~?!24?~~CCCM?!41?o^OOOR~w???Op~VRp~VR@@?!31?~~?!6?_~^
?Op~VRp~VR@@?!20?^~_?!5?CC{{COp~VRp~VR@@?!20?^~_?!7?@?!27?~~
CCCM?!157?$#7!279?~~~?!51?nn?!56?~^?!46?Bzn?!45?~~?!43?~~~?!
139?$-
#5!255?OO^OO?!20?CCFFCC?!40?CEFDC?????FFECEB???F?!34?CCFFC!5
CAB@??EB???F?!26?@BAECCCCEABB?EB???F?!26?@BAECCCCAAB?!25?CCF
FCC?!159?$#7!279?~~z?!51?~~?!56?|{}?!45?{~x?!45?~~?!43?~~~?!
139?$-
#7!279?~~~_!51_~~_!56_~~~_!45_~~~_!45_~~_!43_~~~_?!138?$-
#7!279?~~~B!51B~~B!56B~~~B!45B~~~B!45B~~B!43B~~~B?!138?$-
#7!41?AA}}A?_o]EAA?AA}}AAAAAE]?AAEMy????qMEAA?!198?~~~?!51?~
~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!43?~~ENXo_?!5?~~AAAAN?!6?@B}}A@?!202?~~~?!51?}}?!56?~~~?!
45?~~~?!45?^B?!43?~~~?!139?$#5!253?WKCAAE{w?!20?@@~~@@@@BN??
___{n__{n_?!24?@@~~@@@@B}[?!41?@@~~@@@@`BN?!35?o[BN{o?!34?_w
[EB@@@BAE~???___{n__{n_?!14?_w[EB@@@@BE^??@~~_OOOo_?!146?$-
#7!41?CCFFC???FEECCCCFFC!5CEF????CCFFCC?!202?~~~?!51?}}?!56?
^~~?!45?~~~?!45?su?!43?~~~?!139?$#5!256?_wMFB?!22?~~AAAF???G
w^JHw^JH?!28?~~@@@@BF{w?!42?~~@@@@F??_?!32?_wNGGGH^{_?!32?N~
o?!7?_??Gw^JHw^JH?!16?N~o?!5?AA}}A?~~????@~^?!145?$-
#5!253?EEFFEEEEA?!19?AABBAA?????B@???B?!29?AABBAAAAB@@@?!40?
AABBA!5ABB?!30?ABBAA?????BBBA?!32?@@BAAAA@@@??B@???B?!21?@@B
AAAAB@@@??@BBAAB@@?!146?$#7!41?[!44[?!192?~~~?!51?||?!56?{~~
?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~o!51o~~o!56o~~~o!45o~~~o!45o~~o!43o~~~?!139?$-
#7!279?~~~@!51@~~@!56@~~~@!45@~~~@!45@~~@!43@~~~?!139?$-
#7!50?owKKCEAAAAAECK}?AAA~~?!41?{ME!6E}M??AAA~~?!147?~~~?!51
?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!253?__oOOo_?!419
?$-
#7!49?}~@?!11?B????~~A@@@@@F}w?!10?K!10K?!17?w^B?!5?~~A@@@@@
F}w?!138?~~~?!51?bx?!56?}{o?!45?~^^?!45?~~?!43?~~~?!139?$#5!
253?@@OOOw~f?!25?_w[EB@@@@BE^?!32?_w[EB@@@BAE~?!41?@@~~@@@@B
N?!34?o[BN{o?!5?___{n__{n_?!18?@@~~@!5@E[w_?!27?_w[EB@@@@BE^
?!153?$-
#7!49?BN[oo__?!5?_oW????~~_????_o^F?!10?E!10E?!14?o}}F?!7?~~
_????_o^F?!138?~~~?!51?N~?!56?w~~?!45?vF_?!45?~~?!43?~~~?!13
9?$#5!252?Ooo__oOX^E?!24?N~o?!5?AA}}A?!30?N~o?!7?_?!43?~~AAA
F?!34?_wNGGGH^{_???Gw^JHw^JH?!22?~~?!6?o~N?!27?N~o?!5?AA}}A?
!151?$-
#7!55?B!6B?!7?B!6B?!39?BBB?!9?B!6B?!141?~~~?!51?}}?!56?~~~?!
45?{}~?!45?~~?!43?~~~?!139?$#5!289?@@BAAAAB@@@?!33?@@BAAAA@@
@?!41?AABBAA?!34?ABBAA?????BBBA?B@???B?!23?AABBA!5A@@?!31?@@
BAAAAB@@@?!152?$-
#7!279?~~~w!51w~~w!56w~~~w!45w~~~w!45w~~w!43w~~~?!139?$-
#7!55?_!6_??_??___oo?!48?___???___oo?!146?~~~?!51?~~?!56?~~~
?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!49?_{]B@@@????@@@B^?????~~_OOOOOo_?!34?_{]B@@@?!7?~~_OOOO
Oo_?!138?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!
257?oww?!419?$-
#7!49?~~?!10?CC{{C???~~?!5?@~}?!10?b!10b?!11?~~EA@@@@B}{????
~~?!5?@~}?!137?~~~?!51?Fb?!56?}}{?!45?~~~?!45?^B?!43?^~~?!13
9?$#5!252?_wGKB@~~?!21?_w[EB@@@@BE^???___{n__{n_?!25?_w[EB@@
@BAE~??___{n__{n_?!29?@@~~@@@@BN??___{n__{n_?!19?@@~~@@@@B}[
?!31?@@~~@!5@E[w_???___{n__{n_?!18?o[BN{o?????@~~_OOOo_?!141
?$-
#7!50?BFKGGwo!5oGKFF????N~woooowKF@?!10?@!10@?!11?BNKwoooGKF
B????N~woooowKF@?!137?~~~?!52?N?!56?|w~?!45?~~~?!45?su?!44?_
~?!139?$#5!252?B!5B^^BB?!19?N~o?!5?AA}}AGw^JHw^JH?!27?N~o?!7
?_?Gw^JHw^JH?!33?~~AAAF???Gw^JHw^JH?!23?~~@@@@BF{w?!32?~~?!6
?o~N??Gw^JHw^JH?!18?_wNGGGH^{_????~~????@~^?!140?$-
#7!279?~~~?!51?~}?!56?~~~?!45?~~~?!45?~~?!43?}~~?!139?$#5!28
4?@@BAAAAB@@@?B@???B?!32?@@BAAAA@@@?B@???B?!34?AABBAA?????B@
???B?!24?AABBAAAAB@@@?!30?AABBA!5A@@????B@???B?!19?ABBAA????
?BBBA??@BBAAB@@?!141?$-
#7!279?~~~W!51W~~W!56W~~~W!45W~~~W!45W~~W!43W~~~?!139?$-
#7!48?GGwwG!7GOOo_???GGG{{?!43?oW!6WK??GGG{{?!146?~~~?!51?~~
?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!50?~~?!10?F~w????~~GCCCCC[w_?!10?o!10o?!11?G^GGWWoo_?!5?~
~GCCCCC[w_?!137?~~~?!51?^^?!56?^^^?!45?~~~?!45?~~?!43?~~~?!1
39?$#5!255?_!5_?!31?__?!35?_!9_?!49?_!5_?_?!31?_____??_?!31?
_!10_?!37?__?!157?$-
#7!50?~~?!10?o~N????~~?!6?~^?!10?W!10W?!18?@~^?????~~?!6?~^?
!137?~~~?!52?~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!253?O
~PPp``?!30?wM@F}w?!35?~~?!5?BM{o?!41?o{MB@????@BN?!27?o{MB@?
??@@B^?!33?~~____o@F?!35?wM@F}w?!155?$-
#7!48?KKNNK!7KAAB@?!5?BNMKKKKMB@?!33?AMMKKMMAB@?!5?BNMKKKKMB
@?!138?~~~?!52?~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!252
?___??_`~N?!26?_o[FCCCCN}o_?!32?~~?!5?_w^F?!41?F^w__????``~~
@?!25?F^w__????__o?!33?~~????B?_o?!31?_o[FCCCCN}o_?!152?$-
#5!253?@@@@@?!28?@@@@@?????@@@@?!29?@!9@?!49?@!5@?!33?@@@@@?
!34?@!11@?!30?@@@@@?????@@@@?!151?$#7!279?~~~?!51?}}?!56?}}}
?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!70?__?!57?__?!146?~~~[!51[~~[!56[~~~[!45[~~~[!45[~~[!43[~
~~?!139?$-
#7!55?_{B^{__?????@@@~~?_!5_?!38?w[[E~~???@@@~~?_!5_?!139?~~
~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!53?{{F???BNN{o?!5?~~@?????B~{?!10?E!10E?!10?o{EB????~~?!5
?~~@?????B~{?!137?~~~?!51?~~?!56?Nnn?!45?nN^?!45?~~?!43?~~~?
!139?$#5!255?_oWGG?!32?oo?!10?o???o?!25?OOooO!5O_?!8?o???o?!
29?_oOOOOo_o?!6?o???o?!24?_oOOOo__o?!5?o???o?!20?OOooOOOOoo?
!30?OOooOOOOo_????Ooo?!142?$-
#7!49?_o{f``@!6@Bn{o_???^~o____oWNB?!10?B!10B?!10?B!7B~~BB??
??^~o____oWNB?!137?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?vzz
?!139?$#5!253?{~ZGGGGwo?!28?{F?B^{?????Gww^Jww^JG?!26?~~?!5?
@F}w??Gww^Jww^JG?!25?w}F@?????_`f__?Gww^Jww^JG?!20?w}F@?!5?@
N??Gww^Jww^JG?!21?~~___o?B?!32?~~OOOOo~F????~~GCCC[wo?!135?$
-
#7!49?@!5@?!7?@@@@????@!6@?!43?@@?!6?@!6@?!140?~~~?!51?~~?!5
6?N^^?!45?^^n?!45?~~?!43?N^^?!139?$#5!253?FNGWOGGNF?!24?_owm
bAAAAF~wo_q]FAA}FAA?!26?__~~_!5_O[NB?q]FAA}FAA?!27?BN[Oo____
oO^^?q]FAA}FAA?!22?BN[Oo____OOW?q]FAA}FAA?!21?__~~__?@?!32?_
_~~____oP^]???^~o__oO^F?!135?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!48?OOooO!6Ooo?OOOww?!43?__oOOOOo_???OOOww?!150?~~~M!51M~~
M!56M~~~M!45M~~~M!45M~~M!43M~~~?!139?$-
#7!50?~~?!5?o?F????~~OGGGGGwo?!11?_!10_?!12?@@_____o^N?????~
~OGGGGGwo?!142?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!13
9?$-
#7!50?~~@!5@N?!5?~~?!6?~~?!10?p!10p?!14?@@@@@BN}o????~~?!6?~
~?!141?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!25
4?_o!7o?!416?$-
#7!48?WW^^W!7W[^???F^[WWWW[EB?!34?C][WWWW[CFB?????F^[WWWW[EB
?!142?~~~?!110?BN~?!45?^~~?!45?~~?!43?~~~?!139?$#5!254?B@???
o{N@?!20?@@~~@@@@B}[?!36?@@~~@@@@`BN?!45?o[BN{o?!33?@@~~@!5@
E[w_?!26?@@~~@@@@BN?___{n__{n_?!19?@@~~@@@@B}[?!157?$-
#5!258?o~?!25?~~@@@@BF{w?!37?~~@@@@F??_?!42?_wNGGGH^{_?!33?~
~?!6?o~N?!28?~~AAAF??Gw^JHw^JH?!23?~~@@@@BF{w?!156?$#7!279?~
~~?!110?u_B?!45?o~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!51?{{?!56?~~{?!45?~~~?!45?~~?!43?~~~?!139?$#5!28
4?AABBAAAAB@@@?!35?AABBA!5ABB?!40?ABBAA?????BBBA?!29?AABBA!5
A@@?!28?AABBAA????B@???B?!24?AABBAAAAB@@@?!156?$-
#7!48?AA}}A!7AC{w??AAA~~?!42?wKCAAAAE{w??AAA~~?!148?~~~E!51E
~~E!56E~~~E!45E~~~E!45E~~E!43E~~~?!139?$-
#7!50?~~G!5GWWSv`?????~~A@@@@@F}w?!10?K!10K?!17?_w^F?????~~A
@@@@@F}w?!139?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139
?$#5!258?__?!419?$-
#7!50?~~?!7?_p~]????~~_????_o^F?!10?E!10E?!11?_owkeeb`__o???
?~~_????_o^F?!139?~~~?!51?NN?!56?~~~?!45?~~~?!45?~~?!43?~~~?
!139?$#5!255?]~p```~M?!23?_oOOOo__o?!35?OOooOOOOoo?!47?oo?!1
0?o???o?!20?OOooO!5O_?!8?o???o?!24?_oOOOOo_o?!30?_oOOOo__o?!
151?$-
#7!48?B!12B?!7?B!6B?!36?B!9B?!5?B!6B?!142?~~~?!110?B~~?!45?F
~~?!45?~~?!43?~~~?!139?$#5!254?{}b`@@Bf}{?!19?w}F@?!5?@N?!37
?~~___o?B?!45?{F?B^{?????Gww^Jww^JG?!21?~~?!5?@F}w??Gww^Jww^
JG?!20?w}F@?????_`f__?!25?w}F@?!5?@N?!151?$-
#5!257?@@@@?!22?BN[Oo____OOW?!35?__~~__?@?!43?_owmbAAAAF~wo_
q]FAA}FAA?!21?__~~_!5_O[NB?q]FAA}FAA?!22?BN[Oo____oO^^?!26?B
N[Oo____OOW?!151?$#7!279?~~~?!110?w?F?!45?{~L?!45?~~?!43?~~~
?!139?$-
#7!69?_!11_?!37?___?????___oo?!146?~~~?!51?~~?!56?~~~?!45?~~
~?!45?~~?!43?~~~?!139?$-
#7!71?~~?!5?@N?!35?@@~~~?!7?~~_OOOOOo_?!138?~~~F!51F~~F!56F~
~~F!45F~~~F!45F~~F!43F~~~?!139?$-
#7!71?~~CCCCC]?!12?b!10b?!15?~~~?!7?~~?!5?@~}?!137?~~~?!51?~
~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!69?oo~~ooo?!15?@!10@?!13?oo~~~oo?!5?N~woooowKF@?!137?~~~?
!51?nN?!56?N^~?!45?~~~?!45?~~?!43?~~~?!139?$#5!257?ooWGWoo?!
22?_oOOOo__o?!5?o???o?!25?OOooOOOOoo?!5?o???o?!30?OOooOOOOo_
?!32?OOooOOOOOoo?!34?_oOOOOo_o?!6?o???o?!20?OOooO!5O_????Ooo
?!145?$-
#5!256?NNWOOOG~~?!18?w}F@?!5?@N??Gww^Jww^JG?!26?~~___o?B??Gw
w^Jww^JG?!31?~~OOOOo~F?!33?~~OOOOw?B?!31?w}F@?????_`f__?Gww^
Jww^JG?!21?~~?!5?@F}w??~~GCCC[wo?!138?$#7!279?~~~?!51?~?!57?
N?w?!45?~~~?!45?FF?!43?zbF?!139?$-
#5!257?OOWGKFB?!19?BN[Oo____OOW?q]FAA}FAA?!26?__~~__?@???q]F
AA}FAA?!31?__~~____oP^]?!30?__~~____`_ow?!30?BN[Oo____oO^^?q
]FAA}FAA?!21?__~~_!5_O[NB??^~o__oO^F?!138?$#7!279?~~~?!51?^?
!57?Nm_?!45?~~~?!45?w|?!43?Nn_?!139?$-
#7!64?_oWWGKCCCCCKGW{?!40?owKCCCCKwo?!148?~~~_!51_~~_!56_~~~
_!45_~~~_!45_~~_!43_~~~?!139?$-
#7!63?{~B?!11?F?!17?W!10W?!10?}~@?!5?@~}?!147?~~~B!51B~~B!56
B~~~B!45B~~~B!45B~~B!43B~~~?!139?$-
#7!63?F^w__?!8?_o?!17?K!10K?!10?N~o?!5?o~N?!147?~~~?!51?~~?!
56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!66?@@@FE!5E@@?!42?@FEEEEF@?!149?~~~?!51?~N?!56?zr@?!45?~~
~?!45?~~?!43?~~~?!139?$#5!249?GG{?!5?owKCCKwo?!16?AA}}A!5AKw
o?!38?owKEAAAAEK}?!38?owKEAAAECK}?!31?AA}}AAAAE]?!35?_wE]w_?
!28?AA}}A!5AKwo?!157?$-
#5!251?~?????~~?!5?~~?!17?~~?!6?_~^?!36?^~_?!5?CC{{C?!35?^~_
?!7?@?!33?~~CCCM?!36?o^OOOR~w?!29?~~?!6?_~^?!156?$#7!279?~~~
?!51?_?!57?~~}?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!249?GGNGG???@FEKGGKEF@?!15?CCFFC!5CAB@?!38?@BAECCCCEABB?!
37?@BAECCCCAAB?!31?CCFFCC?!35?CEFDC?????FFEC?!24?CCFFC!5CAB@
?!157?$#7!279?~~~?!51?~}?!56?||{?!45?~~~?!45?~~?!43?~~~?!139
?$-
#7!64?w{EAAB@@@@BBAE~?!43?AA~~~?!10?{^^???{^?!131?~~~o!51o~~
o!56o~~~o!45o~~~o!45o~~o!43o~~~?!139?$-
#7!63?~~?!10?GGwwG?!16?E!10E?!15?~~~?!7?@|NB@@@|NB@@?!130?~~
~@!51@~~@!56@~~~@!45@~~~@!45@~~@!43@~~~?!139?$-
#7!63?@FMWOOo_!5_OWNN?!17?B!10B?!13?__~~~__???@@x^B@@xx^B@@?
!132?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!69?@!6@?!46?@!6@?????@????@@?!136?~~~?!51?~N?!56?xzr?!45?
~~F?!45?~~?!43?~~~?!139?$#5!250?AA~?!7?AA~?!17?AA}}A!5AKwo?!
5?w]??w]?!27?owKEAAAAEK}?!5?w]??w]?!27?owKEAAAECK}?????w]??w
]?!20?AA}}AAAAE]?????w]??w]?!30?_wE]w_?!7?w]??w]?!15?AA}}AAA
AAE]?A}}?____?!142?$-
#5!252?~?!9?~?!19?~~?!6?_~^?Op~VRp~VR@@?!25?^~_?!5?CC{{COp~V
Rp~VR@@?!25?^~_?!7?@?Op~VRp~VR@@?!21?~~CCCM???Op~VRp~VR@@?!2
8?o^OOOR~w???Op~VRp~VR@@?!16?~~AAAAN????~~@???B~}?!140?$#7!2
79?~~~?!51?_?!57?~~~?!46?gk?!45?nM?!44?@~?!139?$-
#5!250?AABAA?!5?AABAA?!15?CCFFC!5CAB@??EB???F?!31?@BAECCCCEA
BB?EB???F?!31?@BAECCCCAAB?EB???F?!24?CCFFCC?????EB???F?!30?C
EFDC?????FFECEB???F?!19?CCFFC!5CEF?BFECCEAB?!141?$#7!62?OOoo
O!7O___?!44?__OOOOo_?!9?oo????o?!131?~~~?!51?~}?!56?z||?!45?
~~~?!45?x{?!43?{~~?!139?$-
#7!64?~~?!9?@N}o?!17?_!10_?!11?F@?!5?~~?????OOo~VVOOo~VO?!13
0?~~~o!51o~~o!56o~~~o!45o~~~o!45o~~o!43o~~~?!139?$-
#7!64?~~?!10?_~^?!17?p!10p?!14?_oo[NB???OOOo~ROOOo~RO?!132?~
~~@!51@~~@!56@~~~@!45@~~~@!45@~~@!43@~~~?!139?$-
#7!62?WW^^W!7WCCEB@?!41?[]^\[!5[E???]F???]]F?!135?~~~?!51?~~
?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!248?AA~?!5?KEA@@B}{?!17?@@~~@@@@`BN?!40?o[BN{o?!43?@@~~@!
5@E[w_?!26?_w[EB@@@@BE^?!31?@@~~@@@@B}[?!27?@@~~@@@@`BN?!159
?$#7!279?~~~?!51?~N?!56?}}x?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!250?~?!7?_o[FB@?!19?~~@@@@F??_?!37?_wNGGGH^{_?!43?~~?!6?o
~N?!26?N~o?!5?AA}}A?!31?~~@@@@BF{w?!28?~~@@@@F??_?!158?$#7!2
79?~~~?!51?Fo?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!248?AABAA????B!7B@?!16?AABBA!5ABB?!35?ABBAA?????BBBA?!39?
AABBA!5A@@?!30?@@BAAAAB@@@?!30?AABBAAAAB@@@?!26?AABBA!5ABB?!
158?$#7!70?wE}w?!46?KKEAAAAE{w?!7?w}}???w}?!131?~~~?!51?||?!
56?||}?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!67?wwN@??F^^w_?!19?K!10K?!13?KKKKK]zp?????Ay]FAAAy]FAA?!1
30?~~~w!51w~~w!56w~~~w!45w~~~w!45w~~w!43w~~~?!139?$-
#7!64?_wMBBA!6AF^w_?!17?E!10E?!10?_o_????__x^E?AAq}FAAqq}FAA
?!132?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!63?B!5B?!7?BBBB?!39?B!6B?!6?B????BB?!136?~~~?!51?~~?!56?v
vv?!45?vfN?!45?F~?!43?~~~?!139?$#5!250?_?!7?____?!21?GGwwGGG
GWw?!41?_Ww_?!8?_w??_w?!30?GGwwG!5Go_?!6?_w??_w?!23?_oWGGGGW
ow?!5?_w??_w?!23?_oWGGGWOow?!25?GGwwGGGGWw?!151?$-
#5!248?@@~?!5?BB`__p~M?!21?~~OOOw?@?!40?}B?@N}_????C{[ND{[ND
C?!31?~~?!6?B~{??C{[ND{[NDC?!20?{~B?!5?OOroO?C{[ND{[NDC?!20?
{~B?!7?F?!27?~~OOOw?@?!151?$#7!279?~~~?!51?~~?!56?~~~?!45?~n
n?!45?w~?!43?~~~?!139?$-
#5!250?~?????___??_`r~K?!18?OO^^OO?!40?OW[VP@@@@B^[WOXNB@@^B
@@?!31?OO^^O!5OGMF@?XNB@@^B@@?!22?@FMGWOOOOWGNN?XNB@@^B@@?!2
2?@FMGWOOOOGGK?!25?OO^^OO?!155?$#7!62?_!12_?!47?__?!9?__????
_?!136?~~~?!51?bg?!56?nnn?!45?nfv?!45?r~?!43?~~~?!139?$-
#7!64?~~?!5?_@N?!42?_[MMB~~?!5?___}nn___}n_?!135?~~~?!51?~~?
!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!248?@@@@@????@@@@@?!
417?$-
#7!64?~~A!5A^?!19?b!10b?!10?w}b`____~~__?____}f`___}f`?!137?
~~~[!51[~~[!56[~~~[!45[~~~[!45[~~[!43[~~~?!139?$-
#7!62?oo~~o!7ow}?!16?@!10@?!10?@!7@~~@@???{N@??{{N@?!139?~~~
?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~v?!51?vv?!56?~~~?!45?~~~?!45?^F?!43?~~~?!139?$#5!28
1?GGwwGGGGWw?????_w??_w?!25?GGwwGGGGWo_?!41?GGwwGGGGGWw?!36?
_Ww_?!37?_oWGGGWOow?!5?_w??_w?!17?_oWGGGGWow??Gww?!153?$-
#5!249?AA~?!7?_WM~~?!17?~~OOOw?@??C{[ND{[NDC?!26?~~GGGGW~b?!
43?~~GGGG{?@?!35?}B?@N}_?!33?{~B?!7?F???C{[ND{[NDC?!14?{~B?!
5?OOroO?~~CAAAM{w?!146?$#7!279?~~~?!51?vv?!56?~~~?!45?~~~?!4
5?oy?!43?~~~?!139?$-
#5!251?~?????[^XXWW~~WW?!13?OO^^OO?????XNB@@^B@@?!26?OO^^OOO
OWGNN?!40?OO^^O!5OW[?!30?OW[VP@@@@B^[WO?!30?@FMGWOOOOGGK??XN
B@@^B@@?!16?@FMGWOOOOWGNN??N^WOOWGNB?!146?$#7!62?CC{{C!7CGwo
?!42?wK!6KE?!7?o{{???o{?!133?~~n?!51?nn?!56?~~~?!45?~~~?!45?
}~?!43?~~~?!139?$-
#7!64?~~O!5OoognB?!17?W!10W?!12?CNCCKKWwo_?????Cs{NDDCs{NDC?
!132?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!249?
AABAA?!8?BB?!414?$-
#7!64?~~?!8?b~{?!16?K!10K?!19?_~N??CCc{NCCcc{NCC?!134?~~~K!5
1K~~K!56K~~~K!45K~~~K!45K~~K!43K~~~?!139?$-
#7!62?EEFFE!7EF@@?!40?@FFEEFF@@?!5?F@???FF@?!137?~~~?!51?~~?
!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!51?vv?!56?~~~?!45?~^F?!45?~~?!43?~~~?!139?$#5!28
6?_oWGGGGWow?!34?_oWGGGWOow?!41?GGwwGGGGWw?!35?_Ww_?!9?_w??_
w?!19?GGwwG!5Go_?!31?_oWGGGGWow?!156?$-
#7!279?~~~?!51?~~?!56?~~~?!45?boy?!45?~~?!43?~~~?!139?$#5!24
9?CC}?!6?{EEEEEA?!17?{~B?!5?OOroO?!30?{~B?!7?F?!43?~~OOOw?@?
!34?}B?@N}_?????C{[ND{[NDC?!20?~~?!6?B~{?!27?{~B?!5?OOroO?!1
54?$-
#7!62?@@~~@!5@B^?!41?w{EAAB@@?!8?{^^???{^?!137?~~~?!51?nn?!5
6?~~~?!45?}}_?!45?~~?!43?~~~?!139?$#5!251?~?!5?@B@@BE}{?!17?
@FMGWOOOOWGNN?!31?@FMGWOOOOGGK?!41?OO^^OO?!34?OW[VP@@@@B^[WO
?XNB@@^B@@?!20?OO^^O!5OGMF@?!27?@FMGWOOOOWGNN?!155?$-
#7!64?~~GGGGG{?!19?E!10E?!11?~~KCAAAAE{w????@|NB@@@|NB@@?!13
6?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!249?CCF
CC???AEECCEAB?!414?$-
#7!62?__~~___?!22?B!10B?!11?F^Wo___OWNF?@@x^B@@xx^B@@?!138?~
~~M!51M~~M!56M~~~M!45M~~~M!45M~~M!43M~~~?!139?$-
#7!62?@!6@?!48?@@@@?!6?@????@@?!142?~~~?!51?~~?!56?~~~?!45?~
~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!51?~^?!56?zzz?!45?~~~?!45?~~?!43?~~~?!139?$#5!25
1?_?!9?___?!18?_oWKCCCCKW{?!5?o{??o{?!27?_oWKCCCKGW{?????o{?
?o{?!30?CC{{CCCCK{?????o{??o{?!20?CC{{CCCCKwo?!31?CC{{C!5CWo
_?!6?o{??o{?!20?oK{o?!5?C{{?!146?$-
#5!249?@@~?!5?o{mb`___?!16?}~@?!5?GGxwG_a}mfa}mfAA?!25?}~@?!
7?B?_a}mfa}mfAA?!31?~~GGG[???_a}mfa}mfAA?!21?~~CCCCK^p_?!32?
~~?!6?@~}??_a}mfa}mfAA?!17?_~`__f~o?????~~A@@@F}{?!139?$#7!6
5?_ooOWGGGGGWOow?!39?owW!6Www?!7?_ww???_w?!132?~~~?!51?@?!57
?vvb?!45?~~~?!45?@P?!43?w@B?!139?$-
#7!63?w~F?!11?N?!17?o!10o?!10?B?!5?_{N?!5?Ggw^JJGgw^JG?!131?
~~~?!51?~{?!56?v~~?!45?~~~?!45?}~?!43?zw}?!139?$#5!251?~?!5?
^~`_?__~^?!16?BFCKGGGGKCFF?KF@??N@?!30?BFCKGGGGCCE?KF@??N@?!
33?GGNNGG?????KF@??N@?!23?GGNNGGGGKCFF?!30?GGNNG!5GCFB???KF@
??N@?!18?GKMJG????@NMKG??FNKGGKCF@?!139?$-
#7!63?N~o?!11?_?!17?W!10W?!15?ww^@????GGGw^HGGGw^HG?!133?~~~
?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!249?@@@@@?!6
?@@?!416?$-
#7!65?@BBAMK!5KAB@?!43?NNN?!7?NB???NNB?!136?~~~F!51F~~F!56F~
~~F!45F~~~F!45F~~F!43F~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!51?zz?!56?rfB?!45?~~~?!45?~~?!43?~~~?!139?$#5!24
9?__o?????_o!7o?!22?oK{o?!34?CC{{C!5CWo_?!43?_oWKCCCCKW{?!28
?_oWKCCCKGW{?!31?CC{{CCCCCK{?!36?oK{o?!159?$-
#5!251?~?????B@???o{N@?!20?_~`__f~o?!34?~~?!6?@~}?!41?}~@?!5
?GGxwG?!25?}~@?!7?B?!33?~~CCCC]?!36?_~`__f~o?!157?$#7!279?~~
~?!51?~~?!56?vvE?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!249?__~__?!6?o~?!20?GKMJG????@NMKG?!29?GGNNG!5GCFB?!43?BF
CKGGGGKCFF?!27?BFCKGGGGCCE?!31?GGNNG!5GKM?!30?GKMJG????@NMKG
?!154?$#7!279?~~~?!51?vv?!56?rzw?!45?~~~?!45?~~?!43?~~~?!139
?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~B!51B~~B!56B~~~B!45B~~~B!45B~~B!43B~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!51?zz?!56?zzr?!45?fB~?!45?~~?!43?~~~?!139?$#5!24
9?GG{?!5?owGKKGwo?!22?oK{o?!8?o{??o{?!25?CC{{C!5CWo_?!5?o{??
o{?!27?_oWKCCCCKW{?!5?o{??o{?!22?_oWKCCCKGW{?????o{??o{?!20?
CC{{CCCCK{?!30?CC{{CCCCKwo???C{{?!145?$-
#5!251?~?????_r^MKK[~p_?!19?_~`__f~o???_a}mfa}mfAA?!26?~~?!6
?@~}?_a}mfa}mfAA?!25?}~@?!5?GGxwG_a}mfa}mfAA?!20?}~@?!7?B?_a
}mfa}mfAA?!21?~~GGG[?!34?~~CCCCK^p_???~~A@@@F}{?!138?$#7!279
?~~~?!51?~~?!56?~~v?!45?~{~?!45?~~?!43?}w@?!139?$-
#5!249?GGNGG???FFCKGGGCFF?!16?GKMJG????@NMKGKF@??N@?!28?GGNN
G!5GCFB??KF@??N@?!30?BFCKGGGGKCFF?KF@??N@?!25?BFCKGGGGCCE?KF
@??N@?!23?GGNNGG?!34?GGNNGGGGKCFF???FNKGGKCF@?!138?$#7!279?~
~~?!51?vv?!56?vvr?!45?zx~?!45?~~?!43?rzw?!139?$-
#7!279?~~~_!51_~~_!56_~~~_!45_~~~_!45_~~_!43_~~~?!139?$-
#7!279?~~~B!51B~~B!56B~~~B!45B~~~B!45B~~B!43B~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!249?AA~?!5?w}EB@BE}w?!15?CC{{CCCCKwo?!36?CC{{CCCCCK{?!46?
oK{o?!34?CC{{C!5CWo_?!27?CC{{CCCCK{????o{??o{?!20?CC{{CCCCKw
o?!158?$#7!279?~~~?!51?Bz?!56?~~~?!45?~~~?!45?~~?!43?~~~?!13
9?$-
#5!251?~?!5?@@BAAax^F?!17?~~CCCCK^p_?!37?~~CCCC]?!46?_~`__f~
o?!34?~~?!6?@~}?!28?~~GGG[??_a}mfa}mfAA?!21?~~CCCCK^p_?!157?
$#7!279?~~~?!52?z?!57?N~?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!249?AABAA?????AAB@@?!18?GGNNGGGGKCFF?!35?GGNNG!5GKM?!40?G
KMJG????@NMKG?!29?GGNNG!5GCFB?!27?GGNNGG????KF@??N@?!23?GGNN
GGGGKCFF?!157?$#7!279?~~~?!51?ov?!56?}op?!45?~~~?!45?~~?!43?
~~~?!139?$-
#7!279?~~~o!51o~~o!56o~~~o!45o~~~o!45o~~o!43o~~~?!139?$-
#7!279?~~~@!51@~~@!56@~~~@!45@~~~@!45@~~@!43@~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!52?}?!56?~~~?!45?~~^?!45?~~?!43?~~~?!139?$#5!246
?_oOGGWo_???_oWGGWo_?!17?_w[EB@@@BAE~?!35?@@~~@@@@BN?!45?o[B
N{o?????___{n__{n_?!19?@@~~@!5@E[w_??___{n__{n_?!20?_w[EB@@@
@BE^?!27?_w[EB@@@BAE~?!152?$-
#5!246?@???_w^N??}~@????@~}?!16?N~o?!7?_?!37?~~AAAF?!45?_wNG
GGH^{_??Gw^JHw^JH?!23?~~?!6?o~N?Gw^JHw^JH?!22?N~o?!5?AA}}A?!
25?N~o?!7?_?!152?$#7!279?~~~?!52?|?!56?B^~?!45?~vF?!45?~~?!4
3?~~~?!139?$-
#5!246?WW[]ZWWWG?BNKWOOWKNB?!18?@@BAAAA@@@?!35?AABBAA?!45?AB
BAA?????BBBAB@???B?!24?AABBA!5A@@???B@???B?!27?@@BAAAAB@@@?!
28?@@BAAAA@@@?!152?$#7!279?~~~?!51?{|?!56?{{{?!45?~{}?!45?~~
?!43?~~~?!139?$-
#7!279?~~~w!51w~~w!56w~~~w!45w~~~w!45w~~w!43w~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!52?}?!56?b~~?!45?~~~?!45?BO?!43?^~~?!139?$#5!247
?WKCAAE{w?????CC}?!18?_w[EB@@@BAE~??___{n__{n_?!24?@@~~@@@@B
N??___{n__{n_?!29?@@~~@@@@B}[?!31?@@~~@@@@`BN?!31?_w[EB@@@@B
E^???___{n__{n_?!19?@@~~@!5@E[w_?@~~_OOOo_?!141?$-
#5!250?_wMFB?!6?~?!18?N~o?!7?_?Gw^JHw^JH?!28?~~AAAF???Gw^JHw
^JH?!33?~~@@@@BF{w?!32?~~@@@@F??_?!30?N~o?!5?AA}}AGw^JHw^JH?
!23?~~?!6?o~N??~~????@~^?!140?$#7!279?~~~?!52?|?!56?BF~?!45?
~~~?!45?u~?!44?_~?!139?$-
#5!247?EEFFEEEEA????CCFCC?!18?@@BAAAA@@@?B@???B?!29?AABBAA??
???B@???B?!34?AABBAAAAB@@@?!30?AABBA!5ABB?!32?@@BAAAAB@@@?B@
???B?!24?AABBA!5A@@????@BBAAB@@?!141?$#7!279?~~~?!51?{|?!56?
}}~?!45?~~~?!45?~~?!43?}~~?!139?$-
#7!279?~~~W!51W~~W!56W~~~W!45W~~~W!45W~~W!43W~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!247?KEA@@B}{???KEA@@B}{?!15?@@~~@!5@E[w_?!36?_w[EB@@@@BE^
?!37?_w[EB@@@BAE~?!31?@@~~@@@@BN?!35?o[BN{o?!28?@@~~@!5@E[w_
?!157?$#7!279?~~~?!51?Fb?!56?x?~?!45?~~~?!45?~~?!43?~~~?!139
?$-
#5!249?_o[FB@?????_o[FB@?!17?~~?!6?o~N?!36?N~o?!5?AA}}A?!35?
N~o?!7?_?!33?~~AAAF?!35?_wNGGGH^{_?!28?~~?!6?o~N?!157?$#7!27
9?~~~?!52?N?!56?~^~?!45?~~~?!45?~~?!43?~~~?!139?$-
#5!247?B!7B@??B!7B@?!14?AABBA!5A@@?!40?@@BAAAAB@@@?!38?@@BAA
AA@@@?!31?AABBAA?!35?ABBAA?????BBBA?!24?AABBA!5A@@?!159?$#7!
279?~~~?!51?~}?!56?}}~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~[!51[~~[!56[~~~[!45[~~~[!45[~~[!43[~~~?!139?$-
#7!279?~~~?!51?~~?!56?~~~?!45?~~~?!45?~~?!43?~~~?!139?$-
#7!279?~~~?!51?~~?!56?^~~?!45?~~~?!45?~~?!43?~~~?!139?$#5!24
8?__OOo_????__oOOo_?!16?_!9_?!9?_???_?!30?_!5_?_?!6?_???_?!3
0?_____??_?!5?_???_?!20?_!9_?!5?_???_?!32?__?!10?_???_?!15?_
!10_?___?!147?$-
#5!247?B@???o~^???@@OOOw~f?!17?~~?!5?BM{o??Ooo}Voo}VO?!25?o{
MB@????@BN???Ooo}Voo}VO?!25?o{MB@???@@B^??Ooo}Voo}VO?!21?~~?
??_@F??Ooo}Voo}VO?!29?wM@F}w?????Ooo}Voo}VO?!16?~~____o@F??~
~OGGGwo_?!140?$#7!279?~~~?!51?NB?!56?}}{?!45?NN@?!45?~n?!43?
N^~?!139?$-
#5!247?oow{vpooO?Ooo__oOX^E?!16?~~?!5?_w^F?c{NDC{NDC?!27?F^w
__????``~~@c{NDC{NDC?!27?F^w__????__o?c{NDC{NDC?!23?~~@@@B??
?c{NDC{NDC?!28?_o[FCCCCN}o_?c{NDC{NDC?!18?~~????B?_o?~~_??__
~N?!140?$#7!279?~~~?!51?w_?!56?~^^?!45?oyz?!45?ZB?!44?o~?!13
9?$-
#7!279?~~~?!51?~~?!56?}~~?!45?~~~?!45?}~?!43?~~~?!139?$#5!28
2?@!9@?????@????@?!34?@!5@????@????@?!34?@@@@@????@????@?!24
?@!5@?????@????@?!30?@@@@@?????@@@@@????@?!19?@!11@??@@@@@?!
143?$-
-
-
�
|
174.11 | S I X E L | POBOX::KALLEVIGB | Onward through the Fog... | Wed Aug 16 1989 13:50 | 8 |
| Hey Mike,
What is the print control command for LN03 to get it to print SIXEL
is it through DECPAGE?
Thanks,
BJ
|
174.12 | | PNO::HEISER | Cold Rock the Groove! | Wed Aug 16 1989 19:11 | 3 |
| BJ, just use the print command and send it to an LN03 queue.
Mike
|
174.13 | didn't know where else to put this | ZEMI::HEISER | JCM 900 rules! | Mon Apr 29 1991 21:26 | 4 |
| Anyone have some nice guitar related GIF images they would like to
share?
Mike
|
174.14 | scale program | FRETZ::HEISER | maranatha | Tue Mar 24 1992 18:01 | 252 |
| /****************************************************************************
*
* Fretted instrument chord and scale plotter.
*
* Notes:
*
* Program functions:
*
* 1. Print fretboard
* - prints the fret board with the current chord/scale in the
* current tuning. Defaults: major chord and std. guitar.
* 2. Enter chord or scale
* - enter new chord/scale. Intervals are relative to the previous
* note in the scale; e.g. a major seventh would be entered as
* 4,3,4. The root is implied. A blank line ends the entry.
* The maximum number of notes is currently 12.
* 3. Enter tuning
* - enter a new tuning. Similar to entering a chord. The
* maximum number of strings is 8.
* 4. Output to file
* - direct output to a file as well as to stdout.
* 5. Print std. six chords
* - print major, minor, maj7, min7, dim and aug.
*
****************************************************************************/
#include <stdio.h>
#define MAX_NOTES 12
#define MAX_FRETS 18
#define MAX_STRINGS 8
static char int_names[24][5] =
{
"---R","--b2","---2","--b3","---3","---4","--b5","---5","--b6","---6","--b7","---7",
"---R","--b9","---9","--#9","---3","--11","-#11","---5","-b13","--13","--b7","---7"
};
static char instr_name[40] = {"Std. Guitar"};
static char chord_name[40] = {"Major Chord"};
static int tuning[MAX_STRINGS] = {0, 5, 10, 15, 19, 24, 0, 0};
static int chord[MAX_NOTES] = {0, 4, 7, 0, 0, 0, 0};
static int nstring=6, nnote=3, nfret=MAX_FRETS;
static int fretbd[MAX_STRINGS][MAX_FRETS];
static FILE *outfile=NULL;
void print_fretbd();
void fret_chord();
void std_six();
void set_chord(char *name, int n, int *interval);
void get_chord();
void get_tuning();
void open_file();
main()
{
char cmd[10];
for(;;)
{
printf("1. Print fretboard\n");
printf("2. Enter chord or scale\n");
printf("3. Enter tuning\n");
printf("4. Output to file\n");
printf("5. Print std. six chords\n");
gets(cmd);
if (cmd[0] == NULL) break;
if (cmd[0] == '1')
{
fret_chord();
print_fretbd();
}
else if (cmd[0] == '2')
{
get_chord();
}
else if (cmd[0] == '3')
{
get_tuning();
}
else if (cmd[0] == '4')
{
open_file();
}
else if (cmd[0] == '5')
{
std_six();
}
}
}
void std_six()
{
int interval[6];
interval[0] = 0; interval[1] = 4; interval[2] = 3;
set_chord("Major Chord", 3, interval);
fret_chord();
print_fretbd();
interval[0] = 0; interval[1] = 3; interval[2] = 4;
set_chord("Minor Chord", 3, interval);
fret_chord();
print_fretbd();
interval[0] = 0; interval[1] = 4; interval[2] = 3; interval[3] = 3;
set_chord("Seventh Chord", 4, interval);
fret_chord();
print_fretbd();
interval[0] = 0; interval[1] = 3; interval[2] = 4; interval[3] = 3;
set_chord("Minor Seventh Chord", 4, interval);
fret_chord();
print_fretbd();
interval[0] = 0; interval[1] = 3; interval[2] = 3; interval[3] = 3;
set_chord("Diminished Chord", 4, interval);
fret_chord();
print_fretbd();
interval[0] = 0; interval[1] = 4; interval[2] = 4;
set_chord("Augmented Chord", 3, interval);
fret_chord();
print_fretbd();
}
void set_chord(char *name, int n, int *interval)
{
int i;
sprintf(chord_name, "%s", name);
nnote = n;
for(i = 1,chord[0]=0; i<n; i++)
{
chord[i] = chord[i-1] + interval[i];
}
}
void open_file()
{
char filename[40];
printf("Enter file name->");
gets(filename);
if((outfile = fopen(filename,"w")) == NULL)
{
fprintf(stderr, "Can't open %s\n");
}
}
void get_chord()
{
char line[20];
int interval;
printf("Enter chord name-->");
gets(chord_name);
for(nnote = 1,chord[0]=0; ;nnote++)
{
printf("Enter interval %d-->", nnote);
gets(line);
if(sscanf(line, "%d", &interval) != 1) break;
chord[nnote] = chord[nnote-1] + interval;
}
}
void get_tuning()
{
char line[20];
int interval;
printf("Enter name-->");
gets(instr_name);
for(nstring=1,tuning[0]=0; ;nstring++)
{
printf("Enter interval %d-->", nstring);
gets(line);
if(sscanf(line, "%d", &interval) != 1) break;
tuning[nstring] = tuning[nstring-1] + interval;
}
}
void fret_chord()
{
int istr, inote, ifret;
for(istr=0; istr<nstring; istr++)
for(ifret=0; ifret<MAX_FRETS; ifret++)
fretbd[istr][ifret] = -1;
for(istr=0; istr<nstring; istr++)
{
for(ifret=0; ifret<nfret; ifret++)
{
for(inote=0; inote<nnote; inote++)
{
if(((tuning[istr] + ifret) % 12) == (chord[inote] % 12))
{
fretbd[istr][ifret] = chord[inote] % 24;
break;
}
}
}
}
}
void print_fretbd()
{
int istr, inote, ifret;
printf("\n\n%s --- %s\n\n", instr_name, chord_name);
for(istr=nstring-1; istr>=0; istr--)
{
for(ifret=0; ifret<nfret; ifret++)
{
if(fretbd[istr][ifret] == -1)
printf("---+");
else
printf("%s", int_names[fretbd[istr][ifret]]);
}
printf("\n");
}
printf("\n\n");
if(outfile != NULL)
{
fprintf(outfile, "\n\n%s --- %s\n\n", instr_name, chord_name);
for(istr=nstring-1; istr>=0; istr--)
{
for(ifret=0; ifret<nfret; ifret++)
{
if(fretbd[istr][ifret] == -1)
fprintf(outfile, "---+");
else
fprintf(outfile, "%s", int_names[fretbd[istr][ifret]]);
}
fprintf(outfile, "\n");
}
fprintf(outfile, "\n");
}
}
|
174.15 | How's it work? | GOES11::G_HOUSE | Now I'm down in it | Wed Mar 25 1992 10:40 | 3 |
| Where's the instructions, dude?
gh
|
174.16 | what kind of propeller head are ya?! | FRETZ::HEISER | maranatha | Wed Mar 25 1992 10:45 | 4 |
| The instructions are in the comment field. Just compile it and run it.
It's pretty neat, even handles alternate tunings.
Mike
|
174.17 | | GOES11::G_HOUSE | Now I'm down in it | Wed Mar 25 1992 10:50 | 5 |
| I did, man, but I couldn't figure out what format it wanted the
intervals in when inputting a chord formula. I put in m3 for minor 3rd
and it just went back to it's little menu thing.
gh
|
174.18 | its programmed in "semis" or half steps,.. numerically only | STAR::SALKEWICZ | It missed... therefore, I am | Wed Mar 25 1992 11:32 | 14 |
| Well,. form his example,.. a major 7th being 4,3,4..
It must be number of half steps or semi-tones in each interval:
Major seventh chord:
1 3 5 7
4 semis between root and second note (1,3)
3 semis between second note and third note (3,5)
4 semis between third note and fourth note (5,7)
/Bill
|
174.19 | | FRETZ::HEISER | maranatha | Wed Mar 25 1992 16:09 | 4 |
| Slash-Bill is right. For a minor chord, you type MINOR, then enter
your intervals.
Mike
|
174.20 | Glazzed Hammmmmm.Chocolate covered raisins | CSLALL::PLAFOND | DRILL O' DOOM | Tue Mar 31 1992 07:49 | 6 |
| Hay guy's I can't seem to get any of these to work!
At the dollar sign I do $@for chord or $for chord and none of them
work, I just about had it! I'm dying to see just one!
can someone HELP ME!!!!!
I would be so thankful
Pierre who has tried everything in the book.
|
174.21 | | FRETZ::HEISER | maranatha! | Tue Mar 31 1992 10:05 | 5 |
| The program is in C. You have to compile like this:
$ CC chord
$ LINK chord
$ RUN chord
|
174.22 | reposted - there was a bug | DPE::STARR | Crazy for tryin', and crazy for cryin' | Fri Jun 05 1992 16:06 | 224 |
| /* I found this posted on the USENET, and it works pretty well! */
/* Note: I changed the 24 frets to 21, so that it fits on a 132-char window. */
/* That'll work fine for all the Strat players! 8^) */
/* - Alan */
/*
Article 4924 of alt.guitar:
From: [email protected] (william a huston)
Subject: guitar_scales.c -- corrected version!
Organization: Texas Instruments
Date: Fri, 5 Jun 1992 18:47:42 GMT
BUG ALERT! The previous posting of this program had a small error.
If you asked for a C dorian, you'd get a D dorian. All other modes
were shifted too. Here is the correct version:
-------------------------------------------------------------------
Here's a nifty little program I wrote to help guitar players learn
their scales.
You specify the starting note and the mode (Ionian,Lydian, etc), and
it produces two diagrams.
o The first is just a picture of the guitar neck showing where the all
of the notes are.
o The second shows you where the notes are for the particular tonic/mode
that you desire.
My Ibanez has 24 frets, but if you have fewer, you can easily modify
the program (just change MAXFRETS).
You can also easily modify the program to produce scales for different
tunings by changing the "guitar" array. EX: for the King's X/Pearl
Jam/Sound Garden/Neil Young "D" tuning, set it to {4,11,7,2,9,2}
With a little doing, you should be able to modify for instruments
with different number of stings (change MAXFRETS and fix draw_bound()
where it draws the "pearl inlays" on the neck).
BE FOREWARNED! This can produce W I D E output!
columns required = 6 + 6 * MAXFRETS
Example: 6 + 6 * 24 frets = 150 columns needed.
Good luck!
--------------------------------------------------------------------
*/
#include <stdio.h>
/* Version 1.1 C dorian was really a D dorian, etc. */
/* guitar_scales.c */
/* By William A. Huston */
/* [email protected] or [email protected] */
/* Submitted to the alt.guitar 3 Jun 92 */
/* You are free to use/copy/modify, as long as you keep */
/* all of these comments intact. Thanks and enjoy! */
/* change this to be the number of frets desired. */
/* BE FOREWARNED! This can produce W I D E output! */
/* columns required = 6 + 6 * MAXFRETS */
/* Example: 6 + 6 * 24 frets = 150 columns needed */
#define MAXFRET 24
#define STRING 6
char *note_text[12] =
{ " C ", /* 0 */
"C#/Db", /* 1 */
" D ", /* 2 */
"D#/Eb", /* 3 */
" E ", /* 4 */
" F ", /* 5 */
"F#/Gb", /* 6 */
" G ", /* 7 */
"G#/Ab", /* 8 */
" A ", /* 9 */
"A#/Bb", /* 10 */
" B " }; /* 11 */
/* change the following if you use a non-standard tuning */
char guitar[STRING] = {4,11,7,2,9,4} ; /* E=4 (hi), B=11, G,D,A,E (lo) */
char mode_start[7] = {0,2,4,5,7,9,11} ; /* intervals relative to tonic for ionian */
char *mode_text[7] = {"Ionian","Dorian","Phrygian",
"Lydian","Mixolydian","Aeolian","Locrian"};
char note_value[12];
void draw_bound(int string)
{
int fret;
printf("\n ");
for (fret =1; fret <= MAXFRET; fret ++)
{
if (((string == 2) && ((fret == 3 ) || (fret == 5 ) || (fret == 7 ) || (fret ==9 ) ||
(fret == 15) || (fret == 17) || (fret == 19) || (fret ==21)
)
) ||
(((string == 1) || (string == 3)) &&
((fret == 12) || (fret == 24))
)
)
printf("|=(*)="); /* a pearl inlay! */
else
printf("|=====");
}
printf("|\n");
}
/* draw the top line */
void draw_first()
{
int fret;
printf("\n\n ");
for (fret =1;fret <=MAXFRET;fret++)
printf("|=====");
printf("|\n");
}
main(argc,argv)
int argc;
char *argv[];
{
static int tonic = -1;
static int mode = -1;
char junk[100];
int k,x,i,string,fret,crap;
if (argc == 3)
{
sscanf(argv[1],"%d",&tonic);
sscanf(argv[2],"%d",&mode);
}
while (tonic <0 || tonic >11)
{
for (x=0;x<12;x++)
printf ("\t\t%3d : %s\n",x,note_text[x]);
printf("\n What tonic? ");
gets(junk);
sscanf(junk,"%d",&tonic);
if (tonic <0 || tonic >11)
printf("*** %d is an invalid input!\n",tonic);
else
printf("The tonic you selected was %d (%s)\n",tonic,note_text[tonic]);
}
while (mode <0 || mode >6)
{
for (x=0;x<7;x++)
printf ("\t\t%3d : %s\n",x,mode_text[x]);
printf("\n What mode? ");
gets(junk);
sscanf(junk,"%d",&mode);
if (mode <0 || mode >11)
printf("*** %d is an invalid input!\n",mode);
}
printf("\nYou have picked a %s %s scale.\n\n",note_text[tonic],mode_text[mode]);
k = mode_start[mode];
for (x=0;x<7;x++)
{
i = mode_start[(x+mode) % 7];
printf("%2d: %s\n",x+1,note_text[(tonic+i-k+12) % 12]);
note_value[(tonic+i-k+12) % 12] = x + 1 ;
}
/* print neck all notes */
draw_first();
for (string =0; string <STRING; string++)
{
for (fret =0;fret <=MAXFRET;fret++)
printf("%s|",note_text[(guitar[string]+fret) % 12]);
draw_bound(string);
}
printf("\n\n ");
for (fret =1;fret <=MAXFRET ;fret++)
printf(" %2d ",fret);
printf("\n");
/* print scale on neck */
draw_first();
for (string = 0; string <STRING; string++)
{
for (fret =0;fret <=MAXFRET;fret++)
{
if ( note_value[ (guitar[string]+fret) % 12 ])
printf("%3d |",note_value[ (guitar[string]+fret) % 12 ]);
else
printf(" |");
}
draw_bound(string);
}
}
/*
--
Bill Huston 214-480-4610
Texas Instruments (Dallas/Forest Ln), ICC
MSG: ZAPA email: [email protected]
*/
|