Half Price Membership Today!
Today () you can get immediate access to our Members Area downloads for a small donation of just $14.95 (half normal price of $29.95).


Donate
in various currencies...

A-Z (artist name) of Guitar Tab
A    B    C    D    E    F
G    H    I    J    K    L
M    N    O    P    Q    R
S    T    U    V    W    X
Y    Z    0-9

A-Z (artist name) of Guitar Tab
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   0-9

Click HERE for an easy print version of theory - guitarscales c


################################################################
# The following is the author's own interpretation of the song #
# to be used for studying or private use only. Downloaded from #
# www.TabGuitarLessons.com. FREE GUITAR SOFTWARE + LOTS MORE!  #
# Home of the 60 minute fretboard memory technique. You'll     #
# memorise ALL the notes and positions on the fretboard in 60  #
# minutes or less. visit www.TabGuitarLessons.com today.       #
################################################################
 
  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 
 
 /* Version 1.1   C dorian was really a D dorian, etc.   */
 
 /* guitar_scales.c                                      */
 /* By William A. Huston                                 */
 /* huston@ap040.ti.com or  huston@mksol.dseg.ti.com     */
 
 /* 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 

           

Copyright Guitar Tab & Guitar Lessons at www.TabGuitarLessons.com