Tutorial for composers, how to build duration on the same form of musical note

Add-on lecjo home page

Audio example 9. works only with firefox addon lecjo.

//octave 0 de FA m:[0] a SI m:[6]
//octave 1 de DO m:[7] a SI m:[18]
//octave 2 de DO m:[19] a SI m:[30]
//octave 2 de DO m:[31] a SI m:[42]
//octave 3 de DO m:[43] a SI m:[54]
//octave 4 de DO m:[55] a SI m:[66]

var m={0:[],1:[],2:[],3:[],4:[],5:[],6:[],7:[],8:[],9:[],10:[],11:[],12:[],13:[],14:[],15:[],16:[],17:[]
,18:[],19:[],20:[],21:[],22:[],23:[],24:[],25:[],26:[],27:[],28:[],29:[],30:[],31:[],32:[]
,33:[],34:[],35:[],36:[],37:[],38:[],39:[],40:[],41:[],42:[],43:[],44:[],45:[],46:[],47:[]
,48:[],49:[],50:[],51:[],52:[],53:[],54:[],55:[],56:[],57:[],58:[],59:[],60:[],61:[],62:[]
,63:[],64:[],65:[],66:[]};
var val1 = [1, 220, 169, 1, 5, 1, 130, 0, 0, 30,
169, 2, 10, 1, 129, 0, 0, 0, 40, 159,
0, 0, -1, 129, 0, 0, 0, 130, 159, 0,
0, 0, 0, 0, 0, 0, 160, 80, 0, 0,
0, 0, 0, 0, 0, 90, 60, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 180, 0, 0, 216];
var val = [253, 238, 225, 212, 200, 189, 179,
169, 159, 150, 142, 134, 126, 119, 113, 106, 100, 95, 89,
84, 80, 75, 71, 67, 63, 60, 56, 53, 50, 47, 45,
42, 40, 38, 35, 33, 32, 30, 28, 27, 25, 24, 22,
21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 12, 11,
10, 10, 9, 9, 8, 8, 7, 7, 6, 6, 6, 5];

//correctif durée de la note
var val5 = [17, 18, 19, 20, 21, 23, 24, 25, 27, 29, 30, 32,
34, 36, 38, 40, 44, 46, 48, 51, 54, 57, 61, 64,
68, 72, 76, 82, 84, 90, 96, 103, 106, 115, 120, 131];

for(var b1= 0; b1 < 67; b1++)
{
for(var b2= 0; b2 < 2; b2++)
{
m[b1][b2]=val1[b2];
}
for(var b3= 3; b3 < 10; b3++)
{
m[b1][b3]=val1[b3];
}
for(var b4= 11; b4 < 75; b4++)
{
m[b1][b4]=val1[b4];
}
m[b1][2]=val[b1];
m[b1][10]= val[b1];
m[b1][71]= val5[b1];
}
m[45][10]=13;//correctif
m[48][10]=11;
m[50][10]=10;
m[52][10]=9;
m[54][10]=8;
m[57][10]=6;

var n={0:[],1:[],2:[],3:[],4:[],5:[],6:[],7:[],8:[],9:[],10:[],11:[],12:[],13:[],14:[],15:[],16:[],17:[]
,18:[],19:[],20:[],21:[],22:[],23:[],24:[],25:[],26:[],27:[],28:[],29:[],30:[],31:[],32:[]
,33:[],34:[],35:[],36:[],37:[],38:[],39:[],40:[],41:[],42:[],43:[],44:[],45:[],46:[],47:[]
,48:[],49:[],50:[],51:[],52:[],53:[],54:[],55:[],56:[],57:[],58:[],59:[],60:[],61:[],62:[]
,63:[],64:[],65:[],66:[]};
var val3 = [1, 220, 169, 1, 0, 1, 130, 0, 0, 30,
169, 2, 0, 1, 129, 0, 0, 0, 40, 159,
0, 0, -1, 129, 0, 0, 0, 130, 159, 0,
0, 0, 0, 0, 0, 0, 160, 80, 0, 0,
0, 0, 0, 0, 0, 90, 60, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 180, 0, 0, 216];

for(var b1= 0; b1 < 67; b1++)
{
for(var b2= 0; b2 < 2; b2++)
{
n[b1][b2]=val3[b2];
}
for(var b3= 3; b3 < 10; b3++)
{
n[b1][b3]=val3[b3];
}
for(var b4= 11; b4 < 75; b4++)
{
n[b1][b4]=val3[b4];
}
n[b1][2]=val[b1];
n[b1][10]= val[b1];
n[b1][71]= (val5[b1])*0.5;
}
n[45][10]=13;
var don = {
  1: m[0], 2: m[0], 3: m[0], 4: m[0], 5: m[2], 6: m[2], 7: m[0], 8: m[0], 9: m[3], 10: m[0], 11: m[2],
 12: m[3]
 ,13: n[0], 14: n[0], 15: n[0], 16: n[0], 17: n[2], 18: n[2], 19: n[0], 20: n[0], 21: n[3], 22: n[0], 23: n[2], 24: n[3]
 ,25: n[5], 26: n[5], 27: n[5], 28: n[5], 29: n[7], 30: n[7], 31: n[5], 32: n[5], 33: n[8], 34: n[5], 35: m[7], 36: m[8]
 ,37: m[5], 38: m[5], 39: m[5], 40: m[5], 41: m[7], 42: m[7], 43: m[5], 44: m[5], 45: m[8], 46: m[5], 47: m[7], 48: m[8]
 ,49: n[0], 50: m[25], 51: m[27], 52: m[28], 53: m[28], 54: m[28], 55: m[28], 56: m[28], 57: m[28], 58: m[28], 59: m[28], 60: m[28]
 ,61: n[0], 62: m[32], 63: m[32], 64: m[32], 65: m[32], 66: m[32], 67: m[32], 68: m[32], 69: m[32], 70: m[32], 71: m[12], 72: m[12]
 ,73: n[0], 74: m[32], 75: m[32], 76: m[32], 77: m[32], 78: m[32], 79: m[32], 80: m[32], 81: m[32], 82: m[32], 83: m[32], 84: m[32]
 ,85: n[0], 86: m[32], 87: m[32], 88: m[32], 89: m[32], 90: m[32], 91: m[32], 92: m[32], 93: m[32], 94: m[32], 95: m[32], 96: m[32]
 ,97: n[37], 98: m[37], 99: m[37], 100: m[37], 101: m[39], 102: n[39], 103: n[37], 104: n[37], 105: n[40], 106: n[37], 107: n[39], 108: n[40]
 ,109: m[32], 110: m[25], 111: m[25], 112: m[25], 113: m[27], 114: m[27], 115: m[25], 116: m[25], 117: m[28], 118: m[27], 119: m[25], 120: n[23]
 ,121: n[0], 122: n[20], 123: n[20], 124: n[20], 125: n[22], 126: n[22], 127: n[20], 128: n[20], 129: n[23], 130: n[22], 131: n[20], 132: n[23]
 ,133: n[0], 134: n[20], 135: n[20], 136: n[20], 137: n[22], 138: n[22], 139: n[20], 140: n[20], 141: n[23], 142: n[22], 143: n[20], 144: n[23]
 ,145: n[0], 146: n[20], 147: n[20], 148: n[20], 149: n[22], 150: n[22], 151: n[20], 152: n[20], 153: n[23], 154: n[22], 155: n[20], 156: n[23]
 ,157: n[0], 158: n[22], 159: n[20], 160: n[23], 161: n[20], 162: n[10], 163: n[20], 164: n[22], 165: n[20], 166: n[23], 167: n[20], 168: n[10]
 ,169: m[60], 170: m[60], 171: m[60], 172: m[60], 173: m[62], 174: m[62], 175: m[60], 176: m[60], 177: m[63], 178: m[60], 179: m[62], 180: m[63]
 ,181: n[0], 182: m[32], 183: m[33], 184: n[33], 185: n[20], 186: n[22], 187: n[23], 188: n[20], 189: n[22], 190: n[23], 191: n[20], 192: n[23]
 ,193: n[0], 194: m[32], 195: m[33], 196: n[33], 197: n[20], 198: n[22], 199: n[23], 200: n[20], 201: n[22], 202: n[23], 203: n[20], 204: n[23]
 ,205: n[0], 206: m[32], 207: m[30], 208: m[32], 209: m[32], 210: m[32], 211: m[30], 212: m[30], 213: m[33], 214: m[32], 215: m[30], 216: m[33]
}

var total =new Array;
var total1 =new Array;
for(var uiu= 1; uiu < 217; uiu++)
{
total[uiu -1] = "don"+[uiu]+"n";
total1[uiu -1]=don[uiu];
}

for(var ui= 0; ui < 216; ui++)
{
for(var i= 0; i < 75; i++)
{
var nouveauinput;
function ajouteElemen() {
var body   = document.body || document.getElementsByTagName('body')[0],
nouveauinput  =  document.createElement("input");
nouveauinput.setAttribute("type", "number");
nouveauinput.setAttribute("id", total[ui]+i);
nouveauinput.setAttribute("value", total1[ui][i]);
nouveauinput.setAttribute("style", "display: none;");
body.insertBefore(nouveauinput,body.childNodes[0]);
}  
ajouteElemen();
}
}
Download dna9.js