function chordcalc()
{ 
var stringlength = 0;
var root = document.getElementById('root');
var chordchoice = document.getElementById('chordchoice');
var chordoption = document.chordcalculator.chordchoice.selectedIndex;
var oDDL = document.chordcalculator.chordchoice;
var chordnote0 = "Cn1";
var chordtext = oDDL.options[oDDL.selectedIndex].text;
var rootnote = (root.value).substring(0,1);
var rootinflection = (root.value).substring(1,2);
var rootnoteoctave = (root.value).substring(2,3);
var rootinflectiontext = "";
var chordchoice_array = (chordchoice.value).split(':');
var chordrowlength = (chordchoice_array[0]).length;
var noofchordnotes = (chordrowlength) / 3;
var chordnotea = (chordchoice_array[0]).substring(0,3);

var note0 = (chordnote0).substring(0,1);
var inflection0 = (chordnote0).substring(1,2);
var chordnoteinflectiontext0 = "";

if( inflection0 == "" )
chordnoteinflectiontext0 = " ";

if( inflection0 == "n" )
chordnoteinflectiontext0 = " ";

if( inflection0 == "s" )
chordnoteinflectiontext0 = "# ";

if( inflection0 == "b" )
chordnoteinflectiontext0 = "b ";

if( inflection0 == "f" )
chordnoteinflectiontext0 = "bb ";

if( inflection0 == "g" )
chordnoteinflectiontext0 = "bbb ";

if( inflection0 == "x" )
chordnoteinflectiontext0 = "x ";

if( inflection0 == "y" )   
chordnoteinflectiontext0 = "x# ";

var octave0 = (chordnote0).substring(2,3);



var notea = (chordnotea).substring(0,1);
var inflectiona = (chordnotea).substring(1,2);
var chordnoteinflectiontexta = "";

if( inflectiona == "" )
chordnoteinflectiontexta = " ";

if( inflectiona == "n" )
chordnoteinflectiontexta = " ";

if( inflectiona == "s" )
chordnoteinflectiontexta = "# ";

if( inflectiona == "b" )
chordnoteinflectiontexta = "b ";

if( inflectiona == "f" )
chordnoteinflectiontexta = "bb ";

if( inflectiona == "g" )
chordnoteinflectiontexta = "bbb ";

if( inflectiona == "x" )
chordnoteinflectiontexta = "x ";

if( inflectiona == "y" )   
chordnoteinflectiontexta = "x# ";

var octavea = (chordnotea).substring(2,3);

var chordnoteb = (chordchoice_array[0]).substring(3,6);
var noteb = (chordnoteb).substring(0,1);
var inflectionb = (chordnoteb).substring(1,2);
var chordnoteinflectiontextb = "";

if( inflectionb == "" )
chordnoteinflectiontextb = " ";

if( inflectionb == "n" )
chordnoteinflectiontextb = " ";

if( inflectionb == "s" )
chordnoteinflectiontextb = "# ";

if( inflectionb == "b" )
chordnoteinflectiontextb = "b ";

if( inflectionb == "f" )
chordnoteinflectiontextb = "bb ";

if( inflectionb == "g" )
chordnoteinflectiontextb = "bbb ";

if( inflectionb == "x" )
chordnoteinflectiontextb = "x ";

if( inflectionb == "y" )   
chordnoteinflectiontextb = "x# ";

var octaveb = (chordnoteb).substring(2,3);

var chordnotec = (chordchoice_array[0]).substring(6,9);
var notec = (chordnotec).substring(0,1);
var inflectionc = (chordnotec).substring(1,2);
var chordnoteinflectiontextc = "";

if( inflectionc == "" )
chordnoteinflectiontextc = " ";

if( inflectionc == "n" )
chordnoteinflectiontextc = " ";

if( inflectionc == "s" )
chordnoteinflectiontextc = "# ";

if( inflectionc == "b" )
chordnoteinflectiontextc = "b ";

if( inflectionc == "f" )
chordnoteinflectiontextc = "bb ";

if( inflectionc == "g" )
chordnoteinflectiontextc = "bbb ";

if( inflectionc == "x" )   
chordnoteinflectiontextc = "x ";
 
if( inflectionc == "y" )   
chordnoteinflectiontextc = "x# ";

var octavec = (chordnotec).substring(2,3);

var chordnoted = (chordchoice_array[0]).substring(9,12);
var noted = (chordnoted).substring(0,1);
var inflectiond = (chordnoted).substring(1,2);
var chordnoteinflectiontextd = "";

if( inflectiond == "" )
chordnoteinflectiontextd = " ";

if( inflectiond == "n" )
chordnoteinflectiontextd = " ";

if( inflectiond == "s" )
chordnoteinflectiontextd = "# ";

if( inflectiond == "b" )
chordnoteinflectiontextd = "b ";

if( inflectiond == "f" )
chordnoteinflectiontextd = "bb ";

if( inflectiond == "g" )
chordnoteinflectiontextd = "bbb ";

if( inflectiond == "x" )
chordnoteinflectiontextd = "x ";

if( inflectiond == "y" )
chordnoteinflectiontextd = "x# ";

var octaved = (chordnoted).substring(2,3);

var chordnotee = (chordchoice_array[0]).substring(12,15);
var notee = (chordnotee).substring(0,1);
var inflectione = (chordnotee).substring(1,2);
var chordnoteinflectiontexte = "";

if( inflectione == "" )
chordnoteinflectiontexte = " ";

if( inflectione == "n" )
chordnoteinflectiontexte = " ";

if( inflectione == "s" )
chordnoteinflectiontexte = "# ";

if( inflectione == "b" )
chordnoteinflectiontexte = "b ";

if( inflectione == "f" )
chordnoteinflectiontexte = "bb ";

if( inflectione == "g" )
chordnoteinflectiontexte = "bbb ";

if( inflectione == "x" )
chordnoteinflectiontexte = "x ";

if( inflectione == "y" )
chordnoteinflectiontexte = "x# ";

var octavee = (chordnotee).substring(2,3);

var chordnotef = (chordchoice_array[0]).substring(15,18); 
var notef = (chordnotef).substring(0,1);
var inflectionf = (chordnotef).substring(1,2);
var chordnoteinflectiontextf = "";

if( inflectionf == "" )
chordnoteinflectiontextf = " ";

if( inflectionf == "n" )
chordnoteinflectiontextf = " ";

if( inflectionf == "s" )
chordnoteinflectiontextf = "# ";

if( inflectionf == "b" )
chordnoteinflectiontextf = "b ";

if( inflectionf == "f" )
chordnoteinflectiontextf = "bb ";

if( inflectionf == "g" )
chordnoteinflectiontextf = "bbb ";

if( inflectionf == "x" )
chordnoteinflectiontextf = "x ";

if( inflectionf == "y" )
chordnoteinflectiontextf = "x# ";

var octavef = (chordnotef).substring(2,3);

var chordnoteg = (chordchoice_array[0]).substring(18,21);
var noteg = (chordnoteg).substring(0,1);
var inflectiong = (chordnoteg).substring(1,2);
var chordnoteinflectiontextg = "";

if( inflectiong == "" )
chordnoteinflectiontextg = " ";

if( inflectiong == "n" )
chordnoteinflectiontextg = " ";

if( inflectiong == "s" )
chordnoteinflectiontextg = "# ";

if( inflectiong == "b" )
chordnoteinflectiontextg = "b ";

if( inflectiong == "f" )
chordnoteinflectiontextg = "bb ";

if( inflectiong == "g" )
chordnoteinflectiontextg = "bbb ";

if( inflectiong == "x" )
chordnoteinflectiontextg = "x ";

if( inflectiong == "y" )
chordnoteinflectiontextg = "x# ";

var octaveg = (chordnoteg).substring(2,3);

var chordnoteh = (chordchoice_array[0]).substring(21,24);
var noteh = (chordnoteh).substring(0,1);
var inflectionh = (chordnoteh).substring(1,2);
var chordnoteinflectiontexth = "";

if( inflectionh == "" )
chordnoteinflectiontexth = " ";

if( inflectionh == "n" )
chordnoteinflectiontexth = " ";

if( inflectionh == "s" )
chordnoteinflectiontexth = "# ";

if( inflectionh == "b" )
chordnoteinflectiontexth = "b ";

if( inflectionh == "f" )
chordnoteinflectiontexth = "bb ";

if( inflectionh == "g" )
chordnoteinflectiontexth = "bbb ";

if( inflectionh == "x" )
chordnoteinflectiontexth = "x ";

if( inflectionh == "y" )
chordnoteinflectiontexth = "x# ";

var octaveh = chordnoteh.substring(2,3);

if( root.value == "0" )
{
t0100.innerHTML = "select chord root (e.g., for <b>D7</b> the chord root is <b>D</b>) or key note (e.g. for augmented 6th chords or chords built on degrees of a scale or mode)";
t0101.innerHTML = "&nbsp;";
t0102.innerHTML = "&nbsp;";
t0103.innerHTML = "&nbsp;";
t0104.innerHTML = "&nbsp;";
t0105.innerHTML = "&nbsp;";
t0105a.innerHTML = "&nbsp;";
t0105b.innerHTML = "&nbsp;";
t0105c.innerHTML = "&nbsp;";
t0105d.innerHTML = "&nbsp;";
t0105e.innerHTML = "&nbsp;";
t0105f.innerHTML = "&nbsp;";
t0105g.innerHTML = "&nbsp;";
t0105h.innerHTML = "&nbsp;";

t0115.innerHTML = "&nbsp;";
t0115a.innerHTML = "&nbsp;";
t0115b.innerHTML = "&nbsp;";
t0115c.innerHTML = "&nbsp;";
t0115d.innerHTML = "&nbsp;";
t0115e.innerHTML = "&nbsp;";
t0115f.innerHTML = "&nbsp;";
t0115g.innerHTML = "&nbsp;";
t0115h.innerHTML = "&nbsp;";

t0125.innerHTML = "&nbsp;";
t0125a.innerHTML = "&nbsp;";
t0125b.innerHTML = "&nbsp;";
t0125c.innerHTML = "&nbsp;";
t0125d.innerHTML = "&nbsp;";
t0125e.innerHTML = "&nbsp;";
t0125f.innerHTML = "&nbsp;";
t0125g.innerHTML = "&nbsp;";
t0125h.innerHTML = "&nbsp;";

}
else
{
if( rootinflection == "" )
rootinflectiontext = " ";

if( rootinflection == "n" )
rootinflectiontext = " ";

if( rootinflection == "s" )
rootinflectiontext = "# ";

if( rootinflection == "b" )
rootinflectiontext = "b ";

if( rootinflection == "f" )
rootinflectiontext = "bb ";

if( rootinflection == "g" )
rootinflectiontext = "bbb ";

if( rootinflection == "x" )
rootinflectiontext = "x ";

if( rootinflection == "y" )
rootinflectiontext = "x# ";

t0100.innerHTML = "the default chord root or key note is <b><font color=blue>" + note0 + chordnoteinflectiontext0 + " [" + octave0 + "]</font></b> - the selected root note or key note is <b><font color=blue>" + rootnote + rootinflectiontext + " [" + rootnoteoctave + "] </font></b>" ;

if( chordchoice.value == "0" )
{
t0101.innerHTML = "select chord type";
t0102.innerHTML = "&nbsp;";
t0103.innerHTML = "&nbsp;";
t0104.innerHTML = "&nbsp;";
t0105.innerHTML = "&nbsp;";
t0105a.innerHTML = "&nbsp;";
t0105b.innerHTML = "&nbsp;";
t0105c.innerHTML = "&nbsp;";
t0105d.innerHTML = "&nbsp;";
t0105e.innerHTML = "&nbsp;";
t0105f.innerHTML = "&nbsp;";
t0105g.innerHTML = "&nbsp;";
t0105h.innerHTML = "&nbsp;";

t0115.innerHTML = "&nbsp;";
t0115a.innerHTML = "&nbsp;";
t0115b.innerHTML = "&nbsp;";
t0115c.innerHTML = "&nbsp;";
t0115d.innerHTML = "&nbsp;";
t0115e.innerHTML = "&nbsp;";
t0115f.innerHTML = "&nbsp;";
t0115g.innerHTML = "&nbsp;";
t0115h.innerHTML = "&nbsp;";

t0125.innerHTML = "&nbsp;";
t0125a.innerHTML = "&nbsp;";
t0125b.innerHTML = "&nbsp;";
t0125c.innerHTML = "&nbsp;";
t0125d.innerHTML = "&nbsp;";
t0125e.innerHTML = "&nbsp;";
t0125f.innerHTML = "&nbsp;";
t0125g.innerHTML = "&nbsp;";
t0125h.innerHTML = "&nbsp;";

}
else
{
var chordtext_array = (chordtext).split(':');
var symbolstringlength = (chordtext_array[1]).length;

t0101.innerHTML = "the selected chord is #<font color=blue><b>" + chordoption + "</b></font> : <font color=blue><b>" + (chordtext_array[0]) + "</b></font>";

t0102.innerHTML = "the chord consists of :<font color=blue><b> " + (chordchoice_array[1]) + "</b></font>";

t0103.innerHTML = "appropriate chord symbol(s) :<font color=blue><b>" + (chordtext_array[1]) + "</b></font>";

t0104.innerHTML = "the chord is formed of <b><font color=blue>" + noofchordnotes + "</font></b> notes";

t0105.innerHTML = "the notes of the chord in ascending order, and with <font color=blue><b> " + note0 + chordnoteinflectiontext0 + " [" + octave0 + "] </b></font> as root or key note, are : ";

if( notea == "")
{
t0105a.innerHTML = " ";
}
else
{
t0105a.innerHTML = notea + chordnoteinflectiontexta + "[" + octavea + "]";
}

if( noteb == "")
{
t0105b.innerHTML = " ";
}
else
{
t0105b.innerHTML = noteb + chordnoteinflectiontextb + "[" + octaveb + "]";
}

if( notec == "")
{
t0105c.innerHTML = " ";
}
else
{
t0105c.innerHTML = notec + chordnoteinflectiontextc + "[" + octavec + "]";
}

if( noted == "")
{
t0105d.innerHTML = " ";
}
else
{   
t0105d.innerHTML = noted + chordnoteinflectiontextd + "[" + octaved + "]";
}

if( notee == "")
{
t0105e.innerHTML = " ";
}
else
{
t0105e.innerHTML = notee + chordnoteinflectiontexte + "[" + octavee + "]";
}

if( notef == "")
{
t0105f.innerHTML = " ";
}
else
{
t0105f.innerHTML = notef + chordnoteinflectiontextf + "[" + octavef + "]";
}

if( noteg == "")
{
t0105g.innerHTML = " ";
}
else
{
t0105g.innerHTML = noteg + chordnoteinflectiontextg + "[" + octaveg + "]";
}

if( noteh == "")
{
t0105h.innerHTML = " ";
}
else
{
t0105h.innerHTML = noteh + chordnoteinflectiontexth + "[" + octaveh + "]";
}

// the interval sequence of chord notes (from root position)

t0115.innerHTML = "chord intervals, each expressed in semitones (half-steps) relative to <b><font color=blue>" + note0 + chordnoteinflectiontext0 + " [" + octave0 + "]</font></b>, are : ";

var letterrow = "C1D1E1F1G1A1B1C2D2E2F2G2A2B2C3D3E3F3G3A3B3C4D4E4F4G4A4B4C5D5E5F5G5A5B5C6";
var inflectionrow = "gfbnsxy";

var note0octave = note0 + octave0;
var noteaoctave = notea + octavea;
var noteboctave = noteb + octaveb;
var notecoctave = notec + octavec;
var notedoctave = noted + octaved;
var noteeoctave = notee + octavee;
var notefoctave = notef + octavef;
var notegoctave = noteg + octaveg;
var notehoctave = noteh + octaveh;           
    
var note0octaveposition = letterrow.indexOf(note0octave);
var inflection0position = inflectionrow.indexOf(inflection0); 
       
var noteaoctaveposition = letterrow.indexOf(noteaoctave);
var inflectionaposition = inflectionrow.indexOf(inflectiona);

var noteboctaveposition = letterrow.indexOf(noteboctave);
var inflectionbposition = inflectionrow.indexOf(inflectionb);  

var notecoctaveposition = letterrow.indexOf(notecoctave);
var inflectioncposition = inflectionrow.indexOf(inflectionc);

var notedoctaveposition = letterrow.indexOf(notedoctave);
var inflectiondposition = inflectionrow.indexOf(inflectiond);

var noteeoctaveposition = letterrow.indexOf(noteeoctave);
var inflectioneposition = inflectionrow.indexOf(inflectione); 

var notefoctaveposition = letterrow.indexOf(notefoctave);
var inflectionfposition = inflectionrow.indexOf(inflectionf); 

var notegoctaveposition = letterrow.indexOf(notegoctave);
var inflectiongposition = inflectionrow.indexOf(inflectiong); 

var notehoctaveposition = letterrow.indexOf(notehoctave);
var inflectionhposition = inflectionrow.indexOf(inflectionh); 
 
if( notea == "" ) 
{
t0115a.innerHTML = "&nbsp;";
}
else
{
var notedifferencea0 = ( ( noteaoctaveposition - note0octaveposition ) / 2 );

var inflectiondifferencea0 = ( inflectionaposition - inflection0position );

var shiftscalenoteindexa0 = (notedifferencea0 * 2) - parseInt(notedifferencea0 / 3) + parseInt(notedifferencea0 / 6) - parseInt(notedifferencea0 / 7) + parseInt(notedifferencea0 / 9) - parseInt(notedifferencea0 / 10) + parseInt(notedifferencea0 / 15) - parseInt(notedifferencea0 / 17) - parseInt(notedifferencea0 / 18) + parseInt(inflectiondifferencea0);

t0115a.innerHTML = shiftscalenoteindexa0;
}

if( noteb == "" ) 
{
t0115b.innerHTML = "&nbsp;";
}
else
{
var notedifferenceb0 = ( ( noteboctaveposition - note0octaveposition ) / 2 );

var inflectiondifferenceb0 = ( inflectionbposition - inflection0position );

var shiftscalenoteindexb0 = (notedifferenceb0 * 2) - parseInt(notedifferenceb0 / 3) + parseInt(notedifferenceb0 / 6) - parseInt(notedifferenceb0 / 7) + parseInt(notedifferenceb0 / 9) - parseInt(notedifferenceb0 / 10) + parseInt(notedifferenceb0 / 15) - parseInt(notedifferenceb0 / 17) - parseInt(notedifferenceb0 / 18) + parseInt(inflectiondifferenceb0);

t0115b.innerHTML = shiftscalenoteindexb0;

}

if( notec == "" ) 
{
t0115c.innerHTML = "&nbsp;";
}
else
{
var notedifferencec0 = ( ( notecoctaveposition - note0octaveposition ) / 2 );

var inflectiondifferencec0 = ( inflectioncposition - inflection0position );

var shiftscalenoteindexc0 = (notedifferencec0 * 2) - parseInt(notedifferencec0 / 3) + parseInt(notedifferencec0 / 6) - parseInt(notedifferencec0 / 7) + parseInt(notedifferencec0 / 9) - parseInt(notedifferencec0 / 10) + parseInt(notedifferencec0 / 15) - parseInt(notedifferencec0 / 17) - parseInt(notedifferencec0 / 18) + parseInt(inflectiondifferencec0);

t0115c.innerHTML = shiftscalenoteindexc0;
}

if( noted == "" ) 
{
t0115d.innerHTML = "&nbsp;";
}
else
{
var notedifferenced0 = ( ( notedoctaveposition - note0octaveposition ) / 2 );

var inflectiondifferenced0 = ( inflectiondposition - inflection0position );

var shiftscalenoteindexd0 = (notedifferenced0 * 2) - parseInt(notedifferenced0 / 3) +  parseInt(notedifferenced0 / 6) -  parseInt(notedifferenced0 / 7) +   parseInt(notedifferenced0 / 9) -  parseInt(notedifferenced0 / 10)  + parseInt(notedifferenced0 / 15) - parseInt(notedifferenced0 / 17) - parseInt(notedifferenced0 / 18) + parseInt(inflectiondifferenced0);

t0115d.innerHTML = shiftscalenoteindexd0;

}   

if( notee == "" ) 
{
t0115e.innerHTML = "&nbsp;";
}
else
{
var notedifferencee0 = ( ( noteeoctaveposition - note0octaveposition ) / 2 );

var inflectiondifferencee0 = ( inflectioneposition - inflection0position );

var shiftscalenoteindexe0 = (notedifferencee0 * 2) - parseInt(notedifferencee0 / 3) + parseInt(notedifferencee0 / 6) - parseInt(notedifferencee0 / 7) + parseInt(notedifferencee0 / 9) - parseInt(notedifferencee0 / 10) + parseInt(notedifferencee0 / 15) - parseInt(notedifferencee0 / 17) - parseInt(notedifferencee0 / 18) + parseInt(inflectiondifferencee0);

t0115e.innerHTML = shiftscalenoteindexe0;

}

if( notef == "" ) 
{
t0115f.innerHTML = "&nbsp;";
}
else
{
var notedifferencef0 = ( ( notefoctaveposition - note0octaveposition ) / 2 );

var inflectiondifferencef0 = ( inflectionfposition - inflection0position );

var shiftscalenoteindexf0 = (notedifferencef0 * 2) - parseInt(notedifferencef0 / 3) + parseInt(notedifferencef0 / 6) - parseInt(notedifferencef0 / 7) + parseInt(notedifferencef0 / 9) - parseInt(notedifferencef0 / 10) + parseInt(notedifferencef0 / 15) - parseInt(notedifferencef0 / 17) - parseInt(notedifferencef0 / 18) + parseInt(inflectiondifferencef0);

t0115f.innerHTML = shiftscalenoteindexf0;

}

if( noteg == "" ) 
{
t0115g.innerHTML = "&nbsp;";
}
else
{
var notedifferenceg0 = ( ( notegoctaveposition - note0octaveposition ) / 2 );

var inflectiondifferenceg0 = ( inflectiongposition - inflection0position );

var shiftscalenoteindexg0 = (notedifferenceg0 * 2) - parseInt(notedifferenceg0 / 3) + parseInt(notedifferenceg0 / 6) - parseInt(notedifferenceg0 / 7) + parseInt(notedifferenceg0 / 9) - parseInt(notedifferenceg0 / 10) + parseInt(notedifferenceg0 / 15) - parseInt( notedifferenceg0 / 17) - parseInt( notedifferenceg0 / 18) + parseInt(inflectiondifferenceg0);

t0115g.innerHTML = shiftscalenoteindexg0;

}

if( noteh == "" ) 
{
t0115h.innerHTML = "&nbsp;";

}
else
{
var notedifferenceh0 = ( ( notehoctaveposition - note0octaveposition ) / 2 );
var inflectiondifferenceh0 = ( inflectionhposition - inflection0position );

var shiftscalenoteindexh0 = (notedifferenceh0 * 2) - parseInt(notedifferenceh0 / 3) + parseInt(notedifferenceh0 / 6) - parseInt(notedifferenceh0 / 7) + parseInt(notedifferenceh0 / 9) -  parseInt(notedifferenceh0 / 10)  + parseInt(notedifferenceh0 / 15) - parseInt( notedifferenceh0 / 17) - parseInt( notedifferenceh0 / 18) + parseInt(inflectiondifferenceh0);

t0115h.innerHTML = shiftscalenoteindexh0;

}

t0125.innerHTML = "the notes of the chord, in ascending order, and with <b><font color=blue> " + rootnote + rootinflectiontext + " [" + rootnoteoctave + "]</font></b> as root or key note, are : <b><font color=blue>";

var rootnoteoctave = rootnote + "1";

var rootoctave = "1";

var rootnoteoctaveposition = letterrow.indexOf(rootnoteoctave);

var notedifferenceroot = rootnoteoctaveposition / 2;

var rootinflectionposition = inflectionrow.indexOf(rootinflection);

// chromatic shift of new key note

var shiftrootnoteindex = (notedifferenceroot * 2) - parseInt(notedifferenceroot / 3) + parseInt(notedifferenceroot / 6) - parseInt(notedifferenceroot / 7) + parseInt(notedifferenceroot / 9) - parseInt(notedifferenceroot / 10) + parseInt(notedifferenceroot / 15) - parseInt( notedifferenceroot / 17) - parseInt( notedifferenceroot / 18) + parseInt(rootinflectionposition) - 3;

if( notea == "")
{
t0125a.innerHTML = "&nbsp;";
}
else
{
var shiftindexnewnotea = parseInt( shiftrootnoteindex ) + parseInt( shiftscalenoteindexa0 );

var newnoteoctaveaposition = parseInt(rootnoteoctaveposition) + parseInt(noteaoctaveposition);

var newnoteoctavea = letterrow.substring(newnoteoctaveaposition,( newnoteoctaveaposition + 2 ));

var newnotea = newnoteoctavea.substring(0,1);

var newoctavea = newnoteoctavea.substring(1,2);

var newnoteoctaveaindex = parseInt(newnoteoctaveaposition) - parseInt(newnoteoctaveaposition / 6) + parseInt(newnoteoctaveaposition / 12) - parseInt(newnoteoctaveaposition / 14) +   parseInt(newnoteoctaveaposition / 18) - parseInt(newnoteoctaveaposition / 20) + parseInt(newnoteoctaveaposition / 30) - parseInt(newnoteoctaveaposition / 34) - parseInt(newnoteoctaveaposition / 36) + parseInt(newnoteoctaveaposition / 40) + parseInt(newnoteoctaveaposition / 42) - parseInt(newnoteoctaveaposition / 48);

var inflectionerrora = parseInt(shiftindexnewnotea) - parseInt(newnoteoctaveaindex) + 3;

var newinflectiona = inflectionrow.substring(inflectionerrora,( inflectionerrora + 1 ));

var newinflectionatext = "";

if( newinflectiona == "" )
newinflectionatext = " ";

if( newinflectiona == "n" )
newinflectionatext = " ";

if( newinflectiona == "s" )
newinflectionatext = "# ";

if( newinflectiona == "b" )
newinflectionatext = "b ";

if( newinflectiona == "f" )
newinflectionatext = "bb ";

if( newinflectiona == "g" )
newinflectionatext = "bbb ";

if( newinflectiona == "x" )
newinflectionatext = "x ";

if( newinflectiona == "y" )   
newinflectionatext = "x# ";


t0125a.innerHTML =  newnotea + newinflectionatext + " [" + newoctavea +"]";
}

if( noteb == "")
{
t0125b.innerHTML = "&nbsp;";
}
else
{
var shiftindexnewnoteb = parseInt( shiftrootnoteindex ) + parseInt( shiftscalenoteindexb0 );

var newnoteoctavebposition = parseInt(rootnoteoctaveposition) + parseInt(noteboctaveposition);

var newnoteoctaveb = letterrow.substring(newnoteoctavebposition,( newnoteoctavebposition + 2 ));

var newnoteb = newnoteoctaveb.substring(0,1);

var newoctaveb = newnoteoctaveb.substring(1,2);

var newnoteoctavebindex = parseInt(newnoteoctavebposition) - parseInt(newnoteoctavebposition / 6) + parseInt(newnoteoctavebposition / 12) - parseInt(newnoteoctavebposition / 14) + parseInt(newnoteoctavebposition / 18) - parseInt(newnoteoctavebposition / 20) + parseInt(newnoteoctavebposition / 30) - parseInt(newnoteoctavebposition / 34) - parseInt(newnoteoctavebposition / 36) + parseInt(newnoteoctavebposition / 40) + parseInt(newnoteoctavebposition / 42) - parseInt(newnoteoctavebposition / 48);

var inflectionerrorb = parseInt(shiftindexnewnoteb) - parseInt(newnoteoctavebindex) + 3;

var newinflectionb = inflectionrow.substring(inflectionerrorb,( inflectionerrorb + 1 ));

var newinflectionbtext = "";

if( newinflectionb == "" )
newinflectionbtext = " ";

if( newinflectionb == "n" )
newinflectionbtext = " ";

if( newinflectionb == "s" )
newinflectionbtext = "# ";

if( newinflectionb == "b" )
newinflectionbtext = "b ";

if( newinflectionb == "f" )
newinflectionbtext = "bb ";

if( newinflectionb == "g" )
newinflectionbtext = "bbb ";

if( newinflectionb == "x" )
newinflectionbtext = "x ";

if( newinflectionb == "y" )   
newinflectionbtext = "x# ";


t0125b.innerHTML =  newnoteb + newinflectionbtext + " [" + newoctaveb +"]";
}

if( notec == "")
{
t0125c.innerHTML = "&nbsp;";
}
else
{
var shiftindexnewnotec = parseInt( shiftrootnoteindex ) + parseInt( shiftscalenoteindexc0 );

var newnoteoctavecposition = parseInt( rootnoteoctaveposition ) + parseInt( notecoctaveposition );

var newnoteoctavec = letterrow.substring(newnoteoctavecposition,( newnoteoctavecposition + 2 ));

var newnotec = newnoteoctavec.substring(0,1);

var newoctavec = newnoteoctavec.substring(1,2);

var newnoteoctavecindex = parseInt(newnoteoctavecposition) - parseInt(newnoteoctavecposition / 6) + parseInt(newnoteoctavecposition / 12) - parseInt(newnoteoctavecposition / 14) + parseInt(newnoteoctavecposition / 18) - parseInt(newnoteoctavecposition / 20) + parseInt(newnoteoctavecposition / 30) - parseInt(newnoteoctavecposition / 34) - parseInt(newnoteoctavecposition / 36) + parseInt(newnoteoctavecposition / 40) + parseInt(newnoteoctavecposition / 42) - parseInt(newnoteoctavecposition / 48);

var inflectionerrorc = parseInt(shiftindexnewnotec) - parseInt(newnoteoctavecindex) + 3;

var newinflectionc = inflectionrow.substring(inflectionerrorc,( inflectionerrorc + 1 ));

var newinflectionctext = "";

if( newinflectionc == "" )
newinflectionctext = " ";

if( newinflectionc == "n" )
newinflectionctext = " ";

if( newinflectionc == "s" )
newinflectionctext = "# ";

if( newinflectionc == "b" )
newinflectionctext = "b ";

if( newinflectionc == "f" )
newinflectionctext = "bb ";

if( newinflectionc == "g" )
newinflectionctext = "bbb ";

if( newinflectionc == "x" )
newinflectionctext = "x ";

if( newinflectionc == "y" )   
newinflectionctext = "x# ";


t0125c.innerHTML =  newnotec + newinflectionctext + " [" + newoctavec +"]";
}

if( noted == "")
{
t0125d.innerHTML = "&nbsp;";
}
else
{
var shiftindexnewnoted = parseInt( shiftrootnoteindex ) + parseInt( shiftscalenoteindexd0 );

var newnoteoctavedposition = parseInt(rootnoteoctaveposition) + parseInt(notedoctaveposition);

var newnoteoctaved = letterrow.substring(newnoteoctavedposition,( newnoteoctavedposition + 2 ));

var newnoted = newnoteoctaved.substring(0,1);

var newoctaved = newnoteoctaved.substring(1,2);

var newnoteoctavedindex = parseInt(newnoteoctavedposition) - parseInt(newnoteoctavedposition / 6) + parseInt(newnoteoctavedposition / 12) - parseInt(newnoteoctavedposition / 14) + parseInt(newnoteoctavedposition / 18) - parseInt(newnoteoctavedposition / 20) + parseInt(newnoteoctavedposition / 30) - parseInt(newnoteoctavedposition / 34) - parseInt(newnoteoctavedposition / 36) + parseInt(newnoteoctavedposition / 40) + parseInt(newnoteoctavedposition / 42) - parseInt(newnoteoctavedposition / 48);

var inflectionerrord = parseInt(shiftindexnewnoted) - parseInt(newnoteoctavedindex) + 3;

var newinflectiond = inflectionrow.substring(inflectionerrord,( inflectionerrord + 1 ));

var newinflectiondtext = "";

if( newinflectiond == "" )
newinflectiondtext = " ";

if( newinflectiond == "n" )
newinflectiondtext = " ";

if( newinflectiond == "s" )
newinflectiondtext = "# ";

if( newinflectiond == "b" )
newinflectiondtext = "b ";

if( newinflectiond == "f" )
newinflectiondtext = "bb ";

if( newinflectiond == "g" )
newinflectiondtext = "bbb ";

if( newinflectiond == "x" )
newinflectiondtext = "x ";

if( newinflectiond == "y" )   
newinflectiondtext = "x# ";


t0125d.innerHTML =  newnoted + newinflectiondtext + " [" + newoctaved +"]";
}

if( notee == "")
{
t0125e.innerHTML = "&nbsp;";
}
else
{
var shiftindexnewnotee = parseInt( shiftrootnoteindex ) + parseInt( shiftscalenoteindexe0 );

var newnoteoctaveeposition = parseInt(rootnoteoctaveposition) + parseInt(noteeoctaveposition);

var newnoteoctavee = letterrow.substring(newnoteoctaveeposition,( newnoteoctaveeposition + 2 ));

var newnotee = newnoteoctavee.substring(0,1);

var newoctavee = newnoteoctavee.substring(1,2);

var newnoteoctaveeindex = parseInt(newnoteoctaveeposition) - parseInt(newnoteoctaveeposition / 6) + parseInt(newnoteoctaveeposition / 12) - parseInt(newnoteoctaveeposition / 14) + parseInt(newnoteoctaveeposition / 18) - parseInt(newnoteoctaveeposition / 20) + parseInt(newnoteoctaveeposition / 30) - parseInt(newnoteoctaveeposition / 34) - parseInt(newnoteoctaveeposition / 36) + parseInt(newnoteoctaveeposition / 40) + parseInt(newnoteoctaveeposition / 42) - parseInt(newnoteoctaveeposition / 48);

var inflectionerrore = parseInt(shiftindexnewnotee) - parseInt(newnoteoctaveeindex) + 3;

var newinflectione = inflectionrow.substring(inflectionerrore,( inflectionerrore + 1 ));

var newinflectionetext = "";

if( newinflectione == "" )
newinflectionetext = " ";

if( newinflectione == "n" )
newinflectionetext = " ";

if( newinflectione == "s" )
newinflectionetext = "# ";

if( newinflectione == "b" )
newinflectionetext = "b ";

if( newinflectione == "f" )
newinflectionetext = "bb ";

if( newinflectione == "g" )
newinflectionetext = "bbb ";

if( newinflectione == "x" )
newinflectionetext = "x ";

if( newinflectione == "y" )   
newinflectionetext = "x# ";

t0125e.innerHTML =  newnotee + newinflectionetext + " [" + newoctavee +"]";
}

if( notef == "")
{
t0125f.innerHTML = "&nbsp;";
}
else
{
var shiftindexnewnotef = parseInt( shiftrootnoteindex ) + parseInt( shiftscalenoteindexf0 );

var newnoteoctavefposition = parseInt(rootnoteoctaveposition) + parseInt(notefoctaveposition);

var newnoteoctavef = letterrow.substring(newnoteoctavefposition,( newnoteoctavefposition + 2 ));

var newnotef = newnoteoctavef.substring(0,1);

var newoctavef = newnoteoctavef.substring(1,2);

var newnoteoctavefindex = parseInt(newnoteoctavefposition) - parseInt(newnoteoctavefposition / 6) + parseInt(newnoteoctavefposition / 12) - parseInt(newnoteoctavefposition / 14) + parseInt(newnoteoctavefposition / 18) - parseInt(newnoteoctavefposition / 20) + parseInt(newnoteoctavefposition / 30) - parseInt(newnoteoctavefposition / 34) - parseInt(newnoteoctavefposition / 36) + parseInt(newnoteoctavefposition / 40) + parseInt(newnoteoctavefposition / 42) - parseInt(newnoteoctavefposition / 48);

var inflectionerrorf = parseInt(shiftindexnewnotef) - parseInt(newnoteoctavefindex) + 3;

var newinflectionf = inflectionrow.substring(inflectionerrorf,( inflectionerrorf + 1 ));

var newinflectionftext = "";

if( newinflectionf == "" )
newinflectionftext = " ";

if( newinflectionf == "n" )
newinflectionftext = " ";

if( newinflectionf == "s" )
newinflectionftext = "# ";

if( newinflectionf == "b" )
newinflectionftext = "b ";

if( newinflectionf == "f" )
newinflectionftext = "bb ";

if( newinflectionf == "g" )
newinflectionftext = "bbb ";

if( newinflectionf == "x" )
newinflectionftext = "x ";

if( newinflectionf == "y" )   
newinflectionftext = "x# ";


t0125f.innerHTML =  newnotef + newinflectionftext + " [" + newoctavef +"]";
}

if( noteg == "")
{
t0125g.innerHTML = "&nbsp;";
}
else
{
var shiftindexnewnoteg = parseInt( shiftrootnoteindex ) + parseInt( shiftscalenoteindexg0 );

var newnoteoctavegposition = parseInt(rootnoteoctaveposition) + parseInt(notegoctaveposition);

var newnoteoctaveg = letterrow.substring(newnoteoctavegposition,( newnoteoctavegposition + 2 ));

var newnoteg = newnoteoctaveg.substring(0,1);

var newoctaveg = newnoteoctaveg.substring(1,2);

var newnoteoctavegindex = parseInt(newnoteoctavegposition) - parseInt(newnoteoctavegposition / 6) + parseInt(newnoteoctavegposition / 12) - parseInt(newnoteoctavegposition / 14) + parseInt(newnoteoctavegposition / 18) - parseInt(newnoteoctavegposition / 20) + parseInt(newnoteoctavegposition / 30) - parseInt(newnoteoctavegposition / 34) - parseInt(newnoteoctavegposition / 36) + parseInt(newnoteoctavegposition / 40) + parseInt(newnoteoctavegposition / 42) - parseInt(newnoteoctavegposition / 48);

var inflectionerrorg = parseInt(shiftindexnewnoteg) - parseInt(newnoteoctavegindex) + 3;

var newinflectiong = inflectionrow.substring(inflectionerrorg,( inflectionerrorg + 1 ));

var newinflectiongtext = "";

if( newinflectiong == "" )
newinflectiongtext = " ";

if( newinflectiong == "n" )
newinflectiongtext = " ";

if( newinflectiong == "s" )
newinflectiongtext = "# ";

if( newinflectiong == "b" )
newinflectiongtext = "b ";

if( newinflectiong == "f" )
newinflectiongtext = "bb ";

if( newinflectiong == "g" )
newinflectiongtext = "bbb ";

if( newinflectiong == "x" )
newinflectiongtext = "x ";

if( newinflectiong == "y" )   
newinflectiongtext = "x# ";


t0125g.innerHTML =  newnoteg + newinflectiongtext + " [" + newoctaveg +"]";
}

if( noteh == "")
{
t0125h.innerHTML = "&nbsp;";
}
else
{
var shiftindexnewnoteh = parseInt( shiftrootnoteindex ) + parseInt( shiftscalenoteindexh0 );

var newnoteoctavehposition = parseInt(rootnoteoctaveposition) + parseInt(notehoctaveposition);

var newnoteoctaveh = letterrow.substring(newnoteoctavehposition,( newnoteoctavehposition + 2 ));

var newnoteh = newnoteoctaveh.substring(0,1);

var newoctaveh = newnoteoctaveh.substring(1,2);

var newnoteoctavehindex = parseInt(newnoteoctavehposition) - parseInt(newnoteoctavehposition / 6) + parseInt(newnoteoctavehposition / 12) - parseInt(newnoteoctavehposition / 14) + parseInt(newnoteoctavehposition / 18) - parseInt(newnoteoctavehposition / 20) + parseInt(newnoteoctavehposition / 30) - parseInt(newnoteoctavehposition / 34) - parseInt(newnoteoctavehposition / 36) + parseInt(newnoteoctavehposition / 40) + parseInt(newnoteoctavehposition / 42) - parseInt(newnoteoctavehposition / 48);

var inflectionerrorh = parseInt(shiftindexnewnoteh) - parseInt(newnoteoctavehindex) + 3;

var newinflectionh = inflectionrow.substring(inflectionerrorh,( inflectionerrorh + 1 ));

var newinflectionhtext = "";

if( newinflectionh == "" )
newinflectionhtext = " ";

if( newinflectionh == "n" )
newinflectionhtext = " ";

if( newinflectionh == "s" )
newinflectionhtext = "# ";

if( newinflectionh == "b" )
newinflectionhtext = "b ";

if( newinflectionh == "f" )
newinflectionhtext = "bb ";

if( newinflectionh == "g" )
newinflectionhtext = "bbb ";

if( newinflectionh == "x" )
newinflectionhtext = "x ";

if( newinflectionh == "y" )   
newinflectionhtext = "x# ";


t0125h.innerHTML =  newnoteh + newinflectionhtext + " [" + newoctaveh +"]";
}

}

}

}

