diff --git a/search-index.js b/search-index.js index ffcaeef3..f905c47c 100644 --- a/search-index.js +++ b/search-index.js @@ -1 +1 @@ -antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1",[]],["name/1",[0,0.943]],["text/1",[]],["component/1",[1,0.411]],["title/2-1",[2,58.365]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["title/2-2",[3,46.852]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["title/2-3",[4,33.879,5,46.248]],["name/2-3",[]],["text/2-3",[]],["component/2-3",[]],["title/2-4",[6,42.095]],["name/2-4",[]],["text/2-4",[]],["component/2-4",[]],["title/2-5",[7,30.121,8,18.179]],["name/2-5",[]],["text/2-5",[]],["component/2-5",[]],["title/2-6",[9,46.852]],["name/2-6",[]],["text/2-6",[]],["component/2-6",[]],["title/2-7",[10,32.125]],["name/2-7",[]],["text/2-7",[]],["component/2-7",[]],["title/2-8",[11,31.517]],["name/2-8",[]],["text/2-8",[]],["component/2-8",[]],["title/2-9",[12,35.797]],["name/2-9",[]],["text/2-9",[]],["component/2-9",[]],["title/2-10",[13,38.784]],["name/2-10",[]],["text/2-10",[]],["component/2-10",[]],["title/2-11",[14,58.365]],["name/2-11",[]],["text/2-11",[]],["component/2-11",[]],["title/2-12",[15,18.782,16,19.992]],["name/2-12",[]],["text/2-12",[]],["component/2-12",[]],["title/2",[17,49.533]],["name/2",[17,0.997]],["text/2",[1,1.151,2,1.791,3,1.01,4,1.2,5,1.037,6,1.953,7,0.676,8,1.138,9,2.337,10,2.093,11,1.966,12,1.661,13,2.187,14,0.342,15,1.785,16,1.436,17,0.823,18,0.342,19,1.703,20,2.926,21,0.499,22,0.404,23,0.151,24,0.442,25,0.632,26,0.569,27,0.779,28,0.779,29,0.785,30,0.944,31,1.068,32,0.325,33,0.252,34,2.495,35,1.061,36,0.635,37,0.565,38,0.342,39,0.311,40,0.632,41,0.311,42,0.366,43,0.489,44,0.366,45,0.235,46,2.43,47,0.366,48,0.743,49,1.145,50,0.404,51,0.3,52,2.114,53,0.311,54,0.404,55,0.823,56,0.311,57,0.366,58,0.366,59,0.404,60,0.404,61,0.311,62,0.404,63,0.404,64,0.665,65,0.404,66,0.404,67,2.492,68,0.291,69,1.557,70,0.711,71,0.3,72,0.342,73,0.404,74,0.404,75,1.697,76,0.921,77,0.366,78,0.366,79,0.632,80,0.262,81,0.366,82,0.291,83,0.366,84,0.366,85,0.325,86,0.847,87,0.404,88,0.711,89,1.259,90,0.404,91,1.016,92,1.354,93,3.581,94,0.311,95,1.403,96,1.636,97,0.404,98,1.701,99,1.701,100,1.346,101,0.632,102,0.404,103,0.342,104,0.291,105,0.342,106,0.291,107,0.366,108,0.964,109,0.404,110,0.404,111,0.48,112,0.311,113,0.366,114,0.394,115,0.665,116,0.921,117,1.3,118,0.785,119,0.404,120,0.404,121,0.534,122,0.499,123,0.325,124,0.43,125,0.252,126,0.404,127,0.342,128,0.228,129,1.227,130,0.282,131,0.665,132,0.632,133,0.366,134,0.404,135,0.759,136,0.404,137,0.548,138,0.665,139,0.404,140,0.325,141,0.877,142,1.343,143,0.823,144,0.404,145,0.665,146,0.282,147,1.533,148,0.484,149,1.394,150,1.163,151,0.3,152,0.824,153,0.509,154,1.33,155,0.262,156,0.86,157,0.252,158,0.835,159,0.366,160,0.667,161,0.729,162,0.8,163,0.509,164,0.463,165,1.498,166,0.282,167,0.823,168,0.925,169,0.951,170,1.61,171,0.342,172,0.342,173,0.836,174,0.823,175,0.325,176,0.205,177,0.243,178,0.463,179,0.311,180,0.424,181,0.882,182,0.782,183,0.404,184,0.404,185,2.102,186,0.342,187,0.404,188,0.282,189,0.19,190,0.359,191,0.282,192,0.418,193,0.404,194,0.325,195,0.366,196,0.238,197,0.325,198,0.325,199,0.366,200,0.311,201,0.366,202,0.325,203,0.275,204,0.247,205,0.275,206,0.3,207,0.618,208,0.311,209,0.275,210,1.444,211,0.262,212,0.463,213,1.105,214,0.366,215,0.665,216,0.743,217,0.366,218,0.404,219,0.404,220,0.366,221,0.499,222,0.342,223,0.238,224,0.311,225,0.311,226,0.404,227,0.505,228,0.785,229,0.218,230,1.935,231,0.366,232,0.565,233,1.429,234,0.404,235,0.785,236,0.785,237,0.404,238,0.325,239,1.037,240,0.404,241,0.404,242,0.711,243,0.499,244,0.311,245,0.291,246,0.499,247,0.325,248,0.366,249,0.247,250,0.366,251,0.366,252,0.711,253,0.342,254,0.366,255,0.243,256,0.311,257,0.366,258,0.268,259,0.252,260,0.325,261,0.785,262,0.404,263,0.366,264,0.404,265,0.404,266,0.404,267,0.325,268,0.224,269,0.107,270,0.404,271,0.785,272,0.366,273,0.404,274,0.404,275,0.404,276,0.325,277,0.404,278,0.366,279,0.404,280,0.404,281,0.404,282,0.404,283,0.404,284,0.404,285,0.97,286,0.311,287,2.863,288,0.366,289,2.817,290,0.366,291,3.731,292,1.871,293,0.711,294,0.711,295,0.366,296,0.366,297,0.366,298,0.366,299,0.366,300,0.366,301,0.366,302,0.366,303,0.366,304,0.366,305,0.404,306,0.404,307,0.404,308,0.366,309,0.3,310,0.823,311,0.366,312,0.325,313,0.366,314,0.404,315,0.342,316,0.291,317,0.3,318,0.514,319,0.404,320,0.257,321,0.366,322,0.342,323,0.291,324,0.404,325,0.342,326,0.228,327,0.291,328,0.921,329,0.605,330,0.252,331,0.548,332,0.849,333,0.86,334,0.138,335,0.404,336,1.485,337,1.485,338,0.849,339,0.687,340,0.404,341,0.183,342,0.404,343,0.291,344,0.8,345,0.711,346,0.449,347,0.282,348,0.509,349,0.882,350,0.398,351,0.785,352,0.605,353,1.145,354,0.262,355,0.183,356,0.342,357,0.342,358,0.342,359,0.711,360,0.291,361,0.291,362,0.311,363,0.235,364,0.366,365,0.311,366,0.404,367,0.243,368,0.404,369,0.3,370,0.665,371,0.404,372,0.366,373,0.404,374,0.48,375,0.404,376,0.262,377,0.548,378,0.404,379,0.404,380,0.342,381,0.404,382,0.404,383,0.404,384,0.785,385,0.785,386,0.366,387,0.3,388,0.404,389,0.224,390,0.3,391,0.3,392,0.243,393,0.404,394,0.404,395,0.325,396,0.404,397,0.404,398,0.404,399,0.342,400,0.404,401,0.404,402,0.342,403,0.404,404,0.404,405,0.404,406,0.3,407,0.325,408,0.404,409,0.311,410,0.311,411,0.311,412,0.311,413,0.311,414,0.311,415,0.275,416,0.311,417,0.311,418,0.311,419,0.311,420,0.311]],["component/2",[1,0.411]],["title/3-1",[421,62.413]],["name/3-1",[]],["text/3-1",[]],["component/3-1",[]],["title/3-2",[422,41.06,423,37.915]],["name/3-2",[]],["text/3-2",[]],["component/3-2",[]],["title/3-3",[424,62.413]],["name/3-3",[]],["text/3-3",[]],["component/3-3",[]],["title/3",[1,9.959,19,17.917,20,18.401,35,16.871]],["name/3",[425,0.92]],["text/3",[1,1.164,4,0.83,11,0.572,12,0.65,13,0.704,15,1.168,16,0.49,17,0.899,19,1.691,20,2.509,24,0.704,27,0.85,28,0.85,35,2.588,36,2.544,37,0.899,38,1.059,39,0.963,40,1.005,44,1.133,48,0.811,55,0.899,69,0.726,75,0.832,82,1.648,86,1.573,88,1.133,106,2.282,108,0.811,112,3.028,121,0.85,122,0.794,123,1.005,124,0.684,125,1.976,128,0.704,129,0.726,131,1.942,132,1.844,156,0.595,158,2.616,161,0.613,164,0.738,165,1.427,166,0.873,170,1.376,180,2.475,182,0.658,196,0.738,203,0.85,207,0.675,210,0.75,213,0.764,259,1.427,260,1.005,263,1.133,308,2.077,309,2.919,310,0.899,318,2.544,326,0.704,328,1.005,330,0.778,349,0.963,350,2.618,357,1.059,358,1.059,359,1.133,361,0.899,367,1.376,376,0.811,377,1.601,387,0.928,409,0.963,410,0.963,411,0.963,412,2.446,413,1.766,414,1.766,415,0.85,416,0.963,417,0.963,418,1.766,419,1.766,420,1.766,422,1.005,423,0.928,424,2.077,426,1.25,427,1.4,428,0.83,429,1.25,430,0.658,431,1.133,432,0.811,433,1.133,434,1.25,435,0.963,436,0.928,437,1.25,438,0.963,439,1.25,440,1.487,441,0.963,442,0.963,443,1.25,444,1.25,445,1.059,446,0.963,447,1.25,448,0.963,449,0.794,450,1.059,451,1.25,452,1.25,453,1.005,454,0.83,455,1.25,456,2.077,457,2.292,458,2.292,459,0.963,460,1.25,461,1.059,462,0.963,463,1.25,464,1.942,465,3.161,466,0.85,467,1.25,468,1.005,469,1.005,470,1.059,471,0.738,472,0.84,473,0.899,474,0.85,475,0.764,476,1.737,477,3.1,478,1.702,479,1.059,480,1.873,481,0.963,482,1.702,483,2.383,484,1.005,485,1.648,486,1.005,487,0.873,488,0.963,489,0.963,490,1.25,491,0.873,492,1.487,493,0.928,494,0.963,495,1.059,496,1.059,497,1.601,498,2.752,499,1.005,500,0.83,501,0.963,502,1.005,503,1.005,504,1.005,505,2.016,506,1.005,507,1.005,508,0.85,509,1.4,510,0.928,511,0.764,512,0.899,513,1.905,514,2.357,515,0.811,516,1.648,517,1.521,518,1.25,519,1.133,520,0.794,521,1.25,522,1.059,523,2.292,524,1.25,525,1.059,526,1.059,527,1.25,528,1.25,529,0.928,530,1.25,531,1.133,532,1.25,533,1.25,534,2.292,535,1.133,536,1.133,537,0.963,538,1.133,539,1.25,540,0.714,541,1.133,542,1.059,543,1.25,544,1.25,545,1.25,546,1.059,547,0.899,548,0.963,549,1.25,550,1.25,551,1.25,552,1.25]],["component/3",[1,0.411]],["title/4-1",[325,43.249,553,43.249]],["name/4-1",[]],["text/4-1",[]],["component/4-1",[]],["title/4-2",[19,27.199,142,37.915]],["name/4-2",[]],["text/4-2",[]],["component/4-2",[]],["title/4-3",[389,38.227]],["name/4-3",[]],["text/4-3",[]],["component/4-3",[]],["title/4-4",[553,43.249,554,51.042]],["name/4-4",[]],["text/4-4",[]],["component/4-4",[]],["title/4-5",[310,49.533]],["name/4-5",[]],["text/4-5",[]],["component/4-5",[]],["title/4-6",[180,37.19]],["name/4-6",[]],["text/4-6",[]],["component/4-6",[]],["title/4-7",[36,28.326,161,25.052]],["name/4-7",[]],["text/4-7",[]],["component/4-7",[]],["title/4-8",[15,18.782,555,37.915]],["name/4-8",[]],["text/4-8",[]],["component/4-8",[]],["title/4",[470,43.249,471,30.121]],["name/4",[556,1.386]],["text/4",[1,0.349,4,0.536,8,0.148,9,0.801,10,2.308,11,0.849,12,0.612,15,0.798,16,0.461,19,0.431,20,1.35,21,0.264,27,1.038,28,0.55,30,1.179,31,0.847,33,0.259,35,1.764,36,3.346,41,0.623,43,0.259,55,0.581,56,0.321,64,0.353,68,0.299,69,1.259,72,0.685,75,1.277,80,1.205,86,0.988,89,0.353,91,1.043,92,1.389,93,3.898,95,0.782,96,0.283,98,0.335,99,0.335,100,0.377,103,0.353,104,0.299,105,0.353,106,0.299,112,0.321,114,0.766,116,0.65,117,1.56,122,0.264,123,2.211,128,0.234,129,1.595,132,0.335,135,0.339,137,0.291,141,1.096,142,2.784,143,0.847,145,0.242,147,0.602,148,0.176,149,0.793,150,0.511,151,0.309,152,0.231,154,0.173,155,0.524,156,1.032,158,1.139,161,1.606,168,0.353,169,0.803,170,0.25,173,0.663,174,0.299,180,0.636,181,0.321,182,0.803,185,0.214,192,0.989,203,0.283,204,0.72,207,0.824,210,0.707,213,1.135,215,0.353,216,0.27,222,0.353,227,0.184,229,0.225,230,1.221,233,1.997,242,0.732,243,1.378,244,0.321,245,0.299,246,0.513,247,0.335,248,0.377,249,1.135,250,0.377,251,0.377,252,0.732,253,0.353,254,0.377,255,0.25,256,0.321,257,0.377,258,0.276,259,0.733,260,0.65,268,0.847,276,0.65,285,1.293,286,0.907,287,1.096,289,0.684,292,0.264,310,1.098,312,0.335,317,0.6,318,0.686,323,0.299,325,0.353,327,0.299,328,0.65,329,0.321,330,0.503,332,0.238,333,0.479,341,0.189,344,1.066,346,0.673,347,0.291,348,0.27,349,0.321,350,0.41,352,0.321,355,0.534,356,0.998,357,0.353,358,0.353,362,0.321,363,0.684,369,0.309,370,1.293,374,0.494,386,0.377,389,2.08,392,0.25,406,0.6,407,0.65,409,0.321,410,0.321,411,0.321,412,0.321,413,0.321,414,0.321,415,0.801,416,0.321,417,0.321,418,0.321,419,0.321,420,0.321,427,0.494,430,0.219,433,0.732,436,1.134,438,1.176,440,0.27,441,0.907,442,0.321,445,0.685,449,0.264,450,0.685,454,0.536,466,0.55,468,0.335,469,0.65,470,0.685,471,0.477,472,0.28,473,0.299,476,0.442,477,1.556,483,0.216,487,0.564,491,2.107,492,0.27,498,0.707,500,1.013,513,0.25,514,1.134,515,0.524,517,2.002,522,0.353,525,1.293,553,0.353,555,0.309,557,0.808,558,0.623,559,0.416,560,0.377,561,0.416,562,0.353,563,0.65,564,0.685,565,0.564,566,0.416,567,0.377,568,0.353,569,0.99,570,0.234,571,0.808,572,0.377,573,0.377,574,0.416,575,0.416,576,0.808,577,0.416,578,1.177,579,0.335,580,1.134,581,1.177,582,0.808,583,0.416,584,0.416,585,1.177,586,2.211,587,0.564,588,0.581,589,1.205,590,0.335,591,0.353,592,0.353,593,0.259,594,0.416,595,0.808,596,1.379,597,0.377,598,0.321,599,0.733,600,0.808,601,0.416,602,0.416,603,0.291,604,0.416,605,0.416,606,0.416,607,0.536,608,0.685,609,1.038,610,0.808,611,0.732,612,0.335,613,0.416,614,0.416,615,0.416,616,0.254,617,0.335,618,1.526,619,0.732,620,0.335,621,0.808,622,0.416,623,0.353,624,0.907,625,0.353,626,0.377,627,0.416,628,0.416,629,0.416,630,1.176,631,0.808,632,1.177,633,1.177,634,2.169,635,2.748,636,0.808,637,0.808,638,0.808,639,0.808,640,1.857,641,0.416,642,0.377,643,1.293,644,0.808,645,0.808,646,0.416,647,0.416,648,0.416,649,0.416,650,0.808,651,0.416,652,0.808,653,0.623,654,0.377,655,0.808,656,0.276,657,0.416,658,0.416,659,0.377,660,0.416,661,1.573,662,0.416,663,0.416,664,0.283,665,0.416,666,0.847,667,1.857,668,0.732,669,0.416,670,1.067,671,0.377,672,0.808,673,0.416,674,0.377,675,0.416,676,0.416,677,0.555,678,0.377,679,0.377,680,0.377,681,0.353,682,0.377,683,0.808,684,0.416,685,0.416,686,0.416,687,0.377,688,0.377,689,0.416,690,0.309,691,0.416,692,0.416,693,0.416,694,0.27,695,0.27,696,0.808,697,0.309,698,0.377,699,0.416,700,0.416,701,0.416,702,0.416,703,1.526,704,0.416,705,0.207,706,0.416,707,0.335,708,0.732,709,0.377,710,0.377,711,0.321,712,0.416,713,0.416,714,0.808,715,0.732,716,0.416,717,0.564,718,0.377,719,0.416,720,0.335,721,0.416,722,0.377,723,0.283,724,0.416,725,0.416,726,0.416,727,0.998,728,0.685,729,0.309,730,0.513,731,0.875,732,0.875,733,0.377,734,0.685,735,0.6,736,0.321,737,0.564,738,0.808,739,0.283,740,0.309,741,0.416,742,0.416,743,0.416,744,0.808,745,0.416,746,0.416,747,0.335,748,0.416,749,0.377,750,1.067,751,0.416,752,0.321,753,0.335,754,0.416,755,0.299,756,0.353,757,0.353,758,1.838,759,0.732,760,0.321,761,0.416,762,0.416,763,0.536,764,0.182,765,0.353,766,1.383,767,0.353,768,0.353,769,0.416,770,0.416,771,0.353,772,0.65,773,0.513,774,1.177,775,0.808,776,0.353,777,0.416,778,0.416,779,0.416,780,0.416,781,0.416,782,0.416,783,0.416,784,0.353,785,0.416,786,0.377,787,0.416,788,0.153,789,0.6,790,0.416,791,0.219,792,0.503,793,0.416,794,0.416,795,0.321,796,0.254,797,0.353,798,0.732,799,0.732,800,0.416,801,0.309,802,0.65,803,0.377,804,0.283,805,0.732,806,0.416,807,0.335,808,0.353,809,0.377,810,0.353,811,0.416,812,0.416,813,0.377,814,0.377,815,0.377,816,0.321,817,0.416,818,0.377,819,0.416,820,0.416,821,0.416]],["component/4",[1,0.411]],["title/5-1",[791,36.242]],["name/5-1",[]],["text/5-1",[]],["component/5-1",[]],["title/5-2",[822,62.413]],["name/5-2",[]],["text/5-2",[]],["component/5-2",[]],["title/5-3",[823,62.413]],["name/5-3",[]],["text/5-3",[]],["component/5-3",[]],["title/5-4",[824,58.365]],["name/5-4",[]],["text/5-4",[]],["component/5-4",[]],["title/5-5",[75,12.21,318,15.104,464,28.49,824,28.49]],["name/5-5",[]],["text/5-5",[]],["component/5-5",[]],["title/5-6",[623,58.365]],["name/5-6",[]],["text/5-6",[]],["component/5-6",[]],["title/5-7",[505,43.759]],["name/5-7",[]],["text/5-7",[]],["component/5-7",[]],["title/5-8",[825,62.413]],["name/5-8",[]],["text/5-8",[]],["component/5-8",[]],["title/5-9",[27,34.717,76,41.06]],["name/5-9",[]],["text/5-9",[]],["component/5-9",[]],["title/5",[468,41.06,469,41.06]],["name/5",[468,1.115]],["text/5",[1,2.027,3,2.32,4,0.904,10,2.276,19,0.726,20,3.745,24,0.767,27,5.673,35,2.448,36,1.376,37,1.783,39,2.629,43,0.848,57,2.246,58,1.234,68,0.979,75,1.772,76,2.744,86,0.545,89,6.105,91,0.655,93,1.264,98,1.096,106,0.979,114,0.683,117,1.783,122,3.1,130,0.951,141,3.531,190,0.623,191,0.951,249,0.832,268,0.756,318,2.192,326,1.396,339,0.818,362,1.91,363,0.791,370,1.154,390,1.012,407,1.096,409,1.05,410,1.05,411,1.05,412,1.05,413,1.05,414,1.05,415,0.926,416,1.05,417,1.05,418,1.05,419,1.05,420,1.05,441,3.238,464,4.134,469,2.744,483,1.288,497,0.951,498,0.818,505,2.669,517,1.645,519,1.234,525,2.1,531,3.807,535,1.234,542,2.89,570,0.767,588,0.979,596,1.012,616,0.832,619,3.807,623,2.1,630,1.91,695,1.609,750,3.091,791,1.304,796,0.832,822,2.246,823,2.246,824,6.859,825,2.246,826,1.362,827,2.479,828,1.362,829,1.362,830,3.411,831,1.362,832,1.362,833,5.468,834,2.89,835,1.362,836,3.411,837,3.411,838,1.362,839,1.362,840,0.865,841,1.234,842,1.362,843,2.479,844,1.362,845,1.362,846,1.362,847,1.154,848,1.362,849,1.362,850,1.362,851,7.827,852,3.411,853,3.411,854,3.411,855,1.362,856,1.362,857,1.362,858,1.362,859,1.362,860,1.362,861,1.362,862,2.479,863,1.362,864,1.362,865,1.362,866,1.362,867,1.362,868,1.362,869,1.362,870,3.411,871,1.154,872,1.362,873,1.05,874,1.154,875,1.154,876,0.979,877,1.05,878,2.479,879,1.362,880,2.479,881,1.362,882,0.691,883,1.362,884,1.154,885,1.362,886,1.234]],["component/5",[1,0.411]],["title/6-1",[23,25.689]],["name/6-1",[]],["text/6-1",[]],["component/6-1",[]],["title/6-2",[10,32.125]],["name/6-2",[]],["text/6-2",[]],["component/6-2",[]],["title/6-3",[148,21.589,887,41.06]],["name/6-3",[]],["text/6-3",[]],["component/6-3",[]],["title/6-4",[888,62.413]],["name/6-4",[]],["text/6-4",[]],["component/6-4",[]],["title/6",[164,40.649]],["name/6",[164,0.818]],["text/6",[0,0.898,1,0.984,8,0.858,10,2.225,13,2.686,15,0.486,16,0.517,19,2.542,20,1.818,33,1.5,35,2.686,43,0.822,56,1.017,67,1.063,69,0.766,75,1.944,93,1.519,105,1.118,108,0.857,114,1.209,122,0.839,128,0.743,129,3.669,135,0.554,141,0.779,142,2.468,146,1.683,148,0.558,149,1.727,150,0.572,153,4.598,154,1.985,155,2.156,156,1.581,157,0.822,158,4.09,160,1.082,161,3.3,162,2.864,163,2.661,164,4.181,165,5.123,166,2.864,167,0.949,168,2.087,169,0.695,173,1.871,176,0.67,177,1.995,178,1.961,179,2.561,181,1.017,206,1.79,210,0.792,216,1.563,229,0.713,244,1.017,246,0.839,255,0.792,256,1.017,258,1.599,285,1.118,313,1.196,317,0.981,318,0.593,320,0.839,323,0.949,326,0.743,343,0.949,346,0.754,348,0.857,350,0.67,355,0.598,360,0.949,361,0.949,363,1.399,367,0.792,374,2.506,376,2.156,377,2.864,390,3.046,391,1.79,415,0.898,432,0.857,435,1.017,440,1.563,472,0.887,483,1.727,487,1.683,488,3.16,508,2.26,512,0.949,558,1.017,596,0.981,599,0.822,611,1.196,711,1.017,728,1.118,789,2.468,796,0.807,804,0.898,873,1.017,876,0.949,888,3.011,889,1.32,890,1.118,891,0.839,892,1.32,893,1.32,894,1.196,895,1.118,896,1.32,897,1.017,898,1.32,899,0.949,900,0.779,901,1.32,902,2.409,903,1.196,904,1.32,905,1.732,906,1.196,907,0.981,908,3.046,909,1.017,910,1.017,911,0.616,912,0.922,913,1.196,914,1.252,915,1.118,916,1.062,917,1.118,918,0.981,919,1.118,920,1.32,921,1.32,922,1.32,923,0.839,924,0.898,925,1.118,926,1.32,927,1.118,928,1.32,929,1.32,930,1.196,931,1.32]],["component/6",[1,0.411]],["title/7-1",[23,25.689]],["name/7-1",[]],["text/7-1",[]],["component/7-1",[]],["title/7-2",[475,42.095]],["name/7-2",[]],["text/7-2",[]],["component/7-2",[]],["title/7-3",[26,18.526]],["name/7-3",[]],["text/7-3",[]],["component/7-3",[]],["title/7-4",[334,23.488]],["name/7-4",[]],["text/7-4",[]],["component/7-4",[]],["title/7-5",[269,18.168]],["name/7-5",[]],["text/7-5",[]],["component/7-5",[]],["title/7-6",[932,25.347]],["name/7-6",[]],["text/7-6",[]],["component/7-6",[]],["title/7-7",[788,14.918,933,21.331,934,16.74]],["name/7-7",[]],["text/7-7",[]],["component/7-7",[]],["title/7-8",[15,18.782,341,23.138]],["name/7-8",[]],["text/7-8",[]],["component/7-8",[]],["title/7-9",[135,21.414,924,34.717]],["name/7-9",[]],["text/7-9",[]],["component/7-9",[]],["title/7",[475,31.192,477,24.281]],["name/7",[475,0.847]],["text/7",[1,0.706,8,1.447,15,0.877,16,0.933,19,1.27,26,1.093,35,2.039,67,1.793,75,1.929,84,2.159,86,1.627,93,2.324,108,1.546,122,1.514,124,1.304,128,1.342,135,1.705,147,1.603,149,2.76,150,2.303,154,0.992,161,2.607,167,1.714,168,2.323,176,2.695,190,1.09,230,3.533,269,1.072,329,1.837,333,1.652,338,2.322,341,1.08,343,1.714,345,2.159,346,1.362,350,3.184,354,1.546,355,1.08,367,2.439,395,1.917,430,1.254,438,1.837,440,1.546,445,2.019,475,5.001,476,2.223,477,4.967,478,1.77,480,2.398,481,3.131,482,3.018,555,1.77,616,1.456,698,2.159,717,1.664,764,1.042,788,0.877,882,1.209,914,1.238,933,2.138,934,0.984,935,2.383,936,2.159,937,1.546,938,1.484,939,1.582,940,2.159,941,2.019,942,2.383,943,2.288,944,2.159,945,2.383,946,2.383,947,2.383,948,2.383,949,1.917,950,2.383,951,1.917,952,2.383,953,2.383,954,2.383,955,2.477,956,1.591,957,2.383,958,0.962,959,1.061,960,2.019,961,2.019,962,2.019,963,1.917,964,2.019,965,2.019]],["component/7",[1,0.411]],["title/8",[158,31.817]],["name/8",[158,0.64]],["text/8",[1,1.099,8,0.764,10,1,11,1.698,18,3.144,19,3.115,20,2.684,24,2.089,25,1.725,26,1.319,35,1.076,53,1.652,75,1.347,79,1.725,86,0.859,91,2.357,111,1.31,121,1.458,125,1.335,130,4.614,131,3.144,145,1.245,153,1.391,156,3.441,158,4.26,160,0.963,161,1.052,164,1.265,169,1.128,182,1.128,186,1.817,191,1.498,192,1.143,210,1.287,216,1.391,309,1.593,320,1.362,323,2.668,376,1.391,389,2.059,409,1.652,410,1.652,411,1.652,412,1.652,413,1.652,414,1.652,415,1.458,416,1.652,417,1.652,418,1.652,419,1.652,420,1.652,427,2.268,430,1.128,436,1.593,450,1.817,471,1.265,477,1.02,480,1.265,483,2.549,486,1.725,494,4.505,598,1.652,609,1.458,656,1.423,720,1.725,722,1.943,759,1.943,791,1.128,796,3.572,895,3.144,923,1.362,940,1.943,941,3.144,943,1.207,966,4.702,967,2.319,968,1.817,969,1.498,970,2.144,971,3.711,972,2.144,973,2.144,974,1.335,975,2.144,976,2.144,977,4.919,978,1.725,979,1.943,980,1.817,981,2.144,982,1.391,983,1.498,984,2.144,985,1.593,986,3.054,987,2.756,988,1.817,989,1.652,990,1.817,991,2.144,992,2.144,993,2.144,994,1.943,995,2.144,996,1.943,997,2.144,998,1.943,999,2.144,1000,1.943,1001,2.144,1002,1.817,1003,1.817,1004,2.144,1005,2.144,1006,2.144]],["component/8",[1,0.411]],["title/9-1",[23,25.689]],["name/9-1",[]],["text/9-1",[]],["component/9-1",[]],["title/9-2",[7,23.924,360,29.153,1007,40.542]],["name/9-2",[]],["text/9-2",[]],["component/9-2",[]],["title/9",[35,20.341,36,22.498,37,29.153]],["name/9",[34,1.175]],["text/9",[2,4.393,4,2.12,7,3.496,10,1.49,15,1.175,17,1.299,18,1.531,20,0.989,21,2.727,26,0.859,30,2.029,32,1.453,34,4.393,35,4.792,36,4.769,37,2.297,38,1.531,39,2.462,40,3.454,41,1.392,45,1.049,46,1.637,47,1.637,48,1.172,51,1.342,55,1.299,56,1.392,61,1.392,67,0.797,68,1.299,69,1.854,70,1.637,75,0.656,76,1.453,77,1.637,78,1.637,79,2.569,80,4.247,81,1.637,82,1.299,83,1.637,101,1.453,108,1.172,114,0.906,122,1.148,129,1.049,135,2.175,145,1.049,146,1.262,149,3.078,150,1.862,160,0.812,161,1.568,169,3.117,200,2.462,207,0.975,210,1.084,211,1.172,229,0.975,256,1.392,286,2.462,315,1.531,316,1.299,320,1.148,322,1.531,326,1.017,352,1.392,360,1.299,427,1.952,430,0.951,442,1.392,449,1.148,465,2.569,513,1.084,514,4.4,515,2.073,517,4.696,540,1.826,562,2.706,565,1.262,568,1.531,589,2.073,755,1.299,795,1.392,807,2.569,871,1.531,877,2.462,891,3.294,900,1.066,925,1.531,930,1.637,978,1.453,986,1.989,1008,1.807,1009,1.807,1010,1.453,1011,2.462,1012,1.453,1013,3.729,1014,2.706,1015,1.637,1016,2.462,1017,1.172,1018,0.975,1019,1.807,1020,1.807,1021,1.453,1022,2.462,1023,1.531,1024,2.894,1025,2.894,1026,2.894,1027,1.807,1028,1.453,1029,1.531,1030,1.531]],["component/9",[1,0.411]],["title/10-1",[23,25.689]],["name/10-1",[]],["text/10-1",[]],["component/10-1",[]],["title/10-2",[180,37.19]],["name/10-2",[]],["text/10-2",[]],["component/10-2",[]],["title/10-3",[334,23.488]],["name/10-3",[]],["text/10-3",[]],["component/10-3",[]],["title/10-4",[269,18.168]],["name/10-4",[]],["text/10-4",[]],["component/10-4",[]],["title/10-5",[932,25.347]],["name/10-5",[]],["text/10-5",[]],["component/10-5",[]],["title/10-6",[788,18.782,934,21.076]],["name/10-6",[]],["text/10-6",[]],["component/10-6",[]],["title/10-7",[15,18.782,341,23.138]],["name/10-7",[]],["text/10-7",[]],["component/10-7",[]],["title/10-8",[1031,49.533]],["name/10-8",[]],["text/10-8",[]],["component/10-8",[]],["title/10-9",[334,23.488]],["name/10-9",[]],["text/10-9",[]],["component/10-9",[]],["title/10-10",[269,18.168]],["name/10-10",[]],["text/10-10",[]],["component/10-10",[]],["title/10-11",[932,25.347]],["name/10-11",[]],["text/10-11",[]],["component/10-11",[]],["title/10-12",[15,18.782,341,23.138]],["name/10-12",[]],["text/10-12",[]],["component/10-12",[]],["title/10-13",[1032,51.167]],["name/10-13",[]],["text/10-13",[]],["component/10-13",[]],["title/10-14",[334,23.488]],["name/10-14",[]],["text/10-14",[]],["component/10-14",[]],["title/10-15",[269,18.168]],["name/10-15",[]],["text/10-15",[]],["component/10-15",[]],["title/10-16",[932,25.347]],["name/10-16",[]],["text/10-16",[]],["component/10-16",[]],["title/10-17",[15,18.782,341,23.138]],["name/10-17",[]],["text/10-17",[]],["component/10-17",[]],["title/10-18",[318,30.942]],["name/10-18",[]],["text/10-18",[]],["component/10-18",[]],["title/10-19",[334,23.488]],["name/10-19",[]],["text/10-19",[]],["component/10-19",[]],["title/10-20",[269,18.168]],["name/10-20",[]],["text/10-20",[]],["component/10-20",[]],["title/10-21",[932,25.347]],["name/10-21",[]],["text/10-21",[]],["component/10-21",[]],["title/10-22",[788,18.782,934,21.076]],["name/10-22",[]],["text/10-22",[]],["component/10-22",[]],["title/10-23",[15,18.782,341,23.138]],["name/10-23",[]],["text/10-23",[]],["component/10-23",[]],["title/10-24",[509,42.095]],["name/10-24",[]],["text/10-24",[]],["component/10-24",[]],["title/10-25",[334,23.488]],["name/10-25",[]],["text/10-25",[]],["component/10-25",[]],["title/10-26",[269,18.168]],["name/10-26",[]],["text/10-26",[]],["component/10-26",[]],["title/10-27",[932,25.347]],["name/10-27",[]],["text/10-27",[]],["component/10-27",[]],["title/10-28",[788,18.782,934,21.076]],["name/10-28",[]],["text/10-28",[]],["component/10-28",[]],["title/10-29",[1033,32.768]],["name/10-29",[]],["text/10-29",[]],["component/10-29",[]],["title/10",[180,37.19]],["name/10",[123,1.115]],["text/10",[0,0.486,1,0.212,6,1.808,8,2.039,11,0.889,12,1.769,14,3.232,15,1.253,16,1.333,19,1.035,20,0.744,21,0.454,27,0.486,28,0.486,30,1.234,32,0.575,33,1.209,69,1.128,75,1.074,86,0.778,93,3.672,108,0.464,111,0.437,114,0.359,133,1.231,141,0.422,145,1.128,147,0.976,148,0.821,150,1.073,152,0.754,153,1.26,154,0.808,155,1.605,156,1.407,157,1.842,158,1.367,160,1.111,168,1.294,169,0.715,180,3.471,181,1.047,182,3.143,186,0.605,189,0.337,190,0.327,196,2.682,205,0.924,207,0.386,210,1.166,227,1.091,238,1.093,243,0.863,255,0.816,258,0.902,269,1.637,309,0.531,310,2.128,318,3.573,323,2.743,329,0.551,330,0.846,339,1.166,344,0.499,361,0.514,363,0.789,392,0.816,430,0.376,435,1.047,454,0.902,456,0.647,466,0.486,471,0.802,473,3.015,477,0.34,497,0.499,498,0.816,499,0.575,500,0.902,501,0.551,502,0.575,505,0.454,509,3.162,511,3.162,538,0.647,547,0.514,589,0.464,593,0.846,607,1.642,609,1.321,626,0.647,666,0.514,690,0.531,705,2.417,715,0.647,728,0.605,731,2.529,737,0.499,739,0.486,763,0.474,764,0.85,789,0.531,792,0.846,801,0.531,802,0.575,804,0.924,882,0.363,891,0.863,899,0.514,900,3.054,905,0.514,909,0.551,911,0.906,918,0.531,923,0.454,933,1.022,934,0.802,941,0.605,955,2.271,956,1.642,958,1.539,959,0.865,969,0.949,977,0.486,988,0.605,1021,0.575,1031,2.448,1032,1.443,1034,1.359,1035,1.359,1036,0.715,1037,0.605,1038,0.575,1039,0.715,1040,0.715,1041,0.715,1042,0.715,1043,0.715,1044,0.647,1045,0.605,1046,0.715,1047,0.715,1048,0.715,1049,0.647,1050,0.605,1051,0.715,1052,0.499,1053,0.605,1054,1.397,1055,2.38,1056,1.691,1057,0.715,1058,0.715,1059,0.715,1060,2.507,1061,4.117,1062,1.88,1063,1.359,1064,2.128,1065,0.715,1066,0.715,1067,1.942,1068,0.551,1069,0.715,1070,0.605,1071,3.814,1072,2.473,1073,0.897,1074,1.359,1075,0.715,1076,0.647,1077,1.047,1078,0.575,1079,0.575,1080,0.575,1081,0.575,1082,0.531,1083,0.575,1084,0.605,1085,0.605,1086,0.551,1087,1.231,1088,1.231,1089,0.531,1090,0.575,1091,1.646,1092,0.715,1093,0.715,1094,0.715,1095,0.715,1096,0.605,1097,0.551,1098,0.551,1099,0.715,1100,2.259,1101,2.365,1102,0.715,1103,0.715,1104,0.83,1105,1.359,1106,0.715,1107,0.715]],["component/10",[1,0.411]],["title/11-1",[23,25.689]],["name/11-1",[]],["text/11-1",[]],["component/11-1",[]],["title/11-2",[213,42.095]],["name/11-2",[]],["text/11-2",[]],["component/11-2",[]],["title/11-3",[269,18.168]],["name/11-3",[]],["text/11-3",[]],["component/11-3",[]],["title/11-4",[932,25.347]],["name/11-4",[]],["text/11-4",[]],["component/11-4",[]],["title/11-5",[232,36.704,511,31.192]],["name/11-5",[]],["text/11-5",[]],["component/11-5",[]],["title/11-6",[8,18.179,312,41.06]],["name/11-6",[]],["text/11-6",[]],["component/11-6",[]],["title/11-7",[511,31.192,1108,46.248]],["name/11-7",[]],["text/11-7",[]],["component/11-7",[]],["title/11-8",[788,18.782,934,21.076]],["name/11-8",[]],["text/11-8",[]],["component/11-8",[]],["title/11-9",[1109,43.759]],["name/11-9",[]],["text/11-9",[]],["component/11-9",[]],["title/11-10",[1110,68.884]],["name/11-10",[]],["text/11-10",[]],["component/11-10",[]],["title/11-11",[232,49.533]],["name/11-11",[]],["text/11-11",[]],["component/11-11",[]],["title/11-12",[213,31.192,1111,46.248]],["name/11-12",[]],["text/11-12",[]],["component/11-12",[]],["title/11-13",[1112,37.696]],["name/11-13",[]],["text/11-13",[]],["component/11-13",[]],["title/11",[213,42.095]],["name/11",[213,0.847]],["text/11",[1,0.701,6,1.022,7,0.987,8,3.06,10,0.78,11,1.365,12,0.463,13,2.528,16,0.926,17,0.64,19,1.26,20,1.632,21,0.566,24,1.332,31,1.203,35,1.187,67,0.738,69,0.971,71,0.661,75,0.607,86,0.67,93,3.578,101,1.903,108,0.578,113,0.807,124,0.487,129,1.373,145,0.971,147,0.66,148,0.707,149,1.229,150,1.026,152,0.928,153,1.085,154,3.866,156,1.683,157,1.042,158,0.411,159,0.807,160,0.4,161,1.161,162,0.622,163,0.578,164,0.525,165,0.554,166,0.622,167,0.64,168,1.305,169,0.468,173,0.501,174,0.64,182,0.468,185,0.457,191,0.622,196,0.525,209,0.606,212,0.525,213,5.677,214,0.807,215,0.754,216,0.578,217,0.807,227,0.393,229,0.903,232,6.361,255,1.42,269,1.065,292,0.566,320,0.566,326,0.501,334,0.807,346,1.705,363,0.517,390,1.242,430,0.468,449,0.566,474,0.606,511,2.996,569,0.578,579,0.716,599,0.554,603,1.168,620,0.716,695,0.578,723,2.746,749,0.807,752,0.686,764,0.389,808,0.754,876,1.701,899,1.203,911,1.103,912,0.622,933,0.468,934,1.854,949,0.716,955,4.181,956,1.385,958,0.675,959,0.396,986,1.042,1054,1.203,1055,1.346,1056,0.956,1062,1.895,1064,1.701,1068,0.686,1091,6.908,1108,2.143,1109,0.566,1111,0.807,1113,0.89,1114,0.89,1115,0.89,1116,0.89,1117,0.89,1118,0.622,1119,0.89,1120,0.661,1121,0.89,1122,0.89,1123,0.89,1124,0.89,1125,0.807,1126,0.661,1127,0.89,1128,0.807,1129,0.807,1130,0.89,1131,0.754,1132,0.89,1133,1.701,1134,1.242,1135,0.807,1136,0.716,1137,0.89,1138,0.89,1139,0.661,1140,0.89,1141,0.716,1142,0.89,1143,0.807,1144,0.89,1145,0.89,1146,1.673,1147,4.07,1148,4.144,1149,0.89,1150,0.606,1151,0.716,1152,2.726,1153,0.89,1154,1.515,1155,0.89,1156,0.89,1157,1.673,1158,1.203,1159,0.89,1160,1.673,1161,0.89,1162,0.89]],["component/11",[1,0.411]],["title/12-1",[23,25.689]],["name/12-1",[]],["text/12-1",[]],["component/12-1",[]],["title/12-2",[26,18.526]],["name/12-2",[]],["text/12-2",[]],["component/12-2",[]],["title/12-3",[334,23.488]],["name/12-3",[]],["text/12-3",[]],["component/12-3",[]],["title/12-4",[269,18.168]],["name/12-4",[]],["text/12-4",[]],["component/12-4",[]],["title/12-5",[932,25.347]],["name/12-5",[]],["text/12-5",[]],["component/12-5",[]],["title/12-6",[788,25.347]],["name/12-6",[]],["text/12-6",[]],["component/12-6",[]],["title/12-7",[1033,32.768]],["name/12-7",[]],["text/12-7",[]],["component/12-7",[]],["title/12",[350,25.904,477,24.281]],["name/12",[963,1.115]],["text/12",[1,2.868,8,1.825,11,1.441,16,2.007,26,0.847,45,3.763,75,1.143,86,2.595,93,3.587,135,1.321,147,2.557,148,1.332,150,1.366,154,1.31,160,1.414,185,2.632,189,1.483,190,2.345,227,1.389,269,1.97,333,1.28,338,4.699,350,1.598,428,2.09,432,2.043,475,3.132,477,3.083,616,1.924,677,1.483,764,1.377,791,1.657,792,1.961,882,2.601,911,1.468,914,1.636,937,2.043,938,1.961,939,2.09,955,2.39,956,2.007,958,1.27,959,1.402,963,7.09,1073,1.454,1101,4.512,1163,2.09,1164,3.149,1165,5.08,1166,2.264,1167,3.149,1168,2.886,1169,3.149,1170,3.149]],["component/12",[1,0.411]],["title/13-1",[23,25.689]],["name/13-1",[]],["text/13-1",[]],["component/13-1",[]],["title/13-2",[26,18.526]],["name/13-2",[]],["text/13-2",[]],["component/13-2",[]],["title/13-3",[334,23.488]],["name/13-3",[]],["text/13-3",[]],["component/13-3",[]],["title/13-4",[269,18.168]],["name/13-4",[]],["text/13-4",[]],["component/13-4",[]],["title/13-5",[932,25.347]],["name/13-5",[]],["text/13-5",[]],["component/13-5",[]],["title/13-6",[788,25.347]],["name/13-6",[]],["text/13-6",[]],["component/13-6",[]],["title/13-7",[1033,32.768]],["name/13-7",[]],["text/13-7",[]],["component/13-7",[]],["title/13",[170,15.048,259,15.612,350,12.723,477,11.926,478,18.622,480,14.794]],["name/13",[962,1.175]],["text/13",[1,2.649,8,1.753,11,0.986,16,1.459,26,0.579,45,2.858,75,0.782,86,1.971,91,1.79,93,3.422,124,1.179,135,0.904,147,2.614,148,0.911,150,0.934,154,0.897,160,0.968,170,1.293,185,3.011,189,1.014,190,1.704,204,1.316,209,1.465,227,0.95,259,1.341,269,1.547,289,1.251,333,1.515,338,5.112,350,1.093,428,1.43,432,1.398,475,2.276,477,3.7,478,1.6,480,1.271,607,3.892,616,1.316,677,1.754,764,0.942,791,1.133,792,3.065,882,2.498,911,1.005,914,1.119,937,1.398,938,1.341,939,1.43,955,3.089,956,1.459,958,1.503,959,0.959,962,6.969,963,1.733,1073,0.995,1101,4.918,1139,1.6,1163,1.43,1165,4.506,1166,2.679,1168,2.097,1171,3.959,1172,2.871,1173,3.725,1174,2.997,1175,1.825,1176,3.725,1177,2.997,1178,4.46]],["component/13",[1,0.411]],["title/14-1",[23,25.689]],["name/14-1",[]],["text/14-1",[]],["component/14-1",[]],["title/14-2",[26,18.526]],["name/14-2",[]],["text/14-2",[]],["component/14-2",[]],["title/14-3",[334,23.488]],["name/14-3",[]],["text/14-3",[]],["component/14-3",[]],["title/14-4",[269,18.168]],["name/14-4",[]],["text/14-4",[]],["component/14-4",[]],["title/14-5",[932,25.347]],["name/14-5",[]],["text/14-5",[]],["component/14-5",[]],["title/14-6",[788,25.347]],["name/14-6",[]],["text/14-6",[]],["component/14-6",[]],["title/14-7",[1033,32.768]],["name/14-7",[]],["text/14-7",[]],["component/14-7",[]],["title/14",[170,15.048,259,15.612,350,12.723,477,11.926,478,18.622,479,21.242]],["name/14",[961,1.175]],["text/14",[1,2.69,8,1.803,11,1.023,16,1.507,26,0.601,45,2.94,75,0.812,86,2.027,91,1.849,93,3.567,124,1.224,135,0.938,147,2.674,148,0.946,150,0.97,154,0.931,160,1.004,170,2.309,185,3.088,189,1.053,190,1.76,227,0.987,259,1.392,269,1.586,289,1.298,333,1.564,338,5.002,350,1.135,428,1.484,432,1.451,475,2.351,477,3.522,478,1.661,479,1.895,480,1.319,607,3.992,616,1.366,677,1.812,764,0.978,791,1.176,792,2.396,882,1.952,911,1.043,914,1.162,937,1.451,938,1.392,939,1.484,955,3.161,956,1.507,958,1.552,959,0.995,961,7.093,1073,1.033,1101,4.787,1139,1.661,1163,1.484,1165,4.09,1166,2.766,1168,2.166,1171,4.073,1172,2.965,1174,3.095,1175,1.895,1177,3.095,1178,3.486,1179,3.847,1180,3.847]],["component/14",[1,0.411]],["title/15-1",[23,25.689]],["name/15-1",[]],["text/15-1",[]],["component/15-1",[]],["title/15-2",[26,18.526]],["name/15-2",[]],["text/15-2",[]],["component/15-2",[]],["title/15-3",[334,23.488]],["name/15-3",[]],["text/15-3",[]],["component/15-3",[]],["title/15-4",[269,18.168]],["name/15-4",[]],["text/15-4",[]],["component/15-4",[]],["title/15-5",[932,25.347]],["name/15-5",[]],["text/15-5",[]],["component/15-5",[]],["title/15-6",[788,25.347]],["name/15-6",[]],["text/15-6",[]],["component/15-6",[]],["title/15-7",[1033,32.768]],["name/15-7",[]],["text/15-7",[]],["component/15-7",[]],["title/15",[350,20.575,367,24.336,477,19.286]],["name/15",[395,1.115]],["text/15",[1,2.861,8,1.816,11,1.431,16,1.997,26,0.841,45,3.746,75,1.136,86,2.584,93,3.578,135,1.312,147,2.545,148,1.323,150,1.356,154,1.302,160,1.405,185,2.617,189,1.473,190,2.332,227,1.38,269,1.962,333,1.272,338,4.683,350,1.587,367,1.877,395,7.068,428,2.076,432,2.03,475,3.115,477,3.069,616,1.911,677,1.473,764,1.368,791,1.646,792,1.948,882,2.587,911,1.459,914,1.625,937,2.03,938,1.948,939,2.076,955,2.377,956,1.997,958,1.262,959,1.392,1073,1.445,1101,4.499,1163,2.076,1165,5.06,1166,2.249,1168,2.87,1181,3.128,1182,3.128,1183,3.128,1184,3.128]],["component/15",[1,0.411]],["title/16-1",[23,25.689]],["name/16-1",[]],["text/16-1",[]],["component/16-1",[]],["title/16-2",[26,18.526]],["name/16-2",[]],["text/16-2",[]],["component/16-2",[]],["title/16-3",[334,23.488]],["name/16-3",[]],["text/16-3",[]],["component/16-3",[]],["title/16-4",[269,18.168]],["name/16-4",[]],["text/16-4",[]],["component/16-4",[]],["title/16-5",[932,25.347]],["name/16-5",[]],["text/16-5",[]],["component/16-5",[]],["title/16-6",[788,25.347]],["name/16-6",[]],["text/16-6",[]],["component/16-6",[]],["title/16-7",[1033,32.768]],["name/16-7",[]],["text/16-7",[]],["component/16-7",[]],["title/16",[367,24.336,477,19.286,482,30.115]],["name/16",[965,1.175]],["text/16",[1,2.728,8,1.646,11,3.516,13,2.602,16,1.81,26,0.747,45,3.446,75,1.008,86,2.377,93,3.412,135,1.165,147,2.342,148,1.175,150,1.204,154,1.156,160,1.247,170,2.774,173,1.564,185,2.373,189,1.308,190,2.115,227,1.225,269,1.825,333,1.129,338,5.027,339,3.563,367,1.667,428,1.843,432,1.802,475,2.824,477,2.199,482,2.063,546,2.353,616,1.697,677,1.308,764,1.215,791,1.461,792,1.729,882,2.346,911,1.295,914,1.443,937,1.802,938,1.729,939,1.843,955,2.155,956,1.81,958,1.12,959,1.236,965,7.029,1018,1.499,1073,1.283,1101,4.271,1163,1.843,1165,4.707,1168,2.602,1185,2.516,1186,1.94,1187,2.777,1188,3.916,1189,2.353,1190,2.777,1191,2.777,1192,2.777]],["component/16",[1,0.411]],["title/17-1",[23,25.689]],["name/17-1",[]],["text/17-1",[]],["component/17-1",[]],["title/17-2",[26,18.526]],["name/17-2",[]],["text/17-2",[]],["component/17-2",[]],["title/17-3",[334,23.488]],["name/17-3",[]],["text/17-3",[]],["component/17-3",[]],["title/17-4",[269,18.168]],["name/17-4",[]],["text/17-4",[]],["component/17-4",[]],["title/17-5",[932,25.347]],["name/17-5",[]],["text/17-5",[]],["component/17-5",[]],["title/17-6",[788,25.347]],["name/17-6",[]],["text/17-6",[]],["component/17-6",[]],["title/17-7",[1033,32.768]],["name/17-7",[]],["text/17-7",[]],["component/17-7",[]],["title/17",[350,20.575,476,22.186,477,19.286]],["name/17",[960,1.175]],["text/17",[1,2.868,8,1.825,11,1.441,16,2.007,26,0.847,45,3.763,75,1.143,86,2.595,93,3.587,135,1.321,147,2.557,148,1.332,150,1.366,154,1.31,160,1.414,185,2.632,189,1.483,190,2.345,227,1.389,269,1.97,333,1.28,338,4.699,350,1.598,428,2.09,432,2.043,475,3.132,476,1.723,477,2.438,616,1.924,677,1.483,764,1.377,791,1.657,792,1.961,882,2.601,911,1.468,914,1.636,937,2.043,938,1.961,939,2.09,955,2.39,956,2.007,958,1.27,959,1.402,960,7.468,1073,1.454,1101,4.512,1163,2.09,1165,5.08,1166,2.264,1168,2.886,1193,3.149,1194,2.853,1195,3.149,1196,3.149]],["component/17",[1,0.411]],["title/18-1",[23,25.689]],["name/18-1",[]],["text/18-1",[]],["component/18-1",[]],["title/18-2",[26,18.526]],["name/18-2",[]],["text/18-2",[]],["component/18-2",[]],["title/18-3",[334,23.488]],["name/18-3",[]],["text/18-3",[]],["component/18-3",[]],["title/18-4",[269,18.168]],["name/18-4",[]],["text/18-4",[]],["component/18-4",[]],["title/18-5",[932,25.347]],["name/18-5",[]],["text/18-5",[]],["component/18-5",[]],["title/18-6",[788,25.347]],["name/18-6",[]],["text/18-6",[]],["component/18-6",[]],["title/18-7",[1033,32.768]],["name/18-7",[]],["text/18-7",[]],["component/18-7",[]],["title/18",[476,22.186,477,19.286,482,30.115]],["name/18",[964,1.175]],["text/18",[1,2.728,8,1.646,11,3.516,13,2.602,16,1.81,26,0.747,45,3.446,75,1.008,86,2.377,93,3.412,135,1.165,147,2.342,148,1.175,150,1.204,154,1.156,160,1.247,170,2.774,185,2.373,189,1.308,190,2.115,227,1.225,229,1.499,269,1.825,333,1.129,338,5.027,339,3.563,428,1.843,432,1.802,475,2.824,476,1.52,477,2.199,482,2.063,546,2.353,616,1.697,677,1.308,764,1.215,791,1.461,792,1.729,882,2.346,911,1.295,914,1.443,937,1.802,938,1.729,939,1.843,955,2.155,956,1.81,958,1.12,959,1.236,964,7.029,1018,1.499,1073,1.283,1101,4.271,1163,1.843,1165,4.707,1168,2.602,1185,2.516,1186,1.94,1188,3.916,1189,2.353,1197,2.777,1198,2.777,1199,2.777,1200,2.777]],["component/18",[1,0.411]],["title/19-1",[23,25.689]],["name/19-1",[]],["text/19-1",[]],["component/19-1",[]],["title/19-2",[26,18.526]],["name/19-2",[]],["text/19-2",[]],["component/19-2",[]],["title/19-3",[334,23.488]],["name/19-3",[]],["text/19-3",[]],["component/19-3",[]],["title/19-4",[269,18.168]],["name/19-4",[]],["text/19-4",[]],["component/19-4",[]],["title/19-5",[932,25.347]],["name/19-5",[]],["text/19-5",[]],["component/19-5",[]],["title/19-6",[788,25.347]],["name/19-6",[]],["text/19-6",[]],["component/19-6",[]],["title/19-7",[1033,32.768]],["name/19-7",[]],["text/19-7",[]],["component/19-7",[]],["title/19",[477,24.281,481,39.337]],["name/19",[481,1.069]],["text/19",[1,2.636,8,1.857,11,1.063,16,1.558,26,0.625,45,3.026,75,0.844,86,2.087,91,1.911,93,3.523,124,1.272,135,0.975,147,2.737,148,0.983,150,1.008,154,0.967,160,1.044,185,3.169,189,1.095,190,1.82,227,1.026,269,1.628,289,1.349,333,1.617,338,5.086,428,1.543,432,1.508,475,2.43,477,3.597,481,6.858,607,4.096,616,1.42,677,1.873,764,1.017,791,1.223,792,2.477,882,2.018,911,1.084,914,1.208,937,1.508,938,1.447,939,1.543,955,3.235,956,1.558,958,1.605,959,1.035,1073,1.074,1101,4.849,1139,1.727,1163,1.543,1165,4.198,1166,2.86,1168,2.239,1171,4.193,1172,3.065,1174,3.199,1177,3.199,1201,3.977,1202,2.324,1203,3.977,1204,3.977]],["component/19",[1,0.411]],["title/20-1",[23,25.689]],["name/20-1",[]],["text/20-1",[]],["component/20-1",[]],["title/20-2",[26,18.526]],["name/20-2",[]],["text/20-2",[]],["component/20-2",[]],["title/20-3",[334,23.488]],["name/20-3",[]],["text/20-3",[]],["component/20-3",[]],["title/20-4",[269,18.168]],["name/20-4",[]],["text/20-4",[]],["component/20-4",[]],["title/20-5",[932,25.347]],["name/20-5",[]],["text/20-5",[]],["component/20-5",[]],["title/20-6",[788,25.347]],["name/20-6",[]],["text/20-6",[]],["component/20-6",[]],["title/20-7",[1033,32.768]],["name/20-7",[]],["text/20-7",[]],["component/20-7",[]],["title/20",[477,24.281,480,30.121]],["name/20",[480,0.818]],["text/20",[1,2.535,8,1.735,11,3.006,13,1.196,16,1.442,26,0.571,45,2.828,75,0.772,86,1.951,91,1.769,93,3.404,124,1.163,135,0.891,147,2.592,148,0.899,150,0.922,154,0.884,160,0.954,170,1.275,185,2.983,189,1.001,190,1.684,227,0.938,269,1.532,289,1.234,333,1.497,338,5.536,339,3.943,428,1.41,432,1.379,475,2.25,477,3.423,480,5.05,607,3.856,616,1.299,677,1.734,764,0.929,791,1.118,792,2.293,882,1.868,911,0.991,914,1.104,937,1.379,938,1.323,939,1.41,955,3.063,956,1.442,958,1.485,959,0.946,1073,0.981,1101,4.703,1139,1.578,1163,1.41,1165,3.951,1168,2.073,1171,3.918,1172,2.837,1174,2.962,1175,1.8,1177,2.962,1188,4.922,1189,3.119,1205,3.682,1206,3.682,1207,3.682]],["component/20",[1,0.411]],["title/21-1",[23,25.689]],["name/21-1",[]],["text/21-1",[]],["component/21-1",[]],["title/21-2",[26,18.526]],["name/21-2",[]],["text/21-2",[]],["component/21-2",[]],["title/21-3",[334,23.488]],["name/21-3",[]],["text/21-3",[]],["component/21-3",[]],["title/21-4",[269,18.168]],["name/21-4",[]],["text/21-4",[]],["component/21-4",[]],["title/21-5",[932,25.347]],["name/21-5",[]],["text/21-5",[]],["component/21-5",[]],["title/21-6",[788,18.782,934,21.076]],["name/21-6",[]],["text/21-6",[]],["component/21-6",[]],["title/21-7",[15,18.782,341,23.138]],["name/21-7",[]],["text/21-7",[]],["component/21-7",[]],["title/21-8",[1033,32.768]],["name/21-8",[]],["text/21-8",[]],["component/21-8",[]],["title/21-9",[1208,37.696]],["name/21-9",[]],["text/21-9",[]],["component/21-9",[]],["title/21",[489,53.086]],["name/21",[489,1.069]],["text/21",[8,2.348,10,0.745,13,3.416,15,0.588,16,1.122,26,0.43,35,0.802,43,0.995,67,1.264,75,2.203,86,0.64,91,1.376,92,1.612,93,2.247,94,4.205,114,1.437,129,0.928,135,0.67,141,0.943,147,1.535,148,0.676,149,1.488,156,3.137,158,3.758,161,1.91,162,1.116,163,1.037,164,0.943,168,2.074,169,2.871,170,5.352,173,0.9,175,1.286,176,0.811,177,0.959,178,1.69,185,0.821,212,0.943,216,1.037,223,1.69,224,1.232,225,1.232,229,1.546,233,1.526,249,0.977,259,2.423,269,1.25,327,1.149,333,0.65,339,1.719,341,0.724,346,0.913,355,1.298,363,2.259,374,4.029,427,0.977,430,0.841,449,1.015,472,3.185,483,1.488,489,7.188,569,1.037,591,1.354,599,0.995,609,1.948,677,1.349,711,2.999,717,1.116,739,1.948,764,0.699,788,0.588,910,1.232,912,2,919,2.426,924,1.087,933,0.841,934,0.66,955,1.815,956,1.857,958,1.155,959,0.711,987,1.187,1003,1.354,1018,0.863,1037,2.426,1045,1.354,1089,1.187,1209,1.232,1210,6.594,1211,1.948,1212,2.426,1213,1.948,1214,1.286,1215,1.116,1216,2.864,1217,1.598,1218,5.457,1219,1.286,1220,1.598,1221,1.598,1222,1.598,1223,3.711,1224,1.598,1225,1.448,1226,1.448,1227,1.598,1228,1.061,1229,1.598,1230,1.598]],["component/21",[1,0.411]],["title/22-1",[23,25.689]],["name/22-1",[]],["text/22-1",[]],["component/22-1",[]],["title/22-2",[26,18.526]],["name/22-2",[]],["text/22-2",[]],["component/22-2",[]],["title/22-3",[334,23.488]],["name/22-3",[]],["text/22-3",[]],["component/22-3",[]],["title/22-4",[269,18.168]],["name/22-4",[]],["text/22-4",[]],["component/22-4",[]],["title/22-5",[932,25.347]],["name/22-5",[]],["text/22-5",[]],["component/22-5",[]],["title/22-6",[788,18.782,934,21.076]],["name/22-6",[]],["text/22-6",[]],["component/22-6",[]],["title/22-7",[15,18.782,341,23.138]],["name/22-7",[]],["text/22-7",[]],["component/22-7",[]],["title/22-8",[1033,32.768]],["name/22-8",[]],["text/22-8",[]],["component/22-8",[]],["title/22-9",[1208,37.696]],["name/22-9",[]],["text/22-9",[]],["component/22-9",[]],["title/22",[165,42.896]],["name/22",[165,0.863]],["text/22",[1,0.342,8,1.915,10,1.384,13,2.748,15,0.425,16,0.835,19,0.615,20,0.632,26,0.311,35,0.579,67,0.94,75,1.953,86,0.462,91,1.024,92,1.2,93,2.156,94,1.642,95,1.414,111,0.706,114,1.489,122,0.734,124,0.632,125,0.719,128,0.65,129,0.67,135,0.484,141,0.681,145,1.237,147,1.926,148,0.901,149,1.542,151,0.858,154,0.887,155,2.395,156,3.429,158,3.191,161,1.456,162,0.807,163,0.749,164,1.257,165,5.64,168,1.891,169,1.561,170,4.147,171,0.978,172,2.514,173,2.434,176,0.586,177,0.693,178,1.257,179,4.144,185,0.593,192,0.615,206,5.557,209,1.449,212,0.681,216,0.749,223,1.257,224,0.89,225,0.89,233,1.581,249,1.302,268,0.641,269,0.973,289,0.67,326,0.65,327,0.83,333,0.47,341,0.523,344,2.578,346,1.218,355,1.345,363,3.379,367,1.279,374,2.642,380,0.978,427,0.706,430,1.121,476,0.632,480,0.681,483,1.542,487,0.807,488,2.844,569,0.749,588,0.83,590,0.929,599,0.719,603,0.807,677,1.738,697,1.583,717,0.807,723,0.785,736,1.642,763,0.767,764,0.505,796,0.706,905,1.532,906,1.046,907,1.583,908,5.918,909,0.89,910,0.89,912,2.072,932,0.425,933,0.608,934,0.477,955,1.384,956,1.446,958,0.86,959,0.514,974,0.719,987,0.858,1018,1.15,1062,1.885,1068,0.89,1079,0.929,1081,1.714,1089,0.858,1186,2.072,1213,1.449,1214,0.929,1215,0.807,1219,0.929,1228,0.767,1231,0.978,1232,0.978,1233,1.046,1234,2.131,1235,1.155,1236,1.155,1237,1.155,1238,0.929,1239,1.155,1240,0.978,1241,0.978,1242,1.155,1243,1.155,1244,1.046,1245,1.046,1246,0.978,1247,1.046,1248,1.806,1249,1.046,1250,1.931,1251,0.785,1252,0.978,1253,0.978,1254,1.046,1255,0.978,1256,1.806,1257,0.978,1258,1.806,1259,1.046,1260,0.89,1261,1.046,1262,1.046,1263,1.046,1264,1.046]],["component/22",[1,0.411]],["title/23-1",[23,25.689]],["name/23-1",[]],["text/23-1",[]],["component/23-1",[]],["title/23-2",[26,18.526]],["name/23-2",[]],["text/23-2",[]],["component/23-2",[]],["title/23-3",[334,23.488]],["name/23-3",[]],["text/23-3",[]],["component/23-3",[]],["title/23-4",[269,18.168]],["name/23-4",[]],["text/23-4",[]],["component/23-4",[]],["title/23-5",[932,25.347]],["name/23-5",[]],["text/23-5",[]],["component/23-5",[]],["title/23-6",[788,18.782,934,21.076]],["name/23-6",[]],["text/23-6",[]],["component/23-6",[]],["title/23-7",[15,18.782,341,23.138]],["name/23-7",[]],["text/23-7",[]],["component/23-7",[]],["title/23-8",[1033,32.768]],["name/23-8",[]],["text/23-8",[]],["component/23-8",[]],["title/23-9",[1208,37.696]],["name/23-9",[]],["text/23-9",[]],["component/23-9",[]],["title/23",[166,48.111]],["name/23",[166,0.968]],["text/23",[3,0.782,8,2.067,10,0.989,13,2.739,15,0.423,16,0.831,26,0.309,35,2.441,43,0.716,67,0.936,75,1.946,86,0.46,91,1.019,92,1.194,93,2.15,94,1.635,95,1.408,96,1.443,111,0.702,114,1.482,124,0.629,128,0.647,129,0.667,135,0.482,141,0.678,145,0.667,147,1.919,148,0.486,149,0.597,151,0.854,153,1.376,154,0.478,156,3.884,158,2.864,161,1.45,162,0.803,163,0.746,164,1.743,165,1.321,166,6.597,168,1.884,169,1.116,170,3.722,173,0.647,175,0.924,176,0.583,177,0.69,178,1.252,179,0.886,185,0.59,197,0.924,206,5.544,209,1.443,212,0.678,216,0.746,223,1.252,224,0.886,225,0.886,227,0.507,229,3.133,233,1.574,249,1.296,269,0.97,289,0.667,327,0.826,331,0.803,333,0.467,341,0.962,344,2.568,346,1.689,350,1.077,355,1.339,363,3.81,367,1.273,374,2.632,376,1.917,377,2.063,427,0.702,430,1.116,476,1.617,483,1.102,487,0.803,569,0.746,588,0.826,590,0.924,598,0.886,599,0.716,677,1.731,697,1.576,707,0.924,717,0.803,739,1.443,764,0.503,894,1.041,905,1.525,908,5.731,910,0.886,912,2.063,927,0.974,932,0.423,933,0.605,934,0.475,955,1.378,956,1.44,958,0.856,959,0.512,974,1.84,987,0.854,990,0.974,1018,0.62,1062,1.348,1068,0.886,1089,0.854,1098,1.635,1100,0.763,1186,2.063,1211,0.782,1212,0.974,1213,1.443,1214,0.924,1215,0.803,1219,0.924,1228,0.763,1231,1.797,1232,1.797,1240,0.974,1241,0.974,1246,0.974,1248,0.974,1251,1.443,1252,0.974,1253,0.974,1255,0.974,1256,1.797,1257,0.974,1258,1.797,1260,0.886,1265,0.854,1266,1.635,1267,1.149,1268,2.954,1269,1.149,1270,0.746,1271,1.149,1272,1.149,1273,1.149,1274,1.149,1275,1.149,1276,1.149,1277,1.149,1278,1.149,1279,1.149,1280,1.149,1281,1.149]],["component/23",[1,0.411]],["title/24-1",[23,25.689]],["name/24-1",[]],["text/24-1",[]],["component/24-1",[]],["title/24-2",[26,18.526]],["name/24-2",[]],["text/24-2",[]],["component/24-2",[]],["title/24-3",[334,23.488]],["name/24-3",[]],["text/24-3",[]],["component/24-3",[]],["title/24-4",[269,18.168]],["name/24-4",[]],["text/24-4",[]],["component/24-4",[]],["title/24-5",[932,25.347]],["name/24-5",[]],["text/24-5",[]],["component/24-5",[]],["title/24-6",[788,18.782,934,21.076]],["name/24-6",[]],["text/24-6",[]],["component/24-6",[]],["title/24-7",[15,18.782,341,23.138]],["name/24-7",[]],["text/24-7",[]],["component/24-7",[]],["title/24-8",[1033,32.768]],["name/24-8",[]],["text/24-8",[]],["component/24-8",[]],["title/24-9",[1208,37.696]],["name/24-9",[]],["text/24-9",[]],["component/24-9",[]],["title/24",[165,25.246,487,28.316,488,31.244]],["name/24",[1282,1.256]],["text/24",[1,0.34,8,2.067,10,1.378,13,3.492,15,0.423,16,0.831,19,0.612,20,0.629,26,0.309,35,0.577,67,0.936,75,1.946,86,0.46,91,1.019,92,1.194,93,2.15,94,1.635,95,1.408,111,0.702,114,1.482,122,0.73,128,1.194,129,0.667,135,0.482,141,0.678,145,1.232,147,1.919,148,0.486,149,1.102,151,0.854,154,0.478,156,3.122,158,3.031,161,1.45,162,0.803,163,0.746,164,1.252,165,4.086,168,1.884,169,1.116,170,4.136,171,0.974,172,2.503,173,2.425,176,0.583,177,0.69,178,1.252,179,5.057,185,0.59,206,5.731,209,1.443,210,0.69,212,0.678,216,0.746,223,1.252,224,0.886,225,0.886,233,1.574,249,0.702,269,0.97,289,1.232,323,0.826,326,0.647,327,0.826,333,0.467,341,0.521,344,2.568,346,1.212,355,1.666,363,2.501,367,0.69,372,1.041,374,2.632,380,0.974,427,0.702,430,1.116,476,0.629,483,1.102,487,2.568,488,3.32,529,0.854,569,0.746,588,0.826,590,0.924,599,0.716,603,0.803,677,2.291,697,1.576,717,0.803,736,1.635,747,0.924,764,0.503,905,0.826,908,5.34,909,0.886,910,0.886,912,2.063,932,0.423,933,0.605,934,0.475,955,1.378,956,1.44,958,0.856,959,0.512,974,0.716,987,0.854,1018,1.145,1062,1.877,1089,0.854,1100,1.961,1186,2.063,1211,0.782,1213,1.443,1214,0.924,1215,0.803,1219,0.924,1228,0.763,1231,0.974,1232,0.974,1240,0.974,1241,0.974,1244,1.041,1245,1.041,1246,0.974,1247,1.041,1248,1.797,1249,1.041,1250,1.922,1251,0.782,1252,0.974,1253,0.974,1254,1.041,1255,0.974,1256,1.797,1257,0.974,1258,1.797,1259,1.041,1260,0.886,1261,1.041,1262,1.041,1263,1.041,1264,1.041,1266,1.635,1270,2.795,1282,6.762,1283,1.149,1284,0.854,1285,1.041,1286,1.149,1287,1.041,1288,1.149,1289,1.149,1290,1.149,1291,1.149,1292,1.149,1293,1.149,1294,1.149,1295,1.149]],["component/24",[1,0.411]],["title/25-1",[23,25.689]],["name/25-1",[]],["text/25-1",[]],["component/25-1",[]],["title/25-2",[914,35.797]],["name/25-2",[]],["text/25-2",[]],["component/25-2",[]],["title/25-3",[26,18.526]],["name/25-3",[]],["text/25-3",[]],["component/25-3",[]],["title/25-4",[334,23.488]],["name/25-4",[]],["text/25-4",[]],["component/25-4",[]],["title/25-5",[269,18.168]],["name/25-5",[]],["text/25-5",[]],["component/25-5",[]],["title/25-6",[932,25.347]],["name/25-6",[]],["text/25-6",[]],["component/25-6",[]],["title/25-7",[788,18.782,934,21.076]],["name/25-7",[]],["text/25-7",[]],["component/25-7",[]],["title/25-8",[15,18.782,341,23.138]],["name/25-8",[]],["text/25-8",[]],["component/25-8",[]],["title/25-9",[1033,32.768]],["name/25-9",[]],["text/25-9",[]],["component/25-9",[]],["title/25",[158,18.726,483,21.069,484,32.613]],["name/25",[1296,1.256]],["text/25",[3,0.765,8,1.287,10,0.524,12,4.404,16,0.814,26,0.302,33,0.7,35,1.043,41,1.602,67,0.917,75,1.053,80,0.73,86,0.45,91,0.999,92,1.171,93,1.957,114,1.455,130,0.785,147,2.686,148,1.226,149,1.08,150,2.291,152,0.624,154,2.199,156,2.723,158,3.41,161,0.552,168,1.268,169,0.592,177,1.248,178,0.664,182,0.592,189,1.996,190,2.192,194,0.905,196,0.664,207,1.122,212,0.664,227,0.917,229,1.122,230,1.633,268,0.624,269,0.765,326,0.633,333,0.457,354,0.73,355,0.51,363,1.207,374,1.772,389,0.624,462,0.867,466,4.834,476,0.615,480,3.117,483,3.368,484,4.604,500,0.746,510,2.683,587,0.785,593,0.7,625,0.953,677,2.256,705,1.793,710,1.019,717,0.785,739,0.765,753,0.905,763,5.367,764,0.492,801,1.544,805,1.019,840,1.842,900,0.664,914,1.507,918,0.835,933,0.592,934,0.464,955,1.352,956,1.136,958,0.839,959,0.501,982,1.349,983,0.785,986,0.7,1010,0.905,1018,0.607,1038,0.905,1083,0.905,1101,3.585,1104,0.687,1112,0.615,1150,1.414,1151,1.673,1209,0.867,1211,1.414,1228,0.746,1265,1.544,1266,0.867,1296,5.186,1297,0.905,1298,1.019,1299,1.762,1300,1.124,1301,1.124,1302,0.867,1303,1.124,1304,1.884,1305,2.457,1306,0.953,1307,0.953,1308,1.019,1309,1.884,1310,1.124,1311,1.124,1312,2.457,1313,1.762,1314,1.019,1315,0.867,1316,1.544,1317,0.953,1318,0.953,1319,0.905,1320,0.905,1321,1.124,1322,2.235,1323,1.544,1324,1.602,1325,0.953,1326,1.762,1327,0.867,1328,0.765,1329,0.953,1330,0.953,1331,1.124,1332,1.019,1333,1.602,1334,0.953,1335,2.784,1336,0.809,1337,1.124,1338,1.124,1339,1.124,1340,1.019,1341,3.613,1342,3.692,1343,1.124,1344,1.124,1345,1.544,1346,0.867,1347,1.124,1348,1.124,1349,1.019]],["component/25",[1,0.411]],["title/26-1",[23,25.689]],["name/26-1",[]],["text/26-1",[]],["component/26-1",[]],["title/26-2",[914,35.797]],["name/26-2",[]],["text/26-2",[]],["component/26-2",[]],["title/26-3",[26,18.526]],["name/26-3",[]],["text/26-3",[]],["component/26-3",[]],["title/26-4",[334,23.488]],["name/26-4",[]],["text/26-4",[]],["component/26-4",[]],["title/26-5",[269,18.168]],["name/26-5",[]],["text/26-5",[]],["component/26-5",[]],["title/26-6",[932,25.347]],["name/26-6",[]],["text/26-6",[]],["component/26-6",[]],["title/26-7",[788,18.782,934,21.076]],["name/26-7",[]],["text/26-7",[]],["component/26-7",[]],["title/26-8",[15,18.782,341,23.138]],["name/26-8",[]],["text/26-8",[]],["component/26-8",[]],["title/26",[125,20.939,158,15.531,483,17.474,485,24.179]],["name/26",[1350,1.256]],["text/26",[8,1.771,10,1.184,11,1.162,12,2.584,16,0.995,26,0.376,43,1.581,67,0.617,75,1.806,85,1.125,86,0.56,91,1.676,92,1.43,93,2.253,104,1.006,125,4.072,127,1.185,128,0.787,130,0.977,135,1.065,140,2.043,143,1.006,147,2.4,148,1.074,149,1.32,150,1.859,154,1.784,156,1.659,158,3.525,161,0.686,163,0.907,168,1.111,169,0.736,178,0.825,182,1.336,189,1.196,190,1.162,191,0.977,192,0.745,196,0.825,207,0.755,229,1.371,230,1.963,244,1.078,268,0.776,269,0.67,318,0.628,330,0.871,332,0.799,333,0.569,349,1.078,350,0.71,354,0.907,355,0.634,362,1.078,374,2.131,387,1.886,392,1.524,430,1.835,436,1.039,454,0.928,476,0.765,477,2.365,483,2.892,485,4.702,487,0.977,492,2.782,508,0.951,509,0.855,526,1.185,569,0.907,596,1.039,653,1.078,705,0.694,723,0.951,752,1.078,764,0.612,765,1.185,791,0.736,797,1.185,840,1.613,876,1.826,884,1.185,890,1.185,905,1.006,911,0.652,912,0.977,914,2.228,923,0.888,932,0.515,933,0.736,934,0.577,951,1.125,955,1.626,956,0.995,958,1.024,959,0.623,969,1.773,982,2.263,1018,0.755,1052,4.567,1056,1.993,1083,1.125,1101,2.082,1147,1.078,1213,1.727,1302,1.078,1316,1.886,1322,1.957,1323,1.039,1324,1.078,1333,1.078,1345,1.039,1346,1.078,1350,2.301,1351,1.185,1352,2.043,1353,2.955,1354,1.125,1355,1.185,1356,1.399,1357,1.399,1358,2.805,1359,1.399,1360,1.399,1361,1.185,1362,7.181,1363,1.399,1364,1.125,1365,3.885,1366,1.125,1367,1.267,1368,1.267,1369,2.151,1370,2.301,1371,1.267,1372,1.078,1373,1.078,1374,2.301,1375,2.301,1376,1.185,1377,1.267,1378,2.151,1379,1.185,1380,1.185,1381,1.185,1382,1.267]],["component/26",[1,0.411]],["title/27-1",[23,25.689]],["name/27-1",[]],["text/27-1",[]],["component/27-1",[]],["title/27-2",[914,35.797]],["name/27-2",[]],["text/27-2",[]],["component/27-2",[]],["title/27-3",[169,26.855,1353,43.249]],["name/27-3",[]],["text/27-3",[]],["component/27-3",[]],["title/27-4",[914,26.526,1238,41.06]],["name/27-4",[]],["text/27-4",[]],["component/27-4",[]],["title/27-5",[26,18.526]],["name/27-5",[]],["text/27-5",[]],["component/27-5",[]],["title/27-6",[334,23.488]],["name/27-6",[]],["text/27-6",[]],["component/27-6",[]],["title/27-7",[269,18.168]],["name/27-7",[]],["text/27-7",[]],["component/27-7",[]],["title/27-8",[932,25.347]],["name/27-8",[]],["text/27-8",[]],["component/27-8",[]],["title/27-9",[788,18.782,934,21.076]],["name/27-9",[]],["text/27-9",[]],["component/27-9",[]],["title/27-10",[15,18.782,341,23.138]],["name/27-10",[]],["text/27-10",[]],["component/27-10",[]],["title/27",[125,25.246,158,18.726,483,21.069]],["name/27",[399,1.175]],["text/27",[3,0.626,8,1.293,10,1.693,11,0.789,12,2.15,16,0.676,24,0.518,25,0.74,26,0.464,67,0.761,69,0.534,72,0.78,75,1.502,80,0.597,86,0.368,91,1.744,92,2.044,93,1.999,95,1.145,96,1.173,99,0.74,107,1.563,108,0.597,111,0.562,124,0.503,125,3.962,130,0.643,135,0.386,140,1.387,147,1.814,148,0.729,149,1.593,150,1.574,154,2.869,156,2.886,158,3.957,161,0.452,165,0.573,168,0.754,169,1.613,173,0.518,176,0.467,177,1.84,178,1.437,188,0.643,189,0.812,190,0.789,191,0.643,192,0.49,196,0.543,205,0.626,207,0.497,210,0.552,211,0.597,212,1.018,227,0.406,229,1.655,230,1.371,268,0.957,269,0.455,318,0.413,326,0.971,330,1.074,331,0.643,332,0.526,333,0.374,346,0.526,354,0.597,355,0.417,362,0.709,374,1.488,387,0.683,389,0.511,399,1.461,430,1.91,462,0.709,476,1.332,477,0.438,480,3.755,483,3.307,484,1.387,485,0.662,500,0.611,536,0.834,540,0.526,569,0.597,570,0.971,587,0.643,596,0.683,654,0.834,705,0.456,717,0.643,723,0.626,747,0.74,753,0.74,763,0.611,764,0.402,791,0.484,797,0.78,801,1.281,808,0.78,840,1.947,884,0.78,899,0.662,900,0.543,911,0.804,912,0.643,914,2.389,918,0.683,919,1.461,932,0.339,933,0.484,934,0.38,943,0.518,955,1.135,956,0.676,958,0.696,959,0.41,982,3.501,986,1.074,1018,1.314,1038,0.74,1052,4.237,1053,0.78,1056,1.392,1101,1.489,1104,1.488,1147,0.709,1150,1.173,1151,1.387,1209,0.709,1213,1.173,1215,0.643,1223,1.173,1228,0.611,1238,1.387,1251,1.173,1302,0.709,1316,2.277,1317,0.78,1318,0.78,1319,0.74,1320,0.74,1322,2.797,1323,1.808,1324,1.876,1325,0.78,1326,1.461,1327,0.709,1328,0.626,1329,0.78,1330,2.597,1333,1.329,1345,1.281,1346,0.709,1353,1.461,1358,1.958,1364,0.74,1365,4.543,1366,0.74,1367,0.834,1368,0.834,1369,1.461,1370,1.563,1371,0.834,1372,1.329,1373,0.709,1374,1.563,1375,1.563,1376,1.461,1377,1.563,1378,1.461,1379,0.78,1380,0.78,1381,0.78,1382,0.834,1383,0.92,1384,0.92,1385,0.92,1386,0.92,1387,0.92,1388,0.834,1389,0.709,1390,0.92,1391,0.92,1392,0.92,1393,0.834,1394,0.92,1395,0.92,1396,0.834,1397,0.78,1398,1.725,1399,0.92,1400,0.92,1401,1.725,1402,0.78,1403,0.92,1404,0.92,1405,0.78,1406,0.643,1407,0.834,1408,6.066,1409,0.92,1410,0.92]],["component/27",[1,0.411]],["title/28-1",[23,25.689]],["name/28-1",[]],["text/28-1",[]],["component/28-1",[]],["title/28-2",[914,35.797]],["name/28-2",[]],["text/28-2",[]],["component/28-2",[]],["title/28-3",[26,18.526]],["name/28-3",[]],["text/28-3",[]],["component/28-3",[]],["title/28-4",[334,23.488]],["name/28-4",[]],["text/28-4",[]],["component/28-4",[]],["title/28-5",[269,18.168]],["name/28-5",[]],["text/28-5",[]],["component/28-5",[]],["title/28-6",[932,25.347]],["name/28-6",[]],["text/28-6",[]],["component/28-6",[]],["title/28-7",[788,18.782,934,21.076]],["name/28-7",[]],["text/28-7",[]],["component/28-7",[]],["title/28-8",[15,18.782,341,23.138]],["name/28-8",[]],["text/28-8",[]],["component/28-8",[]],["title/28",[125,20.939,158,15.531,483,17.474,486,27.049]],["name/28",[1411,1.256]],["text/28",[8,1.651,12,1.449,13,2.138,15,0.571,16,1.092,26,0.417,64,1.314,67,0.684,75,1.684,86,0.621,91,1.34,92,0.873,93,2.205,104,1.115,125,4.795,127,1.314,128,0.873,130,1.083,135,1.169,140,1.247,141,0.915,146,2.652,147,2.896,148,1.961,149,1.449,150,2.318,153,1.006,154,2.225,156,2.205,158,4.069,161,0.761,163,2.464,164,0.915,165,0.966,166,1.083,167,1.115,168,2.833,169,0.816,178,0.915,189,1.313,190,1.275,196,0.915,209,2.582,221,0.985,229,0.837,230,2.61,232,1.115,246,1.771,269,0.735,332,0.886,333,1.133,341,0.703,346,1.593,349,1.195,354,1.809,374,2.32,387,1.152,392,0.931,436,1.152,454,1.029,477,0.738,483,4.319,485,3.844,486,3.729,489,1.195,492,1.006,500,2.52,508,1.055,599,0.966,705,0.769,752,1.195,764,0.678,840,1.771,876,1.115,897,1.195,914,1.449,923,0.985,932,0.571,933,0.816,934,0.64,951,2.242,955,1.771,956,1.092,958,1.125,959,0.69,982,1.809,1052,3.733,1056,0.886,1101,2.251,1154,1.405,1163,1.029,1316,1.152,1322,2.148,1323,1.152,1324,1.195,1330,1.314,1345,1.152,1346,1.195,1351,1.314,1358,1.247,1362,3.44,1378,2.362,1379,1.314,1380,1.314,1381,1.314,1406,1.083,1411,5.869,1412,1.405,1413,1.314,1414,5.952,1415,2.787,1416,1.405,1417,1.152,1418,1.551,1419,1.115,1420,1.551,1421,1.551,1422,1.551,1423,1.551,1424,1.551,1425,1.551,1426,1.551]],["component/28",[1,0.411]],["title/29-1",[23,25.689]],["name/29-1",[]],["text/29-1",[]],["component/29-1",[]],["title/29-2",[914,35.797]],["name/29-2",[]],["text/29-2",[]],["component/29-2",[]],["title/29-3",[158,23.576,1333,39.337]],["name/29-3",[]],["text/29-3",[]],["component/29-3",[]],["title/29-4",[26,18.526]],["name/29-4",[]],["text/29-4",[]],["component/29-4",[]],["title/29-5",[334,23.488]],["name/29-5",[]],["text/29-5",[]],["component/29-5",[]],["title/29-6",[269,18.168]],["name/29-6",[]],["text/29-6",[]],["component/29-6",[]],["title/29-7",[932,25.347]],["name/29-7",[]],["text/29-7",[]],["component/29-7",[]],["title/29-8",[788,18.782,934,21.076]],["name/29-8",[]],["text/29-8",[]],["component/29-8",[]],["title/29-9",[15,18.782,341,23.138]],["name/29-9",[]],["text/29-9",[]],["component/29-9",[]],["title/29-10",[1033,32.768]],["name/29-10",[]],["text/29-10",[]],["component/29-10",[]],["title/29",[158,18.726,480,23.924,483,21.069]],["name/29",[1427,1.256]],["text/29",[3,0.815,8,1.354,10,0.559,12,3.097,16,0.864,26,0.322,35,1.908,41,1.7,67,0.973,69,0.696,75,1.112,80,0.778,86,0.48,91,1.06,92,0.675,93,1.409,111,0.733,114,0.602,125,1.374,130,0.837,147,2.509,148,1.296,149,1.146,150,1.928,152,0.665,154,2.294,156,3.197,158,3.394,161,0.588,164,0.708,168,1.34,169,1.161,177,1.324,178,0.708,182,0.631,188,0.837,189,1.443,190,1.74,192,0.639,227,1.352,229,1.191,230,1.725,259,0.747,268,0.665,269,0.808,326,0.675,333,0.487,350,1.119,354,0.778,355,0.544,363,1.778,374,1.872,376,0.778,389,0.665,415,0.815,462,0.924,466,4.795,476,1.207,477,0.57,480,4.782,483,3.493,500,0.796,510,1.638,526,1.016,567,1.086,573,1.086,587,0.837,593,0.747,677,1.039,705,1.094,739,0.815,753,0.964,763,2.033,764,0.524,796,0.733,801,1.638,840,1.946,900,0.708,914,1.146,918,0.891,933,0.631,934,0.495,955,1.429,956,1.2,958,0.89,959,0.534,969,0.837,974,1.374,982,1.431,983,0.837,985,0.891,990,1.016,1002,1.016,1010,0.964,1018,0.647,1038,0.964,1083,2.464,1084,1.016,1098,1.7,1101,2.677,1104,0.733,1112,0.656,1118,0.837,1150,2.084,1151,1.774,1209,0.924,1213,2.586,1215,0.837,1223,1.5,1228,0.796,1238,0.964,1265,1.638,1266,1.7,1299,1.016,1304,1.999,1305,1.869,1306,1.016,1307,1.869,1308,1.999,1309,1.999,1312,2.596,1313,1.016,1314,1.086,1315,0.924,1316,1.638,1317,1.016,1318,1.016,1319,0.964,1320,0.964,1322,2.361,1323,1.638,1324,1.7,1325,1.016,1326,2.596,1327,0.924,1328,0.815,1329,1.016,1333,2.93,1334,1.016,1335,2.93,1340,1.086,1342,2.361,1345,1.638,1346,0.924,1349,1.086,1358,0.964,1405,1.016,1427,4.995,1428,1.199,1429,1.086,1430,1.199,1431,1.016,1432,0.964,1433,1.199,1434,1.199,1435,0.924,1436,1.199,1437,0.891,1438,1.199,1439,1.199,1440,1.199,1441,1.199,1442,1.199,1443,1.199,1444,1.199,1445,1.199]],["component/29",[1,0.411]],["title/30-1",[23,25.689]],["name/30-1",[]],["text/30-1",[]],["component/30-1",[]],["title/30-2",[26,18.526]],["name/30-2",[]],["text/30-2",[]],["component/30-2",[]],["title/30-3",[334,23.488]],["name/30-3",[]],["text/30-3",[]],["component/30-3",[]],["title/30-4",[269,18.168]],["name/30-4",[]],["text/30-4",[]],["component/30-4",[]],["title/30-5",[932,25.347]],["name/30-5",[]],["text/30-5",[]],["component/30-5",[]],["title/30-6",[788,25.347]],["name/30-6",[]],["text/30-6",[]],["component/30-6",[]],["title/30-7",[788,18.782,934,21.076]],["name/30-7",[]],["text/30-7",[]],["component/30-7",[]],["title/30-8",[1033,32.768]],["name/30-8",[]],["text/30-8",[]],["component/30-8",[]],["title/30",[28,34.717,496,43.249]],["name/30",[1446,1.256]],["text/30",[8,2.273,11,3.791,16,1.627,26,0.658,67,1.079,75,0.888,82,1.758,86,0.979,93,2.364,101,1.967,114,2.084,128,1.377,147,3.269,148,1.034,149,2.158,150,3.1,154,1.018,156,1.975,160,1.865,161,1.2,168,2.368,176,1.241,189,2.549,190,2.477,210,1.468,227,1.079,229,1.32,230,4.024,269,1.428,333,0.994,338,4.085,346,2.373,350,1.241,354,1.587,355,1.108,367,1.468,421,2.215,477,1.975,496,5.406,598,4.171,677,1.956,705,1.213,760,1.884,764,1.07,840,2.638,890,2.072,897,1.884,933,1.286,934,1.01,943,1.377,955,2.976,956,2.12,958,1.675,959,1.088,989,1.884,1018,1.32,1061,2.215,1101,4.024,1186,1.708,1334,2.072,1335,1.884,1369,2.072,1446,7.04,1447,4.153,1448,2.445,1449,2.445,1450,2.445,1451,2.215,1452,2.445,1453,2.445,1454,2.215,1455,4.153,1456,2.445,1457,2.445,1458,2.445,1459,1.816,1460,2.445]],["component/30",[1,0.411]],["title/31-1",[23,25.689]],["name/31-1",[]],["text/31-1",[]],["component/31-1",[]],["title/31-2",[26,18.526]],["name/31-2",[]],["text/31-2",[]],["component/31-2",[]],["title/31-3",[334,23.488]],["name/31-3",[]],["text/31-3",[]],["component/31-3",[]],["title/31-4",[269,18.168]],["name/31-4",[]],["text/31-4",[]],["component/31-4",[]],["title/31-5",[932,25.347]],["name/31-5",[]],["text/31-5",[]],["component/31-5",[]],["title/31-6",[8,18.179,958,20.594]],["name/31-6",[]],["text/31-6",[]],["component/31-6",[]],["title/31-7",[10,32.125]],["name/31-7",[]],["text/31-7",[]],["component/31-7",[]],["title/31-8",[8,18.179,1208,27.933]],["name/31-8",[]],["text/31-8",[]],["component/31-8",[]],["title/31-9",[788,18.782,934,21.076]],["name/31-9",[]],["text/31-9",[]],["component/31-9",[]],["title/31-10",[15,18.782,341,23.138]],["name/31-10",[]],["text/31-10",[]],["component/31-10",[]],["title/31",[491,48.111]],["name/31",[491,0.968]],["text/31",[0,0.807,8,2.949,11,0.543,12,1.96,16,1.477,19,0.632,21,0.754,24,0.668,26,0.319,27,0.807,28,0.807,61,0.915,67,0.964,69,0.689,75,2.655,86,0.475,91,0.57,93,2.902,108,0.77,111,1.335,115,1.006,128,1.23,135,1.851,147,1.741,148,0.924,150,1.914,154,0.494,156,2.605,160,0.533,164,0.7,168,0.956,176,0.602,180,0.641,185,0.609,189,1.029,190,1,192,1.164,196,0.7,203,4.027,212,1.29,227,0.964,249,0.725,255,1.823,268,0.659,269,1.312,289,1.269,311,1.075,326,0.668,332,0.678,334,0.745,343,1.571,346,0.678,355,0.991,369,1.623,390,0.882,425,3.303,430,1.15,474,0.807,476,0.65,477,0.565,491,6.752,512,1.571,513,2.264,516,2.712,529,0.882,540,0.678,587,0.829,591,1.006,609,0.807,656,1.451,666,0.853,705,0.589,709,1.075,720,0.955,764,0.956,789,0.882,791,0.624,804,0.807,840,0.754,875,1.006,891,0.754,911,0.554,915,1.006,923,0.754,933,0.624,934,0.49,943,2.802,955,1.416,956,1.477,958,0.882,959,0.528,969,0.829,978,0.955,982,0.77,1012,0.955,1037,1.006,1056,1.736,1073,0.548,1101,1.832,1109,0.754,1133,2.712,1158,0.853,1168,1.71,1223,1.486,1302,0.915,1461,1.187,1462,3.037,1463,1.006,1464,1.187,1465,1.187,1466,2.185,1467,1.075,1468,1.075,1469,1.187,1470,1.075,1471,1.187,1472,1.187,1473,1.187,1474,1.187,1475,1.187,1476,7.584,1477,1.187,1478,3.037,1479,1.006,1480,1.075,1481,0.788,1482,3.196,1483,1.571,1484,2.34,1485,1.852,1486,1.418,1487,3.418,1488,1.187,1489,1.006,1490,1.187,1491,1.98,1492,1.187,1493,1.075,1494,1.187,1495,1.187,1496,3.037,1497,1.187,1498,1.075,1499,2.185,1500,2.185,1501,4.413,1502,2.185,1503,1.187,1504,1.187,1505,1.187,1506,1.187,1507,1.075,1508,1.187,1509,1.187,1510,1.187,1511,1.187,1512,1.758,1513,0.882,1514,1.187,1515,1.075]],["component/31",[1,0.411]],["title/32-1",[23,25.689]],["name/32-1",[]],["text/32-1",[]],["component/32-1",[]],["title/32-2",[26,18.526]],["name/32-2",[]],["text/32-2",[]],["component/32-2",[]],["title/32-3",[334,23.488]],["name/32-3",[]],["text/32-3",[]],["component/32-3",[]],["title/32-4",[269,18.168]],["name/32-4",[]],["text/32-4",[]],["component/32-4",[]],["title/32-5",[932,25.347]],["name/32-5",[]],["text/32-5",[]],["component/32-5",[]],["title/32-6",[8,18.179,958,20.594]],["name/32-6",[]],["text/32-6",[]],["component/32-6",[]],["title/32-7",[15,18.782,341,23.138]],["name/32-7",[]],["text/32-7",[]],["component/32-7",[]],["title/32",[485,36.704,492,33.12]],["name/32",[1516,1.256]],["text/32",[0,1.224,7,3.853,8,2.82,10,0.839,11,0.823,15,0.662,16,1.247,19,0.959,26,0.484,43,1.121,55,1.294,67,0.794,75,1.554,91,0.865,93,2.189,96,1.224,135,0.755,145,1.045,147,2.04,148,1.346,150,1.381,163,2.066,168,1.392,177,1.911,178,1.062,192,0.959,204,1.1,207,0.972,227,1.405,230,1.792,249,1.945,269,1.364,315,1.525,322,1.525,326,1.013,332,1.029,333,0.732,334,0.614,347,1.257,348,1.168,350,0.913,355,0.816,369,1.337,376,1.168,392,1.911,425,2.113,430,0.947,438,1.387,440,1.168,461,1.525,476,0.985,477,2.811,485,5.077,491,1.257,492,4.237,493,2.365,500,1.195,505,1.143,513,1.08,520,1.143,547,1.294,570,1.792,580,1.337,603,1.257,620,1.448,656,2.841,666,1.294,694,2.066,705,0.893,796,1.1,911,0.839,914,0.935,943,1.013,956,1.247,974,1.121,982,1.168,1017,1.168,1056,1.819,1062,4.148,1073,0.831,1079,1.448,1109,1.143,1120,1.337,1150,1.224,1158,1.294,1186,1.257,1211,1.224,1251,2.165,1328,2.165,1354,1.448,1355,2.697,1389,1.387,1407,1.631,1413,1.525,1417,1.337,1432,1.448,1481,2.113,1483,1.294,1512,2.561,1513,1.337,1515,1.631,1516,5.917,1517,3.183,1518,1.631,1519,1.631,1520,1.8,1521,1.8,1522,1.8,1523,1.8,1524,1.525,1525,1.8,1526,1.387,1527,1.525,1528,3.183,1529,1.8,1530,1.8,1531,1.8,1532,1.8,1533,1.8,1534,1.525,1535,1.631,1536,1.448,1537,1.525,1538,1.631,1539,1.525,1540,6.53,1541,1.631,1542,1.8,1543,1.8,1544,1.337,1545,3.183,1546,4.28,1547,1.8,1548,1.448]],["component/32",[1,0.411]],["title/33-1",[23,25.689]],["name/33-1",[]],["text/33-1",[]],["component/33-1",[]],["title/33-2",[26,18.526]],["name/33-2",[]],["text/33-2",[]],["component/33-2",[]],["title/33-3",[334,23.488]],["name/33-3",[]],["text/33-3",[]],["component/33-3",[]],["title/33-4",[269,18.168]],["name/33-4",[]],["text/33-4",[]],["component/33-4",[]],["title/33-5",[932,25.347]],["name/33-5",[]],["text/33-5",[]],["component/33-5",[]],["title/33-6",[8,18.179,958,20.594]],["name/33-6",[]],["text/33-6",[]],["component/33-6",[]],["title/33-7",[8,18.179,1208,27.933]],["name/33-7",[]],["text/33-7",[]],["component/33-7",[]],["title/33-8",[788,18.782,934,21.076]],["name/33-8",[]],["text/33-8",[]],["component/33-8",[]],["title/33-9",[15,18.782,341,23.138]],["name/33-9",[]],["text/33-9",[]],["component/33-9",[]],["title/33-10",[1208,37.696]],["name/33-10",[]],["text/33-10",[]],["component/33-10",[]],["title/33-11",[1033,32.768]],["name/33-11",[]],["text/33-11",[]],["component/33-11",[]],["title/33",[492,33.12,493,37.915]],["name/33",[1539,1.175]],["text/33",[7,3.332,8,2.601,12,1.48,16,1.391,26,0.296,43,0.685,45,0.639,67,0.486,75,1.29,86,1.14,91,0.529,93,2.371,135,0.462,145,0.639,147,1.862,148,1.764,150,2.62,154,0.848,160,0.916,168,1.824,176,0.559,189,0.518,190,0.504,192,1.517,204,0.673,207,1.101,230,1.148,246,0.699,249,1.246,269,1.244,289,1.653,291,0.792,331,0.769,332,0.629,333,0.448,334,0.375,347,0.769,355,1.291,369,0.818,423,2.115,425,1.353,430,0.579,440,0.714,459,0.848,461,0.933,472,0.739,492,4.154,493,6.238,505,4.465,513,1.224,516,0.792,520,0.699,540,1.165,570,1.603,580,0.818,589,1.323,603,0.769,620,0.886,653,0.848,656,4.01,666,0.792,677,1.673,705,0.546,739,0.749,764,0.482,773,1.809,791,0.579,796,0.673,816,1.571,818,1.847,882,1.035,907,0.818,933,0.579,934,0.455,955,1.945,956,1.848,958,1.433,959,0.49,982,0.714,986,1.269,987,0.818,988,0.933,1017,4.154,1018,2.547,1056,1.165,1062,2.256,1079,0.886,1080,0.886,1101,2.529,1120,0.818,1133,0.792,1148,1.353,1150,0.749,1152,1.571,1158,2.554,1168,2.932,1225,0.997,1265,0.818,1328,1.387,1355,1.727,1372,2.194,1389,0.848,1419,1.466,1432,0.886,1463,0.933,1479,0.933,1481,0.731,1484,0.848,1498,0.997,1512,1.64,1513,2.638,1527,0.933,1534,0.933,1535,0.997,1536,1.64,1537,0.933,1538,0.997,1539,1.727,1541,6.097,1548,2.29,1549,0.997,1550,1.101,1551,0.886,1552,1.101,1553,1.101,1554,1.101,1555,1.101,1556,1.101,1557,3.778,1558,1.101,1559,3.778,1560,1.101,1561,2.039,1562,4.17,1563,1.101,1564,1.101,1565,1.101,1566,1.101,1567,1.101,1568,1.101,1569,1.101,1570,3.218,1571,2.847,1572,2.039,1573,4.17,1574,1.101,1575,1.101,1576,1.101,1577,1.101,1578,1.101,1579,1.101,1580,1.101,1581,1.101]],["component/33",[1,0.411]],["title/34-1",[23,25.689]],["name/34-1",[]],["text/34-1",[]],["component/34-1",[]],["title/34-2",[26,18.526]],["name/34-2",[]],["text/34-2",[]],["component/34-2",[]],["title/34-3",[334,23.488]],["name/34-3",[]],["text/34-3",[]],["component/34-3",[]],["title/34-4",[269,18.168]],["name/34-4",[]],["text/34-4",[]],["component/34-4",[]],["title/34-5",[932,25.347]],["name/34-5",[]],["text/34-5",[]],["component/34-5",[]],["title/34-6",[788,18.782,934,21.076]],["name/34-6",[]],["text/34-6",[]],["component/34-6",[]],["title/34-7",[15,18.782,341,23.138]],["name/34-7",[]],["text/34-7",[]],["component/34-7",[]],["title/34-8",[1033,32.768]],["name/34-8",[]],["text/34-8",[]],["component/34-8",[]],["title/34-9",[1208,37.696]],["name/34-9",[]],["text/34-9",[]],["component/34-9",[]],["title/34",[376,33.12,377,35.65]],["name/34",[1582,1.175]],["text/34",[1,0.512,8,2.048,13,2.826,16,1.622,26,0.464,33,1.075,35,2.078,67,1.354,75,1.504,86,0.692,93,1.534,108,1.121,114,1.54,129,1.782,135,0.725,145,1.782,147,1.634,148,0.73,149,0.898,150,0.749,154,1.277,156,2.388,158,2.656,160,0.776,161,1.506,164,1.019,168,2.196,173,0.972,176,0.876,178,1.019,229,1.657,246,1.097,269,1.324,333,0.702,339,1.842,354,1.121,355,1.878,374,2.531,376,3.731,377,2.893,389,0.958,430,0.909,435,1.331,449,2.631,465,2.469,466,5.004,483,1.595,494,4.908,548,1.331,570,1.728,677,2.999,695,1.121,763,1.146,764,0.755,815,1.565,816,1.331,873,1.331,897,1.331,900,1.019,908,6.468,916,1.389,917,1.463,918,1.283,933,0.909,934,0.713,936,1.565,955,2.341,956,1.966,958,1.671,959,0.769,974,1.075,1003,2.6,1018,3.104,1084,1.463,1148,3.332,1186,1.206,1226,1.565,1405,1.463,1406,1.206,1582,8.125,1583,1.727,1584,1.727,1585,1.727,1586,1.727,1587,1.727,1588,1.565,1589,1.565,1590,3.069,1591,4.548,1592,5.21,1593,1.727,1594,1.727,1595,1.727,1596,1.727,1597,2.781,1598,4.548,1599,1.727,1600,1.727,1601,1.727,1602,1.727,1603,1.727,1604,1.727,1605,1.727,1606,1.727]],["component/34",[1,0.411]],["title/35-1",[23,25.689]],["name/35-1",[]],["text/35-1",[]],["component/35-1",[]],["title/35-2",[26,18.526]],["name/35-2",[]],["text/35-2",[]],["component/35-2",[]],["title/35-3",[334,23.488]],["name/35-3",[]],["text/35-3",[]],["component/35-3",[]],["title/35-4",[269,18.168]],["name/35-4",[]],["text/35-4",[]],["component/35-4",[]],["title/35-5",[932,25.347]],["name/35-5",[]],["text/35-5",[]],["component/35-5",[]],["title/35-6",[788,25.347]],["name/35-6",[]],["text/35-6",[]],["component/35-6",[]],["title/35-7",[788,18.782,934,21.076]],["name/35-7",[]],["text/35-7",[]],["component/35-7",[]],["title/35-8",[1033,32.768]],["name/35-8",[]],["text/35-8",[]],["component/35-8",[]],["title/35",[207,18.154,350,17.064,476,18.401,495,28.49]],["name/35",[1607,1.256]],["text/35",[8,2.257,11,3.251,16,1.612,24,1.363,26,1.107,27,1.646,28,1.646,67,1.068,75,1.495,80,1.57,86,0.969,93,2.348,114,2.065,124,1.324,141,1.428,147,3.253,148,1.024,149,2.139,150,3.081,154,1.007,156,1.958,160,1.849,161,1.188,168,2.35,189,2.53,190,2.458,205,1.646,207,1.307,211,1.57,230,4,231,2.193,255,1.453,269,1.417,333,0.984,338,4.061,343,1.74,346,2.353,350,1.228,354,1.57,355,1.097,376,1.57,438,1.865,440,1.57,476,1.324,477,1.958,495,3.488,540,1.383,598,4.14,677,1.939,705,1.201,720,1.947,764,1.059,789,1.798,840,2.615,933,1.273,934,0.999,949,1.947,955,2.956,956,2.104,958,1.661,959,1.077,966,1.947,994,2.193,1018,1.307,1101,4.004,1194,3.73,1260,1.865,1335,1.865,1352,1.947,1354,1.947,1431,2.05,1454,2.193,1607,6.437,1608,2.42,1609,1.947,1610,2.42,1611,2.193,1612,2.42,1613,2.42,1614,2.42,1615,2.42,1616,2.42,1617,2.42]],["component/35",[1,0.411]],["title/36-1",[23,25.689]],["name/36-1",[]],["text/36-1",[]],["component/36-1",[]],["title/36-2",[26,18.526]],["name/36-2",[]],["text/36-2",[]],["component/36-2",[]],["title/36-3",[334,23.488]],["name/36-3",[]],["text/36-3",[]],["component/36-3",[]],["title/36-4",[269,18.168]],["name/36-4",[]],["text/36-4",[]],["component/36-4",[]],["title/36-5",[932,25.347]],["name/36-5",[]],["text/36-5",[]],["component/36-5",[]],["title/36-6",[788,25.347]],["name/36-6",[]],["text/36-6",[]],["component/36-6",[]],["title/36",[377,35.65,494,39.337]],["name/36",[402,1.175]],["text/36",[8,1.935,10,1.146,12,2.168,13,3.059,15,0.904,16,1.634,26,0.661,43,1.531,75,1.515,86,0.984,93,3.077,135,1.031,147,1.646,148,1.04,150,1.809,154,1.023,156,1.169,160,2.441,189,1.964,190,1.908,192,1.31,196,1.45,209,2.837,216,1.595,227,1.085,230,2.348,269,1.433,333,0.999,348,1.595,350,2.117,354,1.595,374,1.502,377,1.717,392,2.504,402,6.602,430,1.293,454,1.631,466,2.837,492,1.595,494,6.005,537,1.894,548,1.894,694,1.595,705,1.22,763,4.25,764,1.075,765,2.083,788,0.904,791,1.293,907,3.098,908,5.325,911,1.146,943,1.384,956,0.963,958,0.992,959,1.094,977,1.672,1018,2.252,1073,2.51,1081,1.977,1087,2.227,1101,3.482,1109,1.561,1148,1.631,1270,3.526,1431,2.083,1479,2.083,1483,1.767,1519,3.779,1544,1.826,1582,5.425,1591,2.227,1592,2.227,1597,3.779,1598,4.923,1618,4.171,1619,2.458,1620,4.171,1621,4.171,1622,2.458,1623,5.433,1624,2.458]],["component/36",[1,0.411]],["title/37-1",[23,25.689]],["name/37-1",[]],["text/37-1",[]],["component/37-1",[]],["title/37-2",[26,18.526]],["name/37-2",[]],["text/37-2",[]],["component/37-2",[]],["title/37-3",[334,23.488]],["name/37-3",[]],["text/37-3",[]],["component/37-3",[]],["title/37-4",[269,18.168]],["name/37-4",[]],["text/37-4",[]],["component/37-4",[]],["title/37-5",[932,25.347]],["name/37-5",[]],["text/37-5",[]],["component/37-5",[]],["title/37-6",[788,18.782,934,21.076]],["name/37-6",[]],["text/37-6",[]],["component/37-6",[]],["title/37-7",[332,39.371]],["name/37-7",[]],["text/37-7",[]],["component/37-7",[]],["title/37-8",[1208,37.696]],["name/37-8",[]],["text/37-8",[]],["component/37-8",[]],["title/37-9",[10,32.125]],["name/37-9",[]],["text/37-9",[]],["component/37-9",[]],["title/37",[1011,53.086]],["name/37",[1011,1.069]],["text/37",[1,0.49,6,1.011,8,1.732,16,1.157,26,1.502,30,1.051,35,3.606,39,1.275,40,1.331,51,1.229,61,1.275,75,1.073,93,4.15,116,4.494,122,1.051,135,0.694,138,1.402,145,0.96,149,2.079,150,1.281,154,0.688,160,0.743,168,1.75,169,2.105,185,1.517,204,1.011,205,1.125,207,1.595,210,0.993,212,0.976,229,0.893,233,0.881,246,1.051,268,0.918,269,1.055,286,4.305,292,2.542,316,1.19,320,1.876,350,0.84,355,2.811,427,2.972,517,5.275,520,1.051,540,3.193,555,1.229,565,3.902,570,0.931,589,1.916,630,5.185,643,2.503,671,1.499,705,0.821,773,3.09,788,0.609,882,0.84,899,3.497,933,0.87,934,0.683,955,2.268,956,1.567,958,0.667,986,1.03,1011,6.125,1012,1.331,1013,1.19,1014,1.402,1015,1.499,1223,2.009,1228,1.098,1419,1.19,1481,1.098,1486,1.916,1625,2.676,1626,2.276,1627,2.194,1628,1.654,1629,2.503,1630,1.499,1631,1.499,1632,1.654,1633,1.654,1634,1.499,1635,1.654,1636,1.499,1637,2.954,1638,2.954,1639,1.499,1640,1.654,1641,1.654,1642,1.654,1643,1.654,1644,1.654,1645,1.654,1646,2.376,1647,1.331,1648,1.654,1649,1.499,1650,4.407,1651,4.407,1652,1.499,1653,1.654,1654,1.654]],["component/37",[1,0.411]],["title/38-1",[23,25.689]],["name/38-1",[]],["text/38-1",[]],["component/38-1",[]],["title/38-2",[26,18.526]],["name/38-2",[]],["text/38-2",[]],["component/38-2",[]],["title/38-3",[1655,62.413]],["name/38-3",[]],["text/38-3",[]],["component/38-3",[]],["title/38-4",[334,23.488]],["name/38-4",[]],["text/38-4",[]],["component/38-4",[]],["title/38-5",[269,18.168]],["name/38-5",[]],["text/38-5",[]],["component/38-5",[]],["title/38-6",[932,25.347]],["name/38-6",[]],["text/38-6",[]],["component/38-6",[]],["title/38-7",[788,18.782,934,21.076]],["name/38-7",[]],["text/38-7",[]],["component/38-7",[]],["title/38-8",[1208,37.696]],["name/38-8",[]],["text/38-8",[]],["component/38-8",[]],["title/38-9",[1656,62.413]],["name/38-9",[]],["text/38-9",[]],["component/38-9",[]],["title/38-10",[334,23.488]],["name/38-10",[]],["text/38-10",[]],["component/38-10",[]],["title/38-11",[269,18.168]],["name/38-11",[]],["text/38-11",[]],["component/38-11",[]],["title/38-12",[932,25.347]],["name/38-12",[]],["text/38-12",[]],["component/38-12",[]],["title/38-13",[788,18.782,934,21.076]],["name/38-13",[]],["text/38-13",[]],["component/38-13",[]],["title/38-14",[1033,32.768]],["name/38-14",[]],["text/38-14",[]],["component/38-14",[]],["title/38-15",[1208,37.696]],["name/38-15",[]],["text/38-15",[]],["component/38-15",[]],["title/38-16",[1657,62.413]],["name/38-16",[]],["text/38-16",[]],["component/38-16",[]],["title/38-17",[334,23.488]],["name/38-17",[]],["text/38-17",[]],["component/38-17",[]],["title/38-18",[269,18.168]],["name/38-18",[]],["text/38-18",[]],["component/38-18",[]],["title/38-19",[932,25.347]],["name/38-19",[]],["text/38-19",[]],["component/38-19",[]],["title/38-20",[788,18.782,934,21.076]],["name/38-20",[]],["text/38-20",[]],["component/38-20",[]],["title/38-21",[1033,32.768]],["name/38-21",[]],["text/38-21",[]],["component/38-21",[]],["title/38",[877,53.086]],["name/38",[877,1.069]],["text/38",[0,0.622,4,5.003,7,3.172,8,2.039,15,0.337,16,1.956,24,0.966,26,0.461,35,1.531,51,0.679,67,0.757,69,0.996,75,0.623,79,1.38,86,0.687,93,2.349,114,0.861,135,1.921,145,0.996,146,0.639,147,2.121,148,0.725,149,0.475,150,1.323,154,0.714,160,1.37,168,2.504,169,0.481,174,1.233,177,0.549,189,0.431,190,0.418,200,0.705,202,0.736,207,0.494,210,0.549,223,1.012,227,0.757,230,2.319,233,0.914,255,0.549,256,0.705,269,1.594,334,0.585,338,1.384,344,1.692,355,2.875,442,0.705,471,1.429,492,0.593,511,2.517,513,3.436,540,1.384,562,5.122,565,2.131,568,0.775,570,0.515,589,1.113,656,1.139,666,2.194,705,2.044,730,1.09,755,4.56,764,0.75,773,3.84,795,3.849,816,1.322,877,0.705,882,0.464,900,0.54,911,0.8,924,1.167,943,0.515,955,1.423,956,1.793,958,0.977,959,0.764,985,1.274,1000,0.829,1013,0.658,1017,3.714,1021,0.736,1064,1.233,1068,0.705,1073,1.903,1100,1.139,1101,2,1104,0.559,1148,2.734,1150,3.397,1168,2.319,1406,0.639,1412,2.764,1481,0.607,1486,2.344,1629,2.052,1655,6.829,1656,4.525,1657,5.477,1658,0.915,1659,1.38,1660,0.915,1661,0.736,1662,2.422,1663,0.775,1664,0.915,1665,0.915,1666,0.915,1667,0.915,1668,1.453,1669,4.119,1670,0.775,1671,0.915,1672,1.715,1673,0.915,1674,3.613,1675,1.554,1676,0.915,1677,0.915,1678,0.915,1679,0.915,1680,2.585,1681,3.05,1682,0.915,1683,2.454,1684,2.052,1685,1.554,1686,0.915,1687,0.915,1688,0.915,1689,0.915,1690,0.915,1691,0.915,1692,0.915,1693,0.915,1694,1.715,1695,0.915,1696,0.915,1697,2.195,1698,0.915,1699,0.915,1700,1.554,1701,0.915]],["component/38",[1,0.411]],["title/39-1",[23,25.689]],["name/39-1",[]],["text/39-1",[]],["component/39-1",[]],["title/39-2",[26,18.526]],["name/39-2",[]],["text/39-2",[]],["component/39-2",[]],["title/39-3",[334,23.488]],["name/39-3",[]],["text/39-3",[]],["component/39-3",[]],["title/39-4",[269,18.168]],["name/39-4",[]],["text/39-4",[]],["component/39-4",[]],["title/39-5",[932,25.347]],["name/39-5",[]],["text/39-5",[]],["component/39-5",[]],["title/39-6",[788,25.347]],["name/39-6",[]],["text/39-6",[]],["component/39-6",[]],["title/39-7",[1208,37.696]],["name/39-7",[]],["text/39-7",[]],["component/39-7",[]],["title/39-8",[1033,32.768]],["name/39-8",[]],["text/39-8",[]],["component/39-8",[]],["title/39-9",[10,32.125]],["name/39-9",[]],["text/39-9",[]],["component/39-9",[]],["title/39",[1016,53.086]],["name/39",[1016,1.069]],["text/39",[8,1.121,11,0.435,12,2.202,15,1.158,16,0.696,26,0.255,30,0.603,31,0.683,33,1.106,35,0.892,43,0.591,45,1.827,67,1.105,75,1.143,91,2.816,92,1.41,93,3.68,95,1.179,114,0.477,117,0.683,129,0.551,135,1.05,141,0.56,145,0.551,147,0.701,148,0.752,149,3.045,150,2.039,152,0.986,154,1.549,161,0.872,168,0.777,169,3.083,176,0.482,185,2.175,188,0.663,189,0.447,190,0.435,192,1.983,210,0.57,212,0.56,222,0.805,227,0.419,230,1.41,233,1.983,243,0.603,255,1.067,260,0.764,269,0.982,292,1.129,326,0.535,333,0.386,334,0.324,341,0.431,348,0.616,355,3.178,389,0.527,392,1.503,415,1.209,449,0.603,465,0.764,471,1.477,474,0.646,491,0.663,513,1.503,514,2.338,515,0.616,517,1.179,540,3.533,560,0.86,564,1.506,565,4.526,569,1.153,570,0.535,587,0.663,588,0.683,589,2.415,593,0.591,624,0.732,668,0.86,674,0.86,677,1.179,679,0.86,680,0.86,681,3.984,682,0.86,687,0.86,688,0.86,694,1.153,695,0.616,697,1.32,705,0.882,711,0.732,773,3.255,816,0.732,882,1.889,891,0.603,911,0.443,914,0.494,924,0.646,943,1,956,0.981,958,1.01,968,0.805,983,0.663,1011,2.426,1013,0.683,1016,6.063,1017,1.153,1028,0.764,1073,0.821,1101,2.283,1109,0.603,1120,1.32,1126,0.705,1141,0.764,1148,1.179,1211,0.646,1223,0.646,1251,0.646,1328,1.703,1417,0.705,1419,1.278,1437,0.705,1463,0.805,1483,0.683,1486,1.153,1544,0.705,1630,2.268,1631,2.268,1663,1.506,1684,1.506,1702,3.372,1703,0.86,1704,0.86,1705,0.86,1706,0.86,1707,0.86,1708,2.121,1709,0.86,1710,0.95,1711,0.95,1712,0.95,1713,3.147,1714,3.722,1715,1.777,1716,0.95,1717,3.722,1718,0.95,1719,0.95,1720,0.86,1721,1.777,1722,0.86,1723,0.764,1724,0.95,1725,1.777,1726,0.95,1727,0.95,1728,0.95,1729,0.95,1730,1.777,1731,0.95,1732,0.86,1733,0.95,1734,0.95,1735,0.95,1736,1.777,1737,0.95,1738,0.95,1739,0.95,1740,0.95,1741,0.95,1742,0.95,1743,2.121,1744,0.95,1745,2.504,1746,0.95,1747,0.86,1748,0.86,1749,0.95,1750,0.95,1751,0.95,1752,0.95]],["component/39",[1,0.411]],["title/40-1",[23,25.689]],["name/40-1",[]],["text/40-1",[]],["component/40-1",[]],["title/40-2",[26,18.526]],["name/40-2",[]],["text/40-2",[]],["component/40-2",[]],["title/40-3",[334,23.488]],["name/40-3",[]],["text/40-3",[]],["component/40-3",[]],["title/40-4",[269,18.168]],["name/40-4",[]],["text/40-4",[]],["component/40-4",[]],["title/40-5",[932,25.347]],["name/40-5",[]],["text/40-5",[]],["component/40-5",[]],["title/40-6",[788,18.782,934,21.076]],["name/40-6",[]],["text/40-6",[]],["component/40-6",[]],["title/40-7",[332,39.371]],["name/40-7",[]],["text/40-7",[]],["component/40-7",[]],["title/40-8",[1208,37.696]],["name/40-8",[]],["text/40-8",[]],["component/40-8",[]],["title/40-9",[10,32.125]],["name/40-9",[]],["text/40-9",[]],["component/40-9",[]],["title/40",[1022,53.086]],["name/40",[1022,1.069]],["text/40",[1,0.57,6,1.176,8,1.932,15,0.708,16,1.323,26,1.66,30,1.223,35,0.966,36,4.319,51,1.43,61,1.483,69,1.118,75,0.699,93,4.277,116,4.965,135,0.808,138,1.631,149,2.345,154,0.801,168,1.974,169,2.374,204,1.176,205,1.309,207,1.039,211,1.249,212,1.136,229,1.039,233,1.026,246,1.223,268,1.068,269,1.19,286,4.757,292,2.146,316,1.384,350,0.977,352,1.483,355,2.798,427,3.315,517,5.166,520,1.223,540,3.528,555,1.43,570,1.084,630,4.757,643,2.862,773,3.446,788,0.708,899,3.245,933,1.013,934,0.795,955,2.53,956,1.768,958,0.777,978,1.548,986,1.199,1013,1.384,1014,1.631,1022,5.239,1023,1.631,1481,1.278,1486,2.192,1625,3.06,1626,2.603,1627,1.43,1629,2.862,1634,1.744,1636,1.744,1646,2.717,1647,1.548,1649,1.744,1650,4.915,1651,4.915,1652,1.744,1680,1.631,1753,1.925,1754,1.925,1755,1.744,1756,1.925,1757,1.925,1758,3.378,1759,1.925,1760,1.925,1761,1.925,1762,1.925,1763,1.925,1764,1.925,1765,1.925]],["component/40",[1,0.411]],["title/41-1",[23,25.689]],["name/41-1",[]],["text/41-1",[]],["component/41-1",[]],["title/41-2",[26,18.526]],["name/41-2",[]],["text/41-2",[]],["component/41-2",[]],["title/41-3",[334,23.488]],["name/41-3",[]],["text/41-3",[]],["component/41-3",[]],["title/41-4",[269,18.168]],["name/41-4",[]],["text/41-4",[]],["component/41-4",[]],["title/41-5",[932,25.347]],["name/41-5",[]],["text/41-5",[]],["component/41-5",[]],["title/41-6",[788,25.347]],["name/41-6",[]],["text/41-6",[]],["component/41-6",[]],["title/41-7",[36,22.498,517,26.91,882,20.575]],["name/41-7",[]],["text/41-7",[]],["component/41-7",[]],["title/41-8",[1208,37.696]],["name/41-8",[]],["text/41-8",[]],["component/41-8",[]],["title/41-9",[36,28.326,161,25.052]],["name/41-9",[]],["text/41-9",[]],["component/41-9",[]],["title/41-10",[10,32.125]],["name/41-10",[]],["text/41-10",[]],["component/41-10",[]],["title/41",[807,55.412]],["name/41",[1766,1.386]],["text/41",[7,1.039,8,0.884,15,0.648,16,0.972,21,0.597,26,0.473,28,0.639,30,1.983,31,1.266,36,4.542,67,0.777,75,1.133,80,1.142,86,0.376,91,0.846,92,0.991,93,4.587,95,1.168,96,1.197,106,1.266,114,0.883,121,0.639,129,2.144,135,0.738,137,0.657,154,1.033,161,1.532,168,0.411,173,0.529,176,0.477,192,2.488,211,0.61,212,1.039,229,0.95,243,0.597,255,0.564,269,0.823,317,1.307,320,0.597,332,0.537,333,0.716,341,0.426,355,0.798,389,1.732,423,1.307,483,0.489,511,1.076,514,2.743,515,3.551,517,2.072,565,3.554,580,2.743,586,1.996,587,0.657,609,1.688,630,2.406,661,1.491,677,2.577,705,0.873,757,1.491,760,0.725,767,0.797,768,0.797,771,0.797,772,3.755,773,2.966,784,0.797,788,0.648,791,0.495,796,1.907,807,5.404,809,0.852,810,2.103,874,0.797,882,1.874,887,1.996,891,1.118,899,0.676,916,0.756,938,0.585,956,1.223,958,1.001,966,1.416,983,0.657,989,0.725,1022,2.846,1024,0.852,1025,0.852,1026,0.852,1029,0.797,1030,0.797,1056,0.537,1064,0.676,1073,0.813,1126,0.698,1148,1.168,1372,0.725,1406,0.657,1481,0.624,1486,0.61,1609,0.756,1627,0.698,1646,3.755,1647,3.755,1663,0.797,1709,0.852,1722,1.595,1723,0.756,1755,1.595,1767,0.797,1768,0.852,1769,0.725,1770,0.852,1771,0.94,1772,0.94,1773,0.94,1774,0.94,1775,0.94,1776,0.94,1777,0.94,1778,0.94,1779,0.94,1780,0.94,1781,0.94,1782,0.94,1783,0.94,1784,0.94,1785,0.94,1786,4.668,1787,2.482,1788,1.76,1789,0.94,1790,0.852,1791,1.76,1792,1.595,1793,1.76,1794,0.94,1795,0.94,1796,1.76,1797,0.94,1798,0.852,1799,0.94,1800,0.94,1801,0.94,1802,0.852]],["component/41",[1,0.411]],["title/42-1",[23,25.689]],["name/42-1",[]],["text/42-1",[]],["component/42-1",[]],["title/42-2",[26,18.526]],["name/42-2",[]],["text/42-2",[]],["component/42-2",[]],["title/42-3",[334,23.488]],["name/42-3",[]],["text/42-3",[]],["component/42-3",[]],["title/42-4",[1013,36.704,1028,41.06]],["name/42-4",[]],["text/42-4",[]],["component/42-4",[]],["title/42",[35,25.61,514,37.915]],["name/42",[1016,1.069]],["text/42",[3,1.784,10,2.657,11,1.2,15,1.621,21,1.666,26,0.705,35,3.734,37,3.168,43,4.157,68,1.886,75,2.069,93,3.579,114,1.316,128,1.476,129,1.522,135,2.8,149,2.96,150,1.137,161,2.796,169,2.997,207,2.378,211,1.702,310,1.886,332,1.499,341,1.189,355,4.076,363,1.522,392,1.574,474,1.784,512,1.886,513,3.419,520,1.666,624,2.021,677,2.683,678,3.992,694,1.702,695,1.702,755,1.886,792,1.633,795,2.021,873,2.021,882,1.331,914,2.289,924,1.784,943,2.48,989,2.021,1013,1.886,1017,1.702,1023,3.733,1028,2.109,1251,1.784,1393,2.376,1486,1.702,1702,7.302,1703,2.376,1704,2.376,1705,2.376,1706,2.376,1707,6.048,1747,6.048,1748,5.162,1769,2.021,1770,2.376,1803,2.109,1804,2.622,1805,3.733,1806,2.376,1807,2.622,1808,2.622,1809,2.622,1810,2.622,1811,2.622,1812,2.622,1813,2.622]],["component/42",[1,0.411]],["title/43-1",[23,25.689]],["name/43-1",[]],["text/43-1",[]],["component/43-1",[]],["title/43-2",[26,18.526]],["name/43-2",[]],["text/43-2",[]],["component/43-2",[]],["title/43-3",[232,49.533]],["name/43-3",[]],["text/43-3",[]],["component/43-3",[]],["title/43-4",[334,23.488]],["name/43-4",[]],["text/43-4",[]],["component/43-4",[]],["title/43-5",[1683,55.412]],["name/43-5",[]],["text/43-5",[]],["component/43-5",[]],["title/43-6",[334,23.488]],["name/43-6",[]],["text/43-6",[]],["component/43-6",[]],["title/43-7",[1814,58.365]],["name/43-7",[]],["text/43-7",[]],["component/43-7",[]],["title/43-8",[334,23.488]],["name/43-8",[]],["text/43-8",[]],["component/43-8",[]],["title/43",[24,28.739,511,31.192]],["name/43",[1815,1.386]],["text/43",[1,0.699,6,3.221,7,2.377,8,2.22,15,1.94,19,1.257,20,1.291,24,1.328,26,0.635,67,1.041,75,1.463,85,1.898,86,3.261,93,4.496,104,1.697,117,1.697,153,1.531,157,2.508,160,1.809,168,1.762,204,1.442,223,1.392,227,1.777,232,2.897,233,2.147,326,1.328,392,2.418,425,4.137,511,5.473,586,3.24,656,1.566,690,2.992,773,2.559,923,1.499,943,1.328,985,1.752,1017,2.614,1055,4.24,1056,3.013,1060,3.413,1064,1.697,1109,1.499,1112,1.291,1135,3.65,1136,3.24,1143,3.65,1319,3.24,1402,1.999,1524,1.999,1670,1.999,1683,5.014,1814,5.281,1816,4.028,1817,1.999,1818,2.359,1819,4.028,1820,2.359,1821,2.359,1822,2.359,1823,2.359,1824,1.818,1825,3.65,1826,2.359,1827,2.359,1828,1.999]],["component/43",[1,0.411]],["title/44-1",[23,25.689]],["name/44-1",[]],["text/44-1",[]],["component/44-1",[]],["title/44-2",[26,18.526]],["name/44-2",[]],["text/44-2",[]],["component/44-2",[]],["title/44-3",[6,42.095]],["name/44-3",[]],["text/44-3",[]],["component/44-3",[]],["title/44-4",[36,22.498,318,18.211,515,26.307]],["name/44-4",[]],["text/44-4",[]],["component/44-4",[]],["title/44-5",[36,22.498,174,29.153,515,26.307]],["name/44-5",[]],["text/44-5",[]],["component/44-5",[]],["title/44-6",[36,28.326,1829,46.248]],["name/44-6",[]],["text/44-6",[]],["component/44-6",[]],["title/44-7",[36,22.498,320,25.755,515,26.307]],["name/44-7",[]],["text/44-7",[]],["component/44-7",[]],["title/44-8",[1830,58.365]],["name/44-8",[]],["text/44-8",[]],["component/44-8",[]],["title/44-9",[1831,58.365]],["name/44-9",[]],["text/44-9",[]],["component/44-9",[]],["title/44-10",[1832,62.413]],["name/44-10",[]],["text/44-10",[]],["component/44-10",[]],["title/44-11",[1833,62.413]],["name/44-11",[]],["text/44-11",[]],["component/44-11",[]],["title/44-12",[1834,62.413]],["name/44-12",[]],["text/44-12",[]],["component/44-12",[]],["title/44-13",[1835,62.413]],["name/44-13",[]],["text/44-13",[]],["component/44-13",[]],["title/44-14",[1836,62.413]],["name/44-14",[]],["text/44-14",[]],["component/44-14",[]],["title/44-15",[1837,62.413]],["name/44-15",[]],["text/44-15",[]],["component/44-15",[]],["title/44-16",[1838,62.413]],["name/44-16",[]],["text/44-16",[]],["component/44-16",[]],["title/44-17",[1839,62.413]],["name/44-17",[]],["text/44-17",[]],["component/44-17",[]],["title/44-18",[1840,62.413]],["name/44-18",[]],["text/44-18",[]],["component/44-18",[]],["title/44-19",[471,40.649]],["name/44-19",[]],["text/44-19",[]],["component/44-19",[]],["title/44-20",[1841,62.413]],["name/44-20",[]],["text/44-20",[]],["component/44-20",[]],["title/44-21",[1708,58.365]],["name/44-21",[]],["text/44-21",[]],["component/44-21",[]],["title/44-22",[1842,62.413]],["name/44-22",[]],["text/44-22",[]],["component/44-22",[]],["title/44-23",[1104,42.095]],["name/44-23",[]],["text/44-23",[]],["component/44-23",[]],["title/44-24",[389,28.326,427,31.192]],["name/44-24",[]],["text/44-24",[]],["component/44-24",[]],["title/44-25",[389,28.326,540,29.174]],["name/44-25",[]],["text/44-25",[]],["component/44-25",[]],["title/44",[36,28.326,515,33.12]],["name/44",[1843,1.386]],["text/44",[1,0.148,6,1.099,7,1.061,8,0.177,10,0.448,15,0.513,19,0.512,20,0.273,24,0.281,26,0.375,36,2.753,45,0.289,75,2.016,85,0.401,86,0.199,91,1.377,92,0.281,93,4.492,95,0.331,96,0.654,106,0.358,111,0.304,117,0.691,121,0.339,122,0.316,124,0.526,128,0.281,135,0.209,149,0.259,152,0.773,153,0.624,154,1.053,160,0.432,168,0.421,173,0.281,174,0.358,176,0.253,177,0.299,192,0.743,202,1.121,207,0.269,210,0.299,221,0.316,223,0.567,238,0.401,253,0.422,269,0.131,287,5.017,292,0.611,309,0.37,318,0.432,320,0.316,323,0.358,326,0.281,333,2.653,339,0.577,352,0.741,355,2.823,389,1.208,423,0.37,430,0.262,466,0.339,471,0.822,483,0.724,515,3.603,540,1.027,547,0.358,565,3.609,570,0.281,609,1.223,642,0.451,661,1.523,694,0.323,705,0.247,763,0.331,772,1.121,786,6.709,796,0.588,802,0.401,814,0.451,847,0.815,882,2.292,886,0.871,887,2.797,923,0.316,943,0.281,955,0.232,958,0.201,982,0.624,1017,0.624,1045,1.844,1052,0.348,1056,0.285,1104,1.099,1150,0.654,1320,0.774,1328,0.339,1351,0.422,1627,0.37,1646,0.774,1647,0.774,1668,0.422,1680,0.815,1684,0.422,1708,1.181,1723,0.401,1743,0.422,1792,1.629,1798,0.871,1802,0.451,1828,0.422,1829,1.972,1830,0.815,1831,0.815,1832,1.263,1833,1.263,1834,0.871,1835,0.871,1836,0.871,1837,0.871,1838,0.871,1839,1.263,1840,1.263,1841,1.263,1842,1.263,1844,0.498,1845,0.498,1846,0.498,1847,0.498,1848,0.498,1849,0.451,1850,0.451,1851,0.422,1852,0.871,1853,0.498,1854,0.498,1855,3.477,1856,0.498,1857,2.176,1858,0.498,1859,3.18,1860,0.498,1861,0.871,1862,0.498,1863,0.498,1864,0.498,1865,0.962,1866,0.962,1867,0.451,1868,0.498,1869,0.422,1870,0.498,1871,0.962,1872,0.498,1873,0.498,1874,0.498,1875,0.498,1876,0.498,1877,0.498,1878,0.498,1879,0.498,1880,0.498,1881,0.498,1882,0.498,1883,0.498,1884,0.498,1885,0.498,1886,0.498,1887,0.498,1888,0.498,1889,0.498,1890,0.498,1891,0.498,1892,2.531,1893,0.498,1894,0.498,1895,0.498,1896,0.498,1897,0.498,1898,0.498,1899,0.498,1900,0.498,1901,0.498,1902,0.498,1903,0.498,1904,0.498,1905,0.498,1906,0.498,1907,0.498,1908,0.498,1909,0.498,1910,0.498,1911,0.498,1912,0.498,1913,0.498,1914,0.498,1915,0.498,1916,0.498,1917,0.498,1918,0.498,1919,0.498,1920,0.498,1921,0.498,1922,0.498,1923,0.498,1924,0.498,1925,0.498,1926,0.498,1927,0.498,1928,0.498,1929,0.498,1930,0.498,1931,0.498,1932,0.498,1933,0.498,1934,0.498,1935,0.498,1936,0.498,1937,0.498,1938,0.498,1939,0.498,1940,0.498,1941,0.498,1942,0.498,1943,0.498,1944,0.498,1945,0.498,1946,0.498,1947,0.498,1948,0.498,1949,0.498,1950,0.498,1951,0.498,1952,0.498,1953,0.498,1954,0.498,1955,0.498,1956,0.498,1957,0.498,1958,0.498,1959,0.498,1960,0.498,1961,0.498,1962,0.498,1963,0.498,1964,0.498,1965,0.498,1966,0.498,1967,0.498,1968,0.498,1969,0.498,1970,0.498,1971,0.498,1972,0.498,1973,0.498,1974,0.498,1975,0.498,1976,0.498,1977,0.498,1978,0.498,1979,0.498,1980,0.498,1981,0.498,1982,0.498,1983,0.498,1984,0.498,1985,0.498,1986,0.498,1987,0.498,1988,0.498,1989,0.498,1990,0.498,1991,0.498,1992,0.498,1993,0.498,1994,0.498,1995,0.498,1996,0.498,1997,0.498,1998,0.498,1999,0.498,2000,0.498,2001,0.498,2002,0.498,2003,0.498,2004,0.498,2005,0.498,2006,0.498,2007,0.498,2008,0.498,2009,1.798,2010,0.498,2011,0.498,2012,0.498,2013,0.498,2014,0.498,2015,0.498,2016,0.498,2017,0.498,2018,0.498,2019,0.498,2020,0.498,2021,0.498,2022,0.498,2023,0.498,2024,0.451,2025,0.498,2026,0.498,2027,0.498,2028,0.498,2029,0.498,2030,0.498,2031,0.498,2032,0.498,2033,0.498,2034,0.498,2035,0.498,2036,0.498,2037,0.498,2038,0.498,2039,0.498,2040,0.498,2041,0.498,2042,0.498,2043,0.498,2044,0.498,2045,0.498,2046,0.498,2047,0.962,2048,1.394,2049,0.498,2050,0.498,2051,0.962,2052,2.176,2053,0.962,2054,0.962,2055,0.498,2056,0.498,2057,0.498,2058,0.962,2059,2.865,2060,0.498,2061,0.498,2062,0.498,2063,0.498,2064,0.498,2065,0.498,2066,0.498,2067,0.498,2068,0.498,2069,0.498]],["component/44",[1,0.411]],["title/45-1",[23,25.689]],["name/45-1",[]],["text/45-1",[]],["component/45-1",[]],["title/45-2",[26,18.526]],["name/45-2",[]],["text/45-2",[]],["component/45-2",[]],["title/45-3",[6,42.095]],["name/45-3",[]],["text/45-3",[]],["component/45-3",[]],["title/45-4",[334,23.488]],["name/45-4",[]],["text/45-4",[]],["component/45-4",[]],["title/45-5",[269,18.168]],["name/45-5",[]],["text/45-5",[]],["component/45-5",[]],["title/45-6",[932,25.347]],["name/45-6",[]],["text/45-6",[]],["component/45-6",[]],["title/45-7",[15,18.782,341,23.138]],["name/45-7",[]],["text/45-7",[]],["component/45-7",[]],["title/45-8",[129,39.992]],["name/45-8",[]],["text/45-8",[]],["component/45-8",[]],["title/45-9",[1767,58.365]],["name/45-9",[]],["text/45-9",[]],["component/45-9",[]],["title/45",[36,28.326,129,29.634]],["name/45",[757,1.175]],["text/45",[1,0.422,6,3.759,7,0.84,8,1.261,10,1.204,15,1.302,19,0.759,20,0.779,21,0.905,24,1.453,26,0.694,30,1.64,31,1.024,36,5.246,37,1.024,67,1.139,68,1.024,75,0.517,80,0.924,86,1.033,93,3.658,106,1.024,122,0.905,124,0.779,129,4.795,135,1.485,137,0.995,152,2.795,154,0.593,157,1.607,160,1.159,161,1.267,167,1.024,168,0.623,174,2.545,176,1.31,192,4.758,194,1.145,211,1.675,223,0.84,243,0.905,269,0.376,316,1.024,317,1.917,320,2.249,333,1.049,341,1.17,355,1.17,356,1.207,363,0.827,389,0.79,423,1.917,449,0.905,471,0.84,476,0.779,483,0.74,511,3.441,515,5.661,517,1.713,520,0.905,570,0.802,580,1.058,609,0.968,677,2.372,730,0.905,755,1.024,760,2.728,766,2.338,767,1.207,768,1.207,771,1.207,772,5.315,773,3.577,784,1.207,791,0.749,796,1.577,810,2.999,871,1.207,874,1.207,882,1.31,891,0.905,923,0.905,924,2.407,951,1.145,956,0.558,958,0.575,966,2.076,989,1.097,1029,1.207,1030,1.207,1055,1.145,1056,1.475,1060,1.207,1064,2.545,1126,1.058,1139,1.058,1228,0.945,1609,1.145,1767,2.999,1768,1.29,1769,1.097,1803,1.145,1830,1.207,1831,1.207,1849,2.338,1850,3.207,1852,1.29,1861,1.29,2070,1.424,2071,1.424,2072,2.581,2073,1.424,2074,5.631,2075,1.424,2076,1.207,2077,1.424,2078,1.424,2079,1.424,2080,1.424,2081,1.29,2082,1.424,2083,1.424,2084,1.424,2085,1.424]],["component/45",[1,0.411]],["title/46-1",[23,25.689]],["name/46-1",[]],["text/46-1",[]],["component/46-1",[]],["title/46-2",[2086,55.412]],["name/46-2",[]],["text/46-2",[]],["component/46-2",[]],["title/46-3",[26,18.526]],["name/46-3",[]],["text/46-3",[]],["component/46-3",[]],["title/46-4",[334,23.488]],["name/46-4",[]],["text/46-4",[]],["component/46-4",[]],["title/46-5",[269,18.168]],["name/46-5",[]],["text/46-5",[]],["component/46-5",[]],["title/46-6",[932,25.347]],["name/46-6",[]],["text/46-6",[]],["component/46-6",[]],["title/46-7",[8,18.179,312,41.06]],["name/46-7",[]],["text/46-7",[]],["component/46-7",[]],["title/46-8",[788,25.347]],["name/46-8",[]],["text/46-8",[]],["component/46-8",[]],["title/46-9",[425,45.722]],["name/46-9",[]],["text/46-9",[]],["component/46-9",[]],["title/46",[512,36.704,513,30.639]],["name/46",[1805,1.175]],["text/46",[8,2.233,10,1.11,16,0.351,24,0.505,26,0.241,30,0.57,33,1.483,48,0.582,51,0.666,67,0.743,75,1.79,82,0.645,86,0.675,91,0.431,92,0.505,93,3.963,96,1.146,104,1.211,135,0.999,145,0.521,147,0.354,150,3.238,153,2.309,154,0.373,156,0.427,157,0.559,160,0.403,161,0.44,168,1.042,176,0.455,177,1.011,189,0.423,190,0.411,200,2.313,204,1.029,211,0.582,227,0.396,229,0.484,230,2.286,233,3.75,243,0.57,246,0.57,255,1.802,268,0.498,269,0.444,326,0.948,327,1.211,332,0.513,348,0.582,350,0.455,355,0.764,387,0.666,389,0.498,391,1.251,392,0.539,415,1.62,425,2.362,430,0.472,435,0.691,440,0.582,462,0.691,483,0.466,493,1.769,511,1.455,512,2.92,513,3.186,520,1.07,540,1.716,564,2.018,565,6.358,579,0.722,586,1.355,596,0.666,603,0.627,624,0.691,656,0.596,681,3.015,690,3.661,697,0.666,755,0.645,756,1.427,773,1.907,788,0.62,847,3.44,873,0.691,916,0.722,923,0.57,933,0.472,943,0.948,956,0.66,979,0.813,982,1.093,986,2.216,1012,1.355,1017,1.093,1052,0.627,1054,0.645,1056,2.034,1062,2.26,1076,0.813,1080,0.722,1109,2.579,1112,1.643,1136,0.722,1141,1.355,1158,0.645,1223,0.61,1228,0.596,1251,1.146,1265,1.251,1307,0.76,1328,1.146,1335,0.691,1345,0.666,1402,3.44,1429,0.813,1435,0.691,1486,0.582,1524,1.427,1537,0.76,1639,0.813,1683,1.355,1685,0.813,1697,4.466,1743,1.427,1803,0.722,1805,3.825,1806,0.813,1814,0.76,1817,0.76,1825,0.813,1828,2.018,1851,0.76,2087,1.685,2088,3.002,2089,0.897,2090,1.526,2091,0.897,2092,0.897,2093,0.897,2094,0.897,2095,3.558,2096,3.002,2097,2.381,2098,1.685,2099,3.224,2100,4.06,2101,4.06,2102,0.897,2103,0.897,2104,0.897,2105,0.897,2106,0.897,2107,0.897,2108,0.897,2109,1.685,2110,0.813,2111,0.897,2112,0.897,2113,0.76,2114,0.897,2115,2.381,2116,4.515,2117,1.685,2118,1.685,2119,0.813,2120,0.897,2121,1.685,2122,1.685,2123,0.897,2124,1.685,2125,0.897,2126,1.685,2127,0.897,2128,0.897]],["component/46",[1,0.411]],["title/47-1",[23,25.689]],["name/47-1",[]],["text/47-1",[]],["component/47-1",[]],["title/47-2",[26,18.526]],["name/47-2",[]],["text/47-2",[]],["component/47-2",[]],["title/47-3",[334,23.488]],["name/47-3",[]],["text/47-3",[]],["component/47-3",[]],["title/47-4",[269,18.168]],["name/47-4",[]],["text/47-4",[]],["component/47-4",[]],["title/47-5",[932,25.347]],["name/47-5",[]],["text/47-5",[]],["component/47-5",[]],["title/47-6",[788,25.347]],["name/47-6",[]],["text/47-6",[]],["component/47-6",[]],["title/47-7",[1033,32.768]],["name/47-7",[]],["text/47-7",[]],["component/47-7",[]],["title/47-8",[318,22.928,509,31.192]],["name/47-8",[]],["text/47-8",[]],["component/47-8",[]],["title/47-9",[334,23.488]],["name/47-9",[]],["text/47-9",[]],["component/47-9",[]],["title/47-10",[269,18.168]],["name/47-10",[]],["text/47-10",[]],["component/47-10",[]],["title/47",[318,18.211,504,32.613,505,25.755]],["name/47",[2129,1.175]],["text/47",[0,1.129,1,0.492,8,1.429,12,0.863,15,1.09,16,1.16,19,0.885,20,0.908,26,0.446,33,1.034,35,0.833,67,0.732,75,1.457,82,1.194,86,0.665,91,1.424,93,3.353,111,1.014,114,2.013,124,0.908,147,2.841,148,0.702,150,2.115,154,0.691,156,2.664,158,0.767,160,0.746,161,0.815,176,0.842,182,1.559,189,1.89,190,2.231,227,0.732,269,1.477,318,3.416,330,1.034,333,1.982,339,0.996,363,0.964,427,1.014,431,1.504,471,0.98,504,6.117,505,5.44,509,3.422,520,1.882,537,1.279,555,1.233,570,1.668,677,2.926,694,1.077,705,0.824,732,1.233,736,1.279,737,1.159,739,1.129,764,0.726,911,0.774,944,1.504,956,1.16,958,0.67,959,0.739,969,2.069,974,1.034,977,1.129,1073,1.369,1078,2.383,1085,1.407,1090,3.923,1097,1.279,1098,1.279,1100,2.663,1101,4.02,1104,1.811,1112,1.621,1266,1.279,1270,4.673,1315,2.283,1327,1.279,1336,2.885,1352,2.383,1361,2.51,1869,1.407,2129,6.443,2130,1.504,2131,1.504,2132,1.66,2133,1.66,2134,2.685,2135,1.66,2136,1.407,2137,1.407,2138,1.66,2139,1.504,2140,1.504,2141,1.66,2142,1.66,2143,1.407,2144,1.66,2145,1.335,2146,1.66,2147,1.335,2148,1.279,2149,1.335,2150,2.685,2151,1.66,2152,2.685,2153,1.66]],["component/47",[1,0.411]],["title/48-1",[23,25.689]],["name/48-1",[]],["text/48-1",[]],["component/48-1",[]],["title/48-2",[182,26.855,1284,37.915]],["name/48-2",[]],["text/48-2",[]],["component/48-2",[]],["title/48-3",[158,23.576,1096,43.249]],["name/48-3",[]],["text/48-3",[]],["component/48-3",[]],["title/48-4",[26,18.526]],["name/48-4",[]],["text/48-4",[]],["component/48-4",[]],["title/48-5",[334,23.488]],["name/48-5",[]],["text/48-5",[]],["component/48-5",[]],["title/48-6",[269,18.168]],["name/48-6",[]],["text/48-6",[]],["component/48-6",[]],["title/48-7",[932,25.347]],["name/48-7",[]],["text/48-7",[]],["component/48-7",[]],["title/48-8",[788,18.782,934,21.076]],["name/48-8",[]],["text/48-8",[]],["component/48-8",[]],["title/48-9",[2154,68.884]],["name/48-9",[]],["text/48-9",[]],["component/48-9",[]],["title/48-10",[10,32.125]],["name/48-10",[]],["text/48-10",[]],["component/48-10",[]],["title/48-11",[1033,32.768]],["name/48-11",[]],["text/48-11",[]],["component/48-11",[]],["title/48-12",[158,23.576,318,22.928]],["name/48-12",[]],["text/48-12",[]],["component/48-12",[]],["title/48-13",[26,18.526]],["name/48-13",[]],["text/48-13",[]],["component/48-13",[]],["title/48-14",[334,23.488]],["name/48-14",[]],["text/48-14",[]],["component/48-14",[]],["title/48-15",[269,18.168]],["name/48-15",[]],["text/48-15",[]],["component/48-15",[]],["title/48-16",[932,25.347]],["name/48-16",[]],["text/48-16",[]],["component/48-16",[]],["title/48-17",[15,18.782,341,23.138]],["name/48-17",[]],["text/48-17",[]],["component/48-17",[]],["title/48-18",[67,30.394]],["name/48-18",[]],["text/48-18",[]],["component/48-18",[]],["title/48-19",[1208,37.696]],["name/48-19",[]],["text/48-19",[]],["component/48-19",[]],["title/48-20",[158,18.726,318,18.211,608,34.351]],["name/48-20",[]],["text/48-20",[]],["component/48-20",[]],["title/48-21",[26,18.526]],["name/48-21",[]],["text/48-21",[]],["component/48-21",[]],["title/48-22",[334,23.488]],["name/48-22",[]],["text/48-22",[]],["component/48-22",[]],["title/48-23",[176,34.958]],["name/48-23",[]],["text/48-23",[]],["component/48-23",[]],["title/48-24",[788,25.347]],["name/48-24",[]],["text/48-24",[]],["component/48-24",[]],["title/48-25",[1033,32.768]],["name/48-25",[]],["text/48-25",[]],["component/48-25",[]],["title/48",[158,23.576,318,22.928]],["name/48",[2155,1.256]],["text/48",[8,1.585,10,0.936,12,1.953,13,0.256,15,0.609,16,0.501,21,0.812,24,0.495,26,0.629,30,0.812,31,0.327,32,0.366,48,0.295,55,0.327,67,0.201,69,0.264,75,0.85,86,0.182,91,0.423,92,0.495,93,3.681,95,0.849,96,1.125,98,0.708,103,0.385,104,0.92,112,0.35,114,1.758,132,0.366,135,0.369,141,0.976,142,0.338,145,0.264,147,2.204,148,0.541,150,0.87,151,0.338,152,0.71,154,0.532,156,1.903,157,1.03,158,2.153,160,0.395,167,0.327,168,1.161,169,1.231,173,0.256,182,3.837,189,1.102,190,1.071,195,0.412,204,0.278,207,0.475,212,1.184,220,0.412,227,0.201,229,0.245,230,0.72,233,0.681,243,0.289,249,0.781,269,0.779,276,0.708,291,0.633,317,1.738,318,1.453,320,0.559,328,0.366,330,0.283,331,0.317,332,0.26,333,0.816,339,0.528,341,0.206,343,0.327,347,0.317,348,0.571,350,0.231,355,1.467,363,3.515,365,2.046,389,0.488,390,0.338,392,0.993,406,0.338,425,0.849,430,0.87,449,1.051,454,0.849,466,3.799,471,0.755,480,0.519,483,0.859,491,0.317,492,0.295,504,0.366,506,0.366,508,0.87,509,2.72,510,0.654,511,0.278,512,0.633,537,0.35,541,0.412,547,0.327,558,0.35,563,0.366,569,0.295,570,0.931,580,0.338,587,0.893,589,3.155,592,0.385,593,1.03,599,0.283,603,0.317,608,1.701,625,0.745,659,0.797,664,0.309,670,0.412,677,2.29,694,1.073,695,0.571,707,1.029,718,1.819,734,0.745,747,0.708,760,0.35,763,4.019,764,0.559,773,0.559,788,0.324,789,0.338,792,1.03,795,0.35,796,0.278,798,0.412,799,0.412,801,1.738,802,2.818,803,0.412,804,0.598,813,0.412,834,0.385,840,0.289,882,0.231,887,0.708,891,0.289,895,0.385,911,0.212,915,0.385,925,0.385,933,0.239,934,0.188,943,0.495,949,0.366,955,0.596,956,0.917,958,0.81,968,0.385,969,0.893,986,1.03,996,0.412,998,0.412,1010,0.366,1018,1.084,1021,0.366,1052,0.317,1056,0.731,1062,0.559,1073,0.21,1089,0.654,1096,5.997,1100,1.553,1101,3.382,1104,1.011,1109,0.289,1141,0.366,1148,1.553,1209,0.35,1223,0.309,1270,1.916,1284,1.229,1287,0.412,1299,0.745,1316,0.338,1328,0.309,1336,0.327,1342,0.35,1372,0.35,1376,0.385,1396,0.412,1406,0.893,1419,0.633,1435,0.35,1437,0.654,1459,0.338,1483,0.327,1513,0.338,1544,0.338,1549,0.412,1551,0.708,1626,2.046,1769,0.35,1790,0.412,1824,0.986,2113,0.745,2129,0.745,2148,0.35,2150,0.412,2152,0.412,2155,4.406,2156,0.454,2157,0.454,2158,0.454,2159,0.412,2160,0.797,2161,0.797,2162,1.159,2163,0.412,2164,0.88,2165,0.454,2166,0.454,2167,2.953,2168,0.454,2169,0.88,2170,2.007,2171,0.454,2172,0.454,2173,0.88,2174,0.454,2175,1.279,2176,1.279,2177,0.454,2178,0.88,2179,0.88,2180,0.454,2181,0.678,2182,0.454,2183,2.655,2184,2.007,2185,0.454,2186,0.454,2187,0.454,2188,0.454,2189,0.454,2190,2.007,2191,0.454,2192,0.454,2193,0.454,2194,0.454,2195,0.454,2196,0.338,2197,0.454,2198,0.454,2199,0.454,2200,0.454,2201,0.454,2202,0.88,2203,0.454,2204,0.454,2205,0.454,2206,0.454,2207,0.454,2208,0.454,2209,0.454,2210,0.454,2211,0.454,2212,0.454,2213,0.454,2214,1.159,2215,0.88,2216,0.454,2217,0.88,2218,0.454,2219,0.88,2220,0.412,2221,0.88,2222,0.454,2223,0.88,2224,0.454,2225,0.454,2226,0.454,2227,0.454,2228,0.454,2229,0.454,2230,0.454,2231,0.454,2232,0.454,2233,0.454,2234,0.454,2235,0.454,2236,0.454,2237,0.454,2238,0.454,2239,0.454,2240,0.454,2241,0.454,2242,0.454,2243,0.412,2244,0.454,2245,0.454,2246,0.454,2247,0.385,2248,0.454,2249,0.454,2250,0.454,2251,0.454,2252,0.454,2253,0.454,2254,0.454,2255,0.454,2256,0.454,2257,0.454,2258,0.454,2259,0.454]],["component/48",[1,0.411]],["title/49-1",[23,25.689]],["name/49-1",[]],["text/49-1",[]],["component/49-1",[]],["title/49-2",[26,18.526]],["name/49-2",[]],["text/49-2",[]],["component/49-2",[]],["title/49-3",[334,23.488]],["name/49-3",[]],["text/49-3",[]],["component/49-3",[]],["title/49-4",[269,18.168]],["name/49-4",[]],["text/49-4",[]],["component/49-4",[]],["title/49-5",[932,25.347]],["name/49-5",[]],["text/49-5",[]],["component/49-5",[]],["title/49-6",[788,25.347]],["name/49-6",[]],["text/49-6",[]],["component/49-6",[]],["title/49-7",[1033,32.768]],["name/49-7",[]],["text/49-7",[]],["component/49-7",[]],["title/49",[318,18.211,509,24.775,510,30.115]],["name/49",[2163,1.256]],["text/49",[1,0.531,8,1.13,12,1.649,16,1.243,19,0.955,20,0.981,26,0.482,45,1.041,53,1.382,67,1.4,75,1.152,86,0.718,93,2.413,114,0.9,124,0.981,143,1.289,147,2.96,148,0.758,150,2.556,152,2.368,153,1.163,154,2.712,158,0.828,160,0.805,189,2.776,190,2.697,192,0.955,197,1.442,208,1.382,210,1.904,227,0.791,269,1.36,318,2.648,330,1.116,333,1.29,339,1.076,430,1.669,454,1.19,480,1.058,508,1.219,509,4.305,510,6.363,529,1.332,572,1.624,592,1.519,593,1.976,677,2.01,695,1.163,705,1.574,723,1.219,764,0.784,788,0.66,882,0.91,911,0.836,956,1.243,958,1.28,959,0.798,977,1.219,1018,0.968,1073,1.465,1097,2.445,1100,3.423,1101,4.16,1104,1.096,1112,0.981,1125,1.624,1211,2.158,1265,1.332,1270,4.571,1298,2.875,1305,2.688,1306,1.519,1312,2.688,1313,1.519,1315,2.445,1336,2.281,1869,1.519,2147,1.442,2162,5.903,2214,1.624,2243,6.383,2260,6.515,2261,8.566,2262,1.793,2263,1.793,2264,3.173,2265,1.793,2266,1.793,2267,1.793,2268,1.793,2269,1.793,2270,5.157,2271,1.793]],["component/49",[1,0.411]],["title/50-1",[23,25.689]],["name/50-1",[]],["text/50-1",[]],["component/50-1",[]],["title/50-2",[26,18.526]],["name/50-2",[]],["text/50-2",[]],["component/50-2",[]],["title/50-3",[334,23.488]],["name/50-3",[]],["text/50-3",[]],["component/50-3",[]],["title/50-4",[269,18.168]],["name/50-4",[]],["text/50-4",[]],["component/50-4",[]],["title/50-5",[932,25.347]],["name/50-5",[]],["text/50-5",[]],["component/50-5",[]],["title/50-6",[788,25.347]],["name/50-6",[]],["text/50-6",[]],["component/50-6",[]],["title/50-7",[1033,32.768]],["name/50-7",[]],["text/50-7",[]],["component/50-7",[]],["title/50",[318,18.211,505,25.755,507,32.613]],["name/50",[2272,1.256]],["text/50",[0,1.654,1,0.72,8,1.473,12,1.264,15,1.521,16,1.619,19,1.296,20,1.331,25,1.957,26,0.654,35,1.22,56,1.875,67,1.073,75,1.501,86,0.974,91,1.169,93,2.356,111,1.486,114,2.705,124,1.331,147,2.509,148,1.029,150,2.338,154,1.012,156,1.967,158,1.124,160,1.093,182,2.175,189,2.539,190,2.467,227,1.824,255,1.46,269,1.677,318,2.856,330,1.515,331,1.699,333,0.989,339,1.46,344,1.699,376,1.578,427,1.486,471,1.435,505,5.966,507,5.732,570,2.328,579,1.957,589,1.578,677,2.539,705,1.207,732,1.807,764,1.064,911,1.134,956,1.619,958,0.981,959,1.083,1073,1.124,1085,2.061,1090,1.957,1100,4.221,1101,4.014,1104,1.486,1112,1.331,1260,1.875,1270,4.126,1327,1.875,1336,1.749,1361,2.061,1417,1.807,2130,2.204,2134,2.204,2136,2.061,2137,2.061,2140,2.204,2143,2.061,2145,1.957,2147,1.957,2148,1.875,2149,1.957,2272,6.457,2273,2.432,2274,2.432,2275,2.432,2276,2.061,2277,2.432,2278,2.432,2279,2.432,2280,2.432,2281,2.432,2282,2.432]],["component/50",[1,0.411]],["title/51-1",[23,25.689]],["name/51-1",[]],["text/51-1",[]],["component/51-1",[]],["title/51-2",[26,18.526]],["name/51-2",[]],["text/51-2",[]],["component/51-2",[]],["title/51-3",[334,23.488]],["name/51-3",[]],["text/51-3",[]],["component/51-3",[]],["title/51-4",[269,18.168]],["name/51-4",[]],["text/51-4",[]],["component/51-4",[]],["title/51-5",[932,25.347]],["name/51-5",[]],["text/51-5",[]],["component/51-5",[]],["title/51-6",[788,25.347]],["name/51-6",[]],["text/51-6",[]],["component/51-6",[]],["title/51-7",[1033,32.768]],["name/51-7",[]],["text/51-7",[]],["component/51-7",[]],["title/51-8",[318,22.928,509,31.192]],["name/51-8",[]],["text/51-8",[]],["component/51-8",[]],["title/51-9",[334,23.488]],["name/51-9",[]],["text/51-9",[]],["component/51-9",[]],["title/51-10",[269,18.168]],["name/51-10",[]],["text/51-10",[]],["component/51-10",[]],["title/51",[318,18.211,505,25.755,506,32.613]],["name/51",[2283,1.256]],["text/51",[0,1.145,1,0.499,8,1.069,12,0.875,15,1.104,16,1.175,19,0.897,20,0.921,26,0.453,33,1.049,35,0.845,67,0.743,75,1.474,86,0.674,91,0.809,93,3.086,111,1.029,114,2.036,124,0.921,147,2.863,148,1.269,150,1.76,154,1.249,156,0.801,158,0.778,160,0.756,173,0.948,176,0.855,182,1.579,189,1.911,190,2.254,207,0.909,227,0.743,269,1.491,318,3.441,326,0.948,329,1.298,330,1.049,331,2.096,333,2.003,339,1.011,361,1.211,427,1.029,471,0.994,493,1.251,497,1.176,503,3.265,505,5.782,506,6.702,507,1.355,509,3.455,520,1.07,537,1.298,570,1.689,677,2.952,694,1.093,705,0.835,732,1.251,736,1.298,739,1.145,764,0.737,909,1.298,911,0.785,913,1.526,956,1.175,958,0.679,959,0.75,969,2.096,1073,1.386,1078,2.414,1090,3.964,1097,1.298,1098,1.298,1100,2.694,1101,4.046,1104,1.834,1112,1.642,1270,4.709,1315,2.312,1336,2.919,1352,1.355,1451,1.526,1588,1.526,1611,1.526,1824,1.298,2131,1.526,2136,1.427,2137,1.427,2143,1.427,2145,1.355,2147,1.355,2148,1.298,2149,1.355,2283,6.94,2284,1.684,2285,1.684,2286,1.684,2287,1.684,2288,1.684,2289,1.684,2290,1.526,2291,1.684,2292,1.684,2293,1.684,2294,1.684,2295,3.001,2296,1.684,2297,3.001,2298,1.684]],["component/51",[1,0.411]],["title/52-1",[23,25.689]],["name/52-1",[]],["text/52-1",[]],["component/52-1",[]],["title/52-2",[26,18.526]],["name/52-2",[]],["text/52-2",[]],["component/52-2",[]],["title/52-3",[334,23.488]],["name/52-3",[]],["text/52-3",[]],["component/52-3",[]],["title/52-4",[269,18.168]],["name/52-4",[]],["text/52-4",[]],["component/52-4",[]],["title/52",[318,18.211,508,27.575,509,24.775]],["name/52",[2160,1.256]],["text/52",[1,0.902,12,1.583,19,1.624,20,1.667,24,2.809,26,0.819,42,5.741,67,2.796,93,3.394,124,1.667,147,3.772,150,1.321,152,4.065,158,1.407,176,1.546,189,1.435,190,1.394,197,2.451,269,0.804,318,3.63,330,1.897,333,2.576,430,1.603,508,4.309,509,5.599,593,3.946,677,3.449,875,2.582,923,3.17,938,1.897,977,2.072,1018,1.645,1073,1.407,1097,3.845,1101,4.214,1104,3.049,1112,1.667,1211,2.072,1270,5.631,1336,3.588,2159,5.741,2161,5.741,2299,7.324,2300,3.047,2301,3.047,2302,3.047,2303,3.047,2304,3.047,2305,3.047]],["component/52",[1,0.411]],["title/53-1",[23,25.689]],["name/53-1",[]],["text/53-1",[]],["component/53-1",[]],["title/53-2",[26,18.526]],["name/53-2",[]],["text/53-2",[]],["component/53-2",[]],["title/53-3",[334,23.488]],["name/53-3",[]],["text/53-3",[]],["component/53-3",[]],["title/53-4",[269,18.168]],["name/53-4",[]],["text/53-4",[]],["component/53-4",[]],["title/53-5",[932,25.347]],["name/53-5",[]],["text/53-5",[]],["component/53-5",[]],["title/53-6",[788,25.347]],["name/53-6",[]],["text/53-6",[]],["component/53-6",[]],["title/53-7",[1033,32.768]],["name/53-7",[]],["text/53-7",[]],["component/53-7",[]],["title/53",[180,21.888,498,24.336,501,31.244]],["name/53",[2306,1.256]],["text/53",[8,0.8,11,2.325,15,1.421,16,0.88,26,0.604,75,1.403,86,0.9,93,2.943,114,1.127,128,1.265,146,1.569,147,2.682,148,0.95,152,2.82,154,0.935,155,1.458,156,1.069,160,1.009,173,1.265,176,1.96,180,1.213,182,1.182,227,0.991,269,1.958,287,4.689,318,2.282,333,1.57,341,1.018,355,1.751,360,1.616,367,1.349,446,1.731,498,1.349,501,6.124,593,1.399,599,1.399,607,1.491,677,1.058,705,1.917,729,2.869,730,2.454,731,1.669,735,2.869,737,2.698,740,2.869,764,0.983,900,2.999,911,1.048,956,1.513,958,1.559,959,1,974,1.399,1018,1.213,1031,3.654,1032,3.774,1073,2.347,1077,1.731,1082,2.869,1086,2.977,1100,4.004,1112,2.114,1118,1.569,1152,1.731,1270,5.444,1284,1.669,1459,1.669,1526,1.731,2139,3.5,2181,1.731,2306,7.2,2307,1.807,2308,8.389,2309,3.273,2310,1.904,2311,3.107,2312,2.247,2313,2.247,2314,2.247,2315,2.247,2316,2.247,2317,2.247,2318,2.247]],["component/53",[1,0.411]],["title/54-1",[23,25.689]],["name/54-1",[]],["text/54-1",[]],["component/54-1",[]],["title/54-2",[26,18.526]],["name/54-2",[]],["text/54-2",[]],["component/54-2",[]],["title/54-3",[334,23.488]],["name/54-3",[]],["text/54-3",[]],["component/54-3",[]],["title/54-4",[269,18.168]],["name/54-4",[]],["text/54-4",[]],["component/54-4",[]],["title/54",[180,18.154,498,20.184,499,27.049,1050,28.49]],["name/54",[2319,1.256]],["text/54",[11,2.628,15,2.113,24,1.493,26,0.713,48,1.721,75,1.615,93,3.002,128,1.493,135,1.113,137,1.852,146,1.852,147,2.652,152,3.187,155,1.721,156,1.261,157,1.651,173,1.493,176,2.257,180,1.432,182,2.34,233,2.37,258,1.76,268,1.472,269,1.173,287,4.783,318,2.58,331,1.852,333,2.335,341,1.202,346,1.516,355,3.047,360,1.907,367,1.592,446,2.044,448,2.044,498,1.592,499,4.62,529,1.97,599,1.651,607,1.76,729,3.303,730,2.825,731,1.97,735,3.303,737,3.106,740,3.303,900,3.389,956,1.039,974,1.651,977,1.804,1031,3.198,1032,3.303,1050,2.247,1073,2.054,1077,2.044,1082,3.303,1086,3.427,1112,2.434,1118,1.852,1152,2.044,1284,1.97,1459,1.97,1526,2.044,2181,2.044,2307,2.133,2309,3.768,2310,2.247,2311,3.577,2319,6.785,2320,2.652,2321,2.652,2322,7.489,2323,4.447,2324,3.577,2325,1.907]],["component/54",[1,0.411]],["title/55-1",[23,25.689]],["name/55-1",[]],["text/55-1",[]],["component/55-1",[]],["title/55-2",[26,18.526]],["name/55-2",[]],["text/55-2",[]],["component/55-2",[]],["title/55-3",[334,23.488]],["name/55-3",[]],["text/55-3",[]],["component/55-3",[]],["title/55-4",[269,18.168]],["name/55-4",[]],["text/55-4",[]],["component/55-4",[]],["title/55-5",[932,25.347]],["name/55-5",[]],["text/55-5",[]],["component/55-5",[]],["title/55-6",[788,25.347]],["name/55-6",[]],["text/55-6",[]],["component/55-6",[]],["title/55-7",[15,18.782,341,23.138]],["name/55-7",[]],["text/55-7",[]],["component/55-7",[]],["title/55-8",[1033,32.768]],["name/55-8",[]],["text/55-8",[]],["component/55-8",[]],["title/55",[318,18.211,497,28.316,503,32.613]],["name/55",[2326,1.256]],["text/55",[1,0.453,8,1.635,11,2.94,16,1.079,26,0.412,48,0.993,55,1.101,67,0.675,75,0.556,82,1.981,86,0.613,93,1.701,112,1.179,114,0.768,124,1.507,147,2.876,148,2.24,150,1.629,154,1.911,155,1.787,156,1.787,160,1.237,168,1.205,176,0.777,180,3.47,182,1.976,189,1.769,190,1.719,192,0.816,196,1.626,198,1.231,205,1.041,227,0.675,258,1.016,269,1.397,318,3.275,326,0.862,333,0.622,338,3.027,339,1.654,346,2.624,347,1.069,348,2.437,406,2.046,441,2.123,449,2.386,453,1.231,454,2.493,476,2.056,477,1.787,497,1.924,498,0.919,503,1.231,511,1.683,522,1.297,529,1.137,548,2.123,570,1.551,609,1.874,624,1.179,664,1.041,677,1.769,705,0.759,734,3.183,764,0.669,791,1.449,900,2.709,911,0.714,924,1.041,937,0.993,938,0.953,956,1.471,958,0.617,959,0.681,974,0.953,980,1.297,1049,1.387,1064,1.101,1073,0.707,1101,3.344,1104,1.683,1112,2.056,1120,1.137,1166,1.101,1285,1.387,1354,1.231,1388,1.387,1417,1.137,1518,2.496,1548,1.231,1867,2.496,2113,2.334,2145,1.231,2148,1.179,2149,1.231,2326,6.932,2327,1.53,2328,1.53,2329,1.53,2330,1.53,2331,1.53,2332,1.53,2333,1.387,2334,1.53,2335,1.53,2336,1.53,2337,1.53,2338,1.53,2339,1.53,2340,1.53,2341,1.53,2342,1.53,2343,1.53,2344,1.53,2345,1.53,2346,1.53,2347,3.756,2348,1.53,2349,5.348,2350,5.902,2351,1.53,2352,2.755,2353,1.53,2354,3.756,2355,1.53,2356,1.53,2357,1.53,2358,1.53,2359,1.53]],["component/55",[1,0.411]],["title/56-1",[23,25.689]],["name/56-1",[]],["text/56-1",[]],["component/56-1",[]],["title/56-2",[26,18.526]],["name/56-2",[]],["text/56-2",[]],["component/56-2",[]],["title/56-3",[334,23.488]],["name/56-3",[]],["text/56-3",[]],["component/56-3",[]],["title/56-4",[269,18.168]],["name/56-4",[]],["text/56-4",[]],["component/56-4",[]],["title/56",[180,21.888,497,28.316,498,24.336]],["name/56",[2360,1.256]],["text/56",[7,1.72,11,3.262,15,1.072,17,2.096,24,1.641,26,0.784,27,1.982,28,1.982,35,1.462,48,1.891,69,1.692,75,2.589,86,1.167,93,2.275,108,3.122,111,1.781,128,1.641,135,1.223,137,3.36,147,1.898,157,1.815,176,1.479,177,1.75,180,3.316,182,1.533,192,1.553,207,1.574,233,1.553,238,2.345,258,1.935,268,1.617,269,0.769,287,4.207,310,2.096,318,1.309,330,2.996,333,1.956,343,2.096,347,2.036,355,2.181,422,3.87,430,1.533,436,2.165,440,1.891,442,2.246,448,2.246,476,1.595,497,4.98,498,4.28,729,2.165,730,1.852,740,2.165,756,2.47,804,1.982,900,2.839,911,1.359,956,1.142,977,3.272,1031,3.459,1053,2.47,1073,1.346,1112,1.595,1118,2.036,1128,2.641,1332,2.641,1417,2.165,1548,2.345,1732,2.641,1851,2.47,2324,3.87,2325,2.096,2333,2.641,2349,4.359,2360,7.15,2361,4.811,2362,2.915,2363,4.359,2364,2.915,2365,2.915,2366,2.915]],["component/56",[1,0.411]],["title/57-1",[23,25.689]],["name/57-1",[]],["text/57-1",[]],["component/57-1",[]],["title/57-2",[26,18.526]],["name/57-2",[]],["text/57-2",[]],["component/57-2",[]],["title/57-3",[334,23.488]],["name/57-3",[]],["text/57-3",[]],["component/57-3",[]],["title/57-4",[269,18.168]],["name/57-4",[]],["text/57-4",[]],["component/57-4",[]],["title/57",[180,21.888,498,24.336,500,26.91]],["name/57",[727,1.175]],["text/57",[11,2.693,15,2.166,26,0.738,48,1.781,75,1.662,93,3.055,128,1.545,135,1.151,137,1.917,146,1.917,147,2.71,152,2.54,155,1.781,156,1.306,157,1.709,173,1.545,176,2.323,180,1.482,182,1.444,233,2.439,258,1.822,268,1.523,269,1.207,287,4.867,318,2.644,333,2.393,341,1.244,355,3.114,360,1.974,367,1.647,446,2.115,448,2.115,498,1.647,500,3.907,501,3.527,599,1.709,607,1.822,727,6.469,729,3.4,730,2.907,731,2.039,735,3.4,737,3.197,740,3.4,900,3.474,956,1.075,974,1.709,1031,3.291,1032,3.4,1073,2.114,1077,2.115,1082,3.4,1086,3.527,1112,2.505,1118,1.917,1152,2.115,1270,1.781,1284,2.039,1459,2.039,1526,2.115,2181,2.115,2307,2.208,2309,3.878,2310,2.326,2311,3.682,2324,3.682,2325,1.974,2367,2.745,2368,7.635,2369,4.577]],["component/57",[1,0.411]],["title/58-1",[23,25.689]],["name/58-1",[]],["text/58-1",[]],["component/58-1",[]],["title/58-2",[26,18.526]],["name/58-2",[]],["text/58-2",[]],["component/58-2",[]],["title/58-3",[334,23.488]],["name/58-3",[]],["text/58-3",[]],["component/58-3",[]],["title/58-4",[269,18.168]],["name/58-4",[]],["text/58-4",[]],["component/58-4",[]],["title/58",[180,21.888,498,24.336,502,32.613]],["name/58",[2370,1.256]],["text/58",[11,1.908,15,2.356,26,0.661,48,1.595,75,1.973,93,2.886,128,1.384,135,1.031,137,1.717,141,1.45,147,2.526,152,2.315,155,1.595,156,1.169,157,1.531,173,1.384,176,2.757,180,1.327,182,1.293,233,2.223,258,1.631,268,1.364,269,1.1,287,4.598,318,2.441,321,2.227,333,2.209,341,1.114,355,2.902,407,3.355,440,1.595,446,1.894,448,1.894,498,1.475,502,5.767,509,3.912,520,1.561,563,1.977,593,2.597,599,1.531,607,1.631,695,2.706,707,1.977,729,3.098,730,2.65,731,1.826,735,1.826,737,1.717,740,3.098,900,3.778,924,2.837,956,0.963,974,1.531,1031,2.999,1032,3.098,1073,1.927,1077,1.894,1082,3.098,1086,3.214,1112,2.283,1118,1.717,1397,2.083,1459,1.826,1526,1.894,2181,1.894,2307,1.977,2311,1.977,2324,3.355,2325,1.767,2370,6.496,2371,7.169,2372,4.171,2373,4.171,2374,4.171,2375,4.171,2376,2.458,2377,2.458,2378,2.458,2379,4.171]],["component/58",[1,0.411]],["title/59-1",[23,25.689]],["name/59-1",[]],["text/59-1",[]],["component/59-1",[]],["title/59-2",[26,18.526]],["name/59-2",[]],["text/59-2",[]],["component/59-2",[]],["title/59-3",[334,23.488]],["name/59-3",[]],["text/59-3",[]],["component/59-3",[]],["title/59-4",[269,18.168]],["name/59-4",[]],["text/59-4",[]],["component/59-4",[]],["title/59-5",[932,25.347]],["name/59-5",[]],["text/59-5",[]],["component/59-5",[]],["title/59-6",[788,25.347]],["name/59-6",[]],["text/59-6",[]],["component/59-6",[]],["title/59-7",[221,43.759]],["name/59-7",[]],["text/59-7",[]],["component/59-7",[]],["title/59-8",[9,46.852]],["name/59-8",[]],["text/59-8",[]],["component/59-8",[]],["title/59",[13,38.784]],["name/59",[13,0.781]],["text/59",[1,0.311,4,0.696,6,1.669,8,0.694,9,3.428,10,0.909,13,5.35,15,1.677,16,0.764,20,1.067,21,0.667,26,0.282,30,0.667,33,2.127,43,0.653,48,0.681,67,1.205,69,0.609,71,1.448,75,2.378,86,0.42,93,2.977,99,2.748,117,0.754,125,1.214,135,0.44,141,0.619,142,0.779,143,0.754,147,1.988,148,1.445,149,0.545,154,2.442,155,0.681,156,1.299,157,0.653,158,0.485,160,0.876,161,0.515,162,1.908,163,0.681,164,0.619,165,0.653,168,1.494,169,0.552,170,0.63,175,0.844,177,1.17,178,0.619,181,0.809,185,1.754,192,1.455,204,1.192,205,0.714,206,2.986,207,1.053,208,1.503,209,5.179,213,2.087,216,0.681,221,2.17,223,2.69,227,0.463,233,1.455,243,1.239,245,0.754,246,0.667,249,0.641,255,0.63,259,0.653,267,0.844,268,0.582,269,1.202,287,1.612,289,1.983,291,1.402,292,0.667,303,0.951,304,0.951,316,0.754,318,0.471,333,0.793,346,0.6,361,1.402,363,1.132,365,1.503,389,1.082,391,2.537,422,0.844,508,4.658,511,0.641,540,1.114,548,0.809,593,2.127,612,0.844,616,0.641,617,0.844,664,1.858,705,0.521,735,0.779,764,0.459,788,1.005,796,0.641,804,0.714,834,0.889,841,2.475,891,1.735,903,0.951,905,0.754,911,0.909,917,0.889,943,0.591,956,1.338,958,0.787,959,0.467,977,3.1,1002,0.889,1073,0.485,1078,0.844,1091,2.314,1112,0.574,1118,0.733,1120,0.779,1134,0.779,1168,0.591,1211,1.326,1212,1.652,1215,0.733,1233,0.951,1297,0.844,1342,0.809,1373,0.809,1397,0.889,1413,0.889,1416,0.951,1432,1.569,1435,0.809,1467,0.951,1468,0.951,1481,1.294,1659,0.844,1670,0.889,2086,0.844,2196,0.779,2220,0.951,2325,0.754,2363,0.951,2380,0.779,2381,1.767,2382,2.731,2383,1.049,2384,1.049,2385,1.049,2386,1.049,2387,1.049,2388,1.049,2389,0.951,2390,0.951,2391,1.049,2392,1.95,2393,1.503,2394,0.809,2395,1.049,2396,1.049,2397,1.049,2398,1.049,2399,1.049,2400,1.95,2401,1.049,2402,1.049,2403,1.049,2404,1.049,2405,1.049,2406,1.049,2407,1.049,2408,1.049,2409,1.049,2410,1.049,2411,1.049,2412,1.049,2413,2.731,2414,1.049,2415,1.049,2416,1.049,2417,1.049,2418,1.049,2419,1.569,2420,1.049,2421,0.889,2422,1.049,2423,0.889,2424,0.889]],["component/59",[1,0.411]],["title/60-1",[23,25.689]],["name/60-1",[]],["text/60-1",[]],["component/60-1",[]],["title/60-2",[26,18.526]],["name/60-2",[]],["text/60-2",[]],["component/60-2",[]],["title/60-3",[334,23.488]],["name/60-3",[]],["text/60-3",[]],["component/60-3",[]],["title/60-4",[269,18.168]],["name/60-4",[]],["text/60-4",[]],["component/60-4",[]],["title/60-5",[932,25.347]],["name/60-5",[]],["text/60-5",[]],["component/60-5",[]],["title/60-6",[221,43.759]],["name/60-6",[]],["text/60-6",[]],["component/60-6",[]],["title/60-7",[9,46.852]],["name/60-7",[]],["text/60-7",[]],["component/60-7",[]],["title/60",[12,35.797]],["name/60",[12,0.721]],["text/60",[4,1.232,6,2.681,8,1.562,9,4.886,10,0.866,12,5.417,15,0.683,16,0.727,26,0.499,67,2.936,71,1.379,75,2.416,91,1.572,93,3.64,147,2.379,148,1.384,152,4.24,168,3.142,185,3.416,190,2.759,192,0.989,194,2.632,213,1.135,223,1.931,227,0.819,233,0.989,243,1.179,245,2.353,246,1.179,259,1.156,267,1.493,268,1.03,269,1.395,276,1.493,278,1.682,287,4.509,289,3.863,291,4.784,292,2.787,297,1.682,298,1.682,299,1.682,300,1.682,301,1.682,302,1.682,318,0.834,333,1.33,365,1.431,389,1.03,459,1.431,540,1.87,612,1.493,617,1.493,664,1.263,804,1.263,911,0.866,956,1.282,1054,1.335,1073,0.858,1134,1.379,1168,2.977,1297,1.493,1373,1.431,1481,2.172,1551,1.493,1675,1.682,2086,1.493,2099,1.682,2196,1.379,2325,1.335,2380,1.379,2393,2.522,2394,1.431,2419,2.632,2421,1.573,2423,1.573,2424,1.573,2425,3.272,2426,1.857,2427,1.857,2428,1.857,2429,1.857,2430,1.857,2431,1.857,2432,1.857,2433,1.857,2434,3.272,2435,1.857,2436,1.857,2437,1.857,2438,1.857]],["component/60",[1,0.411]],["title/61-1",[23,25.689]],["name/61-1",[]],["text/61-1",[]],["component/61-1",[]],["title/61-2",[26,18.526]],["name/61-2",[]],["text/61-2",[]],["component/61-2",[]],["title/61-3",[334,23.488]],["name/61-3",[]],["text/61-3",[]],["component/61-3",[]],["title/61-4",[269,18.168]],["name/61-4",[]],["text/61-4",[]],["component/61-4",[]],["title/61-5",[932,25.347]],["name/61-5",[]],["text/61-5",[]],["component/61-5",[]],["title/61-6",[221,43.759]],["name/61-6",[]],["text/61-6",[]],["component/61-6",[]],["title/61-7",[2439,68.884]],["name/61-7",[]],["text/61-7",[]],["component/61-7",[]],["title/61-8",[9,46.852]],["name/61-8",[]],["text/61-8",[]],["component/61-8",[]],["title/61",[11,31.517]],["name/61",[11,0.634]],["text/61",[4,1.057,6,2.371,8,1.684,9,4.476,10,0.743,11,4.868,15,0.586,16,0.624,26,0.428,67,3.106,71,1.183,75,2.198,91,1.372,93,3.58,147,2.148,148,1.208,152,4.33,168,3.413,180,0.86,185,3.379,188,1.112,189,0.75,191,1.994,192,0.849,196,2.791,213,2.371,223,1.685,227,0.703,233,0.849,239,1.443,243,1.012,245,2.053,259,0.992,267,1.281,268,0.884,269,1.436,272,2.587,287,4.793,288,1.443,289,4.087,290,1.443,291,5.062,292,3.004,293,2.587,294,2.587,295,1.443,296,1.443,318,0.715,333,1.161,338,2.218,355,0.722,365,1.227,389,0.884,540,2.218,597,4.285,612,1.281,617,1.281,664,1.083,758,1.349,804,1.083,911,0.743,956,1.52,1054,1.145,1073,0.736,1112,0.872,1131,1.349,1134,1.183,1168,0.897,1297,1.281,1373,1.227,1481,1.895,2086,1.281,2196,1.183,2325,1.145,2380,1.183,2393,2.2,2394,1.227,2419,2.297,2421,1.349,2423,1.349,2424,1.349,2440,2.855,2441,1.593,2442,1.593,2443,1.593,2444,1.443,2445,1.443,2446,1.593,2447,1.443,2448,1.593,2449,1.593,2450,2.855,2451,1.593,2452,2.855,2453,1.593,2454,1.593,2455,1.593,2456,1.593]],["component/61",[1,0.411]],["title/62-1",[23,25.689]],["name/62-1",[]],["text/62-1",[]],["component/62-1",[]],["title/62-2",[26,18.526]],["name/62-2",[]],["text/62-2",[]],["component/62-2",[]],["title/62-3",[334,23.488]],["name/62-3",[]],["text/62-3",[]],["component/62-3",[]],["title/62-4",[332,29.174,1056,29.174]],["name/62-4",[]],["text/62-4",[]],["component/62-4",[]],["title/62-5",[269,18.168]],["name/62-5",[]],["text/62-5",[]],["component/62-5",[]],["title/62-6",[932,25.347]],["name/62-6",[]],["text/62-6",[]],["component/62-6",[]],["title/62-7",[221,43.759]],["name/62-7",[]],["text/62-7",[]],["component/62-7",[]],["title/62-8",[15,25.347]],["name/62-8",[]],["text/62-8",[]],["component/62-8",[]],["title/62",[474,46.852]],["name/62",[474,0.943]],["text/62",[8,2.537,15,1.334,16,0.818,24,1.175,26,0.561,33,2.257,75,2.359,93,3.001,121,1.42,135,1.521,143,1.501,147,2.264,148,0.883,160,0.938,168,2.51,185,2.467,203,3.903,208,1.609,213,2.215,223,2.835,227,0.921,233,1.112,255,2.884,269,1.514,287,4.515,289,1.212,292,3.052,309,1.55,332,1.193,333,1.474,474,6.69,540,1.193,547,1.501,664,1.42,708,1.891,723,1.42,791,3.019,891,1.326,911,0.973,927,1.768,956,1.42,1056,5.045,1062,2.303,1073,0.964,1082,1.55,1112,1.142,1129,1.891,1133,1.501,1134,1.55,1136,3.865,1147,2.794,1364,1.679,1389,2.794,1480,1.891,1661,1.679,2110,1.891,2196,1.55,2276,1.768,2380,1.55,2393,2.794,2394,1.609,2457,1.891,2458,3.284,2459,2.087,2460,2.087,2461,2.087,2462,9.624,2463,3.625,2464,2.087,2465,2.087,2466,2.087,2467,2.087,2468,2.087,2469,2.087,2470,2.087,2471,4.805,2472,2.087,2473,2.087,2474,2.087,2475,2.087,2476,2.087,2477,2.087,2478,1.891,2479,2.087,2480,1.891,2481,2.087]],["component/62",[1,0.411]],["title/63-1",[23,25.689]],["name/63-1",[]],["text/63-1",[]],["component/63-1",[]],["title/63-2",[26,18.526]],["name/63-2",[]],["text/63-2",[]],["component/63-2",[]],["title/63-3",[334,23.488]],["name/63-3",[]],["text/63-3",[]],["component/63-3",[]],["title/63-4",[269,18.168]],["name/63-4",[]],["text/63-4",[]],["component/63-4",[]],["title/63-5",[932,25.347]],["name/63-5",[]],["text/63-5",[]],["component/63-5",[]],["title/63-6",[788,25.347]],["name/63-6",[]],["text/63-6",[]],["component/63-6",[]],["title/63-7",[221,43.759]],["name/63-7",[]],["text/63-7",[]],["component/63-7",[]],["title/63",[196,40.649]],["name/63",[196,0.818]],["text/63",[8,3.272,11,3.71,12,4.214,15,1.846,16,2.493,26,0.825,75,1.821,86,1.228,93,2.358,135,1.287,147,1.979,168,1.341,180,1.656,185,2.576,188,2.142,190,2.295,192,1.634,196,6.023,207,1.656,213,3.065,223,2.96,227,1.353,243,1.948,245,2.205,269,1.939,287,2.96,333,1.247,338,3.638,348,3.255,392,4.414,406,2.278,558,2.363,694,3.255,705,2.489,730,1.948,758,2.598,764,1.341,911,1.43,943,1.727,956,1.965,958,2.024,959,1.365,1054,2.205,1073,1.416,1109,1.948,1112,1.678,1168,3.583,1483,3.607,1486,1.99,1544,2.278,2444,2.779,2445,2.779,2447,2.779,2482,3.067,2483,3.067,2484,3.067,2485,3.067,2486,3.067]],["component/63",[1,0.411]],["title/64-1",[23,25.689]],["name/64-1",[]],["text/64-1",[]],["component/64-1",[]],["title/64-2",[26,18.526]],["name/64-2",[]],["text/64-2",[]],["component/64-2",[]],["title/64-3",[334,23.488]],["name/64-3",[]],["text/64-3",[]],["component/64-3",[]],["title/64-4",[269,18.168]],["name/64-4",[]],["text/64-4",[]],["component/64-4",[]],["title/64-5",[932,25.347]],["name/64-5",[]],["text/64-5",[]],["component/64-5",[]],["title/64-6",[788,25.347]],["name/64-6",[]],["text/64-6",[]],["component/64-6",[]],["title/64-7",[221,43.759]],["name/64-7",[]],["text/64-7",[]],["component/64-7",[]],["title/64-8",[1208,37.696]],["name/64-8",[]],["text/64-8",[]],["component/64-8",[]],["title/64",[182,36.242]],["name/64",[182,0.729]],["text/64",[3,0.893,7,0.775,8,1.9,11,1.513,15,0.483,16,0.939,26,0.353,69,0.762,75,2.123,80,0.852,86,0.526,92,2.675,93,2.483,114,0.659,147,2.306,148,2.472,150,2.061,152,1.33,154,2.621,156,1.14,160,3.01,161,0.644,168,1.447,178,0.775,180,0.709,182,5.663,185,1.698,188,0.917,189,0.618,190,0.601,192,0.699,196,1.414,198,2.661,199,2.997,200,2.549,201,1.189,202,1.056,203,2.25,204,2.495,205,0.893,211,0.852,212,1.414,213,2.021,223,1.952,227,0.579,233,0.699,244,1.012,245,0.944,247,1.056,258,0.871,259,0.817,268,0.728,269,1.253,287,3.716,289,0.762,316,0.944,318,0.59,333,0.974,364,1.189,391,0.975,406,0.975,441,1.012,453,3.284,459,1.012,471,0.775,472,0.882,473,0.944,540,1.37,542,1.112,558,1.012,570,1.35,588,0.944,589,0.852,593,2.06,653,1.012,664,0.893,730,1.523,732,0.975,733,1.189,764,1.048,776,2.802,876,1.724,882,0.666,891,0.834,897,1.012,900,1.952,907,0.975,911,1.542,923,0.834,943,0.739,956,1.295,958,0.967,959,0.584,983,0.917,985,0.975,986,0.817,1054,0.944,1070,2.031,1073,0.606,1101,1.983,1112,0.718,1133,0.944,1134,0.975,1168,0.739,1213,0.893,1215,0.917,1223,0.893,1342,1.012,1366,1.056,1419,0.944,1437,2.457,1534,1.112,1589,2.172,1609,1.056,1627,2.457,1769,1.012,1824,1.012,2076,1.112,2196,0.975,2380,0.975,2381,1.189,2389,1.189,2393,1.847,2394,1.012,2487,2.397,2488,1.313,2489,1.313,2490,1.189,2491,1.313,2492,1.313,2493,1.313,2494,1.313,2495,1.313,2496,1.313,2497,1.313,2498,1.313,2499,1.313,2500,1.313,2501,1.313,2502,1.189,2503,1.313,2504,2.397,2505,1.313,2506,1.313,2507,2.397,2508,1.313,2509,1.313,2510,1.313,2511,1.313,2512,1.313,2513,1.313,2514,1.313,2515,1.313,2516,1.313,2517,1.313,2518,1.189,2519,1.189]],["component/64",[1,0.411]],["title/65-1",[23,25.689]],["name/65-1",[]],["text/65-1",[]],["component/65-1",[]],["title/65-2",[26,18.526]],["name/65-2",[]],["text/65-2",[]],["component/65-2",[]],["title/65-3",[334,23.488]],["name/65-3",[]],["text/65-3",[]],["component/65-3",[]],["title/65-4",[269,18.168]],["name/65-4",[]],["text/65-4",[]],["component/65-4",[]],["title/65-5",[932,25.347]],["name/65-5",[]],["text/65-5",[]],["component/65-5",[]],["title/65-6",[788,18.782,934,21.076]],["name/65-6",[]],["text/65-6",[]],["component/65-6",[]],["title/65-7",[690,51.167]],["name/65-7",[]],["text/65-7",[]],["component/65-7",[]],["title/65-8",[1033,32.768]],["name/65-8",[]],["text/65-8",[]],["component/65-8",[]],["title/65-9",[449,32.426,2247,43.249]],["name/65-9",[]],["text/65-9",[]],["component/65-9",[]],["title/65-10",[1208,37.696]],["name/65-10",[]],["text/65-10",[]],["component/65-10",[]],["title/65",[473,49.533]],["name/65",[473,0.997]],["text/65",[8,1.715,11,2.429,16,1.143,26,0.305,33,0.705,53,0.873,67,1.287,71,1.555,75,0.411,86,0.454,92,2.046,93,1.966,114,1.823,135,0.475,147,1.151,148,0.479,150,1.576,154,1.773,160,0.509,168,3.121,182,5.231,188,2.976,189,0.533,190,0.518,204,2.942,211,0.735,212,1.235,229,0.611,247,0.911,269,0.958,287,4.521,292,0.719,333,0.46,355,2.183,369,1.555,392,0.68,449,1.33,453,5.739,454,0.752,459,0.873,471,1.722,472,1.406,473,7.507,520,1.33,570,1.178,589,1.358,653,0.873,677,0.986,690,3.577,695,0.735,705,1.038,730,1.854,732,1.555,737,0.791,752,0.873,755,0.814,764,0.916,776,4.08,796,0.692,876,2.098,882,1.062,900,3.132,907,0.841,933,1.535,934,0.864,955,1.361,956,1.423,958,1.177,959,0.504,985,0.841,986,0.705,1017,3.731,1018,0.611,1044,1.896,1052,0.791,1070,0.96,1080,1.684,1081,0.911,1088,1.026,1101,2.792,1109,1.33,1148,2.412,1213,0.77,1406,1.462,1419,0.814,1435,0.873,1437,0.841,1513,3.577,1527,4.872,1551,0.911,1557,1.026,1668,3.079,1803,0.911,1824,2.249,2024,3.292,2076,0.96,2247,3.079,2290,1.026,2502,1.026,2518,1.896,2519,1.026,2520,1.133,2521,1.133,2522,1.133,2523,1.896,2524,1.133,2525,1.133,2526,1.133,2527,1.133,2528,1.133,2529,2.093,2530,2.093,2531,1.133,2532,1.133,2533,1.133,2534,4.261,2535,2.093,2536,1.133,2537,1.133,2538,1.133,2539,1.133,2540,1.133,2541,1.133]],["component/65",[1,0.411]],["title/66-1",[23,25.689]],["name/66-1",[]],["text/66-1",[]],["component/66-1",[]],["title/66-2",[26,18.526]],["name/66-2",[]],["text/66-2",[]],["component/66-2",[]],["title/66-3",[334,23.488]],["name/66-3",[]],["text/66-3",[]],["component/66-3",[]],["title/66-4",[269,18.168]],["name/66-4",[]],["text/66-4",[]],["component/66-4",[]],["title/66-5",[932,25.347]],["name/66-5",[]],["text/66-5",[]],["component/66-5",[]],["title/66-6",[788,25.347]],["name/66-6",[]],["text/66-6",[]],["component/66-6",[]],["title/66-7",[221,43.759]],["name/66-7",[]],["text/66-7",[]],["component/66-7",[]],["title/66-8",[15,25.347]],["name/66-8",[]],["text/66-8",[]],["component/66-8",[]],["title/66-9",[15,18.782,1659,41.06]],["name/66-9",[]],["text/66-9",[]],["component/66-9",[]],["title/66",[121,46.852]],["name/66",[121,0.943]],["text/66",[8,1.627,11,3.636,15,1.008,16,1.073,26,1.005,36,1.52,53,1.172,67,2.016,68,1.093,75,0.995,86,0.609,93,3.392,121,7.652,124,0.832,125,1.705,141,2.205,143,1.093,147,1.474,152,0.844,154,1.555,160,1.678,168,2.307,178,0.897,185,1.919,191,1.913,203,2.541,204,0.929,208,2.879,221,1.74,223,2.205,227,2.016,229,0.821,233,0.81,255,2.243,269,1.688,287,3.468,320,0.966,333,0.618,338,2.136,346,0.869,355,0.689,389,1.52,391,1.129,474,3.107,547,1.093,593,0.947,664,1.034,723,1.034,730,2.902,764,0.665,882,1.39,891,0.966,911,0.709,943,1.542,955,2.459,956,1.463,958,1.507,959,0.677,986,1.705,1073,2.715,1131,1.288,1147,2.111,1148,1.818,1150,2.541,1172,2.111,1251,3.998,1302,1.172,1323,1.129,1389,1.172,1406,1.062,1470,1.378,1627,1.129,1659,3.675,1661,1.223,1720,1.378,1723,1.223,2276,1.288,2380,1.129,2390,1.378,2419,1.223,2457,1.378,2458,1.378,2478,1.378,2480,1.378,2542,3.736,2543,1.521,2544,1.521,2545,1.521,2546,1.521,2547,1.521,2548,1.521,2549,1.521,2550,1.521,2551,3.736,2552,1.521,2553,1.521,2554,1.521,2555,1.521,2556,1.521,2557,1.521,2558,1.521,2559,1.521,2560,1.521,2561,2.739,2562,1.521,2563,1.521,2564,1.521,2565,1.521,2566,1.521,2567,1.521,2568,1.521]],["component/66",[1,0.411]],["title/67-1",[23,25.689]],["name/67-1",[]],["text/67-1",[]],["component/67-1",[]],["title/67-2",[26,18.526]],["name/67-2",[]],["text/67-2",[]],["component/67-2",[]],["title/67-3",[334,23.488]],["name/67-3",[]],["text/67-3",[]],["component/67-3",[]],["title/67-4",[269,18.168]],["name/67-4",[]],["text/67-4",[]],["component/67-4",[]],["title/67-5",[932,25.347]],["name/67-5",[]],["text/67-5",[]],["component/67-5",[]],["title/67-6",[8,18.179,958,20.594]],["name/67-6",[]],["text/67-6",[]],["component/67-6",[]],["title/67-7",[10,32.125]],["name/67-7",[]],["text/67-7",[]],["component/67-7",[]],["title/67-8",[8,18.179,1208,27.933]],["name/67-8",[]],["text/67-8",[]],["component/67-8",[]],["title/67-9",[1208,37.696]],["name/67-9",[]],["text/67-9",[]],["component/67-9",[]],["title/67",[203,27.575,513,24.336,516,29.153]],["name/67",[1485,1.175]],["text/67",[7,1.1,8,3.619,15,0.686,16,1.286,21,1.184,26,0.501,45,3.078,67,0.822,75,3.051,86,1.315,91,1.578,93,3.707,115,2.782,135,1.377,147,2.092,150,1.424,168,0.815,203,2.993,227,1.449,230,1.849,249,3.694,269,1.595,332,1.065,348,1.209,355,2.403,392,1.971,425,5.964,472,2.206,513,1.119,516,1.34,656,4.427,694,2.13,705,0.925,791,0.981,840,1.184,911,0.869,943,1.049,955,1.531,956,1.723,983,1.302,1056,1.065,1062,4.237,1073,0.861,1109,1.184,1126,1.385,1133,3.813,1158,1.34,1168,1.849,1482,4.492,1483,1.34,1484,4.086,1485,7.613,1486,2.13,1487,2.975,1489,1.579,1491,1.689,1493,1.689,1507,6.043,1536,1.499,1544,1.385,1626,1.436,1817,2.782,2081,1.689,2569,3.283,2570,1.864,2571,1.864,2572,1.689,2573,2.975,2574,1.689,2575,1.689,2576,1.864,2577,1.864,2578,1.689,2579,1.689,2580,1.864,2581,1.864,2582,1.689,2583,1.689,2584,1.689,2585,1.864,2586,1.689]],["component/67",[1,0.411]],["title/68-1",[23,25.689]],["name/68-1",[]],["text/68-1",[]],["component/68-1",[]],["title/68-2",[26,18.526]],["name/68-2",[]],["text/68-2",[]],["component/68-2",[]],["title/68-3",[334,23.488]],["name/68-3",[]],["text/68-3",[]],["component/68-3",[]],["title/68-4",[269,18.168]],["name/68-4",[]],["text/68-4",[]],["component/68-4",[]],["title/68-5",[932,25.347]],["name/68-5",[]],["text/68-5",[]],["component/68-5",[]],["title/68-6",[8,18.179,958,20.594]],["name/68-6",[]],["text/68-6",[]],["component/68-6",[]],["title/68-7",[10,32.125]],["name/68-7",[]],["text/68-7",[]],["component/68-7",[]],["title/68-8",[8,18.179,1208,27.933]],["name/68-8",[]],["text/68-8",[]],["component/68-8",[]],["title/68-9",[788,18.782,934,21.076]],["name/68-9",[]],["text/68-9",[]],["component/68-9",[]],["title/68-10",[1033,32.768]],["name/68-10",[]],["text/68-10",[]],["component/68-10",[]],["title/68-11",[1208,37.696]],["name/68-11",[]],["text/68-11",[]],["component/68-11",[]],["title/68",[513,30.639,516,36.704]],["name/68",[1484,1.069]],["text/68",[7,1.864,8,2.933,16,1.533,26,0.334,45,1.324,67,0.549,69,0.722,75,2.05,80,1.48,86,1.265,91,1.096,92,1.779,93,2.873,135,0.957,147,0.491,168,0.544,198,2.541,227,0.549,230,3.178,246,0.79,249,1.394,269,1.205,289,1.324,291,0.894,332,0.711,347,2.207,355,4.078,361,2.272,425,2.097,440,0.807,472,2.122,513,4.117,516,4.059,563,1.835,569,0.807,616,0.76,656,5.314,666,0.894,677,1.488,695,0.807,705,0.617,711,0.958,723,1.551,764,0.544,773,2.486,788,0.839,791,0.654,840,2.486,882,2.608,933,0.654,934,0.513,955,2.13,956,1.789,958,1.579,959,0.553,980,1.053,983,0.868,1017,4.856,1018,1.706,1056,1.304,1062,5.492,1126,0.924,1133,2.272,1158,0.894,1168,1.284,1364,1,1366,1,1437,0.924,1482,6.342,1484,5.768,1486,0.807,1489,1.053,1512,1.835,1513,0.924,1536,3.148,1559,2.066,1570,2.066,1626,1.758,1661,1.835,1700,1.127,2090,1.127,2119,2.066,2490,1.127,2523,3.546,2572,2.863,2573,4.656,2574,1.127,2575,1.127,2578,1.127,2579,1.127,2582,1.127,2583,1.127,2584,1.127,2586,2.066,2587,1.243,2588,3.159,2589,1.243,2590,1.243,2591,2.281,2592,2.281,2593,1.243,2594,2.281,2595,1.243,2596,1.243,2597,1.243,2598,1.243,2599,1.243,2600,1.243,2601,1.243,2602,1.243,2603,1.243,2604,1.243,2605,1.243,2606,1.243]],["component/68",[1,0.411]],["title/69",[]],["name/69",[0,0.943]],["text/69",[]],["component/69",[1,0.411]],["title/70-1",[2,58.365]],["name/70-1",[]],["text/70-1",[]],["component/70-1",[]],["title/70-2",[3,46.852]],["name/70-2",[]],["text/70-2",[]],["component/70-2",[]],["title/70-3",[4,33.879,5,46.248]],["name/70-3",[]],["text/70-3",[]],["component/70-3",[]],["title/70-4",[6,42.095]],["name/70-4",[]],["text/70-4",[]],["component/70-4",[]],["title/70-5",[7,30.121,8,18.179]],["name/70-5",[]],["text/70-5",[]],["component/70-5",[]],["title/70-6",[9,46.852]],["name/70-6",[]],["text/70-6",[]],["component/70-6",[]],["title/70-7",[10,32.125]],["name/70-7",[]],["text/70-7",[]],["component/70-7",[]],["title/70-8",[11,31.517]],["name/70-8",[]],["text/70-8",[]],["component/70-8",[]],["title/70-9",[12,35.797]],["name/70-9",[]],["text/70-9",[]],["component/70-9",[]],["title/70-10",[13,38.784]],["name/70-10",[]],["text/70-10",[]],["component/70-10",[]],["title/70-11",[14,58.365]],["name/70-11",[]],["text/70-11",[]],["component/70-11",[]],["title/70-12",[15,18.782,16,19.992]],["name/70-12",[]],["text/70-12",[]],["component/70-12",[]],["title/70",[17,49.533]],["name/70",[17,0.997]],["text/70",[1,1.151,2,1.791,3,1.01,4,1.2,5,1.037,6,1.953,7,0.676,8,1.138,9,2.337,10,2.093,11,1.966,12,1.661,13,2.187,14,0.342,15,1.785,16,1.436,17,0.823,18,0.342,19,1.703,20,2.926,21,0.499,22,0.404,23,0.151,24,0.442,25,0.632,26,0.569,27,0.779,28,0.779,29,0.785,30,0.944,31,1.068,32,0.325,33,0.252,34,2.495,35,1.061,36,0.635,37,0.565,38,0.342,39,0.311,40,0.632,41,0.311,42,0.366,43,0.489,44,0.366,45,0.235,46,2.43,47,0.366,48,0.743,49,1.145,50,0.404,51,0.3,52,2.114,53,0.311,54,0.404,55,0.823,56,0.311,57,0.366,58,0.366,59,0.404,60,0.404,61,0.311,62,0.404,63,0.404,64,0.665,65,0.404,66,0.404,67,2.492,68,0.291,69,1.557,70,0.711,71,0.3,72,0.342,73,0.404,74,0.404,75,1.697,76,0.921,77,0.366,78,0.366,79,0.632,80,0.262,81,0.366,82,0.291,83,0.366,84,0.366,85,0.325,86,0.847,87,0.404,88,0.711,89,1.259,90,0.404,91,1.016,92,1.354,93,3.581,94,0.311,95,1.403,96,1.636,97,0.404,98,1.701,99,1.701,100,1.346,101,0.632,102,0.404,103,0.342,104,0.291,105,0.342,106,0.291,107,0.366,108,0.964,109,0.404,110,0.404,111,0.48,112,0.311,113,0.366,114,0.394,115,0.665,116,0.921,117,1.3,118,0.785,119,0.404,120,0.404,121,0.534,122,0.499,123,0.325,124,0.43,125,0.252,126,0.404,127,0.342,128,0.228,129,1.227,130,0.282,131,0.665,132,0.632,133,0.366,134,0.404,135,0.759,136,0.404,137,0.548,138,0.665,139,0.404,140,0.325,141,0.877,142,1.343,143,0.823,144,0.404,145,0.665,146,0.282,147,1.533,148,0.484,149,1.394,150,1.163,151,0.3,152,0.824,153,0.509,154,1.33,155,0.262,156,0.86,157,0.252,158,0.835,159,0.366,160,0.667,161,0.729,162,0.8,163,0.509,164,0.463,165,1.498,166,0.282,167,0.823,168,0.925,169,0.951,170,1.61,171,0.342,172,0.342,173,0.836,174,0.823,175,0.325,176,0.205,177,0.243,178,0.463,179,0.311,180,0.424,181,0.882,182,0.782,183,0.404,184,0.404,185,2.102,186,0.342,187,0.404,188,0.282,189,0.19,190,0.359,191,0.282,192,0.418,193,0.404,194,0.325,195,0.366,196,0.238,197,0.325,198,0.325,199,0.366,200,0.311,201,0.366,202,0.325,203,0.275,204,0.247,205,0.275,206,0.3,207,0.618,208,0.311,209,0.275,210,1.444,211,0.262,212,0.463,213,1.105,214,0.366,215,0.665,216,0.743,217,0.366,218,0.404,219,0.404,220,0.366,221,0.499,222,0.342,223,0.238,224,0.311,225,0.311,226,0.404,227,0.505,228,0.785,229,0.218,230,1.935,231,0.366,232,0.565,233,1.429,234,0.404,235,0.785,236,0.785,237,0.404,238,0.325,239,1.037,240,0.404,241,0.404,242,0.711,243,0.499,244,0.311,245,0.291,246,0.499,247,0.325,248,0.366,249,0.247,250,0.366,251,0.366,252,0.711,253,0.342,254,0.366,255,0.243,256,0.311,257,0.366,258,0.268,259,0.252,260,0.325,261,0.785,262,0.404,263,0.366,264,0.404,265,0.404,266,0.404,267,0.325,268,0.224,269,0.107,270,0.404,271,0.785,272,0.366,273,0.404,274,0.404,275,0.404,276,0.325,277,0.404,278,0.366,279,0.404,280,0.404,281,0.404,282,0.404,283,0.404,284,0.404,285,0.97,286,0.311,287,2.863,288,0.366,289,2.817,290,0.366,291,3.731,292,1.871,293,0.711,294,0.711,295,0.366,296,0.366,297,0.366,298,0.366,299,0.366,300,0.366,301,0.366,302,0.366,303,0.366,304,0.366,305,0.404,306,0.404,307,0.404,308,0.366,309,0.3,310,0.823,311,0.366,312,0.325,313,0.366,314,0.404,315,0.342,316,0.291,317,0.3,318,0.514,319,0.404,320,0.257,321,0.366,322,0.342,323,0.291,324,0.404,325,0.342,326,0.228,327,0.291,328,0.921,329,0.605,330,0.252,331,0.548,332,0.849,333,0.86,334,0.138,335,0.404,336,1.485,337,1.485,338,0.849,339,0.687,340,0.404,341,0.183,342,0.404,343,0.291,344,0.8,345,0.711,346,0.449,347,0.282,348,0.509,349,0.882,350,0.398,351,0.785,352,0.605,353,1.145,354,0.262,355,0.183,356,0.342,357,0.342,358,0.342,359,0.711,360,0.291,361,0.291,362,0.311,363,0.235,364,0.366,365,0.311,366,0.404,367,0.243,368,0.404,369,0.3,370,0.665,371,0.404,372,0.366,373,0.404,374,0.48,375,0.404,376,0.262,377,0.548,378,0.404,379,0.404,380,0.342,381,0.404,382,0.404,383,0.404,384,0.785,385,0.785,386,0.366,387,0.3,388,0.404,389,0.224,390,0.3,391,0.3,392,0.243,393,0.404,394,0.404,395,0.325,396,0.404,397,0.404,398,0.404,399,0.342,400,0.404,401,0.404,402,0.342,403,0.404,404,0.404,405,0.404,406,0.3,407,0.325,408,0.404,409,0.311,410,0.311,411,0.311,412,0.311,413,0.311,414,0.311,415,0.275,416,0.311,417,0.311,418,0.311,419,0.311,420,0.311]],["component/70",[1,0.411]],["title/71-1",[421,62.413]],["name/71-1",[]],["text/71-1",[]],["component/71-1",[]],["title/71-2",[422,41.06,423,37.915]],["name/71-2",[]],["text/71-2",[]],["component/71-2",[]],["title/71-3",[424,62.413]],["name/71-3",[]],["text/71-3",[]],["component/71-3",[]],["title/71",[1,9.959,19,17.917,20,18.401,35,16.871]],["name/71",[425,0.92]],["text/71",[1,1.164,4,0.83,11,0.572,12,0.65,13,0.704,15,1.168,16,0.49,17,0.899,19,1.691,20,2.509,24,0.704,27,0.85,28,0.85,35,2.588,36,2.544,37,0.899,38,1.059,39,0.963,40,1.005,44,1.133,48,0.811,55,0.899,69,0.726,75,0.832,82,1.648,86,1.573,88,1.133,106,2.282,108,0.811,112,3.028,121,0.85,122,0.794,123,1.005,124,0.684,125,1.976,128,0.704,129,0.726,131,1.942,132,1.844,156,0.595,158,2.616,161,0.613,164,0.738,165,1.427,166,0.873,170,1.376,180,2.475,182,0.658,196,0.738,203,0.85,207,0.675,210,0.75,213,0.764,259,1.427,260,1.005,263,1.133,308,2.077,309,2.919,310,0.899,318,2.544,326,0.704,328,1.005,330,0.778,349,0.963,350,2.618,357,1.059,358,1.059,359,1.133,361,0.899,367,1.376,376,0.811,377,1.601,387,0.928,409,0.963,410,0.963,411,0.963,412,2.446,413,1.766,414,1.766,415,0.85,416,0.963,417,0.963,418,1.766,419,1.766,420,1.766,422,1.005,423,0.928,424,2.077,426,1.25,427,1.4,428,0.83,429,1.25,430,0.658,431,1.133,432,0.811,433,1.133,434,1.25,435,0.963,436,0.928,437,1.25,438,0.963,439,1.25,440,1.487,441,0.963,442,0.963,443,1.25,444,1.25,445,1.059,446,0.963,447,1.25,448,0.963,449,0.794,450,1.059,451,1.25,452,1.25,453,1.005,454,0.83,455,1.25,456,2.077,457,2.292,458,2.292,459,0.963,460,1.25,461,1.059,462,0.963,463,1.25,464,1.942,465,3.161,466,0.85,467,1.25,468,1.005,469,1.005,470,1.059,471,0.738,472,0.84,473,0.899,474,0.85,475,0.764,476,1.737,477,3.1,478,1.702,479,1.059,480,1.873,481,0.963,482,1.702,483,2.383,484,1.005,485,1.648,486,1.005,487,0.873,488,0.963,489,0.963,490,1.25,491,0.873,492,1.487,493,0.928,494,0.963,495,1.059,496,1.059,497,1.601,498,2.752,499,1.005,500,0.83,501,0.963,502,1.005,503,1.005,504,1.005,505,2.016,506,1.005,507,1.005,508,0.85,509,1.4,510,0.928,511,0.764,512,0.899,513,1.905,514,2.357,515,0.811,516,1.648,517,1.521,518,1.25,519,1.133,520,0.794,521,1.25,522,1.059,523,2.292,524,1.25,525,1.059,526,1.059,527,1.25,528,1.25,529,0.928,530,1.25,531,1.133,532,1.25,533,1.25,534,2.292,535,1.133,536,1.133,537,0.963,538,1.133,539,1.25,540,0.714,541,1.133,542,1.059,543,1.25,544,1.25,545,1.25,546,1.059,547,0.899,548,0.963,549,1.25,550,1.25,551,1.25,552,1.25]],["component/71",[1,0.411]],["title/72-1",[325,43.249,553,43.249]],["name/72-1",[]],["text/72-1",[]],["component/72-1",[]],["title/72-2",[19,27.199,142,37.915]],["name/72-2",[]],["text/72-2",[]],["component/72-2",[]],["title/72-3",[389,38.227]],["name/72-3",[]],["text/72-3",[]],["component/72-3",[]],["title/72-4",[553,43.249,554,51.042]],["name/72-4",[]],["text/72-4",[]],["component/72-4",[]],["title/72-5",[310,49.533]],["name/72-5",[]],["text/72-5",[]],["component/72-5",[]],["title/72-6",[180,37.19]],["name/72-6",[]],["text/72-6",[]],["component/72-6",[]],["title/72-7",[36,28.326,161,25.052]],["name/72-7",[]],["text/72-7",[]],["component/72-7",[]],["title/72-8",[15,18.782,555,37.915]],["name/72-8",[]],["text/72-8",[]],["component/72-8",[]],["title/72",[470,43.249,471,30.121]],["name/72",[556,1.386]],["text/72",[1,0.349,4,0.536,8,0.148,9,0.801,10,2.308,11,0.849,12,0.612,15,0.798,16,0.461,19,0.431,20,1.35,21,0.264,27,1.038,28,0.55,30,1.179,31,0.847,33,0.259,35,1.764,36,3.346,41,0.623,43,0.259,55,0.581,56,0.321,64,0.353,68,0.299,69,1.259,72,0.685,75,1.277,80,1.205,86,0.988,89,0.353,91,1.043,92,1.389,93,3.898,95,0.782,96,0.283,98,0.335,99,0.335,100,0.377,103,0.353,104,0.299,105,0.353,106,0.299,112,0.321,114,0.766,116,0.65,117,1.56,122,0.264,123,2.211,128,0.234,129,1.595,132,0.335,135,0.339,137,0.291,141,1.096,142,2.784,143,0.847,145,0.242,147,0.602,148,0.176,149,0.793,150,0.511,151,0.309,152,0.231,154,0.173,155,0.524,156,1.032,158,1.139,161,1.606,168,0.353,169,0.803,170,0.25,173,0.663,174,0.299,180,0.636,181,0.321,182,0.803,185,0.214,192,0.989,203,0.283,204,0.72,207,0.824,210,0.707,213,1.135,215,0.353,216,0.27,222,0.353,227,0.184,229,0.225,230,1.221,233,1.997,242,0.732,243,1.378,244,0.321,245,0.299,246,0.513,247,0.335,248,0.377,249,1.135,250,0.377,251,0.377,252,0.732,253,0.353,254,0.377,255,0.25,256,0.321,257,0.377,258,0.276,259,0.733,260,0.65,268,0.847,276,0.65,285,1.293,286,0.907,287,1.096,289,0.684,292,0.264,310,1.098,312,0.335,317,0.6,318,0.686,323,0.299,325,0.353,327,0.299,328,0.65,329,0.321,330,0.503,332,0.238,333,0.479,341,0.189,344,1.066,346,0.673,347,0.291,348,0.27,349,0.321,350,0.41,352,0.321,355,0.534,356,0.998,357,0.353,358,0.353,362,0.321,363,0.684,369,0.309,370,1.293,374,0.494,386,0.377,389,2.08,392,0.25,406,0.6,407,0.65,409,0.321,410,0.321,411,0.321,412,0.321,413,0.321,414,0.321,415,0.801,416,0.321,417,0.321,418,0.321,419,0.321,420,0.321,427,0.494,430,0.219,433,0.732,436,1.134,438,1.176,440,0.27,441,0.907,442,0.321,445,0.685,449,0.264,450,0.685,454,0.536,466,0.55,468,0.335,469,0.65,470,0.685,471,0.477,472,0.28,473,0.299,476,0.442,477,1.556,483,0.216,487,0.564,491,2.107,492,0.27,498,0.707,500,1.013,513,0.25,514,1.134,515,0.524,517,2.002,522,0.353,525,1.293,553,0.353,555,0.309,557,0.808,558,0.623,559,0.416,560,0.377,561,0.416,562,0.353,563,0.65,564,0.685,565,0.564,566,0.416,567,0.377,568,0.353,569,0.99,570,0.234,571,0.808,572,0.377,573,0.377,574,0.416,575,0.416,576,0.808,577,0.416,578,1.177,579,0.335,580,1.134,581,1.177,582,0.808,583,0.416,584,0.416,585,1.177,586,2.211,587,0.564,588,0.581,589,1.205,590,0.335,591,0.353,592,0.353,593,0.259,594,0.416,595,0.808,596,1.379,597,0.377,598,0.321,599,0.733,600,0.808,601,0.416,602,0.416,603,0.291,604,0.416,605,0.416,606,0.416,607,0.536,608,0.685,609,1.038,610,0.808,611,0.732,612,0.335,613,0.416,614,0.416,615,0.416,616,0.254,617,0.335,618,1.526,619,0.732,620,0.335,621,0.808,622,0.416,623,0.353,624,0.907,625,0.353,626,0.377,627,0.416,628,0.416,629,0.416,630,1.176,631,0.808,632,1.177,633,1.177,634,2.169,635,2.748,636,0.808,637,0.808,638,0.808,639,0.808,640,1.857,641,0.416,642,0.377,643,1.293,644,0.808,645,0.808,646,0.416,647,0.416,648,0.416,649,0.416,650,0.808,651,0.416,652,0.808,653,0.623,654,0.377,655,0.808,656,0.276,657,0.416,658,0.416,659,0.377,660,0.416,661,1.573,662,0.416,663,0.416,664,0.283,665,0.416,666,0.847,667,1.857,668,0.732,669,0.416,670,1.067,671,0.377,672,0.808,673,0.416,674,0.377,675,0.416,676,0.416,677,0.555,678,0.377,679,0.377,680,0.377,681,0.353,682,0.377,683,0.808,684,0.416,685,0.416,686,0.416,687,0.377,688,0.377,689,0.416,690,0.309,691,0.416,692,0.416,693,0.416,694,0.27,695,0.27,696,0.808,697,0.309,698,0.377,699,0.416,700,0.416,701,0.416,702,0.416,703,1.526,704,0.416,705,0.207,706,0.416,707,0.335,708,0.732,709,0.377,710,0.377,711,0.321,712,0.416,713,0.416,714,0.808,715,0.732,716,0.416,717,0.564,718,0.377,719,0.416,720,0.335,721,0.416,722,0.377,723,0.283,724,0.416,725,0.416,726,0.416,727,0.998,728,0.685,729,0.309,730,0.513,731,0.875,732,0.875,733,0.377,734,0.685,735,0.6,736,0.321,737,0.564,738,0.808,739,0.283,740,0.309,741,0.416,742,0.416,743,0.416,744,0.808,745,0.416,746,0.416,747,0.335,748,0.416,749,0.377,750,1.067,751,0.416,752,0.321,753,0.335,754,0.416,755,0.299,756,0.353,757,0.353,758,1.838,759,0.732,760,0.321,761,0.416,762,0.416,763,0.536,764,0.182,765,0.353,766,1.383,767,0.353,768,0.353,769,0.416,770,0.416,771,0.353,772,0.65,773,0.513,774,1.177,775,0.808,776,0.353,777,0.416,778,0.416,779,0.416,780,0.416,781,0.416,782,0.416,783,0.416,784,0.353,785,0.416,786,0.377,787,0.416,788,0.153,789,0.6,790,0.416,791,0.219,792,0.503,793,0.416,794,0.416,795,0.321,796,0.254,797,0.353,798,0.732,799,0.732,800,0.416,801,0.309,802,0.65,803,0.377,804,0.283,805,0.732,806,0.416,807,0.335,808,0.353,809,0.377,810,0.353,811,0.416,812,0.416,813,0.377,814,0.377,815,0.377,816,0.321,817,0.416,818,0.377,819,0.416,820,0.416,821,0.416]],["component/72",[1,0.411]],["title/73-1",[791,36.242]],["name/73-1",[]],["text/73-1",[]],["component/73-1",[]],["title/73-2",[822,62.413]],["name/73-2",[]],["text/73-2",[]],["component/73-2",[]],["title/73-3",[823,62.413]],["name/73-3",[]],["text/73-3",[]],["component/73-3",[]],["title/73-4",[824,58.365]],["name/73-4",[]],["text/73-4",[]],["component/73-4",[]],["title/73-5",[75,12.21,318,15.104,464,28.49,824,28.49]],["name/73-5",[]],["text/73-5",[]],["component/73-5",[]],["title/73-6",[623,58.365]],["name/73-6",[]],["text/73-6",[]],["component/73-6",[]],["title/73-7",[505,43.759]],["name/73-7",[]],["text/73-7",[]],["component/73-7",[]],["title/73-8",[825,62.413]],["name/73-8",[]],["text/73-8",[]],["component/73-8",[]],["title/73-9",[27,34.717,76,41.06]],["name/73-9",[]],["text/73-9",[]],["component/73-9",[]],["title/73",[468,41.06,469,41.06]],["name/73",[468,1.115]],["text/73",[1,2.027,3,2.32,4,0.904,10,2.276,19,0.726,20,3.745,24,0.767,27,5.673,35,2.448,36,1.376,37,1.783,39,2.629,43,0.848,57,2.246,58,1.234,68,0.979,75,1.772,76,2.744,86,0.545,89,6.105,91,0.655,93,1.264,98,1.096,106,0.979,114,0.683,117,1.783,122,3.1,130,0.951,141,3.531,190,0.623,191,0.951,249,0.832,268,0.756,318,2.192,326,1.396,339,0.818,362,1.91,363,0.791,370,1.154,390,1.012,407,1.096,409,1.05,410,1.05,411,1.05,412,1.05,413,1.05,414,1.05,415,0.926,416,1.05,417,1.05,418,1.05,419,1.05,420,1.05,441,3.238,464,4.134,469,2.744,483,1.288,497,0.951,498,0.818,505,2.669,517,1.645,519,1.234,525,2.1,531,3.807,535,1.234,542,2.89,570,0.767,588,0.979,596,1.012,616,0.832,619,3.807,623,2.1,630,1.91,695,1.609,750,3.091,791,1.304,796,0.832,822,2.246,823,2.246,824,6.859,825,2.246,826,1.362,827,2.479,828,1.362,829,1.362,830,3.411,831,1.362,832,1.362,833,5.468,834,2.89,835,1.362,836,3.411,837,3.411,838,1.362,839,1.362,840,0.865,841,1.234,842,1.362,843,2.479,844,1.362,845,1.362,846,1.362,847,1.154,848,1.362,849,1.362,850,1.362,851,7.827,852,3.411,853,3.411,854,3.411,855,1.362,856,1.362,857,1.362,858,1.362,859,1.362,860,1.362,861,1.362,862,2.479,863,1.362,864,1.362,865,1.362,866,1.362,867,1.362,868,1.362,869,1.362,870,3.411,871,1.154,872,1.362,873,1.05,874,1.154,875,1.154,876,0.979,877,1.05,878,2.479,879,1.362,880,2.479,881,1.362,882,0.691,883,1.362,884,1.154,885,1.362,886,1.234]],["component/73",[1,0.411]],["title/74-1",[23,25.689]],["name/74-1",[]],["text/74-1",[]],["component/74-1",[]],["title/74-2",[475,42.095]],["name/74-2",[]],["text/74-2",[]],["component/74-2",[]],["title/74-3",[26,18.526]],["name/74-3",[]],["text/74-3",[]],["component/74-3",[]],["title/74-4",[334,23.488]],["name/74-4",[]],["text/74-4",[]],["component/74-4",[]],["title/74-5",[269,18.168]],["name/74-5",[]],["text/74-5",[]],["component/74-5",[]],["title/74-6",[932,25.347]],["name/74-6",[]],["text/74-6",[]],["component/74-6",[]],["title/74-7",[788,14.918,933,21.331,934,16.74]],["name/74-7",[]],["text/74-7",[]],["component/74-7",[]],["title/74-8",[15,18.782,341,23.138]],["name/74-8",[]],["text/74-8",[]],["component/74-8",[]],["title/74-9",[135,21.414,924,34.717]],["name/74-9",[]],["text/74-9",[]],["component/74-9",[]],["title/74",[475,31.192,477,24.281]],["name/74",[475,0.847]],["text/74",[1,0.706,8,1.447,15,0.877,16,0.933,19,1.27,26,1.093,35,2.039,67,1.793,75,1.929,84,2.159,86,1.627,93,2.324,108,1.546,122,1.514,124,1.304,128,1.342,135,1.705,147,1.603,149,2.76,150,2.303,154,0.992,161,2.607,167,1.714,168,2.323,176,2.695,190,1.09,230,3.533,269,1.072,329,1.837,333,1.652,338,2.322,341,1.08,343,1.714,345,2.159,346,1.362,350,3.184,354,1.546,355,1.08,367,2.439,395,1.917,430,1.254,438,1.837,440,1.546,445,2.019,475,5.001,476,2.223,477,4.967,478,1.77,480,2.398,481,3.131,482,3.018,555,1.77,616,1.456,698,2.159,717,1.664,764,1.042,788,0.877,882,1.209,914,1.238,933,2.138,934,0.984,935,2.383,936,2.159,937,1.546,938,1.484,939,1.582,940,2.159,941,2.019,942,2.383,943,2.288,944,2.159,945,2.383,946,2.383,947,2.383,948,2.383,949,1.917,950,2.383,951,1.917,952,2.383,953,2.383,954,2.383,955,2.477,956,1.591,957,2.383,958,0.962,959,1.061,960,2.019,961,2.019,962,2.019,963,1.917,964,2.019,965,2.019]],["component/74",[1,0.411]],["title/75-1",[23,25.689]],["name/75-1",[]],["text/75-1",[]],["component/75-1",[]],["title/75-2",[10,32.125]],["name/75-2",[]],["text/75-2",[]],["component/75-2",[]],["title/75-3",[148,21.589,887,41.06]],["name/75-3",[]],["text/75-3",[]],["component/75-3",[]],["title/75-4",[888,62.413]],["name/75-4",[]],["text/75-4",[]],["component/75-4",[]],["title/75",[164,40.649]],["name/75",[164,0.818]],["text/75",[0,0.898,1,0.984,8,0.858,10,2.225,13,2.686,15,0.486,16,0.517,19,2.542,20,1.818,33,1.5,35,2.686,43,0.822,56,1.017,67,1.063,69,0.766,75,1.944,93,1.519,105,1.118,108,0.857,114,1.209,122,0.839,128,0.743,129,3.669,135,0.554,141,0.779,142,2.468,146,1.683,148,0.558,149,1.727,150,0.572,153,4.598,154,1.985,155,2.156,156,1.581,157,0.822,158,4.09,160,1.082,161,3.3,162,2.864,163,2.661,164,4.181,165,5.123,166,2.864,167,0.949,168,2.087,169,0.695,173,1.871,176,0.67,177,1.995,178,1.961,179,2.561,181,1.017,206,1.79,210,0.792,216,1.563,229,0.713,244,1.017,246,0.839,255,0.792,256,1.017,258,1.599,285,1.118,313,1.196,317,0.981,318,0.593,320,0.839,323,0.949,326,0.743,343,0.949,346,0.754,348,0.857,350,0.67,355,0.598,360,0.949,361,0.949,363,1.399,367,0.792,374,2.506,376,2.156,377,2.864,390,3.046,391,1.79,415,0.898,432,0.857,435,1.017,440,1.563,472,0.887,483,1.727,487,1.683,488,3.16,508,2.26,512,0.949,558,1.017,596,0.981,599,0.822,611,1.196,711,1.017,728,1.118,789,2.468,796,0.807,804,0.898,873,1.017,876,0.949,888,3.011,889,1.32,890,1.118,891,0.839,892,1.32,893,1.32,894,1.196,895,1.118,896,1.32,897,1.017,898,1.32,899,0.949,900,0.779,901,1.32,902,2.409,903,1.196,904,1.32,905,1.732,906,1.196,907,0.981,908,3.046,909,1.017,910,1.017,911,0.616,912,0.922,913,1.196,914,1.252,915,1.118,916,1.062,917,1.118,918,0.981,919,1.118,920,1.32,921,1.32,922,1.32,923,0.839,924,0.898,925,1.118,926,1.32,927,1.118,928,1.32,929,1.32,930,1.196,931,1.32]],["component/75",[1,0.411]],["title/76",[158,31.817]],["name/76",[158,0.64]],["text/76",[1,1.099,8,0.764,10,1,11,1.698,18,3.144,19,3.115,20,2.684,24,2.089,25,1.725,26,1.319,35,1.076,53,1.652,75,1.347,79,1.725,86,0.859,91,2.357,111,1.31,121,1.458,125,1.335,130,4.614,131,3.144,145,1.245,153,1.391,156,3.441,158,4.26,160,0.963,161,1.052,164,1.265,169,1.128,182,1.128,186,1.817,191,1.498,192,1.143,210,1.287,216,1.391,309,1.593,320,1.362,323,2.668,376,1.391,389,2.059,409,1.652,410,1.652,411,1.652,412,1.652,413,1.652,414,1.652,415,1.458,416,1.652,417,1.652,418,1.652,419,1.652,420,1.652,427,2.268,430,1.128,436,1.593,450,1.817,471,1.265,472,1.44,477,1.02,480,1.265,483,2.549,486,1.725,494,4.505,598,1.652,609,1.458,656,1.423,720,1.725,722,1.943,759,1.943,791,1.128,796,3.572,895,3.144,923,1.362,940,1.943,941,3.144,943,1.207,966,4.702,968,1.817,969,1.498,970,2.144,971,3.711,972,2.144,973,2.144,974,1.335,975,2.144,976,2.144,977,4.919,978,1.725,979,1.943,980,1.817,981,2.144,982,1.391,983,1.498,984,2.144,985,1.593,986,3.054,987,2.756,988,1.817,989,1.652,990,1.817,991,2.144,992,2.144,993,2.144,994,1.943,995,2.144,996,1.943,997,2.144,998,1.943,999,2.144,1000,1.943,1001,2.144,1002,1.817,1003,1.817,1004,2.144,1005,2.144,1006,2.144]],["component/76",[1,0.411]],["title/77-1",[23,25.689]],["name/77-1",[]],["text/77-1",[]],["component/77-1",[]],["title/77-2",[7,23.924,360,29.153,1007,40.542]],["name/77-2",[]],["text/77-2",[]],["component/77-2",[]],["title/77",[35,20.341,36,22.498,37,29.153]],["name/77",[34,1.175]],["text/77",[2,4.393,4,2.12,7,3.496,10,1.49,15,1.175,17,1.299,18,1.531,20,0.989,21,2.727,26,0.859,30,2.029,32,1.453,34,4.393,35,4.792,36,4.769,37,2.297,38,1.531,39,2.462,40,3.454,41,1.392,45,1.049,46,1.637,47,1.637,48,1.172,51,1.342,55,1.299,56,1.392,61,1.392,67,0.797,68,1.299,69,1.854,70,1.637,75,0.656,76,1.453,77,1.637,78,1.637,79,2.569,80,4.247,81,1.637,82,1.299,83,1.637,101,1.453,108,1.172,114,0.906,122,1.148,129,1.049,135,2.175,145,1.049,146,1.262,149,3.078,150,1.862,160,0.812,161,1.568,169,3.117,200,2.462,207,0.975,210,1.084,211,1.172,229,0.975,256,1.392,286,2.462,315,1.531,316,1.299,320,1.148,322,1.531,326,1.017,352,1.392,360,1.299,427,1.952,430,0.951,442,1.392,449,1.148,465,2.569,513,1.084,514,4.4,515,2.073,517,4.696,540,1.826,562,2.706,565,1.262,568,1.531,589,2.073,755,1.299,795,1.392,807,2.569,871,1.531,877,2.462,891,3.294,900,1.066,925,1.531,930,1.637,978,1.453,986,1.989,1008,1.807,1009,1.807,1010,1.453,1011,2.462,1012,1.453,1013,3.729,1014,2.706,1015,1.637,1016,2.462,1017,1.172,1018,0.975,1019,1.807,1020,1.807,1021,1.453,1022,2.462,1023,1.531,1024,2.894,1025,2.894,1026,2.894,1027,1.807,1028,1.453,1029,1.531,1030,1.531]],["component/77",[1,0.411]],["title/78-1",[23,25.689]],["name/78-1",[]],["text/78-1",[]],["component/78-1",[]],["title/78-2",[180,37.19]],["name/78-2",[]],["text/78-2",[]],["component/78-2",[]],["title/78-3",[334,23.488]],["name/78-3",[]],["text/78-3",[]],["component/78-3",[]],["title/78-4",[269,18.168]],["name/78-4",[]],["text/78-4",[]],["component/78-4",[]],["title/78-5",[932,25.347]],["name/78-5",[]],["text/78-5",[]],["component/78-5",[]],["title/78-6",[788,18.782,934,21.076]],["name/78-6",[]],["text/78-6",[]],["component/78-6",[]],["title/78-7",[15,18.782,341,23.138]],["name/78-7",[]],["text/78-7",[]],["component/78-7",[]],["title/78-8",[1031,49.533]],["name/78-8",[]],["text/78-8",[]],["component/78-8",[]],["title/78-9",[334,23.488]],["name/78-9",[]],["text/78-9",[]],["component/78-9",[]],["title/78-10",[269,18.168]],["name/78-10",[]],["text/78-10",[]],["component/78-10",[]],["title/78-11",[932,25.347]],["name/78-11",[]],["text/78-11",[]],["component/78-11",[]],["title/78-12",[15,18.782,341,23.138]],["name/78-12",[]],["text/78-12",[]],["component/78-12",[]],["title/78-13",[1032,51.167]],["name/78-13",[]],["text/78-13",[]],["component/78-13",[]],["title/78-14",[334,23.488]],["name/78-14",[]],["text/78-14",[]],["component/78-14",[]],["title/78-15",[269,18.168]],["name/78-15",[]],["text/78-15",[]],["component/78-15",[]],["title/78-16",[932,25.347]],["name/78-16",[]],["text/78-16",[]],["component/78-16",[]],["title/78-17",[15,18.782,341,23.138]],["name/78-17",[]],["text/78-17",[]],["component/78-17",[]],["title/78-18",[318,30.942]],["name/78-18",[]],["text/78-18",[]],["component/78-18",[]],["title/78-19",[334,23.488]],["name/78-19",[]],["text/78-19",[]],["component/78-19",[]],["title/78-20",[269,18.168]],["name/78-20",[]],["text/78-20",[]],["component/78-20",[]],["title/78-21",[932,25.347]],["name/78-21",[]],["text/78-21",[]],["component/78-21",[]],["title/78-22",[788,18.782,934,21.076]],["name/78-22",[]],["text/78-22",[]],["component/78-22",[]],["title/78-23",[15,18.782,341,23.138]],["name/78-23",[]],["text/78-23",[]],["component/78-23",[]],["title/78-24",[509,42.095]],["name/78-24",[]],["text/78-24",[]],["component/78-24",[]],["title/78-25",[334,23.488]],["name/78-25",[]],["text/78-25",[]],["component/78-25",[]],["title/78-26",[269,18.168]],["name/78-26",[]],["text/78-26",[]],["component/78-26",[]],["title/78-27",[932,25.347]],["name/78-27",[]],["text/78-27",[]],["component/78-27",[]],["title/78-28",[788,18.782,934,21.076]],["name/78-28",[]],["text/78-28",[]],["component/78-28",[]],["title/78-29",[1033,32.768]],["name/78-29",[]],["text/78-29",[]],["component/78-29",[]],["title/78",[180,37.19]],["name/78",[123,1.115]],["text/78",[0,0.486,1,0.212,6,1.808,8,2.039,11,0.889,12,1.769,14,3.232,15,1.253,16,1.333,19,1.035,20,0.744,21,0.454,27,0.486,28,0.486,30,1.234,32,0.575,33,1.209,69,1.128,75,1.074,86,0.778,93,3.672,108,0.464,111,0.437,114,0.359,133,1.231,141,0.422,145,1.128,147,0.976,148,0.821,150,1.073,152,0.754,153,1.26,154,0.808,155,1.605,156,1.407,157,1.842,158,1.367,160,1.111,168,1.294,169,0.715,180,3.471,181,1.047,182,3.143,186,0.605,189,0.337,190,0.327,196,2.682,205,0.924,207,0.386,210,1.166,227,1.091,238,1.093,243,0.863,255,0.816,258,0.902,269,1.637,309,0.531,310,2.128,318,3.573,323,2.743,329,0.551,330,0.846,339,1.166,344,0.499,361,0.514,363,0.789,392,0.816,430,0.376,435,1.047,454,0.902,456,0.647,466,0.486,471,0.802,473,3.015,477,0.34,497,0.499,498,0.816,499,0.575,500,0.902,501,0.551,502,0.575,505,0.454,509,3.162,511,3.162,538,0.647,547,0.514,589,0.464,593,0.846,607,1.642,609,1.321,626,0.647,666,0.514,690,0.531,705,2.417,715,0.647,728,0.605,731,2.529,737,0.499,739,0.486,763,0.474,764,0.85,789,0.531,792,0.846,801,0.531,802,0.575,804,0.924,882,0.363,891,0.863,899,0.514,900,3.054,905,0.514,909,0.551,911,0.906,918,0.531,923,0.454,933,1.022,934,0.802,941,0.605,955,2.271,956,1.642,958,1.539,959,0.865,969,0.949,977,0.486,988,0.605,1021,0.575,1031,2.448,1032,1.443,1034,1.359,1035,1.359,1036,0.715,1037,0.605,1038,0.575,1039,0.715,1040,0.715,1041,0.715,1042,0.715,1043,0.715,1044,0.647,1045,0.605,1046,0.715,1047,0.715,1048,0.715,1049,0.647,1050,0.605,1051,0.715,1052,0.499,1053,0.605,1054,1.397,1055,2.38,1056,1.691,1057,0.715,1058,0.715,1059,0.715,1060,2.507,1061,4.117,1062,1.88,1063,1.359,1064,2.128,1065,0.715,1066,0.715,1067,1.942,1068,0.551,1069,0.715,1070,0.605,1071,3.814,1072,2.473,1073,0.897,1074,1.359,1075,0.715,1076,0.647,1077,1.047,1078,0.575,1079,0.575,1080,0.575,1081,0.575,1082,0.531,1083,0.575,1084,0.605,1085,0.605,1086,0.551,1087,1.231,1088,1.231,1089,0.531,1090,0.575,1091,1.646,1092,0.715,1093,0.715,1094,0.715,1095,0.715,1096,0.605,1097,0.551,1098,0.551,1099,0.715,1100,2.259,1101,2.365,1102,0.715,1103,0.715,1104,0.83,1105,1.359,1106,0.715,1107,0.715]],["component/78",[1,0.411]],["title/79-1",[23,25.689]],["name/79-1",[]],["text/79-1",[]],["component/79-1",[]],["title/79-2",[213,42.095]],["name/79-2",[]],["text/79-2",[]],["component/79-2",[]],["title/79-3",[269,18.168]],["name/79-3",[]],["text/79-3",[]],["component/79-3",[]],["title/79-4",[932,25.347]],["name/79-4",[]],["text/79-4",[]],["component/79-4",[]],["title/79-5",[232,36.704,511,31.192]],["name/79-5",[]],["text/79-5",[]],["component/79-5",[]],["title/79-6",[8,18.179,312,41.06]],["name/79-6",[]],["text/79-6",[]],["component/79-6",[]],["title/79-7",[511,31.192,1108,46.248]],["name/79-7",[]],["text/79-7",[]],["component/79-7",[]],["title/79-8",[788,18.782,934,21.076]],["name/79-8",[]],["text/79-8",[]],["component/79-8",[]],["title/79-9",[1109,43.759]],["name/79-9",[]],["text/79-9",[]],["component/79-9",[]],["title/79-10",[1110,68.884]],["name/79-10",[]],["text/79-10",[]],["component/79-10",[]],["title/79-11",[232,49.533]],["name/79-11",[]],["text/79-11",[]],["component/79-11",[]],["title/79-12",[213,31.192,1111,46.248]],["name/79-12",[]],["text/79-12",[]],["component/79-12",[]],["title/79-13",[1112,37.696]],["name/79-13",[]],["text/79-13",[]],["component/79-13",[]],["title/79",[213,42.095]],["name/79",[213,0.847]],["text/79",[1,0.701,6,1.022,7,0.987,8,3.06,10,0.78,11,1.365,12,0.463,13,2.528,16,0.926,17,0.64,19,1.26,20,1.632,21,0.566,24,1.332,31,1.203,35,1.187,67,0.738,69,0.971,71,0.661,75,0.607,86,0.67,93,3.578,101,1.903,108,0.578,113,0.807,124,0.487,129,1.373,145,0.971,147,0.66,148,0.707,149,1.229,150,1.026,152,0.928,153,1.085,154,3.866,156,1.683,157,1.042,158,0.411,159,0.807,160,0.4,161,1.161,162,0.622,163,0.578,164,0.525,165,0.554,166,0.622,167,0.64,168,1.305,169,0.468,173,0.501,174,0.64,182,0.468,185,0.457,191,0.622,196,0.525,209,0.606,212,0.525,213,5.677,214,0.807,215,0.754,216,0.578,217,0.807,227,0.393,229,0.903,232,6.361,255,1.42,269,1.065,292,0.566,320,0.566,326,0.501,334,0.807,346,1.705,363,0.517,390,1.242,430,0.468,449,0.566,474,0.606,511,2.996,569,0.578,579,0.716,599,0.554,603,1.168,620,0.716,695,0.578,723,2.746,749,0.807,752,0.686,764,0.389,808,0.754,876,1.701,899,1.203,911,1.103,912,0.622,933,0.468,934,1.854,949,0.716,955,4.181,956,1.385,958,0.675,959,0.396,986,1.042,1054,1.203,1055,1.346,1056,0.956,1062,1.895,1064,1.701,1068,0.686,1091,6.908,1108,2.143,1109,0.566,1111,0.807,1113,0.89,1114,0.89,1115,0.89,1116,0.89,1117,0.89,1118,0.622,1119,0.89,1120,0.661,1121,0.89,1122,0.89,1123,0.89,1124,0.89,1125,0.807,1126,0.661,1127,0.89,1128,0.807,1129,0.807,1130,0.89,1131,0.754,1132,0.89,1133,1.701,1134,1.242,1135,0.807,1136,0.716,1137,0.89,1138,0.89,1139,0.661,1140,0.89,1141,0.716,1142,0.89,1143,0.807,1144,0.89,1145,0.89,1146,1.673,1147,4.07,1148,4.144,1149,0.89,1150,0.606,1151,0.716,1152,2.726,1153,0.89,1154,1.515,1155,0.89,1156,0.89,1157,1.673,1158,1.203,1159,0.89,1160,1.673,1161,0.89,1162,0.89]],["component/79",[1,0.411]],["title/80-1",[23,25.689]],["name/80-1",[]],["text/80-1",[]],["component/80-1",[]],["title/80-2",[26,18.526]],["name/80-2",[]],["text/80-2",[]],["component/80-2",[]],["title/80-3",[334,23.488]],["name/80-3",[]],["text/80-3",[]],["component/80-3",[]],["title/80-4",[269,18.168]],["name/80-4",[]],["text/80-4",[]],["component/80-4",[]],["title/80-5",[932,25.347]],["name/80-5",[]],["text/80-5",[]],["component/80-5",[]],["title/80-6",[788,25.347]],["name/80-6",[]],["text/80-6",[]],["component/80-6",[]],["title/80-7",[1033,32.768]],["name/80-7",[]],["text/80-7",[]],["component/80-7",[]],["title/80",[350,25.904,477,24.281]],["name/80",[963,1.115]],["text/80",[1,2.868,8,1.825,11,1.441,16,2.007,26,0.847,45,3.763,75,1.143,86,2.595,93,3.587,135,1.321,147,2.557,148,1.332,150,1.366,154,1.31,160,1.414,185,2.632,189,1.483,190,2.345,227,1.389,269,1.97,333,1.28,338,4.699,350,1.598,428,2.09,432,2.043,475,3.132,477,3.083,616,1.924,677,1.483,764,1.377,791,1.657,792,1.961,882,2.601,911,1.468,914,1.636,937,2.043,938,1.961,939,2.09,955,2.39,956,2.007,958,1.27,959,1.402,963,7.09,1073,1.454,1101,4.512,1163,2.09,1164,3.149,1165,5.08,1166,2.264,1167,3.149,1168,2.886,1169,3.149,1170,3.149]],["component/80",[1,0.411]],["title/81-1",[23,25.689]],["name/81-1",[]],["text/81-1",[]],["component/81-1",[]],["title/81-2",[26,18.526]],["name/81-2",[]],["text/81-2",[]],["component/81-2",[]],["title/81-3",[334,23.488]],["name/81-3",[]],["text/81-3",[]],["component/81-3",[]],["title/81-4",[269,18.168]],["name/81-4",[]],["text/81-4",[]],["component/81-4",[]],["title/81-5",[932,25.347]],["name/81-5",[]],["text/81-5",[]],["component/81-5",[]],["title/81-6",[788,25.347]],["name/81-6",[]],["text/81-6",[]],["component/81-6",[]],["title/81-7",[1033,32.768]],["name/81-7",[]],["text/81-7",[]],["component/81-7",[]],["title/81",[170,15.048,259,15.612,350,12.723,477,11.926,478,18.622,480,14.794]],["name/81",[962,1.175]],["text/81",[1,2.649,8,1.753,11,0.986,16,1.459,26,0.579,45,2.858,75,0.782,86,1.971,91,1.79,93,3.422,124,1.179,135,0.904,147,2.614,148,0.911,150,0.934,154,0.897,160,0.968,170,1.293,185,3.011,189,1.014,190,1.704,204,1.316,209,1.465,227,0.95,259,1.341,269,1.547,289,1.251,333,1.515,338,5.112,350,1.093,428,1.43,432,1.398,475,2.276,477,3.7,478,1.6,480,1.271,607,3.892,616,1.316,677,1.754,764,0.942,791,1.133,792,3.065,882,2.498,911,1.005,914,1.119,937,1.398,938,1.341,939,1.43,955,3.089,956,1.459,958,1.503,959,0.959,962,6.969,963,1.733,1073,0.995,1101,4.918,1139,1.6,1163,1.43,1165,4.506,1166,2.679,1168,2.097,1171,3.959,1172,2.871,1173,3.725,1174,2.997,1175,1.825,1176,3.725,1177,2.997,1178,4.46]],["component/81",[1,0.411]],["title/82-1",[23,25.689]],["name/82-1",[]],["text/82-1",[]],["component/82-1",[]],["title/82-2",[26,18.526]],["name/82-2",[]],["text/82-2",[]],["component/82-2",[]],["title/82-3",[334,23.488]],["name/82-3",[]],["text/82-3",[]],["component/82-3",[]],["title/82-4",[269,18.168]],["name/82-4",[]],["text/82-4",[]],["component/82-4",[]],["title/82-5",[932,25.347]],["name/82-5",[]],["text/82-5",[]],["component/82-5",[]],["title/82-6",[788,25.347]],["name/82-6",[]],["text/82-6",[]],["component/82-6",[]],["title/82-7",[1033,32.768]],["name/82-7",[]],["text/82-7",[]],["component/82-7",[]],["title/82",[170,15.048,259,15.612,350,12.723,477,11.926,478,18.622,479,21.242]],["name/82",[961,1.175]],["text/82",[1,2.69,8,1.803,11,1.023,16,1.507,26,0.601,45,2.94,75,0.812,86,2.027,91,1.849,93,3.567,124,1.224,135,0.938,147,2.674,148,0.946,150,0.97,154,0.931,160,1.004,170,2.309,185,3.088,189,1.053,190,1.76,227,0.987,259,1.392,269,1.586,289,1.298,333,1.564,338,5.002,350,1.135,428,1.484,432,1.451,475,2.351,477,3.522,478,1.661,479,1.895,480,1.319,607,3.992,616,1.366,677,1.812,764,0.978,791,1.176,792,2.396,882,1.952,911,1.043,914,1.162,937,1.451,938,1.392,939,1.484,955,3.161,956,1.507,958,1.552,959,0.995,961,7.093,1073,1.033,1101,4.787,1139,1.661,1163,1.484,1165,4.09,1166,2.766,1168,2.166,1171,4.073,1172,2.965,1174,3.095,1175,1.895,1177,3.095,1178,3.486,1179,3.847,1180,3.847]],["component/82",[1,0.411]],["title/83-1",[23,25.689]],["name/83-1",[]],["text/83-1",[]],["component/83-1",[]],["title/83-2",[26,18.526]],["name/83-2",[]],["text/83-2",[]],["component/83-2",[]],["title/83-3",[334,23.488]],["name/83-3",[]],["text/83-3",[]],["component/83-3",[]],["title/83-4",[269,18.168]],["name/83-4",[]],["text/83-4",[]],["component/83-4",[]],["title/83-5",[932,25.347]],["name/83-5",[]],["text/83-5",[]],["component/83-5",[]],["title/83-6",[788,25.347]],["name/83-6",[]],["text/83-6",[]],["component/83-6",[]],["title/83-7",[1033,32.768]],["name/83-7",[]],["text/83-7",[]],["component/83-7",[]],["title/83",[350,20.575,367,24.336,477,19.286]],["name/83",[395,1.115]],["text/83",[1,2.861,8,1.816,11,1.431,16,1.997,26,0.841,45,3.746,75,1.136,86,2.584,93,3.578,135,1.312,147,2.545,148,1.323,150,1.356,154,1.302,160,1.405,185,2.617,189,1.473,190,2.332,227,1.38,269,1.962,333,1.272,338,4.683,350,1.587,367,1.877,395,7.068,428,2.076,432,2.03,475,3.115,477,3.069,616,1.911,677,1.473,764,1.368,791,1.646,792,1.948,882,2.587,911,1.459,914,1.625,937,2.03,938,1.948,939,2.076,955,2.377,956,1.997,958,1.262,959,1.392,1073,1.445,1101,4.499,1163,2.076,1165,5.06,1166,2.249,1168,2.87,1181,3.128,1182,3.128,1183,3.128,1184,3.128]],["component/83",[1,0.411]],["title/84-1",[23,25.689]],["name/84-1",[]],["text/84-1",[]],["component/84-1",[]],["title/84-2",[26,18.526]],["name/84-2",[]],["text/84-2",[]],["component/84-2",[]],["title/84-3",[334,23.488]],["name/84-3",[]],["text/84-3",[]],["component/84-3",[]],["title/84-4",[269,18.168]],["name/84-4",[]],["text/84-4",[]],["component/84-4",[]],["title/84-5",[932,25.347]],["name/84-5",[]],["text/84-5",[]],["component/84-5",[]],["title/84-6",[788,25.347]],["name/84-6",[]],["text/84-6",[]],["component/84-6",[]],["title/84-7",[1033,32.768]],["name/84-7",[]],["text/84-7",[]],["component/84-7",[]],["title/84",[367,24.336,477,19.286,482,30.115]],["name/84",[965,1.175]],["text/84",[1,2.728,8,1.646,11,3.516,13,2.602,16,1.81,26,0.747,45,3.446,75,1.008,86,2.377,93,3.412,135,1.165,147,2.342,148,1.175,150,1.204,154,1.156,160,1.247,170,2.774,173,1.564,185,2.373,189,1.308,190,2.115,227,1.225,269,1.825,333,1.129,338,5.027,339,3.563,367,1.667,428,1.843,432,1.802,475,2.824,477,2.199,482,2.063,546,2.353,616,1.697,677,1.308,764,1.215,791,1.461,792,1.729,882,2.346,911,1.295,914,1.443,937,1.802,938,1.729,939,1.843,955,2.155,956,1.81,958,1.12,959,1.236,965,7.029,1018,1.499,1073,1.283,1101,4.271,1163,1.843,1165,4.707,1168,2.602,1185,2.516,1186,1.94,1187,2.777,1188,3.916,1189,2.353,1190,2.777,1191,2.777,1192,2.777]],["component/84",[1,0.411]],["title/85-1",[23,25.689]],["name/85-1",[]],["text/85-1",[]],["component/85-1",[]],["title/85-2",[26,18.526]],["name/85-2",[]],["text/85-2",[]],["component/85-2",[]],["title/85-3",[334,23.488]],["name/85-3",[]],["text/85-3",[]],["component/85-3",[]],["title/85-4",[269,18.168]],["name/85-4",[]],["text/85-4",[]],["component/85-4",[]],["title/85-5",[932,25.347]],["name/85-5",[]],["text/85-5",[]],["component/85-5",[]],["title/85-6",[788,25.347]],["name/85-6",[]],["text/85-6",[]],["component/85-6",[]],["title/85-7",[1033,32.768]],["name/85-7",[]],["text/85-7",[]],["component/85-7",[]],["title/85",[350,20.575,476,22.186,477,19.286]],["name/85",[960,1.175]],["text/85",[1,2.868,8,1.825,11,1.441,16,2.007,26,0.847,45,3.763,75,1.143,86,2.595,93,3.587,135,1.321,147,2.557,148,1.332,150,1.366,154,1.31,160,1.414,185,2.632,189,1.483,190,2.345,227,1.389,269,1.97,333,1.28,338,4.699,350,1.598,428,2.09,432,2.043,475,3.132,476,1.723,477,2.438,616,1.924,677,1.483,764,1.377,791,1.657,792,1.961,882,2.601,911,1.468,914,1.636,937,2.043,938,1.961,939,2.09,955,2.39,956,2.007,958,1.27,959,1.402,960,7.468,1073,1.454,1101,4.512,1163,2.09,1165,5.08,1166,2.264,1168,2.886,1193,3.149,1194,2.853,1195,3.149,1196,3.149]],["component/85",[1,0.411]],["title/86-1",[23,25.689]],["name/86-1",[]],["text/86-1",[]],["component/86-1",[]],["title/86-2",[26,18.526]],["name/86-2",[]],["text/86-2",[]],["component/86-2",[]],["title/86-3",[334,23.488]],["name/86-3",[]],["text/86-3",[]],["component/86-3",[]],["title/86-4",[269,18.168]],["name/86-4",[]],["text/86-4",[]],["component/86-4",[]],["title/86-5",[932,25.347]],["name/86-5",[]],["text/86-5",[]],["component/86-5",[]],["title/86-6",[788,25.347]],["name/86-6",[]],["text/86-6",[]],["component/86-6",[]],["title/86-7",[1033,32.768]],["name/86-7",[]],["text/86-7",[]],["component/86-7",[]],["title/86",[476,22.186,477,19.286,482,30.115]],["name/86",[964,1.175]],["text/86",[1,2.728,8,1.646,11,3.516,13,2.602,16,1.81,26,0.747,45,3.446,75,1.008,86,2.377,93,3.412,135,1.165,147,2.342,148,1.175,150,1.204,154,1.156,160,1.247,170,2.774,185,2.373,189,1.308,190,2.115,227,1.225,229,1.499,269,1.825,333,1.129,338,5.027,339,3.563,428,1.843,432,1.802,475,2.824,476,1.52,477,2.199,482,2.063,546,2.353,616,1.697,677,1.308,764,1.215,791,1.461,792,1.729,882,2.346,911,1.295,914,1.443,937,1.802,938,1.729,939,1.843,955,2.155,956,1.81,958,1.12,959,1.236,964,7.029,1018,1.499,1073,1.283,1101,4.271,1163,1.843,1165,4.707,1168,2.602,1185,2.516,1186,1.94,1188,3.916,1189,2.353,1197,2.777,1198,2.777,1199,2.777,1200,2.777]],["component/86",[1,0.411]],["title/87-1",[23,25.689]],["name/87-1",[]],["text/87-1",[]],["component/87-1",[]],["title/87-2",[26,18.526]],["name/87-2",[]],["text/87-2",[]],["component/87-2",[]],["title/87-3",[334,23.488]],["name/87-3",[]],["text/87-3",[]],["component/87-3",[]],["title/87-4",[269,18.168]],["name/87-4",[]],["text/87-4",[]],["component/87-4",[]],["title/87-5",[932,25.347]],["name/87-5",[]],["text/87-5",[]],["component/87-5",[]],["title/87-6",[788,25.347]],["name/87-6",[]],["text/87-6",[]],["component/87-6",[]],["title/87-7",[1033,32.768]],["name/87-7",[]],["text/87-7",[]],["component/87-7",[]],["title/87",[477,24.281,481,39.337]],["name/87",[481,1.069]],["text/87",[1,2.636,8,1.857,11,1.063,16,1.558,26,0.625,45,3.026,75,0.844,86,2.087,91,1.911,93,3.523,124,1.272,135,0.975,147,2.737,148,0.983,150,1.008,154,0.967,160,1.044,185,3.169,189,1.095,190,1.82,227,1.026,269,1.628,289,1.349,333,1.617,338,5.086,428,1.543,432,1.508,475,2.43,477,3.597,481,6.858,607,4.096,616,1.42,677,1.873,764,1.017,791,1.223,792,2.477,882,2.018,911,1.084,914,1.208,937,1.508,938,1.447,939,1.543,955,3.235,956,1.558,958,1.605,959,1.035,1073,1.074,1101,4.849,1139,1.727,1163,1.543,1165,4.198,1166,2.86,1168,2.239,1171,4.193,1172,3.065,1174,3.199,1177,3.199,1201,3.977,1202,2.324,1203,3.977,1204,3.977]],["component/87",[1,0.411]],["title/88-1",[23,25.689]],["name/88-1",[]],["text/88-1",[]],["component/88-1",[]],["title/88-2",[26,18.526]],["name/88-2",[]],["text/88-2",[]],["component/88-2",[]],["title/88-3",[334,23.488]],["name/88-3",[]],["text/88-3",[]],["component/88-3",[]],["title/88-4",[269,18.168]],["name/88-4",[]],["text/88-4",[]],["component/88-4",[]],["title/88-5",[932,25.347]],["name/88-5",[]],["text/88-5",[]],["component/88-5",[]],["title/88-6",[788,25.347]],["name/88-6",[]],["text/88-6",[]],["component/88-6",[]],["title/88-7",[1033,32.768]],["name/88-7",[]],["text/88-7",[]],["component/88-7",[]],["title/88",[477,24.281,480,30.121]],["name/88",[480,0.818]],["text/88",[1,2.535,8,1.735,11,3.006,13,1.196,16,1.442,26,0.571,45,2.828,75,0.772,86,1.951,91,1.769,93,3.404,124,1.163,135,0.891,147,2.592,148,0.899,150,0.922,154,0.884,160,0.954,170,1.275,185,2.983,189,1.001,190,1.684,227,0.938,269,1.532,289,1.234,333,1.497,338,5.536,339,3.943,428,1.41,432,1.379,475,2.25,477,3.423,480,5.05,607,3.856,616,1.299,677,1.734,764,0.929,791,1.118,792,2.293,882,1.868,911,0.991,914,1.104,937,1.379,938,1.323,939,1.41,955,3.063,956,1.442,958,1.485,959,0.946,1073,0.981,1101,4.703,1139,1.578,1163,1.41,1165,3.951,1168,2.073,1171,3.918,1172,2.837,1174,2.962,1175,1.8,1177,2.962,1188,4.922,1189,3.119,1205,3.682,1206,3.682,1207,3.682]],["component/88",[1,0.411]],["title/89-1",[23,25.689]],["name/89-1",[]],["text/89-1",[]],["component/89-1",[]],["title/89-2",[26,18.526]],["name/89-2",[]],["text/89-2",[]],["component/89-2",[]],["title/89-3",[334,23.488]],["name/89-3",[]],["text/89-3",[]],["component/89-3",[]],["title/89-4",[269,18.168]],["name/89-4",[]],["text/89-4",[]],["component/89-4",[]],["title/89-5",[932,25.347]],["name/89-5",[]],["text/89-5",[]],["component/89-5",[]],["title/89-6",[788,18.782,934,21.076]],["name/89-6",[]],["text/89-6",[]],["component/89-6",[]],["title/89-7",[15,18.782,341,23.138]],["name/89-7",[]],["text/89-7",[]],["component/89-7",[]],["title/89-8",[1033,32.768]],["name/89-8",[]],["text/89-8",[]],["component/89-8",[]],["title/89-9",[1208,37.696]],["name/89-9",[]],["text/89-9",[]],["component/89-9",[]],["title/89",[489,53.086]],["name/89",[489,1.069]],["text/89",[8,2.348,10,0.745,13,3.416,15,0.588,16,1.122,26,0.43,35,0.802,43,0.995,67,1.264,75,2.203,86,0.64,91,1.376,92,1.612,93,2.247,94,4.205,114,1.437,129,0.928,135,0.67,141,0.943,147,1.535,148,0.676,149,1.488,156,3.137,158,3.758,161,1.91,162,1.116,163,1.037,164,0.943,168,2.074,169,2.871,170,5.352,173,0.9,175,1.286,176,0.811,177,0.959,178,1.69,185,0.821,212,0.943,216,1.037,223,1.69,224,1.232,225,1.232,229,1.546,233,1.526,249,0.977,259,2.423,269,1.25,327,1.149,333,0.65,339,1.719,341,0.724,346,0.913,355,1.298,363,2.259,374,4.029,427,0.977,430,0.841,449,1.015,472,3.185,483,1.488,489,7.188,569,1.037,591,1.354,599,0.995,609,1.948,677,1.349,711,2.999,717,1.116,739,1.948,764,0.699,788,0.588,910,1.232,912,2,919,2.426,924,1.087,933,0.841,934,0.66,955,1.815,956,1.857,958,1.155,959,0.711,987,1.187,1003,1.354,1018,0.863,1037,2.426,1045,1.354,1089,1.187,1209,1.232,1210,6.594,1211,1.948,1212,2.426,1213,1.948,1214,1.286,1215,1.116,1216,2.864,1217,1.598,1218,5.457,1219,1.286,1220,1.598,1221,1.598,1222,1.598,1223,3.711,1224,1.598,1225,1.448,1226,1.448,1227,1.598,1228,1.061,1229,1.598,1230,1.598]],["component/89",[1,0.411]],["title/90-1",[23,25.689]],["name/90-1",[]],["text/90-1",[]],["component/90-1",[]],["title/90-2",[26,18.526]],["name/90-2",[]],["text/90-2",[]],["component/90-2",[]],["title/90-3",[334,23.488]],["name/90-3",[]],["text/90-3",[]],["component/90-3",[]],["title/90-4",[269,18.168]],["name/90-4",[]],["text/90-4",[]],["component/90-4",[]],["title/90-5",[932,25.347]],["name/90-5",[]],["text/90-5",[]],["component/90-5",[]],["title/90-6",[788,18.782,934,21.076]],["name/90-6",[]],["text/90-6",[]],["component/90-6",[]],["title/90-7",[15,18.782,341,23.138]],["name/90-7",[]],["text/90-7",[]],["component/90-7",[]],["title/90-8",[1033,32.768]],["name/90-8",[]],["text/90-8",[]],["component/90-8",[]],["title/90-9",[1208,37.696]],["name/90-9",[]],["text/90-9",[]],["component/90-9",[]],["title/90",[165,42.896]],["name/90",[165,0.863]],["text/90",[1,0.342,8,1.915,10,1.384,13,2.748,15,0.425,16,0.835,19,0.615,20,0.632,26,0.311,35,0.579,67,0.94,75,1.953,86,0.462,91,1.024,92,1.2,93,2.156,94,1.642,95,1.414,111,0.706,114,1.489,122,0.734,124,0.632,125,0.719,128,0.65,129,0.67,135,0.484,141,0.681,145,1.237,147,1.926,148,0.901,149,1.542,151,0.858,154,0.887,155,2.395,156,3.429,158,3.191,161,1.456,162,0.807,163,0.749,164,1.257,165,5.64,168,1.891,169,1.561,170,4.147,171,0.978,172,2.514,173,2.434,176,0.586,177,0.693,178,1.257,179,4.144,185,0.593,192,0.615,206,5.557,209,1.449,212,0.681,216,0.749,223,1.257,224,0.89,225,0.89,233,1.581,249,1.302,268,0.641,269,0.973,289,0.67,326,0.65,327,0.83,333,0.47,341,0.523,344,2.578,346,1.218,355,1.345,363,3.379,367,1.279,374,2.642,380,0.978,427,0.706,430,1.121,476,0.632,480,0.681,483,1.542,487,0.807,488,2.844,569,0.749,588,0.83,590,0.929,599,0.719,603,0.807,677,1.738,697,1.583,717,0.807,723,0.785,736,1.642,763,0.767,764,0.505,796,0.706,905,1.532,906,1.046,907,1.583,908,5.918,909,0.89,910,0.89,912,2.072,932,0.425,933,0.608,934,0.477,955,1.384,956,1.446,958,0.86,959,0.514,974,0.719,987,0.858,1018,1.15,1062,1.885,1068,0.89,1079,0.929,1081,1.714,1089,0.858,1186,2.072,1213,1.449,1214,0.929,1215,0.807,1219,0.929,1228,0.767,1231,0.978,1232,0.978,1233,1.046,1234,2.131,1235,1.155,1236,1.155,1237,1.155,1238,0.929,1239,1.155,1240,0.978,1241,0.978,1242,1.155,1243,1.155,1244,1.046,1245,1.046,1246,0.978,1247,1.046,1248,1.806,1249,1.046,1250,1.931,1251,0.785,1252,0.978,1253,0.978,1254,1.046,1255,0.978,1256,1.806,1257,0.978,1258,1.806,1259,1.046,1260,0.89,1261,1.046,1262,1.046,1263,1.046,1264,1.046]],["component/90",[1,0.411]],["title/91-1",[23,25.689]],["name/91-1",[]],["text/91-1",[]],["component/91-1",[]],["title/91-2",[26,18.526]],["name/91-2",[]],["text/91-2",[]],["component/91-2",[]],["title/91-3",[334,23.488]],["name/91-3",[]],["text/91-3",[]],["component/91-3",[]],["title/91-4",[269,18.168]],["name/91-4",[]],["text/91-4",[]],["component/91-4",[]],["title/91-5",[932,25.347]],["name/91-5",[]],["text/91-5",[]],["component/91-5",[]],["title/91-6",[788,18.782,934,21.076]],["name/91-6",[]],["text/91-6",[]],["component/91-6",[]],["title/91-7",[15,18.782,341,23.138]],["name/91-7",[]],["text/91-7",[]],["component/91-7",[]],["title/91-8",[1033,32.768]],["name/91-8",[]],["text/91-8",[]],["component/91-8",[]],["title/91-9",[1208,37.696]],["name/91-9",[]],["text/91-9",[]],["component/91-9",[]],["title/91",[166,48.111]],["name/91",[166,0.968]],["text/91",[3,0.782,8,2.067,10,0.989,13,2.739,15,0.423,16,0.831,26,0.309,35,2.441,43,0.716,67,0.936,75,1.946,86,0.46,91,1.019,92,1.194,93,2.15,94,1.635,95,1.408,96,1.443,111,0.702,114,1.482,124,0.629,128,0.647,129,0.667,135,0.482,141,0.678,145,0.667,147,1.919,148,0.486,149,0.597,151,0.854,153,1.376,154,0.478,156,3.884,158,2.864,161,1.45,162,0.803,163,0.746,164,1.743,165,1.321,166,6.597,168,1.884,169,1.116,170,3.722,173,0.647,175,0.924,176,0.583,177,0.69,178,1.252,179,0.886,185,0.59,197,0.924,206,5.544,209,1.443,212,0.678,216,0.746,223,1.252,224,0.886,225,0.886,227,0.507,229,3.133,233,1.574,249,1.296,269,0.97,289,0.667,327,0.826,331,0.803,333,0.467,341,0.962,344,2.568,346,1.689,350,1.077,355,1.339,363,3.81,367,1.273,374,2.632,376,1.917,377,2.063,427,0.702,430,1.116,476,1.617,483,1.102,487,0.803,569,0.746,588,0.826,590,0.924,598,0.886,599,0.716,677,1.731,697,1.576,707,0.924,717,0.803,739,1.443,764,0.503,894,1.041,905,1.525,908,5.731,910,0.886,912,2.063,927,0.974,932,0.423,933,0.605,934,0.475,955,1.378,956,1.44,958,0.856,959,0.512,974,1.84,987,0.854,990,0.974,1018,0.62,1062,1.348,1068,0.886,1089,0.854,1098,1.635,1100,0.763,1186,2.063,1211,0.782,1212,0.974,1213,1.443,1214,0.924,1215,0.803,1219,0.924,1228,0.763,1231,1.797,1232,1.797,1240,0.974,1241,0.974,1246,0.974,1248,0.974,1251,1.443,1252,0.974,1253,0.974,1255,0.974,1256,1.797,1257,0.974,1258,1.797,1260,0.886,1265,0.854,1266,1.635,1267,1.149,1268,2.954,1269,1.149,1270,0.746,1271,1.149,1272,1.149,1273,1.149,1274,1.149,1275,1.149,1276,1.149,1277,1.149,1278,1.149,1279,1.149,1280,1.149,1281,1.149]],["component/91",[1,0.411]],["title/92-1",[23,25.689]],["name/92-1",[]],["text/92-1",[]],["component/92-1",[]],["title/92-2",[26,18.526]],["name/92-2",[]],["text/92-2",[]],["component/92-2",[]],["title/92-3",[334,23.488]],["name/92-3",[]],["text/92-3",[]],["component/92-3",[]],["title/92-4",[269,18.168]],["name/92-4",[]],["text/92-4",[]],["component/92-4",[]],["title/92-5",[932,25.347]],["name/92-5",[]],["text/92-5",[]],["component/92-5",[]],["title/92-6",[788,18.782,934,21.076]],["name/92-6",[]],["text/92-6",[]],["component/92-6",[]],["title/92-7",[15,18.782,341,23.138]],["name/92-7",[]],["text/92-7",[]],["component/92-7",[]],["title/92-8",[1033,32.768]],["name/92-8",[]],["text/92-8",[]],["component/92-8",[]],["title/92-9",[1208,37.696]],["name/92-9",[]],["text/92-9",[]],["component/92-9",[]],["title/92",[165,25.246,487,28.316,488,31.244]],["name/92",[1282,1.256]],["text/92",[1,0.34,8,2.067,10,1.378,13,3.492,15,0.423,16,0.831,19,0.612,20,0.629,26,0.309,35,0.577,67,0.936,75,1.946,86,0.46,91,1.019,92,1.194,93,2.15,94,1.635,95,1.408,111,0.702,114,1.482,122,0.73,128,1.194,129,0.667,135,0.482,141,0.678,145,1.232,147,1.919,148,0.486,149,1.102,151,0.854,154,0.478,156,3.122,158,3.031,161,1.45,162,0.803,163,0.746,164,1.252,165,4.086,168,1.884,169,1.116,170,4.136,171,0.974,172,2.503,173,2.425,176,0.583,177,0.69,178,1.252,179,5.057,185,0.59,206,5.731,209,1.443,210,0.69,212,0.678,216,0.746,223,1.252,224,0.886,225,0.886,233,1.574,249,0.702,269,0.97,289,1.232,323,0.826,326,0.647,327,0.826,333,0.467,341,0.521,344,2.568,346,1.212,355,1.666,363,2.501,367,0.69,372,1.041,374,2.632,380,0.974,427,0.702,430,1.116,476,0.629,483,1.102,487,2.568,488,3.32,529,0.854,569,0.746,588,0.826,590,0.924,599,0.716,603,0.803,677,2.291,697,1.576,717,0.803,736,1.635,747,0.924,764,0.503,905,0.826,908,5.34,909,0.886,910,0.886,912,2.063,932,0.423,933,0.605,934,0.475,955,1.378,956,1.44,958,0.856,959,0.512,974,0.716,987,0.854,1018,1.145,1062,1.877,1089,0.854,1100,1.961,1186,2.063,1211,0.782,1213,1.443,1214,0.924,1215,0.803,1219,0.924,1228,0.763,1231,0.974,1232,0.974,1240,0.974,1241,0.974,1244,1.041,1245,1.041,1246,0.974,1247,1.041,1248,1.797,1249,1.041,1250,1.922,1251,0.782,1252,0.974,1253,0.974,1254,1.041,1255,0.974,1256,1.797,1257,0.974,1258,1.797,1259,1.041,1260,0.886,1261,1.041,1262,1.041,1263,1.041,1264,1.041,1266,1.635,1270,2.795,1282,6.762,1283,1.149,1284,0.854,1285,1.041,1286,1.149,1287,1.041,1288,1.149,1289,1.149,1290,1.149,1291,1.149,1292,1.149,1293,1.149,1294,1.149,1295,1.149]],["component/92",[1,0.411]],["title/93-1",[23,25.689]],["name/93-1",[]],["text/93-1",[]],["component/93-1",[]],["title/93-2",[914,35.797]],["name/93-2",[]],["text/93-2",[]],["component/93-2",[]],["title/93-3",[26,18.526]],["name/93-3",[]],["text/93-3",[]],["component/93-3",[]],["title/93-4",[334,23.488]],["name/93-4",[]],["text/93-4",[]],["component/93-4",[]],["title/93-5",[269,18.168]],["name/93-5",[]],["text/93-5",[]],["component/93-5",[]],["title/93-6",[932,25.347]],["name/93-6",[]],["text/93-6",[]],["component/93-6",[]],["title/93-7",[788,18.782,934,21.076]],["name/93-7",[]],["text/93-7",[]],["component/93-7",[]],["title/93-8",[15,18.782,341,23.138]],["name/93-8",[]],["text/93-8",[]],["component/93-8",[]],["title/93-9",[1033,32.768]],["name/93-9",[]],["text/93-9",[]],["component/93-9",[]],["title/93",[158,18.726,483,21.069,484,32.613]],["name/93",[1296,1.256]],["text/93",[3,0.765,8,1.287,10,0.524,12,4.404,16,0.814,26,0.302,33,0.7,35,1.043,41,1.602,67,0.917,75,1.053,80,0.73,86,0.45,91,0.999,92,1.171,93,1.957,114,1.455,130,0.785,147,2.686,148,1.226,149,1.08,150,2.291,152,0.624,154,2.199,156,2.723,158,3.41,161,0.552,168,1.268,169,0.592,177,1.248,178,0.664,182,0.592,189,1.996,190,2.192,194,0.905,196,0.664,207,1.122,212,0.664,227,0.917,229,1.122,230,1.633,268,0.624,269,0.765,326,0.633,333,0.457,354,0.73,355,0.51,363,1.207,374,1.772,389,0.624,462,0.867,466,4.834,476,0.615,480,3.117,483,3.368,484,4.604,500,0.746,510,2.683,587,0.785,593,0.7,625,0.953,677,2.256,705,1.793,710,1.019,717,0.785,739,0.765,753,0.905,763,5.367,764,0.492,801,1.544,805,1.019,840,1.842,900,0.664,914,1.507,918,0.835,933,0.592,934,0.464,955,1.352,956,1.136,958,0.839,959,0.501,982,1.349,983,0.785,986,0.7,1010,0.905,1018,0.607,1038,0.905,1083,0.905,1101,3.585,1104,0.687,1112,0.615,1150,1.414,1151,1.673,1209,0.867,1211,1.414,1228,0.746,1265,1.544,1266,0.867,1296,5.186,1297,0.905,1298,1.019,1299,1.762,1300,1.124,1301,1.124,1302,0.867,1303,1.124,1304,1.884,1305,2.457,1306,0.953,1307,0.953,1308,1.019,1309,1.884,1310,1.124,1311,1.124,1312,2.457,1313,1.762,1314,1.019,1315,0.867,1316,1.544,1317,0.953,1318,0.953,1319,0.905,1320,0.905,1321,1.124,1322,2.235,1323,1.544,1324,1.602,1325,0.953,1326,1.762,1327,0.867,1328,0.765,1329,0.953,1330,0.953,1331,1.124,1332,1.019,1333,1.602,1334,0.953,1335,2.784,1336,0.809,1337,1.124,1338,1.124,1339,1.124,1340,1.019,1341,3.613,1342,3.692,1343,1.124,1344,1.124,1345,1.544,1346,0.867,1347,1.124,1348,1.124,1349,1.019]],["component/93",[1,0.411]],["title/94-1",[23,25.689]],["name/94-1",[]],["text/94-1",[]],["component/94-1",[]],["title/94-2",[914,35.797]],["name/94-2",[]],["text/94-2",[]],["component/94-2",[]],["title/94-3",[26,18.526]],["name/94-3",[]],["text/94-3",[]],["component/94-3",[]],["title/94-4",[334,23.488]],["name/94-4",[]],["text/94-4",[]],["component/94-4",[]],["title/94-5",[269,18.168]],["name/94-5",[]],["text/94-5",[]],["component/94-5",[]],["title/94-6",[932,25.347]],["name/94-6",[]],["text/94-6",[]],["component/94-6",[]],["title/94-7",[788,18.782,934,21.076]],["name/94-7",[]],["text/94-7",[]],["component/94-7",[]],["title/94-8",[15,18.782,341,23.138]],["name/94-8",[]],["text/94-8",[]],["component/94-8",[]],["title/94",[125,20.939,158,15.531,483,17.474,485,24.179]],["name/94",[1350,1.256]],["text/94",[8,1.771,10,1.184,11,1.162,12,2.584,16,0.995,26,0.376,43,1.581,67,0.617,75,1.806,85,1.125,86,0.56,91,1.676,92,1.43,93,2.253,104,1.006,125,4.072,127,1.185,128,0.787,130,0.977,135,1.065,140,2.043,143,1.006,147,2.4,148,1.074,149,1.32,150,1.859,154,1.784,156,1.659,158,3.525,161,0.686,163,0.907,168,1.111,169,0.736,178,0.825,182,1.336,189,1.196,190,1.162,191,0.977,192,0.745,196,0.825,207,0.755,229,1.371,230,1.963,244,1.078,268,0.776,269,0.67,318,0.628,330,0.871,332,0.799,333,0.569,349,1.078,350,0.71,354,0.907,355,0.634,362,1.078,374,2.131,387,1.886,392,1.524,430,1.835,436,1.039,454,0.928,476,0.765,477,2.365,483,2.892,485,4.702,487,0.977,492,2.782,508,0.951,509,0.855,526,1.185,569,0.907,596,1.039,653,1.078,705,0.694,723,0.951,752,1.078,764,0.612,765,1.185,791,0.736,797,1.185,840,1.613,876,1.826,884,1.185,890,1.185,905,1.006,911,0.652,912,0.977,914,2.228,923,0.888,932,0.515,933,0.736,934,0.577,951,1.125,955,1.626,956,0.995,958,1.024,959,0.623,969,1.773,982,2.263,1018,0.755,1052,4.567,1056,1.993,1083,1.125,1101,2.082,1147,1.078,1213,1.727,1302,1.078,1316,1.886,1322,1.957,1323,1.039,1324,1.078,1333,1.078,1345,1.039,1346,1.078,1350,2.301,1351,1.185,1352,2.043,1353,2.955,1354,1.125,1355,1.185,1356,1.399,1357,1.399,1358,2.805,1359,1.399,1360,1.399,1361,1.185,1362,7.181,1363,1.399,1364,1.125,1365,3.885,1366,1.125,1367,1.267,1368,1.267,1369,2.151,1370,2.301,1371,1.267,1372,1.078,1373,1.078,1374,2.301,1375,2.301,1376,1.185,1377,1.267,1378,2.151,1379,1.185,1380,1.185,1381,1.185,1382,1.267]],["component/94",[1,0.411]],["title/95-1",[23,25.689]],["name/95-1",[]],["text/95-1",[]],["component/95-1",[]],["title/95-2",[914,35.797]],["name/95-2",[]],["text/95-2",[]],["component/95-2",[]],["title/95-3",[169,26.855,1353,43.249]],["name/95-3",[]],["text/95-3",[]],["component/95-3",[]],["title/95-4",[914,26.526,1238,41.06]],["name/95-4",[]],["text/95-4",[]],["component/95-4",[]],["title/95-5",[26,18.526]],["name/95-5",[]],["text/95-5",[]],["component/95-5",[]],["title/95-6",[334,23.488]],["name/95-6",[]],["text/95-6",[]],["component/95-6",[]],["title/95-7",[269,18.168]],["name/95-7",[]],["text/95-7",[]],["component/95-7",[]],["title/95-8",[932,25.347]],["name/95-8",[]],["text/95-8",[]],["component/95-8",[]],["title/95-9",[788,18.782,934,21.076]],["name/95-9",[]],["text/95-9",[]],["component/95-9",[]],["title/95-10",[15,18.782,341,23.138]],["name/95-10",[]],["text/95-10",[]],["component/95-10",[]],["title/95",[125,25.246,158,18.726,483,21.069]],["name/95",[399,1.175]],["text/95",[3,0.626,8,1.293,10,1.693,11,0.789,12,2.15,16,0.676,24,0.518,25,0.74,26,0.464,67,0.761,69,0.534,72,0.78,75,1.502,80,0.597,86,0.368,91,1.744,92,2.044,93,1.999,95,1.145,96,1.173,99,0.74,107,1.563,108,0.597,111,0.562,124,0.503,125,3.962,130,0.643,135,0.386,140,1.387,147,1.814,148,0.729,149,1.593,150,1.574,154,2.869,156,2.886,158,3.957,161,0.452,165,0.573,168,0.754,169,1.613,173,0.518,176,0.467,177,1.84,178,1.437,188,0.643,189,0.812,190,0.789,191,0.643,192,0.49,196,0.543,205,0.626,207,0.497,210,0.552,211,0.597,212,1.018,227,0.406,229,1.655,230,1.371,268,0.957,269,0.455,318,0.413,326,0.971,330,1.074,331,0.643,332,0.526,333,0.374,346,0.526,354,0.597,355,0.417,362,0.709,374,1.488,387,0.683,389,0.511,399,1.461,430,1.91,462,0.709,476,1.332,477,0.438,480,3.755,483,3.307,484,1.387,485,0.662,500,0.611,536,0.834,540,0.526,569,0.597,570,0.971,587,0.643,596,0.683,654,0.834,705,0.456,717,0.643,723,0.626,747,0.74,753,0.74,763,0.611,764,0.402,791,0.484,797,0.78,801,1.281,808,0.78,840,1.947,884,0.78,899,0.662,900,0.543,911,0.804,912,0.643,914,2.389,918,0.683,919,1.461,932,0.339,933,0.484,934,0.38,943,0.518,955,1.135,956,0.676,958,0.696,959,0.41,982,3.501,986,1.074,1018,1.314,1038,0.74,1052,4.237,1053,0.78,1056,1.392,1101,1.489,1104,1.488,1147,0.709,1150,1.173,1151,1.387,1209,0.709,1213,1.173,1215,0.643,1223,1.173,1228,0.611,1238,1.387,1251,1.173,1302,0.709,1316,2.277,1317,0.78,1318,0.78,1319,0.74,1320,0.74,1322,2.797,1323,1.808,1324,1.876,1325,0.78,1326,1.461,1327,0.709,1328,0.626,1329,0.78,1330,2.597,1333,1.329,1345,1.281,1346,0.709,1353,1.461,1358,1.958,1364,0.74,1365,4.543,1366,0.74,1367,0.834,1368,0.834,1369,1.461,1370,1.563,1371,0.834,1372,1.329,1373,0.709,1374,1.563,1375,1.563,1376,1.461,1377,1.563,1378,1.461,1379,0.78,1380,0.78,1381,0.78,1382,0.834,1383,0.92,1384,0.92,1385,0.92,1386,0.92,1387,0.92,1388,0.834,1389,0.709,1390,0.92,1391,0.92,1392,0.92,1393,0.834,1394,0.92,1395,0.92,1396,0.834,1397,0.78,1398,1.725,1399,0.92,1400,0.92,1401,1.725,1402,0.78,1403,0.92,1404,0.92,1405,0.78,1406,0.643,1407,0.834,1408,6.066,1409,0.92,1410,0.92]],["component/95",[1,0.411]],["title/96-1",[23,25.689]],["name/96-1",[]],["text/96-1",[]],["component/96-1",[]],["title/96-2",[914,35.797]],["name/96-2",[]],["text/96-2",[]],["component/96-2",[]],["title/96-3",[26,18.526]],["name/96-3",[]],["text/96-3",[]],["component/96-3",[]],["title/96-4",[334,23.488]],["name/96-4",[]],["text/96-4",[]],["component/96-4",[]],["title/96-5",[269,18.168]],["name/96-5",[]],["text/96-5",[]],["component/96-5",[]],["title/96-6",[932,25.347]],["name/96-6",[]],["text/96-6",[]],["component/96-6",[]],["title/96-7",[788,18.782,934,21.076]],["name/96-7",[]],["text/96-7",[]],["component/96-7",[]],["title/96-8",[15,18.782,341,23.138]],["name/96-8",[]],["text/96-8",[]],["component/96-8",[]],["title/96",[125,20.939,158,15.531,483,17.474,486,27.049]],["name/96",[1411,1.256]],["text/96",[8,1.651,12,1.449,13,2.138,15,0.571,16,1.092,26,0.417,64,1.314,67,0.684,75,1.684,86,0.621,91,1.34,92,0.873,93,2.205,104,1.115,125,4.795,127,1.314,128,0.873,130,1.083,135,1.169,140,1.247,141,0.915,146,2.652,147,2.896,148,1.961,149,1.449,150,2.318,153,1.006,154,2.225,156,2.205,158,4.069,161,0.761,163,2.464,164,0.915,165,0.966,166,1.083,167,1.115,168,2.833,169,0.816,178,0.915,189,1.313,190,1.275,196,0.915,209,2.582,221,0.985,229,0.837,230,2.61,232,1.115,246,1.771,269,0.735,332,0.886,333,1.133,341,0.703,346,1.593,349,1.195,354,1.809,374,2.32,387,1.152,392,0.931,436,1.152,454,1.029,477,0.738,483,4.319,485,3.844,486,3.729,489,1.195,492,1.006,500,2.52,508,1.055,599,0.966,705,0.769,752,1.195,764,0.678,840,1.771,876,1.115,897,1.195,914,1.449,923,0.985,932,0.571,933,0.816,934,0.64,951,2.242,955,1.771,956,1.092,958,1.125,959,0.69,982,1.809,1052,3.733,1056,0.886,1101,2.251,1154,1.405,1163,1.029,1316,1.152,1322,2.148,1323,1.152,1324,1.195,1330,1.314,1345,1.152,1346,1.195,1351,1.314,1358,1.247,1362,3.44,1378,2.362,1379,1.314,1380,1.314,1381,1.314,1406,1.083,1411,5.869,1412,1.405,1413,1.314,1414,5.952,1415,2.787,1416,1.405,1417,1.152,1418,1.551,1419,1.115,1420,1.551,1421,1.551,1422,1.551,1423,1.551,1424,1.551,1425,1.551,1426,1.551]],["component/96",[1,0.411]],["title/97-1",[23,25.689]],["name/97-1",[]],["text/97-1",[]],["component/97-1",[]],["title/97-2",[914,35.797]],["name/97-2",[]],["text/97-2",[]],["component/97-2",[]],["title/97-3",[158,23.576,1333,39.337]],["name/97-3",[]],["text/97-3",[]],["component/97-3",[]],["title/97-4",[26,18.526]],["name/97-4",[]],["text/97-4",[]],["component/97-4",[]],["title/97-5",[334,23.488]],["name/97-5",[]],["text/97-5",[]],["component/97-5",[]],["title/97-6",[269,18.168]],["name/97-6",[]],["text/97-6",[]],["component/97-6",[]],["title/97-7",[932,25.347]],["name/97-7",[]],["text/97-7",[]],["component/97-7",[]],["title/97-8",[788,18.782,934,21.076]],["name/97-8",[]],["text/97-8",[]],["component/97-8",[]],["title/97-9",[15,18.782,341,23.138]],["name/97-9",[]],["text/97-9",[]],["component/97-9",[]],["title/97-10",[1033,32.768]],["name/97-10",[]],["text/97-10",[]],["component/97-10",[]],["title/97",[158,18.726,480,23.924,483,21.069]],["name/97",[1427,1.256]],["text/97",[3,0.815,8,1.354,10,0.559,12,3.097,16,0.864,26,0.322,35,1.908,41,1.7,67,0.973,69,0.696,75,1.112,80,0.778,86,0.48,91,1.06,92,0.675,93,1.409,111,0.733,114,0.602,125,1.374,130,0.837,147,2.509,148,1.296,149,1.146,150,1.928,152,0.665,154,2.294,156,3.197,158,3.394,161,0.588,164,0.708,168,1.34,169,1.161,177,1.324,178,0.708,182,0.631,188,0.837,189,1.443,190,1.74,192,0.639,227,1.352,229,1.191,230,1.725,259,0.747,268,0.665,269,0.808,326,0.675,333,0.487,350,1.119,354,0.778,355,0.544,363,1.778,374,1.872,376,0.778,389,0.665,415,0.815,462,0.924,466,4.795,476,1.207,477,0.57,480,4.782,483,3.493,500,0.796,510,1.638,526,1.016,567,1.086,573,1.086,587,0.837,593,0.747,677,1.039,705,1.094,739,0.815,753,0.964,763,2.033,764,0.524,796,0.733,801,1.638,840,1.946,900,0.708,914,1.146,918,0.891,933,0.631,934,0.495,955,1.429,956,1.2,958,0.89,959,0.534,969,0.837,974,1.374,982,1.431,983,0.837,985,0.891,990,1.016,1002,1.016,1010,0.964,1018,0.647,1038,0.964,1083,2.464,1084,1.016,1098,1.7,1101,2.677,1104,0.733,1112,0.656,1118,0.837,1150,2.084,1151,1.774,1209,0.924,1213,2.586,1215,0.837,1223,1.5,1228,0.796,1238,0.964,1265,1.638,1266,1.7,1299,1.016,1304,1.999,1305,1.869,1306,1.016,1307,1.869,1308,1.999,1309,1.999,1312,2.596,1313,1.016,1314,1.086,1315,0.924,1316,1.638,1317,1.016,1318,1.016,1319,0.964,1320,0.964,1322,2.361,1323,1.638,1324,1.7,1325,1.016,1326,2.596,1327,0.924,1328,0.815,1329,1.016,1333,2.93,1334,1.016,1335,2.93,1340,1.086,1342,2.361,1345,1.638,1346,0.924,1349,1.086,1358,0.964,1405,1.016,1427,4.995,1428,1.199,1429,1.086,1430,1.199,1431,1.016,1432,0.964,1433,1.199,1434,1.199,1435,0.924,1436,1.199,1437,0.891,1438,1.199,1439,1.199,1440,1.199,1441,1.199,1442,1.199,1443,1.199,1444,1.199,1445,1.199]],["component/97",[1,0.411]],["title/98-1",[23,25.689]],["name/98-1",[]],["text/98-1",[]],["component/98-1",[]],["title/98-2",[26,18.526]],["name/98-2",[]],["text/98-2",[]],["component/98-2",[]],["title/98-3",[334,23.488]],["name/98-3",[]],["text/98-3",[]],["component/98-3",[]],["title/98-4",[269,18.168]],["name/98-4",[]],["text/98-4",[]],["component/98-4",[]],["title/98-5",[932,25.347]],["name/98-5",[]],["text/98-5",[]],["component/98-5",[]],["title/98-6",[788,25.347]],["name/98-6",[]],["text/98-6",[]],["component/98-6",[]],["title/98-7",[788,18.782,934,21.076]],["name/98-7",[]],["text/98-7",[]],["component/98-7",[]],["title/98-8",[1033,32.768]],["name/98-8",[]],["text/98-8",[]],["component/98-8",[]],["title/98",[28,34.717,496,43.249]],["name/98",[1446,1.256]],["text/98",[8,2.273,11,3.791,16,1.627,26,0.658,67,1.079,75,0.888,82,1.758,86,0.979,93,2.364,101,1.967,114,2.084,128,1.377,147,3.269,148,1.034,149,2.158,150,3.1,154,1.018,156,1.975,160,1.865,161,1.2,168,2.368,176,1.241,189,2.549,190,2.477,210,1.468,227,1.079,229,1.32,230,4.024,269,1.428,333,0.994,338,4.085,346,2.373,350,1.241,354,1.587,355,1.108,367,1.468,421,2.215,477,1.975,496,5.406,598,4.171,677,1.956,705,1.213,760,1.884,764,1.07,840,2.638,890,2.072,897,1.884,933,1.286,934,1.01,943,1.377,955,2.976,956,2.12,958,1.675,959,1.088,989,1.884,1018,1.32,1061,2.215,1101,4.024,1186,1.708,1334,2.072,1335,1.884,1369,2.072,1446,7.04,1447,4.153,1448,2.445,1449,2.445,1450,2.445,1451,2.215,1452,2.445,1453,2.445,1454,2.215,1455,4.153,1456,2.445,1457,2.445,1458,2.445,1459,1.816,1460,2.445]],["component/98",[1,0.411]],["title/99-1",[23,25.689]],["name/99-1",[]],["text/99-1",[]],["component/99-1",[]],["title/99-2",[26,18.526]],["name/99-2",[]],["text/99-2",[]],["component/99-2",[]],["title/99-3",[334,23.488]],["name/99-3",[]],["text/99-3",[]],["component/99-3",[]],["title/99-4",[269,18.168]],["name/99-4",[]],["text/99-4",[]],["component/99-4",[]],["title/99-5",[932,25.347]],["name/99-5",[]],["text/99-5",[]],["component/99-5",[]],["title/99-6",[8,18.179,958,20.594]],["name/99-6",[]],["text/99-6",[]],["component/99-6",[]],["title/99-7",[10,32.125]],["name/99-7",[]],["text/99-7",[]],["component/99-7",[]],["title/99-8",[8,18.179,1208,27.933]],["name/99-8",[]],["text/99-8",[]],["component/99-8",[]],["title/99-9",[788,18.782,934,21.076]],["name/99-9",[]],["text/99-9",[]],["component/99-9",[]],["title/99-10",[15,18.782,341,23.138]],["name/99-10",[]],["text/99-10",[]],["component/99-10",[]],["title/99",[491,48.111]],["name/99",[491,0.968]],["text/99",[0,0.807,8,2.949,11,0.543,12,1.96,16,1.477,19,0.632,21,0.754,24,0.668,26,0.319,27,0.807,28,0.807,61,0.915,67,0.964,69,0.689,75,2.655,86,0.475,91,0.57,93,2.902,108,0.77,111,1.335,115,1.006,128,1.23,135,1.851,147,1.741,148,0.924,150,1.914,154,0.494,156,2.605,160,0.533,164,0.7,168,0.956,176,0.602,180,0.641,185,0.609,189,1.029,190,1,192,1.164,196,0.7,203,4.027,212,1.29,227,0.964,249,0.725,255,1.823,268,0.659,269,1.312,289,1.269,311,1.075,326,0.668,332,0.678,334,0.745,343,1.571,346,0.678,355,0.991,369,1.623,390,0.882,425,3.303,430,1.15,474,0.807,476,0.65,477,0.565,491,6.752,512,1.571,513,2.264,516,2.712,529,0.882,540,0.678,587,0.829,591,1.006,609,0.807,656,1.451,666,0.853,705,0.589,709,1.075,720,0.955,764,0.956,789,0.882,791,0.624,804,0.807,840,0.754,875,1.006,891,0.754,911,0.554,915,1.006,923,0.754,933,0.624,934,0.49,943,2.802,955,1.416,956,1.477,958,0.882,959,0.528,969,0.829,978,0.955,982,0.77,1012,0.955,1037,1.006,1056,1.736,1073,0.548,1101,1.832,1109,0.754,1133,2.712,1158,0.853,1168,1.71,1223,1.486,1302,0.915,1461,1.187,1462,3.037,1463,1.006,1464,1.187,1465,1.187,1466,2.185,1467,1.075,1468,1.075,1469,1.187,1470,1.075,1471,1.187,1472,1.187,1473,1.187,1474,1.187,1475,1.187,1476,7.584,1477,1.187,1478,3.037,1479,1.006,1480,1.075,1481,0.788,1482,3.196,1483,1.571,1484,2.34,1485,1.852,1486,1.418,1487,3.418,1488,1.187,1489,1.006,1490,1.187,1491,1.98,1492,1.187,1493,1.075,1494,1.187,1495,1.187,1496,3.037,1497,1.187,1498,1.075,1499,2.185,1500,2.185,1501,4.413,1502,2.185,1503,1.187,1504,1.187,1505,1.187,1506,1.187,1507,1.075,1508,1.187,1509,1.187,1510,1.187,1511,1.187,1512,1.758,1513,0.882,1514,1.187,1515,1.075]],["component/99",[1,0.411]],["title/100-1",[23,25.689]],["name/100-1",[]],["text/100-1",[]],["component/100-1",[]],["title/100-2",[26,18.526]],["name/100-2",[]],["text/100-2",[]],["component/100-2",[]],["title/100-3",[334,23.488]],["name/100-3",[]],["text/100-3",[]],["component/100-3",[]],["title/100-4",[269,18.168]],["name/100-4",[]],["text/100-4",[]],["component/100-4",[]],["title/100-5",[932,25.347]],["name/100-5",[]],["text/100-5",[]],["component/100-5",[]],["title/100-6",[8,18.179,958,20.594]],["name/100-6",[]],["text/100-6",[]],["component/100-6",[]],["title/100-7",[15,18.782,341,23.138]],["name/100-7",[]],["text/100-7",[]],["component/100-7",[]],["title/100",[485,36.704,492,33.12]],["name/100",[1516,1.256]],["text/100",[0,1.224,7,3.853,8,2.82,10,0.839,11,0.823,15,0.662,16,1.247,19,0.959,26,0.484,43,1.121,55,1.294,67,0.794,75,1.554,91,0.865,93,2.189,96,1.224,135,0.755,145,1.045,147,2.04,148,1.346,150,1.381,163,2.066,168,1.392,177,1.911,178,1.062,192,0.959,204,1.1,207,0.972,227,1.405,230,1.792,249,1.945,269,1.364,315,1.525,322,1.525,326,1.013,332,1.029,333,0.732,334,0.614,347,1.257,348,1.168,350,0.913,355,0.816,369,1.337,376,1.168,392,1.911,425,2.113,430,0.947,438,1.387,440,1.168,461,1.525,476,0.985,477,2.811,485,5.077,491,1.257,492,4.237,493,2.365,500,1.195,505,1.143,513,1.08,520,1.143,547,1.294,570,1.792,580,1.337,603,1.257,620,1.448,656,2.841,666,1.294,694,2.066,705,0.893,796,1.1,911,0.839,914,0.935,943,1.013,956,1.247,974,1.121,982,1.168,1017,1.168,1056,1.819,1062,4.148,1073,0.831,1079,1.448,1109,1.143,1120,1.337,1150,1.224,1158,1.294,1186,1.257,1211,1.224,1251,2.165,1328,2.165,1354,1.448,1355,2.697,1389,1.387,1407,1.631,1413,1.525,1417,1.337,1432,1.448,1481,2.113,1483,1.294,1512,2.561,1513,1.337,1515,1.631,1516,5.917,1517,3.183,1518,1.631,1519,1.631,1520,1.8,1521,1.8,1522,1.8,1523,1.8,1524,1.525,1525,1.8,1526,1.387,1527,1.525,1528,3.183,1529,1.8,1530,1.8,1531,1.8,1532,1.8,1533,1.8,1534,1.525,1535,1.631,1536,1.448,1537,1.525,1538,1.631,1539,1.525,1540,6.53,1541,1.631,1542,1.8,1543,1.8,1544,1.337,1545,3.183,1546,4.28,1547,1.8,1548,1.448]],["component/100",[1,0.411]],["title/101-1",[23,25.689]],["name/101-1",[]],["text/101-1",[]],["component/101-1",[]],["title/101-2",[26,18.526]],["name/101-2",[]],["text/101-2",[]],["component/101-2",[]],["title/101-3",[334,23.488]],["name/101-3",[]],["text/101-3",[]],["component/101-3",[]],["title/101-4",[269,18.168]],["name/101-4",[]],["text/101-4",[]],["component/101-4",[]],["title/101-5",[932,25.347]],["name/101-5",[]],["text/101-5",[]],["component/101-5",[]],["title/101-6",[8,18.179,958,20.594]],["name/101-6",[]],["text/101-6",[]],["component/101-6",[]],["title/101-7",[8,18.179,1208,27.933]],["name/101-7",[]],["text/101-7",[]],["component/101-7",[]],["title/101-8",[788,18.782,934,21.076]],["name/101-8",[]],["text/101-8",[]],["component/101-8",[]],["title/101-9",[15,18.782,341,23.138]],["name/101-9",[]],["text/101-9",[]],["component/101-9",[]],["title/101-10",[1208,37.696]],["name/101-10",[]],["text/101-10",[]],["component/101-10",[]],["title/101-11",[1033,32.768]],["name/101-11",[]],["text/101-11",[]],["component/101-11",[]],["title/101",[492,33.12,493,37.915]],["name/101",[1539,1.175]],["text/101",[7,3.332,8,2.601,12,1.48,16,1.391,26,0.296,43,0.685,45,0.639,67,0.486,75,1.29,86,1.14,91,0.529,93,2.371,135,0.462,145,0.639,147,1.862,148,1.764,150,2.62,154,0.848,160,0.916,168,1.824,176,0.559,189,0.518,190,0.504,192,1.517,204,0.673,207,1.101,230,1.148,246,0.699,249,1.246,269,1.244,289,1.653,291,0.792,331,0.769,332,0.629,333,0.448,334,0.375,347,0.769,355,1.291,369,0.818,423,2.115,425,1.353,430,0.579,440,0.714,459,0.848,461,0.933,472,0.739,492,4.154,493,6.238,505,4.465,513,1.224,516,0.792,520,0.699,540,1.165,570,1.603,580,0.818,589,1.323,603,0.769,620,0.886,653,0.848,656,4.01,666,0.792,677,1.673,705,0.546,739,0.749,764,0.482,773,1.809,791,0.579,796,0.673,816,1.571,818,1.847,882,1.035,907,0.818,933,0.579,934,0.455,955,1.945,956,1.848,958,1.433,959,0.49,982,0.714,986,1.269,987,0.818,988,0.933,1017,4.154,1018,2.547,1056,1.165,1062,2.256,1079,0.886,1080,0.886,1101,2.529,1120,0.818,1133,0.792,1148,1.353,1150,0.749,1152,1.571,1158,2.554,1168,2.932,1225,0.997,1265,0.818,1328,1.387,1355,1.727,1372,2.194,1389,0.848,1419,1.466,1432,0.886,1463,0.933,1479,0.933,1481,0.731,1484,0.848,1498,0.997,1512,1.64,1513,2.638,1527,0.933,1534,0.933,1535,0.997,1536,1.64,1537,0.933,1538,0.997,1539,1.727,1541,6.097,1548,2.29,1549,0.997,1550,1.101,1551,0.886,1552,1.101,1553,1.101,1554,1.101,1555,1.101,1556,1.101,1557,3.778,1558,1.101,1559,3.778,1560,1.101,1561,2.039,1562,4.17,1563,1.101,1564,1.101,1565,1.101,1566,1.101,1567,1.101,1568,1.101,1569,1.101,1570,3.218,1571,2.847,1572,2.039,1573,4.17,1574,1.101,1575,1.101,1576,1.101,1577,1.101,1578,1.101,1579,1.101,1580,1.101,1581,1.101]],["component/101",[1,0.411]],["title/102-1",[23,25.689]],["name/102-1",[]],["text/102-1",[]],["component/102-1",[]],["title/102-2",[26,18.526]],["name/102-2",[]],["text/102-2",[]],["component/102-2",[]],["title/102-3",[334,23.488]],["name/102-3",[]],["text/102-3",[]],["component/102-3",[]],["title/102-4",[269,18.168]],["name/102-4",[]],["text/102-4",[]],["component/102-4",[]],["title/102-5",[932,25.347]],["name/102-5",[]],["text/102-5",[]],["component/102-5",[]],["title/102-6",[788,18.782,934,21.076]],["name/102-6",[]],["text/102-6",[]],["component/102-6",[]],["title/102-7",[15,18.782,341,23.138]],["name/102-7",[]],["text/102-7",[]],["component/102-7",[]],["title/102-8",[1033,32.768]],["name/102-8",[]],["text/102-8",[]],["component/102-8",[]],["title/102-9",[1208,37.696]],["name/102-9",[]],["text/102-9",[]],["component/102-9",[]],["title/102",[376,33.12,377,35.65]],["name/102",[1582,1.175]],["text/102",[1,0.512,8,2.048,13,2.826,16,1.622,26,0.464,33,1.075,35,2.078,67,1.354,75,1.504,86,0.692,93,1.534,108,1.121,114,1.54,129,1.782,135,0.725,145,1.782,147,1.634,148,0.73,149,0.898,150,0.749,154,1.277,156,2.388,158,2.656,160,0.776,161,1.506,164,1.019,168,2.196,173,0.972,176,0.876,178,1.019,229,1.657,246,1.097,269,1.324,333,0.702,339,1.842,354,1.121,355,1.878,374,2.531,376,3.731,377,2.893,389,0.958,430,0.909,435,1.331,449,2.631,465,2.469,466,5.004,483,1.595,494,4.908,548,1.331,570,1.728,677,2.999,695,1.121,763,1.146,764,0.755,815,1.565,816,1.331,873,1.331,897,1.331,900,1.019,908,6.468,916,1.389,917,1.463,918,1.283,933,0.909,934,0.713,936,1.565,955,2.341,956,1.966,958,1.671,959,0.769,974,1.075,1003,2.6,1018,3.104,1084,1.463,1148,3.332,1186,1.206,1226,1.565,1405,1.463,1406,1.206,1582,8.125,1583,1.727,1584,1.727,1585,1.727,1586,1.727,1587,1.727,1588,1.565,1589,1.565,1590,3.069,1591,4.548,1592,5.21,1593,1.727,1594,1.727,1595,1.727,1596,1.727,1597,2.781,1598,4.548,1599,1.727,1600,1.727,1601,1.727,1602,1.727,1603,1.727,1604,1.727,1605,1.727,1606,1.727]],["component/102",[1,0.411]],["title/103-1",[23,25.689]],["name/103-1",[]],["text/103-1",[]],["component/103-1",[]],["title/103-2",[26,18.526]],["name/103-2",[]],["text/103-2",[]],["component/103-2",[]],["title/103-3",[334,23.488]],["name/103-3",[]],["text/103-3",[]],["component/103-3",[]],["title/103-4",[269,18.168]],["name/103-4",[]],["text/103-4",[]],["component/103-4",[]],["title/103-5",[932,25.347]],["name/103-5",[]],["text/103-5",[]],["component/103-5",[]],["title/103-6",[788,25.347]],["name/103-6",[]],["text/103-6",[]],["component/103-6",[]],["title/103-7",[788,18.782,934,21.076]],["name/103-7",[]],["text/103-7",[]],["component/103-7",[]],["title/103-8",[1033,32.768]],["name/103-8",[]],["text/103-8",[]],["component/103-8",[]],["title/103",[207,18.154,350,17.064,476,18.401,495,28.49]],["name/103",[1607,1.256]],["text/103",[8,2.257,11,3.251,16,1.612,24,1.363,26,1.107,27,1.646,28,1.646,67,1.068,75,1.495,80,1.57,86,0.969,93,2.348,114,2.065,124,1.324,141,1.428,147,3.253,148,1.024,149,2.139,150,3.081,154,1.007,156,1.958,160,1.849,161,1.188,168,2.35,189,2.53,190,2.458,205,1.646,207,1.307,211,1.57,230,4,231,2.193,255,1.453,269,1.417,333,0.984,338,4.061,343,1.74,346,2.353,350,1.228,354,1.57,355,1.097,376,1.57,438,1.865,440,1.57,476,1.324,477,1.958,495,3.488,540,1.383,598,4.14,677,1.939,705,1.201,720,1.947,764,1.059,789,1.798,840,2.615,933,1.273,934,0.999,949,1.947,955,2.956,956,2.104,958,1.661,959,1.077,966,1.947,994,2.193,1018,1.307,1101,4.004,1194,3.73,1260,1.865,1335,1.865,1352,1.947,1354,1.947,1431,2.05,1454,2.193,1607,6.437,1608,2.42,1609,1.947,1610,2.42,1611,2.193,1612,2.42,1613,2.42,1614,2.42,1615,2.42,1616,2.42,1617,2.42]],["component/103",[1,0.411]],["title/104-1",[23,25.689]],["name/104-1",[]],["text/104-1",[]],["component/104-1",[]],["title/104-2",[26,18.526]],["name/104-2",[]],["text/104-2",[]],["component/104-2",[]],["title/104-3",[334,23.488]],["name/104-3",[]],["text/104-3",[]],["component/104-3",[]],["title/104-4",[269,18.168]],["name/104-4",[]],["text/104-4",[]],["component/104-4",[]],["title/104-5",[932,25.347]],["name/104-5",[]],["text/104-5",[]],["component/104-5",[]],["title/104-6",[788,25.347]],["name/104-6",[]],["text/104-6",[]],["component/104-6",[]],["title/104",[377,35.65,494,39.337]],["name/104",[402,1.175]],["text/104",[8,1.935,10,1.146,12,2.168,13,3.059,15,0.904,16,1.634,26,0.661,43,1.531,75,1.515,86,0.984,93,3.077,135,1.031,147,1.646,148,1.04,150,1.809,154,1.023,156,1.169,160,2.441,189,1.964,190,1.908,192,1.31,196,1.45,209,2.837,216,1.595,227,1.085,230,2.348,269,1.433,333,0.999,348,1.595,350,2.117,354,1.595,374,1.502,377,1.717,392,2.504,402,6.602,430,1.293,454,1.631,466,2.837,492,1.595,494,6.005,537,1.894,548,1.894,694,1.595,705,1.22,763,4.25,764,1.075,765,2.083,788,0.904,791,1.293,907,3.098,908,5.325,911,1.146,943,1.384,956,0.963,958,0.992,959,1.094,977,1.672,1018,2.252,1073,2.51,1081,1.977,1087,2.227,1101,3.482,1109,1.561,1148,1.631,1270,3.526,1431,2.083,1479,2.083,1483,1.767,1519,3.779,1544,1.826,1582,5.425,1591,2.227,1592,2.227,1597,3.779,1598,4.923,1618,4.171,1619,2.458,1620,4.171,1621,4.171,1622,2.458,1623,5.433,1624,2.458]],["component/104",[1,0.411]],["title/105-1",[23,25.689]],["name/105-1",[]],["text/105-1",[]],["component/105-1",[]],["title/105-2",[26,18.526]],["name/105-2",[]],["text/105-2",[]],["component/105-2",[]],["title/105-3",[334,23.488]],["name/105-3",[]],["text/105-3",[]],["component/105-3",[]],["title/105-4",[269,18.168]],["name/105-4",[]],["text/105-4",[]],["component/105-4",[]],["title/105-5",[932,25.347]],["name/105-5",[]],["text/105-5",[]],["component/105-5",[]],["title/105-6",[788,18.782,934,21.076]],["name/105-6",[]],["text/105-6",[]],["component/105-6",[]],["title/105-7",[332,39.371]],["name/105-7",[]],["text/105-7",[]],["component/105-7",[]],["title/105-8",[1208,37.696]],["name/105-8",[]],["text/105-8",[]],["component/105-8",[]],["title/105-9",[10,32.125]],["name/105-9",[]],["text/105-9",[]],["component/105-9",[]],["title/105",[1011,53.086]],["name/105",[1011,1.069]],["text/105",[1,0.49,6,1.011,8,1.732,16,1.157,26,1.502,30,1.051,35,3.606,39,1.275,40,1.331,51,1.229,61,1.275,75,1.073,93,4.15,116,4.494,122,1.051,135,0.694,138,1.402,145,0.96,149,2.079,150,1.281,154,0.688,160,0.743,168,1.75,169,2.105,185,1.517,204,1.011,205,1.125,207,1.595,210,0.993,212,0.976,229,0.893,233,0.881,246,1.051,268,0.918,269,1.055,286,4.305,292,2.542,316,1.19,320,1.876,350,0.84,355,2.811,427,2.972,517,5.275,520,1.051,540,3.193,555,1.229,565,3.902,570,0.931,589,1.916,630,5.185,643,2.503,671,1.499,705,0.821,773,3.09,788,0.609,882,0.84,899,3.497,933,0.87,934,0.683,955,2.268,956,1.567,958,0.667,986,1.03,1011,6.125,1012,1.331,1013,1.19,1014,1.402,1015,1.499,1223,2.009,1228,1.098,1419,1.19,1481,1.098,1486,1.916,1625,2.676,1626,2.276,1627,2.194,1628,1.654,1629,2.503,1630,1.499,1631,1.499,1632,1.654,1633,1.654,1634,1.499,1635,1.654,1636,1.499,1637,2.954,1638,2.954,1639,1.499,1640,1.654,1641,1.654,1642,1.654,1643,1.654,1644,1.654,1645,1.654,1646,2.376,1647,1.331,1648,1.654,1649,1.499,1650,4.407,1651,4.407,1652,1.499,1653,1.654,1654,1.654]],["component/105",[1,0.411]],["title/106-1",[23,25.689]],["name/106-1",[]],["text/106-1",[]],["component/106-1",[]],["title/106-2",[26,18.526]],["name/106-2",[]],["text/106-2",[]],["component/106-2",[]],["title/106-3",[1655,62.413]],["name/106-3",[]],["text/106-3",[]],["component/106-3",[]],["title/106-4",[334,23.488]],["name/106-4",[]],["text/106-4",[]],["component/106-4",[]],["title/106-5",[269,18.168]],["name/106-5",[]],["text/106-5",[]],["component/106-5",[]],["title/106-6",[932,25.347]],["name/106-6",[]],["text/106-6",[]],["component/106-6",[]],["title/106-7",[788,18.782,934,21.076]],["name/106-7",[]],["text/106-7",[]],["component/106-7",[]],["title/106-8",[1208,37.696]],["name/106-8",[]],["text/106-8",[]],["component/106-8",[]],["title/106-9",[1656,62.413]],["name/106-9",[]],["text/106-9",[]],["component/106-9",[]],["title/106-10",[334,23.488]],["name/106-10",[]],["text/106-10",[]],["component/106-10",[]],["title/106-11",[269,18.168]],["name/106-11",[]],["text/106-11",[]],["component/106-11",[]],["title/106-12",[932,25.347]],["name/106-12",[]],["text/106-12",[]],["component/106-12",[]],["title/106-13",[788,18.782,934,21.076]],["name/106-13",[]],["text/106-13",[]],["component/106-13",[]],["title/106-14",[1033,32.768]],["name/106-14",[]],["text/106-14",[]],["component/106-14",[]],["title/106-15",[1208,37.696]],["name/106-15",[]],["text/106-15",[]],["component/106-15",[]],["title/106-16",[1657,62.413]],["name/106-16",[]],["text/106-16",[]],["component/106-16",[]],["title/106-17",[334,23.488]],["name/106-17",[]],["text/106-17",[]],["component/106-17",[]],["title/106-18",[269,18.168]],["name/106-18",[]],["text/106-18",[]],["component/106-18",[]],["title/106-19",[932,25.347]],["name/106-19",[]],["text/106-19",[]],["component/106-19",[]],["title/106-20",[788,18.782,934,21.076]],["name/106-20",[]],["text/106-20",[]],["component/106-20",[]],["title/106-21",[1033,32.768]],["name/106-21",[]],["text/106-21",[]],["component/106-21",[]],["title/106",[877,53.086]],["name/106",[877,1.069]],["text/106",[0,0.622,4,5.003,7,3.172,8,2.039,15,0.337,16,1.956,24,0.966,26,0.461,35,1.531,51,0.679,67,0.757,69,0.996,75,0.623,79,1.38,86,0.687,93,2.349,114,0.861,135,1.921,145,0.996,146,0.639,147,2.121,148,0.725,149,0.475,150,1.323,154,0.714,160,1.37,168,2.504,169,0.481,174,1.233,177,0.549,189,0.431,190,0.418,200,0.705,202,0.736,207,0.494,210,0.549,223,1.012,227,0.757,230,2.319,233,0.914,255,0.549,256,0.705,269,1.594,334,0.585,338,1.384,344,1.692,355,2.875,442,0.705,471,1.429,492,0.593,511,2.517,513,3.436,540,1.384,562,5.122,565,2.131,568,0.775,570,0.515,589,1.113,656,1.139,666,2.194,705,2.044,730,1.09,755,4.56,764,0.75,773,3.84,795,3.849,816,1.322,877,0.705,882,0.464,900,0.54,911,0.8,924,1.167,943,0.515,955,1.423,956,1.793,958,0.977,959,0.764,985,1.274,1000,0.829,1013,0.658,1017,3.714,1021,0.736,1064,1.233,1068,0.705,1073,1.903,1100,1.139,1101,2,1104,0.559,1148,2.734,1150,3.397,1168,2.319,1406,0.639,1412,2.764,1481,0.607,1486,2.344,1629,2.052,1655,6.829,1656,4.525,1657,5.477,1658,0.915,1659,1.38,1660,0.915,1661,0.736,1662,2.422,1663,0.775,1664,0.915,1665,0.915,1666,0.915,1667,0.915,1668,1.453,1669,4.119,1670,0.775,1671,0.915,1672,1.715,1673,0.915,1674,3.613,1675,1.554,1676,0.915,1677,0.915,1678,0.915,1679,0.915,1680,2.585,1681,3.05,1682,0.915,1683,2.454,1684,2.052,1685,1.554,1686,0.915,1687,0.915,1688,0.915,1689,0.915,1690,0.915,1691,0.915,1692,0.915,1693,0.915,1694,1.715,1695,0.915,1696,0.915,1697,2.195,1698,0.915,1699,0.915,1700,1.554,1701,0.915]],["component/106",[1,0.411]],["title/107-1",[23,25.689]],["name/107-1",[]],["text/107-1",[]],["component/107-1",[]],["title/107-2",[26,18.526]],["name/107-2",[]],["text/107-2",[]],["component/107-2",[]],["title/107-3",[334,23.488]],["name/107-3",[]],["text/107-3",[]],["component/107-3",[]],["title/107-4",[269,18.168]],["name/107-4",[]],["text/107-4",[]],["component/107-4",[]],["title/107-5",[932,25.347]],["name/107-5",[]],["text/107-5",[]],["component/107-5",[]],["title/107-6",[788,25.347]],["name/107-6",[]],["text/107-6",[]],["component/107-6",[]],["title/107-7",[1208,37.696]],["name/107-7",[]],["text/107-7",[]],["component/107-7",[]],["title/107-8",[1033,32.768]],["name/107-8",[]],["text/107-8",[]],["component/107-8",[]],["title/107-9",[10,32.125]],["name/107-9",[]],["text/107-9",[]],["component/107-9",[]],["title/107",[1016,53.086]],["name/107",[1016,1.069]],["text/107",[8,1.121,11,0.435,12,2.202,15,1.158,16,0.696,26,0.255,30,0.603,31,0.683,33,1.106,35,0.892,43,0.591,45,1.827,67,1.105,75,1.143,91,2.816,92,1.41,93,3.68,95,1.179,114,0.477,117,0.683,129,0.551,135,1.05,141,0.56,145,0.551,147,0.701,148,0.752,149,3.045,150,2.039,152,0.986,154,1.549,161,0.872,168,0.777,169,3.083,176,0.482,185,2.175,188,0.663,189,0.447,190,0.435,192,1.983,210,0.57,212,0.56,222,0.805,227,0.419,230,1.41,233,1.983,243,0.603,255,1.067,260,0.764,269,0.982,292,1.129,326,0.535,333,0.386,334,0.324,341,0.431,348,0.616,355,3.178,389,0.527,392,1.503,415,1.209,449,0.603,465,0.764,471,1.477,474,0.646,491,0.663,513,1.503,514,2.338,515,0.616,517,1.179,540,3.533,560,0.86,564,1.506,565,4.526,569,1.153,570,0.535,587,0.663,588,0.683,589,2.415,593,0.591,624,0.732,668,0.86,674,0.86,677,1.179,679,0.86,680,0.86,681,3.984,682,0.86,687,0.86,688,0.86,694,1.153,695,0.616,697,1.32,705,0.882,711,0.732,773,3.255,816,0.732,882,1.889,891,0.603,911,0.443,914,0.494,924,0.646,943,1,956,0.981,958,1.01,968,0.805,983,0.663,1011,2.426,1013,0.683,1016,6.063,1017,1.153,1028,0.764,1073,0.821,1101,2.283,1109,0.603,1120,1.32,1126,0.705,1141,0.764,1148,1.179,1211,0.646,1223,0.646,1251,0.646,1328,1.703,1417,0.705,1419,1.278,1437,0.705,1463,0.805,1483,0.683,1486,1.153,1544,0.705,1630,2.268,1631,2.268,1663,1.506,1684,1.506,1702,3.372,1703,0.86,1704,0.86,1705,0.86,1706,0.86,1707,0.86,1708,2.121,1709,0.86,1710,0.95,1711,0.95,1712,0.95,1713,3.147,1714,3.722,1715,1.777,1716,0.95,1717,3.722,1718,0.95,1719,0.95,1720,0.86,1721,1.777,1722,0.86,1723,0.764,1724,0.95,1725,1.777,1726,0.95,1727,0.95,1728,0.95,1729,0.95,1730,1.777,1731,0.95,1732,0.86,1733,0.95,1734,0.95,1735,0.95,1736,1.777,1737,0.95,1738,0.95,1739,0.95,1740,0.95,1741,0.95,1742,0.95,1743,2.121,1744,0.95,1745,2.504,1746,0.95,1747,0.86,1748,0.86,1749,0.95,1750,0.95,1751,0.95,1752,0.95]],["component/107",[1,0.411]],["title/108-1",[23,25.689]],["name/108-1",[]],["text/108-1",[]],["component/108-1",[]],["title/108-2",[26,18.526]],["name/108-2",[]],["text/108-2",[]],["component/108-2",[]],["title/108-3",[334,23.488]],["name/108-3",[]],["text/108-3",[]],["component/108-3",[]],["title/108-4",[269,18.168]],["name/108-4",[]],["text/108-4",[]],["component/108-4",[]],["title/108-5",[932,25.347]],["name/108-5",[]],["text/108-5",[]],["component/108-5",[]],["title/108-6",[788,18.782,934,21.076]],["name/108-6",[]],["text/108-6",[]],["component/108-6",[]],["title/108-7",[332,39.371]],["name/108-7",[]],["text/108-7",[]],["component/108-7",[]],["title/108-8",[1208,37.696]],["name/108-8",[]],["text/108-8",[]],["component/108-8",[]],["title/108-9",[10,32.125]],["name/108-9",[]],["text/108-9",[]],["component/108-9",[]],["title/108",[1022,53.086]],["name/108",[1022,1.069]],["text/108",[1,0.57,6,1.176,8,1.932,15,0.708,16,1.323,26,1.66,30,1.223,35,0.966,36,4.319,51,1.43,61,1.483,69,1.118,75,0.699,93,4.277,116,4.965,135,0.808,138,1.631,149,2.345,154,0.801,168,1.974,169,2.374,204,1.176,205,1.309,207,1.039,211,1.249,212,1.136,229,1.039,233,1.026,246,1.223,268,1.068,269,1.19,286,4.757,292,2.146,316,1.384,350,0.977,352,1.483,355,2.798,427,3.315,517,5.166,520,1.223,540,3.528,555,1.43,570,1.084,630,4.757,643,2.862,773,3.446,788,0.708,899,3.245,933,1.013,934,0.795,955,2.53,956,1.768,958,0.777,978,1.548,986,1.199,1013,1.384,1014,1.631,1022,5.239,1023,1.631,1481,1.278,1486,2.192,1625,3.06,1626,2.603,1627,1.43,1629,2.862,1634,1.744,1636,1.744,1646,2.717,1647,1.548,1649,1.744,1650,4.915,1651,4.915,1652,1.744,1680,1.631,1753,1.925,1754,1.925,1755,1.744,1756,1.925,1757,1.925,1758,3.378,1759,1.925,1760,1.925,1761,1.925,1762,1.925,1763,1.925,1764,1.925,1765,1.925]],["component/108",[1,0.411]],["title/109-1",[23,25.689]],["name/109-1",[]],["text/109-1",[]],["component/109-1",[]],["title/109-2",[26,18.526]],["name/109-2",[]],["text/109-2",[]],["component/109-2",[]],["title/109-3",[334,23.488]],["name/109-3",[]],["text/109-3",[]],["component/109-3",[]],["title/109-4",[269,18.168]],["name/109-4",[]],["text/109-4",[]],["component/109-4",[]],["title/109-5",[932,25.347]],["name/109-5",[]],["text/109-5",[]],["component/109-5",[]],["title/109-6",[788,25.347]],["name/109-6",[]],["text/109-6",[]],["component/109-6",[]],["title/109-7",[36,22.498,517,26.91,882,20.575]],["name/109-7",[]],["text/109-7",[]],["component/109-7",[]],["title/109-8",[1208,37.696]],["name/109-8",[]],["text/109-8",[]],["component/109-8",[]],["title/109-9",[36,28.326,161,25.052]],["name/109-9",[]],["text/109-9",[]],["component/109-9",[]],["title/109-10",[10,32.125]],["name/109-10",[]],["text/109-10",[]],["component/109-10",[]],["title/109",[807,55.412]],["name/109",[1766,1.386]],["text/109",[7,1.039,8,0.884,15,0.648,16,0.972,21,0.597,26,0.473,28,0.639,30,1.983,31,1.266,36,4.542,67,0.777,75,1.133,80,1.142,86,0.376,91,0.846,92,0.991,93,4.587,95,1.168,96,1.197,106,1.266,114,0.883,121,0.639,129,2.144,135,0.738,137,0.657,154,1.033,161,1.532,168,0.411,173,0.529,176,0.477,192,2.488,211,0.61,212,1.039,229,0.95,243,0.597,255,0.564,269,0.823,317,1.307,320,0.597,332,0.537,333,0.716,341,0.426,355,0.798,389,1.732,423,1.307,483,0.489,511,1.076,514,2.743,515,3.551,517,2.072,565,3.554,580,2.743,586,1.996,587,0.657,609,1.688,630,2.406,661,1.491,677,2.577,705,0.873,757,1.491,760,0.725,767,0.797,768,0.797,771,0.797,772,3.755,773,2.966,784,0.797,788,0.648,791,0.495,796,1.907,807,5.404,809,0.852,810,2.103,874,0.797,882,1.874,887,1.996,891,1.118,899,0.676,916,0.756,938,0.585,956,1.223,958,1.001,966,1.416,983,0.657,989,0.725,1022,2.846,1024,0.852,1025,0.852,1026,0.852,1029,0.797,1030,0.797,1056,0.537,1064,0.676,1073,0.813,1126,0.698,1148,1.168,1372,0.725,1406,0.657,1481,0.624,1486,0.61,1609,0.756,1627,0.698,1646,3.755,1647,3.755,1663,0.797,1709,0.852,1722,1.595,1723,0.756,1755,1.595,1767,0.797,1768,0.852,1769,0.725,1770,0.852,1771,0.94,1772,0.94,1773,0.94,1774,0.94,1775,0.94,1776,0.94,1777,0.94,1778,0.94,1779,0.94,1780,0.94,1781,0.94,1782,0.94,1783,0.94,1784,0.94,1785,0.94,1786,4.668,1787,2.482,1788,1.76,1789,0.94,1790,0.852,1791,1.76,1792,1.595,1793,1.76,1794,0.94,1795,0.94,1796,1.76,1797,0.94,1798,0.852,1799,0.94,1800,0.94,1801,0.94,1802,0.852]],["component/109",[1,0.411]],["title/110-1",[23,25.689]],["name/110-1",[]],["text/110-1",[]],["component/110-1",[]],["title/110-2",[26,18.526]],["name/110-2",[]],["text/110-2",[]],["component/110-2",[]],["title/110-3",[334,23.488]],["name/110-3",[]],["text/110-3",[]],["component/110-3",[]],["title/110-4",[1013,36.704,1028,41.06]],["name/110-4",[]],["text/110-4",[]],["component/110-4",[]],["title/110",[35,25.61,514,37.915]],["name/110",[1016,1.069]],["text/110",[3,1.784,10,2.657,11,1.2,15,1.621,21,1.666,26,0.705,35,3.734,37,3.168,43,4.157,68,1.886,75,2.069,93,3.579,114,1.316,128,1.476,129,1.522,135,2.8,149,2.96,150,1.137,161,2.796,169,2.997,207,2.378,211,1.702,310,1.886,332,1.499,341,1.189,355,4.076,363,1.522,392,1.574,474,1.784,512,1.886,513,3.419,520,1.666,624,2.021,677,2.683,678,3.992,694,1.702,695,1.702,755,1.886,792,1.633,795,2.021,873,2.021,882,1.331,914,2.289,924,1.784,943,2.48,989,2.021,1013,1.886,1017,1.702,1023,3.733,1028,2.109,1251,1.784,1393,2.376,1486,1.702,1702,7.302,1703,2.376,1704,2.376,1705,2.376,1706,2.376,1707,6.048,1747,6.048,1748,5.162,1769,2.021,1770,2.376,1803,2.109,1804,2.622,1805,3.733,1806,2.376,1807,2.622,1808,2.622,1809,2.622,1810,2.622,1811,2.622,1812,2.622,1813,2.622]],["component/110",[1,0.411]],["title/111-1",[23,25.689]],["name/111-1",[]],["text/111-1",[]],["component/111-1",[]],["title/111-2",[26,18.526]],["name/111-2",[]],["text/111-2",[]],["component/111-2",[]],["title/111-3",[232,49.533]],["name/111-3",[]],["text/111-3",[]],["component/111-3",[]],["title/111-4",[334,23.488]],["name/111-4",[]],["text/111-4",[]],["component/111-4",[]],["title/111-5",[1683,55.412]],["name/111-5",[]],["text/111-5",[]],["component/111-5",[]],["title/111-6",[334,23.488]],["name/111-6",[]],["text/111-6",[]],["component/111-6",[]],["title/111-7",[1814,58.365]],["name/111-7",[]],["text/111-7",[]],["component/111-7",[]],["title/111-8",[334,23.488]],["name/111-8",[]],["text/111-8",[]],["component/111-8",[]],["title/111",[24,28.739,511,31.192]],["name/111",[1815,1.386]],["text/111",[1,0.699,6,3.221,7,2.377,8,2.22,15,1.94,19,1.257,20,1.291,24,1.328,26,0.635,67,1.041,75,1.463,85,1.898,86,3.261,93,4.496,104,1.697,117,1.697,153,1.531,157,2.508,160,1.809,168,1.762,204,1.442,223,1.392,227,1.777,232,2.897,233,2.147,326,1.328,392,2.418,425,4.137,511,5.473,586,3.24,656,1.566,690,2.992,773,2.559,923,1.499,943,1.328,985,1.752,1017,2.614,1055,4.24,1056,3.013,1060,3.413,1064,1.697,1109,1.499,1112,1.291,1135,3.65,1136,3.24,1143,3.65,1319,3.24,1402,1.999,1524,1.999,1670,1.999,1683,5.014,1814,5.281,1816,4.028,1817,1.999,1818,2.359,1819,4.028,1820,2.359,1821,2.359,1822,2.359,1823,2.359,1824,1.818,1825,3.65,1826,2.359,1827,2.359,1828,1.999]],["component/111",[1,0.411]],["title/112-1",[23,25.689]],["name/112-1",[]],["text/112-1",[]],["component/112-1",[]],["title/112-2",[26,18.526]],["name/112-2",[]],["text/112-2",[]],["component/112-2",[]],["title/112-3",[6,42.095]],["name/112-3",[]],["text/112-3",[]],["component/112-3",[]],["title/112-4",[36,22.498,318,18.211,515,26.307]],["name/112-4",[]],["text/112-4",[]],["component/112-4",[]],["title/112-5",[36,22.498,174,29.153,515,26.307]],["name/112-5",[]],["text/112-5",[]],["component/112-5",[]],["title/112-6",[36,28.326,1829,46.248]],["name/112-6",[]],["text/112-6",[]],["component/112-6",[]],["title/112-7",[36,22.498,320,25.755,515,26.307]],["name/112-7",[]],["text/112-7",[]],["component/112-7",[]],["title/112-8",[1830,58.365]],["name/112-8",[]],["text/112-8",[]],["component/112-8",[]],["title/112-9",[1831,58.365]],["name/112-9",[]],["text/112-9",[]],["component/112-9",[]],["title/112-10",[1832,62.413]],["name/112-10",[]],["text/112-10",[]],["component/112-10",[]],["title/112-11",[1833,62.413]],["name/112-11",[]],["text/112-11",[]],["component/112-11",[]],["title/112-12",[1834,62.413]],["name/112-12",[]],["text/112-12",[]],["component/112-12",[]],["title/112-13",[1835,62.413]],["name/112-13",[]],["text/112-13",[]],["component/112-13",[]],["title/112-14",[1836,62.413]],["name/112-14",[]],["text/112-14",[]],["component/112-14",[]],["title/112-15",[1837,62.413]],["name/112-15",[]],["text/112-15",[]],["component/112-15",[]],["title/112-16",[1838,62.413]],["name/112-16",[]],["text/112-16",[]],["component/112-16",[]],["title/112-17",[1839,62.413]],["name/112-17",[]],["text/112-17",[]],["component/112-17",[]],["title/112-18",[1840,62.413]],["name/112-18",[]],["text/112-18",[]],["component/112-18",[]],["title/112-19",[471,40.649]],["name/112-19",[]],["text/112-19",[]],["component/112-19",[]],["title/112-20",[1841,62.413]],["name/112-20",[]],["text/112-20",[]],["component/112-20",[]],["title/112-21",[1708,58.365]],["name/112-21",[]],["text/112-21",[]],["component/112-21",[]],["title/112-22",[1842,62.413]],["name/112-22",[]],["text/112-22",[]],["component/112-22",[]],["title/112-23",[1104,42.095]],["name/112-23",[]],["text/112-23",[]],["component/112-23",[]],["title/112-24",[389,28.326,427,31.192]],["name/112-24",[]],["text/112-24",[]],["component/112-24",[]],["title/112-25",[389,28.326,540,29.174]],["name/112-25",[]],["text/112-25",[]],["component/112-25",[]],["title/112",[36,28.326,515,33.12]],["name/112",[1843,1.386]],["text/112",[1,0.148,6,1.099,7,1.061,8,0.177,10,0.448,15,0.513,19,0.512,20,0.273,24,0.281,26,0.375,36,2.753,45,0.289,75,2.016,85,0.401,86,0.199,91,1.377,92,0.281,93,4.492,95,0.331,96,0.654,106,0.358,111,0.304,117,0.691,121,0.339,122,0.316,124,0.526,128,0.281,135,0.209,149,0.259,152,0.773,153,0.624,154,1.053,160,0.432,168,0.421,173,0.281,174,0.358,176,0.253,177,0.299,192,0.743,202,1.121,207,0.269,210,0.299,221,0.316,223,0.567,238,0.401,253,0.422,269,0.131,287,5.017,292,0.611,309,0.37,318,0.432,320,0.316,323,0.358,326,0.281,333,2.653,339,0.577,352,0.741,355,2.823,389,1.208,423,0.37,430,0.262,466,0.339,471,0.822,483,0.724,515,3.603,540,1.027,547,0.358,565,3.609,570,0.281,609,1.223,642,0.451,661,1.523,694,0.323,705,0.247,763,0.331,772,1.121,786,6.709,796,0.588,802,0.401,814,0.451,847,0.815,882,2.292,886,0.871,887,2.797,923,0.316,943,0.281,955,0.232,958,0.201,982,0.624,1017,0.624,1045,1.844,1052,0.348,1056,0.285,1104,1.099,1150,0.654,1320,0.774,1328,0.339,1351,0.422,1627,0.37,1646,0.774,1647,0.774,1668,0.422,1680,0.815,1684,0.422,1708,1.181,1723,0.401,1743,0.422,1792,1.629,1798,0.871,1802,0.451,1828,0.422,1829,1.972,1830,0.815,1831,0.815,1832,1.263,1833,1.263,1834,0.871,1835,0.871,1836,0.871,1837,0.871,1838,0.871,1839,1.263,1840,1.263,1841,1.263,1842,1.263,1844,0.498,1845,0.498,1846,0.498,1847,0.498,1848,0.498,1849,0.451,1850,0.451,1851,0.422,1852,0.871,1853,0.498,1854,0.498,1855,3.477,1856,0.498,1857,2.176,1858,0.498,1859,3.18,1860,0.498,1861,0.871,1862,0.498,1863,0.498,1864,0.498,1865,0.962,1866,0.962,1867,0.451,1868,0.498,1869,0.422,1870,0.498,1871,0.962,1872,0.498,1873,0.498,1874,0.498,1875,0.498,1876,0.498,1877,0.498,1878,0.498,1879,0.498,1880,0.498,1881,0.498,1882,0.498,1883,0.498,1884,0.498,1885,0.498,1886,0.498,1887,0.498,1888,0.498,1889,0.498,1890,0.498,1891,0.498,1892,2.531,1893,0.498,1894,0.498,1895,0.498,1896,0.498,1897,0.498,1898,0.498,1899,0.498,1900,0.498,1901,0.498,1902,0.498,1903,0.498,1904,0.498,1905,0.498,1906,0.498,1907,0.498,1908,0.498,1909,0.498,1910,0.498,1911,0.498,1912,0.498,1913,0.498,1914,0.498,1915,0.498,1916,0.498,1917,0.498,1918,0.498,1919,0.498,1920,0.498,1921,0.498,1922,0.498,1923,0.498,1924,0.498,1925,0.498,1926,0.498,1927,0.498,1928,0.498,1929,0.498,1930,0.498,1931,0.498,1932,0.498,1933,0.498,1934,0.498,1935,0.498,1936,0.498,1937,0.498,1938,0.498,1939,0.498,1940,0.498,1941,0.498,1942,0.498,1943,0.498,1944,0.498,1945,0.498,1946,0.498,1947,0.498,1948,0.498,1949,0.498,1950,0.498,1951,0.498,1952,0.498,1953,0.498,1954,0.498,1955,0.498,1956,0.498,1957,0.498,1958,0.498,1959,0.498,1960,0.498,1961,0.498,1962,0.498,1963,0.498,1964,0.498,1965,0.498,1966,0.498,1967,0.498,1968,0.498,1969,0.498,1970,0.498,1971,0.498,1972,0.498,1973,0.498,1974,0.498,1975,0.498,1976,0.498,1977,0.498,1978,0.498,1979,0.498,1980,0.498,1981,0.498,1982,0.498,1983,0.498,1984,0.498,1985,0.498,1986,0.498,1987,0.498,1988,0.498,1989,0.498,1990,0.498,1991,0.498,1992,0.498,1993,0.498,1994,0.498,1995,0.498,1996,0.498,1997,0.498,1998,0.498,1999,0.498,2000,0.498,2001,0.498,2002,0.498,2003,0.498,2004,0.498,2005,0.498,2006,0.498,2007,0.498,2008,0.498,2009,1.798,2010,0.498,2011,0.498,2012,0.498,2013,0.498,2014,0.498,2015,0.498,2016,0.498,2017,0.498,2018,0.498,2019,0.498,2020,0.498,2021,0.498,2022,0.498,2023,0.498,2024,0.451,2025,0.498,2026,0.498,2027,0.498,2028,0.498,2029,0.498,2030,0.498,2031,0.498,2032,0.498,2033,0.498,2034,0.498,2035,0.498,2036,0.498,2037,0.498,2038,0.498,2039,0.498,2040,0.498,2041,0.498,2042,0.498,2043,0.498,2044,0.498,2045,0.498,2046,0.498,2047,0.962,2048,1.394,2049,0.498,2050,0.498,2051,0.962,2052,2.176,2053,0.962,2054,0.962,2055,0.498,2056,0.498,2057,0.498,2058,0.962,2059,2.865,2060,0.498,2061,0.498,2062,0.498,2063,0.498,2064,0.498,2065,0.498,2066,0.498,2067,0.498,2068,0.498,2069,0.498]],["component/112",[1,0.411]],["title/113-1",[23,25.689]],["name/113-1",[]],["text/113-1",[]],["component/113-1",[]],["title/113-2",[26,18.526]],["name/113-2",[]],["text/113-2",[]],["component/113-2",[]],["title/113-3",[6,42.095]],["name/113-3",[]],["text/113-3",[]],["component/113-3",[]],["title/113-4",[334,23.488]],["name/113-4",[]],["text/113-4",[]],["component/113-4",[]],["title/113-5",[269,18.168]],["name/113-5",[]],["text/113-5",[]],["component/113-5",[]],["title/113-6",[932,25.347]],["name/113-6",[]],["text/113-6",[]],["component/113-6",[]],["title/113-7",[15,18.782,341,23.138]],["name/113-7",[]],["text/113-7",[]],["component/113-7",[]],["title/113-8",[129,39.992]],["name/113-8",[]],["text/113-8",[]],["component/113-8",[]],["title/113-9",[1767,58.365]],["name/113-9",[]],["text/113-9",[]],["component/113-9",[]],["title/113",[36,28.326,129,29.634]],["name/113",[757,1.175]],["text/113",[1,0.422,6,3.759,7,0.84,8,1.261,10,1.204,15,1.302,19,0.759,20,0.779,21,0.905,24,1.453,26,0.694,30,1.64,31,1.024,36,5.246,37,1.024,67,1.139,68,1.024,75,0.517,80,0.924,86,1.033,93,3.658,106,1.024,122,0.905,124,0.779,129,4.795,135,1.485,137,0.995,152,2.795,154,0.593,157,1.607,160,1.159,161,1.267,167,1.024,168,0.623,174,2.545,176,1.31,192,4.758,194,1.145,211,1.675,223,0.84,243,0.905,269,0.376,316,1.024,317,1.917,320,2.249,333,1.049,341,1.17,355,1.17,356,1.207,363,0.827,389,0.79,423,1.917,449,0.905,471,0.84,476,0.779,483,0.74,511,3.441,515,5.661,517,1.713,520,0.905,570,0.802,580,1.058,609,0.968,677,2.372,730,0.905,755,1.024,760,2.728,766,2.338,767,1.207,768,1.207,771,1.207,772,5.315,773,3.577,784,1.207,791,0.749,796,1.577,810,2.999,871,1.207,874,1.207,882,1.31,891,0.905,923,0.905,924,2.407,951,1.145,956,0.558,958,0.575,966,2.076,989,1.097,1029,1.207,1030,1.207,1055,1.145,1056,1.475,1060,1.207,1064,2.545,1126,1.058,1139,1.058,1228,0.945,1609,1.145,1767,2.999,1768,1.29,1769,1.097,1803,1.145,1830,1.207,1831,1.207,1849,2.338,1850,3.207,1852,1.29,1861,1.29,2070,1.424,2071,1.424,2072,2.581,2073,1.424,2074,5.631,2075,1.424,2076,1.207,2077,1.424,2078,1.424,2079,1.424,2080,1.424,2081,1.29,2082,1.424,2083,1.424,2084,1.424,2085,1.424]],["component/113",[1,0.411]],["title/114-1",[23,25.689]],["name/114-1",[]],["text/114-1",[]],["component/114-1",[]],["title/114-2",[2086,55.412]],["name/114-2",[]],["text/114-2",[]],["component/114-2",[]],["title/114-3",[26,18.526]],["name/114-3",[]],["text/114-3",[]],["component/114-3",[]],["title/114-4",[334,23.488]],["name/114-4",[]],["text/114-4",[]],["component/114-4",[]],["title/114-5",[269,18.168]],["name/114-5",[]],["text/114-5",[]],["component/114-5",[]],["title/114-6",[932,25.347]],["name/114-6",[]],["text/114-6",[]],["component/114-6",[]],["title/114-7",[8,18.179,312,41.06]],["name/114-7",[]],["text/114-7",[]],["component/114-7",[]],["title/114-8",[788,25.347]],["name/114-8",[]],["text/114-8",[]],["component/114-8",[]],["title/114-9",[425,45.722]],["name/114-9",[]],["text/114-9",[]],["component/114-9",[]],["title/114",[512,36.704,513,30.639]],["name/114",[1805,1.175]],["text/114",[8,2.233,10,1.11,16,0.351,24,0.505,26,0.241,30,0.57,33,1.483,48,0.582,51,0.666,67,0.743,75,1.79,82,0.645,86,0.675,91,0.431,92,0.505,93,3.963,96,1.146,104,1.211,135,0.999,145,0.521,147,0.354,150,3.238,153,2.309,154,0.373,156,0.427,157,0.559,160,0.403,161,0.44,168,1.042,176,0.455,177,1.011,189,0.423,190,0.411,200,2.313,204,1.029,211,0.582,227,0.396,229,0.484,230,2.286,233,3.75,243,0.57,246,0.57,255,1.802,268,0.498,269,0.444,326,0.948,327,1.211,332,0.513,348,0.582,350,0.455,355,0.764,387,0.666,389,0.498,391,1.251,392,0.539,415,1.62,425,2.362,430,0.472,435,0.691,440,0.582,462,0.691,483,0.466,493,1.769,511,1.455,512,2.92,513,3.186,520,1.07,540,1.716,564,2.018,565,6.358,579,0.722,586,1.355,596,0.666,603,0.627,624,0.691,656,0.596,681,3.015,690,3.661,697,0.666,755,0.645,756,1.427,773,1.907,788,0.62,847,3.44,873,0.691,916,0.722,923,0.57,933,0.472,943,0.948,956,0.66,979,0.813,982,1.093,986,2.216,1012,1.355,1017,1.093,1052,0.627,1054,0.645,1056,2.034,1062,2.26,1076,0.813,1080,0.722,1109,2.579,1112,1.643,1136,0.722,1141,1.355,1158,0.645,1223,0.61,1228,0.596,1251,1.146,1265,1.251,1307,0.76,1328,1.146,1335,0.691,1345,0.666,1402,3.44,1429,0.813,1435,0.691,1486,0.582,1524,1.427,1537,0.76,1639,0.813,1683,1.355,1685,0.813,1697,4.466,1743,1.427,1803,0.722,1805,3.825,1806,0.813,1814,0.76,1817,0.76,1825,0.813,1828,2.018,1851,0.76,2087,1.685,2088,3.002,2089,0.897,2090,1.526,2091,0.897,2092,0.897,2093,0.897,2094,0.897,2095,3.558,2096,3.002,2097,2.381,2098,1.685,2099,3.224,2100,4.06,2101,4.06,2102,0.897,2103,0.897,2104,0.897,2105,0.897,2106,0.897,2107,0.897,2108,0.897,2109,1.685,2110,0.813,2111,0.897,2112,0.897,2113,0.76,2114,0.897,2115,2.381,2116,4.515,2117,1.685,2118,1.685,2119,0.813,2120,0.897,2121,1.685,2122,1.685,2123,0.897,2124,1.685,2125,0.897,2126,1.685,2127,0.897,2128,0.897]],["component/114",[1,0.411]],["title/115-1",[23,25.689]],["name/115-1",[]],["text/115-1",[]],["component/115-1",[]],["title/115-2",[26,18.526]],["name/115-2",[]],["text/115-2",[]],["component/115-2",[]],["title/115-3",[334,23.488]],["name/115-3",[]],["text/115-3",[]],["component/115-3",[]],["title/115-4",[269,18.168]],["name/115-4",[]],["text/115-4",[]],["component/115-4",[]],["title/115-5",[932,25.347]],["name/115-5",[]],["text/115-5",[]],["component/115-5",[]],["title/115-6",[788,25.347]],["name/115-6",[]],["text/115-6",[]],["component/115-6",[]],["title/115-7",[1033,32.768]],["name/115-7",[]],["text/115-7",[]],["component/115-7",[]],["title/115-8",[318,22.928,509,31.192]],["name/115-8",[]],["text/115-8",[]],["component/115-8",[]],["title/115-9",[334,23.488]],["name/115-9",[]],["text/115-9",[]],["component/115-9",[]],["title/115-10",[269,18.168]],["name/115-10",[]],["text/115-10",[]],["component/115-10",[]],["title/115",[318,18.211,504,32.613,505,25.755]],["name/115",[2129,1.175]],["text/115",[0,1.129,1,0.492,8,1.429,12,0.863,15,1.09,16,1.16,19,0.885,20,0.908,26,0.446,33,1.034,35,0.833,67,0.732,75,1.457,82,1.194,86,0.665,91,1.424,93,3.353,111,1.014,114,2.013,124,0.908,147,2.841,148,0.702,150,2.115,154,0.691,156,2.664,158,0.767,160,0.746,161,0.815,176,0.842,182,1.559,189,1.89,190,2.231,227,0.732,269,1.477,318,3.416,330,1.034,333,1.982,339,0.996,363,0.964,427,1.014,431,1.504,471,0.98,504,6.117,505,5.44,509,3.422,520,1.882,537,1.279,555,1.233,570,1.668,677,2.926,694,1.077,705,0.824,732,1.233,736,1.279,737,1.159,739,1.129,764,0.726,911,0.774,944,1.504,956,1.16,958,0.67,959,0.739,969,2.069,974,1.034,977,1.129,1073,1.369,1078,2.383,1085,1.407,1090,3.923,1097,1.279,1098,1.279,1100,2.663,1101,4.02,1104,1.811,1112,1.621,1266,1.279,1270,4.673,1315,2.283,1327,1.279,1336,2.885,1352,2.383,1361,2.51,1869,1.407,2129,6.443,2130,1.504,2131,1.504,2132,1.66,2133,1.66,2134,2.685,2135,1.66,2136,1.407,2137,1.407,2138,1.66,2139,1.504,2140,1.504,2141,1.66,2142,1.66,2143,1.407,2144,1.66,2145,1.335,2146,1.66,2147,1.335,2148,1.279,2149,1.335,2150,2.685,2151,1.66,2152,2.685,2153,1.66]],["component/115",[1,0.411]],["title/116-1",[23,25.689]],["name/116-1",[]],["text/116-1",[]],["component/116-1",[]],["title/116-2",[182,26.855,1284,37.915]],["name/116-2",[]],["text/116-2",[]],["component/116-2",[]],["title/116-3",[158,23.576,1096,43.249]],["name/116-3",[]],["text/116-3",[]],["component/116-3",[]],["title/116-4",[26,18.526]],["name/116-4",[]],["text/116-4",[]],["component/116-4",[]],["title/116-5",[334,23.488]],["name/116-5",[]],["text/116-5",[]],["component/116-5",[]],["title/116-6",[269,18.168]],["name/116-6",[]],["text/116-6",[]],["component/116-6",[]],["title/116-7",[932,25.347]],["name/116-7",[]],["text/116-7",[]],["component/116-7",[]],["title/116-8",[788,18.782,934,21.076]],["name/116-8",[]],["text/116-8",[]],["component/116-8",[]],["title/116-9",[2154,68.884]],["name/116-9",[]],["text/116-9",[]],["component/116-9",[]],["title/116-10",[10,32.125]],["name/116-10",[]],["text/116-10",[]],["component/116-10",[]],["title/116-11",[1033,32.768]],["name/116-11",[]],["text/116-11",[]],["component/116-11",[]],["title/116-12",[158,23.576,318,22.928]],["name/116-12",[]],["text/116-12",[]],["component/116-12",[]],["title/116-13",[26,18.526]],["name/116-13",[]],["text/116-13",[]],["component/116-13",[]],["title/116-14",[334,23.488]],["name/116-14",[]],["text/116-14",[]],["component/116-14",[]],["title/116-15",[269,18.168]],["name/116-15",[]],["text/116-15",[]],["component/116-15",[]],["title/116-16",[932,25.347]],["name/116-16",[]],["text/116-16",[]],["component/116-16",[]],["title/116-17",[15,18.782,341,23.138]],["name/116-17",[]],["text/116-17",[]],["component/116-17",[]],["title/116-18",[67,30.394]],["name/116-18",[]],["text/116-18",[]],["component/116-18",[]],["title/116-19",[1208,37.696]],["name/116-19",[]],["text/116-19",[]],["component/116-19",[]],["title/116-20",[158,18.726,318,18.211,608,34.351]],["name/116-20",[]],["text/116-20",[]],["component/116-20",[]],["title/116-21",[26,18.526]],["name/116-21",[]],["text/116-21",[]],["component/116-21",[]],["title/116-22",[334,23.488]],["name/116-22",[]],["text/116-22",[]],["component/116-22",[]],["title/116-23",[176,34.958]],["name/116-23",[]],["text/116-23",[]],["component/116-23",[]],["title/116-24",[788,25.347]],["name/116-24",[]],["text/116-24",[]],["component/116-24",[]],["title/116-25",[1033,32.768]],["name/116-25",[]],["text/116-25",[]],["component/116-25",[]],["title/116",[158,23.576,318,22.928]],["name/116",[2155,1.256]],["text/116",[8,1.585,10,0.936,12,1.953,13,0.256,15,0.609,16,0.501,21,0.812,24,0.495,26,0.629,30,0.812,31,0.327,32,0.366,48,0.295,55,0.327,67,0.201,69,0.264,75,0.85,86,0.182,91,0.423,92,0.495,93,3.681,95,0.849,96,1.125,98,0.708,103,0.385,104,0.92,112,0.35,114,1.758,132,0.366,135,0.369,141,0.976,142,0.338,145,0.264,147,2.204,148,0.541,150,0.87,151,0.338,152,0.71,154,0.532,156,1.903,157,1.03,158,2.153,160,0.395,167,0.327,168,1.161,169,1.231,173,0.256,182,3.837,189,1.102,190,1.071,195,0.412,204,0.278,207,0.475,212,1.184,220,0.412,227,0.201,229,0.245,230,0.72,233,0.681,243,0.289,249,0.781,269,0.779,276,0.708,291,0.633,317,1.738,318,1.453,320,0.559,328,0.366,330,0.283,331,0.317,332,0.26,333,0.816,339,0.528,341,0.206,343,0.327,347,0.317,348,0.571,350,0.231,355,1.467,363,3.515,365,2.046,389,0.488,390,0.338,392,0.993,406,0.338,425,0.849,430,0.87,449,1.051,454,0.849,466,3.799,471,0.755,480,0.519,483,0.859,491,0.317,492,0.295,504,0.366,506,0.366,508,0.87,509,2.72,510,0.654,511,0.278,512,0.633,537,0.35,541,0.412,547,0.327,558,0.35,563,0.366,569,0.295,570,0.931,580,0.338,587,0.893,589,3.155,592,0.385,593,1.03,599,0.283,603,0.317,608,1.701,625,0.745,659,0.797,664,0.309,670,0.412,677,2.29,694,1.073,695,0.571,707,1.029,718,1.819,734,0.745,747,0.708,760,0.35,763,4.019,764,0.559,773,0.559,788,0.324,789,0.338,792,1.03,795,0.35,796,0.278,798,0.412,799,0.412,801,1.738,802,2.818,803,0.412,804,0.598,813,0.412,834,0.385,840,0.289,882,0.231,887,0.708,891,0.289,895,0.385,911,0.212,915,0.385,925,0.385,933,0.239,934,0.188,943,0.495,949,0.366,955,0.596,956,0.917,958,0.81,968,0.385,969,0.893,986,1.03,996,0.412,998,0.412,1010,0.366,1018,1.084,1021,0.366,1052,0.317,1056,0.731,1062,0.559,1073,0.21,1089,0.654,1096,5.997,1100,1.553,1101,3.382,1104,1.011,1109,0.289,1141,0.366,1148,1.553,1209,0.35,1223,0.309,1270,1.916,1284,1.229,1287,0.412,1299,0.745,1316,0.338,1328,0.309,1336,0.327,1342,0.35,1372,0.35,1376,0.385,1396,0.412,1406,0.893,1419,0.633,1435,0.35,1437,0.654,1459,0.338,1483,0.327,1513,0.338,1544,0.338,1549,0.412,1551,0.708,1626,2.046,1769,0.35,1790,0.412,1824,0.986,2113,0.745,2129,0.745,2148,0.35,2150,0.412,2152,0.412,2155,4.406,2156,0.454,2157,0.454,2158,0.454,2159,0.412,2160,0.797,2161,0.797,2162,1.159,2163,0.412,2164,0.88,2165,0.454,2166,0.454,2167,2.953,2168,0.454,2169,0.88,2170,2.007,2171,0.454,2172,0.454,2173,0.88,2174,0.454,2175,1.279,2176,1.279,2177,0.454,2178,0.88,2179,0.88,2180,0.454,2181,0.678,2182,0.454,2183,2.655,2184,2.007,2185,0.454,2186,0.454,2187,0.454,2188,0.454,2189,0.454,2190,2.007,2191,0.454,2192,0.454,2193,0.454,2194,0.454,2195,0.454,2196,0.338,2197,0.454,2198,0.454,2199,0.454,2200,0.454,2201,0.454,2202,0.88,2203,0.454,2204,0.454,2205,0.454,2206,0.454,2207,0.454,2208,0.454,2209,0.454,2210,0.454,2211,0.454,2212,0.454,2213,0.454,2214,1.159,2215,0.88,2216,0.454,2217,0.88,2218,0.454,2219,0.88,2220,0.412,2221,0.88,2222,0.454,2223,0.88,2224,0.454,2225,0.454,2226,0.454,2227,0.454,2228,0.454,2229,0.454,2230,0.454,2231,0.454,2232,0.454,2233,0.454,2234,0.454,2235,0.454,2236,0.454,2237,0.454,2238,0.454,2239,0.454,2240,0.454,2241,0.454,2242,0.454,2243,0.412,2244,0.454,2245,0.454,2246,0.454,2247,0.385,2248,0.454,2249,0.454,2250,0.454,2251,0.454,2252,0.454,2253,0.454,2254,0.454,2255,0.454,2256,0.454,2257,0.454,2258,0.454,2259,0.454]],["component/116",[1,0.411]],["title/117-1",[23,25.689]],["name/117-1",[]],["text/117-1",[]],["component/117-1",[]],["title/117-2",[26,18.526]],["name/117-2",[]],["text/117-2",[]],["component/117-2",[]],["title/117-3",[334,23.488]],["name/117-3",[]],["text/117-3",[]],["component/117-3",[]],["title/117-4",[269,18.168]],["name/117-4",[]],["text/117-4",[]],["component/117-4",[]],["title/117-5",[932,25.347]],["name/117-5",[]],["text/117-5",[]],["component/117-5",[]],["title/117-6",[788,25.347]],["name/117-6",[]],["text/117-6",[]],["component/117-6",[]],["title/117-7",[1033,32.768]],["name/117-7",[]],["text/117-7",[]],["component/117-7",[]],["title/117",[318,18.211,509,24.775,510,30.115]],["name/117",[2163,1.256]],["text/117",[1,0.531,8,1.13,12,1.649,16,1.243,19,0.955,20,0.981,26,0.482,45,1.041,53,1.382,67,1.4,75,1.152,86,0.718,93,2.413,114,0.9,124,0.981,143,1.289,147,2.96,148,0.758,150,2.556,152,2.368,153,1.163,154,2.712,158,0.828,160,0.805,189,2.776,190,2.697,192,0.955,197,1.442,208,1.382,210,1.904,227,0.791,269,1.36,318,2.648,330,1.116,333,1.29,339,1.076,430,1.669,454,1.19,480,1.058,508,1.219,509,4.305,510,6.363,529,1.332,572,1.624,592,1.519,593,1.976,677,2.01,695,1.163,705,1.574,723,1.219,764,0.784,788,0.66,882,0.91,911,0.836,956,1.243,958,1.28,959,0.798,977,1.219,1018,0.968,1073,1.465,1097,2.445,1100,3.423,1101,4.16,1104,1.096,1112,0.981,1125,1.624,1211,2.158,1265,1.332,1270,4.571,1298,2.875,1305,2.688,1306,1.519,1312,2.688,1313,1.519,1315,2.445,1336,2.281,1869,1.519,2147,1.442,2162,5.903,2214,1.624,2243,6.383,2260,6.515,2261,8.566,2262,1.793,2263,1.793,2264,3.173,2265,1.793,2266,1.793,2267,1.793,2268,1.793,2269,1.793,2270,5.157,2271,1.793]],["component/117",[1,0.411]],["title/118-1",[23,25.689]],["name/118-1",[]],["text/118-1",[]],["component/118-1",[]],["title/118-2",[26,18.526]],["name/118-2",[]],["text/118-2",[]],["component/118-2",[]],["title/118-3",[334,23.488]],["name/118-3",[]],["text/118-3",[]],["component/118-3",[]],["title/118-4",[269,18.168]],["name/118-4",[]],["text/118-4",[]],["component/118-4",[]],["title/118-5",[932,25.347]],["name/118-5",[]],["text/118-5",[]],["component/118-5",[]],["title/118-6",[788,25.347]],["name/118-6",[]],["text/118-6",[]],["component/118-6",[]],["title/118-7",[1033,32.768]],["name/118-7",[]],["text/118-7",[]],["component/118-7",[]],["title/118",[318,18.211,505,25.755,507,32.613]],["name/118",[2272,1.256]],["text/118",[0,1.654,1,0.72,8,1.473,12,1.264,15,1.521,16,1.619,19,1.296,20,1.331,25,1.957,26,0.654,35,1.22,56,1.875,67,1.073,75,1.501,86,0.974,91,1.169,93,2.356,111,1.486,114,2.705,124,1.331,147,2.509,148,1.029,150,2.338,154,1.012,156,1.967,158,1.124,160,1.093,182,2.175,189,2.539,190,2.467,227,1.824,255,1.46,269,1.677,318,2.856,330,1.515,331,1.699,333,0.989,339,1.46,344,1.699,376,1.578,427,1.486,471,1.435,505,5.966,507,5.732,570,2.328,579,1.957,589,1.578,677,2.539,705,1.207,732,1.807,764,1.064,911,1.134,956,1.619,958,0.981,959,1.083,1073,1.124,1085,2.061,1090,1.957,1100,4.221,1101,4.014,1104,1.486,1112,1.331,1260,1.875,1270,4.126,1327,1.875,1336,1.749,1361,2.061,1417,1.807,2130,2.204,2134,2.204,2136,2.061,2137,2.061,2140,2.204,2143,2.061,2145,1.957,2147,1.957,2148,1.875,2149,1.957,2272,6.457,2273,2.432,2274,2.432,2275,2.432,2276,2.061,2277,2.432,2278,2.432,2279,2.432,2280,2.432,2281,2.432,2282,2.432]],["component/118",[1,0.411]],["title/119-1",[23,25.689]],["name/119-1",[]],["text/119-1",[]],["component/119-1",[]],["title/119-2",[26,18.526]],["name/119-2",[]],["text/119-2",[]],["component/119-2",[]],["title/119-3",[334,23.488]],["name/119-3",[]],["text/119-3",[]],["component/119-3",[]],["title/119-4",[269,18.168]],["name/119-4",[]],["text/119-4",[]],["component/119-4",[]],["title/119-5",[932,25.347]],["name/119-5",[]],["text/119-5",[]],["component/119-5",[]],["title/119-6",[788,25.347]],["name/119-6",[]],["text/119-6",[]],["component/119-6",[]],["title/119-7",[1033,32.768]],["name/119-7",[]],["text/119-7",[]],["component/119-7",[]],["title/119-8",[318,22.928,509,31.192]],["name/119-8",[]],["text/119-8",[]],["component/119-8",[]],["title/119-9",[334,23.488]],["name/119-9",[]],["text/119-9",[]],["component/119-9",[]],["title/119-10",[269,18.168]],["name/119-10",[]],["text/119-10",[]],["component/119-10",[]],["title/119",[318,18.211,505,25.755,506,32.613]],["name/119",[2283,1.256]],["text/119",[0,1.145,1,0.499,8,1.069,12,0.875,15,1.104,16,1.175,19,0.897,20,0.921,26,0.453,33,1.049,35,0.845,67,0.743,75,1.474,86,0.674,91,0.809,93,3.086,111,1.029,114,2.036,124,0.921,147,2.863,148,1.269,150,1.76,154,1.249,156,0.801,158,0.778,160,0.756,173,0.948,176,0.855,182,1.579,189,1.911,190,2.254,207,0.909,227,0.743,269,1.491,318,3.441,326,0.948,329,1.298,330,1.049,331,2.096,333,2.003,339,1.011,361,1.211,427,1.029,471,0.994,493,1.251,497,1.176,503,3.265,505,5.782,506,6.702,507,1.355,509,3.455,520,1.07,537,1.298,570,1.689,677,2.952,694,1.093,705,0.835,732,1.251,736,1.298,739,1.145,764,0.737,909,1.298,911,0.785,913,1.526,956,1.175,958,0.679,959,0.75,969,2.096,1073,1.386,1078,2.414,1090,3.964,1097,1.298,1098,1.298,1100,2.694,1101,4.046,1104,1.834,1112,1.642,1270,4.709,1315,2.312,1336,2.919,1352,1.355,1451,1.526,1588,1.526,1611,1.526,1824,1.298,2131,1.526,2136,1.427,2137,1.427,2143,1.427,2145,1.355,2147,1.355,2148,1.298,2149,1.355,2283,6.94,2284,1.684,2285,1.684,2286,1.684,2287,1.684,2288,1.684,2289,1.684,2290,1.526,2291,1.684,2292,1.684,2293,1.684,2294,1.684,2295,3.001,2296,1.684,2297,3.001,2298,1.684]],["component/119",[1,0.411]],["title/120-1",[23,25.689]],["name/120-1",[]],["text/120-1",[]],["component/120-1",[]],["title/120-2",[26,18.526]],["name/120-2",[]],["text/120-2",[]],["component/120-2",[]],["title/120-3",[334,23.488]],["name/120-3",[]],["text/120-3",[]],["component/120-3",[]],["title/120-4",[269,18.168]],["name/120-4",[]],["text/120-4",[]],["component/120-4",[]],["title/120",[318,18.211,508,27.575,509,24.775]],["name/120",[2160,1.256]],["text/120",[1,0.902,12,1.583,19,1.624,20,1.667,24,2.809,26,0.819,42,5.741,67,2.796,93,3.394,124,1.667,147,3.772,150,1.321,152,4.065,158,1.407,176,1.546,189,1.435,190,1.394,197,2.451,269,0.804,318,3.63,330,1.897,333,2.576,430,1.603,508,4.309,509,5.599,593,3.946,677,3.449,875,2.582,923,3.17,938,1.897,977,2.072,1018,1.645,1073,1.407,1097,3.845,1101,4.214,1104,3.049,1112,1.667,1211,2.072,1270,5.631,1336,3.588,2159,5.741,2161,5.741,2299,7.324,2300,3.047,2301,3.047,2302,3.047,2303,3.047,2304,3.047,2305,3.047]],["component/120",[1,0.411]],["title/121-1",[23,25.689]],["name/121-1",[]],["text/121-1",[]],["component/121-1",[]],["title/121-2",[26,18.526]],["name/121-2",[]],["text/121-2",[]],["component/121-2",[]],["title/121-3",[334,23.488]],["name/121-3",[]],["text/121-3",[]],["component/121-3",[]],["title/121-4",[269,18.168]],["name/121-4",[]],["text/121-4",[]],["component/121-4",[]],["title/121-5",[932,25.347]],["name/121-5",[]],["text/121-5",[]],["component/121-5",[]],["title/121-6",[788,25.347]],["name/121-6",[]],["text/121-6",[]],["component/121-6",[]],["title/121-7",[1033,32.768]],["name/121-7",[]],["text/121-7",[]],["component/121-7",[]],["title/121",[180,21.888,498,24.336,501,31.244]],["name/121",[2306,1.256]],["text/121",[8,0.8,11,2.325,15,1.421,16,0.88,26,0.604,75,1.403,86,0.9,93,2.943,114,1.127,128,1.265,146,1.569,147,2.682,148,0.95,152,2.82,154,0.935,155,1.458,156,1.069,160,1.009,173,1.265,176,1.96,180,1.213,182,1.182,227,0.991,269,1.958,287,4.689,318,2.282,333,1.57,341,1.018,355,1.751,360,1.616,367,1.349,446,1.731,498,1.349,501,6.124,593,1.399,599,1.399,607,1.491,677,1.058,705,1.917,729,2.869,730,2.454,731,1.669,735,2.869,737,2.698,740,2.869,764,0.983,900,2.999,911,1.048,956,1.513,958,1.559,959,1,974,1.399,1018,1.213,1031,3.654,1032,3.774,1073,2.347,1077,1.731,1082,2.869,1086,2.977,1100,4.004,1112,2.114,1118,1.569,1152,1.731,1270,5.444,1284,1.669,1459,1.669,1526,1.731,2139,3.5,2181,1.731,2306,7.2,2307,1.807,2308,8.389,2309,3.273,2310,1.904,2311,3.107,2312,2.247,2313,2.247,2314,2.247,2315,2.247,2316,2.247,2317,2.247,2318,2.247]],["component/121",[1,0.411]],["title/122-1",[23,25.689]],["name/122-1",[]],["text/122-1",[]],["component/122-1",[]],["title/122-2",[26,18.526]],["name/122-2",[]],["text/122-2",[]],["component/122-2",[]],["title/122-3",[334,23.488]],["name/122-3",[]],["text/122-3",[]],["component/122-3",[]],["title/122-4",[269,18.168]],["name/122-4",[]],["text/122-4",[]],["component/122-4",[]],["title/122",[180,18.154,498,20.184,499,27.049,1050,28.49]],["name/122",[2319,1.256]],["text/122",[11,2.628,15,2.113,24,1.493,26,0.713,48,1.721,75,1.615,93,3.002,128,1.493,135,1.113,137,1.852,146,1.852,147,2.652,152,3.187,155,1.721,156,1.261,157,1.651,173,1.493,176,2.257,180,1.432,182,2.34,233,2.37,258,1.76,268,1.472,269,1.173,287,4.783,318,2.58,331,1.852,333,2.335,341,1.202,346,1.516,355,3.047,360,1.907,367,1.592,446,2.044,448,2.044,498,1.592,499,4.62,529,1.97,599,1.651,607,1.76,729,3.303,730,2.825,731,1.97,735,3.303,737,3.106,740,3.303,900,3.389,956,1.039,974,1.651,977,1.804,1031,3.198,1032,3.303,1050,2.247,1073,2.054,1077,2.044,1082,3.303,1086,3.427,1112,2.434,1118,1.852,1152,2.044,1284,1.97,1459,1.97,1526,2.044,2181,2.044,2307,2.133,2309,3.768,2310,2.247,2311,3.577,2319,6.785,2320,2.652,2321,2.652,2322,7.489,2323,4.447,2324,3.577,2325,1.907]],["component/122",[1,0.411]],["title/123-1",[23,25.689]],["name/123-1",[]],["text/123-1",[]],["component/123-1",[]],["title/123-2",[26,18.526]],["name/123-2",[]],["text/123-2",[]],["component/123-2",[]],["title/123-3",[334,23.488]],["name/123-3",[]],["text/123-3",[]],["component/123-3",[]],["title/123-4",[269,18.168]],["name/123-4",[]],["text/123-4",[]],["component/123-4",[]],["title/123-5",[932,25.347]],["name/123-5",[]],["text/123-5",[]],["component/123-5",[]],["title/123-6",[788,25.347]],["name/123-6",[]],["text/123-6",[]],["component/123-6",[]],["title/123-7",[15,18.782,341,23.138]],["name/123-7",[]],["text/123-7",[]],["component/123-7",[]],["title/123-8",[1033,32.768]],["name/123-8",[]],["text/123-8",[]],["component/123-8",[]],["title/123",[318,18.211,497,28.316,503,32.613]],["name/123",[2326,1.256]],["text/123",[1,0.453,8,1.635,11,2.94,16,1.079,26,0.412,48,0.993,55,1.101,67,0.675,75,0.556,82,1.981,86,0.613,93,1.701,112,1.179,114,0.768,124,1.507,147,2.876,148,2.24,150,1.629,154,1.911,155,1.787,156,1.787,160,1.237,168,1.205,176,0.777,180,3.47,182,1.976,189,1.769,190,1.719,192,0.816,196,1.626,198,1.231,205,1.041,227,0.675,258,1.016,269,1.397,318,3.275,326,0.862,333,0.622,338,3.027,339,1.654,346,2.624,347,1.069,348,2.437,406,2.046,441,2.123,449,2.386,453,1.231,454,2.493,476,2.056,477,1.787,497,1.924,498,0.919,503,1.231,511,1.683,522,1.297,529,1.137,548,2.123,570,1.551,609,1.874,624,1.179,664,1.041,677,1.769,705,0.759,734,3.183,764,0.669,791,1.449,900,2.709,911,0.714,924,1.041,937,0.993,938,0.953,956,1.471,958,0.617,959,0.681,974,0.953,980,1.297,1049,1.387,1064,1.101,1073,0.707,1101,3.344,1104,1.683,1112,2.056,1120,1.137,1166,1.101,1285,1.387,1354,1.231,1388,1.387,1417,1.137,1518,2.496,1548,1.231,1867,2.496,2113,2.334,2145,1.231,2148,1.179,2149,1.231,2326,6.932,2327,1.53,2328,1.53,2329,1.53,2330,1.53,2331,1.53,2332,1.53,2333,1.387,2334,1.53,2335,1.53,2336,1.53,2337,1.53,2338,1.53,2339,1.53,2340,1.53,2341,1.53,2342,1.53,2343,1.53,2344,1.53,2345,1.53,2346,1.53,2347,3.756,2348,1.53,2349,5.348,2350,5.902,2351,1.53,2352,2.755,2353,1.53,2354,3.756,2355,1.53,2356,1.53,2357,1.53,2358,1.53,2359,1.53]],["component/123",[1,0.411]],["title/124-1",[23,25.689]],["name/124-1",[]],["text/124-1",[]],["component/124-1",[]],["title/124-2",[26,18.526]],["name/124-2",[]],["text/124-2",[]],["component/124-2",[]],["title/124-3",[334,23.488]],["name/124-3",[]],["text/124-3",[]],["component/124-3",[]],["title/124-4",[269,18.168]],["name/124-4",[]],["text/124-4",[]],["component/124-4",[]],["title/124",[180,21.888,497,28.316,498,24.336]],["name/124",[2360,1.256]],["text/124",[7,1.72,11,3.262,15,1.072,17,2.096,24,1.641,26,0.784,27,1.982,28,1.982,35,1.462,48,1.891,69,1.692,75,2.589,86,1.167,93,2.275,108,3.122,111,1.781,128,1.641,135,1.223,137,3.36,147,1.898,157,1.815,176,1.479,177,1.75,180,3.316,182,1.533,192,1.553,207,1.574,233,1.553,238,2.345,258,1.935,268,1.617,269,0.769,287,4.207,310,2.096,318,1.309,330,2.996,333,1.956,343,2.096,347,2.036,355,2.181,422,3.87,430,1.533,436,2.165,440,1.891,442,2.246,448,2.246,476,1.595,497,4.98,498,4.28,729,2.165,730,1.852,740,2.165,756,2.47,804,1.982,900,2.839,911,1.359,956,1.142,977,3.272,1031,3.459,1053,2.47,1073,1.346,1112,1.595,1118,2.036,1128,2.641,1332,2.641,1417,2.165,1548,2.345,1732,2.641,1851,2.47,2324,3.87,2325,2.096,2333,2.641,2349,4.359,2360,7.15,2361,4.811,2362,2.915,2363,4.359,2364,2.915,2365,2.915,2366,2.915]],["component/124",[1,0.411]],["title/125-1",[23,25.689]],["name/125-1",[]],["text/125-1",[]],["component/125-1",[]],["title/125-2",[26,18.526]],["name/125-2",[]],["text/125-2",[]],["component/125-2",[]],["title/125-3",[334,23.488]],["name/125-3",[]],["text/125-3",[]],["component/125-3",[]],["title/125-4",[269,18.168]],["name/125-4",[]],["text/125-4",[]],["component/125-4",[]],["title/125",[180,21.888,498,24.336,500,26.91]],["name/125",[727,1.175]],["text/125",[11,2.693,15,2.166,26,0.738,48,1.781,75,1.662,93,3.055,128,1.545,135,1.151,137,1.917,146,1.917,147,2.71,152,2.54,155,1.781,156,1.306,157,1.709,173,1.545,176,2.323,180,1.482,182,1.444,233,2.439,258,1.822,268,1.523,269,1.207,287,4.867,318,2.644,333,2.393,341,1.244,355,3.114,360,1.974,367,1.647,446,2.115,448,2.115,498,1.647,500,3.907,501,3.527,599,1.709,607,1.822,727,6.469,729,3.4,730,2.907,731,2.039,735,3.4,737,3.197,740,3.4,900,3.474,956,1.075,974,1.709,1031,3.291,1032,3.4,1073,2.114,1077,2.115,1082,3.4,1086,3.527,1112,2.505,1118,1.917,1152,2.115,1270,1.781,1284,2.039,1459,2.039,1526,2.115,2181,2.115,2307,2.208,2309,3.878,2310,2.326,2311,3.682,2324,3.682,2325,1.974,2367,2.745,2368,7.635,2369,4.577]],["component/125",[1,0.411]],["title/126-1",[23,25.689]],["name/126-1",[]],["text/126-1",[]],["component/126-1",[]],["title/126-2",[26,18.526]],["name/126-2",[]],["text/126-2",[]],["component/126-2",[]],["title/126-3",[334,23.488]],["name/126-3",[]],["text/126-3",[]],["component/126-3",[]],["title/126-4",[269,18.168]],["name/126-4",[]],["text/126-4",[]],["component/126-4",[]],["title/126",[180,21.888,498,24.336,502,32.613]],["name/126",[2370,1.256]],["text/126",[11,1.908,15,2.356,26,0.661,48,1.595,75,1.973,93,2.886,128,1.384,135,1.031,137,1.717,141,1.45,147,2.526,152,2.315,155,1.595,156,1.169,157,1.531,173,1.384,176,2.757,180,1.327,182,1.293,233,2.223,258,1.631,268,1.364,269,1.1,287,4.598,318,2.441,321,2.227,333,2.209,341,1.114,355,2.902,407,3.355,440,1.595,446,1.894,448,1.894,498,1.475,502,5.767,509,3.912,520,1.561,563,1.977,593,2.597,599,1.531,607,1.631,695,2.706,707,1.977,729,3.098,730,2.65,731,1.826,735,1.826,737,1.717,740,3.098,900,3.778,924,2.837,956,0.963,974,1.531,1031,2.999,1032,3.098,1073,1.927,1077,1.894,1082,3.098,1086,3.214,1112,2.283,1118,1.717,1397,2.083,1459,1.826,1526,1.894,2181,1.894,2307,1.977,2311,1.977,2324,3.355,2325,1.767,2370,6.496,2371,7.169,2372,4.171,2373,4.171,2374,4.171,2375,4.171,2376,2.458,2377,2.458,2378,2.458,2379,4.171]],["component/126",[1,0.411]],["title/127-1",[23,25.689]],["name/127-1",[]],["text/127-1",[]],["component/127-1",[]],["title/127-2",[26,18.526]],["name/127-2",[]],["text/127-2",[]],["component/127-2",[]],["title/127-3",[334,23.488]],["name/127-3",[]],["text/127-3",[]],["component/127-3",[]],["title/127-4",[269,18.168]],["name/127-4",[]],["text/127-4",[]],["component/127-4",[]],["title/127-5",[932,25.347]],["name/127-5",[]],["text/127-5",[]],["component/127-5",[]],["title/127-6",[788,25.347]],["name/127-6",[]],["text/127-6",[]],["component/127-6",[]],["title/127-7",[221,43.759]],["name/127-7",[]],["text/127-7",[]],["component/127-7",[]],["title/127-8",[9,46.852]],["name/127-8",[]],["text/127-8",[]],["component/127-8",[]],["title/127",[13,38.784]],["name/127",[13,0.781]],["text/127",[1,0.311,4,0.696,6,1.669,8,0.694,9,3.428,10,0.909,13,5.35,15,1.677,16,0.764,20,1.067,21,0.667,26,0.282,30,0.667,33,2.127,43,0.653,48,0.681,67,1.205,69,0.609,71,1.448,75,2.378,86,0.42,93,2.977,99,2.748,117,0.754,125,1.214,135,0.44,141,0.619,142,0.779,143,0.754,147,1.988,148,1.445,149,0.545,154,2.442,155,0.681,156,1.299,157,0.653,158,0.485,160,0.876,161,0.515,162,1.908,163,0.681,164,0.619,165,0.653,168,1.494,169,0.552,170,0.63,175,0.844,177,1.17,178,0.619,181,0.809,185,1.754,192,1.455,204,1.192,205,0.714,206,2.986,207,1.053,208,1.503,209,5.179,213,2.087,216,0.681,221,2.17,223,2.69,227,0.463,233,1.455,243,1.239,245,0.754,246,0.667,249,0.641,255,0.63,259,0.653,267,0.844,268,0.582,269,1.202,287,1.612,289,1.983,291,1.402,292,0.667,303,0.951,304,0.951,316,0.754,318,0.471,333,0.793,346,0.6,361,1.402,363,1.132,365,1.503,389,1.082,391,2.537,422,0.844,508,4.658,511,0.641,540,1.114,548,0.809,593,2.127,612,0.844,616,0.641,617,0.844,664,1.858,705,0.521,735,0.779,764,0.459,788,1.005,796,0.641,804,0.714,834,0.889,841,2.475,891,1.735,903,0.951,905,0.754,911,0.909,917,0.889,943,0.591,956,1.338,958,0.787,959,0.467,977,3.1,1002,0.889,1073,0.485,1078,0.844,1091,2.314,1112,0.574,1118,0.733,1120,0.779,1134,0.779,1168,0.591,1211,1.326,1212,1.652,1215,0.733,1233,0.951,1297,0.844,1342,0.809,1373,0.809,1397,0.889,1413,0.889,1416,0.951,1432,1.569,1435,0.809,1467,0.951,1468,0.951,1481,1.294,1659,0.844,1670,0.889,2086,0.844,2196,0.779,2220,0.951,2325,0.754,2363,0.951,2380,0.779,2381,1.767,2382,2.731,2383,1.049,2384,1.049,2385,1.049,2386,1.049,2387,1.049,2388,1.049,2389,0.951,2390,0.951,2391,1.049,2392,1.95,2393,1.503,2394,0.809,2395,1.049,2396,1.049,2397,1.049,2398,1.049,2399,1.049,2400,1.95,2401,1.049,2402,1.049,2403,1.049,2404,1.049,2405,1.049,2406,1.049,2407,1.049,2408,1.049,2409,1.049,2410,1.049,2411,1.049,2412,1.049,2413,2.731,2414,1.049,2415,1.049,2416,1.049,2417,1.049,2418,1.049,2419,1.569,2420,1.049,2421,0.889,2422,1.049,2423,0.889,2424,0.889]],["component/127",[1,0.411]],["title/128-1",[23,25.689]],["name/128-1",[]],["text/128-1",[]],["component/128-1",[]],["title/128-2",[26,18.526]],["name/128-2",[]],["text/128-2",[]],["component/128-2",[]],["title/128-3",[334,23.488]],["name/128-3",[]],["text/128-3",[]],["component/128-3",[]],["title/128-4",[269,18.168]],["name/128-4",[]],["text/128-4",[]],["component/128-4",[]],["title/128-5",[932,25.347]],["name/128-5",[]],["text/128-5",[]],["component/128-5",[]],["title/128-6",[221,43.759]],["name/128-6",[]],["text/128-6",[]],["component/128-6",[]],["title/128-7",[9,46.852]],["name/128-7",[]],["text/128-7",[]],["component/128-7",[]],["title/128",[12,35.797]],["name/128",[12,0.721]],["text/128",[4,1.232,6,2.681,8,1.562,9,4.886,10,0.866,12,5.417,15,0.683,16,0.727,26,0.499,67,2.936,71,1.379,75,2.416,91,1.572,93,3.64,147,2.379,148,1.384,152,4.24,168,3.142,185,3.416,190,2.759,192,0.989,194,2.632,213,1.135,223,1.931,227,0.819,233,0.989,243,1.179,245,2.353,246,1.179,259,1.156,267,1.493,268,1.03,269,1.395,276,1.493,278,1.682,287,4.509,289,3.863,291,4.784,292,2.787,297,1.682,298,1.682,299,1.682,300,1.682,301,1.682,302,1.682,318,0.834,333,1.33,365,1.431,389,1.03,459,1.431,540,1.87,612,1.493,617,1.493,664,1.263,804,1.263,911,0.866,956,1.282,1054,1.335,1073,0.858,1134,1.379,1168,2.977,1297,1.493,1373,1.431,1481,2.172,1551,1.493,1675,1.682,2086,1.493,2099,1.682,2196,1.379,2325,1.335,2380,1.379,2393,2.522,2394,1.431,2419,2.632,2421,1.573,2423,1.573,2424,1.573,2425,3.272,2426,1.857,2427,1.857,2428,1.857,2429,1.857,2430,1.857,2431,1.857,2432,1.857,2433,1.857,2434,3.272,2435,1.857,2436,1.857,2437,1.857,2438,1.857]],["component/128",[1,0.411]],["title/129-1",[23,25.689]],["name/129-1",[]],["text/129-1",[]],["component/129-1",[]],["title/129-2",[26,18.526]],["name/129-2",[]],["text/129-2",[]],["component/129-2",[]],["title/129-3",[334,23.488]],["name/129-3",[]],["text/129-3",[]],["component/129-3",[]],["title/129-4",[269,18.168]],["name/129-4",[]],["text/129-4",[]],["component/129-4",[]],["title/129-5",[932,25.347]],["name/129-5",[]],["text/129-5",[]],["component/129-5",[]],["title/129-6",[221,43.759]],["name/129-6",[]],["text/129-6",[]],["component/129-6",[]],["title/129-7",[2439,68.884]],["name/129-7",[]],["text/129-7",[]],["component/129-7",[]],["title/129-8",[9,46.852]],["name/129-8",[]],["text/129-8",[]],["component/129-8",[]],["title/129",[11,31.517]],["name/129",[11,0.634]],["text/129",[4,1.057,6,2.371,8,1.684,9,4.476,10,0.743,11,4.868,15,0.586,16,0.624,26,0.428,67,3.106,71,1.183,75,2.198,91,1.372,93,3.58,147,2.148,148,1.208,152,4.33,168,3.413,180,0.86,185,3.379,188,1.112,189,0.75,191,1.994,192,0.849,196,2.791,213,2.371,223,1.685,227,0.703,233,0.849,239,1.443,243,1.012,245,2.053,259,0.992,267,1.281,268,0.884,269,1.436,272,2.587,287,4.793,288,1.443,289,4.087,290,1.443,291,5.062,292,3.004,293,2.587,294,2.587,295,1.443,296,1.443,318,0.715,333,1.161,338,2.218,355,0.722,365,1.227,389,0.884,540,2.218,597,4.285,612,1.281,617,1.281,664,1.083,758,1.349,804,1.083,911,0.743,956,1.52,1054,1.145,1073,0.736,1112,0.872,1131,1.349,1134,1.183,1168,0.897,1297,1.281,1373,1.227,1481,1.895,2086,1.281,2196,1.183,2325,1.145,2380,1.183,2393,2.2,2394,1.227,2419,2.297,2421,1.349,2423,1.349,2424,1.349,2440,2.855,2441,1.593,2442,1.593,2443,1.593,2444,1.443,2445,1.443,2446,1.593,2447,1.443,2448,1.593,2449,1.593,2450,2.855,2451,1.593,2452,2.855,2453,1.593,2454,1.593,2455,1.593,2456,1.593]],["component/129",[1,0.411]],["title/130-1",[23,25.689]],["name/130-1",[]],["text/130-1",[]],["component/130-1",[]],["title/130-2",[26,18.526]],["name/130-2",[]],["text/130-2",[]],["component/130-2",[]],["title/130-3",[334,23.488]],["name/130-3",[]],["text/130-3",[]],["component/130-3",[]],["title/130-4",[332,29.174,1056,29.174]],["name/130-4",[]],["text/130-4",[]],["component/130-4",[]],["title/130-5",[269,18.168]],["name/130-5",[]],["text/130-5",[]],["component/130-5",[]],["title/130-6",[932,25.347]],["name/130-6",[]],["text/130-6",[]],["component/130-6",[]],["title/130-7",[221,43.759]],["name/130-7",[]],["text/130-7",[]],["component/130-7",[]],["title/130-8",[15,25.347]],["name/130-8",[]],["text/130-8",[]],["component/130-8",[]],["title/130",[474,46.852]],["name/130",[474,0.943]],["text/130",[8,2.537,15,1.334,16,0.818,24,1.175,26,0.561,33,2.257,75,2.359,93,3.001,121,1.42,135,1.521,143,1.501,147,2.264,148,0.883,160,0.938,168,2.51,185,2.467,203,3.903,208,1.609,213,2.215,223,2.835,227,0.921,233,1.112,255,2.884,269,1.514,287,4.515,289,1.212,292,3.052,309,1.55,332,1.193,333,1.474,474,6.69,540,1.193,547,1.501,664,1.42,708,1.891,723,1.42,791,3.019,891,1.326,911,0.973,927,1.768,956,1.42,1056,5.045,1062,2.303,1073,0.964,1082,1.55,1112,1.142,1129,1.891,1133,1.501,1134,1.55,1136,3.865,1147,2.794,1364,1.679,1389,2.794,1480,1.891,1661,1.679,2110,1.891,2196,1.55,2276,1.768,2380,1.55,2393,2.794,2394,1.609,2457,1.891,2458,3.284,2459,2.087,2460,2.087,2461,2.087,2462,9.624,2463,3.625,2464,2.087,2465,2.087,2466,2.087,2467,2.087,2468,2.087,2469,2.087,2470,2.087,2471,4.805,2472,2.087,2473,2.087,2474,2.087,2475,2.087,2476,2.087,2477,2.087,2478,1.891,2479,2.087,2480,1.891,2481,2.087]],["component/130",[1,0.411]],["title/131-1",[23,25.689]],["name/131-1",[]],["text/131-1",[]],["component/131-1",[]],["title/131-2",[26,18.526]],["name/131-2",[]],["text/131-2",[]],["component/131-2",[]],["title/131-3",[334,23.488]],["name/131-3",[]],["text/131-3",[]],["component/131-3",[]],["title/131-4",[269,18.168]],["name/131-4",[]],["text/131-4",[]],["component/131-4",[]],["title/131-5",[932,25.347]],["name/131-5",[]],["text/131-5",[]],["component/131-5",[]],["title/131-6",[788,25.347]],["name/131-6",[]],["text/131-6",[]],["component/131-6",[]],["title/131-7",[221,43.759]],["name/131-7",[]],["text/131-7",[]],["component/131-7",[]],["title/131",[196,40.649]],["name/131",[196,0.818]],["text/131",[8,3.272,11,3.71,12,4.214,15,1.846,16,2.493,26,0.825,75,1.821,86,1.228,93,2.358,135,1.287,147,1.979,168,1.341,180,1.656,185,2.576,188,2.142,190,2.295,192,1.634,196,6.023,207,1.656,213,3.065,223,2.96,227,1.353,243,1.948,245,2.205,269,1.939,287,2.96,333,1.247,338,3.638,348,3.255,392,4.414,406,2.278,558,2.363,694,3.255,705,2.489,730,1.948,758,2.598,764,1.341,911,1.43,943,1.727,956,1.965,958,2.024,959,1.365,1054,2.205,1073,1.416,1109,1.948,1112,1.678,1168,3.583,1483,3.607,1486,1.99,1544,2.278,2444,2.779,2445,2.779,2447,2.779,2482,3.067,2483,3.067,2484,3.067,2485,3.067,2486,3.067]],["component/131",[1,0.411]],["title/132-1",[23,25.689]],["name/132-1",[]],["text/132-1",[]],["component/132-1",[]],["title/132-2",[26,18.526]],["name/132-2",[]],["text/132-2",[]],["component/132-2",[]],["title/132-3",[334,23.488]],["name/132-3",[]],["text/132-3",[]],["component/132-3",[]],["title/132-4",[269,18.168]],["name/132-4",[]],["text/132-4",[]],["component/132-4",[]],["title/132-5",[932,25.347]],["name/132-5",[]],["text/132-5",[]],["component/132-5",[]],["title/132-6",[788,25.347]],["name/132-6",[]],["text/132-6",[]],["component/132-6",[]],["title/132-7",[221,43.759]],["name/132-7",[]],["text/132-7",[]],["component/132-7",[]],["title/132-8",[1208,37.696]],["name/132-8",[]],["text/132-8",[]],["component/132-8",[]],["title/132",[182,36.242]],["name/132",[182,0.729]],["text/132",[3,0.893,7,0.775,8,1.9,11,1.513,15,0.483,16,0.939,26,0.353,69,0.762,75,2.123,80,0.852,86,0.526,92,2.675,93,2.483,114,0.659,147,2.306,148,2.472,150,2.061,152,1.33,154,2.621,156,1.14,160,3.01,161,0.644,168,1.447,178,0.775,180,0.709,182,5.663,185,1.698,188,0.917,189,0.618,190,0.601,192,0.699,196,1.414,198,2.661,199,2.997,200,2.549,201,1.189,202,1.056,203,2.25,204,2.495,205,0.893,211,0.852,212,1.414,213,2.021,223,1.952,227,0.579,233,0.699,244,1.012,245,0.944,247,1.056,258,0.871,259,0.817,268,0.728,269,1.253,287,3.716,289,0.762,316,0.944,318,0.59,333,0.974,364,1.189,391,0.975,406,0.975,441,1.012,453,3.284,459,1.012,471,0.775,472,0.882,473,0.944,540,1.37,542,1.112,558,1.012,570,1.35,588,0.944,589,0.852,593,2.06,653,1.012,664,0.893,730,1.523,732,0.975,733,1.189,764,1.048,776,2.802,876,1.724,882,0.666,891,0.834,897,1.012,900,1.952,907,0.975,911,1.542,923,0.834,943,0.739,956,1.295,958,0.967,959,0.584,983,0.917,985,0.975,986,0.817,1054,0.944,1070,2.031,1073,0.606,1101,1.983,1112,0.718,1133,0.944,1134,0.975,1168,0.739,1213,0.893,1215,0.917,1223,0.893,1342,1.012,1366,1.056,1419,0.944,1437,2.457,1534,1.112,1589,2.172,1609,1.056,1627,2.457,1769,1.012,1824,1.012,2076,1.112,2196,0.975,2380,0.975,2381,1.189,2389,1.189,2393,1.847,2394,1.012,2487,2.397,2488,1.313,2489,1.313,2490,1.189,2491,1.313,2492,1.313,2493,1.313,2494,1.313,2495,1.313,2496,1.313,2497,1.313,2498,1.313,2499,1.313,2500,1.313,2501,1.313,2502,1.189,2503,1.313,2504,2.397,2505,1.313,2506,1.313,2507,2.397,2508,1.313,2509,1.313,2510,1.313,2511,1.313,2512,1.313,2513,1.313,2514,1.313,2515,1.313,2516,1.313,2517,1.313,2518,1.189,2519,1.189]],["component/132",[1,0.411]],["title/133-1",[23,25.689]],["name/133-1",[]],["text/133-1",[]],["component/133-1",[]],["title/133-2",[26,18.526]],["name/133-2",[]],["text/133-2",[]],["component/133-2",[]],["title/133-3",[334,23.488]],["name/133-3",[]],["text/133-3",[]],["component/133-3",[]],["title/133-4",[269,18.168]],["name/133-4",[]],["text/133-4",[]],["component/133-4",[]],["title/133-5",[932,25.347]],["name/133-5",[]],["text/133-5",[]],["component/133-5",[]],["title/133-6",[788,18.782,934,21.076]],["name/133-6",[]],["text/133-6",[]],["component/133-6",[]],["title/133-7",[690,51.167]],["name/133-7",[]],["text/133-7",[]],["component/133-7",[]],["title/133-8",[1033,32.768]],["name/133-8",[]],["text/133-8",[]],["component/133-8",[]],["title/133-9",[449,32.426,2247,43.249]],["name/133-9",[]],["text/133-9",[]],["component/133-9",[]],["title/133-10",[1208,37.696]],["name/133-10",[]],["text/133-10",[]],["component/133-10",[]],["title/133",[473,49.533]],["name/133",[473,0.997]],["text/133",[8,1.715,11,2.429,16,1.143,26,0.305,33,0.705,53,0.873,67,1.287,71,1.555,75,0.411,86,0.454,92,2.046,93,1.966,114,1.823,135,0.475,147,1.151,148,0.479,150,1.576,154,1.773,160,0.509,168,3.121,182,5.231,188,2.976,189,0.533,190,0.518,204,2.942,211,0.735,212,1.235,229,0.611,247,0.911,269,0.958,287,4.521,292,0.719,333,0.46,355,2.183,369,1.555,392,0.68,449,1.33,453,5.739,454,0.752,459,0.873,471,1.722,472,1.406,473,7.507,520,1.33,570,1.178,589,1.358,653,0.873,677,0.986,690,3.577,695,0.735,705,1.038,730,1.854,732,1.555,737,0.791,752,0.873,755,0.814,764,0.916,776,4.08,796,0.692,876,2.098,882,1.062,900,3.132,907,0.841,933,1.535,934,0.864,955,1.361,956,1.423,958,1.177,959,0.504,985,0.841,986,0.705,1017,3.731,1018,0.611,1044,1.896,1052,0.791,1070,0.96,1080,1.684,1081,0.911,1088,1.026,1101,2.792,1109,1.33,1148,2.412,1213,0.77,1406,1.462,1419,0.814,1435,0.873,1437,0.841,1513,3.577,1527,4.872,1551,0.911,1557,1.026,1668,3.079,1803,0.911,1824,2.249,2024,3.292,2076,0.96,2247,3.079,2290,1.026,2502,1.026,2518,1.896,2519,1.026,2520,1.133,2521,1.133,2522,1.133,2523,1.896,2524,1.133,2525,1.133,2526,1.133,2527,1.133,2528,1.133,2529,2.093,2530,2.093,2531,1.133,2532,1.133,2533,1.133,2534,4.261,2535,2.093,2536,1.133,2537,1.133,2538,1.133,2539,1.133,2540,1.133,2541,1.133]],["component/133",[1,0.411]],["title/134-1",[23,25.689]],["name/134-1",[]],["text/134-1",[]],["component/134-1",[]],["title/134-2",[26,18.526]],["name/134-2",[]],["text/134-2",[]],["component/134-2",[]],["title/134-3",[334,23.488]],["name/134-3",[]],["text/134-3",[]],["component/134-3",[]],["title/134-4",[269,18.168]],["name/134-4",[]],["text/134-4",[]],["component/134-4",[]],["title/134-5",[932,25.347]],["name/134-5",[]],["text/134-5",[]],["component/134-5",[]],["title/134-6",[788,25.347]],["name/134-6",[]],["text/134-6",[]],["component/134-6",[]],["title/134-7",[221,43.759]],["name/134-7",[]],["text/134-7",[]],["component/134-7",[]],["title/134-8",[15,25.347]],["name/134-8",[]],["text/134-8",[]],["component/134-8",[]],["title/134-9",[15,18.782,1659,41.06]],["name/134-9",[]],["text/134-9",[]],["component/134-9",[]],["title/134",[121,46.852]],["name/134",[121,0.943]],["text/134",[8,1.627,11,3.636,15,1.008,16,1.073,26,1.005,36,1.52,53,1.172,67,2.016,68,1.093,75,0.995,86,0.609,93,3.392,121,7.652,124,0.832,125,1.705,141,2.205,143,1.093,147,1.474,152,0.844,154,1.555,160,1.678,168,2.307,178,0.897,185,1.919,191,1.913,203,2.541,204,0.929,208,2.879,221,1.74,223,2.205,227,2.016,229,0.821,233,0.81,255,2.243,269,1.688,287,3.468,320,0.966,333,0.618,338,2.136,346,0.869,355,0.689,389,1.52,391,1.129,474,3.107,547,1.093,593,0.947,664,1.034,723,1.034,730,2.902,764,0.665,882,1.39,891,0.966,911,0.709,943,1.542,955,2.459,956,1.463,958,1.507,959,0.677,986,1.705,1073,2.715,1131,1.288,1147,2.111,1148,1.818,1150,2.541,1172,2.111,1251,3.998,1302,1.172,1323,1.129,1389,1.172,1406,1.062,1470,1.378,1627,1.129,1659,3.675,1661,1.223,1720,1.378,1723,1.223,2276,1.288,2380,1.129,2390,1.378,2419,1.223,2457,1.378,2458,1.378,2478,1.378,2480,1.378,2542,3.736,2543,1.521,2544,1.521,2545,1.521,2546,1.521,2547,1.521,2548,1.521,2549,1.521,2550,1.521,2551,3.736,2552,1.521,2553,1.521,2554,1.521,2555,1.521,2556,1.521,2557,1.521,2558,1.521,2559,1.521,2560,1.521,2561,2.739,2562,1.521,2563,1.521,2564,1.521,2565,1.521,2566,1.521,2567,1.521,2568,1.521]],["component/134",[1,0.411]],["title/135-1",[23,25.689]],["name/135-1",[]],["text/135-1",[]],["component/135-1",[]],["title/135-2",[26,18.526]],["name/135-2",[]],["text/135-2",[]],["component/135-2",[]],["title/135-3",[334,23.488]],["name/135-3",[]],["text/135-3",[]],["component/135-3",[]],["title/135-4",[269,18.168]],["name/135-4",[]],["text/135-4",[]],["component/135-4",[]],["title/135-5",[932,25.347]],["name/135-5",[]],["text/135-5",[]],["component/135-5",[]],["title/135-6",[8,18.179,958,20.594]],["name/135-6",[]],["text/135-6",[]],["component/135-6",[]],["title/135-7",[10,32.125]],["name/135-7",[]],["text/135-7",[]],["component/135-7",[]],["title/135-8",[8,18.179,1208,27.933]],["name/135-8",[]],["text/135-8",[]],["component/135-8",[]],["title/135-9",[1208,37.696]],["name/135-9",[]],["text/135-9",[]],["component/135-9",[]],["title/135",[203,27.575,513,24.336,516,29.153]],["name/135",[1485,1.175]],["text/135",[7,1.1,8,3.619,15,0.686,16,1.286,21,1.184,26,0.501,45,3.078,67,0.822,75,3.051,86,1.315,91,1.578,93,3.707,115,2.782,135,1.377,147,2.092,150,1.424,168,0.815,203,2.993,227,1.449,230,1.849,249,3.694,269,1.595,332,1.065,348,1.209,355,2.403,392,1.971,425,5.964,472,2.206,513,1.119,516,1.34,656,4.427,694,2.13,705,0.925,791,0.981,840,1.184,911,0.869,943,1.049,955,1.531,956,1.723,983,1.302,1056,1.065,1062,4.237,1073,0.861,1109,1.184,1126,1.385,1133,3.813,1158,1.34,1168,1.849,1482,4.492,1483,1.34,1484,4.086,1485,7.613,1486,2.13,1487,2.975,1489,1.579,1491,1.689,1493,1.689,1507,6.043,1536,1.499,1544,1.385,1626,1.436,1817,2.782,2081,1.689,2569,3.283,2570,1.864,2571,1.864,2572,1.689,2573,2.975,2574,1.689,2575,1.689,2576,1.864,2577,1.864,2578,1.689,2579,1.689,2580,1.864,2581,1.864,2582,1.689,2583,1.689,2584,1.689,2585,1.864,2586,1.689]],["component/135",[1,0.411]],["title/136-1",[23,25.689]],["name/136-1",[]],["text/136-1",[]],["component/136-1",[]],["title/136-2",[26,18.526]],["name/136-2",[]],["text/136-2",[]],["component/136-2",[]],["title/136-3",[334,23.488]],["name/136-3",[]],["text/136-3",[]],["component/136-3",[]],["title/136-4",[269,18.168]],["name/136-4",[]],["text/136-4",[]],["component/136-4",[]],["title/136-5",[932,25.347]],["name/136-5",[]],["text/136-5",[]],["component/136-5",[]],["title/136-6",[8,18.179,958,20.594]],["name/136-6",[]],["text/136-6",[]],["component/136-6",[]],["title/136-7",[10,32.125]],["name/136-7",[]],["text/136-7",[]],["component/136-7",[]],["title/136-8",[8,18.179,1208,27.933]],["name/136-8",[]],["text/136-8",[]],["component/136-8",[]],["title/136-9",[788,18.782,934,21.076]],["name/136-9",[]],["text/136-9",[]],["component/136-9",[]],["title/136-10",[1033,32.768]],["name/136-10",[]],["text/136-10",[]],["component/136-10",[]],["title/136-11",[1208,37.696]],["name/136-11",[]],["text/136-11",[]],["component/136-11",[]],["title/136",[513,30.639,516,36.704]],["name/136",[1484,1.069]],["text/136",[7,1.864,8,2.933,16,1.533,26,0.334,45,1.324,67,0.549,69,0.722,75,2.05,80,1.48,86,1.265,91,1.096,92,1.779,93,2.873,135,0.957,147,0.491,168,0.544,198,2.541,227,0.549,230,3.178,246,0.79,249,1.394,269,1.205,289,1.324,291,0.894,332,0.711,347,2.207,355,4.078,361,2.272,425,2.097,440,0.807,472,2.122,513,4.117,516,4.059,563,1.835,569,0.807,616,0.76,656,5.314,666,0.894,677,1.488,695,0.807,705,0.617,711,0.958,723,1.551,764,0.544,773,2.486,788,0.839,791,0.654,840,2.486,882,2.608,933,0.654,934,0.513,955,2.13,956,1.789,958,1.579,959,0.553,980,1.053,983,0.868,1017,4.856,1018,1.706,1056,1.304,1062,5.492,1126,0.924,1133,2.272,1158,0.894,1168,1.284,1364,1,1366,1,1437,0.924,1482,6.342,1484,5.768,1486,0.807,1489,1.053,1512,1.835,1513,0.924,1536,3.148,1559,2.066,1570,2.066,1626,1.758,1661,1.835,1700,1.127,2090,1.127,2119,2.066,2490,1.127,2523,3.546,2572,2.863,2573,4.656,2574,1.127,2575,1.127,2578,1.127,2579,1.127,2582,1.127,2583,1.127,2584,1.127,2586,2.066,2587,1.243,2588,3.159,2589,1.243,2590,1.243,2591,2.281,2592,2.281,2593,1.243,2594,2.281,2595,1.243,2596,1.243,2597,1.243,2598,1.243,2599,1.243,2600,1.243,2601,1.243,2602,1.243,2603,1.243,2604,1.243,2605,1.243,2606,1.243]],["component/136",[1,0.411]]],"invertedIndex":[["",{"_index":93,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"6":{},"7":{},"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":{},"67":{},"68":{},"70":{},"72":{},"73":{},"74":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["0",{"_index":204,"title":{},"name":{},"text":{"2":{},"4":{},"13":{},"32":{},"33":{},"37":{},"40":{},"43":{},"46":{},"48":{},"59":{},"64":{},"65":{},"66":{},"70":{},"72":{},"81":{},"100":{},"101":{},"105":{},"108":{},"111":{},"114":{},"116":{},"127":{},"132":{},"133":{},"134":{}},"component":{}}],["0..n",{"_index":2103,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["0.0",{"_index":593,"title":{},"name":{},"text":{"4":{},"10":{},"25":{},"29":{},"39":{},"48":{},"49":{},"52":{},"53":{},"58":{},"59":{},"64":{},"66":{},"72":{},"78":{},"93":{},"97":{},"107":{},"116":{},"117":{},"120":{},"121":{},"126":{},"127":{},"132":{},"134":{}},"component":{}}],["0.08",{"_index":2141,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["0.0_db",{"_index":2420,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["0.0f",{"_index":2113,"title":{},"name":{},"text":{"46":{},"48":{},"55":{},"114":{},"116":{},"123":{}},"component":{}}],["0.0…​1.0",{"_index":1247,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["0.0…​inf",{"_index":1273,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["0.25",{"_index":1250,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["0.42",{"_index":2138,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["0.46",{"_index":2280,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["0.5",{"_index":2139,"title":{},"name":{},"text":{"47":{},"53":{},"115":{},"121":{}},"component":{}}],["0.5*(1",{"_index":2291,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["0.54",{"_index":2279,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["0.5_mhz",{"_index":273,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["0.5_pi",{"_index":284,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["0.707",{"_index":1165,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["0.8",{"_index":676,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["0.85",{"_index":594,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["0.95",{"_index":2264,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["0/1",{"_index":640,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["0/2",{"_index":648,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["0_db",{"_index":903,"title":{},"name":{},"text":{"6":{},"59":{},"75":{},"127":{}},"component":{}}],["0x00",{"_index":1898,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x01",{"_index":1899,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x02",{"_index":1901,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x04",{"_index":1903,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x05",{"_index":1905,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x06",{"_index":1907,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x07",{"_index":1909,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x08",{"_index":1911,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x0a",{"_index":1913,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x0b",{"_index":1914,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x0c",{"_index":1916,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x0d",{"_index":1918,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x10",{"_index":1920,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x11",{"_index":1922,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x12",{"_index":1924,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x13",{"_index":1926,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x20",{"_index":1928,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x21",{"_index":1930,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x22",{"_index":1932,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x24",{"_index":1934,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x25",{"_index":1936,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x26",{"_index":1938,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x27",{"_index":1940,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x28",{"_index":1942,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x2a",{"_index":1944,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x2b",{"_index":1946,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x2c",{"_index":1948,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x2d",{"_index":1950,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x30",{"_index":1952,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x31",{"_index":1954,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x32",{"_index":1956,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x33",{"_index":1958,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x40",{"_index":1959,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x41",{"_index":1961,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x42",{"_index":1963,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x43",{"_index":1965,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x44",{"_index":1967,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x45",{"_index":1969,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x46",{"_index":1971,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x47",{"_index":1973,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x48",{"_index":1976,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x49",{"_index":1978,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4a",{"_index":1980,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4b",{"_index":1983,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4c",{"_index":1985,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4d",{"_index":1987,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4e",{"_index":1989,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4f",{"_index":1991,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x50",{"_index":1993,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x51",{"_index":1995,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x52",{"_index":1997,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x53",{"_index":1999,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x54",{"_index":2001,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5b",{"_index":2003,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5c",{"_index":2007,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5d",{"_index":2011,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5e",{"_index":2014,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5f",{"_index":2018,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x60",{"_index":2021,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x61",{"_index":2023,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x62",{"_index":2026,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x63",{"_index":2028,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x64",{"_index":2030,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x65",{"_index":2032,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x78",{"_index":2034,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x79",{"_index":2035,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7a",{"_index":2037,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7b",{"_index":2039,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7c",{"_index":2041,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7d",{"_index":2043,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7e",{"_index":2044,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7f",{"_index":2046,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x80",{"_index":1872,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x90",{"_index":1873,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xa0",{"_index":1874,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xb0",{"_index":1875,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xc0",{"_index":1876,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xd0",{"_index":1877,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xe0",{"_index":1878,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf0",{"_index":1880,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf2",{"_index":1881,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf3",{"_index":1882,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf6",{"_index":1883,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf7",{"_index":1885,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf8",{"_index":1886,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xfa",{"_index":1887,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xfb",{"_index":1888,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xfc",{"_index":1889,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xfe",{"_index":1890,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xff",{"_index":1891,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["1",{"_index":91,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"8":{},"13":{},"14":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"32":{},"33":{},"39":{},"41":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"60":{},"61":{},"67":{},"68":{},"70":{},"72":{},"73":{},"76":{},"81":{},"82":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"99":{},"100":{},"101":{},"107":{},"109":{},"112":{},"114":{},"115":{},"116":{},"118":{},"119":{},"128":{},"129":{},"135":{},"136":{}},"component":{}}],["1.0",{"_index":152,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"11":{},"25":{},"29":{},"39":{},"44":{},"45":{},"48":{},"49":{},"52":{},"53":{},"54":{},"57":{},"58":{},"60":{},"61":{},"64":{},"66":{},"70":{},"72":{},"78":{},"79":{},"93":{},"97":{},"107":{},"112":{},"113":{},"116":{},"117":{},"120":{},"121":{},"122":{},"125":{},"126":{},"128":{},"129":{},"132":{},"134":{}},"component":{}}],["1.0_",{"_index":2431,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["1.0_hz",{"_index":2448,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1.0_khz",{"_index":2450,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1.0_m",{"_index":2432,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["1.0_mhz",{"_index":2451,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1.0_u",{"_index":2433,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["1.0f",{"_index":734,"title":{},"name":{},"text":{"4":{},"48":{},"55":{},"72":{},"116":{},"123":{}},"component":{}}],["1.0r",{"_index":2514,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["1.13",{"_index":1371,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["1.31",{"_index":199,"title":{},"name":{},"text":{"2":{},"64":{},"70":{},"132":{}},"component":{}}],["1.5_khz",{"_index":271,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["1/0",{"_index":634,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["1/4",{"_index":1249,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["1/6",{"_index":2331,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["1/div",{"_index":1368,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["1/n",{"_index":1245,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["1/nth",{"_index":1706,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["10",{"_index":834,"title":{},"name":{},"text":{"5":{},"48":{},"59":{},"73":{},"116":{},"127":{}},"component":{}}],["10.14",{"_index":848,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["10.3_",{"_index":275,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["10.5_u",{"_index":279,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["100_m",{"_index":798,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["10:1",{"_index":1233,"title":{},"name":{},"text":{"22":{},"59":{},"90":{},"127":{}},"component":{}}],["10_db",{"_index":282,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["11",{"_index":835,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["12",{"_index":2543,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["128",{"_index":783,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["12_db",{"_index":799,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["12db",{"_index":1531,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["15.8",{"_index":257,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["16",{"_index":1868,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["16.04",{"_index":850,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["17",{"_index":857,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["180",{"_index":2519,"title":{},"name":{},"text":{"64":{},"65":{},"132":{},"133":{}},"component":{}}],["1958",{"_index":2135,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["1:10",{"_index":2387,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["1:2",{"_index":2386,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["1:4",{"_index":1274,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["1:inf",{"_index":1275,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["1:n",{"_index":1272,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["1_",{"_index":276,"title":{},"name":{},"text":{"2":{},"4":{},"48":{},"60":{},"70":{},"72":{},"116":{},"128":{}},"component":{}}],["1_hz",{"_index":2449,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1_khz",{"_index":272,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["1_m",{"_index":278,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["1_mhz",{"_index":2453,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1_u",{"_index":2435,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["1db",{"_index":1252,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["2",{"_index":92,"title":{},"name":{},"text":{"2":{},"4":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"39":{},"41":{},"44":{},"46":{},"48":{},"64":{},"65":{},"68":{},"70":{},"72":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"107":{},"109":{},"112":{},"114":{},"116":{},"132":{},"133":{},"136":{}},"component":{}}],["2*pi*freq/sp",{"_index":2336,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["20",{"_index":2382,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["20.5_m",{"_index":277,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["2014",{"_index":410,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["2022",{"_index":837,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["2023",{"_index":411,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["24",{"_index":253,"title":{},"name":{},"text":{"2":{},"4":{},"44":{},"70":{},"72":{},"112":{}},"component":{}}],["24_db",{"_index":252,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["26/26",{"_index":649,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["2626",{"_index":633,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["2:1",{"_index":2384,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["2_pi",{"_index":283,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["3",{"_index":95,"title":{},"name":{},"text":{"2":{},"4":{},"22":{},"23":{},"24":{},"27":{},"39":{},"41":{},"44":{},"48":{},"70":{},"72":{},"90":{},"91":{},"92":{},"95":{},"107":{},"109":{},"112":{},"116":{}},"component":{}}],["3.5.1",{"_index":827,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["3.5_db",{"_index":281,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["30",{"_index":1621,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["300_m",{"_index":2239,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["30_m",{"_index":2216,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["31",{"_index":201,"title":{},"name":{},"text":{"2":{},"64":{},"70":{},"132":{}},"component":{}}],["32",{"_index":1693,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["350_m",{"_index":595,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["360",{"_index":2518,"title":{},"name":{},"text":{"64":{},"65":{},"132":{},"133":{}},"component":{}}],["3_db",{"_index":228,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["3_m",{"_index":235,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["3_mhz",{"_index":274,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["3rd",{"_index":109,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["4",{"_index":96,"title":{},"name":{},"text":{"2":{},"4":{},"23":{},"27":{},"32":{},"41":{},"44":{},"46":{},"48":{},"70":{},"72":{},"91":{},"95":{},"100":{},"109":{},"112":{},"114":{},"116":{}},"component":{}}],["440",{"_index":884,"title":{},"name":{},"text":{"5":{},"26":{},"27":{},"73":{},"94":{},"95":{}},"component":{}}],["440_hz",{"_index":239,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["44100",{"_index":578,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["4:1",{"_index":1248,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["4db",{"_index":1253,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["5",{"_index":98,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"48":{},"70":{},"72":{},"73":{},"116":{}},"component":{}}],["50",{"_index":2367,"title":{},"name":{},"text":{"57":{},"125":{}},"component":{}}],["500",{"_index":1620,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["500_u",{"_index":280,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["50_",{"_index":2222,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["5_",{"_index":803,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["5_m",{"_index":236,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["6",{"_index":99,"title":{},"name":{},"text":{"2":{},"4":{},"27":{},"59":{},"70":{},"72":{},"95":{},"127":{}},"component":{}}],["60",{"_index":2069,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["61",{"_index":635,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["6_db",{"_index":2220,"title":{},"name":{},"text":{"48":{},"59":{},"116":{},"127":{}},"component":{}}],["6_m",{"_index":2430,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["6db/octav",{"_index":1610,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["7",{"_index":100,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["70_m",{"_index":2218,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["8",{"_index":641,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["8.1757989156437",{"_index":2544,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["80",{"_index":518,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["82.4069_hz",{"_index":270,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["9",{"_index":642,"title":{},"name":{},"text":{"4":{},"44":{},"72":{},"112":{}},"component":{}}],["_bw",{"_index":1174,"title":{},"name":{},"text":{"13":{},"14":{},"19":{},"20":{},"81":{},"82":{},"87":{},"88":{}},"component":{}}],["_clip",{"_index":394,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_clip(",{"_index":371,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_comp",{"_index":401,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_db",{"_index":2422,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["_db(long",{"_index":304,"title":{},"name":{},"text":{"2":{},"59":{},"70":{},"127":{}},"component":{}}],["_db(unsign",{"_index":303,"title":{},"name":{},"text":{"2":{},"59":{},"70":{},"127":{}},"component":{}}],["_delay",{"_index":582,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_delay.push(_i",{"_index":584,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_delay{350_m",{"_index":577,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_env",{"_index":400,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_env(std::abs(",{"_index":375,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_feedback",{"_index":585,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_gate",{"_index":403,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_gate(env",{"_index":378,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_gate_env",{"_index":405,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_gate_env(g",{"_index":379,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_hp",{"_index":396,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_hp(",{"_index":368,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_hz",{"_index":2454,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["_hz(long",{"_index":288,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_hz(unsign",{"_index":290,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_key",{"_index":774,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_khz",{"_index":2455,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["_khz(long",{"_index":293,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_khz(unsign",{"_index":294,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_lp(_delay",{"_index":604,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_lp{1_khz",{"_index":601,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_m",{"_index":2437,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["_makeup_gain",{"_index":384,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_mhz",{"_index":2456,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["_mhz(long",{"_index":295,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_mhz(unsign",{"_index":296,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_ms(long",{"_index":299,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_ms(unsign",{"_index":300,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_phase",{"_index":2526,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["_pi(long",{"_index":305,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_pi(unsign",{"_index":306,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_post_env",{"_index":385,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_s",{"_index":2436,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["_s(long",{"_index":297,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_s(unsign",{"_index":298,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_slope",{"_index":904,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["_sm",{"_index":398,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_sm(",{"_index":373,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_step",{"_index":1088,"title":{},"name":{},"text":{"10":{},"65":{},"78":{},"133":{}},"component":{}}],["_synth",{"_index":787,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth(synth",{"_index":770,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.env.attack",{"_index":780,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.env.releas",{"_index":785,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.phase.set(freq",{"_index":778,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.sampling_r",{"_index":779,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.veloc",{"_index":781,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_threshold",{"_index":902,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["_u",{"_index":2438,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["_unspecified_base_type_",{"_index":2393,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"62":{},"64":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["_us(long",{"_index":301,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_us(unsign",{"_index":302,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_y",{"_index":581,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["a.rep",{"_index":1146,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["aan",{"_index":1149,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["abbrevi",{"_index":2493,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["abov",{"_index":173,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"11":{},"16":{},"21":{},"22":{},"23":{},"24":{},"27":{},"34":{},"41":{},"44":{},"48":{},"51":{},"53":{},"54":{},"57":{},"58":{},"70":{},"72":{},"75":{},"79":{},"84":{},"89":{},"90":{},"91":{},"92":{},"95":{},"102":{},"109":{},"112":{},"116":{},"119":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["abrupt",{"_index":926,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["abruptli",{"_index":906,"title":{},"name":{},"text":{"6":{},"22":{},"75":{},"90":{}},"component":{}}],["absolut",{"_index":1323,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"66":{},"93":{},"94":{},"95":{},"96":{},"97":{},"134":{}},"component":{}}],["abstract",{"_index":1023,"title":{},"name":{},"text":{"9":{},"40":{},"42":{},"77":{},"108":{},"110":{}},"component":{}}],["abund",{"_index":242,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["accept",{"_index":167,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"11":{},"28":{},"45":{},"48":{},"70":{},"74":{},"75":{},"79":{},"96":{},"113":{},"116":{}},"component":{}}],["access",{"_index":1109,"title":{"11-9":{},"79-9":{}},"name":{},"text":{"11":{},"31":{},"32":{},"36":{},"39":{},"43":{},"46":{},"48":{},"63":{},"65":{},"67":{},"79":{},"99":{},"100":{},"104":{},"107":{},"111":{},"114":{},"116":{},"131":{},"133":{},"135":{}},"component":{}}],["accessor",{"_index":1208,"title":{"21-9":{},"22-9":{},"23-9":{},"24-9":{},"31-8":{},"33-7":{},"33-10":{},"34-9":{},"37-8":{},"38-8":{},"38-15":{},"39-7":{},"40-8":{},"41-8":{},"48-19":{},"64-8":{},"65-10":{},"67-8":{},"67-9":{},"68-8":{},"68-11":{},"89-9":{},"90-9":{},"91-9":{},"92-9":{},"99-8":{},"101-7":{},"101-10":{},"102-9":{},"105-8":{},"106-8":{},"106-15":{},"107-7":{},"108-8":{},"109-8":{},"116-19":{},"132-8":{},"133-10":{},"135-8":{},"135-9":{},"136-8":{},"136-11":{}},"name":{},"text":{},"component":{}}],["accident",{"_index":1121,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["accommod",{"_index":461,"title":{},"name":{},"text":{"3":{},"32":{},"33":{},"71":{},"100":{},"101":{}},"component":{}}],["accord",{"_index":319,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["accordingli",{"_index":1225,"title":{},"name":{},"text":{"21":{},"33":{},"89":{},"101":{}},"component":{}}],["accumul",{"_index":453,"title":{},"name":{},"text":{"3":{},"55":{},"64":{},"65":{},"71":{},"123":{},"132":{},"133":{}},"component":{}}],["accur",{"_index":1002,"title":{},"name":{},"text":{"8":{},"29":{},"59":{},"76":{},"97":{},"127":{}},"component":{}}],["achiev",{"_index":1047,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["act",{"_index":1029,"title":{},"name":{},"text":{"9":{},"41":{},"45":{},"77":{},"109":{},"113":{}},"component":{}}],["action",{"_index":1236,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["activ",{"_index":2176,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["active_sens",{"_index":1842,"title":{"44-22":{},"112-22":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["actual",{"_index":666,"title":{},"name":{},"text":{"4":{},"10":{},"31":{},"32":{},"33":{},"38":{},"68":{},"72":{},"78":{},"99":{},"100":{},"101":{},"106":{},"136":{}},"component":{}}],["ad",{"_index":1419,"title":{},"name":{},"text":{"28":{},"33":{},"37":{},"39":{},"48":{},"64":{},"65":{},"96":{},"101":{},"105":{},"107":{},"116":{},"132":{},"133":{}},"component":{}}],["ad.default_sample_r",{"_index":1645,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["ad.id",{"_index":1641,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["ad.input_channel",{"_index":1643,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["ad.nam",{"_index":1642,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["ad.output_channel",{"_index":1644,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["adc",{"_index":73,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["add",{"_index":603,"title":{},"name":{},"text":{"4":{},"11":{},"22":{},"24":{},"32":{},"33":{},"46":{},"48":{},"72":{},"79":{},"90":{},"92":{},"100":{},"101":{},"114":{},"116":{}},"component":{}}],["addit",{"_index":911,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"27":{},"31":{},"32":{},"36":{},"38":{},"39":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"56":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"94":{},"95":{},"99":{},"100":{},"104":{},"106":{},"107":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"124":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{},"135":{}},"component":{}}],["addition",{"_index":828,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["adher",{"_index":2341,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["adjust",{"_index":1037,"title":{},"name":{},"text":{"10":{},"21":{},"31":{},"78":{},"89":{},"99":{}},"component":{}}],["admir",{"_index":1523,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["adsr",{"_index":608,"title":{"48-20":{},"116-20":{}},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["adsr_envelope_gen",{"_index":718,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["adsr_envelope_gen(config",{"_index":2224,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::adsr_envelope_gen(config",{"_index":2230,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::attack_rate(dur",{"_index":2250,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::decay_rate(dur",{"_index":2252,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::release_rate(dur",{"_index":2258,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::sustain_level(decibel",{"_index":2254,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::sustain_rate(dur",{"_index":2256,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["advanc",{"_index":538,"title":{},"name":{},"text":{"3":{},"10":{},"71":{},"78":{}},"component":{}}],["advantag",{"_index":244,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"26":{},"64":{},"70":{},"72":{},"75":{},"94":{},"132":{}},"component":{}}],["advis",{"_index":1781,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["advoc",{"_index":539,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["affect",{"_index":1727,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["aforement",{"_index":1005,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["aftertouch",{"_index":1791,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["again",{"_index":797,"title":{},"name":{},"text":{"4":{},"26":{},"27":{},"72":{},"94":{},"95":{}},"component":{}}],["agc",{"_index":489,"title":{"21":{},"89":{}},"name":{"21":{},"89":{}},"text":{"3":{},"21":{},"28":{},"71":{},"89":{},"96":{}},"component":{}}],["agc(decibel",{"_index":1217,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["agc(g",{"_index":1224,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["agc(max",{"_index":1222,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["aim",{"_index":1127,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["air",{"_index":645,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["alert",{"_index":2407,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["algorithm",{"_index":321,"title":{},"name":{},"text":{"2":{},"58":{},"70":{},"126":{}},"component":{}}],["alia",{"_index":140,"title":{},"name":{},"text":{"2":{},"26":{},"27":{},"28":{},"70":{},"94":{},"95":{},"96":{}},"component":{}}],["alias",{"_index":1082,"title":{},"name":{},"text":{"10":{},"53":{},"54":{},"57":{},"58":{},"62":{},"78":{},"121":{},"122":{},"125":{},"126":{},"130":{}},"component":{}}],["all_notes_off",{"_index":2038,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["all_sounds_off",{"_index":2033,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["allow",{"_index":227,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"23":{},"25":{},"27":{},"29":{},"30":{},"31":{},"32":{},"36":{},"38":{},"39":{},"43":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"68":{},"70":{},"72":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"91":{},"93":{},"95":{},"97":{},"98":{},"99":{},"100":{},"104":{},"106":{},"107":{},"111":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{},"135":{},"136":{}},"component":{}}],["allpass",{"_index":963,"title":{},"name":{"12":{},"80":{}},"text":{"7":{},"12":{},"13":{},"74":{},"80":{},"81":{}},"component":{}}],["allpass(f",{"_index":1169,"title":{},"name":{},"text":{"12":{},"80":{}},"component":{}}],["allpass(frequ",{"_index":1164,"title":{},"name":{},"text":{"12":{},"80":{}},"component":{}}],["along",{"_index":2082,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["alreadi",{"_index":1416,"title":{},"name":{},"text":{"28":{},"59":{},"96":{},"127":{}},"component":{}}],["alter",{"_index":1467,"title":{},"name":{},"text":{"31":{},"59":{},"99":{},"127":{}},"component":{}}],["altern",{"_index":1639,"title":{},"name":{},"text":{"37":{},"46":{},"105":{},"114":{}},"component":{}}],["although",{"_index":980,"title":{},"name":{},"text":{"8":{},"55":{},"68":{},"76":{},"123":{},"136":{}},"component":{}}],["alway",{"_index":979,"title":{},"name":{},"text":{"8":{},"46":{},"76":{},"114":{}},"component":{}}],["amount",{"_index":590,"title":{},"name":{},"text":{"4":{},"22":{},"23":{},"24":{},"72":{},"90":{},"91":{},"92":{}},"component":{}}],["amplifi",{"_index":610,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["amplitud",{"_index":977,"title":{},"name":{},"text":{"8":{},"10":{},"36":{},"47":{},"49":{},"52":{},"54":{},"56":{},"59":{},"76":{},"78":{},"104":{},"115":{},"117":{},"120":{},"122":{},"124":{},"127":{}},"component":{}}],["analog",{"_index":1049,"title":{},"name":{},"text":{"10":{},"55":{},"78":{},"123":{}},"component":{}}],["analysi",{"_index":1403,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["analyz",{"_index":989,"title":{},"name":{},"text":{"8":{},"30":{},"41":{},"42":{},"45":{},"76":{},"98":{},"109":{},"110":{},"113":{}},"component":{}}],["angl",{"_index":183,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["anoth",{"_index":181,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"10":{},"59":{},"70":{},"72":{},"75":{},"78":{},"127":{}},"component":{}}],["anyth",{"_index":592,"title":{},"name":{},"text":{"4":{},"48":{},"49":{},"72":{},"116":{},"117":{}},"component":{}}],["anywher",{"_index":2325,"title":{},"name":{},"text":{"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{}},"component":{}}],["ap",{"_index":1167,"title":{},"name":{},"text":{"12":{},"80":{}},"component":{}}],["ap.config(f",{"_index":1170,"title":{},"name":{},"text":{"12":{},"80":{}},"component":{}}],["api",{"_index":951,"title":{},"name":{},"text":{"7":{},"26":{},"28":{},"45":{},"74":{},"94":{},"96":{},"113":{}},"component":{}}],["app",{"_index":628,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["appar",{"_index":1395,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["appli",{"_index":599,"title":{},"name":{},"text":{"4":{},"6":{},"11":{},"21":{},"22":{},"23":{},"24":{},"28":{},"48":{},"53":{},"54":{},"57":{},"58":{},"72":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"96":{},"116":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["applic",{"_index":80,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"25":{},"27":{},"29":{},"35":{},"41":{},"45":{},"64":{},"68":{},"70":{},"72":{},"77":{},"93":{},"95":{},"97":{},"103":{},"109":{},"113":{},"132":{},"136":{}},"component":{}}],["application’",{"_index":1001,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["approach",{"_index":1285,"title":{},"name":{},"text":{"24":{},"55":{},"92":{},"123":{}},"component":{}}],["appropri",{"_index":237,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["approx_db",{"_index":2416,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["approx_db(float",{"_index":2397,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["approx_db(v",{"_index":2412,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["approxim",{"_index":1397,"title":{},"name":{},"text":{"27":{},"58":{},"59":{},"95":{},"126":{},"127":{}},"component":{}}],["apt",{"_index":864,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["aptli",{"_index":426,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["ar",{"_index":484,"title":{"25":{},"93":{}},"name":{},"text":{"3":{},"25":{},"27":{},"71":{},"93":{},"95":{}},"component":{}}],["ar_envelope_follow",{"_index":1296,"title":{},"name":{"25":{},"93":{}},"text":{"25":{},"93":{}},"component":{}}],["ar_envelope_follower(atk",{"_index":1343,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["ar_envelope_follower(env",{"_index":1344,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["arbitrari",{"_index":2076,"title":{},"name":{},"text":{"45":{},"64":{},"65":{},"113":{},"132":{},"133":{}},"component":{}}],["architect",{"_index":533,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["arg",{"_index":2198,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["argument",{"_index":1089,"title":{},"name":{},"text":{"10":{},"21":{},"22":{},"23":{},"24":{},"48":{},"78":{},"89":{},"90":{},"91":{},"92":{},"116":{}},"component":{}}],["arithmet",{"_index":232,"title":{"11-5":{},"11-11":{},"43-3":{},"79-5":{},"79-11":{},"111-3":{}},"name":{},"text":{"2":{},"11":{},"28":{},"43":{},"70":{},"79":{},"96":{},"111":{}},"component":{}}],["around",{"_index":2321,"title":{},"name":{},"text":{"54":{},"122":{}},"component":{}}],["arrang",{"_index":2087,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["array",{"_index":1851,"title":{},"name":{},"text":{"44":{},"46":{},"56":{},"112":{},"114":{},"124":{}},"component":{}}],["arriv",{"_index":818,"title":{},"name":{},"text":{"4":{},"33":{},"72":{},"101":{}},"component":{}}],["arrow",{"_index":54,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["articl",{"_index":1383,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["artifact",{"_index":1086,"title":{},"name":{},"text":{"10":{},"53":{},"54":{},"57":{},"58":{},"78":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["as.cpu_load",{"_index":1729,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.default_sample_r",{"_index":1740,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.error",{"_index":1733,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.input_channel",{"_index":1738,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.input_lat",{"_index":1735,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.is_valid",{"_index":1721,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.output_channel",{"_index":1739,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.output_lat",{"_index":1737,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.start",{"_index":1741,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.stop",{"_index":1742,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.tim",{"_index":1724,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as_doubl",{"_index":225,"title":{},"name":{},"text":{"2":{},"21":{},"22":{},"23":{},"24":{},"70":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["as_double(basic_interv",{"_index":2467,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_double(d",{"_index":2429,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["as_double(dur",{"_index":2426,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["as_double(f",{"_index":2445,"title":{},"name":{},"text":{"61":{},"63":{},"129":{},"131":{}},"component":{}}],["as_double(frequ",{"_index":2442,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["as_double(i",{"_index":2475,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_double(p",{"_index":2563,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_double(pitch",{"_index":2555,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_float",{"_index":224,"title":{},"name":{},"text":{"2":{},"21":{},"22":{},"23":{},"24":{},"70":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["as_float(12_db",{"_index":226,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["as_float(_comp(env_db",{"_index":383,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["as_float(basic_interv",{"_index":2466,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_float(comp(env",{"_index":1254,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["as_float(d",{"_index":2428,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["as_float(dur",{"_index":2427,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["as_float(exp(env",{"_index":1277,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["as_float(f",{"_index":2444,"title":{},"name":{},"text":{"61":{},"63":{},"129":{},"131":{}},"component":{}}],["as_float(frequ",{"_index":2443,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["as_float(g(env",{"_index":1227,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["as_float(i",{"_index":2474,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_float(p",{"_index":2562,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_float(pitch",{"_index":2554,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_frequency(p",{"_index":2564,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_frequency(pitch",{"_index":2553,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_int(basic_interv",{"_index":2465,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_int(i",{"_index":2473,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["asid",{"_index":2143,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"115":{},"118":{},"119":{}},"component":{}}],["ask",{"_index":629,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["assign",{"_index":934,"title":{"7-7":{},"10-6":{},"10-22":{},"10-28":{},"11-8":{},"21-6":{},"22-6":{},"23-6":{},"24-6":{},"25-7":{},"26-7":{},"27-9":{},"28-7":{},"29-8":{},"30-7":{},"31-9":{},"33-8":{},"34-6":{},"35-7":{},"37-6":{},"38-7":{},"38-13":{},"38-20":{},"40-6":{},"48-8":{},"65-6":{},"68-9":{},"74-7":{},"78-6":{},"78-22":{},"78-28":{},"79-8":{},"89-6":{},"90-6":{},"91-6":{},"92-6":{},"93-7":{},"94-7":{},"95-9":{},"96-7":{},"97-8":{},"98-7":{},"99-9":{},"101-8":{},"102-6":{},"103-7":{},"105-6":{},"106-7":{},"106-13":{},"106-20":{},"108-6":{},"116-8":{},"133-6":{},"136-9":{}},"name":{},"text":{"7":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"37":{},"40":{},"48":{},"65":{},"68":{},"74":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"105":{},"108":{},"116":{},"133":{},"136":{}},"component":{}}],["astut",{"_index":725,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["asynchron",{"_index":1020,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["asynchrono",{"_index":1027,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["atk",{"_index":1341,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["attack",{"_index":763,"title":{},"name":{},"text":{"4":{},"10":{},"22":{},"25":{},"27":{},"29":{},"34":{},"36":{},"44":{},"48":{},"72":{},"78":{},"90":{},"93":{},"95":{},"97":{},"102":{},"104":{},"112":{},"116":{}},"component":{}}],["attack(float",{"_index":1337,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["attack_",{"_index":1338,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["attack_r",{"_index":2215,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["attack_rate(dur",{"_index":2225,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["attack_width",{"_index":1618,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["attempt",{"_index":1300,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["attenu",{"_index":1186,"title":{},"name":{},"text":{"16":{},"18":{},"22":{},"23":{},"24":{},"30":{},"32":{},"34":{},"84":{},"86":{},"90":{},"91":{},"92":{},"98":{},"100":{},"102":{}},"component":{}}],["audio",{"_index":35,"title":{"3":{},"9":{},"42":{},"71":{},"77":{},"110":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"29":{},"34":{},"37":{},"38":{},"39":{},"40":{},"42":{},"47":{},"50":{},"51":{},"56":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"97":{},"102":{},"105":{},"106":{},"107":{},"108":{},"110":{},"115":{},"118":{},"119":{},"124":{}},"component":{}}],["audio_devic",{"_index":1011,"title":{"37":{},"105":{}},"name":{"37":{},"105":{}},"text":{"9":{},"37":{},"39":{},"77":{},"105":{},"107":{}},"component":{}}],["audio_device(b",{"_index":1633,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["audio_device::get(id",{"_index":1638,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["audio_device::list",{"_index":1637,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["audio_device`",{"_index":1635,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["audio_fil",{"_index":877,"title":{"38":{},"106":{}},"name":{"38":{},"106":{}},"text":{"5":{},"9":{},"38":{},"73":{},"77":{},"106":{}},"component":{}}],["audio_stream",{"_index":1016,"title":{"39":{},"107":{}},"name":{"39":{},"42":{},"107":{},"110":{}},"text":{"9":{},"39":{},"77":{},"107":{}},"component":{}}],["audio_stream(",{"_index":1718,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["audio_stream(1",{"_index":1746,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["audio_stream(ad",{"_index":1719,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["audio_stream(q::audio_device::get(device_id",{"_index":672,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["audio_stream_bas",{"_index":1702,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["augment",{"_index":240,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["austrian",{"_index":2285,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["author",{"_index":424,"title":{"3-3":{},"71-3":{}},"name":{},"text":{"3":{},"71":{}},"component":{}}],["auto",{"_index":233,"title":{},"name":{},"text":{"2":{},"4":{},"21":{},"22":{},"23":{},"24":{},"37":{},"38":{},"39":{},"40":{},"43":{},"46":{},"48":{},"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"64":{},"66":{},"70":{},"72":{},"89":{},"90":{},"91":{},"92":{},"105":{},"106":{},"107":{},"108":{},"111":{},"114":{},"116":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"132":{},"134":{}},"component":{}}],["automat",{"_index":1209,"title":{},"name":{},"text":{"21":{},"25":{},"27":{},"29":{},"48":{},"89":{},"93":{},"95":{},"97":{},"116":{}},"component":{}}],["auxiliari",{"_index":134,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["avail",{"_index":286,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"37":{},"40":{},"70":{},"72":{},"77":{},"105":{},"108":{}},"component":{}}],["averag",{"_index":485,"title":{"26":{},"32":{},"94":{},"100":{}},"name":{},"text":{"3":{},"26":{},"27":{},"28":{},"32":{},"71":{},"94":{},"95":{},"96":{},"100":{}},"component":{}}],["avoid",{"_index":1118,"title":{},"name":{},"text":{"11":{},"29":{},"53":{},"54":{},"56":{},"57":{},"58":{},"59":{},"79":{},"97":{},"121":{},"122":{},"124":{},"125":{},"126":{},"127":{}},"component":{}}],["aw",{"_index":1623,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["b",{"_index":955,"title":{},"name":{},"text":{"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"37":{},"38":{},"40":{},"44":{},"48":{},"65":{},"66":{},"67":{},"68":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"105":{},"106":{},"108":{},"112":{},"116":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["b.rep",{"_index":1160,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["back",{"_index":563,"title":{},"name":{},"text":{"4":{},"48":{},"58":{},"68":{},"72":{},"116":{},"126":{},"136":{}},"component":{}}],["background",{"_index":1584,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["balanc",{"_index":1910,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["balance_lsb",{"_index":1941,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["band",{"_index":478,"title":{"13":{},"14":{},"81":{},"82":{}},"name":{},"text":{"3":{},"7":{},"13":{},"14":{},"71":{},"74":{},"81":{},"82":{}},"component":{}}],["bandlimit",{"_index":2375,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["bandpass_cpg",{"_index":962,"title":{},"name":{"13":{},"81":{}},"text":{"7":{},"13":{},"74":{},"81":{}},"component":{}}],["bandpass_cpg(f",{"_index":1176,"title":{},"name":{},"text":{"13":{},"81":{}},"component":{}}],["bandpass_cpg(frequ",{"_index":1173,"title":{},"name":{},"text":{"13":{},"81":{}},"component":{}}],["bandpass_csg",{"_index":961,"title":{},"name":{"14":{},"82":{}},"text":{"7":{},"14":{},"74":{},"82":{}},"component":{}}],["bandpass_csg(f",{"_index":1180,"title":{},"name":{},"text":{"14":{},"82":{}},"component":{}}],["bandpass_csg(frequ",{"_index":1179,"title":{},"name":{},"text":{"14":{},"82":{}},"component":{}}],["bandwidth",{"_index":607,"title":{},"name":{},"text":{"4":{},"10":{},"13":{},"14":{},"19":{},"20":{},"53":{},"54":{},"57":{},"58":{},"72":{},"78":{},"81":{},"82":{},"87":{},"88":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["bandwidthlimitedoscil",{"_index":1032,"title":{"10-13":{},"78-13":{}},"name":{},"text":{"10":{},"53":{},"54":{},"57":{},"58":{},"78":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["bank_select",{"_index":1897,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["bank_select_lsb",{"_index":1927,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["base",{"_index":943,"title":{},"name":{},"text":{"7":{},"8":{},"27":{},"30":{},"31":{},"32":{},"36":{},"38":{},"39":{},"42":{},"43":{},"44":{},"46":{},"48":{},"59":{},"63":{},"64":{},"66":{},"67":{},"74":{},"76":{},"95":{},"98":{},"99":{},"100":{},"104":{},"106":{},"107":{},"110":{},"111":{},"112":{},"114":{},"116":{},"127":{},"131":{},"132":{},"134":{},"135":{}},"component":{}}],["base::index_typ",{"_index":1492,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["base::interpolation_typ",{"_index":1494,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["base::storage_typ",{"_index":1490,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["base::value_typ",{"_index":1488,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["base_frequ",{"_index":2548,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["base_typ",{"_index":2196,"title":{},"name":{},"text":{"48":{},"59":{},"60":{},"61":{},"62":{},"64":{},"116":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["base_type::base_typ",{"_index":2394,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"62":{},"64":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["basi",{"_index":1129,"title":{},"name":{},"text":{"11":{},"62":{},"79":{},"130":{}},"component":{}}],["basic",{"_index":24,"title":{"43":{},"111":{}},"name":{},"text":{"2":{},"3":{},"5":{},"8":{},"11":{},"27":{},"31":{},"35":{},"38":{},"43":{},"44":{},"45":{},"46":{},"48":{},"52":{},"54":{},"56":{},"62":{},"70":{},"71":{},"73":{},"76":{},"79":{},"95":{},"99":{},"103":{},"106":{},"111":{},"112":{},"113":{},"114":{},"116":{},"120":{},"122":{},"124":{},"130":{}},"component":{}}],["basic_concept",{"_index":1815,"title":{},"name":{"43":{},"111":{}},"text":{},"component":{}}],["basic_delay",{"_index":1476,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["basic_delay(dur",{"_index":1495,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["basic_fast_ave_envelope_follow",{"_index":1362,"title":{},"name":{},"text":{"26":{},"28":{},"94":{},"96":{}},"component":{}}],["basic_fast_ave_envelope_follower(dur",{"_index":1363,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["basic_fast_envelope_follow",{"_index":1408,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["basic_fast_envelope_follower(dur",{"_index":1410,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["basic_interv",{"_index":2462,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["basic_interval(concepts::arithmet",{"_index":2464,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["basic_moving_averag",{"_index":1540,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["basic_moving_sum",{"_index":1541,"title":{},"name":{},"text":{"32":{},"33":{},"100":{},"101":{}},"component":{}}],["basic_moving_sum(dur",{"_index":1555,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["basic_moving_sum(std::size_t",{"_index":1553,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["basic_moving_sum::basic_moving_sum",{"_index":1542,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["basic_pulse_osc",{"_index":2308,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["basic_pulse_osc(float",{"_index":2312,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["basic_pulse_osc(w",{"_index":2316,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["basic_saw",{"_index":2323,"title":{},"name":{},"text":{"54":{},"122":{}},"component":{}}],["basic_saw_osc",{"_index":2322,"title":{},"name":{},"text":{"54":{},"122":{}},"component":{}}],["basic_squar",{"_index":2369,"title":{},"name":{},"text":{"57":{},"125":{}},"component":{}}],["basic_square_osc",{"_index":2368,"title":{},"name":{},"text":{"57":{},"125":{}},"component":{}}],["basic_triangl",{"_index":2379,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["basic_triangle_osc",{"_index":2371,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["basicoscil",{"_index":1031,"title":{"10-8":{},"78-8":{}},"name":{},"text":{"10":{},"53":{},"54":{},"56":{},"57":{},"58":{},"78":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["be",{"_index":1670,"title":{},"name":{},"text":{"38":{},"43":{},"59":{},"106":{},"111":{},"127":{}},"component":{}}],["becom",{"_index":522,"title":{},"name":{},"text":{"3":{},"4":{},"55":{},"71":{},"72":{},"123":{}},"component":{}}],["befor",{"_index":587,"title":{},"name":{},"text":{"4":{},"25":{},"27":{},"29":{},"31":{},"39":{},"41":{},"48":{},"72":{},"93":{},"95":{},"97":{},"99":{},"107":{},"109":{},"116":{}},"component":{}}],["begin",{"_index":985,"title":{},"name":{},"text":{"8":{},"29":{},"38":{},"43":{},"64":{},"65":{},"76":{},"97":{},"106":{},"111":{},"132":{},"133":{}},"component":{}}],["behavior",{"_index":983,"title":{},"name":{},"text":{"8":{},"25":{},"29":{},"39":{},"41":{},"64":{},"67":{},"68":{},"76":{},"93":{},"97":{},"107":{},"109":{},"132":{},"135":{},"136":{}},"component":{}}],["behind",{"_index":698,"title":{},"name":{},"text":{"4":{},"7":{},"72":{},"74":{}},"component":{}}],["bell",{"_index":2284,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["belong",{"_index":2288,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["below",{"_index":229,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"9":{},"11":{},"18":{},"21":{},"23":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"37":{},"40":{},"41":{},"46":{},"48":{},"65":{},"66":{},"70":{},"72":{},"75":{},"77":{},"79":{},"86":{},"89":{},"91":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"102":{},"105":{},"108":{},"109":{},"114":{},"116":{},"133":{},"134":{}},"component":{}}],["bend",{"_index":1802,"title":{},"name":{},"text":{"41":{},"44":{},"109":{},"112":{}},"component":{}}],["best",{"_index":159,"title":{},"name":{},"text":{"2":{},"11":{},"70":{},"79":{}},"component":{}}],["between",{"_index":891,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"31":{},"39":{},"41":{},"45":{},"48":{},"59":{},"62":{},"64":{},"66":{},"75":{},"77":{},"78":{},"99":{},"107":{},"109":{},"113":{},"116":{},"127":{},"130":{},"132":{},"134":{}},"component":{}}],["beyond",{"_index":186,"title":{},"name":{},"text":{"2":{},"8":{},"10":{},"70":{},"76":{},"78":{}},"component":{}}],["bf",{"_index":1175,"title":{},"name":{},"text":{"13":{},"14":{},"20":{},"81":{},"82":{},"88":{}},"component":{}}],["bf.config(f",{"_index":1178,"title":{},"name":{},"text":{"13":{},"14":{},"81":{},"82":{}},"component":{}}],["bf.config(g",{"_index":1207,"title":{},"name":{},"text":{"20":{},"88":{}},"component":{}}],["binari",{"_index":1155,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["biquad",{"_index":475,"title":{"7":{},"74":{},"7-2":{},"74-2":{}},"name":{"7":{},"74":{}},"text":{"3":{},"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"71":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["biquad(biquad",{"_index":954,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["biquad(f",{"_index":957,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["bissel",{"_index":1386,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["bit",{"_index":202,"title":{},"name":{},"text":{"2":{},"38":{},"44":{},"64":{},"70":{},"106":{},"112":{},"132":{}},"component":{}}],["bk",{"_index":1455,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["bk(",{"_index":1458,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["bk.cutoff(f",{"_index":1460,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["blackman",{"_index":504,"title":{"47":{},"115":{}},"name":{},"text":{"3":{},"47":{},"48":{},"71":{},"115":{},"116":{}},"component":{}}],["blackman_downward_ramp_gen",{"_index":2152,"title":{},"name":{},"text":{"47":{},"48":{},"115":{},"116":{}},"component":{}}],["blackman_downward_ramp_gen(dur",{"_index":2153,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["blackman_gen",{"_index":2129,"title":{},"name":{"47":{},"115":{}},"text":{"47":{},"48":{},"115":{},"116":{}},"component":{}}],["blackman_gen(dur",{"_index":2144,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["blackman_gen(w",{"_index":2146,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["blackman_upward_ramp_gen",{"_index":2150,"title":{},"name":{},"text":{"47":{},"48":{},"115":{},"116":{}},"component":{}}],["blackman_upward_ramp_gen(dur",{"_index":2151,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["blamp",{"_index":2374,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["block",{"_index":28,"title":{"30":{},"98":{}},"name":{},"text":{"2":{},"3":{},"4":{},"10":{},"31":{},"35":{},"41":{},"56":{},"70":{},"71":{},"72":{},"78":{},"99":{},"103":{},"109":{},"124":{}},"component":{}}],["blocker",{"_index":1447,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["blue",{"_index":1322,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["bonu",{"_index":1420,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["bool",{"_index":1148,"title":{},"name":{},"text":{"11":{},"33":{},"34":{},"36":{},"38":{},"39":{},"41":{},"48":{},"65":{},"66":{},"79":{},"101":{},"102":{},"104":{},"106":{},"107":{},"109":{},"116":{},"133":{},"134":{}},"component":{}}],["bool(w",{"_index":1664,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["boolean",{"_index":1602,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["boost",{"_index":546,"title":{},"name":{},"text":{"3":{},"16":{},"18":{},"71":{},"84":{},"86":{}},"component":{}}],["boost.fus",{"_index":545,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["boost.phoenix",{"_index":544,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["boost.spirit",{"_index":543,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["both",{"_index":326,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"6":{},"9":{},"11":{},"22":{},"24":{},"25":{},"27":{},"29":{},"31":{},"32":{},"39":{},"43":{},"44":{},"46":{},"51":{},"55":{},"70":{},"71":{},"73":{},"75":{},"77":{},"79":{},"90":{},"92":{},"93":{},"95":{},"97":{},"99":{},"100":{},"107":{},"111":{},"112":{},"114":{},"119":{},"123":{}},"component":{}}],["box",{"_index":44,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["brace",{"_index":959,"title":{},"name":{},"text":{"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"47":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"63":{},"64":{},"65":{},"66":{},"68":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"106":{},"115":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"131":{},"132":{},"133":{},"134":{},"136":{}},"component":{}}],["break",{"_index":706,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["breath",{"_index":1900,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["breath_lsb",{"_index":1931,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["breviti",{"_index":388,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["brief",{"_index":22,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["bright",{"_index":1981,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["bring",{"_index":2423,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"127":{},"128":{},"129":{}},"component":{}}],["bristow",{"_index":945,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["browser",{"_index":574,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["buffer",{"_index":513,"title":{"46":{},"67":{},"68":{},"114":{},"135":{},"136":{}},"name":{},"text":{"3":{},"4":{},"9":{},"31":{},"32":{},"33":{},"38":{},"39":{},"42":{},"46":{},"67":{},"68":{},"71":{},"72":{},"77":{},"99":{},"100":{},"101":{},"106":{},"107":{},"110":{},"114":{},"135":{},"136":{}},"component":{}}],["buffer_view",{"_index":2115,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["buffer’",{"_index":2603,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["build",{"_index":27,"title":{"5-9":{},"73-9":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"10":{},"31":{},"35":{},"56":{},"70":{},"71":{},"72":{},"73":{},"78":{},"99":{},"103":{},"124":{}},"component":{}}],["bw",{"_index":1171,"title":{},"name":{},"text":{"13":{},"14":{},"19":{},"20":{},"81":{},"82":{},"87":{},"88":{}},"component":{}}],["bw{b",{"_index":1177,"title":{},"name":{},"text":{"13":{},"14":{},"19":{},"20":{},"81":{},"82":{},"87":{},"88":{}},"component":{}}],["byte",{"_index":1865,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["c",{"_index":86,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"7":{},"8":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"56":{},"59":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"71":{},"72":{},"73":{},"74":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"106":{},"109":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"124":{},"127":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["c++20",{"_index":822,"title":{"5-2":{},"73-2":{}},"name":{},"text":{"5":{},"73":{}},"component":{}}],["c.begin",{"_index":1826,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["c.end",{"_index":1827,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["c.size",{"_index":1821,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["c4",{"_index":2063,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["c[i",{"_index":1822,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["calcul",{"_index":1548,"title":{},"name":{},"text":{"32":{},"33":{},"55":{},"56":{},"100":{},"101":{},"123":{},"124":{}},"component":{}}],["call",{"_index":341,"title":{"7-8":{},"10-7":{},"10-12":{},"10-17":{},"10-23":{},"21-7":{},"22-7":{},"23-7":{},"24-7":{},"25-8":{},"26-8":{},"27-10":{},"28-8":{},"29-9":{},"31-10":{},"32-7":{},"33-9":{},"34-7":{},"45-7":{},"48-17":{},"55-7":{},"74-8":{},"78-7":{},"78-12":{},"78-17":{},"78-23":{},"89-7":{},"90-7":{},"91-7":{},"92-7":{},"93-8":{},"94-8":{},"95-10":{},"96-8":{},"97-9":{},"99-10":{},"100-7":{},"101-9":{},"102-7":{},"113-7":{},"116-17":{},"123-7":{}},"name":{},"text":{"2":{},"4":{},"7":{},"21":{},"22":{},"23":{},"24":{},"28":{},"39":{},"41":{},"42":{},"45":{},"48":{},"53":{},"54":{},"57":{},"58":{},"70":{},"72":{},"74":{},"89":{},"90":{},"91":{},"92":{},"96":{},"107":{},"109":{},"110":{},"113":{},"116":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["capabl",{"_index":1015,"title":{},"name":{},"text":{"9":{},"37":{},"77":{},"105":{}},"component":{}}],["capacitor",{"_index":1312,"title":{},"name":{},"text":{"25":{},"29":{},"49":{},"93":{},"97":{},"117":{}},"component":{}}],["captur",{"_index":1326,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["care",{"_index":655,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["cascad",{"_index":888,"title":{"6-4":{},"75-4":{}},"name":{},"text":{"6":{},"75":{}},"component":{}}],["case",{"_index":789,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"31":{},"35":{},"48":{},"72":{},"75":{},"78":{},"99":{},"103":{},"116":{}},"component":{}}],["catastroph",{"_index":1119,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["caus",{"_index":1083,"title":{},"name":{},"text":{"10":{},"25":{},"26":{},"29":{},"78":{},"93":{},"94":{},"97":{}},"component":{}}],["cc",{"_index":1896,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["cc::control",{"_index":2047,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["cd",{"_index":851,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["ceil",{"_index":2481,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["ceil(basic_interv",{"_index":2469,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["ceil(i",{"_index":2477,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["ceil(p",{"_index":2567,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["ceil(pitch",{"_index":2557,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["celest",{"_index":2015,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["center",{"_index":2320,"title":{},"name":{},"text":{"54":{},"122":{}},"component":{}}],["certain",{"_index":1068,"title":{},"name":{},"text":{"10":{},"11":{},"22":{},"23":{},"38":{},"78":{},"79":{},"90":{},"91":{},"106":{}},"component":{}}],["ch",{"_index":1697,"title":{},"name":{},"text":{"38":{},"46":{},"106":{},"114":{}},"component":{}}],["chamberlin’",{"_index":2328,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["chanc",{"_index":817,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["chang",{"_index":796,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"8":{},"22":{},"29":{},"32":{},"33":{},"41":{},"44":{},"45":{},"48":{},"59":{},"65":{},"72":{},"73":{},"75":{},"76":{},"90":{},"97":{},"100":{},"101":{},"109":{},"112":{},"113":{},"116":{},"127":{},"133":{}},"component":{}}],["channel",{"_index":565,"title":{},"name":{},"text":{"4":{},"9":{},"37":{},"38":{},"39":{},"41":{},"44":{},"46":{},"72":{},"77":{},"105":{},"106":{},"107":{},"109":{},"112":{},"114":{}},"component":{}}],["channel_aftertouch",{"_index":1835,"title":{"44-13":{},"112-13":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["channel_aftertouch(std::uint8_t",{"_index":2050,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["channel_volum",{"_index":1908,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["channel_volume_lsb",{"_index":1939,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["channels_view",{"_index":2118,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["char",{"_index":1684,"title":{},"name":{},"text":{"38":{},"39":{},"44":{},"106":{},"107":{},"112":{}},"component":{}}],["characterist",{"_index":998,"title":{},"name":{},"text":{"8":{},"48":{},"76":{},"116":{}},"component":{}}],["charg",{"_index":1313,"title":{},"name":{},"text":{"25":{},"29":{},"49":{},"93":{},"97":{},"117":{}},"component":{}}],["cheapli",{"_index":1636,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["check",{"_index":1722,"title":{},"name":{},"text":{"39":{},"41":{},"107":{},"109":{}},"component":{}}],["choos",{"_index":643,"title":{},"name":{},"text":{"4":{},"37":{},"40":{},"72":{},"105":{},"108":{}},"component":{}}],["chord",{"_index":2461,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["choru",{"_index":2012,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["chorus",{"_index":1474,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["chosen",{"_index":808,"title":{},"name":{},"text":{"4":{},"11":{},"27":{},"72":{},"79":{},"95":{}},"component":{}}],["chromat",{"_index":2542,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["chunk",{"_index":1669,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["circl",{"_index":2487,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["circuit",{"_index":434,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["circular",{"_index":2490,"title":{},"name":{},"text":{"64":{},"68":{},"132":{},"136":{}},"component":{}}],["clang",{"_index":838,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["clariti",{"_index":712,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["class",{"_index":135,"title":{"7-9":{},"74-9":{}},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"9":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"31":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"44":{},"45":{},"46":{},"48":{},"54":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"65":{},"67":{},"68":{},"70":{},"72":{},"74":{},"75":{},"77":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{},"96":{},"99":{},"100":{},"101":{},"102":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"112":{},"113":{},"114":{},"116":{},"122":{},"124":{},"125":{},"126":{},"127":{},"130":{},"131":{},"133":{},"135":{},"136":{}},"component":{}}],["clear",{"_index":1559,"title":{},"name":{},"text":{"33":{},"68":{},"101":{},"136":{}},"component":{}}],["client",{"_index":1028,"title":{"42-4":{},"110-4":{}},"name":{},"text":{"9":{},"39":{},"42":{},"77":{},"107":{},"110":{}},"component":{}}],["client’",{"_index":1808,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["clion",{"_index":842,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["clip",{"_index":370,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"70":{},"72":{},"73":{}},"component":{}}],["clip(filter(v",{"_index":686,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["clock",{"_index":2075,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["clone",{"_index":843,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["close",{"_index":1405,"title":{},"name":{},"text":{"27":{},"29":{},"34":{},"95":{},"97":{},"102":{}},"component":{}}],["closer",{"_index":1401,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["cmake",{"_index":824,"title":{"5-4":{},"5-5":{},"73-4":{},"73-5":{}},"name":{},"text":{"5":{},"73":{}},"component":{}}],["co",{"_index":2350,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["code",{"_index":142,"title":{"4-2":{},"72-2":{}},"name":{},"text":{"2":{},"4":{},"6":{},"48":{},"59":{},"70":{},"72":{},"75":{},"116":{},"127":{}},"component":{}}],["codeblock",{"_index":862,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["coeffici",{"_index":2335,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["coincid",{"_index":991,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["collabor",{"_index":551,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["combin",{"_index":1053,"title":{},"name":{},"text":{"10":{},"27":{},"56":{},"78":{},"95":{},"124":{}},"component":{}}],["come",{"_index":1376,"title":{},"name":{},"text":{"26":{},"27":{},"48":{},"94":{},"95":{},"116":{}},"component":{}}],["command",{"_index":874,"title":{},"name":{},"text":{"5":{},"41":{},"45":{},"73":{},"109":{},"113":{}},"component":{}}],["common",{"_index":0,"title":{},"name":{"1":{},"69":{}},"text":{"6":{},"10":{},"31":{},"32":{},"38":{},"47":{},"50":{},"51":{},"75":{},"78":{},"99":{},"100":{},"106":{},"115":{},"118":{},"119":{}},"component":{}}],["commun",{"_index":1025,"title":{},"name":{},"text":{"9":{},"41":{},"77":{},"109":{}},"component":{}}],["comp",{"_index":172,"title":{},"name":{},"text":{"2":{},"22":{},"24":{},"70":{},"90":{},"92":{}},"component":{}}],["comp(env",{"_index":171,"title":{},"name":{},"text":{"2":{},"22":{},"24":{},"70":{},"90":{},"92":{}},"component":{}}],["comp.ratio",{"_index":1264,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["comp.ratio(r",{"_index":1262,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["comp.threshold",{"_index":1263,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["comp.threshold(t",{"_index":1261,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["comp.width",{"_index":1295,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["comp.width(w",{"_index":1294,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["compar",{"_index":919,"title":{},"name":{},"text":{"6":{},"21":{},"27":{},"75":{},"89":{},"95":{}},"component":{}}],["comparison",{"_index":1110,"title":{"11-10":{},"79-10":{}},"name":{},"text":{},"component":{}}],["compat",{"_index":1142,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["compens",{"_index":1259,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["compil",{"_index":750,"title":{},"name":{},"text":{"4":{},"5":{},"72":{},"73":{}},"component":{}}],["complet",{"_index":406,"title":{},"name":{},"text":{"2":{},"4":{},"48":{},"55":{},"63":{},"64":{},"70":{},"72":{},"116":{},"123":{},"131":{},"132":{}},"component":{}}],["complex",{"_index":330,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"10":{},"26":{},"27":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"56":{},"70":{},"71":{},"72":{},"78":{},"94":{},"95":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"124":{}},"component":{}}],["compon",{"_index":360,"title":{"9-2":{},"77-2":{}},"name":{},"text":{"2":{},"6":{},"9":{},"53":{},"54":{},"57":{},"70":{},"75":{},"77":{},"121":{},"122":{},"125":{}},"component":{}}],["compos",{"_index":328,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"48":{},"70":{},"71":{},"72":{},"116":{}},"component":{}}],["composit",{"_index":349,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"26":{},"28":{},"70":{},"71":{},"72":{},"94":{},"96":{}},"component":{}}],["comprehens",{"_index":113,"title":{},"name":{},"text":{"2":{},"11":{},"70":{},"79":{}},"component":{}}],["compress",{"_index":179,"title":{},"name":{},"text":{"2":{},"6":{},"22":{},"23":{},"24":{},"70":{},"75":{},"90":{},"91":{},"92":{}},"component":{}}],["compressor",{"_index":165,"title":{"22":{},"24":{},"90":{},"92":{}},"name":{"22":{},"90":{}},"text":{"2":{},"3":{},"6":{},"11":{},"22":{},"23":{},"24":{},"27":{},"28":{},"59":{},"70":{},"71":{},"75":{},"79":{},"90":{},"91":{},"92":{},"95":{},"96":{},"127":{}},"component":{}}],["compressor(comp",{"_index":1243,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["compressor(decibel",{"_index":1239,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["compressor(t",{"_index":1242,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["compressor::operator()(decibel",{"_index":901,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["compris",{"_index":32,"title":{},"name":{},"text":{"2":{},"9":{},"10":{},"48":{},"70":{},"77":{},"78":{},"116":{}},"component":{}}],["comput",{"_index":178,"title":{},"name":{},"text":{"2":{},"6":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"32":{},"34":{},"59":{},"64":{},"66":{},"70":{},"75":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"100":{},"102":{},"127":{},"132":{},"134":{}},"component":{}}],["computation",{"_index":994,"title":{},"name":{},"text":{"8":{},"35":{},"76":{},"103":{}},"component":{}}],["conceiv",{"_index":2156,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["concept",{"_index":511,"title":{"43":{},"111":{},"11-5":{},"11-7":{},"79-5":{},"79-7":{}},"name":{},"text":{"3":{},"10":{},"11":{},"38":{},"41":{},"43":{},"45":{},"46":{},"48":{},"55":{},"59":{},"71":{},"78":{},"79":{},"106":{},"109":{},"111":{},"113":{},"114":{},"116":{},"123":{},"127":{}},"component":{}}],["concepts::midi_1_0::processor",{"_index":1772,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["concepts::processor",{"_index":2083,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["conceptu",{"_index":2093,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["concern",{"_index":917,"title":{},"name":{},"text":{"6":{},"34":{},"59":{},"75":{},"102":{},"127":{}},"component":{}}],["concret",{"_index":1807,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["condit",{"_index":364,"title":{},"name":{},"text":{"2":{},"64":{},"70":{},"132":{}},"component":{}}],["config",{"_index":2214,"title":{},"name":{},"text":{"48":{},"49":{},"116":{},"117":{}},"component":{}}],["config(doubl",{"_index":1189,"title":{},"name":{},"text":{"16":{},"18":{},"20":{},"84":{},"86":{},"88":{}},"component":{}}],["config(dur",{"_index":1336,"title":{},"name":{},"text":{"25":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"93":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{}},"component":{}}],["config(float",{"_index":2188,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config(frequ",{"_index":1166,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"17":{},"19":{},"55":{},"80":{},"81":{},"82":{},"83":{},"85":{},"87":{},"123":{}},"component":{}}],["config_",{"_index":2231,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config_.attack_r",{"_index":2232,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config_.decay_r",{"_index":2233,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config_.release_r",{"_index":2236,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config_.sustain_r",{"_index":2235,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["configur",{"_index":792,"title":{},"name":{},"text":{"4":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"42":{},"48":{},"72":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"110":{},"116":{}},"component":{}}],["conflict",{"_index":2421,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"127":{},"128":{},"129":{}},"component":{}}],["conform",{"_index":1064,"title":{},"name":{},"text":{"10":{},"11":{},"38":{},"41":{},"43":{},"45":{},"55":{},"78":{},"79":{},"106":{},"109":{},"111":{},"113":{},"123":{}},"component":{}}],["confus",{"_index":2400,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["connect",{"_index":41,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"25":{},"29":{},"70":{},"72":{},"77":{},"93":{},"97":{}},"component":{}}],["consequ",{"_index":1114,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["consid",{"_index":2266,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["consist",{"_index":1128,"title":{},"name":{},"text":{"11":{},"56":{},"79":{},"124":{}},"component":{}}],["consol",{"_index":651,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["const",{"_index":355,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"44":{},"45":{},"46":{},"48":{},"53":{},"54":{},"56":{},"57":{},"58":{},"61":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"74":{},"75":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"112":{},"113":{},"114":{},"116":{},"121":{},"122":{},"124":{},"125":{},"126":{},"129":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["constant",{"_index":259,"title":{"13":{},"14":{},"81":{},"82":{}},"name":{},"text":{"2":{},"3":{},"4":{},"13":{},"14":{},"21":{},"29":{},"59":{},"60":{},"61":{},"64":{},"70":{},"71":{},"72":{},"81":{},"82":{},"89":{},"97":{},"127":{},"128":{},"129":{},"132":{}},"component":{}}],["constexpr",{"_index":287,"title":{},"name":{},"text":{"2":{},"4":{},"44":{},"53":{},"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"70":{},"72":{},"112":{},"121":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{}},"component":{}}],["constrain",{"_index":1301,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["construct",{"_index":958,"title":{"31-6":{},"32-6":{},"33-6":{},"67-6":{},"68-6":{},"99-6":{},"100-6":{},"101-6":{},"135-6":{},"136-6":{}},"name":{},"text":{"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"44":{},"45":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"63":{},"64":{},"65":{},"66":{},"68":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"112":{},"113":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"131":{},"132":{},"133":{},"134":{},"136":{}},"component":{}}],["constructor",{"_index":788,"title":{"7-7":{},"10-6":{},"10-22":{},"10-28":{},"11-8":{},"12-6":{},"13-6":{},"14-6":{},"15-6":{},"16-6":{},"17-6":{},"18-6":{},"19-6":{},"20-6":{},"21-6":{},"22-6":{},"23-6":{},"24-6":{},"25-7":{},"26-7":{},"27-9":{},"28-7":{},"29-8":{},"30-6":{},"30-7":{},"31-9":{},"33-8":{},"34-6":{},"35-6":{},"35-7":{},"36-6":{},"37-6":{},"38-7":{},"38-13":{},"38-20":{},"39-6":{},"40-6":{},"41-6":{},"46-8":{},"47-6":{},"48-8":{},"48-24":{},"49-6":{},"50-6":{},"51-6":{},"53-6":{},"55-6":{},"59-6":{},"63-6":{},"64-6":{},"65-6":{},"66-6":{},"68-9":{},"74-7":{},"78-6":{},"78-22":{},"78-28":{},"79-8":{},"80-6":{},"81-6":{},"82-6":{},"83-6":{},"84-6":{},"85-6":{},"86-6":{},"87-6":{},"88-6":{},"89-6":{},"90-6":{},"91-6":{},"92-6":{},"93-7":{},"94-7":{},"95-9":{},"96-7":{},"97-8":{},"98-6":{},"98-7":{},"99-9":{},"101-8":{},"102-6":{},"103-6":{},"103-7":{},"104-6":{},"105-6":{},"106-7":{},"106-13":{},"106-20":{},"107-6":{},"108-6":{},"109-6":{},"114-8":{},"115-6":{},"116-8":{},"116-24":{},"117-6":{},"118-6":{},"119-6":{},"121-6":{},"123-6":{},"127-6":{},"131-6":{},"132-6":{},"133-6":{},"134-6":{},"136-9":{}},"name":{},"text":{"4":{},"7":{},"21":{},"36":{},"37":{},"40":{},"41":{},"46":{},"48":{},"49":{},"59":{},"68":{},"72":{},"74":{},"89":{},"104":{},"105":{},"108":{},"109":{},"114":{},"116":{},"117":{},"127":{},"136":{}},"component":{}}],["consum",{"_index":1731,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["contain",{"_index":104,"title":{},"name":{},"text":{"2":{},"4":{},"26":{},"28":{},"43":{},"46":{},"48":{},"70":{},"72":{},"94":{},"96":{},"111":{},"114":{},"116":{}},"component":{}}],["content",{"_index":423,"title":{"3-2":{},"71-2":{}},"name":{},"text":{"3":{},"33":{},"41":{},"44":{},"45":{},"71":{},"101":{},"109":{},"112":{},"113":{}},"component":{}}],["context",{"_index":1039,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["contigu",{"_index":2091,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["continu",{"_index":459,"title":{},"name":{},"text":{"3":{},"33":{},"60":{},"64":{},"65":{},"71":{},"101":{},"128":{},"132":{},"133":{}},"component":{}}],["continue_",{"_index":1841,"title":{"44-20":{},"112-20":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["contrast",{"_index":175,"title":{},"name":{},"text":{"2":{},"21":{},"23":{},"59":{},"70":{},"89":{},"91":{},"127":{}},"component":{}}],["control",{"_index":609,"title":{},"name":{},"text":{"4":{},"8":{},"10":{},"21":{},"31":{},"41":{},"44":{},"45":{},"55":{},"72":{},"76":{},"78":{},"89":{},"99":{},"109":{},"112":{},"113":{},"123":{}},"component":{}}],["control_chang",{"_index":1833,"title":{"44-11":{},"112-11":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["convers",{"_index":221,"title":{"59-7":{},"60-6":{},"61-6":{},"62-7":{},"63-7":{},"64-7":{},"66-7":{},"127-7":{},"128-6":{},"129-6":{},"130-7":{},"131-7":{},"132-7":{},"134-7":{}},"name":{},"text":{"2":{},"28":{},"44":{},"59":{},"66":{},"70":{},"96":{},"112":{},"127":{},"134":{}},"component":{}}],["convert",{"_index":223,"title":{},"name":{},"text":{"2":{},"21":{},"22":{},"23":{},"24":{},"38":{},"43":{},"44":{},"45":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"70":{},"89":{},"90":{},"91":{},"92":{},"106":{},"111":{},"112":{},"113":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{}},"component":{}}],["cookbook",{"_index":948,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["copi",{"_index":933,"title":{"7-7":{},"74-7":{}},"name":{},"text":{"7":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"37":{},"40":{},"46":{},"48":{},"65":{},"68":{},"74":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"105":{},"108":{},"114":{},"116":{},"133":{},"136":{}},"component":{}}],["copyabl",{"_index":1663,"title":{},"name":{},"text":{"38":{},"39":{},"41":{},"106":{},"107":{},"109":{}},"component":{}}],["copyright",{"_index":409,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["core",{"_index":49,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["corner",{"_index":2373,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["correct",{"_index":735,"title":{},"name":{},"text":{"4":{},"53":{},"54":{},"57":{},"58":{},"59":{},"72":{},"121":{},"122":{},"125":{},"126":{},"127":{}},"component":{}}],["correspond",{"_index":391,"title":{},"name":{},"text":{"2":{},"6":{},"46":{},"59":{},"64":{},"66":{},"70":{},"75":{},"114":{},"127":{},"132":{},"134":{}},"component":{}}],["cos(2pi*n/(n",{"_index":2140,"title":{},"name":{},"text":{"47":{},"50":{},"115":{},"118":{}},"component":{}}],["cos(2pin/(n",{"_index":2292,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["cos(4pi*n/(n",{"_index":2142,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["cosin",{"_index":503,"title":{"55":{},"123":{}},"name":{},"text":{"3":{},"51":{},"55":{},"71":{},"119":{},"123":{}},"component":{}}],["cost",{"_index":1377,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["count",{"_index":2532,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["counter",{"_index":2501,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["counterpart",{"_index":920,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["coupl",{"_index":60,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["cours",{"_index":1396,"title":{},"name":{},"text":{"27":{},"48":{},"95":{},"116":{}},"component":{}}],["cover",{"_index":722,"title":{},"name":{},"text":{"4":{},"8":{},"72":{},"76":{}},"component":{}}],["cpp",{"_index":612,"title":{},"name":{},"text":{"4":{},"59":{},"60":{},"61":{},"72":{},"127":{},"128":{},"129":{}},"component":{}}],["cpu",{"_index":1730,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["cpu_load",{"_index":1710,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["creat",{"_index":804,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"31":{},"48":{},"56":{},"59":{},"60":{},"61":{},"72":{},"75":{},"78":{},"99":{},"116":{},"124":{},"127":{},"128":{},"129":{}},"component":{}}],["creation",{"_index":1035,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["creativ",{"_index":898,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["critic",{"_index":1612,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["cross",{"_index":38,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"70":{},"71":{},"77":{}},"component":{}}],["crucial",{"_index":1117,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["ctrl",{"_index":814,"title":{},"name":{},"text":{"4":{},"44":{},"72":{},"112":{}},"component":{}}],["current",{"_index":570,"title":{},"name":{},"text":{"4":{},"5":{},"27":{},"32":{},"33":{},"34":{},"37":{},"38":{},"39":{},"40":{},"44":{},"45":{},"47":{},"48":{},"50":{},"51":{},"55":{},"64":{},"65":{},"72":{},"73":{},"95":{},"100":{},"101":{},"102":{},"105":{},"106":{},"107":{},"108":{},"112":{},"113":{},"115":{},"116":{},"118":{},"119":{},"123":{},"132":{},"133":{}},"component":{}}],["curv",{"_index":1315,"title":{},"name":{},"text":{"25":{},"29":{},"47":{},"49":{},"51":{},"93":{},"97":{},"115":{},"117":{},"119":{}},"component":{}}],["curvatur",{"_index":2260,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["cut",{"_index":2182,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["cutoff",{"_index":598,"title":{},"name":{},"text":{"4":{},"8":{},"23":{},"30":{},"35":{},"72":{},"76":{},"91":{},"98":{},"103":{}},"component":{}}],["cutoff(frequ",{"_index":1454,"title":{},"name":{},"text":{"30":{},"35":{},"98":{},"103":{}},"component":{}}],["cv",{"_index":2261,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["cval",{"_index":2352,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["cw",{"_index":2270,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["cyc",{"_index":2494,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["cycfi",{"_index":535,"title":{},"name":{},"text":{"3":{},"5":{},"71":{},"73":{}},"component":{}}],["cycfi::q",{"_index":138,"title":{},"name":{},"text":{"2":{},"37":{},"40":{},"70":{},"105":{},"108":{}},"component":{}}],["cycfi::q::concept",{"_index":1055,"title":{},"name":{},"text":{"10":{},"11":{},"43":{},"45":{},"78":{},"79":{},"111":{},"113":{}},"component":{}}],["cycfi::q::concepts::midi_1_0",{"_index":2070,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["cycfi::q::liter",{"_index":2424,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"127":{},"128":{},"129":{}},"component":{}}],["cycfi::q::midi_1_0",{"_index":1849,"title":{},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["cycl",{"_index":188,"title":{},"name":{},"text":{"2":{},"27":{},"29":{},"39":{},"61":{},"63":{},"64":{},"65":{},"70":{},"95":{},"97":{},"107":{},"129":{},"131":{},"132":{},"133":{}},"component":{}}],["cycle’",{"_index":1436,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["d",{"_index":1168,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"31":{},"33":{},"38":{},"59":{},"60":{},"61":{},"63":{},"64":{},"67":{},"68":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"99":{},"101":{},"106":{},"127":{},"128":{},"129":{},"131":{},"132":{},"135":{},"136":{}},"component":{}}],["d(i",{"_index":1510,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d(val",{"_index":1511,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type",{"_index":1500,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type(d",{"_index":1509,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type(max_delay",{"_index":1508,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type::index_typ",{"_index":1502,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type::interpolation_typ",{"_index":1506,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type::storage_typ",{"_index":1505,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type::value_typ",{"_index":1501,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["dac",{"_index":74,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["dark",{"_index":1324,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["data",{"_index":7,"title":{"2-5":{},"9-2":{},"70-5":{},"77-2":{}},"name":{},"text":{"2":{},"9":{},"11":{},"32":{},"33":{},"38":{},"41":{},"43":{},"44":{},"45":{},"56":{},"64":{},"67":{},"68":{},"70":{},"77":{},"79":{},"100":{},"101":{},"106":{},"109":{},"111":{},"112":{},"113":{},"124":{},"132":{},"135":{},"136":{}},"component":{}}],["data[1",{"_index":1895,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data[s",{"_index":1854,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data_dec",{"_index":2022,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data_entri",{"_index":1906,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data_entry_lsb",{"_index":1937,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data_inc",{"_index":2020,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["daw",{"_index":81,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["db",{"_index":209,"title":{},"name":{},"text":{"2":{},"11":{},"13":{},"22":{},"23":{},"24":{},"28":{},"36":{},"59":{},"70":{},"79":{},"81":{},"90":{},"91":{},"92":{},"96":{},"104":{},"127":{}},"component":{}}],["db_gain",{"_index":1188,"title":{},"name":{},"text":{"16":{},"18":{},"20":{},"84":{},"86":{},"88":{}},"component":{}}],["dc",{"_index":496,"title":{"30":{},"98":{}},"name":{},"text":{"3":{},"30":{},"71":{},"98":{}},"component":{}}],["dc_block",{"_index":1446,"title":{},"name":{"30":{},"98":{}},"text":{"30":{},"98":{}},"component":{}}],["dc_block(b",{"_index":1457,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["dc_block(f",{"_index":1456,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["dc_block(frequ",{"_index":1453,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["de",{"_index":413,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["deal",{"_index":759,"title":{},"name":{},"text":{"4":{},"8":{},"72":{},"76":{}},"component":{}}],["decay",{"_index":801,"title":{},"name":{},"text":{"4":{},"10":{},"25":{},"27":{},"29":{},"48":{},"72":{},"78":{},"93":{},"95":{},"97":{},"116":{}},"component":{}}],["decay_r",{"_index":2217,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["decay_rate(dur",{"_index":2226,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["decibel",{"_index":13,"title":{"59":{},"127":{},"2-10":{},"70-10":{}},"name":{"59":{},"127":{}},"text":{"2":{},"3":{},"6":{},"11":{},"16":{},"18":{},"20":{},"21":{},"22":{},"23":{},"24":{},"28":{},"34":{},"36":{},"48":{},"59":{},"70":{},"71":{},"75":{},"79":{},"84":{},"86":{},"88":{},"89":{},"90":{},"91":{},"92":{},"96":{},"102":{},"104":{},"116":{},"127":{}},"component":{}}],["decibel(env",{"_index":382,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["decibel_unit",{"_index":2392,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["decibel{6.0",{"_index":2399,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["declar",{"_index":334,"title":{"7-4":{},"10-3":{},"10-9":{},"10-14":{},"10-19":{},"10-25":{},"12-3":{},"13-3":{},"14-3":{},"15-3":{},"16-3":{},"17-3":{},"18-3":{},"19-3":{},"20-3":{},"21-3":{},"22-3":{},"23-3":{},"24-3":{},"25-4":{},"26-4":{},"27-6":{},"28-4":{},"29-5":{},"30-3":{},"31-3":{},"32-3":{},"33-3":{},"34-3":{},"35-3":{},"36-3":{},"37-3":{},"38-4":{},"38-10":{},"38-17":{},"39-3":{},"40-3":{},"41-3":{},"42-3":{},"43-4":{},"43-6":{},"43-8":{},"45-4":{},"46-4":{},"47-3":{},"47-9":{},"48-5":{},"48-14":{},"48-22":{},"49-3":{},"50-3":{},"51-3":{},"51-9":{},"52-3":{},"53-3":{},"54-3":{},"55-3":{},"56-3":{},"57-3":{},"58-3":{},"59-3":{},"60-3":{},"61-3":{},"62-3":{},"63-3":{},"64-3":{},"65-3":{},"66-3":{},"67-3":{},"68-3":{},"74-4":{},"78-3":{},"78-9":{},"78-14":{},"78-19":{},"78-25":{},"80-3":{},"81-3":{},"82-3":{},"83-3":{},"84-3":{},"85-3":{},"86-3":{},"87-3":{},"88-3":{},"89-3":{},"90-3":{},"91-3":{},"92-3":{},"93-4":{},"94-4":{},"95-6":{},"96-4":{},"97-5":{},"98-3":{},"99-3":{},"100-3":{},"101-3":{},"102-3":{},"103-3":{},"104-3":{},"105-3":{},"106-4":{},"106-10":{},"106-17":{},"107-3":{},"108-3":{},"109-3":{},"110-3":{},"111-4":{},"111-6":{},"111-8":{},"113-4":{},"114-4":{},"115-3":{},"115-9":{},"116-5":{},"116-14":{},"116-22":{},"117-3":{},"118-3":{},"119-3":{},"119-9":{},"120-3":{},"121-3":{},"122-3":{},"123-3":{},"124-3":{},"125-3":{},"126-3":{},"127-3":{},"128-3":{},"129-3":{},"130-3":{},"131-3":{},"132-3":{},"133-3":{},"134-3":{},"135-3":{},"136-3":{}},"name":{},"text":{"2":{},"11":{},"31":{},"32":{},"33":{},"38":{},"39":{},"70":{},"79":{},"99":{},"100":{},"101":{},"106":{},"107":{}},"component":{}}],["decltype(a.ref",{"_index":1159,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["decltype(g(pi",{"_index":1094,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["decltype(o(ph",{"_index":1074,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["decltype(o(pi",{"_index":1066,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["decoupl",{"_index":1477,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["decreas",{"_index":1212,"title":{},"name":{},"text":{"21":{},"23":{},"59":{},"89":{},"91":{},"127":{}},"component":{}}],["decrement",{"_index":2024,"title":{},"name":{},"text":{"44":{},"65":{},"112":{},"133":{}},"component":{}}],["dedic",{"_index":2089,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["default",{"_index":882,"title":{"41-7":{},"109-7":{}},"name":{},"text":{"5":{},"7":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"33":{},"37":{},"38":{},"39":{},"41":{},"42":{},"44":{},"45":{},"48":{},"49":{},"64":{},"65":{},"66":{},"68":{},"73":{},"74":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"101":{},"105":{},"106":{},"107":{},"109":{},"110":{},"112":{},"113":{},"116":{},"117":{},"132":{},"133":{},"134":{},"136":{}},"component":{}}],["default_sample_r",{"_index":1632,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["defautl",{"_index":2242,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["defin",{"_index":31,"title":{},"name":{},"text":{"2":{},"4":{},"11":{},"39":{},"41":{},"45":{},"48":{},"70":{},"72":{},"79":{},"107":{},"109":{},"113":{},"116":{}},"component":{}}],["definit",{"_index":312,"title":{"11-6":{},"46-7":{},"79-6":{},"114-7":{}},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["delay",{"_index":491,"title":{"31":{},"99":{}},"name":{"31":{},"99":{}},"text":{"3":{},"4":{},"31":{},"32":{},"39":{},"48":{},"71":{},"72":{},"99":{},"100":{},"107":{},"116":{}},"component":{}}],["delet",{"_index":1659,"title":{"66-9":{},"134-9":{}},"name":{},"text":{"38":{},"59":{},"66":{},"106":{},"127":{},"134":{}},"component":{}}],["delta",{"_index":1087,"title":{},"name":{},"text":{"10":{},"36":{},"78":{},"104":{}},"component":{}}],["demand",{"_index":995,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["demo",{"_index":650,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["demonstr",{"_index":107,"title":{},"name":{},"text":{"2":{},"27":{},"70":{},"95":{}},"component":{}}],["depend",{"_index":3,"title":{"2-2":{},"70-2":{}},"name":{},"text":{"2":{},"5":{},"23":{},"25":{},"27":{},"29":{},"42":{},"64":{},"70":{},"73":{},"91":{},"93":{},"95":{},"97":{},"110":{},"132":{}},"component":{}}],["depict",{"_index":1010,"title":{},"name":{},"text":{"9":{},"25":{},"29":{},"48":{},"77":{},"93":{},"97":{},"116":{}},"component":{}}],["depth",{"_index":2009,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["deriv",{"_index":924,"title":{"7-9":{},"74-9":{}},"name":{},"text":{"6":{},"21":{},"38":{},"39":{},"42":{},"45":{},"55":{},"58":{},"75":{},"89":{},"106":{},"107":{},"110":{},"113":{},"123":{},"126":{}},"component":{}}],["describ",{"_index":431,"title":{},"name":{},"text":{"3":{},"47":{},"71":{},"115":{}},"component":{}}],["design",{"_index":435,"title":{},"name":{},"text":{"3":{},"6":{},"10":{},"34":{},"46":{},"71":{},"75":{},"78":{},"102":{},"114":{}},"component":{}}],["desir",{"_index":588,"title":{},"name":{},"text":{"4":{},"5":{},"22":{},"23":{},"24":{},"39":{},"64":{},"72":{},"73":{},"90":{},"91":{},"92":{},"107":{},"132":{}},"component":{}}],["destruct",{"_index":2602,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["detail",{"_index":717,"title":{},"name":{},"text":{"4":{},"7":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"72":{},"74":{},"89":{},"90":{},"91":{},"92":{},"93":{},"95":{}},"component":{}}],["detect",{"_index":130,"title":{},"name":{},"text":{"2":{},"5":{},"8":{},"25":{},"26":{},"27":{},"28":{},"29":{},"70":{},"73":{},"76":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["detector",{"_index":1330,"title":{},"name":{},"text":{"25":{},"27":{},"28":{},"93":{},"95":{},"96":{}},"component":{}}],["determin",{"_index":53,"title":{},"name":{},"text":{"2":{},"8":{},"49":{},"65":{},"66":{},"70":{},"76":{},"117":{},"133":{},"134":{}},"component":{}}],["detun",{"_index":2016,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["dev",{"_index":866,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["develop",{"_index":458,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["devic",{"_index":517,"title":{"41-7":{},"109-7":{}},"name":{},"text":{"3":{},"4":{},"5":{},"9":{},"37":{},"39":{},"40":{},"41":{},"45":{},"71":{},"72":{},"73":{},"77":{},"105":{},"107":{},"108":{},"109":{},"113":{}},"component":{}}],["device.id",{"_index":1649,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["device.input_channel",{"_index":1653,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["device.nam",{"_index":1652,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["device.num_input",{"_index":1764,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["device.num_output",{"_index":1765,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["device.output_channel",{"_index":1654,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["device_id",{"_index":671,"title":{},"name":{},"text":{"4":{},"37":{},"72":{},"105":{}},"component":{}}],["device_list",{"_index":1625,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["device’",{"_index":1716,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["diagram",{"_index":925,"title":{},"name":{},"text":{"6":{},"9":{},"48":{},"75":{},"77":{},"116":{}},"component":{}}],["differ",{"_index":216,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"8":{},"11":{},"21":{},"22":{},"23":{},"24":{},"36":{},"59":{},"70":{},"72":{},"75":{},"76":{},"79":{},"89":{},"90":{},"91":{},"92":{},"104":{},"127":{}},"component":{}}],["differnt",{"_index":1140,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["digit",{"_index":82,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"30":{},"46":{},"47":{},"55":{},"70":{},"71":{},"77":{},"98":{},"114":{},"115":{},"123":{}},"component":{}}],["dimens",{"_index":2095,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["dimension",{"_index":2094,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["dimensionless",{"_index":429,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["din",{"_index":637,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["diod",{"_index":1308,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["direct",{"_index":71,"title":{},"name":{},"text":{"2":{},"11":{},"59":{},"60":{},"61":{},"65":{},"70":{},"79":{},"127":{},"128":{},"129":{},"133":{}},"component":{}}],["directli",{"_index":873,"title":{},"name":{},"text":{"5":{},"6":{},"34":{},"42":{},"46":{},"73":{},"75":{},"102":{},"110":{},"114":{}},"component":{}}],["directori",{"_index":89,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"70":{},"72":{},"73":{}},"component":{}}],["disastr",{"_index":218,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["discharg",{"_index":1314,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["discherg",{"_index":2262,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["discontinu",{"_index":737,"title":{},"name":{},"text":{"4":{},"10":{},"47":{},"53":{},"54":{},"57":{},"58":{},"65":{},"72":{},"78":{},"115":{},"121":{},"122":{},"125":{},"126":{},"133":{}},"component":{}}],["dispatch",{"_index":1767,"title":{"45-9":{},"113-9":{}},"name":{},"text":{"41":{},"45":{},"109":{},"113":{}},"component":{}}],["dispatch(raw_messag",{"_index":2084,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["disregard",{"_index":2174,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["disrupt",{"_index":2403,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["distanc",{"_index":2457,"title":{},"name":{},"text":{"62":{},"66":{},"130":{},"134":{}},"component":{}}],["distinct",{"_index":996,"title":{},"name":{},"text":{"8":{},"48":{},"76":{},"116":{}},"component":{}}],["distinguish",{"_index":1139,"title":{},"name":{},"text":{"11":{},"13":{},"14":{},"19":{},"20":{},"45":{},"79":{},"81":{},"82":{},"87":{},"88":{},"113":{}},"component":{}}],["distort",{"_index":526,"title":{},"name":{},"text":{"3":{},"26":{},"29":{},"71":{},"94":{},"97":{}},"component":{}}],["distribut",{"_index":417,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["div",{"_index":1365,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["divid",{"_index":1153,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["divis",{"_index":1154,"title":{},"name":{},"text":{"11":{},"28":{},"79":{},"96":{}},"component":{}}],["doc",{"_index":90,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["document",{"_index":101,"title":{},"name":{},"text":{"2":{},"9":{},"11":{},"30":{},"70":{},"77":{},"79":{},"98":{}},"component":{}}],["domain",{"_index":163,"title":{},"name":{},"text":{"2":{},"6":{},"11":{},"21":{},"22":{},"23":{},"24":{},"26":{},"28":{},"32":{},"59":{},"70":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"94":{},"96":{},"100":{},"127":{}},"component":{}}],["done",{"_index":910,"title":{},"name":{},"text":{"6":{},"21":{},"22":{},"23":{},"24":{},"75":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["doubl",{"_index":185,"title":{},"name":{},"text":{"2":{},"4":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"31":{},"37":{},"39":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"70":{},"72":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"99":{},"105":{},"107":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{}},"component":{}}],["down",{"_index":707,"title":{},"name":{},"text":{"4":{},"23":{},"48":{},"58":{},"72":{},"91":{},"116":{},"126":{}},"component":{}}],["downsiz",{"_index":1578,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["downward",{"_index":1098,"title":{},"name":{},"text":{"10":{},"23":{},"29":{},"47":{},"51":{},"78":{},"91":{},"97":{},"115":{},"119":{}},"component":{}}],["dpkg",{"_index":859,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["drag",{"_index":829,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["dread",{"_index":1521,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["drift",{"_index":2345,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["driver",{"_index":657,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["drop",{"_index":1304,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["dsp",{"_index":19,"title":{"3":{},"71":{},"4-2":{},"72-2":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"10":{},"11":{},"22":{},"24":{},"31":{},"32":{},"43":{},"44":{},"45":{},"47":{},"49":{},"50":{},"51":{},"52":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"78":{},"79":{},"90":{},"92":{},"99":{},"100":{},"111":{},"112":{},"113":{},"115":{},"117":{},"118":{},"119":{},"120":{}},"component":{}}],["dt",{"_index":731,"title":{},"name":{},"text":{"4":{},"10":{},"53":{},"54":{},"57":{},"58":{},"72":{},"78":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["due",{"_index":1354,"title":{},"name":{},"text":{"26":{},"32":{},"35":{},"55":{},"94":{},"100":{},"103":{},"123":{}},"component":{}}],["durat",{"_index":12,"title":{"60":{},"128":{},"2-9":{},"70-9":{}},"name":{"60":{},"128":{}},"text":{"2":{},"3":{},"4":{},"10":{},"11":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"33":{},"36":{},"39":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"60":{},"63":{},"70":{},"71":{},"72":{},"78":{},"79":{},"93":{},"94":{},"95":{},"96":{},"97":{},"99":{},"101":{},"104":{},"107":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"128":{},"131":{}},"component":{}}],["duration::dur",{"_index":2482,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["duration_unit",{"_index":2425,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["dure",{"_index":1299,"title":{},"name":{},"text":{"25":{},"29":{},"48":{},"93":{},"97":{},"116":{}},"component":{}}],["dynam",{"_index":164,"title":{"6":{},"75":{}},"name":{"6":{},"75":{}},"text":{"2":{},"3":{},"6":{},"8":{},"11":{},"21":{},"22":{},"23":{},"24":{},"28":{},"29":{},"31":{},"34":{},"59":{},"70":{},"71":{},"75":{},"76":{},"79":{},"89":{},"90":{},"91":{},"92":{},"96":{},"97":{},"99":{},"102":{},"127":{}},"component":{}}],["dynamic_smooth",{"_index":397,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["e",{"_index":1319,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"43":{},"93":{},"95":{},"97":{},"111":{}},"component":{}}],["e.g",{"_index":249,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"21":{},"22":{},"23":{},"24":{},"31":{},"32":{},"33":{},"48":{},"59":{},"67":{},"68":{},"70":{},"72":{},"73":{},"89":{},"90":{},"91":{},"92":{},"99":{},"100":{},"101":{},"116":{},"127":{},"135":{},"136":{}},"component":{}}],["each",{"_index":986,"title":{},"name":{},"text":{"8":{},"9":{},"11":{},"25":{},"27":{},"33":{},"37":{},"40":{},"46":{},"48":{},"64":{},"65":{},"66":{},"76":{},"77":{},"79":{},"93":{},"95":{},"101":{},"105":{},"108":{},"114":{},"116":{},"132":{},"133":{},"134":{}},"component":{}}],["eas",{"_index":614,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["easi",{"_index":64,"title":{},"name":{},"text":{"2":{},"4":{},"28":{},"70":{},"72":{},"96":{}},"component":{}}],["easier",{"_index":922,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["easili",{"_index":77,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["echo",{"_index":1466,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["edg",{"_index":1361,"title":{},"name":{},"text":{"26":{},"47":{},"50":{},"94":{},"115":{},"118":{}},"component":{}}],["editor",{"_index":639,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["efer",{"_index":967,"title":{},"name":{},"text":{"8":{}},"component":{}}],["effect",{"_index":128,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"22":{},"23":{},"24":{},"26":{},"28":{},"30":{},"31":{},"42":{},"44":{},"53":{},"54":{},"56":{},"57":{},"58":{},"70":{},"71":{},"72":{},"74":{},"75":{},"90":{},"91":{},"92":{},"94":{},"96":{},"98":{},"99":{},"110":{},"112":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["effect_1",{"_index":1915,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effect_1_lsb",{"_index":1947,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effect_2",{"_index":1917,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effect_2_lsb",{"_index":1949,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_1_depth",{"_index":2002,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_2_depth",{"_index":2006,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_3_depth",{"_index":2010,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_4_depth",{"_index":2013,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_5_depth",{"_index":2017,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effici",{"_index":440,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"32":{},"33":{},"35":{},"46":{},"56":{},"58":{},"68":{},"71":{},"72":{},"74":{},"75":{},"100":{},"101":{},"103":{},"114":{},"124":{},"126":{},"136":{}},"component":{}}],["effort",{"_index":552,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["elabor",{"_index":605,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["electron",{"_index":308,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["eleg",{"_index":437,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["element",{"_index":656,"title":{},"name":{},"text":{"4":{},"8":{},"31":{},"32":{},"33":{},"38":{},"43":{},"46":{},"67":{},"68":{},"72":{},"76":{},"99":{},"100":{},"101":{},"106":{},"111":{},"114":{},"135":{},"136":{}},"component":{}}],["elimin",{"_index":897,"title":{},"name":{},"text":{"6":{},"28":{},"30":{},"34":{},"64":{},"75":{},"96":{},"98":{},"102":{},"132":{}},"component":{}}],["ellips",{"_index":2492,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["embodi",{"_index":1163,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"28":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"96":{}},"component":{}}],["emphas",{"_index":975,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["emphasi",{"_index":704,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["employ",{"_index":1283,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["enabl",{"_index":1038,"title":{},"name":{},"text":{"10":{},"25":{},"27":{},"29":{},"78":{},"93":{},"95":{},"97":{}},"component":{}}],["encapsul",{"_index":352,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"40":{},"44":{},"70":{},"72":{},"77":{},"108":{},"112":{}},"component":{}}],["encod",{"_index":1862,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["end",{"_index":1824,"title":{},"name":{},"text":{"43":{},"48":{},"51":{},"64":{},"65":{},"111":{},"116":{},"119":{},"132":{},"133":{}},"component":{}}],["endian",{"_index":1864,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["endl",{"_index":1651,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["endpoint",{"_index":2273,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["enforc",{"_index":1116,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["engag",{"_index":1034,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["engin",{"_index":534,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["enhanc",{"_index":896,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["enjoy",{"_index":524,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["enough",{"_index":263,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["ensur",{"_index":1079,"title":{},"name":{},"text":{"10":{},"22":{},"32":{},"33":{},"78":{},"90":{},"100":{},"101":{}},"component":{}}],["enter",{"_index":811,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["entir",{"_index":1009,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["entiti",{"_index":136,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["enum",{"_index":1871,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["enumer",{"_index":1870,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["env",{"_index":374,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"34":{},"36":{},"70":{},"72":{},"75":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"102":{},"104":{}},"component":{}}],["env(",{"_index":1346,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["env(env_cfg",{"_index":673,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["env.attack(atk",{"_index":1348,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["env.config(atk",{"_index":1347,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["env.release(rel",{"_index":1349,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["env_",{"_index":683,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["env_cfg",{"_index":670,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["env_db",{"_index":381,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["env_gen",{"_index":2240,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["env_t",{"_index":1378,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"component":{}}],["env_t(env",{"_index":1380,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"component":{}}],["env_t(hold",{"_index":1379,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"component":{}}],["envelop",{"_index":158,"title":{"8":{},"25":{},"26":{},"27":{},"28":{},"29":{},"48":{},"76":{},"93":{},"94":{},"95":{},"96":{},"97":{},"116":{},"29-3":{},"48-3":{},"48-12":{},"48-20":{},"97-3":{},"116-3":{},"116-12":{},"116-20":{}},"name":{"8":{},"76":{}},"text":{"2":{},"3":{},"4":{},"6":{},"8":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"34":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"59":{},"70":{},"71":{},"72":{},"75":{},"76":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"102":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"127":{}},"component":{}}],["envelope::config",{"_index":793,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["envelope_follow",{"_index":404,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["envelope_gen",{"_index":2155,"title":{},"name":{"48":{},"116":{}},"text":{"48":{},"116":{}},"component":{}}],["envelope_gen(t",{"_index":2197,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope_gen::reset",{"_index":2205,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope_seg",{"_index":2184,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope_segment(",{"_index":2191,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope_segment(envelope_seg",{"_index":2185,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope’",{"_index":765,"title":{},"name":{},"text":{"4":{},"26":{},"36":{},"72":{},"94":{},"104":{}},"component":{}}],["eq",{"_index":947,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["equal",{"_index":1147,"title":{},"name":{},"text":{"11":{},"26":{},"27":{},"62":{},"66":{},"79":{},"94":{},"95":{},"130":{},"134":{}},"component":{}}],["equival",{"_index":258,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"10":{},"54":{},"55":{},"56":{},"57":{},"58":{},"64":{},"70":{},"72":{},"75":{},"78":{},"122":{},"123":{},"124":{},"125":{},"126":{},"132":{}},"component":{}}],["erron",{"_index":1124,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["error",{"_index":1120,"title":{},"name":{},"text":{"11":{},"32":{},"33":{},"39":{},"55":{},"59":{},"79":{},"100":{},"101":{},"107":{},"123":{},"127":{}},"component":{}}],["especi",{"_index":447,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["essenti",{"_index":923,"title":{},"name":{},"text":{"6":{},"8":{},"10":{},"26":{},"28":{},"31":{},"43":{},"44":{},"45":{},"46":{},"52":{},"64":{},"75":{},"76":{},"78":{},"94":{},"96":{},"99":{},"111":{},"112":{},"113":{},"114":{},"120":{},"132":{}},"component":{}}],["etc",{"_index":195,"title":{},"name":{},"text":{"2":{},"48":{},"70":{},"116":{}},"component":{}}],["evalu",{"_index":1000,"title":{},"name":{},"text":{"8":{},"38":{},"76":{},"106":{}},"component":{}}],["even",{"_index":728,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"72":{},"75":{},"78":{}},"component":{}}],["event",{"_index":758,"title":{},"name":{},"text":{"4":{},"61":{},"63":{},"72":{},"129":{},"131":{}},"component":{}}],["everyth",{"_index":519,"title":{},"name":{},"text":{"3":{},"5":{},"71":{},"73":{}},"component":{}}],["everywher",{"_index":139,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["evolv",{"_index":460,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["exact",{"_index":1480,"title":{},"name":{},"text":{"31":{},"62":{},"99":{},"130":{}},"component":{}}],["exact_interv",{"_index":2471,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["exactli",{"_index":1532,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["exampl",{"_index":10,"title":{"2-7":{},"6-2":{},"31-7":{},"37-9":{},"39-9":{},"40-9":{},"41-10":{},"48-10":{},"67-7":{},"68-7":{},"70-7":{},"75-2":{},"99-7":{},"105-9":{},"107-9":{},"108-9":{},"109-10":{},"116-10":{},"135-7":{},"136-7":{}},"name":{},"text":{"2":{},"4":{},"5":{},"6":{},"8":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"32":{},"36":{},"42":{},"44":{},"45":{},"46":{},"48":{},"59":{},"60":{},"61":{},"70":{},"72":{},"73":{},"75":{},"76":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"97":{},"100":{},"104":{},"110":{},"112":{},"113":{},"114":{},"116":{},"127":{},"128":{},"129":{}},"component":{}}],["example/delay.cpp",{"_index":559,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["example/square_synth.cpp",{"_index":615,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["exce",{"_index":907,"title":{},"name":{},"text":{"6":{},"22":{},"33":{},"36":{},"64":{},"65":{},"75":{},"90":{},"101":{},"104":{},"132":{},"133":{}},"component":{}}],["exceed",{"_index":1234,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["except",{"_index":84,"title":{},"name":{},"text":{"2":{},"7":{},"70":{},"74":{}},"component":{}}],["execut",{"_index":872,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["exemplifi",{"_index":721,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["exhibit",{"_index":2344,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["exist",{"_index":2404,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["exit",{"_index":812,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["exp",{"_index":1268,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp(env",{"_index":1276,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp.ratio",{"_index":1281,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp.ratio(r",{"_index":1279,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp.threshold",{"_index":1280,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp.threshold(t",{"_index":1278,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp_downward_ramp_gen",{"_index":2162,"title":{},"name":{},"text":{"48":{},"49":{},"116":{},"117":{}},"component":{}}],["exp_downward_ramp_gen(w",{"_index":2271,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["exp_upward_ramp_gen",{"_index":2243,"title":{},"name":{},"text":{"48":{},"49":{},"116":{},"117":{}},"component":{}}],["exp_upward_ramp_gen(dur",{"_index":2263,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["exp_upward_ramp_gen(w",{"_index":2269,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["exp_upward_ramp_gen::exp_upward_ramp_gen",{"_index":2265,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["expand",{"_index":166,"title":{"23":{},"91":{}},"name":{"23":{},"91":{}},"text":{"2":{},"3":{},"6":{},"11":{},"23":{},"28":{},"70":{},"71":{},"75":{},"79":{},"91":{},"96":{}},"component":{}}],["expander(decibel",{"_index":1267,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["expander(exp",{"_index":1271,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["expander(t",{"_index":1269,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["expans",{"_index":894,"title":{},"name":{},"text":{"6":{},"23":{},"75":{},"91":{}},"component":{}}],["expens",{"_index":1440,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["experiment",{"_index":452,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["explanatori",{"_index":2246,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["explicit",{"_index":1661,"title":{},"name":{},"text":{"38":{},"62":{},"66":{},"68":{},"106":{},"130":{},"134":{},"136":{}},"component":{}}],["explicitli",{"_index":1115,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["explor",{"_index":665,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["exponenti",{"_index":510,"title":{"49":{},"117":{}},"name":{},"text":{"3":{},"25":{},"29":{},"48":{},"49":{},"71":{},"93":{},"97":{},"116":{},"117":{}},"component":{}}],["exponential_gen",{"_index":2163,"title":{},"name":{"49":{},"117":{}},"text":{"48":{},"116":{}},"component":{}}],["express",{"_index":269,"title":{"7-5":{},"10-4":{},"10-10":{},"10-15":{},"10-20":{},"10-26":{},"11-3":{},"12-4":{},"13-4":{},"14-4":{},"15-4":{},"16-4":{},"17-4":{},"18-4":{},"19-4":{},"20-4":{},"21-4":{},"22-4":{},"23-4":{},"24-4":{},"25-5":{},"26-5":{},"27-7":{},"28-5":{},"29-6":{},"30-4":{},"31-4":{},"32-4":{},"33-4":{},"34-4":{},"35-4":{},"36-4":{},"37-4":{},"38-5":{},"38-11":{},"38-18":{},"39-4":{},"40-4":{},"41-4":{},"45-5":{},"46-5":{},"47-4":{},"47-10":{},"48-6":{},"48-15":{},"49-4":{},"50-4":{},"51-4":{},"51-10":{},"52-4":{},"53-4":{},"54-4":{},"55-4":{},"56-4":{},"57-4":{},"58-4":{},"59-4":{},"60-4":{},"61-4":{},"62-5":{},"63-4":{},"64-4":{},"65-4":{},"66-4":{},"67-4":{},"68-4":{},"74-5":{},"78-4":{},"78-10":{},"78-15":{},"78-20":{},"78-26":{},"79-3":{},"80-4":{},"81-4":{},"82-4":{},"83-4":{},"84-4":{},"85-4":{},"86-4":{},"87-4":{},"88-4":{},"89-4":{},"90-4":{},"91-4":{},"92-4":{},"93-5":{},"94-5":{},"95-7":{},"96-5":{},"97-6":{},"98-4":{},"99-4":{},"100-4":{},"101-4":{},"102-4":{},"103-4":{},"104-4":{},"105-4":{},"106-5":{},"106-11":{},"106-18":{},"107-4":{},"108-4":{},"109-4":{},"113-5":{},"114-5":{},"115-4":{},"115-10":{},"116-6":{},"116-15":{},"117-4":{},"118-4":{},"119-4":{},"119-10":{},"120-4":{},"121-4":{},"122-4":{},"123-4":{},"124-4":{},"125-4":{},"126-4":{},"127-4":{},"128-4":{},"129-4":{},"130-5":{},"131-4":{},"132-4":{},"133-4":{},"134-4":{},"135-4":{},"136-4":{}},"name":{},"text":{"2":{},"7":{},"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":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["expression_lsb",{"_index":1945,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["extend",{"_index":1076,"title":{},"name":{},"text":{"10":{},"46":{},"78":{},"114":{}},"component":{}}],["extern",{"_index":94,"title":{},"name":{},"text":{"2":{},"21":{},"22":{},"23":{},"24":{},"70":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["extract",{"_index":966,"title":{},"name":{},"text":{"8":{},"35":{},"41":{},"45":{},"76":{},"103":{},"109":{},"113":{}},"component":{}}],["extractor",{"_index":992,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["extrem",{"_index":751,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["f",{"_index":338,"title":{},"name":{},"text":{"2":{},"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"30":{},"35":{},"38":{},"55":{},"61":{},"63":{},"66":{},"70":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"98":{},"103":{},"106":{},"123":{},"129":{},"131":{},"134":{}},"component":{}}],["f#0",{"_index":2545,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["f(",{"_index":345,"title":{},"name":{},"text":{"2":{},"7":{},"70":{},"74":{}},"component":{}}],["f.period",{"_index":2446,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["f_x",{"_index":336,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["facil",{"_index":132,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"48":{},"70":{},"71":{},"72":{},"116":{}},"component":{}}],["facilit",{"_index":1024,"title":{},"name":{},"text":{"9":{},"41":{},"77":{},"109":{}},"component":{}}],["factor",{"_index":428,"title":{},"name":{},"text":{"3":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"71":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["factori",{"_index":2154,"title":{"48-9":{},"116-9":{}},"name":{},"text":{},"component":{}}],["fair",{"_index":2277,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["fall",{"_index":739,"title":{},"name":{},"text":{"4":{},"10":{},"21":{},"23":{},"25":{},"29":{},"33":{},"47":{},"51":{},"72":{},"78":{},"89":{},"91":{},"93":{},"97":{},"101":{},"115":{},"119":{}},"component":{}}],["fals",{"_index":816,"title":{},"name":{},"text":{"4":{},"33":{},"34":{},"38":{},"39":{},"72":{},"101":{},"102":{},"106":{},"107":{}},"component":{}}],["famili",{"_index":2289,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["far",{"_index":1004,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["fashion",{"_index":1391,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["fast",{"_index":125,"title":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"name":{},"text":{"2":{},"3":{},"8":{},"22":{},"26":{},"27":{},"28":{},"29":{},"59":{},"66":{},"70":{},"71":{},"76":{},"90":{},"94":{},"95":{},"96":{},"97":{},"127":{},"134":{}},"component":{}}],["fast_ave_envelope_follow",{"_index":1350,"title":{},"name":{"26":{},"94":{}},"text":{"26":{},"94":{}},"component":{}}],["fast_envelope_follow",{"_index":399,"title":{},"name":{"27":{},"95":{}},"text":{"2":{},"27":{},"70":{},"95":{}},"component":{}}],["fast_rms_envelope_follow",{"_index":1411,"title":{},"name":{"28":{},"96":{}},"text":{"28":{},"96":{}},"component":{}}],["fast_rms_envelope_follower(dur",{"_index":1425,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["fast_rms_envelope_follower::fast_rms_envelope_follow",{"_index":1426,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["fast_rms_envelope_follower_db",{"_index":1414,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["faster",{"_index":1432,"title":{},"name":{},"text":{"29":{},"32":{},"33":{},"59":{},"97":{},"100":{},"101":{},"127":{}},"component":{}}],["featur",{"_index":25,"title":{},"name":{},"text":{"2":{},"8":{},"27":{},"50":{},"70":{},"76":{},"95":{},"118":{}},"component":{}}],["feed",{"_index":583,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["feedback",{"_index":591,"title":{},"name":{},"text":{"4":{},"21":{},"31":{},"72":{},"89":{},"99":{}},"component":{}}],["feedforward",{"_index":1216,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["feel",{"_index":663,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["few",{"_index":895,"title":{},"name":{},"text":{"6":{},"8":{},"48":{},"75":{},"76":{},"116":{}},"component":{}}],["fft",{"_index":119,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["fg_x",{"_index":353,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["figur",{"_index":982,"title":{},"name":{},"text":{"8":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"32":{},"33":{},"44":{},"46":{},"76":{},"93":{},"94":{},"95":{},"96":{},"97":{},"99":{},"100":{},"101":{},"112":{},"114":{}},"component":{}}],["file",{"_index":4,"title":{"2-3":{},"70-3":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"9":{},"38":{},"59":{},"60":{},"61":{},"70":{},"71":{},"72":{},"73":{},"77":{},"106":{},"127":{},"128":{},"129":{}},"component":{}}],["filenam",{"_index":1694,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["filepath",{"_index":1672,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["file’",{"_index":1666,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["fill",{"_index":1577,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["fill(t",{"_index":1560,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["film",{"_index":1041,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["filter",{"_index":477,"title":{"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"name":{},"text":{"3":{},"4":{},"7":{},"8":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"35":{},"55":{},"71":{},"72":{},"74":{},"76":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"103":{},"123":{}},"component":{}}],["filter(0.5",{"_index":675,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["filter.cutoff(env_",{"_index":684,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["final",{"_index":572,"title":{},"name":{},"text":{"4":{},"49":{},"72":{},"117":{}},"component":{}}],["fine",{"_index":357,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"70":{},"71":{},"72":{}},"component":{}}],["finer",{"_index":1374,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["fir",{"_index":1517,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["first",{"_index":520,"title":{},"name":{},"text":{"3":{},"32":{},"33":{},"37":{},"40":{},"42":{},"45":{},"46":{},"47":{},"51":{},"58":{},"65":{},"71":{},"100":{},"101":{},"105":{},"108":{},"110":{},"113":{},"114":{},"115":{},"119":{},"126":{},"133":{}},"component":{}}],["five",{"_index":2248,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["fix",{"_index":198,"title":{},"name":{},"text":{"2":{},"55":{},"64":{},"68":{},"70":{},"123":{},"132":{},"136":{}},"component":{}}],["flag",{"_index":815,"title":{},"name":{},"text":{"4":{},"34":{},"72":{},"102":{}},"component":{}}],["flanger",{"_index":1473,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["flash",{"_index":2366,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["flatter",{"_index":2268,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["flavor",{"_index":1586,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["flexibl",{"_index":918,"title":{},"name":{},"text":{"6":{},"10":{},"25":{},"27":{},"29":{},"34":{},"75":{},"78":{},"93":{},"95":{},"97":{},"102":{}},"component":{}}],["float",{"_index":147,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"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":{},"38":{},"39":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"106":{},"107":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["float(msg.veloc",{"_index":782,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["floor",{"_index":927,"title":{},"name":{},"text":{"6":{},"23":{},"62":{},"75":{},"91":{},"130":{}},"component":{}}],["floor(basic_interv",{"_index":2470,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["floor(i",{"_index":2479,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["floor(p",{"_index":2568,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["floor(pitch",{"_index":2558,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["flow",{"_index":1007,"title":{"9-2":{},"77-2":{}},"name":{},"text":{},"component":{}}],["fluctuat",{"_index":1428,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["folder",{"_index":878,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["follow",{"_index":483,"title":{"25":{},"26":{},"27":{},"28":{},"29":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"name":{},"text":{"3":{},"4":{},"5":{},"6":{},"8":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"34":{},"41":{},"44":{},"45":{},"46":{},"48":{},"71":{},"72":{},"73":{},"75":{},"76":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"102":{},"109":{},"112":{},"113":{},"114":{},"116":{}},"component":{}}],["follower'",{"_index":1424,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["follower’",{"_index":1358,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"29":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["foot",{"_index":1902,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["foot_lsb",{"_index":1933,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["forev",{"_index":2339,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["form",{"_index":329,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"10":{},"51":{},"70":{},"72":{},"74":{},"78":{},"119":{}},"component":{}}],["format",{"_index":200,"title":{},"name":{},"text":{"2":{},"9":{},"38":{},"46":{},"64":{},"70":{},"77":{},"106":{},"114":{},"132":{}},"component":{}}],["formula",{"_index":2136,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"115":{},"118":{},"119":{}},"component":{}}],["forward",{"_index":2202,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["found",{"_index":407,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"58":{},"70":{},"72":{},"73":{},"126":{}},"component":{}}],["four",{"_index":2166,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["fourier",{"_index":126,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["fr",{"_index":1717,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["frac",{"_index":2507,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_double(p",{"_index":2513,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_double(phas",{"_index":2508,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_float(p",{"_index":2512,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_float(phas",{"_index":2509,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_to_phase(frac",{"_index":2515,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_to_phase(std::floating_point",{"_index":2506,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["fraction",{"_index":203,"title":{"67":{},"135":{}},"name":{},"text":{"2":{},"3":{},"4":{},"31":{},"62":{},"64":{},"66":{},"67":{},"70":{},"71":{},"72":{},"99":{},"130":{},"132":{},"134":{},"135":{}},"component":{}}],["fractional_ring_buff",{"_index":1485,"title":{},"name":{"67":{},"135":{}},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["frame",{"_index":681,"title":{},"name":{},"text":{"4":{},"39":{},"46":{},"72":{},"107":{},"114":{}},"component":{}}],["frames_view",{"_index":2117,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["free",{"_index":664,"title":{},"name":{},"text":{"4":{},"48":{},"55":{},"59":{},"60":{},"61":{},"62":{},"64":{},"66":{},"72":{},"116":{},"123":{},"127":{},"128":{},"129":{},"130":{},"132":{},"134":{}},"component":{}}],["freq",{"_index":776,"title":{},"name":{},"text":{"4":{},"64":{},"65":{},"72":{},"132":{},"133":{}},"component":{}}],["frequenc",{"_index":11,"title":{"61":{},"129":{},"2-8":{},"70-8":{}},"name":{"61":{},"129":{}},"text":{"2":{},"3":{},"4":{},"8":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"27":{},"30":{},"31":{},"32":{},"35":{},"39":{},"42":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"61":{},"63":{},"64":{},"65":{},"66":{},"70":{},"71":{},"72":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"94":{},"95":{},"98":{},"99":{},"100":{},"103":{},"107":{},"110":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"129":{},"131":{},"132":{},"133":{},"134":{}},"component":{}}],["frequency_unit",{"_index":2440,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["frequency{8.1757989156437",{"_index":2549,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["frill",{"_index":50,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["front",{"_index":2594,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["fulfil",{"_index":463,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["full",{"_index":558,"title":{},"name":{},"text":{"4":{},"6":{},"48":{},"63":{},"64":{},"72":{},"75":{},"116":{},"131":{},"132":{}},"component":{}}],["fulli",{"_index":606,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["function",{"_index":15,"title":{"2-12":{},"4-8":{},"7-8":{},"10-7":{},"10-12":{},"10-17":{},"10-23":{},"21-7":{},"22-7":{},"23-7":{},"24-7":{},"25-8":{},"26-8":{},"27-10":{},"28-8":{},"29-9":{},"31-10":{},"32-7":{},"33-9":{},"34-7":{},"45-7":{},"48-17":{},"55-7":{},"62-8":{},"66-8":{},"66-9":{},"70-12":{},"72-8":{},"74-8":{},"78-7":{},"78-12":{},"78-17":{},"78-23":{},"89-7":{},"90-7":{},"91-7":{},"92-7":{},"93-8":{},"94-8":{},"95-10":{},"96-8":{},"97-9":{},"99-10":{},"100-7":{},"101-9":{},"102-7":{},"113-7":{},"116-17":{},"123-7":{},"130-8":{},"134-8":{},"134-9":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"9":{},"10":{},"21":{},"22":{},"23":{},"24":{},"28":{},"32":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"47":{},"48":{},"50":{},"51":{},"53":{},"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"70":{},"71":{},"72":{},"74":{},"75":{},"77":{},"78":{},"89":{},"90":{},"91":{},"92":{},"96":{},"100":{},"104":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"115":{},"116":{},"118":{},"119":{},"121":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{},"135":{}},"component":{}}],["fundament",{"_index":17,"title":{"2":{},"70":{}},"name":{"2":{},"70":{}},"text":{"2":{},"3":{},"9":{},"11":{},"56":{},"70":{},"71":{},"77":{},"79":{},"124":{}},"component":{}}],["further",{"_index":1215,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"27":{},"29":{},"59":{},"64":{},"89":{},"90":{},"91":{},"92":{},"95":{},"97":{},"127":{},"132":{}},"component":{}}],["futur",{"_index":2073,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["fx",{"_index":120,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["g",{"_index":339,"title":{},"name":{},"text":{"2":{},"5":{},"10":{},"16":{},"18":{},"20":{},"21":{},"34":{},"44":{},"47":{},"48":{},"49":{},"50":{},"51":{},"55":{},"70":{},"73":{},"78":{},"84":{},"86":{},"88":{},"89":{},"102":{},"112":{},"115":{},"116":{},"117":{},"118":{},"119":{},"123":{}},"component":{}}],["g\"codeblock",{"_index":867,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["g\"visual",{"_index":856,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["g\"xcode",{"_index":855,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["g().first",{"_index":2355,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g().second",{"_index":2356,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g(env",{"_index":1226,"title":{},"name":{},"text":{"21":{},"34":{},"89":{},"102":{}},"component":{}}],["g(f(",{"_index":351,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["g.attack",{"_index":2203,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.config(f",{"_index":2357,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g.config(w",{"_index":2147,"title":{},"name":{},"text":{"47":{},"49":{},"50":{},"51":{},"115":{},"117":{},"118":{},"119":{}},"component":{}}],["g.current",{"_index":2207,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.in_attack_phas",{"_index":2209,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.in_idle_phas",{"_index":2208,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.in_release_phas",{"_index":2210,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.index",{"_index":2211,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.max",{"_index":1230,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["g.max(max",{"_index":1229,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["g.midpoint",{"_index":2149,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"55":{},"115":{},"118":{},"119":{},"123":{}},"component":{}}],["g.onset_threshold",{"_index":1605,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["g.onset_threshold(ot",{"_index":1603,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["g.releas",{"_index":2204,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.release_threshold",{"_index":1606,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["g.release_threshold(rt",{"_index":1604,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["g.reset",{"_index":2148,"title":{},"name":{},"text":{"47":{},"48":{},"50":{},"51":{},"55":{},"115":{},"116":{},"118":{},"119":{},"123":{}},"component":{}}],["g.reset(0.0f",{"_index":2359,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g.reset(sv",{"_index":2358,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g9",{"_index":2067,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["g_x",{"_index":337,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["gain",{"_index":170,"title":{"13":{},"14":{},"81":{},"82":{}},"name":{},"text":{"2":{},"3":{},"4":{},"13":{},"14":{},"16":{},"18":{},"20":{},"21":{},"22":{},"23":{},"24":{},"59":{},"70":{},"71":{},"72":{},"81":{},"82":{},"84":{},"86":{},"88":{},"89":{},"90":{},"91":{},"92":{},"127":{}},"component":{}}],["game",{"_index":1042,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["gate",{"_index":377,"title":{"34":{},"36":{},"102":{},"104":{}},"name":{},"text":{"2":{},"3":{},"6":{},"23":{},"34":{},"36":{},"70":{},"71":{},"75":{},"91":{},"102":{},"104":{}},"component":{}}],["gcc",{"_index":839,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["gen",{"_index":2164,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["gener",{"_index":318,"title":{"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"5-5":{},"10-18":{},"44-4":{},"47-8":{},"48-12":{},"48-20":{},"51-8":{},"73-5":{},"78-18":{},"112-4":{},"115-8":{},"116-12":{},"116-20":{},"119-8":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"10":{},"26":{},"27":{},"44":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"64":{},"70":{},"71":{},"72":{},"73":{},"75":{},"78":{},"94":{},"95":{},"112":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"132":{}},"component":{}}],["general_1",{"_index":1919,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_1_lsb",{"_index":1951,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_2",{"_index":1921,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_2_lsb",{"_index":1953,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_3",{"_index":1923,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_3_lsb",{"_index":1955,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_4",{"_index":1925,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_4_lsb",{"_index":1957,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_5",{"_index":1992,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_6",{"_index":1994,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_7",{"_index":1996,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_8",{"_index":1998,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["generator(g",{"_index":1093,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["get(id",{"_index":1634,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["get(int",{"_index":1628,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["git",{"_index":823,"title":{"5-3":{},"73-3":{}},"name":{},"text":{"5":{},"73":{}},"component":{}}],["give",{"_index":805,"title":{},"name":{},"text":{"4":{},"25":{},"72":{},"93":{}},"component":{}}],["given",{"_index":705,"title":{},"name":{},"text":{"4":{},"10":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"35":{},"36":{},"37":{},"38":{},"39":{},"41":{},"44":{},"47":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"63":{},"65":{},"67":{},"68":{},"72":{},"78":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"103":{},"104":{},"105":{},"106":{},"107":{},"109":{},"112":{},"115":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"131":{},"133":{},"135":{},"136":{}},"component":{}}],["global",{"_index":2324,"title":{},"name":{},"text":{"54":{},"56":{},"57":{},"58":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["go",{"_index":702,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["goe",{"_index":1003,"title":{},"name":{},"text":{"8":{},"21":{},"34":{},"76":{},"89":{},"102":{}},"component":{}}],["good",{"_index":611,"title":{},"name":{},"text":{"4":{},"6":{},"72":{},"75":{}},"component":{}}],["gradual",{"_index":1266,"title":{},"name":{},"text":{"23":{},"24":{},"25":{},"29":{},"47":{},"91":{},"92":{},"93":{},"97":{},"115":{}},"component":{}}],["grain",{"_index":358,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"70":{},"71":{},"72":{}},"component":{}}],["granular",{"_index":1375,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["graph",{"_index":931,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["greater",{"_index":723,"title":{},"name":{},"text":{"4":{},"11":{},"22":{},"26":{},"27":{},"49":{},"62":{},"66":{},"68":{},"72":{},"79":{},"90":{},"94":{},"95":{},"117":{},"130":{},"134":{},"136":{}},"component":{}}],["green",{"_index":1421,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["gui",{"_index":652,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["guitar",{"_index":523,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["guitar’",{"_index":1318,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["guzman",{"_index":414,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["hal",{"_index":2327,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["half",{"_index":1078,"title":{},"name":{},"text":{"10":{},"47":{},"51":{},"59":{},"78":{},"115":{},"119":{},"127":{}},"component":{}}],["ham",{"_index":507,"title":{"50":{},"118":{}},"name":{},"text":{"3":{},"50":{},"51":{},"71":{},"118":{},"119":{}},"component":{}}],["hamming_gen",{"_index":2272,"title":{},"name":{"50":{},"118":{}},"text":{"50":{},"118":{}},"component":{}}],["hamming_gen(dur",{"_index":2281,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["hamming_gen(w",{"_index":2282,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["hand",{"_index":322,"title":{},"name":{},"text":{"2":{},"9":{},"32":{},"70":{},"77":{},"100":{}},"component":{}}],["handl",{"_index":316,"title":{},"name":{},"text":{"2":{},"9":{},"37":{},"40":{},"45":{},"59":{},"64":{},"70":{},"77":{},"105":{},"108":{},"113":{},"127":{},"132":{}},"component":{}}],["hann",{"_index":506,"title":{"51":{},"119":{}},"name":{},"text":{"3":{},"48":{},"51":{},"71":{},"116":{},"119":{}},"component":{}}],["hann_downward_ramp_gen",{"_index":2297,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_downward_ramp_gen(dur",{"_index":2298,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_gen",{"_index":2283,"title":{},"name":{"51":{},"119":{}},"text":{"51":{},"119":{}},"component":{}}],["hann_gen(dur",{"_index":2293,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_gen(w",{"_index":2294,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_upward_ramp_gen",{"_index":2295,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_upward_ramp_gen(dur",{"_index":2296,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["happen",{"_index":220,"title":{},"name":{},"text":{"2":{},"48":{},"70":{},"116":{}},"component":{}}],["hard",{"_index":905,"title":{},"name":{},"text":{"6":{},"10":{},"22":{},"23":{},"24":{},"26":{},"59":{},"75":{},"78":{},"90":{},"91":{},"92":{},"94":{},"127":{}},"component":{}}],["hardwar",{"_index":72,"title":{},"name":{},"text":{"2":{},"4":{},"27":{},"70":{},"72":{},"95":{}},"component":{}}],["harmon",{"_index":238,"title":{},"name":{},"text":{"2":{},"10":{},"44":{},"56":{},"70":{},"78":{},"112":{},"124":{}},"component":{}}],["harmoni",{"_index":2460,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["harri",{"_index":1385,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["have",{"_index":1332,"title":{},"name":{},"text":{"25":{},"56":{},"93":{},"124":{}},"component":{}}],["haven’t",{"_index":790,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["header",{"_index":52,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["headroom",{"_index":187,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["heard",{"_index":573,"title":{},"name":{},"text":{"4":{},"29":{},"72":{},"97":{}},"component":{}}],["held",{"_index":1345,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"46":{},"93":{},"94":{},"95":{},"96":{},"97":{},"114":{}},"component":{}}],["hello",{"_index":553,"title":{"4-1":{},"4-4":{},"72-1":{},"72-4":{}},"name":{},"text":{"4":{},"72":{}},"component":{}}],["here",{"_index":117,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"39":{},"43":{},"44":{},"59":{},"70":{},"72":{},"73":{},"107":{},"111":{},"112":{},"127":{}},"component":{}}],["here’",{"_index":285,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"70":{},"72":{},"75":{}},"component":{}}],["hertz",{"_index":1131,"title":{},"name":{},"text":{"11":{},"61":{},"66":{},"79":{},"129":{},"134":{}},"component":{}}],["hide",{"_index":952,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["high",{"_index":367,"title":{"15":{},"16":{},"83":{},"84":{}},"name":{},"text":{"2":{},"3":{},"6":{},"7":{},"15":{},"16":{},"22":{},"23":{},"24":{},"30":{},"53":{},"54":{},"57":{},"70":{},"71":{},"74":{},"75":{},"83":{},"84":{},"90":{},"91":{},"92":{},"98":{},"121":{},"122":{},"125":{}},"component":{}}],["higher",{"_index":362,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"26":{},"27":{},"70":{},"72":{},"73":{},"94":{},"95":{}},"component":{}}],["highest",{"_index":1393,"title":{},"name":{},"text":{"27":{},"42":{},"95":{},"110":{}},"component":{}}],["highli",{"_index":541,"title":{},"name":{},"text":{"3":{},"48":{},"71":{},"116":{}},"component":{}}],["highlight",{"_index":557,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["highpass",{"_index":395,"title":{},"name":{"15":{},"83":{}},"text":{"2":{},"7":{},"15":{},"70":{},"74":{},"83":{}},"component":{}}],["highpass(f",{"_index":1183,"title":{},"name":{},"text":{"15":{},"83":{}},"component":{}}],["highpass(frequ",{"_index":1181,"title":{},"name":{},"text":{"15":{},"83":{}},"component":{}}],["highshelf",{"_index":965,"title":{},"name":{"16":{},"84":{}},"text":{"7":{},"16":{},"74":{},"84":{}},"component":{}}],["highshelf(doubl",{"_index":1187,"title":{},"name":{},"text":{"16":{},"84":{}},"component":{}}],["highshelf(g",{"_index":1191,"title":{},"name":{},"text":{"16":{},"84":{}},"component":{}}],["hoist",{"_index":264,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["hold",{"_index":1052,"title":{},"name":{},"text":{"10":{},"26":{},"27":{},"28":{},"44":{},"46":{},"48":{},"65":{},"78":{},"94":{},"95":{},"96":{},"112":{},"114":{},"116":{},"133":{}},"component":{}}],["hold_2",{"_index":1968,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["hold_line_gen",{"_index":2159,"title":{},"name":{},"text":{"48":{},"52":{},"116":{},"120":{}},"component":{}}],["hold_line_gen(dur",{"_index":2305,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["home",{"_index":530,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["hook",{"_index":2085,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["horizont",{"_index":2302,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["host",{"_index":40,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"37":{},"70":{},"71":{},"77":{},"105":{}},"component":{}}],["hp",{"_index":1182,"title":{},"name":{},"text":{"15":{},"83":{}},"component":{}}],["hp.config(f",{"_index":1184,"title":{},"name":{},"text":{"15":{},"83":{}},"component":{}}],["hs",{"_index":1190,"title":{},"name":{},"text":{"16":{},"84":{}},"component":{}}],["hs.config(g",{"_index":1192,"title":{},"name":{},"text":{"16":{},"84":{}},"component":{}}],["https://en.wikipedia.org/wiki/angular_unit",{"_index":2500,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["https://github.com/cycfi/q.git",{"_index":845,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["hum",{"_index":1585,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["human",{"_index":1734,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["hypothet",{"_index":335,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["hz",{"_index":191,"title":{},"name":{},"text":{"2":{},"5":{},"8":{},"11":{},"26":{},"27":{},"61":{},"66":{},"70":{},"73":{},"76":{},"79":{},"94":{},"95":{},"129":{},"134":{}},"component":{}}],["i+1",{"_index":1514,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["i.",{"_index":2535,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i._incr",{"_index":742,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["i._phas",{"_index":2540,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i._step",{"_index":2541,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.begin",{"_index":2537,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.end",{"_index":2538,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.first",{"_index":2533,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.last",{"_index":2536,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.middl",{"_index":2539,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i/o",{"_index":37,"title":{"9":{},"77":{}},"name":{},"text":{"2":{},"3":{},"5":{},"9":{},"42":{},"45":{},"70":{},"71":{},"73":{},"77":{},"110":{},"113":{}},"component":{}}],["ic",{"_index":1713,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["id",{"_index":630,"title":{},"name":{},"text":{"4":{},"5":{},"37":{},"40":{},"41":{},"72":{},"73":{},"105":{},"108":{},"109":{}},"component":{}}],["ideal",{"_index":1307,"title":{},"name":{},"text":{"25":{},"29":{},"46":{},"93":{},"97":{},"114":{}},"component":{}}],["identifi",{"_index":1014,"title":{},"name":{},"text":{"9":{},"37":{},"40":{},"77":{},"105":{},"108":{}},"component":{}}],["idl",{"_index":2167,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["ieee",{"_index":2337,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["ignor",{"_index":118,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["iir",{"_index":937,"title":{},"name":{},"text":{"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"55":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"123":{}},"component":{}}],["imag",{"_index":1439,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["immedi",{"_index":747,"title":{},"name":{},"text":{"4":{},"24":{},"27":{},"48":{},"72":{},"92":{},"95":{},"116":{}},"component":{}}],["implement",{"_index":176,"title":{"48-23":{},"116-23":{}},"name":{},"text":{"2":{},"6":{},"7":{},"21":{},"22":{},"23":{},"24":{},"27":{},"30":{},"31":{},"33":{},"34":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"70":{},"74":{},"75":{},"89":{},"90":{},"91":{},"92":{},"95":{},"98":{},"99":{},"101":{},"102":{},"107":{},"109":{},"112":{},"113":{},"114":{},"115":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{}},"component":{}}],["import",{"_index":720,"title":{},"name":{},"text":{"4":{},"8":{},"31":{},"35":{},"72":{},"76":{},"99":{},"103":{}},"component":{}}],["imposs",{"_index":1046,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["improv",{"_index":1530,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["impuls",{"_index":939,"title":{},"name":{},"text":{"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["in[0",{"_index":1750,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["in_attack_phas",{"_index":2200,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["in_channel",{"_index":1804,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["in_idle_phas",{"_index":2199,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["in_release_phas",{"_index":2201,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["includ",{"_index":26,"title":{"7-3":{},"12-2":{},"13-2":{},"14-2":{},"15-2":{},"16-2":{},"17-2":{},"18-2":{},"19-2":{},"20-2":{},"21-2":{},"22-2":{},"23-2":{},"24-2":{},"25-3":{},"26-3":{},"27-5":{},"28-3":{},"29-4":{},"30-2":{},"31-2":{},"32-2":{},"33-2":{},"34-2":{},"35-2":{},"36-2":{},"37-2":{},"38-2":{},"39-2":{},"40-2":{},"41-2":{},"42-2":{},"43-2":{},"44-2":{},"45-2":{},"46-3":{},"47-2":{},"48-4":{},"48-13":{},"48-21":{},"49-2":{},"50-2":{},"51-2":{},"52-2":{},"53-2":{},"54-2":{},"55-2":{},"56-2":{},"57-2":{},"58-2":{},"59-2":{},"60-2":{},"61-2":{},"62-2":{},"63-2":{},"64-2":{},"65-2":{},"66-2":{},"67-2":{},"68-2":{},"74-3":{},"80-2":{},"81-2":{},"82-2":{},"83-2":{},"84-2":{},"85-2":{},"86-2":{},"87-2":{},"88-2":{},"89-2":{},"90-2":{},"91-2":{},"92-2":{},"93-3":{},"94-3":{},"95-5":{},"96-3":{},"97-4":{},"98-2":{},"99-2":{},"100-2":{},"101-2":{},"102-2":{},"103-2":{},"104-2":{},"105-2":{},"106-2":{},"107-2":{},"108-2":{},"109-2":{},"110-2":{},"111-2":{},"112-2":{},"113-2":{},"114-3":{},"115-2":{},"116-4":{},"116-13":{},"116-21":{},"117-2":{},"118-2":{},"119-2":{},"120-2":{},"121-2":{},"122-2":{},"123-2":{},"124-2":{},"125-2":{},"126-2":{},"127-2":{},"128-2":{},"129-2":{},"130-2":{},"131-2":{},"132-2":{},"133-2":{},"134-2":{},"135-2":{},"136-2":{}},"name":{},"text":{"2":{},"7":{},"8":{},"9":{},"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":{},"67":{},"68":{},"70":{},"74":{},"76":{},"77":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["incom",{"_index":580,"title":{},"name":{},"text":{"4":{},"32":{},"33":{},"41":{},"45":{},"48":{},"72":{},"100":{},"101":{},"109":{},"113":{},"116":{}},"component":{}}],["increas",{"_index":1211,"title":{},"name":{},"text":{"21":{},"23":{},"24":{},"25":{},"32":{},"39":{},"49":{},"52":{},"59":{},"89":{},"91":{},"92":{},"93":{},"100":{},"107":{},"117":{},"120":{},"127":{}},"component":{}}],["increment",{"_index":1668,"title":{},"name":{},"text":{"38":{},"44":{},"65":{},"106":{},"112":{},"133":{}},"component":{}}],["index",{"_index":425,"title":{"46-9":{},"114-9":{}},"name":{"3":{},"71":{}},"text":{"31":{},"32":{},"33":{},"43":{},"46":{},"48":{},"67":{},"68":{},"99":{},"100":{},"101":{},"111":{},"114":{},"116":{},"135":{},"136":{}},"component":{}}],["index_iter",{"_index":2121,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["index_typ",{"_index":1491,"title":{},"name":{},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["indexablecontain",{"_index":1683,"title":{"43-5":{},"111-5":{}},"name":{},"text":{"38":{},"43":{},"46":{},"106":{},"111":{},"114":{}},"component":{}}],["indic",{"_index":1328,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"32":{},"33":{},"39":{},"44":{},"46":{},"48":{},"93":{},"95":{},"97":{},"100":{},"101":{},"107":{},"112":{},"114":{},"116":{}},"component":{}}],["indirectli",{"_index":2414,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["indistinguish",{"_index":1423,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["individu",{"_index":1012,"title":{},"name":{},"text":{"9":{},"31":{},"37":{},"46":{},"77":{},"99":{},"105":{},"114":{}},"component":{}}],["infinit",{"_index":938,"title":{},"name":{},"text":{"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"41":{},"52":{},"55":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"109":{},"120":{},"123":{}},"component":{}}],["influenc",{"_index":1471,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["info",{"_index":1752,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["inform",{"_index":211,"title":{},"name":{},"text":{"2":{},"9":{},"27":{},"35":{},"40":{},"41":{},"42":{},"45":{},"46":{},"64":{},"65":{},"70":{},"77":{},"95":{},"103":{},"108":{},"109":{},"110":{},"113":{},"114":{},"132":{},"133":{}},"component":{}}],["infra",{"_index":831,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["infrastructur",{"_index":942,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["inher",{"_index":1070,"title":{},"name":{},"text":{"10":{},"64":{},"65":{},"78":{},"132":{},"133":{}},"component":{}}],["inherit",{"_index":1483,"title":{},"name":{},"text":{"31":{},"32":{},"36":{},"39":{},"48":{},"63":{},"67":{},"99":{},"100":{},"104":{},"107":{},"116":{},"131":{},"135":{}},"component":{}}],["initi",{"_index":764,"title":{},"name":{},"text":{"4":{},"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"63":{},"64":{},"65":{},"66":{},"68":{},"72":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"106":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"131":{},"132":{},"133":{},"134":{},"136":{}},"component":{}}],["inlin",{"_index":365,"title":{},"name":{},"text":{"2":{},"48":{},"59":{},"60":{},"61":{},"70":{},"116":{},"127":{},"128":{},"129":{}},"component":{}}],["input",{"_index":149,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"42":{},"44":{},"59":{},"70":{},"72":{},"74":{},"75":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"102":{},"103":{},"105":{},"106":{},"107":{},"108":{},"110":{},"112":{},"127":{}},"component":{}}],["input_channel",{"_index":1630,"title":{},"name":{},"text":{"37":{},"39":{},"105":{},"107":{}},"component":{}}],["input_lat",{"_index":1711,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["inputs/output",{"_index":631,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["insert",{"_index":602,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["insid",{"_index":356,"title":{},"name":{},"text":{"2":{},"4":{},"45":{},"70":{},"72":{},"113":{}},"component":{}}],["instabl",{"_index":2340,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["instal",{"_index":469,"title":{"5":{},"73":{}},"name":{},"text":{"3":{},"4":{},"5":{},"71":{},"72":{},"73":{}},"component":{}}],["instanc",{"_index":157,"title":{},"name":{},"text":{"2":{},"6":{},"10":{},"11":{},"43":{},"45":{},"46":{},"48":{},"54":{},"56":{},"57":{},"58":{},"59":{},"70":{},"75":{},"78":{},"79":{},"111":{},"113":{},"114":{},"116":{},"122":{},"124":{},"125":{},"126":{},"127":{}},"component":{}}],["instantan",{"_index":1237,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["instanti",{"_index":332,"title":{"37-7":{},"40-7":{},"62-4":{},"105-7":{},"108-7":{},"130-4":{}},"name":{},"text":{"2":{},"4":{},"26":{},"27":{},"28":{},"31":{},"32":{},"33":{},"41":{},"42":{},"46":{},"48":{},"62":{},"67":{},"68":{},"70":{},"72":{},"94":{},"95":{},"96":{},"99":{},"100":{},"101":{},"109":{},"110":{},"114":{},"116":{},"130":{},"135":{},"136":{}},"component":{}}],["instead",{"_index":246,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"28":{},"33":{},"34":{},"37":{},"40":{},"46":{},"59":{},"60":{},"68":{},"70":{},"72":{},"75":{},"96":{},"101":{},"102":{},"105":{},"108":{},"114":{},"127":{},"128":{},"136":{}},"component":{}}],["int",{"_index":292,"title":{},"name":{},"text":{"2":{},"4":{},"11":{},"37":{},"39":{},"40":{},"44":{},"59":{},"60":{},"61":{},"62":{},"65":{},"70":{},"72":{},"79":{},"105":{},"107":{},"108":{},"112":{},"127":{},"128":{},"129":{},"130":{},"133":{}},"component":{}}],["int(msg.channel",{"_index":1786,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.control",{"_index":1795,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.key",{"_index":1787,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.preset",{"_index":1799,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.pressur",{"_index":1793,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.valu",{"_index":1796,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.veloc",{"_index":1788,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["intact",{"_index":1357,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["integ",{"_index":1481,"title":{},"name":{},"text":{"31":{},"32":{},"33":{},"37":{},"38":{},"40":{},"41":{},"59":{},"60":{},"61":{},"99":{},"100":{},"101":{},"105":{},"106":{},"108":{},"109":{},"127":{},"128":{},"129":{}},"component":{}}],["intend",{"_index":871,"title":{},"name":{},"text":{"5":{},"9":{},"45":{},"73":{},"77":{},"113":{}},"component":{}}],["intent",{"_index":713,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["interchang",{"_index":1123,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["interest",{"_index":760,"title":{},"name":{},"text":{"4":{},"30":{},"41":{},"45":{},"48":{},"72":{},"98":{},"109":{},"113":{},"116":{}},"component":{}}],["interfac",{"_index":1013,"title":{"42-4":{},"110-4":{}},"name":{},"text":{"9":{},"37":{},"38":{},"39":{},"40":{},"42":{},"77":{},"105":{},"106":{},"107":{},"108":{},"110":{}},"component":{}}],["interleav",{"_index":2088,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["intermedi",{"_index":2170,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["intermediari",{"_index":1030,"title":{},"name":{},"text":{"9":{},"41":{},"45":{},"77":{},"109":{},"113":{}},"component":{}}],["intermmedi",{"_index":2178,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["intern",{"_index":1552,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["interpol",{"_index":1507,"title":{},"name":{},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["interpolation_typ",{"_index":1493,"title":{},"name":{},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["interpret",{"_index":1768,"title":{},"name":{},"text":{"41":{},"45":{},"109":{},"113":{}},"component":{}}],["interv",{"_index":474,"title":{"62":{},"130":{}},"name":{"62":{},"130":{}},"text":{"3":{},"11":{},"31":{},"39":{},"42":{},"62":{},"66":{},"71":{},"79":{},"99":{},"107":{},"110":{},"130":{},"134":{}},"component":{}}],["interval_unit",{"_index":2463,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["introduc",{"_index":1461,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["introduct",{"_index":421,"title":{"3-1":{},"71-1":{}},"name":{},"text":{"30":{},"98":{}},"component":{}}],["intuit",{"_index":256,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"9":{},"38":{},"70":{},"72":{},"75":{},"77":{},"106":{}},"component":{}}],["invalid",{"_index":1723,"title":{},"name":{},"text":{"39":{},"41":{},"44":{},"66":{},"107":{},"109":{},"112":{},"134":{}},"component":{}}],["invers",{"_index":197,"title":{},"name":{},"text":{"2":{},"23":{},"49":{},"52":{},"70":{},"91":{},"117":{},"120":{}},"component":{}}],["invoc",{"_index":342,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["invok",{"_index":854,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["involv",{"_index":988,"title":{},"name":{},"text":{"8":{},"10":{},"33":{},"76":{},"78":{},"101":{}},"component":{}}],["is_valid",{"_index":1709,"title":{},"name":{},"text":{"39":{},"41":{},"107":{},"109":{}},"component":{}}],["item",{"_index":2245,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["iter",{"_index":690,"title":{"65-7":{},"133-7":{}},"name":{},"text":{"4":{},"10":{},"43":{},"46":{},"65":{},"72":{},"78":{},"111":{},"114":{},"133":{}},"component":{}}],["iterat",{"_index":1823,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["iterator_rang",{"_index":2116,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["jag",{"_index":1399,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["joel",{"_index":412,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["johnson’",{"_index":946,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["jr",{"_index":1387,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["judici",{"_index":748,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["juliu",{"_index":1451,"title":{},"name":{},"text":{"30":{},"51":{},"98":{},"119":{}},"component":{}}],["keep",{"_index":653,"title":{},"name":{},"text":{"4":{},"26":{},"33":{},"64":{},"65":{},"72":{},"94":{},"101":{},"132":{},"133":{}},"component":{}}],["kept",{"_index":613,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["key",{"_index":887,"title":{"6-3":{},"75-3":{}},"name":{},"text":{"41":{},"44":{},"48":{},"109":{},"112":{},"116":{}},"component":{}}],["keyboard",{"_index":618,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["khz",{"_index":597,"title":{},"name":{},"text":{"4":{},"61":{},"72":{},"129":{}},"component":{}}],["knee",{"_index":488,"title":{"24":{},"92":{}},"name":{},"text":{"3":{},"6":{},"22":{},"24":{},"71":{},"75":{},"90":{},"92":{}},"component":{}}],["know",{"_index":1640,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["known",{"_index":909,"title":{},"name":{},"text":{"6":{},"10":{},"22":{},"24":{},"51":{},"75":{},"78":{},"90":{},"92":{},"119":{}},"component":{}}],["l",{"_index":2190,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["laden",{"_index":527,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["larger",{"_index":1162,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["largest",{"_index":2480,"title":{},"name":{},"text":{"62":{},"66":{},"130":{},"134":{}},"component":{}}],["last",{"_index":1551,"title":{},"name":{},"text":{"33":{},"48":{},"60":{},"65":{},"101":{},"116":{},"128":{},"133":{}},"component":{}}],["latenc",{"_index":1736,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["later",{"_index":724,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["latest",{"_index":840,"title":{},"name":{},"text":{"5":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"35":{},"48":{},"67":{},"68":{},"73":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"103":{},"116":{},"135":{},"136":{}},"component":{}}],["layer",{"_index":2,"title":{"2-1":{},"70-1":{}},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["layout",{"_index":2092,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["lead",{"_index":1125,"title":{},"name":{},"text":{"11":{},"49":{},"79":{},"117":{}},"component":{}}],["leakag",{"_index":2132,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["leav",{"_index":1231,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["left",{"_index":564,"title":{},"name":{},"text":{"4":{},"39":{},"46":{},"72":{},"107":{},"114":{}},"component":{}}],["left[fram",{"_index":688,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["left[i",{"_index":2108,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["left_out",{"_index":1255,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["left_sign",{"_index":1256,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["legato",{"_index":1966,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["len",{"_index":1681,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["length",{"_index":1675,"title":{},"name":{},"text":{"38":{},"60":{},"106":{},"128":{}},"component":{}}],["less",{"_index":143,"title":{},"name":{},"text":{"2":{},"4":{},"26":{},"49":{},"59":{},"62":{},"66":{},"70":{},"72":{},"94":{},"117":{},"127":{},"130":{},"134":{}},"component":{}}],["letter",{"_index":2066,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["level",{"_index":363,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"6":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"29":{},"42":{},"45":{},"47":{},"48":{},"59":{},"70":{},"72":{},"73":{},"75":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"97":{},"110":{},"113":{},"115":{},"116":{},"127":{}},"component":{}}],["level(float",{"_index":2187,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["leverag",{"_index":444,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["lfo",{"_index":1475,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["libasound",{"_index":865,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["liber",{"_index":467,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["librari",{"_index":20,"title":{"3":{},"71":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"22":{},"24":{},"43":{},"44":{},"45":{},"47":{},"49":{},"50":{},"51":{},"52":{},"59":{},"70":{},"71":{},"72":{},"73":{},"75":{},"76":{},"77":{},"78":{},"79":{},"90":{},"92":{},"111":{},"112":{},"113":{},"115":{},"117":{},"118":{},"119":{},"120":{},"127":{}},"component":{}}],["library’",{"_index":950,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["licens",{"_index":420,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["lightweight",{"_index":51,"title":{},"name":{},"text":{"2":{},"9":{},"37":{},"38":{},"40":{},"46":{},"70":{},"77":{},"105":{},"106":{},"108":{},"114":{}},"component":{}}],["likewis",{"_index":929,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["limit",{"_index":155,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"10":{},"22":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"70":{},"72":{},"75":{},"78":{},"90":{},"121":{},"122":{},"123":{},"125":{},"126":{},"127":{}},"component":{}}],["lin_doubl",{"_index":2418,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_double(d",{"_index":2410,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_double(decibel",{"_index":2395,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_downward_ramp_gen",{"_index":2161,"title":{},"name":{},"text":{"48":{},"52":{},"116":{},"120":{}},"component":{}}],["lin_downward_ramp_gen(dur",{"_index":2304,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["lin_float",{"_index":2417,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_float(config_.sustain_level",{"_index":2234,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["lin_float(d",{"_index":2409,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_float(decibel",{"_index":2396,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_to_db",{"_index":2413,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_to_db(2.0",{"_index":2415,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_to_db(doubl",{"_index":2398,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_to_db(v",{"_index":2411,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_upward_ramp_gen",{"_index":2299,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["lin_upward_ramp_gen(dur",{"_index":2303,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["line",{"_index":875,"title":{},"name":{},"text":{"5":{},"31":{},"52":{},"73":{},"99":{},"120":{}},"component":{}}],["linear",{"_index":508,"title":{"52":{},"120":{}},"name":{},"text":{"3":{},"6":{},"26":{},"28":{},"48":{},"49":{},"52":{},"59":{},"71":{},"75":{},"94":{},"96":{},"116":{},"117":{},"120":{},"127":{}},"component":{}}],["linear_gen",{"_index":2160,"title":{},"name":{"52":{},"120":{}},"text":{"48":{},"116":{}},"component":{}}],["linearli",{"_index":2300,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["linux",{"_index":825,"title":{"5-8":{},"73-8":{}},"name":{},"text":{"5":{},"73":{}},"component":{}}],["list",{"_index":116,"title":{},"name":{},"text":{"2":{},"4":{},"37":{},"40":{},"70":{},"72":{},"105":{},"108":{}},"component":{}}],["list_devices.cpp",{"_index":885,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["liter",{"_index":9,"title":{"2-6":{},"59-8":{},"60-7":{},"61-8":{},"70-6":{},"127-8":{},"128-7":{},"129-8":{}},"name":{},"text":{"2":{},"4":{},"59":{},"60":{},"61":{},"70":{},"72":{},"127":{},"128":{},"129":{}},"component":{}}],["literals.hpp",{"_index":265,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["littl",{"_index":1863,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["load",{"_index":560,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["lobe",{"_index":2134,"title":{},"name":{},"text":{"47":{},"50":{},"115":{},"118":{}},"component":{}}],["local",{"_index":2036,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["locat",{"_index":1537,"title":{},"name":{},"text":{"32":{},"33":{},"46":{},"100":{},"101":{},"114":{}},"component":{}}],["log10(out/in",{"_index":2383,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["log2",{"_index":2546,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["logarithm",{"_index":162,"title":{},"name":{},"text":{"2":{},"6":{},"11":{},"21":{},"22":{},"23":{},"24":{},"59":{},"70":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"127":{}},"component":{}}],["logic",{"_index":1534,"title":{},"name":{},"text":{"32":{},"33":{},"64":{},"100":{},"101":{},"132":{}},"component":{}}],["long",{"_index":291,"title":{},"name":{},"text":{"2":{},"33":{},"48":{},"59":{},"60":{},"61":{},"68":{},"70":{},"101":{},"116":{},"127":{},"128":{},"129":{},"136":{}},"component":{}}],["longer",{"_index":1302,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"31":{},"66":{},"93":{},"94":{},"95":{},"99":{},"134":{}},"component":{}}],["look",{"_index":1422,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["lookup",{"_index":2363,"title":{},"name":{},"text":{"56":{},"59":{},"124":{},"127":{}},"component":{}}],["loop",{"_index":586,"title":{},"name":{},"text":{"4":{},"41":{},"43":{},"46":{},"72":{},"109":{},"111":{},"114":{}},"component":{}}],["loos",{"_index":59,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["lot",{"_index":701,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["loud",{"_index":973,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["loudest",{"_index":892,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["love",{"_index":521,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["low",{"_index":476,"title":{"17":{},"18":{},"35":{},"85":{},"86":{},"103":{}},"name":{},"text":{"3":{},"4":{},"7":{},"17":{},"18":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"31":{},"32":{},"35":{},"45":{},"55":{},"56":{},"71":{},"72":{},"74":{},"85":{},"86":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"97":{},"99":{},"100":{},"103":{},"113":{},"123":{},"124":{}},"component":{}}],["lower",{"_index":1869,"title":{},"name":{},"text":{"44":{},"47":{},"49":{},"112":{},"115":{},"117":{}},"component":{}}],["lowest",{"_index":1369,"title":{},"name":{},"text":{"26":{},"27":{},"30":{},"94":{},"95":{},"98":{}},"component":{}}],["lowpass",{"_index":960,"title":{},"name":{"17":{},"85":{}},"text":{"7":{},"17":{},"74":{},"85":{}},"component":{}}],["lowpass(f",{"_index":1195,"title":{},"name":{},"text":{"17":{},"85":{}},"component":{}}],["lowpass(frequ",{"_index":1193,"title":{},"name":{},"text":{"17":{},"85":{}},"component":{}}],["lowshelf",{"_index":964,"title":{},"name":{"18":{},"86":{}},"text":{"7":{},"18":{},"74":{},"86":{}},"component":{}}],["lowshelf(doubl",{"_index":1197,"title":{},"name":{},"text":{"18":{},"86":{}},"component":{}}],["lowshelf(g",{"_index":1199,"title":{},"name":{},"text":{"18":{},"86":{}},"component":{}}],["lp",{"_index":1194,"title":{},"name":{},"text":{"17":{},"35":{},"85":{},"103":{}},"component":{}}],["lp(",{"_index":231,"title":{},"name":{},"text":{"2":{},"35":{},"70":{},"103":{}},"component":{}}],["lp.config(f",{"_index":1196,"title":{},"name":{},"text":{"17":{},"85":{}},"component":{}}],["lp.cutoff(f",{"_index":1617,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["ls",{"_index":1198,"title":{},"name":{},"text":{"18":{},"86":{}},"component":{}}],["ls.config(g",{"_index":1200,"title":{},"name":{},"text":{"18":{},"86":{}},"component":{}}],["lsb",{"_index":2053,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["ma",{"_index":1545,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["ma(",{"_index":1547,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["ma_type::value_typ",{"_index":1546,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["mac",{"_index":832,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["macbook",{"_index":644,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["mackie/hui",{"_index":638,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["maco",{"_index":623,"title":{"5-6":{},"73-6":{}},"name":{},"text":{"4":{},"5":{},"72":{},"73":{}},"component":{}}],["made",{"_index":1044,"title":{},"name":{},"text":{"10":{},"65":{},"78":{},"133":{}},"component":{}}],["magenta",{"_index":1321,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["main",{"_index":555,"title":{"4-8":{},"72-8":{}},"name":{},"text":{"4":{},"7":{},"37":{},"40":{},"47":{},"72":{},"74":{},"105":{},"108":{},"115":{}},"component":{}}],["maintain",{"_index":711,"title":{},"name":{},"text":{"4":{},"6":{},"21":{},"39":{},"68":{},"72":{},"75":{},"89":{},"107":{},"136":{}},"component":{}}],["major",{"_index":953,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["make",{"_index":141,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"6":{},"10":{},"21":{},"22":{},"23":{},"24":{},"28":{},"35":{},"39":{},"48":{},"58":{},"59":{},"66":{},"70":{},"72":{},"73":{},"75":{},"78":{},"89":{},"90":{},"91":{},"92":{},"96":{},"103":{},"107":{},"116":{},"126":{},"127":{},"134":{}},"component":{}}],["make_envelope_seg",{"_index":2183,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["make_envelope_segment(10_m",{"_index":2192,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["make_envelope_segment(dur",{"_index":2189,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["makefil",{"_index":869,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["makeup",{"_index":380,"title":{},"name":{},"text":{"2":{},"22":{},"24":{},"70":{},"90":{},"92":{}},"component":{}}],["manag",{"_index":709,"title":{},"name":{},"text":{"4":{},"31":{},"72":{},"99":{}},"component":{}}],["mani",{"_index":1611,"title":{},"name":{},"text":{"35":{},"51":{},"103":{},"119":{}},"component":{}}],["manipul",{"_index":889,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["mark",{"_index":2406,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["math",{"_index":2390,"title":{},"name":{},"text":{"59":{},"66":{},"127":{},"134":{}},"component":{}}],["mathemat",{"_index":2498,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["max",{"_index":1218,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["max(decibel",{"_index":1220,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["max_",{"_index":1221,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["max_delay",{"_index":1496,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["max_siz",{"_index":1554,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["maximum",{"_index":1223,"title":{},"name":{},"text":{"21":{},"27":{},"29":{},"31":{},"37":{},"39":{},"46":{},"48":{},"64":{},"89":{},"95":{},"97":{},"99":{},"105":{},"107":{},"114":{},"116":{},"132":{}},"component":{}}],["mb",{"_index":2122,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb.channel",{"_index":2100,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb.frame",{"_index":2101,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb.size",{"_index":2097,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::buffer_view",{"_index":2124,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::channel_view",{"_index":2125,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::channels_view",{"_index":2128,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::frames_view",{"_index":2126,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::sample_typ",{"_index":2123,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[0",{"_index":2105,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[1",{"_index":2106,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[ch",{"_index":2109,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[ch].size",{"_index":2098,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[ch][i",{"_index":2096,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[i",{"_index":2127,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mcu",{"_index":2364,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["md",{"_index":1755,"title":{},"name":{},"text":{"40":{},"41":{},"108":{},"109":{}},"component":{}}],["md.id",{"_index":1759,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["md.name",{"_index":1760,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["md.num_input",{"_index":1761,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["md.num_output",{"_index":1762,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["mean",{"_index":752,"title":{},"name":{},"text":{"4":{},"11":{},"26":{},"28":{},"65":{},"72":{},"79":{},"94":{},"96":{},"133":{}},"component":{}}],["meaning",{"_index":1844,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["meant",{"_index":1806,"title":{},"name":{},"text":{"42":{},"46":{},"110":{},"114":{}},"component":{}}],["measur",{"_index":2380,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"62":{},"64":{},"66":{},"127":{},"128":{},"129":{},"130":{},"132":{},"134":{}},"component":{}}],["mechan",{"_index":79,"title":{},"name":{},"text":{"2":{},"8":{},"9":{},"38":{},"70":{},"76":{},"77":{},"106":{}},"component":{}}],["melodi",{"_index":2459,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["member",{"_index":392,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"26":{},"28":{},"32":{},"36":{},"39":{},"42":{},"43":{},"46":{},"48":{},"63":{},"65":{},"67":{},"70":{},"72":{},"78":{},"94":{},"96":{},"100":{},"104":{},"107":{},"110":{},"111":{},"114":{},"116":{},"131":{},"133":{},"135":{}},"component":{}}],["memori",{"_index":756,"title":{},"name":{},"text":{"4":{},"46":{},"56":{},"72":{},"114":{},"124":{}},"component":{}}],["messag",{"_index":515,"title":{"44":{},"112":{},"44-4":{},"44-5":{},"44-7":{},"112-4":{},"112-5":{},"112-7":{}},"name":{},"text":{"3":{},"4":{},"9":{},"39":{},"41":{},"44":{},"45":{},"71":{},"72":{},"77":{},"107":{},"109":{},"112":{},"113":{}},"component":{}}],["message1",{"_index":1855,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message1(raw_messag",{"_index":1856,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message1::message1",{"_index":2059,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message2",{"_index":1857,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message2(raw_messag",{"_index":1858,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message2::message2",{"_index":2048,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message3",{"_index":1859,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message3(raw_messag",{"_index":1860,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message3::message3",{"_index":1892,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message_bas",{"_index":1852,"title":{},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["meteorologist",{"_index":2286,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["meter",{"_index":1812,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["method",{"_index":984,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["mhz",{"_index":2452,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["microconrrol",{"_index":2365,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["microcontrol",{"_index":443,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["microphon",{"_index":646,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["microsecond",{"_index":2434,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["microton",{"_index":2472,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["middl",{"_index":732,"title":{},"name":{},"text":{"4":{},"47":{},"50":{},"51":{},"64":{},"65":{},"72":{},"115":{},"118":{},"119":{},"132":{},"133":{}},"component":{}}],["midi",{"_index":36,"title":{"9":{},"44":{},"45":{},"77":{},"112":{},"113":{},"4-7":{},"41-7":{},"41-9":{},"44-4":{},"44-5":{},"44-6":{},"44-7":{},"72-7":{},"109-7":{},"109-9":{},"112-4":{},"112-5":{},"112-6":{},"112-7":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"9":{},"40":{},"41":{},"44":{},"45":{},"66":{},"70":{},"71":{},"72":{},"73":{},"77":{},"108":{},"109":{},"112":{},"113":{},"134":{}},"component":{}}],["midi::note_frequency(_key",{"_index":777,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["midi::processor",{"_index":767,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["midi::processor::oper",{"_index":768,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["midi_1_0",{"_index":1850,"title":{},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["midi_devic",{"_index":1022,"title":{"40":{},"108":{}},"name":{"40":{},"108":{}},"text":{"9":{},"40":{},"41":{},"77":{},"108":{},"109":{}},"component":{}}],["midi_device(",{"_index":1757,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["midi_device(b",{"_index":1756,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["midi_device::list",{"_index":1758,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["midi_input_stream",{"_index":807,"title":{"41":{},"109":{}},"name":{},"text":{"4":{},"9":{},"41":{},"72":{},"77":{},"109":{}},"component":{}}],["midi_input_stream(md",{"_index":1776,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["midi_input_stream(midi_devic",{"_index":1771,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["midi_messag",{"_index":1843,"title":{},"name":{"44":{},"112":{}},"text":{},"component":{}}],["midi_processor",{"_index":757,"title":{},"name":{"45":{},"113":{}},"text":{"4":{},"41":{},"72":{},"109":{}},"component":{}}],["midi_stream",{"_index":1766,"title":{},"name":{"41":{},"109":{}},"text":{},"component":{}}],["midikey",{"_index":622,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["midpoint",{"_index":2145,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"55":{},"115":{},"118":{},"119":{},"123":{}},"component":{}}],["millisecond",{"_index":194,"title":{},"name":{},"text":{"2":{},"25":{},"45":{},"60":{},"70":{},"93":{},"113":{},"128":{}},"component":{}}],["minim",{"_index":56,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"9":{},"50":{},"70":{},"72":{},"75":{},"77":{},"118":{}},"component":{}}],["minimum",{"_index":1366,"title":{},"name":{},"text":{"26":{},"27":{},"64":{},"68":{},"94":{},"95":{},"132":{},"136":{}},"component":{}}],["misc",{"_index":2439,"title":{"61-7":{},"129-7":{}},"name":{},"text":{},"component":{}}],["miscellan",{"_index":490,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["mismatch",{"_index":215,"title":{},"name":{},"text":{"2":{},"4":{},"11":{},"70":{},"72":{},"79":{}},"component":{}}],["mistak",{"_index":219,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["mistakenli",{"_index":1122,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["mit",{"_index":419,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["mix",{"_index":579,"title":{},"name":{},"text":{"4":{},"11":{},"46":{},"50":{},"72":{},"79":{},"114":{},"118":{}},"component":{}}],["mixer",{"_index":2112,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mkdir",{"_index":852,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["model",{"_index":1112,"title":{"11-13":{},"79-13":{}},"name":{},"text":{"25":{},"29":{},"43":{},"46":{},"47":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"61":{},"62":{},"63":{},"64":{},"93":{},"97":{},"111":{},"114":{},"115":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"129":{},"130":{},"131":{},"132":{}},"component":{}}],["moder",{"_index":2274,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["modern",{"_index":445,"title":{},"name":{},"text":{"3":{},"4":{},"7":{},"71":{},"72":{},"74":{}},"component":{}}],["modifi",{"_index":2247,"title":{"65-9":{},"133-9":{}},"name":{},"text":{"48":{},"65":{},"116":{},"133":{}},"component":{}}],["modul",{"_index":111,"title":{},"name":{},"text":{"2":{},"8":{},"10":{},"22":{},"23":{},"24":{},"27":{},"29":{},"31":{},"44":{},"47":{},"50":{},"51":{},"56":{},"70":{},"76":{},"78":{},"90":{},"91":{},"92":{},"95":{},"97":{},"99":{},"112":{},"115":{},"118":{},"119":{},"124":{}},"component":{}}],["modulation_lsb",{"_index":1929,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["mold",{"_index":1036,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["moment",{"_index":971,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["monitor",{"_index":1783,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["mono",{"_index":1743,"title":{},"name":{},"text":{"39":{},"44":{},"46":{},"107":{},"112":{},"114":{}},"component":{}}],["mono_in",{"_index":1749,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["mono_in[fram",{"_index":1751,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["monophon",{"_index":659,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["monoton",{"_index":1726,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["more",{"_index":210,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"8":{},"9":{},"10":{},"24":{},"27":{},"30":{},"37":{},"38":{},"39":{},"44":{},"49":{},"70":{},"71":{},"72":{},"75":{},"76":{},"77":{},"78":{},"92":{},"95":{},"98":{},"105":{},"106":{},"107":{},"112":{},"117":{}},"component":{}}],["moreov",{"_index":1069,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["move",{"_index":492,"title":{"32":{},"33":{},"100":{},"101":{}},"name":{},"text":{"3":{},"4":{},"26":{},"28":{},"32":{},"33":{},"36":{},"38":{},"48":{},"71":{},"72":{},"94":{},"96":{},"100":{},"101":{},"104":{},"106":{},"116":{}},"component":{}}],["movement",{"_index":2491,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["moving_averag",{"_index":1516,"title":{},"name":{"32":{},"100":{}},"text":{"32":{},"100":{}},"component":{}}],["moving_sum",{"_index":1539,"title":{},"name":{"33":{},"101":{}},"text":{"32":{},"33":{},"100":{},"101":{}},"component":{}}],["ms",{"_index":1372,"title":{},"name":{},"text":{"26":{},"27":{},"33":{},"41":{},"48":{},"94":{},"95":{},"101":{},"109":{},"116":{}},"component":{}}],["ms(",{"_index":1566,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.clear",{"_index":1575,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.fill(val",{"_index":1576,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.is_valid",{"_index":1779,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["ms.process(proc",{"_index":1780,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["ms.resize(d",{"_index":1574,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.resize(s",{"_index":1569,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.size",{"_index":1568,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.sum",{"_index":1567,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type",{"_index":1561,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type(d",{"_index":1564,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type(m",{"_index":1565,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type(s",{"_index":1563,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type::value_typ",{"_index":1562,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["msb",{"_index":2054,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["msg",{"_index":772,"title":{},"name":{},"text":{"4":{},"41":{},"44":{},"45":{},"72":{},"109":{},"112":{},"113":{}},"component":{}}],["msg.key",{"_index":775,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["much",{"_index":567,"title":{},"name":{},"text":{"4":{},"29":{},"72":{},"97":{}},"component":{}}],["multi",{"_index":512,"title":{"46":{},"114":{}},"name":{},"text":{"3":{},"6":{},"31":{},"42":{},"46":{},"48":{},"71":{},"75":{},"99":{},"110":{},"114":{},"116":{}},"component":{}}],["multi_buff",{"_index":1805,"title":{},"name":{"46":{},"114":{}},"text":{"42":{},"46":{},"110":{},"114":{}},"component":{}}],["multichannel",{"_index":1703,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["multipl",{"_index":390,"title":{},"name":{},"text":{"2":{},"5":{},"6":{},"11":{},"31":{},"48":{},"70":{},"73":{},"75":{},"79":{},"99":{},"116":{}},"component":{}}],["multipli",{"_index":912,"title":{},"name":{},"text":{"6":{},"11":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{}},"component":{}}],["music",{"_index":309,"title":{},"name":{},"text":{"2":{},"3":{},"8":{},"10":{},"44":{},"62":{},"70":{},"71":{},"76":{},"78":{},"112":{},"130":{}},"component":{}}],["mutat",{"_index":1033,"title":{"10-29":{},"12-7":{},"13-7":{},"14-7":{},"15-7":{},"16-7":{},"17-7":{},"18-7":{},"19-7":{},"20-7":{},"21-8":{},"22-8":{},"23-8":{},"24-8":{},"25-9":{},"29-10":{},"30-8":{},"33-11":{},"34-8":{},"35-8":{},"38-14":{},"38-21":{},"39-8":{},"47-7":{},"48-11":{},"48-25":{},"49-7":{},"50-7":{},"51-7":{},"53-7":{},"55-8":{},"65-8":{},"68-10":{},"78-29":{},"80-7":{},"81-7":{},"82-7":{},"83-7":{},"84-7":{},"85-7":{},"86-7":{},"87-7":{},"88-7":{},"89-8":{},"90-8":{},"91-8":{},"92-8":{},"93-9":{},"97-10":{},"98-8":{},"101-11":{},"102-8":{},"103-8":{},"106-14":{},"106-21":{},"107-8":{},"115-7":{},"116-11":{},"116-25":{},"117-7":{},"118-7":{},"119-7":{},"121-7":{},"123-8":{},"133-8":{},"136-10":{}},"name":{},"text":{},"component":{}}],["mute",{"_index":1583,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["my_delay_type1",{"_index":1503,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["my_delay_type2",{"_index":1504,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["my_env_t",{"_index":1382,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["my_midi_processor",{"_index":766,"title":{},"name":{},"text":{"4":{},"45":{},"72":{},"113":{}},"component":{}}],["my_midi_processor(my_square_synth",{"_index":769,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["my_processor",{"_index":1745,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["my_square_synth",{"_index":667,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["my_square_synth(q::adsr_envelope_gen::config",{"_index":669,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["my_square_synth’",{"_index":761,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["n",{"_index":1251,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"27":{},"32":{},"39":{},"42":{},"46":{},"66":{},"90":{},"91":{},"92":{},"95":{},"100":{},"107":{},"110":{},"114":{},"134":{}},"component":{}}],["n:1",{"_index":1244,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["n=16",{"_index":1529,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["name",{"_index":427,"title":{"44-24":{},"112-24":{}},"name":{},"text":{"3":{},"4":{},"8":{},"9":{},"21":{},"22":{},"23":{},"24":{},"37":{},"40":{},"47":{},"50":{},"51":{},"71":{},"72":{},"76":{},"77":{},"89":{},"90":{},"91":{},"92":{},"105":{},"108":{},"115":{},"118":{},"119":{}},"component":{}}],["namespac",{"_index":6,"title":{"2-4":{},"44-3":{},"45-3":{},"70-4":{},"112-3":{},"113-3":{}},"name":{},"text":{"2":{},"10":{},"11":{},"37":{},"40":{},"43":{},"44":{},"45":{},"59":{},"60":{},"61":{},"70":{},"78":{},"79":{},"105":{},"108":{},"111":{},"112":{},"113":{},"127":{},"128":{},"129":{}},"component":{}}],["natur",{"_index":1287,"title":{},"name":{},"text":{"24":{},"48":{},"92":{},"116":{}},"component":{}}],["nearest",{"_index":2276,"title":{},"name":{},"text":{"50":{},"62":{},"66":{},"118":{},"130":{},"134":{}},"component":{}}],["necessari",{"_index":462,"title":{},"name":{},"text":{"3":{},"25":{},"27":{},"29":{},"46":{},"71":{},"93":{},"95":{},"97":{},"114":{}},"component":{}}],["need",{"_index":268,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"22":{},"25":{},"26":{},"27":{},"29":{},"31":{},"37":{},"40":{},"46":{},"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"64":{},"70":{},"72":{},"73":{},"90":{},"93":{},"94":{},"95":{},"97":{},"99":{},"105":{},"108":{},"114":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"132":{}},"component":{}}],["neg",{"_index":1151,"title":{},"name":{},"text":{"11":{},"25":{},"27":{},"29":{},"79":{},"93":{},"95":{},"97":{}},"component":{}}],["new",{"_index":1513,"title":{},"name":{},"text":{"31":{},"32":{},"33":{},"48":{},"65":{},"68":{},"99":{},"100":{},"101":{},"116":{},"133":{},"136":{}},"component":{}}],["newest",{"_index":1535,"title":{},"name":{},"text":{"32":{},"33":{},"100":{},"101":{}},"component":{}}],["next",{"_index":1437,"title":{},"name":{},"text":{"29":{},"39":{},"48":{},"64":{},"65":{},"68":{},"97":{},"107":{},"116":{},"132":{},"133":{},"136":{}},"component":{}}],["nf",{"_index":1202,"title":{},"name":{},"text":{"19":{},"87":{}},"component":{}}],["nf.config(f",{"_index":1204,"title":{},"name":{},"text":{"19":{},"87":{}},"component":{}}],["nf_delay",{"_index":1499,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["nibbl",{"_index":1866,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["nois",{"_index":376,"title":{"34":{},"102":{}},"name":{},"text":{"2":{},"3":{},"6":{},"8":{},"23":{},"29":{},"32":{},"34":{},"35":{},"50":{},"70":{},"71":{},"75":{},"76":{},"91":{},"97":{},"100":{},"102":{},"103":{},"118":{}},"component":{}}],["noise_g",{"_index":1582,"title":{},"name":{"34":{},"102":{}},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["noise_gate(b",{"_index":1601,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["noise_gate(decibel",{"_index":1590,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["noise_gate(ot",{"_index":1600,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["noise_gate(rt",{"_index":1599,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["noise_gate::oper",{"_index":1622,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["non",{"_index":255,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"10":{},"11":{},"31":{},"35":{},"38":{},"39":{},"41":{},"46":{},"50":{},"59":{},"62":{},"66":{},"70":{},"72":{},"75":{},"78":{},"79":{},"99":{},"103":{},"106":{},"107":{},"109":{},"114":{},"118":{},"127":{},"130":{},"134":{}},"component":{}}],["non_copy",{"_index":1770,"title":{},"name":{},"text":{"41":{},"42":{},"109":{},"110":{}},"component":{}}],["nonintuit",{"_index":2402,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["nonrpn_lsb",{"_index":2025,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["nonrpn_msb",{"_index":2027,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["normal",{"_index":151,"title":{},"name":{},"text":{"2":{},"4":{},"22":{},"23":{},"24":{},"48":{},"70":{},"72":{},"90":{},"91":{},"92":{},"116":{}},"component":{}}],["notat",{"_index":932,"title":{"7-6":{},"10-5":{},"10-11":{},"10-16":{},"10-21":{},"10-27":{},"11-4":{},"12-5":{},"13-5":{},"14-5":{},"15-5":{},"16-5":{},"17-5":{},"18-5":{},"19-5":{},"20-5":{},"21-5":{},"22-5":{},"23-5":{},"24-5":{},"25-6":{},"26-6":{},"27-8":{},"28-6":{},"29-7":{},"30-5":{},"31-5":{},"32-5":{},"33-5":{},"34-5":{},"35-5":{},"36-5":{},"37-5":{},"38-6":{},"38-12":{},"38-19":{},"39-5":{},"40-5":{},"41-5":{},"45-6":{},"46-6":{},"47-5":{},"48-7":{},"48-16":{},"49-5":{},"50-5":{},"51-5":{},"53-5":{},"55-5":{},"59-5":{},"60-5":{},"61-5":{},"62-6":{},"63-5":{},"64-5":{},"65-5":{},"66-5":{},"67-5":{},"68-5":{},"74-6":{},"78-5":{},"78-11":{},"78-16":{},"78-21":{},"78-27":{},"79-4":{},"80-5":{},"81-5":{},"82-5":{},"83-5":{},"84-5":{},"85-5":{},"86-5":{},"87-5":{},"88-5":{},"89-5":{},"90-5":{},"91-5":{},"92-5":{},"93-6":{},"94-6":{},"95-8":{},"96-6":{},"97-7":{},"98-5":{},"99-5":{},"100-5":{},"101-5":{},"102-5":{},"103-5":{},"104-5":{},"105-5":{},"106-6":{},"106-12":{},"106-19":{},"107-5":{},"108-5":{},"109-5":{},"113-6":{},"114-6":{},"115-5":{},"116-7":{},"116-16":{},"117-5":{},"118-5":{},"119-5":{},"121-5":{},"123-5":{},"127-5":{},"128-5":{},"129-5":{},"130-6":{},"131-5":{},"132-5":{},"133-5":{},"134-5":{},"135-5":{},"136-5":{}},"name":{},"text":{"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"90":{},"91":{},"92":{},"94":{},"95":{},"96":{}},"component":{}}],["notch",{"_index":481,"title":{"19":{},"87":{}},"name":{"19":{},"87":{}},"text":{"3":{},"7":{},"19":{},"71":{},"74":{},"87":{}},"component":{}}],["notch(f",{"_index":1203,"title":{},"name":{},"text":{"19":{},"87":{}},"component":{}}],["notch(frequ",{"_index":1201,"title":{},"name":{},"text":{"19":{},"87":{}},"component":{}}],["note",{"_index":389,"title":{"4-3":{},"44-24":{},"44-25":{},"72-3":{},"112-24":{},"112-25":{}},"name":{},"text":{"2":{},"4":{},"8":{},"25":{},"27":{},"29":{},"34":{},"39":{},"41":{},"44":{},"45":{},"46":{},"48":{},"59":{},"60":{},"61":{},"66":{},"70":{},"72":{},"76":{},"93":{},"95":{},"97":{},"102":{},"107":{},"109":{},"112":{},"113":{},"114":{},"116":{},"127":{},"128":{},"129":{},"134":{}},"component":{}}],["note_nam",{"_index":2060,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_name(60",{"_index":2062,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_name(std::uint8_t",{"_index":2061,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_numb",{"_index":2064,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_number(\"c4",{"_index":2068,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_number(std::string_view",{"_index":2065,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_off",{"_index":1830,"title":{"44-8":{},"112-8":{}},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["note_off(std::uint8_t",{"_index":1893,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_on",{"_index":1831,"title":{"44-9":{},"112-9":{}},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["note_on(std::uint8_t",{"_index":1894,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["noth",{"_index":2077,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["notic",{"_index":703,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["now",{"_index":715,"title":{},"name":{},"text":{"4":{},"10":{},"72":{},"78":{}},"component":{}}],["num_channel",{"_index":1662,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["num_input",{"_index":1753,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["num_output",{"_index":1754,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["number",{"_index":540,"title":{"44-25":{},"112-25":{}},"name":{},"text":{"3":{},"9":{},"27":{},"31":{},"33":{},"35":{},"37":{},"38":{},"39":{},"40":{},"44":{},"46":{},"59":{},"60":{},"61":{},"62":{},"64":{},"71":{},"77":{},"95":{},"99":{},"101":{},"103":{},"105":{},"106":{},"107":{},"108":{},"112":{},"114":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["numer",{"_index":2419,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"66":{},"127":{},"128":{},"129":{},"134":{}},"component":{}}],["nyquist",{"_index":1077,"title":{},"name":{},"text":{"10":{},"53":{},"54":{},"57":{},"58":{},"78":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["n−1)/2",{"_index":1533,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["o",{"_index":1061,"title":{},"name":{},"text":{"10":{},"30":{},"78":{},"98":{}},"component":{}}],["o(ph",{"_index":1072,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["o(pi",{"_index":1063,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["object",{"_index":16,"title":{"2-12":{},"70-12":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"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":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"71":{},"72":{},"74":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["obtain",{"_index":1228,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"29":{},"37":{},"45":{},"46":{},"89":{},"90":{},"91":{},"92":{},"93":{},"95":{},"97":{},"105":{},"113":{},"114":{}},"component":{}}],["oc",{"_index":1714,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["occur",{"_index":2181,"title":{},"name":{},"text":{"48":{},"53":{},"54":{},"57":{},"58":{},"116":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["octav",{"_index":1172,"title":{},"name":{},"text":{"13":{},"14":{},"19":{},"20":{},"66":{},"81":{},"82":{},"87":{},"88":{},"134":{}},"component":{}}],["offer",{"_index":1021,"title":{},"name":{},"text":{"9":{},"10":{},"38":{},"48":{},"77":{},"78":{},"106":{},"116":{}},"component":{}}],["offset",{"_index":1448,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["offshoot",{"_index":1006,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["ok",{"_index":879,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["older",{"_index":1580,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["oldest",{"_index":1536,"title":{},"name":{},"text":{"32":{},"33":{},"67":{},"68":{},"100":{},"101":{},"135":{},"136":{}},"component":{}}],["omni_off",{"_index":2040,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["omni_on",{"_index":2042,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["on",{"_index":207,"title":{"35":{},"103":{}},"name":{},"text":{"2":{},"3":{},"4":{},"9":{},"10":{},"25":{},"26":{},"27":{},"32":{},"33":{},"35":{},"37":{},"38":{},"40":{},"42":{},"44":{},"48":{},"51":{},"56":{},"59":{},"63":{},"70":{},"71":{},"72":{},"77":{},"78":{},"93":{},"94":{},"95":{},"100":{},"101":{},"103":{},"105":{},"106":{},"108":{},"110":{},"112":{},"116":{},"119":{},"124":{},"127":{},"131":{}},"component":{}}],["onc",{"_index":1778,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["one_pole_lowpass",{"_index":1607,"title":{},"name":{"35":{},"103":{}},"text":{"35":{},"103":{}},"component":{}}],["one_pole_lowpass(b",{"_index":1616,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["one_pole_lowpass(f",{"_index":1615,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["one_pole_lowpass(frequ",{"_index":1613,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["onscreen",{"_index":621,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["onset",{"_index":494,"title":{"36":{},"104":{}},"name":{},"text":{"3":{},"8":{},"34":{},"36":{},"71":{},"76":{},"102":{},"104":{}},"component":{}}],["onset_g",{"_index":402,"title":{},"name":{"36":{},"104":{}},"text":{"2":{},"36":{},"70":{},"104":{}},"component":{}}],["onset_gate(ot",{"_index":1624,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["onset_threshold",{"_index":1591,"title":{},"name":{},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["onset_threshold(decibel",{"_index":1593,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["onset_threshold(float",{"_index":1594,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["op",{"_index":2079,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["open",{"_index":465,"title":{},"name":{},"text":{"3":{},"9":{},"34":{},"39":{},"71":{},"77":{},"102":{},"107":{}},"component":{}}],["oper",{"_index":67,"title":{"48-18":{},"116-18":{}},"name":{},"text":{"2":{},"6":{},"7":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"38":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"59":{},"60":{},"61":{},"65":{},"66":{},"67":{},"68":{},"70":{},"74":{},"75":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"106":{},"107":{},"109":{},"111":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"127":{},"128":{},"129":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["operand",{"_index":1161,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["operator()(decibel",{"_index":1219,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["operator()(float",{"_index":354,"title":{},"name":{},"text":{"2":{},"7":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"36":{},"70":{},"74":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"102":{},"103":{},"104":{}},"component":{}}],["operator()(index_typ",{"_index":1497,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["operator()(message_bas",{"_index":2078,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["operator()(midi::channel_aftertouch",{"_index":1800,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(midi::control_chang",{"_index":1794,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(midi::note_off",{"_index":784,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["operator()(midi::note_on",{"_index":771,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["operator()(midi::pitch_bend",{"_index":1801,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(midi::poly_aftertouch",{"_index":1789,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(midi::program_chang",{"_index":1797,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(phas",{"_index":729,"title":{},"name":{},"text":{"4":{},"53":{},"54":{},"56":{},"57":{},"58":{},"72":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["operator()(phase_iter",{"_index":740,"title":{},"name":{},"text":{"4":{},"53":{},"54":{},"56":{},"57":{},"58":{},"72":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["operator()(t",{"_index":1543,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["operator()(value_typ",{"_index":1498,"title":{},"name":{},"text":{"31":{},"33":{},"99":{},"101":{}},"component":{}}],["operator+(pitch",{"_index":2559,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["operator++(int",{"_index":2521,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["operator+=(pitch",{"_index":2552,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["operator=(bool",{"_index":1614,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["operator=(envelope_seg",{"_index":2186,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["operator=(float",{"_index":1334,"title":{},"name":{},"text":{"25":{},"29":{},"30":{},"93":{},"97":{},"98":{}},"component":{}}],["operator=(phas",{"_index":2522,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["operator=(phase_iter",{"_index":2524,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["operator=(ring_buff",{"_index":2592,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["operator=(wav_bas",{"_index":1660,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["operator[](index",{"_index":2571,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["operator[](std::size_t",{"_index":2119,"title":{},"name":{},"text":{"46":{},"68":{},"114":{},"136":{}},"component":{}}],["optim",{"_index":1417,"title":{},"name":{},"text":{"28":{},"32":{},"39":{},"50":{},"55":{},"56":{},"96":{},"100":{},"107":{},"118":{},"123":{},"124":{}},"component":{}}],["option",{"_index":45,"title":{},"name":{},"text":{"2":{},"9":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"33":{},"39":{},"44":{},"49":{},"67":{},"68":{},"70":{},"77":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"101":{},"107":{},"112":{},"117":{},"135":{},"136":{}},"component":{}}],["orang",{"_index":1430,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["order",{"_index":616,"title":{},"name":{},"text":{"4":{},"5":{},"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"59":{},"68":{},"72":{},"73":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"127":{},"136":{}},"component":{}}],["organ",{"_index":87,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["origin",{"_index":1463,"title":{},"name":{},"text":{"31":{},"33":{},"39":{},"99":{},"101":{},"107":{}},"component":{}}],["oscal",{"_index":2338,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["oscil",{"_index":180,"title":{"10":{},"53":{},"54":{},"56":{},"57":{},"58":{},"78":{},"121":{},"122":{},"124":{},"125":{},"126":{},"4-6":{},"10-2":{},"72-6":{},"78-2":{}},"name":{},"text":{"2":{},"3":{},"4":{},"10":{},"31":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"61":{},"63":{},"64":{},"70":{},"71":{},"72":{},"78":{},"99":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"129":{},"131":{},"132":{}},"component":{}}],["oscillator(o",{"_index":1065,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["oscillator,sin_cos_gen",{"_index":2343,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["ot",{"_index":1597,"title":{},"name":{},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["otherwis",{"_index":1581,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ought",{"_index":2401,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["out",{"_index":43,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"6":{},"21":{},"23":{},"26":{},"32":{},"33":{},"36":{},"39":{},"42":{},"59":{},"70":{},"72":{},"73":{},"75":{},"89":{},"91":{},"94":{},"100":{},"101":{},"104":{},"107":{},"110":{},"127":{}},"component":{}}],["out.fram",{"_index":682,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["out[0",{"_index":679,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["out[1",{"_index":680,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["out_channel",{"_index":1748,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["output",{"_index":169,"title":{"27-3":{},"95-3":{}},"name":{},"text":{"2":{},"4":{},"6":{},"8":{},"9":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"37":{},"38":{},"39":{},"40":{},"42":{},"48":{},"59":{},"70":{},"72":{},"75":{},"76":{},"77":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"105":{},"106":{},"107":{},"108":{},"110":{},"116":{},"127":{}},"component":{}}],["output_channel",{"_index":1631,"title":{},"name":{},"text":{"37":{},"39":{},"105":{},"107":{}},"component":{}}],["output_lat",{"_index":1712,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["outsid",{"_index":915,"title":{},"name":{},"text":{"6":{},"31":{},"48":{},"75":{},"99":{},"116":{}},"component":{}}],["over",{"_index":454,"title":{},"name":{},"text":{"3":{},"4":{},"10":{},"26":{},"28":{},"36":{},"48":{},"49":{},"55":{},"65":{},"71":{},"72":{},"78":{},"94":{},"96":{},"104":{},"116":{},"117":{},"123":{},"133":{}},"component":{}}],["overlap",{"_index":313,"title":{},"name":{},"text":{"2":{},"6":{},"70":{},"75":{}},"component":{}}],["overload",{"_index":2081,"title":{},"name":{},"text":{"45":{},"67":{},"113":{},"135":{}},"component":{}}],["overrid",{"_index":1809,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["overton",{"_index":2362,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["overview",{"_index":23,"title":{"6-1":{},"7-1":{},"9-1":{},"10-1":{},"11-1":{},"12-1":{},"13-1":{},"14-1":{},"15-1":{},"16-1":{},"17-1":{},"18-1":{},"19-1":{},"20-1":{},"21-1":{},"22-1":{},"23-1":{},"24-1":{},"25-1":{},"26-1":{},"27-1":{},"28-1":{},"29-1":{},"30-1":{},"31-1":{},"32-1":{},"33-1":{},"34-1":{},"35-1":{},"36-1":{},"37-1":{},"38-1":{},"39-1":{},"40-1":{},"41-1":{},"42-1":{},"43-1":{},"44-1":{},"45-1":{},"46-1":{},"47-1":{},"48-1":{},"49-1":{},"50-1":{},"51-1":{},"52-1":{},"53-1":{},"54-1":{},"55-1":{},"56-1":{},"57-1":{},"58-1":{},"59-1":{},"60-1":{},"61-1":{},"62-1":{},"63-1":{},"64-1":{},"65-1":{},"66-1":{},"67-1":{},"68-1":{},"74-1":{},"75-1":{},"77-1":{},"78-1":{},"79-1":{},"80-1":{},"81-1":{},"82-1":{},"83-1":{},"84-1":{},"85-1":{},"86-1":{},"87-1":{},"88-1":{},"89-1":{},"90-1":{},"91-1":{},"92-1":{},"93-1":{},"94-1":{},"95-1":{},"96-1":{},"97-1":{},"98-1":{},"99-1":{},"100-1":{},"101-1":{},"102-1":{},"103-1":{},"104-1":{},"105-1":{},"106-1":{},"107-1":{},"108-1":{},"109-1":{},"110-1":{},"111-1":{},"112-1":{},"113-1":{},"114-1":{},"115-1":{},"116-1":{},"117-1":{},"118-1":{},"119-1":{},"120-1":{},"121-1":{},"122-1":{},"123-1":{},"124-1":{},"125-1":{},"126-1":{},"127-1":{},"128-1":{},"129-1":{},"130-1":{},"131-1":{},"132-1":{},"133-1":{},"134-1":{},"135-1":{},"136-1":{}},"name":{},"text":{"2":{},"70":{}},"component":{}}],["overwrit",{"_index":2588,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["p",{"_index":730,"title":{},"name":{},"text":{"4":{},"38":{},"45":{},"53":{},"54":{},"56":{},"57":{},"58":{},"63":{},"64":{},"65":{},"66":{},"72":{},"106":{},"113":{},"121":{},"122":{},"124":{},"125":{},"126":{},"131":{},"132":{},"133":{},"134":{}},"component":{}}],["p.rep",{"_index":2561,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["p.valid",{"_index":2565,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["packag",{"_index":860,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["pan",{"_index":1912,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["pan_lsb",{"_index":1943,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["parallel",{"_index":1429,"title":{},"name":{},"text":{"29":{},"46":{},"97":{},"114":{}},"component":{}}],["paramet",{"_index":430,"title":{},"name":{},"text":{"3":{},"4":{},"7":{},"8":{},"9":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"31":{},"32":{},"33":{},"34":{},"36":{},"44":{},"46":{},"48":{},"49":{},"52":{},"56":{},"71":{},"72":{},"74":{},"76":{},"77":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{},"99":{},"100":{},"101":{},"102":{},"104":{},"112":{},"114":{},"116":{},"117":{},"120":{},"124":{}},"component":{}}],["parameter",{"_index":1364,"title":{},"name":{},"text":{"26":{},"27":{},"62":{},"68":{},"94":{},"95":{},"130":{},"136":{}},"component":{}}],["paramnet",{"_index":2237,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["paratemet",{"_index":2120,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["part",{"_index":456,"title":{},"name":{},"text":{"3":{},"10":{},"71":{},"78":{}},"component":{}}],["parti",{"_index":110,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["particular",{"_index":976,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["particularli",{"_index":940,"title":{},"name":{},"text":{"7":{},"8":{},"74":{},"76":{}},"component":{}}],["pass",{"_index":350,"title":{"12":{},"13":{},"14":{},"15":{},"17":{},"35":{},"80":{},"81":{},"82":{},"83":{},"85":{},"103":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"12":{},"13":{},"14":{},"15":{},"17":{},"23":{},"26":{},"29":{},"30":{},"32":{},"35":{},"36":{},"37":{},"40":{},"46":{},"48":{},"70":{},"71":{},"72":{},"74":{},"75":{},"80":{},"81":{},"82":{},"83":{},"85":{},"91":{},"94":{},"97":{},"98":{},"100":{},"103":{},"104":{},"105":{},"108":{},"114":{},"116":{}},"component":{}}],["passag",{"_index":1728,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["path",{"_index":1412,"title":{},"name":{},"text":{"28":{},"38":{},"96":{},"106":{}},"component":{}}],["peak",{"_index":480,"title":{"13":{},"20":{},"29":{},"81":{},"88":{},"97":{}},"name":{"20":{},"88":{}},"text":{"3":{},"7":{},"8":{},"13":{},"14":{},"20":{},"22":{},"25":{},"27":{},"29":{},"48":{},"49":{},"71":{},"74":{},"76":{},"81":{},"82":{},"88":{},"90":{},"93":{},"95":{},"97":{},"116":{},"117":{}},"component":{}}],["peak_envelope_follow",{"_index":1427,"title":{},"name":{"29":{},"97":{}},"text":{"29":{},"97":{}},"component":{}}],["peak_envelope_follower(dur",{"_index":1442,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["peak_envelope_follower(env",{"_index":1445,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["peak_envelope_follower(rel",{"_index":1444,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["peaking(doubl",{"_index":1205,"title":{},"name":{},"text":{"20":{},"88":{}},"component":{}}],["peaking(g",{"_index":1206,"title":{},"name":{},"text":{"20":{},"88":{}},"component":{}}],["peer",{"_index":549,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["per",{"_index":189,"title":{},"name":{},"text":{"2":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"36":{},"38":{},"39":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"61":{},"64":{},"65":{},"70":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"103":{},"104":{},"106":{},"107":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"129":{},"132":{},"133":{}},"component":{}}],["perceiv",{"_index":972,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["perfectli",{"_index":2389,"title":{},"name":{},"text":{"59":{},"64":{},"127":{},"132":{}},"component":{}}],["perform",{"_index":177,"title":{},"name":{},"text":{"2":{},"6":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"29":{},"32":{},"38":{},"44":{},"46":{},"56":{},"59":{},"70":{},"75":{},"89":{},"90":{},"91":{},"92":{},"93":{},"95":{},"97":{},"100":{},"106":{},"112":{},"114":{},"124":{},"127":{}},"component":{}}],["perhap",{"_index":753,"title":{},"name":{},"text":{"4":{},"25":{},"27":{},"29":{},"72":{},"93":{},"95":{},"97":{}},"component":{}}],["period",{"_index":196,"title":{"63":{},"131":{}},"name":{"63":{},"131":{}},"text":{"2":{},"3":{},"10":{},"11":{},"25":{},"26":{},"27":{},"28":{},"31":{},"36":{},"55":{},"61":{},"63":{},"64":{},"70":{},"71":{},"78":{},"79":{},"93":{},"94":{},"95":{},"96":{},"99":{},"104":{},"123":{},"129":{},"131":{},"132":{}},"component":{}}],["period(dur",{"_index":2483,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["period(frequ",{"_index":2484,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["permit",{"_index":2173,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["ph",{"_index":1071,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["phase",{"_index":182,"title":{"64":{},"132":{},"48-2":{},"116-2":{}},"name":{"64":{},"132":{}},"text":{"2":{},"3":{},"4":{},"8":{},"10":{},"11":{},"25":{},"26":{},"29":{},"47":{},"48":{},"50":{},"51":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"64":{},"65":{},"70":{},"71":{},"72":{},"76":{},"78":{},"79":{},"93":{},"94":{},"97":{},"115":{},"116":{},"118":{},"119":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"132":{},"133":{}},"component":{}}],["phase(0",{"_index":2510,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase(d",{"_index":2485,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["phase(f",{"_index":2486,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["phase(freq",{"_index":2511,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase(frequ",{"_index":2505,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase::begin",{"_index":2516,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase::end",{"_index":2517,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase::middl",{"_index":733,"title":{},"name":{},"text":{"4":{},"64":{},"72":{},"132":{}},"component":{}}],["phase_iter",{"_index":473,"title":{"65":{},"133":{}},"name":{"65":{},"133":{}},"text":{"3":{},"4":{},"10":{},"64":{},"65":{},"71":{},"72":{},"78":{},"132":{},"133":{}},"component":{}}],["phase_iterator(freq",{"_index":2527,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["phase_iterator(frequ",{"_index":2520,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["phase_iterator(i",{"_index":2528,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["phase_unit",{"_index":2504,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phaser",{"_index":2019,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["phase’",{"_index":2179,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["physic",{"_index":620,"title":{},"name":{},"text":{"4":{},"11":{},"32":{},"33":{},"72":{},"79":{},"100":{},"101":{}},"component":{}}],["pi",{"_index":14,"title":{"2-11":{},"70-11":{}},"name":{},"text":{"2":{},"10":{},"70":{},"78":{}},"component":{}}],["pick",{"_index":1317,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["pink",{"_index":1359,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["pitch",{"_index":121,"title":{"66":{},"134":{}},"name":{"66":{},"134":{}},"text":{"2":{},"3":{},"8":{},"41":{},"44":{},"62":{},"66":{},"70":{},"71":{},"76":{},"109":{},"112":{},"130":{},"134":{}},"component":{}}],["pitch(f",{"_index":2560,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["pitch(frequ",{"_index":2550,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["pitch_bend",{"_index":1836,"title":{"44-14":{},"112-14":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["pitch_bend(std::uint8_t",{"_index":2051,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["place",{"_index":137,"title":{},"name":{},"text":{"2":{},"4":{},"41":{},"45":{},"54":{},"56":{},"57":{},"58":{},"70":{},"72":{},"109":{},"113":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["plain",{"_index":1360,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["platform",{"_index":39,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"9":{},"37":{},"70":{},"71":{},"73":{},"77":{},"105":{}},"component":{}}],["play",{"_index":525,"title":{},"name":{},"text":{"3":{},"4":{},"5":{},"71":{},"72":{},"73":{}},"component":{}}],["playabl",{"_index":658,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["plot",{"_index":1316,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"48":{},"93":{},"94":{},"95":{},"96":{},"97":{},"116":{}},"component":{}}],["plugin",{"_index":70,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["point",{"_index":148,"title":{"6-3":{},"75-3":{}},"name":{},"text":{"2":{},"4":{},"6":{},"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":{},"38":{},"39":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"60":{},"61":{},"62":{},"64":{},"65":{},"70":{},"72":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"106":{},"107":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"128":{},"129":{},"130":{},"132":{},"133":{}},"component":{}}],["pointer",{"_index":1685,"title":{},"name":{},"text":{"38":{},"46":{},"106":{},"114":{}},"component":{}}],["pole",{"_index":495,"title":{"35":{},"103":{}},"name":{},"text":{"3":{},"35":{},"71":{},"103":{}},"component":{}}],["poli",{"_index":2045,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["poly_aftertouch",{"_index":1832,"title":{"44-10":{},"112-10":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["poly_blep",{"_index":714,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["poly_blep(p",{"_index":738,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["polyblamp",{"_index":2372,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["polyblep",{"_index":2309,"title":{},"name":{},"text":{"53":{},"54":{},"57":{},"121":{},"122":{},"125":{}},"component":{}}],["polynomi",{"_index":2378,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["polyphon",{"_index":1790,"title":{},"name":{},"text":{"41":{},"48":{},"109":{},"116":{}},"component":{}}],["poorli",{"_index":1407,"title":{},"name":{},"text":{"27":{},"32":{},"95":{},"100":{}},"component":{}}],["pop",{"_index":2601,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["pop_front",{"_index":2595,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["port",{"_index":66,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["portamento",{"_index":1960,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["portamento_control",{"_index":2000,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["portamento_tim",{"_index":1904,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["portamento_time_lsb",{"_index":1935,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["portaudio",{"_index":57,"title":{},"name":{},"text":{"2":{},"5":{},"70":{},"73":{}},"component":{}}],["portmidi",{"_index":58,"title":{},"name":{},"text":{"2":{},"5":{},"70":{},"73":{}},"component":{}}],["posit",{"_index":1150,"title":{},"name":{},"text":{"11":{},"25":{},"27":{},"29":{},"32":{},"33":{},"38":{},"44":{},"66":{},"79":{},"93":{},"95":{},"97":{},"100":{},"101":{},"106":{},"112":{},"134":{}},"component":{}}],["possibl",{"_index":569,"title":{},"name":{},"text":{"4":{},"11":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"39":{},"48":{},"68":{},"72":{},"79":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{},"107":{},"116":{},"136":{}},"component":{}}],["post",{"_index":2529,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["potenti",{"_index":217,"title":{},"name":{},"text":{"2":{},"11":{},"70":{},"79":{}},"component":{}}],["pow2",{"_index":2547,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["power",{"_index":361,"title":{},"name":{},"text":{"2":{},"3":{},"6":{},"10":{},"51":{},"59":{},"68":{},"70":{},"71":{},"75":{},"78":{},"119":{},"127":{},"136":{}},"component":{}}],["practic",{"_index":2212,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["pre",{"_index":369,"title":{},"name":{},"text":{"2":{},"4":{},"31":{},"32":{},"33":{},"65":{},"70":{},"72":{},"99":{},"100":{},"101":{},"133":{}},"component":{}}],["precalcul",{"_index":2310,"title":{},"name":{},"text":{"53":{},"54":{},"57":{},"121":{},"122":{},"125":{}},"component":{}}],["precis",{"_index":993,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["preferr",{"_index":617,"title":{},"name":{},"text":{"4":{},"59":{},"60":{},"61":{},"72":{},"127":{},"128":{},"129":{}},"component":{}}],["preprocess",{"_index":1329,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["prerequisit",{"_index":1803,"title":{},"name":{},"text":{"42":{},"45":{},"46":{},"65":{},"110":{},"113":{},"114":{},"133":{}},"component":{}}],["present",{"_index":624,"title":{},"name":{},"text":{"4":{},"39":{},"42":{},"46":{},"55":{},"72":{},"107":{},"110":{},"114":{},"123":{}},"component":{}}],["preset",{"_index":1798,"title":{},"name":{},"text":{"41":{},"44":{},"109":{},"112":{}},"component":{}}],["press",{"_index":813,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["pressur",{"_index":1792,"title":{},"name":{},"text":{"41":{},"44":{},"109":{},"112":{}},"component":{}}],["pretti",{"_index":566,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["prevent",{"_index":1081,"title":{},"name":{},"text":{"10":{},"22":{},"36":{},"65":{},"78":{},"90":{},"104":{},"133":{}},"component":{}}],["previou",{"_index":1435,"title":{},"name":{},"text":{"29":{},"46":{},"48":{},"59":{},"65":{},"97":{},"114":{},"116":{},"127":{},"133":{}},"component":{}}],["previous",{"_index":1045,"title":{},"name":{},"text":{"10":{},"21":{},"44":{},"78":{},"89":{},"112":{}},"component":{}}],["primarili",{"_index":315,"title":{},"name":{},"text":{"2":{},"9":{},"32":{},"70":{},"77":{},"100":{}},"component":{}}],["princip",{"_index":532,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["print",{"_index":886,"title":{},"name":{},"text":{"5":{},"44":{},"73":{},"112":{}},"component":{}}],["prior",{"_index":2530,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["privat",{"_index":393,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["proc",{"_index":810,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["proc(msg",{"_index":2072,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["procedur",{"_index":846,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["process",{"_index":161,"title":{"4-7":{},"41-9":{},"72-7":{},"109-9":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"39":{},"41":{},"42":{},"45":{},"46":{},"47":{},"59":{},"64":{},"70":{},"71":{},"72":{},"74":{},"75":{},"76":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"102":{},"103":{},"107":{},"109":{},"110":{},"113":{},"114":{},"115":{},"127":{},"132":{}},"component":{}}],["process(in_channel",{"_index":1747,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["process(out_channel",{"_index":678,"title":{},"name":{},"text":{"4":{},"42":{},"72":{},"110":{}},"component":{}}],["process(processor",{"_index":1773,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["processor",{"_index":129,"title":{"45":{},"113":{},"45-8":{},"113-8":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"34":{},"39":{},"41":{},"42":{},"45":{},"70":{},"71":{},"72":{},"75":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"102":{},"107":{},"109":{},"110":{},"113":{}},"component":{}}],["produc",{"_index":529,"title":{},"name":{},"text":{"3":{},"24":{},"31":{},"49":{},"54":{},"55":{},"71":{},"92":{},"99":{},"117":{},"122":{},"123":{}},"component":{}}],["product",{"_index":1040,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["program",{"_index":106,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"41":{},"44":{},"45":{},"70":{},"71":{},"72":{},"73":{},"109":{},"112":{},"113":{}},"component":{}}],["program_chang",{"_index":1834,"title":{"44-12":{},"112-12":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["program_change(std::uint8_t",{"_index":2049,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["programm",{"_index":746,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["programmat",{"_index":2307,"title":{},"name":{},"text":{"53":{},"54":{},"57":{},"58":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["progress",{"_index":710,"title":{},"name":{},"text":{"4":{},"25":{},"72":{},"93":{}},"component":{}}],["project",{"_index":464,"title":{"5-5":{},"73-5":{}},"name":{},"text":{"3":{},"5":{},"71":{},"73":{}},"component":{}}],["promot",{"_index":1111,"title":{"11-12":{},"79-12":{}},"name":{},"text":{"11":{},"79":{}},"component":{}}],["prone",{"_index":1538,"title":{},"name":{},"text":{"32":{},"33":{},"100":{},"101":{}},"component":{}}],["pronounc",{"_index":2267,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["properti",{"_index":978,"title":{},"name":{},"text":{"8":{},"9":{},"31":{},"40":{},"76":{},"77":{},"99":{},"108":{}},"component":{}}],["protocol",{"_index":1846,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["prototyp",{"_index":2213,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["provid",{"_index":21,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"10":{},"11":{},"31":{},"41":{},"42":{},"45":{},"48":{},"59":{},"67":{},"70":{},"72":{},"77":{},"78":{},"79":{},"99":{},"109":{},"110":{},"113":{},"116":{},"127":{},"135":{}},"component":{}}],["provis",{"_index":1479,"title":{},"name":{},"text":{"31":{},"33":{},"36":{},"99":{},"101":{},"104":{}},"component":{}}],["ps",{"_index":2315,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["ps.width(w",{"_index":2318,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["public",{"_index":1486,"title":{},"name":{},"text":{"31":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"46":{},"63":{},"67":{},"68":{},"99":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"114":{},"131":{},"135":{},"136":{}},"component":{}}],["publicli",{"_index":1544,"title":{},"name":{},"text":{"32":{},"36":{},"39":{},"48":{},"63":{},"67":{},"100":{},"104":{},"107":{},"116":{},"131":{},"135":{}},"component":{}}],["puls",{"_index":501,"title":{"53":{},"121":{}},"name":{},"text":{"3":{},"10":{},"53":{},"57":{},"71":{},"78":{},"121":{},"125":{}},"component":{}}],["pulse_osc",{"_index":2306,"title":{},"name":{"53":{},"121":{}},"text":{"53":{},"121":{}},"component":{}}],["pulse_osc(float",{"_index":2314,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["pulse_osc(w",{"_index":2317,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["pure",{"_index":2333,"title":{},"name":{},"text":{"55":{},"56":{},"123":{},"124":{}},"component":{}}],["purpos",{"_index":1769,"title":{},"name":{},"text":{"41":{},"42":{},"45":{},"48":{},"64":{},"109":{},"110":{},"113":{},"116":{},"132":{}},"component":{}}],["push",{"_index":1512,"title":{},"name":{},"text":{"31":{},"32":{},"33":{},"68":{},"99":{},"100":{},"101":{},"136":{}},"component":{}}],["push(t",{"_index":2593,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["q",{"_index":1,"title":{"3":{},"71":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"24":{},"34":{},"37":{},"40":{},"43":{},"44":{},"45":{},"47":{},"49":{},"50":{},"51":{},"52":{},"55":{},"59":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"90":{},"92":{},"102":{},"105":{},"108":{},"111":{},"112":{},"113":{},"115":{},"117":{},"118":{},"119":{},"120":{},"123":{},"127":{}},"component":{"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":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}}}],["q/build",{"_index":853,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["q::adsr_envelope_gen",{"_index":691,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::adsr_envelope_gen::config",{"_index":2238,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["q::adsr_envelope_gen{env_cfg",{"_index":2241,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["q::audio_device::list",{"_index":1648,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["q::audio_stream",{"_index":668,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["q::delay",{"_index":576,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::envelope::config",{"_index":800,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::liter",{"_index":261,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["q::lowpass",{"_index":600,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::midi_1_0::message_bas",{"_index":2071,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["q::midi_device::list",{"_index":1763,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["q::midi_input_stream",{"_index":809,"title":{},"name":{},"text":{"4":{},"41":{},"72":{},"109":{}},"component":{}}],["q::period",{"_index":2441,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["q::phase_iter",{"_index":689,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::reso_filt",{"_index":692,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::soft_clip",{"_index":693,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::square(phas",{"_index":685,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q_io",{"_index":34,"title":{},"name":{"9":{},"77":{}},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["q_lib",{"_index":46,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["qualiti",{"_index":432,"title":{},"name":{},"text":{"3":{},"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"71":{},"75":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["quantifi",{"_index":1130,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["quantum",{"_index":632,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["quasi",{"_index":2377,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["quick",{"_index":470,"title":{"4":{},"72":{}},"name":{},"text":{"3":{},"4":{},"71":{},"72":{}},"component":{}}],["quick_start",{"_index":556,"title":{},"name":{"4":{},"72":{}},"text":{},"component":{}}],["quickli",{"_index":1434,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["quietest",{"_index":893,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["q’",{"_index":1587,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["r",{"_index":344,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"22":{},"23":{},"24":{},"38":{},"50":{},"70":{},"72":{},"78":{},"90":{},"91":{},"92":{},"106":{},"118":{}},"component":{}}],["r.length",{"_index":1691,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.posit",{"_index":1692,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.read(b",{"_index":1690,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.read(d",{"_index":1689,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.reset",{"_index":1107,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["r.restart",{"_index":1687,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.seek(p",{"_index":1688,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["rad",{"_index":2534,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["radian",{"_index":2499,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["rais",{"_index":913,"title":{},"name":{},"text":{"6":{},"51":{},"75":{},"119":{}},"component":{}}],["ramp",{"_index":509,"title":{"49":{},"52":{},"117":{},"120":{},"10-24":{},"47-8":{},"51-8":{},"78-24":{},"115-8":{},"119-8":{}},"name":{},"text":{"3":{},"10":{},"26":{},"47":{},"48":{},"49":{},"51":{},"52":{},"58":{},"71":{},"78":{},"94":{},"115":{},"116":{},"117":{},"119":{},"120":{},"126":{}},"component":{}}],["ramp(",{"_index":1095,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["ramp(w",{"_index":1106,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["ramp`",{"_index":1099,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["random",{"_index":1524,"title":{},"name":{},"text":{"32":{},"43":{},"46":{},"100":{},"111":{},"114":{}},"component":{}}],["randomaccessiterat",{"_index":1814,"title":{"43-7":{},"111-7":{}},"name":{},"text":{"43":{},"46":{},"111":{},"114":{}},"component":{}}],["rang",{"_index":153,"title":{},"name":{},"text":{"2":{},"6":{},"8":{},"10":{},"11":{},"23":{},"28":{},"43":{},"44":{},"46":{},"49":{},"70":{},"75":{},"76":{},"78":{},"79":{},"91":{},"96":{},"111":{},"112":{},"114":{},"117":{}},"component":{}}],["rate",{"_index":589,"title":{},"name":{},"text":{"4":{},"9":{},"10":{},"33":{},"37":{},"38":{},"39":{},"48":{},"50":{},"64":{},"65":{},"72":{},"77":{},"78":{},"101":{},"105":{},"106":{},"107":{},"116":{},"118":{},"132":{},"133":{}},"component":{}}],["ratio",{"_index":206,"title":{},"name":{},"text":{"2":{},"6":{},"22":{},"23":{},"24":{},"59":{},"70":{},"75":{},"90":{},"91":{},"92":{},"127":{}},"component":{}}],["ratio(float",{"_index":1241,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["rational",{"_index":2104,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["raw",{"_index":174,"title":{"44-5":{},"112-5":{}},"name":{},"text":{"2":{},"4":{},"11":{},"38":{},"44":{},"45":{},"70":{},"72":{},"79":{},"106":{},"112":{},"113":{}},"component":{}}],["raw_messag",{"_index":1861,"title":{},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["rb",{"_index":2573,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb.back",{"_index":2605,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.clear",{"_index":2599,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.front",{"_index":2604,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.pop_front",{"_index":2600,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.push(val",{"_index":2598,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.size",{"_index":2586,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb.store",{"_index":2606,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb[0",{"_index":2583,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb[2.5",{"_index":2585,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb[i",{"_index":2582,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb[rb.size",{"_index":2584,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type",{"_index":2572,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type(",{"_index":2596,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb_type(rb",{"_index":2597,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb_type1",{"_index":2574,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type2",{"_index":2575,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type3",{"_index":2576,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb_type4",{"_index":2577,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb_type::index_typ",{"_index":2580,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb_type::interpolation_typ",{"_index":2581,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb_type::storage_typ",{"_index":2579,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type::value_typ",{"_index":2578,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["read",{"_index":755,"title":{},"name":{},"text":{"4":{},"9":{},"38":{},"42":{},"45":{},"46":{},"65":{},"72":{},"77":{},"106":{},"110":{},"113":{},"114":{},"133":{}},"component":{}}],["read(concepts::indexablecontain",{"_index":1682,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["read(float",{"_index":1679,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["readabl",{"_index":260,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"39":{},"70":{},"71":{},"72":{},"107":{}},"component":{}}],["reader",{"_index":726,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["readi",{"_index":883,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["real",{"_index":1732,"title":{},"name":{},"text":{"39":{},"56":{},"107":{},"124":{}},"component":{}}],["realm",{"_index":307,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["reason",{"_index":222,"title":{},"name":{},"text":{"2":{},"4":{},"39":{},"70":{},"72":{},"107":{}},"component":{}}],["recalcul",{"_index":1572,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["receiv",{"_index":317,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"41":{},"45":{},"48":{},"70":{},"72":{},"75":{},"109":{},"113":{},"116":{}},"component":{}}],["reciproc",{"_index":2447,"title":{},"name":{},"text":{"61":{},"63":{},"129":{},"131":{}},"component":{}}],["recommend",{"_index":1404,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["record",{"_index":561,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["recurs",{"_index":844,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["red",{"_index":1398,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["reduc",{"_index":974,"title":{},"name":{},"text":{"8":{},"22":{},"23":{},"24":{},"29":{},"32":{},"34":{},"47":{},"53":{},"54":{},"55":{},"57":{},"58":{},"76":{},"90":{},"91":{},"92":{},"97":{},"100":{},"102":{},"115":{},"121":{},"122":{},"123":{},"125":{},"126":{}},"component":{}}],["reduct",{"_index":1260,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"35":{},"50":{},"90":{},"91":{},"92":{},"103":{},"118":{}},"component":{}}],["ref",{"_index":1210,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["refer",{"_index":472,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"21":{},"33":{},"64":{},"65":{},"67":{},"68":{},"71":{},"72":{},"75":{},"76":{},"89":{},"101":{},"132":{},"133":{},"135":{},"136":{}},"component":{}}],["refin",{"_index":1067,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["regard",{"_index":2587,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["region",{"_index":928,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["regular",{"_index":1705,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["rel",{"_index":1342,"title":{},"name":{},"text":{"25":{},"29":{},"48":{},"59":{},"64":{},"93":{},"97":{},"116":{},"127":{},"132":{}},"component":{}}],["relat",{"_index":131,"title":{},"name":{},"text":{"2":{},"3":{},"8":{},"70":{},"71":{},"76":{}},"component":{}}],["relationship",{"_index":2381,"title":{},"name":{},"text":{"59":{},"64":{},"127":{},"132":{}},"component":{}}],["releas",{"_index":466,"title":{},"name":{},"text":{"3":{},"4":{},"10":{},"25":{},"29":{},"34":{},"36":{},"44":{},"48":{},"71":{},"72":{},"78":{},"93":{},"97":{},"102":{},"104":{},"112":{},"116":{}},"component":{}}],["release(dur",{"_index":1443,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["release(float",{"_index":1339,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["release_",{"_index":1340,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["release_r",{"_index":2223,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["release_rate(dur",{"_index":2229,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["release_threshold",{"_index":1592,"title":{},"name":{},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["release_threshold(decibel",{"_index":1595,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["release_threshold(float",{"_index":1596,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["relev",{"_index":1609,"title":{},"name":{},"text":{"35":{},"41":{},"45":{},"64":{},"103":{},"109":{},"113":{},"132":{}},"component":{}}],["remain",{"_index":2244,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["remov",{"_index":1459,"title":{},"name":{},"text":{"30":{},"48":{},"53":{},"54":{},"57":{},"58":{},"98":{},"116":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["repeat",{"_index":1470,"title":{},"name":{},"text":{"31":{},"66":{},"99":{},"134":{}},"component":{}}],["repetit",{"_index":1462,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["replac",{"_index":78,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["repres",{"_index":160,"title":{},"name":{},"text":{"2":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"62":{},"64":{},"65":{},"66":{},"70":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"130":{},"132":{},"133":{},"134":{}},"component":{}}],["represent",{"_index":1054,"title":{},"name":{},"text":{"10":{},"11":{},"46":{},"60":{},"61":{},"63":{},"64":{},"78":{},"79":{},"114":{},"128":{},"129":{},"131":{},"132":{}},"component":{}}],["request",{"_index":1715,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["requir",{"_index":791,"title":{"5-1":{},"73-1":{}},"name":{},"text":{"4":{},"5":{},"8":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"27":{},"31":{},"33":{},"36":{},"41":{},"45":{},"55":{},"62":{},"67":{},"68":{},"72":{},"73":{},"76":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"94":{},"95":{},"99":{},"101":{},"104":{},"109":{},"113":{},"123":{},"130":{},"135":{},"136":{}},"component":{}}],["requires(t",{"_index":1060,"title":{},"name":{},"text":{"10":{},"43":{},"45":{},"78":{},"111":{},"113":{}},"component":{}}],["research",{"_index":457,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["reserv",{"_index":416,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["reset",{"_index":1104,"title":{"44-23":{},"112-23":{}},"name":{},"text":{"10":{},"25":{},"27":{},"29":{},"38":{},"44":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"78":{},"93":{},"95":{},"97":{},"106":{},"112":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{}},"component":{}}],["reset(float",{"_index":2348,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["resid",{"_index":102,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["resistor",{"_index":1305,"title":{},"name":{},"text":{"25":{},"29":{},"49":{},"93":{},"97":{},"117":{}},"component":{}}],["resiz",{"_index":1570,"title":{},"name":{},"text":{"33":{},"68":{},"101":{},"136":{}},"component":{}}],["resize(dur",{"_index":1558,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["resize(std::size_t",{"_index":1556,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["resolut",{"_index":2278,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["reson",{"_index":433,"title":{},"name":{},"text":{"3":{},"4":{},"71":{},"72":{}},"component":{}}],["respect",{"_index":548,"title":{},"name":{},"text":{"3":{},"34":{},"36":{},"55":{},"59":{},"71":{},"102":{},"104":{},"123":{},"127":{}},"component":{}}],["respond",{"_index":660,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["respons",{"_index":914,"title":{"25-2":{},"26-2":{},"27-2":{},"27-4":{},"28-2":{},"29-2":{},"93-2":{},"94-2":{},"95-2":{},"95-4":{},"96-2":{},"97-2":{}},"name":{},"text":{"6":{},"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"32":{},"39":{},"42":{},"74":{},"75":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"100":{},"107":{},"110":{}},"component":{}}],["rest",{"_index":1008,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["restart",{"_index":1676,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["restrict",{"_index":1113,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["resul",{"_index":1156,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["result",{"_index":346,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"11":{},"21":{},"22":{},"23":{},"24":{},"27":{},"28":{},"30":{},"31":{},"35":{},"54":{},"55":{},"59":{},"66":{},"70":{},"72":{},"74":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"95":{},"96":{},"98":{},"99":{},"103":{},"122":{},"123":{},"127":{},"134":{}},"component":{}}],["retain",{"_index":1525,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["retrigger",{"_index":2172,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["return",{"_index":168,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{},"48":{},"55":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"74":{},"75":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"105":{},"106":{},"107":{},"108":{},"109":{},"111":{},"112":{},"113":{},"114":{},"116":{},"123":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["reusabl",{"_index":359,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["rev",{"_index":2495,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["reveal",{"_index":1433,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["reverb",{"_index":2004,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["review",{"_index":550,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["revolut",{"_index":2488,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["rewrap",{"_index":2502,"title":{},"name":{},"text":{"64":{},"65":{},"132":{},"133":{}},"component":{}}],["rh",{"_index":2523,"title":{},"name":{},"text":{"65":{},"68":{},"133":{},"136":{}},"component":{}}],["rich",{"_index":29,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["right",{"_index":415,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"8":{},"29":{},"39":{},"46":{},"70":{},"71":{},"72":{},"73":{},"75":{},"76":{},"97":{},"107":{},"114":{}},"component":{}}],["right[fram",{"_index":687,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["right[i",{"_index":2107,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["right_out",{"_index":1257,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["right_sign",{"_index":1258,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["ring",{"_index":516,"title":{"67":{},"68":{},"135":{},"136":{}},"name":{},"text":{"3":{},"31":{},"33":{},"67":{},"68":{},"71":{},"99":{},"101":{},"135":{},"136":{}},"component":{}}],["ring_buff",{"_index":1484,"title":{},"name":{"68":{},"136":{}},"text":{"31":{},"33":{},"67":{},"68":{},"99":{},"101":{},"135":{},"136":{}},"component":{}}],["ring_buffer(ring_buff",{"_index":2591,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["ring_buffer(std::size_t",{"_index":2590,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["ring_buffer::ring_buff",{"_index":2570,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rippl",{"_index":1333,"title":{"29-3":{},"97-3":{}},"name":{},"text":{"25":{},"26":{},"27":{},"29":{},"93":{},"94":{},"95":{},"97":{}},"component":{}}],["rise",{"_index":736,"title":{},"name":{},"text":{"4":{},"22":{},"24":{},"47":{},"51":{},"72":{},"90":{},"92":{},"115":{},"119":{}},"component":{}}],["rm",{"_index":486,"title":{"28":{},"96":{}},"name":{},"text":{"3":{},"8":{},"28":{},"71":{},"76":{},"96":{}},"component":{}}],["robert",{"_index":944,"title":{},"name":{},"text":{"7":{},"47":{},"74":{},"115":{}},"component":{}}],["robin",{"_index":1390,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["rock",{"_index":528,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["roll",{"_index":1520,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["rolloff",{"_index":2275,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["root",{"_index":1413,"title":{},"name":{},"text":{"28":{},"32":{},"59":{},"96":{},"100":{},"127":{}},"component":{}}],["rot",{"_index":2496,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["rotat",{"_index":2489,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["roughli",{"_index":2330,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["round",{"_index":1389,"title":{},"name":{},"text":{"27":{},"32":{},"33":{},"62":{},"66":{},"95":{},"100":{},"101":{},"130":{},"134":{}},"component":{}}],["round(basic_interv",{"_index":2468,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["round(i",{"_index":2476,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["round(p",{"_index":2566,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["round(pitch",{"_index":2556,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["rout",{"_index":1744,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["rpn_lsb",{"_index":2029,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["rpn_msb",{"_index":2031,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["rt",{"_index":1598,"title":{},"name":{},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["run",{"_index":441,"title":{},"name":{},"text":{"3":{},"4":{},"5":{},"55":{},"64":{},"71":{},"72":{},"73":{},"123":{},"132":{}},"component":{}}],["s",{"_index":230,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"35":{},"36":{},"38":{},"39":{},"46":{},"48":{},"67":{},"68":{},"70":{},"72":{},"74":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"100":{},"101":{},"103":{},"104":{},"106":{},"107":{},"114":{},"116":{},"135":{},"136":{}},"component":{}}],["s.config(l",{"_index":2195,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["s.config(w",{"_index":2194,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["s.level(l",{"_index":2193,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["s1",{"_index":2157,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["s5",{"_index":2158,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sacrif",{"_index":451,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["safe",{"_index":245,"title":{},"name":{},"text":{"2":{},"4":{},"59":{},"60":{},"61":{},"63":{},"64":{},"70":{},"72":{},"127":{},"128":{},"129":{},"131":{},"132":{}},"component":{}}],["sake",{"_index":794,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["same",{"_index":876,"title":{},"name":{},"text":{"5":{},"6":{},"11":{},"26":{},"28":{},"64":{},"65":{},"73":{},"75":{},"79":{},"94":{},"96":{},"132":{},"133":{}},"component":{}}],["sameunit",{"_index":1108,"title":{"11-7":{},"79-7":{}},"name":{},"text":{"11":{},"79":{}},"component":{}}],["sampl",{"_index":150,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"64":{},"65":{},"67":{},"70":{},"72":{},"74":{},"75":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"110":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"132":{},"133":{},"135":{}},"component":{}}],["sample_interpolation::linear",{"_index":2569,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["sample_typ",{"_index":2114,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["sampling_r",{"_index":674,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["satisfi",{"_index":826,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["savvi",{"_index":745,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["saw",{"_index":499,"title":{"54":{},"122":{}},"name":{},"text":{"3":{},"10":{},"54":{},"71":{},"78":{},"122":{}},"component":{}}],["saw_osc",{"_index":2319,"title":{},"name":{"54":{},"122":{}},"text":{"54":{},"122":{}},"component":{}}],["sawtooth",{"_index":1075,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["scalar",{"_index":2391,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["scale",{"_index":208,"title":{},"name":{},"text":{"2":{},"49":{},"59":{},"62":{},"66":{},"70":{},"117":{},"127":{},"130":{},"134":{}},"component":{}}],["scene",{"_index":699,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["scheme",{"_index":987,"title":{},"name":{},"text":{"8":{},"21":{},"22":{},"23":{},"24":{},"33":{},"76":{},"89":{},"90":{},"91":{},"92":{},"101":{}},"component":{}}],["scope",{"_index":267,"title":{},"name":{},"text":{"2":{},"59":{},"60":{},"61":{},"70":{},"127":{},"128":{},"129":{}},"component":{}}],["scratch",{"_index":324,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["sculpt",{"_index":1051,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["second",{"_index":190,"title":{},"name":{},"text":{"2":{},"5":{},"7":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"36":{},"38":{},"39":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"60":{},"63":{},"64":{},"65":{},"70":{},"73":{},"74":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"103":{},"104":{},"106":{},"107":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"128":{},"131":{},"132":{},"133":{}},"component":{}}],["section",{"_index":18,"title":{},"name":{},"text":{"2":{},"8":{},"9":{},"70":{},"76":{},"77":{}},"component":{}}],["see",{"_index":212,"title":{},"name":{},"text":{"2":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"31":{},"37":{},"39":{},"40":{},"41":{},"48":{},"64":{},"65":{},"70":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"95":{},"99":{},"105":{},"107":{},"108":{},"109":{},"116":{},"132":{},"133":{}},"component":{}}],["seek(std::uint64_t",{"_index":1677,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["segment",{"_index":1096,"title":{"48-3":{},"116-3":{}},"name":{},"text":{"10":{},"48":{},"78":{},"116":{}},"component":{}}],["select",{"_index":571,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["self",{"_index":103,"title":{},"name":{},"text":{"2":{},"4":{},"48":{},"70":{},"72":{},"116":{}},"component":{}}],["semant",{"_index":956,"title":{},"name":{},"text":{"7":{},"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":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["semiton",{"_index":2458,"title":{},"name":{},"text":{"62":{},"66":{},"130":{},"134":{}},"component":{}}],["send",{"_index":2005,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sens",{"_index":2551,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["sent",{"_index":2177,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["separ",{"_index":916,"title":{},"name":{},"text":{"6":{},"34":{},"41":{},"46":{},"75":{},"102":{},"109":{},"114":{}},"component":{}}],["sequenc",{"_index":1549,"title":{},"name":{},"text":{"33":{},"48":{},"101":{},"116":{}},"component":{}}],["sequenti",{"_index":2090,"title":{},"name":{},"text":{"46":{},"68":{},"114":{},"136":{}},"component":{}}],["seri",{"_index":1306,"title":{},"name":{},"text":{"25":{},"29":{},"49":{},"93":{},"97":{},"117":{}},"component":{}}],["serv",{"_index":949,"title":{},"name":{},"text":{"7":{},"11":{},"35":{},"48":{},"74":{},"79":{},"103":{},"116":{}},"component":{}}],["set",{"_index":114,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"6":{},"9":{},"10":{},"21":{},"22":{},"23":{},"24":{},"25":{},"29":{},"30":{},"34":{},"35":{},"38":{},"39":{},"41":{},"42":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"64":{},"65":{},"70":{},"72":{},"73":{},"75":{},"77":{},"78":{},"89":{},"90":{},"91":{},"92":{},"93":{},"97":{},"98":{},"102":{},"103":{},"106":{},"107":{},"109":{},"110":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"132":{},"133":{}},"component":{}}],["set(freq",{"_index":2531,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["set(frequ",{"_index":2525,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["set_default_devic",{"_index":1775,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["set_default_device(id",{"_index":1777,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["set_default_device(int",{"_index":1774,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["setup",{"_index":468,"title":{"5":{},"73":{}},"name":{"5":{},"73":{}},"text":{"3":{},"4":{},"71":{},"72":{}},"component":{}}],["shape",{"_index":969,"title":{},"name":{},"text":{"8":{},"10":{},"26":{},"29":{},"31":{},"47":{},"48":{},"51":{},"76":{},"78":{},"94":{},"97":{},"99":{},"115":{},"116":{},"119":{}},"component":{}}],["sharp",{"_index":1526,"title":{},"name":{},"text":{"32":{},"53":{},"54":{},"57":{},"58":{},"100":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["shelf",{"_index":482,"title":{"16":{},"18":{},"84":{},"86":{}},"name":{},"text":{"3":{},"7":{},"16":{},"18":{},"71":{},"74":{},"84":{},"86":{}},"component":{}}],["shelv",{"_index":1185,"title":{},"name":{},"text":{"16":{},"18":{},"84":{},"86":{}},"component":{}}],["shift",{"_index":1355,"title":{},"name":{},"text":{"26":{},"32":{},"33":{},"94":{},"100":{},"101":{}},"component":{}}],["short",{"_index":625,"title":{},"name":{},"text":{"4":{},"25":{},"48":{},"72":{},"93":{},"116":{}},"component":{}}],["shortcut",{"_index":1381,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"component":{}}],["shorter",{"_index":1469,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["show",{"_index":387,"title":{},"name":{},"text":{"2":{},"3":{},"26":{},"27":{},"28":{},"46":{},"70":{},"71":{},"94":{},"95":{},"96":{},"114":{}},"component":{}}],["shown",{"_index":1438,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["side",{"_index":1327,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"47":{},"50":{},"93":{},"95":{},"97":{},"115":{},"118":{}},"component":{}}],["signal",{"_index":156,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"8":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"64":{},"70":{},"71":{},"72":{},"75":{},"76":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"102":{},"103":{},"104":{},"114":{},"115":{},"116":{},"118":{},"119":{},"121":{},"122":{},"123":{},"125":{},"126":{},"127":{},"132":{}},"component":{}}],["signal_conditioner.hpp",{"_index":408,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["signal_conditioner::operator()(float",{"_index":366,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["signal’",{"_index":890,"title":{},"name":{},"text":{"6":{},"26":{},"30":{},"75":{},"94":{},"98":{}},"component":{}}],["signatur",{"_index":1848,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["similar",{"_index":1298,"title":{},"name":{},"text":{"25":{},"49":{},"93":{},"117":{}},"component":{}}],["simpl",{"_index":436,"title":{},"name":{},"text":{"3":{},"4":{},"8":{},"26":{},"28":{},"56":{},"71":{},"72":{},"76":{},"94":{},"96":{},"124":{}},"component":{}}],["simpler",{"_index":921,"title":{},"name":{},"text":{"6":{},"75":{}},"component":{}}],["simplest",{"_index":1515,"title":{},"name":{},"text":{"31":{},"32":{},"99":{},"100":{}},"component":{}}],["simpli",{"_index":327,"title":{},"name":{},"text":{"2":{},"4":{},"21":{},"22":{},"23":{},"24":{},"46":{},"70":{},"72":{},"89":{},"90":{},"91":{},"92":{},"114":{}},"component":{}}],["simplic",{"_index":438,"title":{},"name":{},"text":{"3":{},"4":{},"7":{},"32":{},"35":{},"71":{},"72":{},"74":{},"100":{},"103":{}},"component":{}}],["simplifi",{"_index":88,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["simultan",{"_index":1388,"title":{},"name":{},"text":{"27":{},"55":{},"95":{},"123":{}},"component":{}}],["sin",{"_index":2349,"title":{},"name":{},"text":{"55":{},"56":{},"123":{},"124":{}},"component":{}}],["sin(phas",{"_index":184,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["sin/co",{"_index":2354,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["sin_cos_gen",{"_index":2326,"title":{},"name":{"55":{},"123":{}},"text":{"55":{},"123":{}},"component":{}}],["sin_cos_gen(f",{"_index":2353,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["sin_cos_gen(frequ",{"_index":2346,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["sin_osc",{"_index":2360,"title":{},"name":{"56":{},"124":{}},"text":{"56":{},"124":{}},"component":{}}],["sin_osc.cpp",{"_index":880,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["sine",{"_index":497,"title":{"55":{},"56":{},"123":{},"124":{}},"name":{},"text":{"3":{},"5":{},"10":{},"51":{},"55":{},"56":{},"71":{},"73":{},"78":{},"119":{},"123":{},"124":{}},"component":{}}],["singl",{"_index":343,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"31":{},"35":{},"48":{},"56":{},"70":{},"74":{},"75":{},"99":{},"103":{},"116":{},"124":{}},"component":{}}],["sit",{"_index":2168,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["size",{"_index":1017,"title":{},"name":{},"text":{"9":{},"32":{},"33":{},"38":{},"39":{},"42":{},"43":{},"44":{},"46":{},"65":{},"68":{},"77":{},"100":{},"101":{},"106":{},"107":{},"110":{},"111":{},"112":{},"114":{},"133":{},"136":{}},"component":{}}],["size_",{"_index":1853,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["skew",{"_index":2334,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["skim",{"_index":716,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["skirt",{"_index":479,"title":{"14":{},"82":{}},"name":{},"text":{"3":{},"14":{},"71":{},"82":{}},"component":{}}],["slightli",{"_index":1367,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["slope",{"_index":1431,"title":{},"name":{},"text":{"29":{},"35":{},"36":{},"97":{},"103":{},"104":{}},"component":{}}],["slope’",{"_index":1619,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["slow",{"_index":1519,"title":{},"name":{},"text":{"32":{},"36":{},"100":{},"104":{}},"component":{}}],["small",{"_index":442,"title":{},"name":{},"text":{"3":{},"4":{},"9":{},"38":{},"56":{},"71":{},"72":{},"77":{},"106":{},"124":{}},"component":{}}],["smaller",{"_index":708,"title":{},"name":{},"text":{"4":{},"62":{},"72":{},"130":{}},"component":{}}],["smallest",{"_index":2478,"title":{},"name":{},"text":{"62":{},"66":{},"130":{},"134":{}},"component":{}}],["smear",{"_index":1441,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["smith’",{"_index":1452,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["smooth",{"_index":1352,"title":{},"name":{},"text":{"26":{},"35":{},"47":{},"51":{},"94":{},"103":{},"115":{},"119":{}},"component":{}}],["smoother",{"_index":372,"title":{},"name":{},"text":{"2":{},"24":{},"70":{},"92":{}},"component":{}}],["snr",{"_index":1528,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["soft",{"_index":487,"title":{"24":{},"92":{}},"name":{},"text":{"3":{},"4":{},"6":{},"22":{},"23":{},"24":{},"26":{},"71":{},"72":{},"75":{},"90":{},"91":{},"92":{},"94":{}},"component":{}}],["soft_knee_compressor",{"_index":1282,"title":{},"name":{"24":{},"92":{}},"text":{"24":{},"92":{}},"component":{}}],["soft_knee_compressor(comp",{"_index":1293,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["soft_knee_compressor(decibel",{"_index":1290,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["soft_knee_compressor(t",{"_index":1292,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["soft_ped",{"_index":1964,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["softer",{"_index":1303,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["softwar",{"_index":536,"title":{},"name":{},"text":{"3":{},"27":{},"71":{},"95":{}},"component":{}}],["solut",{"_index":858,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["someth",{"_index":2099,"title":{},"name":{},"text":{"46":{},"60":{},"114":{},"128":{}},"component":{}}],["sometim",{"_index":981,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["somewhat",{"_index":314,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["somewher",{"_index":266,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["song_numb",{"_index":2058,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_posit",{"_index":1837,"title":{"44-15":{},"112-15":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_position(std::uint16_t",{"_index":2055,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_position(std::uint8_t",{"_index":2056,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_select",{"_index":1838,"title":{"44-16":{},"112-16":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_select(std::uint8_t",{"_index":2057,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["soon",{"_index":2171,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sostenuto",{"_index":1962,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound",{"_index":323,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"8":{},"10":{},"24":{},"44":{},"70":{},"72":{},"75":{},"76":{},"78":{},"92":{},"112":{}},"component":{}}],["sound_controller_1",{"_index":1970,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_10",{"_index":1990,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_2",{"_index":1972,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_3",{"_index":1975,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_4",{"_index":1977,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_5",{"_index":1979,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_6",{"_index":1982,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_7",{"_index":1984,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_8",{"_index":1986,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_9",{"_index":1988,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["soundscap",{"_index":1465,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["sourc",{"_index":112,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"48":{},"55":{},"70":{},"71":{},"72":{},"116":{},"123":{}},"component":{}}],["sp",{"_index":1101,"title":{},"name":{},"text":{"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"36":{},"38":{},"39":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"64":{},"65":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"103":{},"104":{},"106":{},"107":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"132":{},"133":{}},"component":{}}],["spaciou",{"_index":1464,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["span",{"_index":193,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["spars",{"_index":262,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["speaker",{"_index":647,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["special",{"_index":537,"title":{},"name":{},"text":{"3":{},"36":{},"47":{},"48":{},"51":{},"71":{},"104":{},"115":{},"116":{},"119":{}},"component":{}}],["specif",{"_index":320,"title":{"44-7":{},"112-7":{}},"name":{},"text":{"2":{},"6":{},"8":{},"9":{},"11":{},"37":{},"41":{},"44":{},"45":{},"48":{},"66":{},"70":{},"75":{},"76":{},"77":{},"79":{},"105":{},"109":{},"112":{},"113":{},"116":{},"134":{}},"component":{}}],["specifi",{"_index":1018,"title":{},"name":{},"text":{"9":{},"16":{},"18":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"33":{},"34":{},"35":{},"36":{},"48":{},"49":{},"52":{},"53":{},"65":{},"68":{},"77":{},"84":{},"86":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"97":{},"98":{},"101":{},"102":{},"103":{},"104":{},"116":{},"117":{},"120":{},"121":{},"133":{},"136":{}},"component":{}}],["spectral",{"_index":1085,"title":{},"name":{},"text":{"10":{},"47":{},"50":{},"78":{},"115":{},"118":{}},"component":{}}],["spectrum",{"_index":1813,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["sqrt",{"_index":1418,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["squar",{"_index":500,"title":{"57":{},"125":{}},"name":{},"text":{"3":{},"4":{},"10":{},"25":{},"27":{},"28":{},"29":{},"32":{},"57":{},"71":{},"72":{},"78":{},"93":{},"95":{},"96":{},"97":{},"100":{},"125":{}},"component":{}}],["square_osc",{"_index":727,"title":{},"name":{"57":{},"125":{}},"text":{"4":{},"57":{},"72":{},"125":{}},"component":{}}],["squash",{"_index":1235,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["src",{"_index":97,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["stabil",{"_index":2329,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["stage",{"_index":1450,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["staircas",{"_index":1353,"title":{"27-3":{},"95-3":{}},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["stamp",{"_index":2074,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["stand",{"_index":1297,"title":{},"name":{},"text":{"25":{},"59":{},"60":{},"61":{},"93":{},"127":{},"128":{},"129":{}},"component":{}}],["standard",{"_index":85,"title":{},"name":{},"text":{"2":{},"26":{},"43":{},"44":{},"70":{},"94":{},"111":{},"112":{}},"component":{}}],["start",{"_index":471,"title":{"4":{},"72":{},"44-19":{},"112-19":{}},"name":{},"text":{"3":{},"4":{},"8":{},"10":{},"38":{},"39":{},"44":{},"45":{},"47":{},"48":{},"50":{},"51":{},"64":{},"65":{},"71":{},"72":{},"76":{},"78":{},"106":{},"107":{},"112":{},"113":{},"115":{},"116":{},"118":{},"119":{},"132":{},"133":{}},"component":{}}],["startup",{"_index":627,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["state",{"_index":449,"title":{"65-9":{},"133-9":{}},"name":{},"text":{"3":{},"4":{},"9":{},"11":{},"21":{},"34":{},"39":{},"45":{},"48":{},"55":{},"65":{},"71":{},"72":{},"77":{},"79":{},"89":{},"102":{},"107":{},"113":{},"116":{},"123":{},"133":{}},"component":{}}],["stateless",{"_index":448,"title":{},"name":{},"text":{"3":{},"54":{},"56":{},"57":{},"58":{},"71":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["static",{"_index":1627,"title":{},"name":{},"text":{"37":{},"40":{},"41":{},"44":{},"64":{},"66":{},"105":{},"108":{},"109":{},"112":{},"132":{},"134":{}},"component":{}}],["static_assert(div",{"_index":1409,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["statu",{"_index":1829,"title":{"44-6":{},"112-6":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["std",{"_index":1650,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["std::array",{"_index":2589,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["std::assignable_from",{"_index":1058,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["std::convertible_to",{"_index":1819,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["std::copy_construct",{"_index":1057,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["std::cout",{"_index":1646,"title":{},"name":{},"text":{"37":{},"40":{},"41":{},"44":{},"105":{},"108":{},"109":{},"112":{}},"component":{}}],["std::default_initializ",{"_index":1059,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["std::endl",{"_index":1647,"title":{},"name":{},"text":{"37":{},"40":{},"41":{},"44":{},"105":{},"108":{},"109":{},"112":{}},"component":{}}],["std::floating_point",{"_index":1136,"title":{},"name":{},"text":{"11":{},"43":{},"46":{},"62":{},"79":{},"111":{},"114":{},"130":{}},"component":{}}],["std::integr",{"_index":1135,"title":{},"name":{},"text":{"11":{},"43":{},"79":{},"111":{}},"component":{}}],["std::pair",{"_index":2347,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["std::random_access_iter",{"_index":1825,"title":{},"name":{},"text":{"43":{},"46":{},"111":{},"114":{}},"component":{}}],["std::same_a",{"_index":1143,"title":{},"name":{},"text":{"11":{},"43":{},"79":{},"111":{}},"component":{}}],["std::size_t",{"_index":773,"title":{},"name":{},"text":{"4":{},"33":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{},"48":{},"68":{},"72":{},"101":{},"105":{},"106":{},"107":{},"108":{},"109":{},"111":{},"113":{},"114":{},"116":{},"136":{}},"component":{}}],["std::string",{"_index":1629,"title":{},"name":{},"text":{"37":{},"38":{},"40":{},"105":{},"106":{},"108":{}},"component":{}}],["std::uint16_t",{"_index":2052,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["std::uint32_t",{"_index":1680,"title":{},"name":{},"text":{"38":{},"40":{},"44":{},"106":{},"108":{},"112":{}},"component":{}}],["std::uint64_t",{"_index":1674,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["std::uint8_t",{"_index":786,"title":{},"name":{},"text":{"4":{},"44":{},"72":{},"112":{}},"component":{}}],["std::vector",{"_index":1626,"title":{},"name":{},"text":{"37":{},"40":{},"48":{},"67":{},"68":{},"105":{},"108":{},"116":{},"135":{},"136":{}},"component":{}}],["step",{"_index":1527,"title":{},"name":{},"text":{"32":{},"33":{},"65":{},"100":{},"101":{},"133":{}},"component":{}}],["stereo",{"_index":697,"title":{},"name":{},"text":{"4":{},"22":{},"23":{},"24":{},"39":{},"46":{},"72":{},"90":{},"91":{},"92":{},"107":{},"114":{}},"component":{}}],["still",{"_index":1392,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["stock",{"_index":861,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["stop",{"_index":1708,"title":{"44-21":{},"112-21":{}},"name":{},"text":{"39":{},"44":{},"107":{},"112":{}},"component":{}}],["stopband",{"_index":1522,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["storag",{"_index":1482,"title":{},"name":{},"text":{"31":{},"67":{},"68":{},"99":{},"135":{},"136":{}},"component":{}}],["storage_typ",{"_index":1489,"title":{},"name":{},"text":{"31":{},"67":{},"68":{},"99":{},"135":{},"136":{}},"component":{}}],["store",{"_index":347,"title":{},"name":{},"text":{"2":{},"4":{},"32":{},"33":{},"48":{},"55":{},"56":{},"68":{},"70":{},"72":{},"100":{},"101":{},"116":{},"123":{},"124":{},"136":{}},"component":{}}],["straight",{"_index":42,"title":{},"name":{},"text":{"2":{},"52":{},"70":{},"120":{}},"component":{}}],["straightforward",{"_index":568,"title":{},"name":{},"text":{"4":{},"9":{},"38":{},"72":{},"77":{},"106":{}},"component":{}}],["stream",{"_index":514,"title":{"42":{},"110":{}},"name":{},"text":{"3":{},"4":{},"9":{},"39":{},"41":{},"71":{},"72":{},"77":{},"107":{},"109":{}},"component":{}}],["stream.is_valid",{"_index":1784,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["stream.process(midi_processor",{"_index":1785,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["stream.process(proc",{"_index":820,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["stream’",{"_index":1725,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["strength",{"_index":997,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["string",{"_index":1320,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"44":{},"93":{},"95":{},"97":{},"112":{}},"component":{}}],["struct",{"_index":333,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"44":{},"45":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"70":{},"72":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"100":{},"101":{},"102":{},"103":{},"104":{},"107":{},"109":{},"112":{},"113":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{}},"component":{}}],["structur",{"_index":5,"title":{"2-3":{},"70-3":{}},"name":{},"text":{"2":{},"70":{}},"component":{}}],["studio",{"_index":531,"title":{},"name":{},"text":{"3":{},"5":{},"71":{},"73":{}},"component":{}}],["styliz",{"_index":2165,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sub",{"_index":115,"title":{},"name":{},"text":{"2":{},"31":{},"67":{},"70":{},"99":{},"135":{}},"component":{}}],["subclass",{"_index":694,"title":{},"name":{},"text":{"4":{},"32":{},"36":{},"39":{},"42":{},"44":{},"47":{},"48":{},"51":{},"63":{},"67":{},"72":{},"100":{},"104":{},"107":{},"110":{},"112":{},"115":{},"116":{},"119":{},"131":{},"135":{}},"component":{}}],["submodul",{"_index":830,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["subscript",{"_index":1816,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["subsequ",{"_index":1449,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["substanti",{"_index":1356,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["subtl",{"_index":1289,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["subtract",{"_index":1152,"title":{},"name":{},"text":{"11":{},"33":{},"53":{},"54":{},"57":{},"79":{},"101":{},"121":{},"122":{},"125":{}},"component":{}}],["success",{"_index":542,"title":{},"name":{},"text":{"3":{},"5":{},"64":{},"71":{},"73":{},"132":{}},"component":{}}],["such",{"_index":69,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"9":{},"10":{},"11":{},"27":{},"29":{},"31":{},"38":{},"40":{},"48":{},"56":{},"59":{},"64":{},"68":{},"70":{},"71":{},"72":{},"75":{},"77":{},"78":{},"79":{},"95":{},"97":{},"99":{},"106":{},"108":{},"116":{},"124":{},"127":{},"132":{},"136":{}},"component":{}}],["sudden",{"_index":990,"title":{},"name":{},"text":{"8":{},"23":{},"29":{},"76":{},"91":{},"97":{}},"component":{}}],["sudo",{"_index":863,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["suggest",{"_index":439,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["suitabl",{"_index":205,"title":{},"name":{},"text":{"2":{},"10":{},"27":{},"35":{},"37":{},"40":{},"55":{},"59":{},"64":{},"70":{},"78":{},"95":{},"103":{},"105":{},"108":{},"123":{},"127":{},"132":{}},"component":{}}],["sum",{"_index":493,"title":{"33":{},"101":{}},"name":{},"text":{"3":{},"32":{},"33":{},"46":{},"51":{},"71":{},"100":{},"101":{},"114":{},"119":{}},"component":{}}],["superior",{"_index":1394,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["suppli",{"_index":1214,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["support",{"_index":122,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"22":{},"24":{},"37":{},"44":{},"45":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"77":{},"90":{},"92":{},"105":{},"112":{},"113":{}},"component":{}}],["sure",{"_index":619,"title":{},"name":{},"text":{"4":{},"5":{},"72":{},"73":{}},"component":{}}],["suscept",{"_index":1331,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["sustain",{"_index":802,"title":{},"name":{},"text":{"4":{},"10":{},"44":{},"48":{},"72":{},"78":{},"112":{},"116":{}},"component":{}}],["sustain_level",{"_index":2219,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sustain_level(decibel",{"_index":2227,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sustain_r",{"_index":2221,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sustain_rate(dur",{"_index":2228,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sval",{"_index":2351,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["switch",{"_index":1286,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["symbol",{"_index":2497,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["symmetri",{"_index":2332,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["synchron",{"_index":2342,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["syntact",{"_index":340,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["syntax",{"_index":1828,"title":{},"name":{},"text":{"43":{},"44":{},"46":{},"111":{},"112":{},"114":{}},"component":{}}],["synth",{"_index":123,"title":{},"name":{"10":{},"78":{}},"text":{"2":{},"3":{},"4":{},"70":{},"71":{},"72":{}},"component":{}}],["synth.start",{"_index":819,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["synth.stop",{"_index":821,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["synthes",{"_index":310,"title":{"4-5":{},"72-5":{}},"name":{},"text":{"2":{},"3":{},"4":{},"10":{},"42":{},"56":{},"70":{},"71":{},"72":{},"78":{},"110":{},"124":{}},"component":{}}],["synthesi",{"_index":2361,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["synthesis",{"_index":133,"title":{},"name":{},"text":{"2":{},"10":{},"70":{},"78":{}},"component":{}}],["sysex",{"_index":1879,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sysex_end",{"_index":1884,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["system",{"_index":68,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"9":{},"42":{},"45":{},"66":{},"70":{},"72":{},"73":{},"77":{},"110":{},"113":{},"134":{}},"component":{}}],["system’",{"_index":881,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["t",{"_index":1062,"title":{},"name":{},"text":{"10":{},"11":{},"22":{},"23":{},"24":{},"32":{},"33":{},"46":{},"48":{},"62":{},"67":{},"68":{},"78":{},"79":{},"90":{},"91":{},"92":{},"100":{},"101":{},"114":{},"116":{},"130":{},"135":{},"136":{}},"component":{}}],["t(o",{"_index":1092,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["t(w",{"_index":1102,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["tabl",{"_index":422,"title":{"3-2":{},"71-2":{}},"name":{},"text":{"3":{},"56":{},"59":{},"71":{},"124":{},"127":{}},"component":{}}],["tag",{"_index":575,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["take",{"_index":243,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"39":{},"41":{},"45":{},"46":{},"48":{},"59":{},"60":{},"61":{},"63":{},"70":{},"72":{},"78":{},"107":{},"109":{},"113":{},"114":{},"116":{},"127":{},"128":{},"129":{},"131":{}},"component":{}}],["taken",{"_index":654,"title":{},"name":{},"text":{"4":{},"27":{},"72":{},"95":{}},"component":{}}],["talk",{"_index":1845,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["tap",{"_index":1478,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["taper",{"_index":1090,"title":{},"name":{},"text":{"10":{},"47":{},"50":{},"51":{},"78":{},"115":{},"118":{},"119":{}},"component":{}}],["target",{"_index":1678,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["task",{"_index":450,"title":{},"name":{},"text":{"3":{},"4":{},"8":{},"71":{},"72":{},"76":{}},"component":{}}],["technic",{"_index":1518,"title":{},"name":{},"text":{"32":{},"55":{},"100":{},"123":{}},"component":{}}],["techniqu",{"_index":446,"title":{},"name":{},"text":{"3":{},"53":{},"54":{},"57":{},"58":{},"71":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["technolog",{"_index":1043,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["templat",{"_index":1056,"title":{"62-4":{},"130-4":{}},"name":{},"text":{"10":{},"11":{},"26":{},"27":{},"28":{},"31":{},"32":{},"33":{},"41":{},"43":{},"44":{},"45":{},"46":{},"48":{},"62":{},"67":{},"68":{},"78":{},"79":{},"94":{},"95":{},"96":{},"99":{},"100":{},"101":{},"109":{},"111":{},"112":{},"113":{},"114":{},"116":{},"130":{},"135":{},"136":{}},"component":{}}],["tempo",{"_index":1847,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["ten",{"_index":2385,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["tenth",{"_index":2388,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["term",{"_index":970,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["test",{"_index":76,"title":{"5-9":{},"73-9":{}},"name":{},"text":{"2":{},"5":{},"9":{},"70":{},"73":{},"77":{}},"component":{}}],["that’",{"_index":744,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["therebi",{"_index":1246,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["therefor",{"_index":1720,"title":{},"name":{},"text":{"39":{},"66":{},"107":{},"134":{}},"component":{}}],["there’",{"_index":700,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["thin",{"_index":62,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["thing",{"_index":719,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["this)(i._phas",{"_index":741,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["this)[0].config(r",{"_index":2251,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["this)[1].config(r",{"_index":2253,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["this)[2].config(r",{"_index":2257,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["this)[2].level(lin_float(level",{"_index":2255,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["this)[3].config(r",{"_index":2259,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["those",{"_index":696,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["thread",{"_index":1782,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["three",{"_index":1810,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["threshold",{"_index":908,"title":{},"name":{},"text":{"6":{},"22":{},"23":{},"24":{},"34":{},"36":{},"75":{},"90":{},"91":{},"92":{},"102":{},"104":{}},"component":{}}],["threshold(decibel",{"_index":1240,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["through",{"_index":1265,"title":{},"name":{},"text":{"23":{},"25":{},"29":{},"33":{},"46":{},"49":{},"91":{},"93":{},"97":{},"101":{},"114":{},"117":{}},"component":{}}],["throughout",{"_index":749,"title":{},"name":{},"text":{"4":{},"11":{},"72":{},"79":{}},"component":{}}],["thu",{"_index":2080,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["ti",{"_index":1310,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["tightli",{"_index":1400,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["timbr",{"_index":1974,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["time",{"_index":192,"title":{},"name":{},"text":{"2":{},"4":{},"8":{},"22":{},"26":{},"27":{},"29":{},"31":{},"32":{},"33":{},"36":{},"39":{},"41":{},"44":{},"45":{},"49":{},"55":{},"56":{},"59":{},"60":{},"61":{},"63":{},"64":{},"70":{},"72":{},"76":{},"90":{},"94":{},"95":{},"97":{},"99":{},"100":{},"101":{},"104":{},"107":{},"109":{},"112":{},"113":{},"117":{},"123":{},"124":{},"127":{},"128":{},"129":{},"131":{},"132":{}},"component":{}}],["timing_tick",{"_index":1840,"title":{"44-18":{},"112-18":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["titl",{"_index":1384,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["togeth",{"_index":1311,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["tonal",{"_index":1472,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["tool",{"_index":936,"title":{},"name":{},"text":{"7":{},"34":{},"74":{},"102":{}},"component":{}}],["tooth",{"_index":1050,"title":{"54":{},"122":{}},"name":{},"text":{"10":{},"54":{},"78":{},"122":{}},"component":{}}],["total",{"_index":1550,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["total_dur",{"_index":234,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["touch",{"_index":2290,"title":{},"name":{},"text":{"51":{},"65":{},"119":{},"133":{}},"component":{}}],["toward",{"_index":2130,"title":{},"name":{},"text":{"47":{},"50":{},"115":{},"118":{}},"component":{}}],["track",{"_index":1213,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"29":{},"64":{},"65":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{},"97":{},"132":{},"133":{}},"component":{}}],["tradeoff",{"_index":999,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["tradit",{"_index":1048,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["transfer",{"_index":930,"title":{},"name":{},"text":{"6":{},"9":{},"75":{},"77":{}},"component":{}}],["transform",{"_index":127,"title":{},"name":{},"text":{"2":{},"26":{},"28":{},"70":{},"94":{},"96":{}},"component":{}}],["transient",{"_index":1238,"title":{"27-4":{},"95-4":{}},"name":{},"text":{"22":{},"27":{},"29":{},"90":{},"95":{},"97":{}},"component":{}}],["transit",{"_index":1284,"title":{"48-2":{},"116-2":{}},"name":{},"text":{"24":{},"48":{},"53":{},"54":{},"57":{},"92":{},"116":{},"121":{},"122":{},"125":{}},"component":{}}],["transmiss",{"_index":1026,"title":{},"name":{},"text":{"9":{},"41":{},"77":{},"109":{}},"component":{}}],["transmit",{"_index":1019,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["transpar",{"_index":1288,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["transplant",{"_index":65,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["treat",{"_index":2376,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["tremolo",{"_index":2008,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["tri",{"_index":870,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["triangl",{"_index":502,"title":{"58":{},"126":{}},"name":{},"text":{"3":{},"10":{},"58":{},"71":{},"78":{},"126":{}},"component":{}}],["triangle_osc",{"_index":2370,"title":{},"name":{"58":{},"126":{}},"text":{"58":{},"126":{}},"component":{}}],["trigger",{"_index":762,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["true",{"_index":1406,"title":{},"name":{},"text":{"27":{},"28":{},"34":{},"38":{},"41":{},"48":{},"65":{},"66":{},"95":{},"96":{},"102":{},"106":{},"109":{},"116":{},"133":{},"134":{}},"component":{}}],["tune_request",{"_index":1839,"title":{"44-17":{},"112-17":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["turn",{"_index":1589,"title":{},"name":{},"text":{"34":{},"64":{},"102":{},"132":{}},"component":{}}],["tutori",{"_index":662,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["two",{"_index":33,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"10":{},"25":{},"34":{},"39":{},"46":{},"47":{},"51":{},"59":{},"62":{},"65":{},"70":{},"72":{},"75":{},"78":{},"93":{},"102":{},"107":{},"114":{},"115":{},"119":{},"127":{},"130":{},"133":{}},"component":{}}],["type",{"_index":8,"title":{"2-5":{},"11-6":{},"31-6":{},"31-8":{},"32-6":{},"33-6":{},"33-7":{},"46-7":{},"67-6":{},"67-8":{},"68-6":{},"68-8":{},"70-5":{},"79-6":{},"99-6":{},"99-8":{},"100-6":{},"101-6":{},"101-7":{},"114-7":{},"135-6":{},"135-8":{},"136-6":{},"136-8":{}},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"8":{},"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":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"74":{},"75":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["typenam",{"_index":1487,"title":{},"name":{},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["typesaf",{"_index":214,"title":{},"name":{},"text":{"2":{},"11":{},"70":{},"79":{}},"component":{}}],["typic",{"_index":145,"title":{},"name":{},"text":{"2":{},"4":{},"8":{},"9":{},"10":{},"11":{},"22":{},"23":{},"24":{},"32":{},"33":{},"34":{},"37":{},"38":{},"39":{},"46":{},"48":{},"70":{},"72":{},"76":{},"77":{},"78":{},"79":{},"90":{},"91":{},"92":{},"100":{},"101":{},"102":{},"105":{},"106":{},"107":{},"114":{},"116":{}},"component":{}}],["u",{"_index":1132,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["u(b",{"_index":1145,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["u(v",{"_index":1144,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["u::unit_typ",{"_index":1138,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["u::value_typ",{"_index":1137,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["ubuntu",{"_index":849,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["unchang",{"_index":1232,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["undefin",{"_index":1126,"title":{},"name":{},"text":{"11":{},"39":{},"41":{},"45":{},"67":{},"68":{},"79":{},"107":{},"109":{},"113":{},"135":{},"136":{}},"component":{}}],["under",{"_index":418,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["underli",{"_index":1133,"title":{},"name":{},"text":{"11":{},"31":{},"33":{},"62":{},"64":{},"67":{},"68":{},"79":{},"99":{},"101":{},"130":{},"132":{},"135":{},"136":{}},"component":{}}],["understand",{"_index":105,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"70":{},"72":{},"75":{}},"component":{}}],["uniqu",{"_index":899,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"27":{},"37":{},"40":{},"41":{},"75":{},"78":{},"79":{},"95":{},"105":{},"108":{},"109":{}},"component":{}}],["unit",{"_index":213,"title":{"11":{},"79":{},"11-2":{},"11-12":{},"79-2":{},"79-12":{}},"name":{"11":{},"79":{}},"text":{"2":{},"3":{},"4":{},"11":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"70":{},"71":{},"72":{},"79":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{}},"component":{}}],["unit_typ",{"_index":1134,"title":{},"name":{},"text":{"11":{},"59":{},"60":{},"61":{},"62":{},"64":{},"79":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["univers",{"_index":554,"title":{"4-4":{},"72-4":{}},"name":{},"text":{},"component":{}}],["unix",{"_index":868,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["unless",{"_index":1373,"title":{},"name":{},"text":{"26":{},"27":{},"59":{},"60":{},"61":{},"94":{},"95":{},"127":{},"128":{},"129":{}},"component":{}}],["unlik",{"_index":1588,"title":{},"name":{},"text":{"34":{},"51":{},"102":{},"119":{}},"component":{}}],["unorthodox",{"_index":2102,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["unsaf",{"_index":248,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["unspecifi",{"_index":1141,"title":{},"name":{},"text":{"11":{},"39":{},"46":{},"48":{},"79":{},"107":{},"114":{},"116":{}},"component":{}}],["unwant",{"_index":1084,"title":{},"name":{},"text":{"10":{},"29":{},"34":{},"78":{},"97":{},"102":{}},"component":{}}],["up",{"_index":695,"title":{},"name":{},"text":{"4":{},"5":{},"11":{},"34":{},"39":{},"42":{},"48":{},"49":{},"58":{},"65":{},"68":{},"72":{},"73":{},"79":{},"102":{},"107":{},"110":{},"116":{},"117":{},"126":{},"133":{},"136":{}},"component":{}}],["updat",{"_index":1557,"title":{},"name":{},"text":{"33":{},"65":{},"101":{},"133":{}},"component":{}}],["update=fals",{"_index":1573,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["update=tru",{"_index":1571,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["upgrad",{"_index":2408,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["upon",{"_index":2180,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["upper",{"_index":1867,"title":{},"name":{},"text":{"44":{},"55":{},"112":{},"123":{}},"component":{}}],["upsiz",{"_index":1579,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["upward",{"_index":1097,"title":{},"name":{},"text":{"10":{},"47":{},"49":{},"51":{},"52":{},"78":{},"115":{},"117":{},"119":{},"120":{}},"component":{}}],["us",{"_index":75,"title":{"5-5":{},"73-5":{}},"name":{},"text":{"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":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["usabl",{"_index":47,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["usag",{"_index":2086,"title":{"46-2":{},"114-2":{}},"name":{},"text":{"59":{},"60":{},"61":{},"127":{},"128":{},"129":{}},"component":{}}],["usb",{"_index":636,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["user",{"_index":30,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"10":{},"37":{},"39":{},"40":{},"41":{},"45":{},"46":{},"48":{},"59":{},"70":{},"72":{},"77":{},"78":{},"105":{},"107":{},"108":{},"109":{},"113":{},"114":{},"116":{},"127":{}},"component":{}}],["user’",{"_index":1704,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["usual",{"_index":247,"title":{},"name":{},"text":{"2":{},"4":{},"64":{},"65":{},"70":{},"72":{},"132":{},"133":{}},"component":{}}],["util",{"_index":124,"title":{},"name":{},"text":{"2":{},"3":{},"7":{},"11":{},"13":{},"14":{},"19":{},"20":{},"22":{},"23":{},"27":{},"35":{},"44":{},"45":{},"47":{},"49":{},"50":{},"51":{},"52":{},"55":{},"66":{},"70":{},"71":{},"74":{},"79":{},"81":{},"82":{},"87":{},"88":{},"90":{},"91":{},"95":{},"103":{},"112":{},"113":{},"115":{},"117":{},"118":{},"119":{},"120":{},"123":{},"134":{}},"component":{}}],["v",{"_index":1091,"title":{},"name":{},"text":{"10":{},"11":{},"59":{},"78":{},"79":{},"127":{}},"component":{}}],["v.config(w",{"_index":1105,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["v.reset",{"_index":1103,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["val",{"_index":289,"title":{},"name":{},"text":{"2":{},"4":{},"13":{},"14":{},"19":{},"20":{},"22":{},"23":{},"24":{},"31":{},"33":{},"59":{},"60":{},"61":{},"62":{},"64":{},"68":{},"70":{},"72":{},"81":{},"82":{},"87":{},"88":{},"90":{},"91":{},"92":{},"99":{},"101":{},"127":{},"128":{},"129":{},"130":{},"132":{},"136":{}},"component":{}}],["valid",{"_index":1073,"title":{},"name":{},"text":{"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"31":{},"32":{},"36":{},"38":{},"39":{},"41":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"99":{},"100":{},"104":{},"106":{},"107":{},"109":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{},"135":{}},"component":{}}],["valu",{"_index":154,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"64":{},"65":{},"66":{},"70":{},"72":{},"74":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"132":{},"133":{},"134":{}},"component":{}}],["value_typ",{"_index":1158,"title":{},"name":{},"text":{"11":{},"31":{},"32":{},"33":{},"46":{},"67":{},"68":{},"79":{},"99":{},"100":{},"101":{},"114":{},"135":{},"136":{}},"component":{}}],["vari",{"_index":968,"title":{},"name":{},"text":{"8":{},"39":{},"48":{},"76":{},"107":{},"116":{}},"component":{}}],["variabl",{"_index":348,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"32":{},"36":{},"39":{},"46":{},"48":{},"55":{},"63":{},"67":{},"70":{},"72":{},"75":{},"100":{},"104":{},"107":{},"114":{},"116":{},"123":{},"131":{},"135":{}},"component":{}}],["variant",{"_index":1415,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["variat",{"_index":1351,"title":{},"name":{},"text":{"26":{},"28":{},"44":{},"94":{},"96":{},"112":{}},"component":{}}],["varieti",{"_index":941,"title":{},"name":{},"text":{"7":{},"8":{},"10":{},"74":{},"76":{},"78":{}},"component":{}}],["variou",{"_index":108,"title":{},"name":{},"text":{"2":{},"3":{},"6":{},"7":{},"9":{},"10":{},"11":{},"27":{},"31":{},"34":{},"56":{},"70":{},"71":{},"74":{},"75":{},"77":{},"78":{},"79":{},"95":{},"99":{},"102":{},"124":{}},"component":{}}],["vast",{"_index":1608,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["vector",{"_index":2249,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["veloc",{"_index":661,"title":{},"name":{},"text":{"4":{},"41":{},"44":{},"72":{},"109":{},"112":{}},"component":{}}],["verbos",{"_index":144,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["veri",{"_index":55,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"9":{},"32":{},"48":{},"55":{},"70":{},"71":{},"72":{},"77":{},"100":{},"116":{},"123":{}},"component":{}}],["versatil",{"_index":935,"title":{},"name":{},"text":{"7":{},"74":{}},"component":{}}],["version",{"_index":841,"title":{},"name":{},"text":{"5":{},"59":{},"73":{},"127":{}},"component":{}}],["via",{"_index":61,"title":{},"name":{},"text":{"2":{},"9":{},"31":{},"37":{},"40":{},"70":{},"77":{},"99":{},"105":{},"108":{}},"component":{}}],["video",{"_index":626,"title":{},"name":{},"text":{"4":{},"10":{},"72":{},"78":{}},"component":{}}],["view",{"_index":1402,"title":{},"name":{},"text":{"27":{},"43":{},"46":{},"95":{},"111":{},"114":{}},"component":{}}],["virtual",{"_index":1707,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["visual",{"_index":836,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["voic",{"_index":2175,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["void",{"_index":677,"title":{},"name":{},"text":{"4":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"29":{},"30":{},"33":{},"34":{},"35":{},"39":{},"41":{},"42":{},"45":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"55":{},"65":{},"68":{},"72":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"97":{},"98":{},"101":{},"102":{},"103":{},"107":{},"109":{},"110":{},"113":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"123":{},"133":{},"136":{}},"component":{}}],["voltag",{"_index":1309,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["volum",{"_index":251,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["von",{"_index":2287,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["vs",{"_index":250,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["vu",{"_index":1811,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["w",{"_index":1100,"title":{},"name":{},"text":{"10":{},"23":{},"24":{},"38":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"78":{},"91":{},"92":{},"106":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{}},"component":{}}],["w(n",{"_index":2137,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"115":{},"118":{},"119":{}},"component":{}}],["w.num_channel",{"_index":1667,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["w.sp",{"_index":1665,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["w.write(b",{"_index":1701,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["w.write(d",{"_index":1699,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wait",{"_index":2169,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["want",{"_index":596,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"26":{},"27":{},"46":{},"72":{},"73":{},"75":{},"94":{},"95":{},"114":{}},"component":{}}],["warn",{"_index":2405,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["wav",{"_index":562,"title":{},"name":{},"text":{"4":{},"9":{},"38":{},"72":{},"77":{},"106":{}},"component":{}}],["wav_bas",{"_index":1655,"title":{"38-3":{},"106-3":{}},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_base(wav_bas",{"_index":1658,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_read",{"_index":1656,"title":{"38-9":{},"106-9":{}},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_reader(char",{"_index":1673,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_reader(f",{"_index":1686,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_reader(std::str",{"_index":1671,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_writ",{"_index":1657,"title":{"38-16":{},"106-16":{}},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_writer(f",{"_index":1698,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wave",{"_index":498,"title":{"53":{},"54":{},"56":{},"57":{},"58":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"name":{},"text":{"3":{},"4":{},"5":{},"10":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"71":{},"72":{},"73":{},"78":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{}},"component":{}}],["waveform",{"_index":900,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"25":{},"27":{},"29":{},"34":{},"38":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"64":{},"65":{},"75":{},"77":{},"78":{},"93":{},"95":{},"97":{},"102":{},"106":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"132":{},"133":{}},"component":{}}],["waveform’",{"_index":2311,"title":{},"name":{},"text":{"53":{},"54":{},"57":{},"58":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["wavet",{"_index":754,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["way",{"_index":847,"title":{},"name":{},"text":{"5":{},"44":{},"46":{},"73":{},"112":{},"114":{}},"component":{}}],["wealth",{"_index":241,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["well",{"_index":547,"title":{},"name":{},"text":{"3":{},"10":{},"32":{},"44":{},"48":{},"62":{},"66":{},"71":{},"78":{},"100":{},"112":{},"116":{},"130":{},"134":{}},"component":{}}],["we’ll",{"_index":806,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["we’r",{"_index":386,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["whenev",{"_index":2206,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["wherea",{"_index":1468,"title":{},"name":{},"text":{"31":{},"59":{},"99":{},"127":{}},"component":{}}],["whichev",{"_index":1157,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["whole",{"_index":2110,"title":{},"name":{},"text":{"46":{},"62":{},"114":{},"130":{}},"component":{}}],["whose",{"_index":311,"title":{},"name":{},"text":{"2":{},"31":{},"70":{},"99":{}},"component":{}}],["wide",{"_index":2301,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["wider",{"_index":2133,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["width",{"_index":1270,"title":{},"name":{},"text":{"23":{},"24":{},"36":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"57":{},"91":{},"92":{},"104":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"125":{}},"component":{}}],["width(decibel",{"_index":1291,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["width(float",{"_index":2313,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["window",{"_index":505,"title":{"47":{},"50":{},"51":{},"115":{},"118":{},"119":{},"5-7":{},"73-7":{}},"name":{},"text":{"3":{},"5":{},"10":{},"32":{},"33":{},"47":{},"50":{},"51":{},"71":{},"73":{},"78":{},"100":{},"101":{},"115":{},"118":{},"119":{}},"component":{}}],["window’",{"_index":2131,"title":{},"name":{},"text":{"47":{},"51":{},"115":{},"119":{}},"component":{}}],["wish",{"_index":1370,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["within",{"_index":1080,"title":{},"name":{},"text":{"10":{},"33":{},"46":{},"65":{},"78":{},"101":{},"114":{},"133":{}},"component":{}}],["without",{"_index":48,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"46":{},"48":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"70":{},"71":{},"77":{},"114":{},"116":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{}},"component":{}}],["work",{"_index":146,"title":{},"name":{},"text":{"2":{},"6":{},"9":{},"28":{},"38":{},"53":{},"54":{},"57":{},"70":{},"75":{},"77":{},"96":{},"106":{},"121":{},"122":{},"125":{}},"component":{}}],["workstat",{"_index":83,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["world",{"_index":325,"title":{"4-1":{},"72-1":{}},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["worri",{"_index":2111,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["wors",{"_index":254,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["worth",{"_index":1325,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["wraparound",{"_index":2503,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["wrapper",{"_index":63,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["write",{"_index":795,"title":{},"name":{},"text":{"4":{},"9":{},"38":{},"42":{},"48":{},"72":{},"77":{},"106":{},"110":{},"116":{}},"component":{}}],["write(concepts::indexablecontain",{"_index":1696,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["write(float",{"_index":1695,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["written",{"_index":1700,"title":{},"name":{},"text":{"38":{},"68":{},"106":{},"136":{}},"component":{}}],["x",{"_index":1817,"title":{},"name":{},"text":{"43":{},"46":{},"67":{},"111":{},"114":{},"135":{}},"component":{}}],["x.size",{"_index":1820,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["x[i",{"_index":1818,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["xcode",{"_index":833,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["y",{"_index":1335,"title":{},"name":{},"text":{"25":{},"29":{},"30":{},"35":{},"46":{},"93":{},"97":{},"98":{},"103":{},"114":{}},"component":{}}],["yeah",{"_index":743,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["year",{"_index":455,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["zero",{"_index":331,"title":{},"name":{},"text":{"2":{},"23":{},"27":{},"33":{},"48":{},"50":{},"51":{},"54":{},"70":{},"91":{},"95":{},"101":{},"116":{},"118":{},"119":{},"122":{}},"component":{}}]],"pipeline":["stemmer"]},"store":{"documents":{"1":{"id":1,"text":"","title":"","component":"q","version":"develop","name":"common","url":"/q/develop/common.html","titles":[]},"2":{"id":2,"text":"The Fundamentals section of the Q DSP library provides a brief overview of the basic features of the library, including layering and dependencies, file structure, namespace, function objects as fundamental building blocks, rich data types, and user-defined literals. The Q library comprises of two layers: q_io: Audio and MIDI I/O layer. The q_io layer provides cross-platform audio and MIDI host connectivity straight out of the box. The q_io layer is optional. The q_lib layer is usable without it. q_lib: The core DSP library, q_lib is a no-frills, lightweight, header-only library. The dependencies are determined by the arrows. q_io has very minimal dependencies (portaudio and portmidi) with very loose coupling via thin wrappers that are easy to transplant and port to a host, with or without an operating system, such as an audio plugin or direct to hardware ADC and DAC. q_io is used in the tests and examples, but can be easily replaced by other mechanisms in an application. Plugin libraries for DAWs (digital audio workstations), for example, have their own audio and MIDI I/O mechanisms. q_lib has no dependencies except the standard c++ library. The library is organized with this simplified directory structure: docs (1) example (2) q_io ├─ external (3) ├─ include (4) └─ src (5) q_lib └─ include (6) test (7) 1 Where this documentation resides. 2 Self-contained and easy to understand c++ programs that demonstrate various features of the library. 3 3rd party libraries used by the q_io module. 4 q_io header files. 5 q_io source files. 6 Header-only core q_lib DSP library. 7 A comprehensive set of c++ files for testing the library. Other sub-directories not listed here can be ignored. The q_lib module, header-only core, has this simplified directory structure: q_lib └─ include └─ q ├─ fft (1) ├─ fx (2) ├─ pitch (3) ├─ support (4) ├─ synth (5) └─ utility (6) 1 Fast fourier transform. 2 Various \"effects\" processor building blocks. 3 Pitch detection related facilities. 4 Fundamental support facilities. 5 Various synthesisers. 6 Auxiliary utility functions and classes. Other sub-directories not listed here can be ignored. All entities in the Q library are placed in namespace cycfi::q. Everywhere in this documentation, we will be using a namespace alias to make the code less verbose: namespace q = cycfi::q; Typical audio processors in the Q DSP library work on floating point input samples with the normal -1.0 to 1.0 range. However, values are not limited to sampled signals. For instance, signal envelopes are best represented as decibels that are processed in the logarithmic domain, so dynamic-range processors such as compressors and expanders accept decibel as input and return decibel as output. For example: decibel gain = comp(env); comp is a compressor. The compressor above, however, processes signal envelopes rather than raw samples, in contrast to the typical implementation of DSP compressors. The compressor above accepts an envelope represented by decibel, performs computation in the logarithmic domain, and returns a compressed envelope also represented by decibel. Oscillators, as another example, operate on phase-angle inputs and return output samples: float out = sin(phase++); The Q DSP library has a rich set of such types: float and double Typical sample data type -1.0 to 1.0 (or beyond for some computational headroom). frequency Cycles per second (Hz). duration A time span (seconds, milliseconds, etc.) period The inverse of frequency. phase Fixed point 1.31 format where 31 bits are fractional. phase. represents 0 to 2π phase values suitable for oscillators. decibel Ratio of one value to another on a logarithmic scale (dB). For more information, see Units. The Q DSP library is typeful and typesafe. You can not mismatch values of different types such as frequency and decibel, for example. Such potentially disastrous mistakes can happen if all values are just raw floating point types. There are conversions to and from these data types where it is reasonable to do so. decibel can, for example, be converted to 'float' or 'double' using the as_float or as_double conversion functions. Example: float gain = as_float(12_dB); Relational operations are allowed. For example: if (gain > 3_dB) // 3_dB is a decibel literal (see below) s = lp(s); Arithmetic operations are allowed. For example: auto total_duration = 3_ms + 5_ms; // 3_ms and 5_ms are duration literals Where appropriate, arithmetic with raw types are allowed. For example: auto harmonic = 440_Hz * 4; // 440_Hz is a frequency literal To augment the wealth of value types, the Q DSP library makes abundant use of user-defined literals. We take advantage of C++ type safe user-defined literals, instead of the usual float or double which can be unsafe when values of different units (e.g. frequency vs. duration) are mismatched. The Q DSP library makes abundant use of user-defined literals for units such as time, frequency and volume. For example, we use 24_dB, instead of a unit-less 24 or worse, a non-intuitive, unit-less 15.8 —the gain equivalent of 24_dB. Such constants also make the code very readable, another objective of this library. Q Literals are placed in the namespace q::literals. The namespace is sparse enough to be hoisted into your namespace using using namespace: To use these literals, include the literals.hpp header: #include then use the literals namespace somewhere in a scope where you need it: using namespace q::literals; Here are some example expressions: 82.4069_Hz 440_Hz 1.5_KHz 1.5_kHz 1_kHz 0.5_MHz 3_MHz 10.3_s 1_s 20.5_ms 1_ms 10.5_us 500_us -3.5_dB 10_dB 2_pi 0.5_pi Here’s the list of available literals: // frequency constexpr frequency operator \"\" _Hz(long double val); constexpr frequency operator \"\" _Hz(unsigned long long int val); constexpr frequency operator \"\" _KHz(long double val); constexpr frequency operator \"\" _KHz(unsigned long long int val); constexpr frequency operator \"\" _kHz(long double val); constexpr frequency operator \"\" _kHz(unsigned long long int val); constexpr frequency operator \"\" _MHz(long double val); constexpr frequency operator \"\" _MHz(unsigned long long int val); // duration constexpr duration operator \"\" _s(long double val); constexpr duration operator \"\" _s(unsigned long long int val); constexpr duration operator \"\" _ms(long double val); constexpr duration operator \"\" _ms(unsigned long long int val); constexpr duration operator \"\" _us(long double val); constexpr duration operator \"\" _us(unsigned long long int val); // decibel constexpr decibel operator \"\" _dB(unsigned long long int val); constexpr decibel operator \"\" _dB(long double val); // pi constexpr long double operator \"\" _pi(long double val); constexpr long double operator \"\" _pi(unsigned long long int val) In the realm of electronic music, there are processors and synthesizers, whose definitions overlap somewhat and differ primarily in how they handle input and output. The processor receives one or more input samples and generates one or more output samples according to a specific processing algorithm. A synthesizer, on the other hand, generates sound from scratch without using any samples. The C++ function object is the most basic building block. In the Q world, both processors and synthesizers are simply function objects, which can be composed to form more complex functions. A function object can accept zero or more input values and generate zero or more output values. Function objects are instantiated from struct or class declarations in the header files. In this example, we instantiate hypothetical f_x and g_x structs: auto f = f_x{}; auto g = g_x{}; Syntactically, you can use these function objects just like any other function. Here’s an example function call invocation for the single input function object, f instantiated above: float r = f(s); where s is the input value, and f(s) returns a result and stores it in the variable r. Composition by passing the result of f to g, like this: float r = g(f(s)); can be encapsulated using function composition in a class or struct: struct fg_x { float operator()(float s) const { return g(f(s)); } f_x f; g_x g; }; Here, we encapsulate f_x and g_x inside the composed function object struct fg_x. We can then instantiate a function object for fg_x just like we would above. The Q DSP library uses fine-grained and reusable function object structs or classes like this. Such reusable components are composed to form more powerful higher level composites. Here’s the code example in the library for signal conditioning: inline float signal_conditioner::operator()(float s) { // High pass s = _hp(s); (1) // Pre clip s = _clip(s); (2) // Dynamic Smoother s = _sm(s); (3) // Signal envelope auto env = _env(std::abs(s)); (4) // Noise gate auto gate = _gate(env); (5) s *= _gate_env(gate); (6) // Compressor + makeup-gain auto env_db = decibel(env); auto gain = as_float(_comp(env_db)) * _makeup_gain; (7) s = s * gain; _post_env = env * gain; return s; } We’re showing only the operator() for brevity. But take note that the code uses multiple function objects for various processing functions that correspond to these class member variables: private: clip _clip; (2) highpass _hp; (1) dynamic_smoother _sm; (3) fast_envelope_follower _env; (4) float _post_env; compressor _comp; (7) float _makeup_gain; onset_gate _gate; (5) envelope_follower _gate_env; (6) }; The complete code can be found here: signal_conditioner.hpp Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Fundamentals","component":"q","version":"develop","name":"fundamentals","url":"/q/develop/fundamentals.html","titles":[{"text":"Layers","hash":"_layers","id":1},{"text":"Dependencies","hash":"_dependencies","id":2},{"text":"File Structure","hash":"_file_structure","id":3},{"text":"Namespace","hash":"_namespace","id":4},{"text":"Data Types","hash":"_data_types","id":5},{"text":"Literals","hash":"_literals","id":6},{"text":"Examples","hash":"_examples","id":7},{"text":"Frequency","hash":"_frequency","id":8},{"text":"Duration","hash":"_duration","id":9},{"text":"Decibel","hash":"_decibel","id":10},{"text":"Pi","hash":"_pi","id":11},{"text":"Function Objects","hash":"_function_objects","id":12}]},"3":{"id":3,"text":"is a cross-platform C++ library for Audio Digital Signal Processing. Aptly named after the \"Q factor\", a dimensionless parameter that describes the quality of a resonant circuit, the Q DSP Library is designed to be simple and elegant, as the simplicity of its name suggests, and efficient enough to run on small microcontrollers. Q leverages the power of modern C++ and efficient use of functional programming techniques, especially function composition using fine-grained and reusable function objects (both stateless and stateful), to simplify complex DSP programming tasks without sacrificing readability. Q is the host of some experimental Music related DSP facilities The Author has accumulated over the years as part of research and development, and will continue to evolve to accommodate more facilities necessary for the fulfillment of various Music related projects. The library is Open Source and released under the very liberal MIT license. Show Table of Contents Setup and Installation Quick Start Fundamentals Reference Units frequency duration period phase phase_iterator decibel interval pitch Biquad Low Pass Filter High Pass Filter Band Pass Filter; Constant Skirt Gain Band Pass Filter; Constant Peak Gain All Pass Filter Notch Filter Peaking Filter Low Shelf Filter High Shelf Filter Envelope Peak Envelope Follower AR Envelope Follower Fast Envelope Follower Fast Averaging Envelope Follower Fast RMS Envelope Follower Dynamic Compressor Soft Knee Compressor Expander AGC Miscellaneous Delay Moving Sum Moving Average Noise Gate Onset Gate One Pole Low Pass DC Block Synthesizers Sine Wave Oscillator Saw Wave Oscillator Square Wave Oscillator Pulse Wave Oscillator Triangle Wave Oscillator Sine Cosine Generator Blackman Window Generator Hann Window Generator Hamming Window Generator Linear Ramp Generator Exponential Ramp Generator Envelope Generator Support Basic Concepts Multi Buffer Audio Stream MIDI Messages MIDI Processor Utility Ring Buffer Fractional Ring Buffer Audio MIDI I/O Audio Device Audio Stream Audio File MIDI Device MIDI Stream Joel got into electronics and programming in the 80s because almost everything in music, his first love, is becoming electronic and digital. Since then, he builds his own guitars, effect boxes and synths. He enjoys playing distortion-laden rock guitar, composes and produces his own music in his home studio. Joel de Guzman is the principal architect and engineer at Cycfi Research. He is a software engineer specializing in advanced C++ and an advocate of Open Source. He has authored a number of highly successful Open Source projects such as Boost.Spirit, Boost.Phoenix and Boost.Fusion. These libraries are all part of the Boost Libraries, a well respected, peer-reviewed, Open Source, collaborative development effort. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Q Audio DSP Library","component":"q","version":"develop","name":"index","url":"/q/develop/index.html","titles":[{"text":"Introduction","hash":"_introduction","id":1},{"text":"Table of Contents","hash":"_table_of_contents","id":2},{"text":"The Author","hash":"_the_author","id":3}]},"4":{"id":4,"text":"Here’s a quick \"Hello, World\" example that highlights the simplicity of the Q DSP Library: a delay effects processor. The full example can be found here: example/delay.cpp. The example loads a pre-recorded wav file and plays it back with processing. The raw audio source will be played in the left channel while the delayed signal will be played in the right channel. Pretty much as straightforward as possible. The audio will be played using the currently selected audio device. The final audio output can be heard below: Your browser does not support the audio tag. // fractional delay (1) q::delay _delay{350_ms, 44100}; // Mix the signal s, and the delayed signal (where s is the incoming sample) (2) auto _y = s + _delay(); // Feed back the result to the delay (2) _delay.push(_y * _feedback); Normally, there will be a processing loop that receives the incoming samples, s. The code above are placed: 1 Before the processing loop. 2 Inside inside the processing loop. Typically, you encapsulate the code inside a class where _delay, _y and _feedback are member variables. 44100 is the desired sampling rate. _feedback is the amount of feedback desired (anything from 0.0 to less than 1.0, e.g. 0.85). 350_ms is the delay duration. Take note of 350_ms. Here, we take advantage of C++ type safe user-defined literals, instead of the usual float or double which can be unsafe when values of different units (e.g. frequency vs. duration) are mismatched. The Q DSP library makes abundant use of user-defined literals for units such as time, frequency and volume. For example, we use 24_dB, instead of a unit-less 24 or worse, a non-intuitive, unit-less 15.8 —the gain equivalent of 24_dB. Such constants also make the code very readable, another objective of this library. Processors such as q::delay are C++ function objects that can be composed to form more complex processors. For example if you want to filter the delayed signal with a low-pass filter with a 1 kHz cutoff frequency, you apply the q::lowpass filter over the result of the delay: q::lowpass _lp{1_kHz, 44100}; then insert the filter where it is needed in the processing loop: // Add the signal s, and the delayed, low-pass filtered signal auto _y = s + _lp(_delay()); Let us move on to a more elaborate example. How about a fully functional, bandwidth limited square wave synthesizer with ADSR envelope that controls an amplifier and a resonant filter and control the note-on and note-off using MIDI? Sounds good? This example is complete and self-contained in one .cpp file, kept as simple as possible to highlight the ease-of-use. The full example can be found here: example/square_synth.cpp. In order to run this example, you will need a MIDI input device connected to your system, preferrably a keyboard. Make sure you have at least one installed. If you do not have a physical MIDI input device, you can install one of the MIDI onscreen keyboards. For example, MidiKeys is a small application for MacOS that presents a MIDI keyboard onscreen. Here’s a short video clip: After building the program, make sure you have a MIDI keyboard connected before starting the application. At startup, the app will present you with a list of available MIDI hardware and will ask you what you want to use. Example: ================================================================================ Available MIDI Devices (ID : \"Name\" inputs/outputs): 0 : \"Quantum 2626\" 1/0 1 : \"Code 61 USB MIDI\" 1/0 2 : \"Code 61 MIDI DIN\" 1/0 3 : \"Code 61 Mackie/HUI\" 1/0 4 : \"Code 61 Editor\" 1/0 5 : \"Quantum 2626\" 0/1 6 : \"Code 61 USB MIDI\" 0/1 7 : \"Code 61 MIDI DIN\" 0/1 8 : \"Code 61 Mackie/HUI\" 0/1 9 : \"Code 61 Editor\" 0/1 ================================================================================ Choose MIDI Device ID: 1 And then a list of audio devices to choose from. Example: ================================================================================ Available Audio Devices (ID : \"Name\" inputs/outputs): 1 : \"MacBook Air Microphone\" 1/0 2 : \"MacBook Air Speakers\" 0/2 3 : \"Quantum 2626\" 26/26 ================================================================================ Choose Audio Device ID: 3 Take note that the demo is a console application. The Q library does not have a GUI, for good reason! We want to keep it as simple as possible. The GUI is taken cared of by other libraries (e.g. Elements). After choosing the MIDI and Audio driver, the synth is playable. The synth is monophonic and responds to velocity only, for simplicity. There are more demo applications in the example directory. After this quick tutorial, feel free to explore. Here’s the actual synthesizer with the processing loop: struct my_square_synth : q::audio_stream { my_square_synth(q::adsr_envelope_gen::config env_cfg, int device_id) : audio_stream(q::audio_device::get(device_id), 0, 2) , env(env_cfg, this->sampling_rate()) , filter(0.5, 0.8) {} void process(out_channels const& out) { auto left = out[0]; auto right = out[1]; for (auto frame : out.frames()) { // Generate the ADSR envelope auto env_ = env() * velocity; // Set the filter frequency filter.cutoff(env_); // Synthesize the square wave auto val = q::square(phase++); // Apply the envelope (amplifier and filter) with soft clip val = clip(filter(val) * env_); // Output right[frame] = left[frame] = val; } } q::phase_iterator phase; // The phase iterator q::adsr_envelope_gen env; // The envelope generator q::reso_filter filter; // The resonant filter q::soft_clip clip; // Soft clip float velocity; // Note-on velocity }; Our synth, a subclass of q::audio_stream, sets up buffers for the input and output audio streams and presents those to our processing loop (the process function above). In this example, we setup an audio stream with the selected device, no inputs and two (stereo) outputs: audio_stream(q::audio_device::get(device_id), 0, 2) Behind the scenes, there’s a lot going on here, actually. But you will notice that emphasis is given to making the library very readable, easy to understand and follow, by breaking down complex tasks into smaller manageable tasks and using function composition at progressively higher levels, while maintaining simplicity and clarity of intent. The synthesizer above is composed of smaller building blocks: fine grained C++ function objects. For example, here’s the square wave oscillator (bandwidth limited using poly_blep). For now, we will skim over details such as the adsr_envelope_gen, phase, and phase_iterator, and this thing called poly_blep. The important point, exemplified here, is that we want to keep our building blocks as simple and minimal as possible. We will cover these in greater detail later. The astute reader may notice that our square_osc class does not even have state! struct square_osc { constexpr float operator()(phase p, phase dt) const { constexpr auto middle = phase::middle(); auto r = p < middle ? 1.0f : -1.0f; // Correct rising discontinuity r += poly_blep(p, dt); // Correct falling discontinuity r -= poly_blep(p + middle, dt); return r; } constexpr float operator()(phase_iterator i) const { return (*this)(i._phase, i._incr); } }; constexpr auto square = square_osc{}; Yeah, that’s the complete oscillator. That’s all there is to it! The modern C++ savvy programmer will immediately notice the use of constexpr, applied judiciously all throughout the library. Such modern C++ facilities allow the compiler to generate extremely efficient code, even those that are generated at compile time. That means, for this example, that one can build an oscillator at compile time if needed, perhaps with constant wavetable results stored in read-only memory. The midi_processor takes care of MIDI events. Your application will have its own MIDI processor that deals with MIDI events that you are interested in. For this simple example, we simply want to process note-on and note-off events. On note-on events, our MIDI processor sets `my_square_synth’s note frequency and velocity and triggers its envelope for attack. On note-off events, our MIDI processor initiates the envelope’s release. struct my_midi_processor : midi::processor { using midi::processor::operator(); my_midi_processor(my_square_synth& synth) : _synth(synth) {} void operator()(midi::note_on msg, std::size_t time) { _key = msg.key(); auto freq = midi::note_frequency(_key); _synth.phase.set(freq, _synth.sampling_rate()); _synth.env.attack(); _synth.velocity = float(msg.velocity()) / 128; } void operator()(midi::note_off msg, std::size_t time) { if (msg.key() == _key) _synth.env.release(); } std::uint8_t _key; my_square_synth& _synth; }; In the main function, we instantiate my_square_synth and my_midi_processor. The synth constructor, in case you haven’t noticed yet, requires an envelope configuration (envelope::config). Here, we provide our configuration. Take note that in this example, the envelope parameters are constant, for the sake of simplicity, but you can definitely have these controllable by the user by writing your own MIDI processor that deals with MIDI control change messages. Again, take note of the abundant use of user-defined literals for units such as duration (e.g. 100_ms) and level (e.g. -12_dB). auto env_cfg = q::envelope::config { 100_ms // attack rate , 1_s // decay rate , -12_dB // sustain level , 5_s // sustain rate , 1_s // release rate }; my_square_synth synth{ env_cfg }; Then, we create my_midi_processor, giving it a reference to my_square_synth. We’ll also need a midi_input_stream that receives the actual incoming MIDI messages from the chosen hardware. q::midi_input_stream stream; my_midi_processor proc{ synth }; Now we’re all set. We start the synth and enter a loop that exits when the user presses ctrl-c (in which case the running flag becomes false). In the loop, we give our MIDI processor a chance to process incoming MIDI events as they arrive from the MIDI stream: synth.start(); while (running) stream.process(proc); synth.stop(); Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Quick Start","component":"q","version":"develop","name":"quick_start","url":"/q/develop/quick_start.html","titles":[{"text":"Hello, World","hash":"_hello_world","id":1},{"text":"The DSP Code","hash":"_the_dsp_code","id":2},{"text":"Notes:","hash":"_notes","id":3},{"text":"Hello, Universe","hash":"_hello_universe","id":4},{"text":"The Synthesizer","hash":"_the_synthesizer","id":5},{"text":"The Oscillator","hash":"_the_oscillator","id":6},{"text":"Processing MIDI","hash":"_processing_midi","id":7},{"text":"The Main Function","hash":"_the_main_function","id":8}]},"5":{"id":5,"text":"Here are the basic requirements and dependencies that you need to satisfy in order to use the library: A C++20 compiler git CMake 3.5.1 or higher Additionally, the following libraries are dragged as submodules: The Cycfi infra library portaudio Audio I/O library. portmidi MIDI I/O library. Q currently supports the MacOS, Windows and Linux. In the Mac, we support both XCode. Q is tested with XCode 10 and XCode 11. In Windows, we support Windows 10 with Visual Studio 2022. In Linux, we support both Clang and gcc. Get the latest version with a C++20 compiler. The CLion IDE is supported on all platforms. Clone the Q DSP library and its submodules: git clone --recurse-submodules https://github.com/cycfi/Q.git Make sure you have CMake 3.5.1 or higher. Follow the installation procedure for your platform. There are multiple ways to generate a project file using CMake depending on your platform and desired IDE, but here are some examples for MacOS 10.14, Windows 10 and, and Ubuntu 16.04: Using XCode: CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"Xcode\" ../ If successful, cmake will generate an XCode project in the build directory. Using Visual Studio 2022 CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"Visual Studio 17 2022\" ../ If successful, cmake will generate an Visual Studio solution project in the build directory. Using dpkg packaging system, stock g++ compiler and CodeBlocks. Install portaudio dependencies: sudo apt-get install libasound-dev CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"CodeBlocks - Unix Makefiles\" ../ If successful, cmake will generate a CodeBlocks project in the build directory. Build the project generated by cmake. Try running the tests and examples. If you intend to run the executables directly from the command line, make sure to change the directory to the same level where the audio_files is (e.g. 1 folder up on XCode builds). Some tests and examples may require audio clips that are found in this folder. To make sure everything is OK, try running the sin_osc.cpp example. Make sure your system’s default audio device is set up and ready to play audio. The sin_osc.cpp program should play a 5 second 440 Hz sine wave. You might also want to try running the list_devices.cpp example that prints out all detected audio and MIDI devices. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Setup and Installation","component":"q","version":"develop","name":"setup","url":"/q/develop/setup.html","titles":[{"text":"Requirements","hash":"_requirements","id":1},{"text":"C++20","hash":"_c20","id":2},{"text":"Git","hash":"_git","id":3},{"text":"CMake","hash":"_cmake","id":4},{"text":"Generating the Project using CMake","hash":"_generating_the_project_using_cmake","id":5},{"text":"MacOS","hash":"_macos","id":6},{"text":"Windows","hash":"_windows","id":7},{"text":"Linux","hash":"_linux","id":8},{"text":"Build and Test","hash":"_build_and_test","id":9}]},"6":{"id":6,"text":"Audio dynamic range processing DSP refers to the manipulation of an audio signal’s dynamic range. The dynamic range of an audio signal is the difference between its loudest and quietest components. Compression, Expansion, Limiting, and Gating are a few common types of dynamic range processing used in audio DSP. Such processing can enhance sound quality, minimize or eliminate noise, and create creative effects. The dynamic range processors in the Q DSP library are unique in that they do not process audio waveform samples directly. Instead, they operate on the envelope of the audio signal, represented as decibel, perform computations in the logarithmic domain, and return a processed envelope, also represented as decibel. As an example, here’s the processing code for the compressor: decibel compressor::operator()(decibel env) const { if (env <= _threshold) return 0_dB; return _slope * (_threshold - env); } This is a hard knee compressor: a type of compressor in which the compression ratio changes abruptly when the input signal exceeds the threshold level, known as the knee point. Both hard knee and soft knee compressors are supported by the Q DSP library. The code accepts an envelope input, env, in decibels and outputs a compressed envelope also in decibels. Processing is done in the logarithmic domain, where addition of two values is equivalent to multiplying their corresponding linear values, and multiplication of two values is equivalent to raising their corresponding linear values to a power. The envelope follower, which is responsible for generating the input envelope for the compressor, is implemented outside of the compressor class. The objective is separation of concerns and the flexibility to use various envelope followers. Compared to their linear counterparts, performing computations in the logarithmic domain is simpler, more intuitive, and makes the code easier to understand while maintaining the same level of efficiency. The compressor example above and all dynamic range processors in the Q DSP library are essentially envelope processors. They receive envelopes, process envelopes, and return envelopes. Since envelope processors operate on the envelope, perform computations in the logarithmic domain, and return a processed envelope, multiple envelope processors can be cascaded. For instance, you can use a single envelope follower and apply the derived envelope to an expander and then pass the result to a compressor, like in the diagram below: A specific use-case for cascading an expander and a compressor, like in the example above, is when you want to use the expander as a noise gate, with soft, non-abrupt gating, set at a threshold just above the noise floor. Then, setting the threshold of the compressor to a high value to even out the dynamic range. The compressor and expander in this case work on different regions of the full dynamic range. But there are also useful cases where the overlap of dynamic ranges the processors are working on is advantageous. The compressor-limiter is a good example. Likewise, multiple compressors with variable thresholds and ratios are another example. By cascading multiple dynamic range processors, we can design efficient multi-function processors like the compressor-limiter with gate (transfer response graph at the right).","title":"Dynamic","component":"q","version":"develop","name":"dynamic","url":"/q/develop/reference/dynamic.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Example","hash":"_example","id":2},{"text":"Key Points","hash":"_key_points","id":3},{"text":"Cascading","hash":"_cascading","id":4}]},"7":{"id":7,"text":"The biquad filter is a versatile and effective audio processing tool. The biquad filter is a second-order filter IIR (Infinite Impulse Response) filter, particularly useful for their simplicity and efficiency in implementation. They can be utilized for a variety of filtering operations. The biquad class and its supporting infrastructure are based on Robert Bristow Johnson’s Audio-EQ Cookbook, implemented using modern C++. The biquad serves as the base class for various forms of filters, including: Low pass filter High pass filter Band pass filter All pass filter Notch filter Peaking filter Low shelf filter High shelf filter #include The Q DSP library’s API implementation hides the majority of the details behind the main biquad struct, with the exception of the copy constructor and the function call operator, which accepts a single s (input sample) parameter and returns the processed value. struct biquad { biquad(biquad const&) = default; float operator()(float s); }; s Input sample. f, a, b Objects of type biquad. Expression Semantics biquad(f) Copy construct from f. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type f(s) Process the input sample s and return the filtered result. float lowpass highpass bandpass_csg bandpass_cpg allpass notch peaking lowshelf highshelf","title":"Biquad Filters","component":"q","version":"develop","name":"biquad","url":"/q/develop/reference/biquad.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"biquad","hash":"_biquad","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Copy Constructor and Assignment","hash":"_copy_constructor_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8},{"text":"Derived Classes","hash":"_derived_classes","id":9}]},"8":{"id":8,"text":"This section deals with envelope extraction from signals. In audio DSP, an envelope efers to the time-varying changes of a signal. It essentially represents the \"shape\" of the signal in terms of its moment-to-moment changes. Extracting an envelope from a signal is particularly important because they can be used for a variety of processing tasks, including controlling the perceived loudness of a signal, reducing noise, emphasizing particular elements of the signal, modulating amplitude, frequency, and other sound properties, to name a few. Envelopes are typically, but not always, related to amplitude changes, although it can sometimes be related to other parameters like pitch or frequency, phase, and filter cutoff, to name a few. This section will only cover amplitude envelope extraction. Figure 1. Output behavior of different types of envelope followers. The amplitude envelope can also be used to extract dynamic features from a sound. As an example, onset detection is a method for determining the beginning of each musical note. The most basic onset detection scheme involves analyzing the amplitude envelope and detecting sudden changes in amplitude that coincide with the start of each note. [1] The Q DSP library includes a variety of envelope extractors, ranging from the most basic peak envelope follower to the more precise, but computationally demanding, fast RMS envelope follower. Each has distinct strengths, characteristics, and tradeoffs that can be evaluated based on the application’s specific requirements. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License 1. An accurate onset detection mechanism that goes far beyond the aforementioned simple onset detection scheme is included in the Hz DSP library, an offshoot of the Q DSP library.","title":"Envelope","component":"q","version":"develop","name":"envelope","url":"/q/develop/reference/envelope.html","titles":[]},"9":{"id":9,"text":"q_io is the Audio and MIDI I/O layer that provides cross-platform audio and MIDI host connectivity. As stated in the Fundamentals section, the q_io layer is optional. The rest of the q_lib layer is usable without it. q_io is primarily used in the tests and examples, but can be easily replaced by other mechanisms in an application. Plugin libraries for DAWs (digital audio workstations), for example, have their own audio and MIDI I/O mechanisms. q_io was intended to be very minimal. The entire layer is comprised of a handful of classes. The diagram below depicts the data transfer between the various components, an application, and the host operating system. audio_device audio_device represents individual audio interfaces on the host platform. There are typically one or more audio devices available. Each device has a name, device identifier, and specific capabilities, including sample rate and the number of input and output channels supported. audio_stream audio_stream handles audio input and output to and from an audio device. Parameters such as sample rate, sample format, and buffer size are specified when opening the audio stream. Audio streams can be input only, output only, or both input and output. Data is transmitted asynchronously between an open audio stream and the application. audio_file audio_file is a set of small and lightweight classes for reading and writing WAV (Waveform Audio File Format) files. It offers a straightforward and intuitive interface for working with WAV audio data. midi_device midi_device is an abstraction which encapsulates the properties and functionality of a MIDI interface. Each MIDI device includes information such as its name, device identifier, and the number of inputs and outputs available. midi_input_stream The midi_input_stream class facilitates MIDI communication and data transmission of MIDI messages between a MIDI device and an application. The application processes audio, asynchronoously, via user provided process functions as documented in the Audio Stream Client Interface. The MIDI Processor is a user provided class that acts as an intermediary between the application and the MIDI stream, facilitating communication and data transmission of MIDI messages.","title":"Audio MIDI I/O","component":"q","version":"develop","name":"q_io","url":"/q/develop/reference/q_io.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Components and Data Flow","hash":"_components_and_data_flow","id":2}]},"10":{"id":10,"text":"Synthesizers are one of the most engaging parts of any DSP library, as they involve the actual creation of sounds. What makes synthesizers so engaging is the level of control they offer over sound creation. A synthesizer allows a user to shape and mold a sound by adjusting parameters such as waveform shape, frequency, amplitude, and filter settings. This level of control enables users to create expressive and unique sounds that can be used in a variety of contexts, ranging from music production to sound design for film and video games. The advancements in DSP technology have made synthesizers even more powerful and flexible. Users can now create sounds that were previously impossible to achieve with traditional analog synthesizers. The Q DSP library provides some common synthesisers such as sine-wave, square, pulse, triangle and saw-tooth, as well as various generators for sculpting the sound envelopes with controls for attack, decay, hold sustain and release. These are designed as moduler building blocks that are combined to form more complex synthesisers. Oscillator is a concept representation of an oscillator that generates periodic waveforms. Oscillators are function objects that take in a phase_iterator: an iterator over the phase. The output is typically a floating point value. namespace cycfi::q::concepts { template concept Oscillator = std::copy_constructible && std::assignable_from && std::default_initializable && requires(T o, T a, T b, phase_iterator pi) { o(pi); // Generate a periodic waveform given `{phase_iterator}`, `pi`. }; } o, a, b Instances of types that conform to Oscillator. pi Object of type phase_iterator. Expression Semantics Oscillator() Default construct an Oscillator. Oscillator(o) Copy construct from o. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type o(pi) Generate a periodic waveform given phase_iterator, pi. decltype(o(pi)) BasicOscillator is a refinement of the Oscillator concept. BasicOscillator is not bandwidth limited. This is is suitable in certain cases. Moreover, some oscillators are inherently bandwidth limited. namespace cycfi::q::concepts { template concept BasicOscillator = Oscillator && requires(T o, phase ph) { o(ph); // Generate a periodic waveform given `{phase}`, `pi`. }; } In addition to valid expressions for Oscillator, BasicOscillator allows these expressions. o Instance of a type that conforms to BasicOscillator. ph Object of type phase. Expression Semantics Return Type o(ph) Generate a periodic waveform given phase, ph. decltype(o(ph)) Waveforms with hard discontinuities such as sawtooth and square waves can generate harmonics that extend beyond the Nyquist frequency range or half the sampling rate. Oscillators may be bandwidth limited to ensure that the harmonics generated fall within the Nyquist frequency range to prevent aliasing, which causes unwanted spectral artifacts in the signal. BandwidthLimitedOscillator is a refinement of the Oscillator concept. These oscillators are bandwidth limited. namespace cycfi::q::concepts { template concept BandwidthLimitedOscillator = Oscillator && requires(T o, phase ph, phase dt) { o(ph, dt); // Generate a periodic waveform given `{phase}`, `pi` // and another `{phase}`, `dt` representing the delta // phase between two samples of the waveform (this is // equivalent to the `_step` member function of the // `{phase_iterator}`). (ph))` }; } In addition to valid expressions for Oscillator, BandwidthLimitedOscillator allows these expressions. o Instance of a type that conforms to BasicOscillator. ph, dt Object of type phase. Expression Semantics Return Type o(ph, dt) Generate a periodic waveform given phase, ph and another phase, dt representing the delta phase between two samples of the waveform (this is equivalent to the _step member function of the phase_iterator). decltype(o(ph)) Generator is a concept representation of a generator. Generators are function objects that take no function arguments and return an output that is typically a floating point value. Generators are typically non-periodic. Generators are useful for constructing complex signals, envelopes and tapers (also known as window functions). namespace cycfi::q::concepts { template concept Generator = requires(T v, T o, T a, T b, phase_iterator pi) { T(o); // Copy construct from `o`. a = b; // Assign `b` to `a`. v(); // Generate a signal. }; } g, a, b Instances of types that conform to Generator. Expression Semantics Generator(g) Copy construct from g. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type g() Generate a signal. decltype(g(pi)) Ramp is a concept representation of a generator that generates non-periodic signals from 0.0 to 1.0 or from 1.0 to 0.0. It is a refinement of the Generator concept. Ramp(s) are suitable for generating envelopes. A Ramp represents a segment of an envelope. Essentially, an envelope comprises two or more upward and downward `Ramp`s. namespace cycfi::q::concepts { template concept Ramp = Generator && requires(T v, duration w, float sps) { T(w, sps); // Construct a Ramp given duration, w, and sps. v.reset(); // Reset the Ramp to the start. v.config(w, sps); // Configure a Ramp given duration, w, and sps. }; } In addition to valid expressions for Generator, Ramp allows these expressions. r Instance of a type that conforms to Ramp. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics Ramp(w, sps) Construct a Ramp given duration, w, and sps. C++ brace initialization may also be used. Expression Semantics r.reset() Reset the Ramp to the start. v.config(w, sps) Configure a Ramp given duration, w, and sps.","title":"Oscillators","component":"q","version":"develop","name":"synth","url":"/q/develop/reference/synth.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Oscillator","hash":"_oscillator","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"BasicOscillator","hash":"_basicoscillator","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10},{"text":"Notation","hash":"_notation_2","id":11},{"text":"Function Call","hash":"_function_call_2","id":12},{"text":"BandwidthLimitedOscillator","hash":"_bandwidthlimitedoscillator","id":13},{"text":"Declaration","hash":"_declaration_3","id":14},{"text":"Expressions","hash":"_expressions_3","id":15},{"text":"Notation","hash":"_notation_3","id":16},{"text":"Function Call","hash":"_function_call_3","id":17},{"text":"Generator","hash":"_generator","id":18},{"text":"Declaration","hash":"_declaration_4","id":19},{"text":"Expressions","hash":"_expressions_4","id":20},{"text":"Notation","hash":"_notation_4","id":21},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_2","id":22},{"text":"Function Call","hash":"_function_call_4","id":23},{"text":"Ramp","hash":"_ramp","id":24},{"text":"Declaration","hash":"_declaration_5","id":25},{"text":"Expressions","hash":"_expressions_5","id":26},{"text":"Notation","hash":"_notation_5","id":27},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_3","id":28},{"text":"Mutators","hash":"_mutators","id":29}]},"11":{"id":11,"text":"The Q DSP library processes audio signals by applying various audio processors to sample inputs. These processors typically operate with floating-point input samples in the typical -1.0 to 1.0 range. However, the values are not restricted to sampled signals. For instance, signal envelopes are best represented as decibels processed in the logarithmic domain. Consequently, dynamic-range processors such as compressors and expanders accept decibel as input and return decibel as output. The Q DSP library is typeful and typesafe, which means that each data type is explicitly defined and enforced. This is crucial because it avoids the potentially catastrophic errors that could result from mismatching values of different types. For example, if all values were just raw floating point types, it would be possible to accidentally mix up the frequency and decibel values. Mistakenly interchanging frequency and decibel values could result in erroneous processing of the audio signal and will lead to undefined results. This document aims to provide comprehensive documentation of the fundamental data types used by the Q DSP library. These basic units are utilized consistently throughout the library and serve as the basis for quantifying specific parameters, such as decibels (dB) for signal level and hertz (Hz) for frequency. Unit is a concept representation of a physical unit. U Unit type. T Underlying arithmetic value type. v Arithmetic value. a Instance of a type that conforms to Unit. b Object with the same unit_type as a. A Type of object a. B Type of object b. The arithmetic value concept is documented in Basic Concepts and declared in this C++ concept as: namespace cycfi::q::concepts { template concept Arithmetic = std::integral || std::floating_point; } Expression Semantics Type U::value_type Get the underlying arithmetic value type. T U::unit_type Get the unique unit type. Each Unit type has its own unique unit type to distinguish from differnt Unit types. unspecified Compatible unit types A and B are allowed for certain expressions as defined below. These types conform to the SameUnit concept declared below: namespace cycfi::q::concepts { template concept SameUnit = std::same_as; } Basically, the declaration states that unit types A and B are the same if they have the same unit_type. Expression Semantics U(v) Construct a Unit from an arithmetic value v. U(b) Copy construct from b. a = b Assign b, to a. C++ brace initialization may also be used. Expression Semantics Return Type a.rep Direct access to the underlying arithmetic value representation. T Expression Semantics Return Type a == b Equality. bool a == v Equality with an arithmetic value. bool v == b Equality with an arithmetic value. bool a != b Non-Equality. bool a != v Non-Equality with an arithmetic value. bool v != b Non-Equality with aan arithmetic value. bool a b Greater than. bool a > v Greater than with an arithmetic value. bool v > b Greater than with an arithmetic value. bool a >= b Greater than equal. bool a >= v Greater than equal with an arithmetic value. bool v >= b Greater than equal with an arithmetic value. bool Expression Semantics Return Type +a Positive. Unit -a Negative. Unit a += b Add assign. Unit& a += v Add assign with an arithmetic value. Unit& a -= b Subtract assign. Unit& a -= v Subtract assign with an arithmetic value. Unit& a *= v Multiply assign with an arithmetic value. Unit& a /= v Divide assign with an arithmetic value. Unit& a + b Addition. Unit a + v Addition with an arithmetic value. Unit v + b Addition with an arithmetic value. Unit a - b Subtraction. Unit a - v Subtraction with an arithmetic value. Unit v - b Subtraction with an arithmetic value. Unit a * v Multiplication with an arithmetic value. Unit v * b Multiplication with an arithmetic value. Unit a / b Division. T a / v Division with an arithmetic value. Unit On binary operations a + b and a - b, where a and b conform to the SameUnit concept (see above), the resuling type will be whichever has the value_type of decltype(a.ref + b.rep), else if both operands are promoted, then whichever has the larger value_type will be chosen. For example, if a.rep is double and b.rep is int, the result will be the unit type of a. frequency duration period phase decibel interval","title":"Units","component":"q","version":"develop","name":"units","url":"/q/develop/reference/units.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Unit","hash":"_unit","id":2},{"text":"Expressions","hash":"_expressions","id":3},{"text":"Notation","hash":"_notation","id":4},{"text":"Arithmetic Concept","hash":"_arithmetic_concept","id":5},{"text":"Type Definitions","hash":"_type_definitions","id":6},{"text":"SameUnit Concept","hash":"_sameunit_concept","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Access","hash":"_access","id":9},{"text":"Comparison","hash":"_comparison","id":10},{"text":"Arithmetic","hash":"_arithmetic","id":11},{"text":"Unit Promotion","hash":"_unit_promotion","id":12},{"text":"Models","hash":"_models","id":13}]},"12":{"id":12,"text":"All pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the allpass class. #include struct allpass : biquad { allpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, allpass allows these expressions. ap Object of type allpass. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics allpass(f, sps [, q]) Construct an allpass filter from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics ap.config(f, sps [, q]) Configure an allpass from f, sps and optional q (defaults to 0.707).","title":"All Pass Filter","component":"q","version":"develop","name":"allpass","url":"/q/develop/reference/biquad/allpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"13":{"id":13,"text":"Band pass second-order IIR (Infinite Impulse Response) filter with constant 0 dB peak gain. This filter is embodied by the allpass class. #include struct bw (1) { double val; // in octaves }; struct bandpass_cpg : biquad { bandpass_cpg(frequency f, float sps, bw _bw); bandpass_cpg(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, bandpass_cpg allows these expressions. bf Object of type bandpass_cpg. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics bandpass_cpg(f, sps [, q]) Construct a bandpass_cpg filter from f, sps and optional q (defaults to 0.707). bandpass_cpg(f, sps, bw{b}) Construct a bandpass_cpg filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(f, sps) Configure a bandpass_cpg filter from f, sps. q defaults to 0.707 bf.config(f, sps [, q]) Configure a bandpass_cpg filter from f, sps and optional q (defaults to 0.707). bf.config(f, sps, bw{b}) Configure a bandpass_cpg filter from f, sps and b (bandwidth).","title":"Band Pass Filter; Constant Peak Gain","component":"q","version":"develop","name":"bandpass_cpg","url":"/q/develop/reference/biquad/bandpass_cpg.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"14":{"id":14,"text":"Band pass second-order IIR (Infinite Impulse Response) filter with constant skirt gain, peak gain = Q. This filter is embodied by the bandpass_csg class. #include struct bw (1) { double val; // in octaves }; struct bandpass_csg : biquad { bandpass_csg(frequency f, float sps, bw _bw); bandpass_csg(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, bandpass_csg allows these expressions. bf Object of type bandpass_csg. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics bandpass_csg(f, sps [, q]) Construct a bandpass_csg filter from f, sps and optional q (defaults to 0.707). bandpass_csg(f, sps, bw{b}) Construct a bandpass_csg filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(f, sps [, q]) Configure a bandpass_csg filter from f, sps and optional q (defaults to 0.707). bf.config(f, sps, bw{b}) Configure a bandpass_csg filter from f, sps and b (bandwidth).","title":"Band Pass Filter; Constant Skirt Gain","component":"q","version":"develop","name":"bandpass_csg","url":"/q/develop/reference/biquad/bandpass_csg.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"15":{"id":15,"text":"High pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the highpass class. #include struct highpass : biquad { highpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, highpass allows these expressions. hp Object of type highpass. f Object of type frequency. sps Floating point value representing samples per second. `q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics highpass(f, sps [, q]) Construct a highpass filter from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics hp.config(f, sps [, q]) Configure a highpass from f, sps and optional q (defaults to 0.707).","title":"High Pass Filter","component":"q","version":"develop","name":"highpass","url":"/q/develop/reference/biquad/highpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"16":{"id":16,"text":"High shelf second-order IIR (Infinite Impulse Response) filter. All frequencies above the shelving frequency are either boosted or attenuated by the specified gain in decibels. This filter is embodied by the highshelf class. #include struct highshelf : biquad { highshelf(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, double q = 0.707); }; In addition to valid expressions for biquad, highshelf allows these expressions. hs Object of type highshelf. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics highshelf(g, f, sps [, q]) Construct a highshelf from g, f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics hs.config(g, f, sps [, q]) Configure a highshelf from g, f, sps and optional q (defaults to 0.707).","title":"High Shelf Filter","component":"q","version":"develop","name":"highshelf","url":"/q/develop/reference/biquad/highshelf.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"17":{"id":17,"text":"Low pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the lowpass class. #include struct lowpass : biquad { lowpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, lowpass allows these expressions. lp Object of type lowpass. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics lowpass(f, sps [, q]) Construct a lowpass from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics lp.config(f, sps [, q]) Configure a lowpass from f, sps and optional q (defaults to 0.707).","title":"Low Pass Filter","component":"q","version":"develop","name":"lowpass","url":"/q/develop/reference/biquad/lowpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"18":{"id":18,"text":"Low shelf second-order IIR (Infinite Impulse Response) filter. All frequencies below the shelving frequency are either boosted or attenuated by the specified gain in decibels. This filter is embodied by the lowshelf class. #include struct lowshelf : biquad { lowshelf(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, double q = 0.707); }; In addition to valid expressions for biquad, lowshelf allows these expressions. ls Object of type lowshelf. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics lowshelf(g, f, sps [, q]) Construct a lowshelf from g, f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics ls.config(g, f, sps [, q]) Configure a lowshelf from g, f, sps and optional q (defaults to 0.707).","title":"Low Shelf Filter","component":"q","version":"develop","name":"lowshelf","url":"/q/develop/reference/biquad/lowshelf.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"19":{"id":19,"text":"Notch second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the notch class. #include struct bw (1) { double val; // in octaves }; struct notch : biquad { notch(frequency f, float sps, bw _bw); notch(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, notch allows these expressions. nf Object of type notch. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics notch(f, sps [, q]) Construct a notch filter from f, sps and optional q (defaults to 0.707). notch(f, sps, bw{b}) Construct a notch filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics `nf.config(f, sps [, q]) Configure a notch filter from f, sps and optional q (defaults to 0.707). nf.config(f, sps, bw{b}) Configure a notch filter from f, sps and b (bandwidth).","title":"Notch Filter","component":"q","version":"develop","name":"notch","url":"/q/develop/reference/biquad/notch.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"20":{"id":20,"text":"Peaking second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the peaking class. #include struct bw (1) { double val; // in octaves }; struct peaking : biquad { peaking(double db_gain, frequency f, float sps, bw _bw); peaking(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, bw _bw); void config(double db_gain, frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, peaking allows these expressions. bf Object of type peaking. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics peaking(g, f, sps [, q]) Construct a peaking filter from g, f, sps and optional q (defaults to 0.707). peaking(g, f, sps, bw{b}) Construct a peaking filter from g, f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(g, f, sps [, q]) Configure a peaking filter from g, f, sps and optional q (defaults to 0.707). bf.config(g, f, sps, bw{b}) Configure a peaking filter from g, f, sps and b (bandwidth).","title":"Peaking Filter","component":"q","version":"develop","name":"peaking","url":"/q/develop/reference/biquad/peaking.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"21":{"id":21,"text":"The AGC, or automatic gain control, compares the envelope, env, to an external reference, ref, and increases or decreases the gain to maintain a constant output level. A class named agc implements AGC. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The agc is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. agc is a feedforward type AGC.\" In contrast to feedback AGCs, feedforward AGCs derive their control signal only from the input signal and an external reference set-point. #include struct agc { agc(decibel max); decibel operator()(decibel env, decibel ref) const; void max(decibel max_); decibel max() const; }; g, a, b Objects of type agc max, ref Objects of type decibel Expression Semantics agc(max) Construct an agc from max (maximum) gain. agc(g) Copy construct from agc g. a = b Assign b to a. C++ brace initialization may also be used. As previously stated, the agc compares the envelope, env, to an external reference, ref, and adjusts the gain accordingly to maintain a constant output level. However, there is a maximum gain that can be applied when the signal falls below the reference. The max constructor parameter specified this \"maximum\" gain. Expression Semantics Return Type g(env, ref) Process the input envelope env by increasing or decreasing the gain if env goes above, or falls below ref to maintain a constant output level. decibel The output is the adjusted gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(g(env, ref)); (1) auto out = signal * gain; (2) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by agc and converted to float. 2 The signal multiplied by gain. Expression Semantics Return Type g.max(max) Set the agc maximum gain. void Expression Semantics Return Type g.max() Get the agc maximum gain. float","title":"AGC","component":"q","version":"develop","name":"agc","url":"/q/develop/reference/dynamic/agc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"22":{"id":22,"text":"The compressor dynamically modulates the gain when the signal envelope rises above a specified threshold. The compressor reduces the level of high-level signals (signals above the threshold) while leaving low-level signals unchanged. The compressor is implemented by a class named compressor. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The compressor can be utilized as a limiter by setting its threshold to the desired limit level and the ratio to a high value (e.g. 10:1 or greater). The limiter prevents the signal from exceeding a certain threshold level. When the input signal exceeds the threshold, the compressor squashes the output level. For this to be effective, you will need to use an envelope follower with fast attack time to ensure that the limiting action is instantaneous, preventing transient peaks from exceeding the threshold level. The compressor is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. compressor is a hard knee compressor: a type of compressor in which the compression ratio changes abruptly when the input signal exceeds the threshold level, known as the knee point. Both hard knee and soft knee compressors are supported by the Q DSP library. #include struct compressor { compressor(decibel threshold, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void ratio(float ratio); decibel threshold() const; float ratio() const; }; comp, a, b Objects of type compressor t, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics compressor(t, r) Construct a compressor from t (threshold) and r (ratio). compressor(comp) Copy construct from compressor comp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"n:1\" notation for compressors, the ratio parameter is 1/n, thereby the ratio for compressors is normally from 0.0…​1.0. For example, a 4:1 compression is 1/4 or 0.25. Signal rising above the threshold is attenuated, compressing the signal. For every dB above the threshold, t, the signal is attenuated by n dB. For example, with a ratio of 4:1 (0.25), 1dB above the threshold is attenuated by 4dB. Expression Semantics Return Type comp(env) Process the input envelope env and return the compressed result. decibel The output is the compressed gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(comp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by comp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Typically, you add some makeup gain after compression to compensate for the gain reduction. Expression Semantics Return Type comp.threshold(t) Set the compressor threshold. void comp.ratio(r) Set the compressor ratio. void Expression Semantics Return Type comp.threshold() Get the compressor threshold. decibel comp.ratio() Get the compressor ratio. float","title":"Compressor","component":"q","version":"develop","name":"compressor","url":"/q/develop/reference/dynamic/compressor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"23":{"id":23,"text":"The expander is the inverse of the compressor. The expander dynamically modulates the gain when the signal falls below the threshold, attenuating the signal. The expander is used to increase the dynamic range of an audio signal by reducing the level of low-level signals (signals below the threshold) while leaving high-level signals unchanged, in contrast to a compressor, which reduces the level of high-level signals while leaving low-level signals unchanged. A certain type of expander, called the downward expander, is implemented by a class named expander. The expander can be utilized as a noise gate by setting the threshold to allow only audio signals above the noise floor to pass through. When the audio level falls below the threshold, the expander effectively gates out any low-level noise by reducing the audio signal level down to zero. The result can range from a hard and sudden cutoff to a soft and gradual reduction of signals below the threshold, depending on the desired ratio. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The expander is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. expander is a downward expander. This type of expander gradually decreases the level of the audio signal below the threshold. #include struct expander { expander(decibel threshold, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void ratio(float ratio); decibel threshold() const; float ratio() const; }; exp, a, b Objects of type expander t, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics expander(t, r) Construct a expander from t (threshold), w (width), and r (ratio). expander(exp) Copy construct from expander exp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"1:n\" notation for expanders, the ratio parameter is n, thereby the ratio for expanders is normally from 0.0…​inf. (e.g. 1:4 expansion is 4). A ratio of 1:inf is a hard gate where no signal passes below the threshold. For every dB below the threshold, the signal is attenuated by n dB. For example, with a ratio of 4:1 (4), 1dB below the threshold is attenuated by 4dB. Expression Semantics Return Type exp(env) Process the input envelope env and return the expanded result. decibel The output is the expanded gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(exp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by exp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Expression Semantics Return Type exp.threshold(t) Set the expander threshold. void exp.ratio(r) Set the expander ratio. void Expression Semantics Return Type exp.threshold() Get the expander threshold. decibel exp.ratio() Get the expander ratio. float","title":"Expander","component":"q","version":"develop","name":"expander","url":"/q/develop/reference/dynamic/expander.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"24":{"id":24,"text":"The compressor dynamically modulates the gain when the signal envelope rises above a specified threshold. The compressor reduces the level of high-level signals (signals above the threshold) while leaving low-level signals unchanged. A type of compressor known as the soft knee compressor is implemented by a class named soft_knee_compressor. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The soft_knee_compressor is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. soft_knee_compressor is a type of compressor that employs a gradual compression ratio transition. In a soft knee compressor, the compression ratio gradually increases as the input signal level approaches the threshold level, rather than immediately switching to the ratio at the threshold. This produces a smoother and more natural-sounding compression effect. Soft knee compressors are used when a transparent and subtle compression effect is desired. Both hard knee and soft knee compressors are supported by the Q DSP library. #include struct soft_knee_compressor { soft_knee_compressor(decibel threshold, decibel width, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void width(decibel val); void ratio(float ratio); decibel threshold() const; decibel width() const; float ratio() const; }; comp, a, b Objects of type soft_knee_compressor t, w, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics soft_knee_compressor(t, w, r) Construct a soft_knee_compressor from t (threshold), w (width), and r (ratio). soft_knee_compressor(comp) Copy construct from soft_knee_compressor comp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"n:1\" notation for compressors, the ratio parameter is 1/n, thereby the ratio for compressors is normally from 0.0…​1.0. For example, a 4:1 compression is 1/4 or 0.25. Signal rising above the threshold is attenuated, compressing the signal. For every dB above the threshold, t, the signal is attenuated by n dB. For example, with a ratio of 4:1 (0.25), 1dB above the threshold is attenuated by 4dB. Expression Semantics Return Type comp(env) Process the input envelope env and return the compressed result. decibel The output is the compressed gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(comp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by comp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Typically, you add some makeup gain after compression to compensate for the gain reduction. Expression Semantics Return Type comp.threshold(t) Set the soft_knee_compressor threshold. void comp.width(w) Set the soft_knee_compressor width. void comp.ratio(r) Set the soft_knee_compressor ratio. void Expression Semantics Return Type comp.threshold() Get the soft_knee_compressor threshold. decibel comp.width() Get the soft_knee_compressor width. decibel comp.ratio() Get the soft_knee_compressor ratio. float","title":"Soft Knee Compressor","component":"q","version":"develop","name":"soft_knee_compressor","url":"/q/develop/reference/dynamic/soft_knee_compressor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"25":{"id":25,"text":"AR Envelope Follower, where \"AR\" stands for Attack-Release, is similar to the Peak Envelope Follower but allows you to specify the attack duration. During the attack phase of an audio signal, the AR envelope follower attempts to follow the signal but is constrained by the attack duration. A longer attack period gives a softer response, exponentially increasing. When the signal level drops below the peak, the follower gradually releases the peak level with an exponential decay. The AR envelope follower models the behavior of two resistors, one for attack, and one for release, each connected in series with an ideal diode —with no voltage drop—, tied together and connected to a capacitor. During attacks, the capacitor charges through the attack resistor, exponentially increasing. The capacitor discharges through the release resistor as the audio signal falls below the peak charge, causing the output voltage to progressively decay with an exponential curve. Figure 1. AR envelope follower response The plot in Figure 1 depicts the response of the AR envelope follower, which was obtained by picking the guitar’s low-E string and using a 2-milliseconds attack duration and 2-second release duration (envelope: magenta, signal: blue, absolute value of the signal: dark blue). It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The AR envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. Like the Peak Envelope Follower, the AR Peak Detector is susceptible to having ripples in the envelope with the short release durations. See Envelope Ripples for details. #include struct ar_envelope_follower { ar_envelope_follower( duration attack , duration release , float sps ); float operator()(float s); float operator()() const; ar_envelope_follower& operator=(float y); void config(duration attack, duration release, float sps); void attack(float attack_, float sps); void release(float release_, float sps); }; env, a, b Objects of type ar_envelope_follower atk, rel Objects of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. y Floating point value from 0.0 to 1.0. Expression Semantics ar_envelope_follower(atk, rel, sps) Construct a ar_envelope_follower given atk (attack duration), rel (release duration) and sps (samples per second). ar_envelope_follower(env) Copy construct from ar_envelope_follower env. a = b Assign b to a. a = y Reset the latest held value of the ar_envelope_follower to y. C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the ar_envelope_follower float Expression Semantics Return Type env.config(atk, rel, sps) Set the attack duration given atk (attack duration), rel (release duration) and sps (samples per second). void env.attack(atk, sps) Set the attack duration given atk (attack duration) and sps (samples per second) void env.release(rel, sps) Set the release duration given rel (release duration) and sps (samples per second) void","title":"AR Envelope Follower","component":"q","version":"develop","name":"ar_envelope_follower","url":"/q/develop/reference/envelope/ar_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8},{"text":"Mutators","hash":"_mutators","id":9}]},"26":{"id":26,"text":"The Fast Averaging Envelope Follower is a variation of the Fast Envelope Follower. It is a simple composite class that contains a fast envelope follower member and a moving average filter member to smooth out the staircase ripples. One advantage of a moving average filter over a standard low-pass filter is that its output has less distortion of the envelope’s shape due to its linear phase response, which means it does not cause phase shifts, keeping the signal’s time-domain shape substantially intact. The plot in Figure 1 below shows the fast averaging envelope follower’s response (envelope: pink, signal: blue, absolute value of the signal: dark blue). Figure 1. Fast averaging envelope follower response The plot in Figure 2 below shows the plain and Fast averaging envelope follower’s response. The fast envelope follower’s staircase-like envelope is effectively smoothed out using a moving average filter with the same duration as the hold parameter. The moving average filter transforms the hard staircase edges into soft ramps. #include template struct basic_fast_ave_envelope_follower { basic_fast_ave_envelope_follower(duration hold, float sps); float operator()(float s); float operator()() const; }; using fast_ave_envelope_follower = basic_fast_ave_envelope_follower; basic_fast_ave_envelope_follower essentially follows the same API as Fast Envelope Follower. basic_fast_ave_envelope_follower is a template class parameterized by div, which must be >= 1. div specifies the minimum duration required for the hold parameter. The hold duration should be equal to or slightly longer than 1/div multiplied by the period of the lowest frequency of the signal we wish to track. For example, if the lowest frequency we wish to track is 440 Hz, and div = 2, then the hold parameter should be greater than 1.13 ms. fast_ave_envelope_follower is an alias for basic_fast_ave_envelope_follower. In general, this is all you need to use, unless you want finer granularity. The higher the div is, the finer the granularity possible. Again, all of these comes at the cost of additional computing complexity. env_t A basic_fast_ave_envelope_follower type. env, a, b Objects of type basic_fast_ave_envelope_follower hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_ave_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_ave_envelope_follower env. a = b Assign b to a. C++ brace initialization may also be used. env_t is just a shortcut notation for any type or alias to a template instantiation of basic_fast_ave_envelope_follower. Example: using my_env_t = basic_fast_ave_envelope_follower; Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_ave_envelope_follower float","title":"Fast Averaging Envelope Follower","component":"q","version":"develop","name":"fast_ave_envelope_follower","url":"/q/develop/reference/envelope/fast_ave_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8}]},"27":{"id":27,"text":"The Fast Envelope Follower is the software implementation of a unique envelope detector that feature fast response and low ripple. It is based on the hardware article titled Envelope Follower Combines Fast Response, Low Ripple by Harry Bissell Jr. See Figure 1 below. Basically, the result of the fast envelope follower is the maximum of N peak values taken simultaneously. Each value is the maximum of the current sample and the latest held peak value. Each of the peak values are reset to zero in a round-robin fashion. As a peak value is reset, the other peak values still hold the latest peak value. The highest peak among N peaks is then chosen as the current output. Figure 1. Fast Envelope Detector The plot in Figure 2 below shows the fast envelope follower’s response. As compared to the Peak Envelope Follower and AR Envelope Follower, the fast envelope follower’s superior performance is immediately apparent in the plot. Of course, this comes at the cost of additional computing complexity. Figure 2. Fast envelope follower response The reset cycle time is specified by the hold duration parameter. The number of peak values is specified by the div parameter. The plot was obtained by picking the guitar’s low-E string and using a hold duration of approximately 6 ms and with a div of 2 (envelope: red, signal: blue, absolute value of the signal: dark blue). See below for more information on the hold and div parameters. It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The fast envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. The output is a jagged, staircase-like envelope that tightly follows the input, including fast attacks and decays. Figure 3 below (envelope: red, signal: blue, absolute value of the signal: dark blue) is a closer view of Figure 2 above: Figure 3. Staircase-Like Output The output is suitable for signal analysis as is. If the signal is to be utilized for modulation, for example as input to a Compressor, further filtering is recommended. Fast Averaging Envelope Follower is one such example. Figure 4 demonstrates in closer detail the transient response of various envelope detectors, demonstrating how the fast envelope follower’s response closely follows the true envelope of the signal compared to the Peak Envelope Follower and AR Envelope Follower, both of which perform poorly on signal decays. Figure 4. Transient Response of Envelope Detectors #include template struct basic_fast_envelope_follower { static_assert(div >= 1, \"div must be >= 1\"); basic_fast_envelope_follower(duration hold, float sps); float operator()(float s); float operator()() const; }; using fast_envelope_follower = basic_fast_envelope_follower; basic_fast_envelope_follower is a template class parameterized by div, which must be >= 1. div specifies the minimum duration required for the hold parameter. The hold duration should be equal to or slightly longer than 1/div multiplied by the period of the lowest frequency of the signal we wish to track. For example, if the lowest frequency we wish to track is 440 Hz, and div = 2, then the hold parameter should be greater than 1.13 ms. fast_envelope_follower is an alias for basic_fast_envelope_follower. In general, this is all you need to use, unless you want finer granularity. The higher the div is, the finer the granularity possible. Again, all of these comes at the cost of additional computing complexity. env_t A basic_fast_envelope_follower type. env, a, b Objects of type basic_fast_envelope_follower hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_envelope_follower env. a = b Assign b to a. env_t is just a shortcut notation for any type or alias to a template instantiation of basic_fast_envelope_follower. Example: using my_env_t = basic_fast_envelope_follower; C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_envelope_follower float","title":"Fast Envelope Follower","component":"q","version":"develop","name":"fast_envelope_follower","url":"/q/develop/reference/envelope/fast_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Staircase Output","hash":"_staircase_output","id":3},{"text":"Transient Response","hash":"_transient_response","id":4},{"text":"Include","hash":"_include","id":5},{"text":"Declaration","hash":"_declaration","id":6},{"text":"Expressions","hash":"_expressions","id":7},{"text":"Notation","hash":"_notation","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Function Call","hash":"_function_call","id":10}]},"28":{"id":28,"text":"The Fast RMS Envelope Follower is a variation of the Fast Envelope Follower. It is a simple composite class that contains a Fast Averaging Envelope Follower member. The signal path is as follows: Square the signal. Apply the fast averaging envelope follower. The moving average filter in the fast averaging envelope follower returns the arithmetic mean of the squared values over its hold period. Return the square root the result. This is embodied in the fast_rms_envelope_follower class. Following the fast envelope follower API, the function call operator accepts a floating point sample, transforms it, and returns an envelope, also a floating point. The fast_rms_envelope_follower_db variant works in the dB domain, making it easy to use as an envelope follower for dynamic range effects (compressor, expander, and agc) that already work in the dB domain, so we eliminate a linear to decibel conversion and optimize computation by using division by 2 instead of sqrt as an added bonus. The plot in Figure 1 below shows the fast RMS envelope follower’s response (envelope: green, signal: blue, absolute value of the signal: dark blue). It may look indistinguishable from the Fast Averaging Envelope Follower's output, but this detector returns true RMS results. Figure 1. Fast RMS envelope follower response #include struct fast_rms_envelope_follower { fast_rms_envelope_follower(duration hold, float sps); float operator()(float s); }; struct fast_rms_envelope_follower_db : fast_rms_envelope_follower { using fast_rms_envelope_follower::fast_rms_envelope_follower; decibel operator()(float s); }; fast_rms_envelope_follower essentially follows the same API as Fast Envelope Follower. The fast_rms_envelope_follower_db variant works in the dB domain and returns decibel instead of float. env_t A fast_rms_envelope_follower or fast_rms_envelope_follower_db. env, a, b Objects of type fast_rms_envelope_follower or fast_rms_envelope_follower_db. hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_ave_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_ave_envelope_follower env. a = b Assign b to a. C++ brace initialization may also be used. env_t is just a shortcut notation for any type or alias to a template instantiation of fast_rms_envelope_follower or fast_rms_envelope_follower_db. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_ave_envelope_follower float","title":"Fast RMS Envelope Follower","component":"q","version":"develop","name":"fast_rms_envelope_follower","url":"/q/develop/reference/envelope/fast_rms_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8}]},"29":{"id":29,"text":"During the attack phase of an audio signal, the peak envelope follower closely tracks the maximum peak level. When the signal level drops below the peak, the follower gradually releases the peak level with an exponential decay. This allows the follower to accurately capture the dynamic changes in the audio signal while avoiding sudden downward fluctuations. The peak envelope follower models the behavior of an ideal diode —with no voltage drop— connected in series with a resistor and a capacitor connected in parallel. The ideal diode allows the positive peaks of the audio signal to pass through, charging the capacitor to the maximum. When the signal falls below the peak, the capacitor discharges through the resistor, causing the output voltage to gradually decay with an exponential curve, following the release time constant. Figure 1. Peak envelope follower response The plot in Figure 1 depicts the response of the peak envelope follower, which was obtained by picking the guitar’s low-E string and using a 2-second release duration (envelope: orange, signal: blue, absolute value of the signal: dark blue). It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The peak envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. The peak envelope follower can track fast attack transients, but cannot track downward slopes faster than the specified release duration. However, reducing the release duration too much can reveal envelope ripples. When the release duration is too fast, the peak envelope follower quickly releases the previous cycle’s peak and begins tracking the peak of the next cycle, causing ripples in the envelope follower’s output, as shown in the image on the right. Such ripples can cause unwanted modulation and can be heard as distortion or noise in the audio signal. Further low-pass filtering can reduce the ripples at the expense of smearing the attack shape. #include struct peak_envelope_follower { peak_envelope_follower(duration release, float sps); float operator()(float s); float operator()() const; peak_envelope_follower& operator=(float y); void release(duration release_, float sps); }; env, a, b Objects of type peak_envelope_follower rel Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. y Floating point value from 0.0 to 1.0. Expression Semantics peak_envelope_follower(rel, sps) Construct a peak_envelope_follower given rel (release duration) and sps (samples per second). peak_envelope_follower(env) Copy construct from peak_envelope_follower env. a = b Assign b to a. a = y Reset the latest held value of the peak_envelope_follower to y. C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the peak_envelope_follower float Expression Semantics Return Type env.release(rel, sps) Set the release duration given rel (release duration) and sps (samples per second) void","title":"Peak Envelope Follower","component":"q","version":"develop","name":"peak_envelope_follower","url":"/q/develop/reference/envelope/peak_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Envelope Ripples","hash":"_envelope_ripples","id":3},{"text":"Include","hash":"_include","id":4},{"text":"Declaration","hash":"_declaration","id":5},{"text":"Expressions","hash":"_expressions","id":6},{"text":"Notation","hash":"_notation","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Function Call","hash":"_function_call","id":9},{"text":"Mutators","hash":"_mutators","id":10}]},"30":{"id":30,"text":"A DC blocker is a high-pass filter which attenuates frequencies below the signal’s lowest frequency of interest. Eliminating the DC offset from a signal allows the signal to be analyzed or processed more effectively in subsequent stages. dc_block is an implementation of a DC blocker based on Julius O. Smith’s document Introduction to Digital Filters. #include struct dc_block { dc_block(frequency f, float sps); float operator()(float s); float operator()() const; dc_block& operator=(float y); void cutoff(frequency f, float sps); }; bk, a, b Objects of type dc_block. f Object of type frequency representing the cutoff frequency. sps Floating point value representing samples per second. s Input sample. Expression Semantics dc_block(f, sps) Construct a dc_block with specified cutoff frequency, f, and samples per second sps. dc_block(b) Copy construct a dc_block from b. a = b Assign b to a. a = s Set the latest result to s. C++ brace initialization may also be used. Expression Semantics Return Type bk() Return the latest result. float bk(s) Remove DC from the input sample s. float Expression Semantics Return Type bk.cutoff(f, sps) Set the cutoff frequency given frequency f, and samples per second sps. void","title":"DC Block","component":"q","version":"develop","name":"dc_block","url":"/q/develop/reference/misc/dc_block.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"31":{"id":31,"text":"Delays are important DSP building blocks. They introduce repetitions of the original signal, resulting in spacious soundscapes and echoes. The number of repetitions is controlled via feedback. The interval between the initial signal and the repetitions is altered by adjusting the delay time. Longer durations provide echoes, whereas shorter delays produce doubling effects. Filters can shape the repeating signals, influencing their tonal properties. Delays are also essential for modulation effects such as flangers and choruses, which are created by dynamically modulating delay times using low-frequency oscillators (LFOs). basic_delay is a basic class for delays. The actual delay duration parameter is decoupled from, and managed outside the class to allow both single and multi-tapped delays. The delay is implemented using a base ring buffer with provisions for non-fractional (exact) and fractional (sub-sample) indexing. Fractional element indexing is required for fractional delays that are not integer multiples of the sampling period. Figure 1. Delay Line basic_delay is a template class whose Base template parameter should be the ring buffer storage type it inherits from. See ring_buffer and fractional_ring_buffer. #include template class basic_delay : public Base { public: using value_type = typename Base::value_type; using storage_type = typename Base::storage_type; using index_type = typename Base::index_type; using interpolation_type = typename Base::interpolation_type; basic_delay(duration max_delay, float sps); float operator()() const; float operator()(index_type i) const; float operator()(value_type val, index_type i); }; // Fractional delay using delay = basic_delay>; // Non-fractional delay using nf_delay = basic_delay>; In addition to valid expressions for the Base class that the basic_delay inherits from (See ring_buffer and fractional_ring_buffer), basic_delay allows these expressions. Base Ring buffer storage type, e.g. ring_buffer. d_type A basic_delay type. d, a, b Objects of type basic_delay. val Object of type d_type::value_type. i Object of type d_type::index_type. max_delay Object of type duration. sps Floating point value representing samples per second. Expression Semantics basic_delay Instantiate a basic_delay type given Base ring buffer storage type. delay Pre declared fractional delay type. nf_delay Pre declared Non-fractional delay type. using my_delay_type1 = basic_delay>; using my_delay_type2 = delay; Expression Semantics d_type::value_type Get the underlying element type. d_type::storage_type Get the underlying storage type. d_type::index_type Get the underlying index type. d_type::interpolation_type Get the underlying interpolation type. Expression Semantics d_type(max_delay, sps) Construct a basic_delay with maximum duration, max_delay and samples per second, sps. d_type(d) Copy construct from d_type d. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type d() Get the delayed signal (maximum delay). d_type::value_type d(i) Get the delayed signal at index i. d_type::value_type d(val, i) Push a new signal and return the delayed signal at index i+1. This is the simplest (common) case for single delays. For multi-tapped delays, you need to access the individual delays using the indexing operator for various tap-points before pushing the latest sample. d_type::value_type","title":"Delay","component":"q","version":"develop","name":"delay","url":"/q/develop/reference/misc/delay.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Function Call","hash":"_function_call","id":10}]},"32":{"id":32,"text":"The moving_average is the simplest and most efficient FIR filter. It is also the most common filter in DSP primarily due to its simplicity. But while it is technically a low pass FIR filter, it performs poorly in the frequency domain with very slow roll-off and dreadful stopband attenuation. On the other hand, it performs admirably in the time domain. The moving average filter is optimal in reducing random noise while retaining a sharp step response. Averaging N samples (the moving average window size) increases the SNR by the square root of N. For example, N=16 improves SNR by 4 (12dB). The filter delay is exactly (N−1)/2. Figure 1. Moving Average When data is pushed into a moving average, the element indices are shifted by one position to accommodate the incoming data. This logical shifting ensures that the newest data is stored in the first index (index 0), while the oldest data is pushed out of the buffer. The physical location of data does not actually change, only the indices. The data type, T, is a template parameter, allowing both floating point as well as integer computations. Integers are typically faster than floating point and are not prone to round-off errors. moving_average is a subclass of the moving_sum. #include template struct basic_moving_average : basic_moving_sum { using basic_moving_sum::basic_moving_sum; using value_type = T; T operator()(T s); T operator()() const; }; using moving_average = basic_moving_average; As a subclass of Moving Sum, moving_average inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for Moving Sum, moving_average allows these expressions. T Element type, e.g. float. ma Object of type basic_moving_average. s Object of type ma_type::value_type. Expression Semantics basic_moving_average Instantiate a basic_moving_average type given T, the element type, e.g. float. moving_average Pre declared basic_moving_average type. Expression Semantics Return Type ma() Return the current average. ma_type::value_type ma(s) Add a new sample and calculate the current average. ma_type::value_type","title":"Moving Average","component":"q","version":"develop","name":"moving_average","url":"/q/develop/reference/misc/moving_average.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Function Call","hash":"_function_call","id":7}]},"33":{"id":33,"text":"The moving sum involves adding a specified number of values in a sequence of data points —the moving sum window. The window moves through the data one point at a time as new samples arrive, and at each step, the sum of the data points within the window is calculated. Instead of calculating the sum of all elements in the window each time, an efficient scheme keeps a continuous total and subtracts the last element that will fall off the window when a new sample arrives. Figure 1. Moving Sum When data is pushed into a moving sum, the element indices are shifted by one position to accommodate the incoming data. This logical shifting ensures that the newest data is stored in the first index (index 0), while the oldest data is pushed out of the buffer. The physical location of data does not actually change, only the indices. basic_moving_sum is a template class representing moving sums with provision for specifying the element type, T. Integers are typically faster than floating point and are not prone to round-off errors. It is implemented internally using a ring buffer. Refer to ring_buffer. #include template struct basic_moving_sum { using value_type = T; basic_moving_sum(std::size_t max_size); basic_moving_sum(duration d, float sps); value_type operator()(value_type s); value_type operator()() const; value_type sum() const; std::size_t size() const; void resize(std::size_t size, bool update = false); void resize(duration d, float sps, bool update = false); void clear(); void fill(T val); }; using moving_sum = basic_moving_sum; T Element type, e.g. float. ms_type A basic_moving_sum type. ms, a, b Objects of type basic_moving_sum. s, val Objects of type ms_type::value_type. size Object of type std::size_t. d Object of type duration. sps Floating point value representing samples per second. a [, b, c, d] Required a, optional b, c, d. Expression Semantics basic_moving_sum Instantiate a basic_moving_sum type given T, the element type, e.g. float. moving_sum Pre declared basic_moving_sum type. Expression Semantics ms_type::value_type Get the underlying element type. Expression Semantics ms_type(size) Construct a basic_moving_sum with specified window size in samples. ms_type(d, sps) Construct a basic_moving_sum with window size specified by d and sps (duration and sample rate). ms_type(ms) Copy construct from ms_type ms. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type ms() Return the current sum. ms_type::value_type ms(s) Add a new sample and calculate the current sum. ms_type::value_type Expression Semantics Return Type ms.sum() Return the current sum. ms_type::value_type ms.size() Return the window size (in samples). std::size_t Expression Semantics ms.resize(size [, update]) Resize the moving sum window to the number of samples specified by the 'size' parameter. If update=true, the sum is recalculated. if update=false, the contents are cleared. Default: update=false. ms.resize(d, sps [, update]) Resize the moving sum with window size specified by d and sps (duration and sample rate). If update=true, the sum is recalculated. if update=false, the contents are cleared. Default: update=false. ms.clear() Clear the moving window to zero. ms.fill(val) Fill the moving window with val, and update the sum accordingly. basic_moving_sum can be resized as long as the new size does not exceed the original size (at construction time). When resizing with update=true, when downsizing, the oldest elements are subtracted from the sum. When upsizing, the older elements are added to the sum, otherwise, if update=false, the contents are cleared.","title":"Moving Sum","component":"q","version":"develop","name":"moving_sum","url":"/q/develop/reference/misc/moving_sum.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Type Accessors","hash":"_type_accessors","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Function Call","hash":"_function_call","id":9},{"text":"Accessors","hash":"_accessors","id":10},{"text":"Mutators","hash":"_mutators","id":11}]},"34":{"id":34,"text":"A noise gate is an audio tool that reduces unwanted noise by muting or attenuating signals below specified thresholds. It is typically used to eliminate background noise or hum. The noise_gate class implements a Q-flavored noise gate processor following Q’s Dynamic processor design. Unlike typical noise gates, noise_gate has no parameters for attack and release and does not process audio waveform samples directly. Instead, it operates on the envelope of the audio signal. The objective is separation of concerns and the flexibility to use various envelope followers. There are two thresholds. On onsets, the noise_gate opens up if the signal envelope goes above the specified onset threshold. On note release, the noise_gate turns off if the signal goes below a specified release threshold. #include struct noise_gate { noise_gate(decibel onset_threshold, decibel release_threshold); noise_gate(decibel release_threshold); bool operator()(float env); bool operator()() const; void onset_threshold(decibel onset_threshold); void onset_threshold(float onset_threshold); void release_threshold(decibel release_threshold); void release_threshold(float release_threshold); float onset_threshold() const; float release_threshold() const; }; g, a, b Objects of type noise_gate. env Floating point value for the current envelope value. ot, rt Object of type decibel representing onset and release thresholds, respectively. Expression Semantics noise_gate(rt) Construct a noise_gate with specified release threshold, rt. noise_gate(ot, rt) Construct a noise_gate with specified onset threshold, ot and release threshold, rt. noise_gate(b) Copy construct a noise_gate from b. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type g() Get the current state. bool g(env) Process the input envelope env, compute and return the state. bool The noise_gate state is a boolean flag that is true if the noise_gate is open or false if the noise_gate is closed. Expression Semantics Return Type g.onset_threshold(ot) Set the noise_gate onset threshold. void g.release_threshold(rt) Set the noise_gate release threshold. void Expression Semantics Return Type g.onset_threshold() Get the noise_gate onset threshold. decibel g.release_threshold() Get the noise_gate release threshold. decibel","title":"Noise Gate","component":"q","version":"develop","name":"noise_gate","url":"/q/develop/reference/misc/noise_gate.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"35":{"id":35,"text":"Basic one pole low-pass filter serves as an important building block due to its utility in a vast number of applications including noise reduction, signal smoothing, and extracting relevant information from a signal. The 6dB/octave slope of the single pole filter is suitable for many non-critical use-cases and its simplicity makes it computationally efficient. #include struct one_pole_lowpass { one_pole_lowpass(frequency f, float sps); float operator()(float s); float operator()() const; one_pole_lowpass& operator=(bool y); void cutoff(frequency f, float sps); }; lp, a, b Objects of type one_pole_lowpass. f Object of type frequency representing the cutoff frequency. sps Floating point value representing samples per second. s Input sample. Expression Semantics one_pole_lowpass(f, sps) Construct a one_pole_lowpass with specified cutoff frequency, f, and samples per second sps. one_pole_lowpass(b) Copy construct a one_pole_lowpass from b. a = b Assign b to a. a = s Set the latest result to s. C++ brace initialization may also be used. Expression Semantics Return Type lp() Return the latest result. float lp(s) process the input sample, s. float Expression Semantics Return Type lp.cutoff(f, sps) Set the cutoff frequency given frequency f, and samples per second sps. void","title":"One Pole Low Pass","component":"q","version":"develop","name":"one_pole_lowpass","url":"/q/develop/reference/misc/one_pole_lowpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"36":{"id":36,"text":"onset_gate is a specialization of noise_gate with provision for gating out slow attacks. The constructor parameters attack_width and sps specify the slope’s delta time. The envelope’s slope must exceed the required onset threshold. This prevents slow moving signals to pass as valid onsets. For example, given an attack width of 500 µs and an onset threshold of -30 dB, the difference in amplitude over a period of 500 µs must exceed -30 dB to pass as a valid onset. #include struct onset_gate : noise_gate { onset_gate( decibel onset_threshold , decibel release_threshold , duration attack_width , float sps ); using noise_gate::operator(); bool operator()(float env); }; As a subclass of noise_gate, onset_gate inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for noise_gate, onset_gate allows these expressions. ot, rt Object of type decibel representing onset and release thresholds, respectively. aw Object of type duration representing attack width. sps Floating point value representing samples per second. Expression Semantics onset_gate(ot, rt, aw, sps) Construct an onset_gate with specified onset threshold, ot release threshold, rt, attack width, aw, and samples per second sps. C++ brace initialization may also be used.","title":"Onset Gate","component":"q","version":"develop","name":"onset_gate","url":"/q/develop/reference/misc/onset_gate.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6}]},"37":{"id":37,"text":"audio_device represents individual audio interfaces on the host platform. There are typically one or more audio devices available. Each device has a name, device identifier, and specific capabilities, including sample rate and the number of input and output channels supported. #include class audio_device { public: using device_list = std::vector; static device_list list(); static audio_device get(int device_id); int id() const; std::string name() const; std::size_t input_channels() const; std::size_t output_channels() const; double default_sample_rate() const; }; a, b Objects of type audio_device. ad Object of type audio_device. id A unique audio device ID (integer). Expression Semantics audio_device(b) Copy construct from audio_device b. a = b Assign b to a. There are no public constructors. Instead, see list() and get(id) below. `audio_device`s are lightweight handles that can be cheaply passed by value. Expression Semantics Return Type audio_device::list() Get the list of available audio devices. std::vector audio_device::get(id) Get the audio device with the given ID. audio_device To get an audio_device, first get list of currently available audio devices via audio_device::list(), then choose, or let the user choose, the one suitable for your needs. Alternatively, if you know the unique audio_device ID, you can use audio_device::get(id) to obtain a specific audio_device. Expression Semantics Return Type ad.id() Get the unique ID. int ad.name() Get the unique name. std::string ad.input_channels() Get the maximum number of input channels. std::size_t ad.output_channels() Get the maximum number of output channels. std::size_t ad.default_sample_rate() Get the default sample rate. double List all available audio devices: #include #include #include namespace q = cycfi::q; int main() { std::cout << \"Available Audio Devices: \" << std::endl; for (auto const& device : q::audio_device::list()) { std::cout << \"id: \" << device.id() << std:: endl << \"name: \\\"\" << device.name() << '\"' << std:: endl << \"number of input channels: \" << device.input_channels() << std:: endl << \"number of output channels: \" << device.output_channels() << std:: endl ; } return 0; }","title":"audio_device","component":"q","version":"develop","name":"audio_device","url":"/q/develop/reference/q_io/audio_device.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Instantiation","hash":"_instantiation","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"Example","hash":"_example","id":9}]},"38":{"id":38,"text":"audio_file is a set of small and lightweight classes for reading and writing WAV (Waveform Audio File Format) files. It offers a straightforward and intuitive interface for working with WAV audio data. This includes: wav_reader For reading WAV files. wav_writer For writing WAV files. #include wav_base is the base class with common functionalities for wav_reader and wav_writer. class wav_base { public: wav_base(); wav_base(wav_base const&) = delete; ~wav_base(); wav_base& operator=(wav_base const&) = delete; explicit operator bool() const; std::size_t sps() const; std::size_t num_channels() const; }; w Object of wav_base. Expression Semantics wav_base() Default construct a wav_base. wav_base is non-copyable. C++ brace initialization may also be used. Expression Semantics Return Type bool(w) Evaluates to true if wav_base is valid. Operations must only be performed on valid wav_base objects. bool w.sps() Get the WAV file’s sampling rate. float w.num_channels() Get the number of channels in the WAV file. std::size_t wav_reader is a class for reading WAV files with the typical read-only input mechanisms, such as incrementally reading a chunk of audio data from a position starting at the beginning of the file, and being able to move a certain position in the file. class wav_reader : public wav_base { public: wav_reader(std::string filepath); wav_reader(char const* filepath); std::uint64_t length() const; std::uint64_t position(); bool restart(); bool seek(std::uint64_t target); std::size_t read(float* data, std::uint32_t len); std::size_t read(concepts::IndexableContainer auto& buffer); }; The IndexableContainer concept is declared in Basic Concepts. wav_reader is derived from wav_base. In addition to valid expressions for wav_base, wav_reader allows these expressions. r Object of type wav_reader. f Object of type convertible to std::string or char const* representing a file path. d Pointer to a buffer of float elements with size len. s Size buffer of d. b Object of type that conforms to the IndexableContainer concept. p Position in the wav file (std::uint64_t). Expression Semantics wav_reader(f) Construct a wav_reader given a file path. C++ brace initialization may also be used. Expression Semantics Return Type r.restart() Reset the read position to the start. Returns false if r is not valid. bool r.seek(p) Set the read position to the p. Returns false if r is not valid. bool r.read(d, s) Read a chunk of data given a raw buffer, float*, d, with size s. Returns the actual size read. std::size_t. r.read(b) Read a chunk of data given a buffer, b. Returns the actual size read. std::size_t. Expression Semantics Return Type r.length() Get the length of the WAV file. std::uint64_t. r.position() Get the current read position. std::uint64_t. wav_writer is a class for writing WAV files with the typical write-only output mechanisms, such as incrementally writing a chunk of audio data from a position starting at the beginning of the file. wav_writer writes WAV files with one or more channels and 32-bit floating point samples. class wav_writer : public wav_base { public: wav_writer( std::string filename , std::uint32_t num_channels, float sps); wav_writer( char const* filename , std::uint32_t num_channels, float sps); std::size_t write(float const* data, std::uint32_t len); std::size_t write(concepts::IndexableContainer auto const& buffer); }; The IndexableContainer concept is declared in Basic Concepts. wav_writer is derived from wav_base. In addition to valid expressions for wav_base, wav_writer allows these expressions. w Object of type wav_writer. f Object of type convertible to std::string or char const* representing a file path. d Pointer to a buffer of float elements with size len. s Size buffer of d. b Object of type that conforms to the IndexableContainer concept. ch Integer value representing number of channels. sps Floating point value representing samples per second. Expression Semantics wav_writer(f, ch, sps) Construct a wav_writer given a file path, f, number of channels, ch, and sampling rate, sps. Expression Semantics Return Type w.write(d, s) Write a chunk of data given a raw buffer, float*, d, with size s. Returns the actual size written. std::size_t. w.write(b) Write a chunk of data given a buffer, b. Returns the actual size written. std::size_t.","title":"audio_file","component":"q","version":"develop","name":"audio_file","url":"/q/develop/reference/q_io/audio_file.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"wav_base","hash":"_wav_base","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"wav_reader","hash":"_wav_reader","id":9},{"text":"Declaration","hash":"_declaration_2","id":10},{"text":"Expressions","hash":"_expressions_2","id":11},{"text":"Notation","hash":"_notation_2","id":12},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_2","id":13},{"text":"Mutators","hash":"_mutators","id":14},{"text":"Accessors","hash":"_accessors_2","id":15},{"text":"wav_writer","hash":"_wav_writer","id":16},{"text":"Declaration","hash":"_declaration_3","id":17},{"text":"Expressions","hash":"_expressions_3","id":18},{"text":"Notation","hash":"_notation_3","id":19},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_3","id":20},{"text":"Mutators","hash":"_mutators_2","id":21}]},"39":{"id":39,"text":"audio_stream is a subclass of audio_stream_base. It is responsible for setting up multichannel input and output buffers and presenting them to the user’s processing function, which is called at regular intervals at 1/Nth of the sampling frequency, where N is the size of the buffer. #include class audio_stream : public audio_stream_base { public: audio_stream( std::size_t input_channels , std::size_t output_channels , double sps = -1 , int frames = -1 ); audio_stream( audio_device const& device , std::size_t input_channels , std::size_t output_channels , double sps = -1 , int frames = -1 ); virtual ~audio_stream(); void start(); void stop(); bool is_valid() const; duration time() const; double cpu_load() const; char const* error() const; duration input_latency() const; duration output_latency() const; double sampling_rate() const; std::size_t input_channels() const; std::size_t output_channels() const; }; As a subclass of audio_stream_base, audio_stream inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for audio_stream_base, audio_stream allows these expressions. as Object of type audio_stream. ad Object of type audio_device. ic Number of input channels. oc Number of output channels. sps Floating point value for the desired sample rate. A value of -1, the default, indicates a request to use the device’s default sampling rate. fr Number of frames --the buffer size per channel. A value of -1, the default, indicates a request for the optimal (and possibly varying) number of frames. Expression Semantics audio_stream(ic, oc, sps, fr) Construct an audio_stream using the default audio_device, given the number of input and output channels, ic and oc, optional sample rate, sps, and optional number of frames, fr. audio_stream(ad, ic, oc, sps, fr) Construct an audio_stream using the the audio_device, ad, given the number of input and output channels, ic and oc, optional sample rate, sps, and optional number of frames, fr. Take note that audio_stream_base is non-copyable, and therefore audio_stream is also non-copyable. Expression Semantics Return Type as.is_valid() Check if the audio_stream is valid. Do this before any operation on the audio_stream. Any operation on an invalid stream is undefined behavior. bool as.time() Get stream’s current time in seconds. The time values are monotonically increasing with an unspecified origin. Starting and stopping the stream does not affect the passage of time. duration as.cpu_load() Get stream’s CPU load: A floating point value, typically between 0.0 and 1.0, where 1.0 indicates that the stream is consuming the maximum number of CPU cycles possible to maintain real-time operation. double as.error() On as.is_valid() == false, this function returns a human readable error message stating the reason why an audio_stream cannot be opened. char const* as.input_latency() Get the input latency. duration as.output_latency() Get the output latency. duration as.input_channels() Get the number of input channels. std::size_t as.output_channels() Get the number of output channels. std::size_t as.default_sample_rate() Get the sampling rate. double Expression Semantics as.start() Start the audio_stream. as.stop() Stop the audio_stream. Make a delay processor with 1 input channel (mono) and two output channels (stereo). Route the mono input to both the left and right output channels. struct my_processor : q::audio_stream (1) { my_processor() : audio_stream(1, 2) (2) {} void process(in_channels const& in, out_channels const& out) (3) { auto left = out[0]; auto right = out[1]; auto mono_in = in[0]; for (auto frame : out.frames) { // Get the next input sample auto s = mono_in[frame]; // Output left[frame] = s; right[frame] = s; } } }; 1 Here we declare my_processor. A user-defined class derived from audio_stream. 2 Construct the base audio_stream with 1 input channel (mono) and two output channels (stereo) using the default audio device. 3 Implement the process member function. See Audio Stream Client Interface for more info.","title":"audio_stream","component":"q","version":"develop","name":"audio_stream","url":"/q/develop/reference/q_io/audio_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Accessors","hash":"_accessors","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Example","hash":"_example","id":9}]},"40":{"id":40,"text":"midi_device is an abstraction which encapsulates the properties and functionality of a MIDI interface. Each MIDI device includes information such as its name, device identifier, and the number of inputs and outputs available. #include class midi_device { public: using device_list = std::vector; static device_list list(); std::uint32_t id() const; std::string name() const; std::size_t num_inputs() const; std::size_t num_outputs() const; }; a, b Objects of type midi_device. md Object of type midi_device. id A unique audio device ID integer. Expression Semantics midi_device(b) Copy construct from midi_device b. a = b Assign b to a. There are no public constructors. Instead, see list() and get(id) below. midi_device(s) are lightweight handles that can be cheaply passed by value. Expression Semantics Return Type midi_device::list() Get the list of available MIDI devices. std::vector To get a midi_device, first get list of currently available MIDI devices via midi_device::list(), then choose, or let the user choose, the one suitable for your needs. Expression Semantics Return Type md.id() Get the unique ID. int md.name() Get the unique name. std::string md.num_inputs() Get the number of MIDI inputs. std::size_t md.num_outputs() Get the number of MIDI outputs. std::size_t List all available MIDI devices: #include #include #include namespace q = cycfi::q; int main() { std::cout << \"Available MIDI Devices: \" << std::endl; for (auto const& device : q::midi_device::list()) { std::cout << \"id: \" << device.id() << std:: endl << \"name: \\\"\" << device.name() << '\"' << std:: endl << \"number of inputs: \" << device.num_inputs() << std:: endl << \"number of outputs: \" << device.num_outputs() << std:: endl ; } return 0; }","title":"midi_device","component":"q","version":"develop","name":"midi_device","url":"/q/develop/reference/q_io/midi_device.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Instantiation","hash":"_instantiation","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"Example","hash":"_example","id":9}]},"41":{"id":41,"text":"The midi_input_stream class facilitates MIDI communication and data transmission of MIDI messages between a MIDI device and an application. midi_input_stream dispatches MIDI messages to a MIDI processor: a user-defined construct that follows a specific C++ concept for receiving and interpreting MIDI messages. The MIDI processor acts as an intermediary between MIDI devices and the application. Its purpose is to receive incoming MIDI messages, analyze their content, and extract relevant information. This may include extracting note data, control change values, program change commands, or any other MIDI message content that is of interest to the user. See MIDI Processor #include class midi_input_stream : non_copyable { public: midi_input_stream(); midi_input_stream(midi_device const& device); ~midi_input_stream(); bool is_valid() const; template requires concepts::midi_1_0::Processor void process(Processor&& proc); static void set_default_device(int id); }; ms Object of type midi_input_stream. md Object of type midi_device. id A unique MIDI device ID (integer). proc Object that conforms to the MIDI Processor concept. Expression Semantics midi_input_stream() Construct a default midi_input_stream. See set_default_device below. midi_input_stream(md) Construct a midi_input_stream using the the midi_device, md. Take note that midi_input_stream is non-copyable. Expression Semantics set_default_device(id) Set the default midi_device used by the default constructor above to the midi_device with the given ID. Once set, the default midi_input_stream constructor will use this midi_device. Expression Semantics Return Type ms.is_valid() Check if the midi_input_stream is valid. Do this before any operation on the midi_input_stream. Any operation on an invalid stream is undefined behavior. bool Expression Semantics ms.process(proc) Process incoming MIDI messages, given a user provided MIDI processor proc. Call this function in a loop while to process incoming MIDI messages. This function blocks. It is advisable to place this processing loop in a separate thread. Monitor incoming MIDI messages: q::midi_input_stream stream; (1) if (stream.is_valid()) (2) { while (true) (3) stream.process(midi_processor{}); (4) } 1 Instantiate a default MIDI stream. 2 Check if the MIDI stream is valid. 3 Infinite loop, processing incoming MIDI messages from the stream. 4 midi_processor is a user defined struct implemented below. struct midi_processor : midi::processor { using midi::processor::operator(); void operator()(midi::note_on msg, std::size_t time) { std::cout << \"Note On {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Velocity: \" << int(msg.velocity()) << '}' << std::endl; } void operator()(midi::note_off msg, std::size_t time) { std::cout << \"Note Off {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Velocity: \" << int(msg.velocity()) << '}' << std::endl; } void operator()(midi::poly_aftertouch msg, std::size_t time) { std::cout << \"Polyphonic Aftertouch {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Pressure: \" << int(msg.pressure()) << '}' << std::endl; } void operator()(midi::control_change msg, std::size_t time) { std::cout << \"Control Change {\" << \"Channel: \" << int(msg.channel()) << \", Controller: \" << int(msg.controller()) << \", Value: \" << int(msg.value()) << '}' << std::endl; } void operator()(midi::program_change msg, std::size_t time) { std::cout << \"Program Change {\" << \"Channel: \" << int(msg.channel()) << \", Preset: \" << int(msg.preset()) << '}' << std::endl; } void operator()(midi::channel_aftertouch msg, std::size_t time) { std::cout << \"Channel Aftertouch {\" << \"Channel: \" << int(msg.channel()) << \", Pressure: \" << int(msg.pressure()) << '}' << std::endl; } void operator()(midi::pitch_bend msg, std::size_t time) { std::cout << \"Pitch Bend {\" << \"Channel: \" << int(msg.channel()) << \", Value: \" << int(msg.value()) << '}' << std::endl; } };","title":"midi_input_stream","component":"q","version":"develop","name":"midi_stream","url":"/q/develop/reference/q_io/midi_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Default MIDI device","hash":"_default_midi_device","id":7},{"text":"Accessor","hash":"_accessor","id":8},{"text":"Process MIDI","hash":"_process_midi","id":9},{"text":"Example","hash":"_example","id":10}]},"42":{"id":42,"text":"Read Multi Buffer first for prerequisite information. audio_stream_base is the abstract base class and highest-level interface for audio processing. It is responsible for setting up multichannel input and output buffers and presenting them to the user’s processing function, which is called at regular intervals at 1/Nth of the sampling frequency, where N is the size of the buffer. #include class audio_stream_base : non_copyable { public: using in_channels = multi_buffer; using out_channels = multi_buffer; audio_stream_base() {} virtual ~audio_stream_base() = default; virtual void process(in_channels const& in) {} virtual void process(out_channels const& out) {} virtual void process(in_channels const& in, out_channels const& out) {} }; The audio_stream_base is an abstract base class not meant to be directly instantiated. Audio I/O systems are responsible for providing concrete subclasses of audio_stream_base for the client’s use. The client writes a class derived from one of these, and overrides one of the three process member functions depending on the I/O configuration and purpose. process(in_channels const& in); Audio input only. Examples: VU Meter, Spectrum Analyzer. process(out_channels const& out); Audio output only. Example: Synthesizers. process(in_channels const& in, out_channels const& out); Audio input and output. Example: Effects processors.","title":"Audio Stream","component":"q","version":"develop","name":"audio_stream","url":"/q/develop/reference/support/audio_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Client Interface","hash":"_client_interface","id":4}]},"43":{"id":43,"text":"Here are the basic C++ concepts used by the Q DSP library. #include The Arithmetic concept is a model of the std::integral OR the std::floating_point concept. namespace cycfi::q::concepts { template concept Arithmetic = std::integral || std::floating_point; } IndexableContainer is a concept that represents an indexable data type. Essentially, it must be indexable using the indexing subscript operator [] with a subscript convertable from std::size_t, and has a size() member function that returns the size of the Container or View being indexed. namespace cycfi::q::concepts { template concept IndexableContainer = requires(T& x, std::size_t i) { { x[i] } -> std::convertible_to; { x.size() } -> std::convertible_to; }; } IndexableContainer types allow standard for-loop iteration: for (auto i = 0; i != c.size() ++i) { c[i]; } Where c is an instance of IndexableContainer. RandomAccessIteratable is a concept that represents a random-access iteratable data type, which has begin() and end() member functions, and the return type of both functions is an iterator that conforms to the std::random_access_iterator concept. namespace cycfi::q::concepts { template concept RandomAccessIteratable = std::random_access_iterator && requires(T& c) { { c.begin() } -> std::same_as; { c.end() } -> std::same_as; }; } RandomAccessIteratable allows C++ range-based for loop syntax: for (auto e : c) { /**...**/ } Where c is an instance of RandomAccessIteratable and e is an element of c.","title":"Basic Concepts","component":"q","version":"develop","name":"basic_concepts","url":"/q/develop/reference/support/basic_concepts.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Arithmetic","hash":"_arithmetic","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"IndexableContainer","hash":"_indexablecontainer","id":5},{"text":"Declaration","hash":"_declaration_2","id":6},{"text":"RandomAccessIteratable","hash":"_randomaccessiteratable","id":7},{"text":"Declaration","hash":"_declaration_3","id":8}]},"44":{"id":44,"text":"MIDI is one way to control DSP parameters in a more meaningful, and musical way. Here, we talk about MIDI as a standardized messaging protocol. MIDI messages include note-on and note-off messages, control change messages, program change messages, and pitch bend messages, as well as tempo, time signature, and other performance data. #include namespace cycfi::q::midi_1_0 { /**...**/ } Currently, the Q DSP library supports MIDI 1.0, implemented in namespace midi_1_0. The MIDI 1.0 message is basically an array of std::uint8_t with sizes 1 to 3, encapsulated in a struct: struct message_base {}; // Base class for all messages template struct message : message_base { static constexpr int const size = size_; std::uint8_t data[size]; }; struct message1 : message { message1() = default; constexpr message1(raw_message msg); }; struct message2 : message { message2() = default; constexpr message2(raw_message msg); }; struct message3 : message { message3() = default; constexpr message3(raw_message msg); }; Generic MIDI messages are constructed from raw_message, which is essentially a std::uint32_t encapsulated in a struct that holds the 24-bits MIDI 1.0 message, encoded as little-endian: Figure 1. Raw MIDI Message struct raw_message { std::uint32_t data; }; The status byte indicates the type of MIDI message and includes both a status nibble (upper 4 bits) and a 16-channel number nibble (lower 4 bits). Figure 2. MIDI Status Byte Here is the MIDI status enumeration: namespace status { enum { note_off = 0x80, note_on = 0x90, poly_aftertouch = 0xA0, control_change = 0xB0, program_change = 0xC0, channel_aftertouch = 0xD0, pitch_bend = 0xE0, sysex = 0xF0, song_position = 0xF2, song_select = 0xF3, tune_request = 0xF6, sysex_end = 0xF7, timing_tick = 0xF8, start = 0xFA, continue_ = 0xFB, stop = 0xFC, active_sensing = 0xFE, reset = 0xFF }; } Specific MIDI messages are subclasses of the generic MIDI messages above. struct note_off : message3 { using message3::message3; constexpr note_off(std::uint8_t channel, std::uint8_t key, std::uint8_t velocity); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const; constexpr std::uint8_t velocity() const; }; struct note_on : message3 { using message3::message3; constexpr note_on(std::uint8_t channel, std::uint8_t key, std::uint8_t velocity); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const; constexpr std::uint8_t velocity() const; }; struct poly_aftertouch : message3 { using message3::message3; constexpr poly_aftertouch( std::uint8_t channel, std::uint8_t key, std::uint8_t pressure); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const { return data[1]; } constexpr std::uint8_t pressure() const; }; namespace cc { enum controller { bank_select = 0x00, modulation = 0x01, breath = 0x02, foot = 0x04, portamento_time = 0x05, data_entry = 0x06, channel_volume = 0x07, balance = 0x08, pan = 0x0A, expression = 0x0B, effect_1 = 0x0C, effect_2 = 0x0D, general_1 = 0x10, general_2 = 0x11, general_3 = 0x12, general_4 = 0x13, bank_select_lsb = 0x20, modulation_lsb = 0x21, breath_lsb = 0x22, foot_lsb = 0x24, portamento_time_lsb = 0x25, data_entry_lsb = 0x26, channel_volume_lsb = 0x27, balance_lsb = 0x28, pan_lsb = 0x2A, expression_lsb = 0x2B, effect_1_lsb = 0x2C, effect_2_lsb = 0x2D, general_1_lsb = 0x30, general_2_lsb = 0x31, general_3_lsb = 0x32, general_4_lsb = 0x33, sustain = 0x40, portamento = 0x41, sostenuto = 0x42, soft_pedal = 0x43, legato = 0x44, hold_2 = 0x45, sound_controller_1 = 0x46, // default: sound variation sound_controller_2 = 0x47, // default: timbre / harmonic content sound_controller_3 = 0x48, // default: release time sound_controller_4 = 0x49, // default: attack time sound_controller_5 = 0x4A, // default: brightness sound_controller_6 = 0x4B, // no default sound_controller_7 = 0x4C, // no default sound_controller_8 = 0x4D, // no default sound_controller_9 = 0x4E, // no default sound_controller_10 = 0x4F, // no default general_5 = 0x50, general_6 = 0x51, general_7 = 0x52, general_8 = 0x53, portamento_control = 0x54, effects_1_depth = 0x5B, // previously reverb send effects_2_depth = 0x5C, // previously tremolo depth effects_3_depth = 0x5D, // previously chorus depth effects_4_depth = 0x5E, // previously celeste (detune) depth effects_5_depth = 0x5F, // previously phaser effect depth data_inc = 0x60, // increment data value (+1) data_dec = 0x61, // decrement data value (-1) nonrpn_lsb = 0x62, nonrpn_msb = 0x63, rpn_lsb = 0x64, rpn_msb = 0x65, all_sounds_off = 0x78, reset = 0x79, local = 0x7A, all_notes_off = 0x7B, omni_off = 0x7C, omni_on = 0x7D, mono = 0x7E, poly = 0x7F }; } struct control_change : message3 { using message3::message3; constexpr control_change( std::uint8_t channel, cc::controller ctrl, std::uint8_t value); constexpr std::uint8_t channel() const; constexpr cc::controller controller() const; constexpr std::uint8_t value() const; }; struct program_change : message2 { using message2::message2; constexpr program_change(std::uint8_t channel, std::uint8_t preset); constexpr std::uint8_t channel() const; constexpr std::uint8_t preset() const; }; struct channel_aftertouch : message2 { using message2::message2; constexpr channel_aftertouch(std::uint8_t channel, std::uint8_t pressure); constexpr std::uint8_t channel() const; constexpr std::uint8_t pressure() const; }; struct pitch_bend : message3 { using message3::message3; constexpr pitch_bend(std::uint8_t channel, std::uint16_t value); constexpr pitch_bend(std::uint8_t channel, std::uint16_t lsb, std::uint8_t msb); constexpr std::uint8_t channel() const; constexpr std::uint16_t value() const; }; struct song_position : message3 { using message3::message3; constexpr song_position(std::uint16_t position); constexpr song_position(std::uint8_t lsb, std::uint8_t msb); constexpr std::uint16_t position() const; }; struct song_select : message2 { using message2::message2; constexpr song_select(std::uint8_t song_number); constexpr std::uint16_t song_number() const; }; struct tune_request : message1 { using message1::message1; constexpr tune_request(); }; struct timing_tick : message1 { using message1::message1; constexpr timing_tick(); }; struct start : message1 { using message1::message1; constexpr start(); }; struct continue_ : message1 { using message1::message1; constexpr continue_(); }; struct stop : message1 { using message1::message1; constexpr stop(); }; struct active_sensing : message1 { using message1::message1; constexpr active_sensing(); }; struct reset : message1 { using message1::message1; constexpr reset(); }; The note_name utility function can be used to convert a MIDI note number to a string representing the key. constexpr char const* note_name(std::uint8_t key); Example: std::cout << note_name(60) << std::endl; // Prints \"C4\" Conversely, the note_number utility function can be used to convert a string representing the key to a MIDI note number. int note_number(std::string_view note) The syntax is as follows: A letter a-g or A-G Optionally followed by # or b Followed by a number that ranges from -1 to 9 The range is from C-1 to G9. Example: std::cout << note_number(\"C4\") << std::endl; // Prints 60 The function returns -1 when given invalid input.","title":"MIDI Messages","component":"q","version":"develop","name":"midi_messages","url":"/q/develop/reference/support/midi_messages.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Namespace","hash":"_namespace","id":3},{"text":"Generic MIDI Messages","hash":"_generic_midi_messages","id":4},{"text":"Raw MIDI Messages","hash":"_raw_midi_messages","id":5},{"text":"MIDI Status","hash":"_midi_status","id":6},{"text":"Specific MIDI Messages","hash":"_specific_midi_messages","id":7},{"text":"note_off","hash":"_note_off","id":8},{"text":"note_on","hash":"_note_on","id":9},{"text":"poly_aftertouch","hash":"_poly_aftertouch","id":10},{"text":"control_change","hash":"_control_change","id":11},{"text":"program_change","hash":"_program_change","id":12},{"text":"channel_aftertouch","hash":"_channel_aftertouch","id":13},{"text":"pitch_bend","hash":"_pitch_bend","id":14},{"text":"song_position","hash":"_song_position","id":15},{"text":"song_select","hash":"_song_select","id":16},{"text":"tune_request","hash":"_tune_request","id":17},{"text":"timing_tick","hash":"_timing_tick","id":18},{"text":"start","hash":"_start","id":19},{"text":"continue_","hash":"_continue","id":20},{"text":"stop","hash":"_stop","id":21},{"text":"active_sensing","hash":"_active_sensing","id":22},{"text":"reset","hash":"_reset","id":23},{"text":"Note Name","hash":"_note_name","id":24},{"text":"Note Number","hash":"_note_number","id":25}]},"45":{"id":45,"text":"Read MIDI Messages first for prerequisite information. The MIDI processor is a user-defined construct that follows a specific C++ concept for receiving and interpreting MIDI messages. The MIDI processor acts as an intermediary between MIDI devices and the application. Its purpose is to receive incoming MIDI messages, analyze their content, and extract relevant information. This may include extracting note data, control change values, program change commands, or any other MIDI message content that is of interest to the user. #include // Concepts namespace cycfi::q::concepts::midi_1_0 { /**...**/ } // API and Implementation namespace cycfi::q::midi_1_0 { /**...**/ } Currently, the Q DSP library supports MIDI 1.0, implemented in namespace midi_1_0. namespace cycfi::q::concepts { namespace midi_1_0 { template concept Processor = requires(T&& proc, q::midi_1_0::message_base const& msg, std::size_t time) { proc(msg, time); }; } } Processor is a concept that represents a MIDI 1.0 processor. It is placed inside namespace midi_1_0 to distinguish it from future MIDI processors. Essentially, the C++ concept states that: Processor has a function call operator that accepts a MIDI 1.0 message and a time stamp. The MIDI 1.0 message, msg, is derived from message_base. The time stamp is represented as a millisecond clock with an undefined arbitrary start time. proc Instance of a type that conforms to Processor. msg Instance of a type that conforms to Message. time A std::size_t time stamp. Expression Semantics Return Type proc(msg, time) Process the MIDI message, msg at time stamp time. void processor is a basic class that conforms to the Processor concept, but does nothing by default. struct processor { void operator()(message_base const& msg, std::size_t time) {} }; This utility class provides the default no-op handling. It is intended to be derived from. Thus, the derived class can overload specific function call operators for messages it is interested with. Example: namespace midi = cycfi::q::midi_1_0; struct my_midi_processor : midi::processor { using midi::processor::operator(); void operator()(midi::note_on msg, std::size_t time); void operator()(midi::note_off msg, std::size_t time); }; In this example, my_midi_processor is interested with, and processes only note_on and note_off messages. The dispatch takes in a raw MIDI 1.0 message (raw_message), a time stamp, and a Processor. It converts the raw MIDI message to a specific MIDI message, and dispatches the message to the processor, along with the time stamp. template requires concepts::Processor void dispatch(raw_message msg, std::size_t time, P&& proc); This function is the basic low-level hook for dispatching raw MIDI messages obtained by an I/O system from MIDI devices.","title":"MIDI Processor","component":"q","version":"develop","name":"midi_processor","url":"/q/develop/reference/support/midi_processor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Namespaces","hash":"_namespaces","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"processor","hash":"_processor","id":8},{"text":"Dispatch","hash":"_dispatch","id":9}]},"46":{"id":46,"text":"Read Basic Concepts first for prerequisite information. Multi-buffer presents a multi-channel buffer arranged in a non-interleaved format where each channel has its own dedicated buffer, and the samples within each buffer are arranged sequentially in contiguous memory locations. The non-interleaved format is ideal for digital signal processing where it is necessary to perform operations on individual channels separately, often in parallel for maximum efficiency. As an example, the figure below shows the memory layout of a 4-channel non-interleaved format. Figure 1. 4 Channel Non-Interleaved Format A Multi-buffer can be conceptualized as a two-dimensional array. The first dimension in this representation corresponds to the samples (x-dimension), while the second dimension represents the channels (y-dimension). Essentially, you can access each individual sample using the two indices ch and i, where ch is the channel index and i is the sample index. mb[ch][i] Each dimension has a size which can be obtained this way: mb.size() // The number of channels mb[ch].size() // The number of frames per channel That way, you can iterate through the channels and samples this way: for (auto ch = 0; ch != mb.size() ++ch) { for (auto i = 0; i != mb[ch].size() ++i) { auto s = mb[ch][i]; // Do something with the sample `s` } } Alternately, you can iterate through the channels and samples in a channel, using C++ range-based for loop syntax, as follows: for (auto ch : mb.channels) { for (auto i : mb.frames) { auto s = mb[ch][i]; // Do something with the sample `s` } } Take note that this syntax is unorthodox in the way it uses C++ range-based for loop syntax. Instead of accessing the channels and samples directly, mb.channels and mb.frames both return a range of indices (corresponding to 0..N, where N is number of channels, for mb.channels or samples, for mb.frames). The design rationale is to always allow random access to all channels and all samples for each channel. For example, you might want to access both the left and right channels of a stereo (2-channel) multi-buffer and mix them: auto left = mb[0]; auto right = mb[1]; for (auto i : mb.frames) { auto mono = right[i] + left[i]; // Add the left and right channels // Do something with `mono` } mb[ch] returns a view of the channel. It does not copy the whole buffer. This \"view\" is lightweight and can be held and passed by value without worrying about performance. The previous example can extend to an N channel mixer this way: for (auto i : mb.frames) { auto sum = 0.0f; for (auto ch : mb.channels) sum += mb[ch][i]; // Do something with `sum` } If you simply need sequential access to the samples in a channel, you can do it this way: for (auto ch : mb.channels) { for (auto s : mb[ch]) { // Do something with the sample `s` } } #include template class multi_buffer { public: using sample_type = T; using buffer_view = iterator_range; using frames_view = iterator_range; using channels_view = iterator_range; // Unspecified constructor buffer_view operator[](std::size_t channel) const; std::size_t size() const; frames_view frames; channels_view channels; }; multi_buffer is a template class that implements the multi-buffer. The template paratemeter, T, is the sample type which is a model of the std::floating_point concept. iterator_range is a template class that holds two random access iterators. It is a model of IndexableContainer, and RandomAccessIteratable. The template parameter, I, is the iterator type. index_iterator is a model of the std::random_access_iterator concept. The value_type of the index_iterator is simply a std::size_t. multi_buffer is a model of IndexableContainer with buffer_view elements: an iterator-range containing pointers to the sample type (T*). multi_buffer has member variables frames and channels that are iterator-ranges containing index-iterators. T The sample type (typically float). MB multi_buffer type. mb Instance of multi_buffer. i Object of type std::size_t, used for indexing. Expression Semantics Type MB::sample_type Get the sample type. `T MB::buffer_view Get the iterator type. iterator_range MB::channel_view Get the channel view type. iterator_range MB::frames_view Get the frames view type. iterator_range The multi_buffer constructor is unspecified. The multi-buffer is not meant to be instantiated by the user. Expression Semantics Return Type mb[i] Index operator. MB::buffer_view mb.size() Get the number of channels. std::size_t mb.frames Get the frames view. MB::frames_view mb.channels Get the channels view. MB::channels_view","title":"Multi Buffer","component":"q","version":"develop","name":"multi_buffer","url":"/q/develop/reference/support/multi_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Usage","hash":"_usage","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Type Definitions","hash":"_type_definitions","id":7},{"text":"Constructor","hash":"_constructor","id":8},{"text":"Indexing","hash":"_indexing","id":9}]},"47":{"id":47,"text":"The Blackman taper is a type of window function that gradually tapers the amplitude of a signal towards the window’s edges. It is often used in digital signal processing to smooth a signal (smoothing discontinuities at the edges of sampled signals) or to reduce spectral leakage. The Blackman window has a wider main lobe and lower level side lobes than other windows. It is named after Robert Blackman, who first described it in 1958. The formula for the Blackman window is: w(n) = 0.42 - 0.5 * cos(2pi*n/(N-1)) + 0.08 * cos(4pi*n/(N-1)) Aside from its common use as a window function, the Q DSP library also utilizes the blackman window generator for modulating the audio signal and generating complex envelopes. #include struct blackman_gen { blackman_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; blackman_gen is a model of Generator. In addition to valid expressions for Generator, blackman_gen allows these expressions. g Object of type blackman_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics blackman_gen(w, sps) Construct blackman_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window. Two subclasses of blackman_gen are specialized for ramp generation: The Blackman upward ramp generator generates a rising curve with the shape of the first half of a Blackman window taper. The Blackman downward ramp generator generates a falling curve with the shape of the second half of a Blackman window taper. struct blackman_upward_ramp_gen : blackman_gen { blackman_upward_ramp_gen(duration width, float sps); void config(duration width, float sps); }; struct blackman_downward_ramp_gen : blackman_gen { blackman_downward_ramp_gen(duration width, float sps); void reset(); void config(duration width, float sps); }; blackman_upward_ramp_gen and struct blackman_downward_ramp_gen : blackman_gen ` are a models of `Ramp and implements all valid expressions of Ramp.","title":"Blackman Window Generator","component":"q","version":"develop","name":"blackman_gen","url":"/q/develop/reference/synth/blackman_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7},{"text":"Ramp Generators","hash":"_ramp_generators","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10}]},"48":{"id":48,"text":"envelope_gen is a highly configurable multi-segment envelope generator. Each segment is a Ramp that can be configured to have any conceivable shape. A few ramp shapes, including exponential, linear, blackman, and hann are provided. The user may add their own Ramp generator following a well defined c++ concept specification. The plot above is an example of a 5-segment envelope_gen output. The ramp segments S1 to S5 are as follows: blackman_upward_ramp_gen (see blackman_gen) hold_line_gen (see linear_gen) blackman_downward_ramp_gen (see blackman_gen) lin_downward_ramp_gen (see linear_gen) exp_downward_ramp_gen (see exponential_gen) The phases and transitions of the envelope gen are depicted in the following stylized state diagram. There are four phases of interest: Idle phase: The output sits at zero while waiting for the next attack signal Ⓐ. Attack phase: Initiated when the attack signal Ⓐ is received, e.g. when a key is pressed. Intermediate phase: Starts after the attack phase and ends before the release phase. Release phase: Initiated when the release signal Ⓡ is received, e.g when the key is released. The envelope_gen waits for an attack signal Ⓐ while in the idle phase. As soon as an attack signal Ⓐ is received, the state immediately transitions to the attack phase. The output ramps up from 0.0 to the specified attack level, over the specified attack duration. The envelope gen is not retriggerable. Attack signals Ⓐ are only permitted during the idle phase. Any attack signal Ⓐ received outside of the idle phase is disregarded. Use one envelope_gen instance per note. This is most natural with polyphonic voicing, but can also apply to monophonic voicing. For monophonic voicing, on an incoming attack signal Ⓐ, active instances are sent release signals Ⓡ, a new instance is created, and its attack phase is initiated. The output will then be the maximum of all active instances. After the attack phase, anything that comes in between the attack phase and release phase are intermmediate phases that are sequenced by the envelope_gen, one after the other. Intermmediate phases may include the decay phase, the hold phase and the sustain phase. For each intermediate phase, the output ramps up or down from the previous level to the phase’s level over the phase’s duration. Upon receiving the release signal Ⓡ, the envelope_gen immediately transitions to the release phase. This may occur at any point during the attack or intermediate phases. The current phase may be cut short when this happens, and without delay, the output ramps down to 0.0 over the specified release duration. Typically, the last intermediate segment is configured with a very long duration (e.g. for sustain), and normally a release signal Ⓡ will occur long before the last intermediate segment ends. If that is not the case, like for example if the sustain segment is a relatively short linear down ramp, it is possible to transition to the release phase before a release signal Ⓡ is received. After completion of the release phase, the envelope_gen returns back to the idle state. Each envelope segment has parameters for width (the duration of the segment), level (the end level of the segment), and of course the Ramp type. A make_envelope_segment free function, templated on the ramp type, is provided for making segments. #include struct envelope_segment { envelope_segment(envelope_segment const&); envelope_segment& operator=(envelope_segment const&); void level(float level); void config(duration width, float sps); void config(float level, duration width, float sps); /*** Unspecified member functions ***/ }; template inline envelope_segment make_envelope_segment(duration width, float level, float sps); s, a, b Objects of type envelope_segment. w Object of type duration. l Floating point value representing level (0.0 to 1.0). sps Floating point value representing samples per second. T Ramp type. Expression Semantics envelope_segment(s) Copy construct from s. a = b Assign b to a. Expression Semantics Return Type make_envelope_segment( w, l, sps) Make an envelope segment with specified Ramp type, T, level, l, width, w, and samples per second, sps. envelope_segment // Make a 10 ms exponential segment with a peak level of 1.0. auto s = make_envelope_segment(10_ms, 1.0f, sps); Expression Semantics s.level(l) Set the segment level to l. s.config(w, sps) Set the segment width, w, with samples per second, sps. s.config(l, w, sps) Set the segment level, l, width, w, with samples per second, sps. The envelope generator is basically a container (std::vector) of envelope segments. Multiple segments with distinct shape characteristics may be used to construct ADSR envelopes, AD envelopes, etc. #include struct envelope_gen : std::vector { using base_type = std::vector; template envelope_gen(T&& ...arg); void attack(); void release(); float operator()(); void reset(); float current() const; bool in_idle_phase() const; bool in_attack_phase() const; bool in_release_phase() const; std::size_t index() const; }; As a subclass of std::vector, you can use all the facilities of std::vector to compose a multi-segment envelope generator of varying complexity. Take note of the single forwarding constructor that accepts variable arguments. Its purpose is to reset envelope_gen automatically after construction. All arguments are forwarded to the base class. envelope_gen is a subclass of std::vector and inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for std::vector, envelope_gen allows these expressions. g Object of type envelope_gen. Expression Semantics Return Type g() Generate the next value. float Expression Semantics g.attack() Start the attack phase. g.release() Start the release phase. g.reset() Reset and move to the idle phase. Call envelope_gen::reset() whenever the segments change, such as when adding or removing segments from the segments container, to reset envelope_gen to the idle state. Expression Semantics Return Type g.current() Get the current level. float g.in_idle_phase() Return true if we are in the idle phase. bool g.in_attack_phase() Return true if we are in the attack phase. bool g.in_release_phase() Return true if we are in the release phase. bool g.index() Get the current index — the index of the latest active segment. std::size_t adsr_envelope_gen is a subclass of envelope_gen that offers specializations for generating envelopes of the ADSR type. This is a basic subclass that serves as a practical and prototypical envelope generator example. We will provide the full source code below, as an example of how to write an envelope generator. #include struct adsr_envelope_gen : envelope_gen { struct config { // Default settings duration attack_rate = 30_ms; duration decay_rate = 70_ms; decibel sustain_level = -6_dB; duration sustain_rate = 50_s; duration release_rate = 100_ms; }; adsr_envelope_gen(config const& config, float sps); void attack_rate(duration rate, float sps); void decay_rate(duration rate, float sps); void sustain_level(decibel level); void sustain_rate(duration rate, float sps); void release_rate(duration rate, float sps); }; inline adsr_envelope_gen::adsr_envelope_gen(config const& config_, float sps) : envelope_gen{ make_envelope_segment( config_.attack_rate, 1.0f, sps) // Attack (1) , make_envelope_segment( config_.decay_rate, lin_float(config_.sustain_level), sps) // Decay (2) , make_envelope_segment( config_.sustain_rate, 0.0f, sps) // Sustain (3) , make_envelope_segment( config_.release_rate, 0.0f, sps) // Release (4) } { } The config struct contains the constructor specifications for the ADSR paramneters, including attack_rate, decay_rate, sustain_level, sustain_rate, and release_rate. The user may specify these parameters like in this example: // Configure the adsr_envelope_gen auto env_cfg = q::adsr_envelope_gen::config { 300_ms // attack rate , 1_s // decay rate , -12_dB // sustain level , 5_s // sustain rate , 1_s // release rate }; // Instantiate an adsr_envelope_gen auto env_gen = q::adsr_envelope_gen{env_cfg, sps}; These parameters are used to construct the 4 segments comprising an ADSR envelope generator. Each of the segments are created using make_envelope_segment, passing in the Ramp type and the level, width, and samples per second. By defautl, the adsr_envelope_gen makes 4 segments with types: 1 exp_upward_ramp_gen for the attack segment, with peak level of 1.0. 2 exp_downward_ramp_gen for the decay segment, with level set to the sustain level. 3 lin_downward_ramp_gen for the sustain segment. This is a 5-second decaying linear ramp. 4 exp_downward_ramp_gen for the release segment, with level of 0.0. The remaining items are self-explanatory. These member functions permit the user to modify the five ADSR parameters following construction. The envelope segments are stored at indices 0 to 3 in the vector. // Set the attack rate inline void adsr_envelope_gen::attack_rate(duration rate, float sps) { (*this)[0].config(rate, sps); } // Set the decay rate inline void adsr_envelope_gen::decay_rate(duration rate, float sps) { (*this)[1].config(rate, sps); } // Set the sustain level inline void adsr_envelope_gen::sustain_level(decibel level) { (*this)[2].level(lin_float(level)); } // Set the sustain rate inline void adsr_envelope_gen::sustain_rate(duration rate, float sps) { (*this)[2].config(rate, sps); } // Set the release rate inline void adsr_envelope_gen::release_rate(duration rate, float sps) { (*this)[3].config(rate, sps); }","title":"Envelope Generator","component":"q","version":"develop","name":"envelope_gen","url":"/q/develop/reference/synth/envelope_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Phases and Transitions","hash":"_phases_and_transitions","id":2},{"text":"Envelope Segment","hash":"_envelope_segment","id":3},{"text":"Include","hash":"_include","id":4},{"text":"Declaration","hash":"_declaration","id":5},{"text":"Expressions","hash":"_expressions","id":6},{"text":"Notation","hash":"_notation","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Factory","hash":"_factory","id":9},{"text":"Example","hash":"_example","id":10},{"text":"Mutators","hash":"_mutators","id":11},{"text":"Envelope Generator","hash":"_envelope_generator","id":12},{"text":"Include","hash":"_include_2","id":13},{"text":"Declaration","hash":"_declaration_2","id":14},{"text":"Expressions","hash":"_expressions_2","id":15},{"text":"Notation","hash":"_notation_2","id":16},{"text":"Function Call","hash":"_function_call","id":17},{"text":"Operation","hash":"_operation","id":18},{"text":"Accessors","hash":"_accessors","id":19},{"text":"ADSR Envelope Generator","hash":"_adsr_envelope_generator","id":20},{"text":"Include","hash":"_include_3","id":21},{"text":"Declaration","hash":"_declaration_3","id":22},{"text":"Implementation","hash":"_implementation","id":23},{"text":"Constructor","hash":"_constructor","id":24},{"text":"Mutators","hash":"_mutators_2","id":25}]},"49":{"id":49,"text":"exp_upward_ramp_gen is an exponential upward ramp generator that generates an exponentially increasing amplitude from 0.0 to 1.0, similar to a capacitor charged by a series resistor over time specified by the duration (width) and samples per second (sps), and optional exponential curvature (cv) parameters. exp_downward_ramp_gen is the inverse of the exponential upward ramp generator. This is similar to a capacitor discherged through a resistor. The Q DSP library utilizes the exponential ramp generators for generating complex envelopes. #include struct exp_upward_ramp_gen { exp_upward_ramp_gen(duration width, float sps, float cv = 0.95); float operator()(); void config(duration width, float sps); void config(duration width, float sps, float cv); void reset(); }; struct exp_downward_ramp_gen : exp_upward_ramp_gen { using exp_upward_ramp_gen::exp_upward_ramp_gen; float operator()(); }; exp_upward_ramp_gen and exp_downward_ramp_gen are a models of Ramp. In addition to valid expressions for Ramp, exp_upward_ramp_gen and exp_downward_ramp_gen allow these expressions. g Object of type exp_upward_ramp_gen or exp_downward_ramp_gen. w Object of type duration. sps Floating point value representing samples per second. cv Exponential curvature. The cv constructor and config parameter determines the curvature of the exponential. Valid cv values range greater than 0.0 to anything less than 1.0. cv is the final value in the exponential curve that will be considered as the peak value that will be scaled up to 1.0. Increasing the cv value leads to more pronounced curves. Lower cv values produce flatter, more linear ramps. The default is 0.95. Expression Semantics exp_upward_ramp_gen(w, sps, cv) Construct exp_upward_ramp_gen given width, w, and samples per second, sps, and exponential curvature, cw. exp_downward_ramp_gen(w, sps, cv) Construct exp_downward_ramp_gen given width, w, and samples per second, sps, and exponential curvature, cw. C++ brace initialization may also be used. Expression Semantics g.config(w, sps, cw) Set the ramp width, w, with samples per second, sps, and exponential curvature, cw.","title":"Exponential Ramp Generator","component":"q","version":"develop","name":"exponential_gen","url":"/q/develop/reference/synth/exponential_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"50":{"id":50,"text":"The Hamming window, named for R. W. Hamming, is a window function that tapers a signal towards its edges with non-zero endpoints. The Hamming window features a moderate rolloff rate and optimized to minimize the nearest side lobe, allowing for a fair mix of spectral resolution and noise reduction. The formula for the Hamming window is: w(n) = 0.54 - 0.46 * cos(2pi*n/(N-1)) Aside from its common use as a window function, the Q DSP library also utilizes the hamming window generator for modulating the audio signal and generating complex envelopes. #include struct hamming_gen { hamming_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; hamming_gen is a model of Generator. In addition to valid expressions for Generator, hamming_gen allows these expressions. g Object of type hamming_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics hamming_gen(w, sps) Construct hamming_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window.","title":"Hamming Window Generator","component":"q","version":"develop","name":"hamming_gen","url":"/q/develop/reference/synth/hamming_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"51":{"id":51,"text":"The Hann window, also known as the Cosine Bell, is named after the Austrian meteorologist Julius von Hann. The Hann window is a taper formed with a cosine raised above zero. It is used as one of many windowing functions for smoothing values. The The Hann window taper belongs to both the cosine-sum and sine-power families. Unlike the Hamming window, the Hann window’s end points touch zero. The formula for the Hann window is: w(n) = 0.5*(1 - cos(2pin/(N-1))) Aside from its common use as a window function, the Q DSP library also utilizes the hann window generator for modulating the audio signal and generating complex envelopes. #include struct hann_gen { hann_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; hann_gen is a model of Generator. In addition to valid expressions for Generator, hann_gen allows these expressions. g Object of type hann_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics hann_gen(w, sps) Construct hann_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window. Two subclasses of hann_gen are specialized for ramp generation: The Hann upward ramp generator generates a rising curve with the shape of the first half of a Hann window taper. The Hann downward ramp generator generates a falling curve with the shape of the second half of a Hann window taper. struct hann_upward_ramp_gen : hann_gen { hann_upward_ramp_gen(duration width, float sps); void config(duration width, float sps); }; struct hann_downward_ramp_gen : hann_gen { hann_downward_ramp_gen(duration width, float sps); void reset(); void config(duration width, float sps); }; hann_upward_ramp_gen and struct hann_downward_ramp_gen : hann_gen ` are a models of `Ramp and implements all valid expressions of Ramp.","title":"Hann Window Generator","component":"q","version":"develop","name":"hann_gen","url":"/q/develop/reference/synth/hann_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7},{"text":"Ramp Generators","hash":"_ramp_generators","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10}]},"52":{"id":52,"text":"The linear upward ramp generator, lin_upward_ramp_gen generates a linearly increasing amplitude from 0.0 to 1.0 specified by the duration (width) and samples per second (sps parameters. This is essentially a basic straight ramp from 0.0 to 1.0. lin_downward_ramp_gen is the inverse of the linear upward ramp generator. This is essentially a basic straight ramp from 1.0 to 0.0. hold_line_gen is an infinitely wide straight horizontal line at 1.0. The Q DSP library utilizes the linear ramp generators for generating complex envelopes. #include struct lin_upward_ramp_gen { lin_upward_ramp_gen(duration width, float sps); float operator()(); void config(duration width, float sps); void reset(); }; struct lin_downward_ramp_gen : lin_upward_ramp_gen { lin_downward_ramp_gen(duration width, float sps); float operator()(); }; struct hold_line_gen { hold_line_gen(duration width, float sps); float operator()(); void config(duration width, float sps); void reset(); }; lin_upward_ramp_gen, lin_downward_ramp_gen and hold_line_gen are a models of Ramp and implements all valid expressions of Ramp.","title":"Linear Ramp Generator","component":"q","version":"develop","name":"linear_gen","url":"/q/develop/reference/synth/linear_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"53":{"id":53,"text":"The pulse wave oscillator programmatically generates a pulse waveform with specified pulse width. The basic_pulse_osc is not bandwidth limited, while pulse_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_pulse_osc { constexpr basic_pulse_osc(float width = 0.5); constexpr void width(float width); constexpr float operator()(phase p); constexpr float operator()(phase_iterator i); }; struct pulse_osc : basic_pulse_osc { constexpr pulse_osc(float width = 0.5); constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; basic_pulse_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. pulse_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. In addition to valid expressions for BasicOscillator and BandwidthLimitedOscillator, basic_pulse_osc and pulse_osc allow these expressions. w A floating point value from 0.0 to 1.0 representing pulse width. ps Object of type basic_pulse_osc or pulse_osc Expression Semantics basic_pulse_osc(w) Construct a basic_pulse_osc given a pulse width, w pulse_osc(w) Construct a pulse_osc given a pulse width, w C++ brace initialization may also be used. Expression Semantics ps.width(w) Set the basic_pulse_osc or pulse_osc pulse width to w.","title":"Pulse Wave Oscillator","component":"q","version":"develop","name":"pulse_osc","url":"/q/develop/reference/synth/pulse_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"54":{"id":54,"text":"The saw-tooth wave oscillator programmatically generates the waveform. The result is basically just the phase, centered around zero, producing an amplitude of ±1.0. The basic_saw_osc is not bandwidth limited, while saw_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_saw_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_saw = basic_saw_osc{}; struct saw_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto saw = saw_osc{}; basic_saw_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. saw_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_saw_osc and saw_osc are stateless. The global instances basic_saw and saw can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Saw-Tooth Wave Oscillator","component":"q","version":"develop","name":"saw_osc","url":"/q/develop/reference/synth/saw_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"55":{"id":55,"text":"sin_cos_gen is an oscillator that simultaneously generates sine and cosine waveforms. sin_cos_gen is implemented utilizing Hal Chamberlin’s state variable IIR filter, a digital derivation of the analog state variable filter optimized for infinite Q oscillation. sin_cos_gen is suitable as a low frequency sine wave oscillator. The upper frequency limit for stability is roughly 1/6 sps. At low frequencies, the waveform symmetry is very pure, but it becomes skewed as you approach the upper limit. For low frequencies, we can reduce the calculation of the coefficient to 2*Pi*freq/sps. When utilized with fixed point or IEEE floating point, the oscallator should run forever without instability. While sin_cos_gen is technically an oscillator which generates periodic waveforms, it is presented as a model of Generator because it does not conform to the Oscillator concept which requires complete control over the phase. Although sin_cos_gen is technically an oscillator that produces periodic waveforms, it is represented as a model of a Generator because it does not adhere to the Oscillator concept, which requires complete control over the phase for synchronicity. As a free-running oscillator,sin_cos_gen can exhibit phase drift over time due to accumulating floating-point errors. Source: The digital state variable filter #include struct sin_cos_gen { sin_cos_gen(frequency f, float sps); std::pair operator()(); void config(frequency f, float sps); void reset(float sin = 0.0f, float cos = 1.0f); void midpoint(); }; sin_cos_gen is a model of Generator. In addition to valid expressions for Generator, sin_cos_gen allows these expressions. g Object of type sin_cos_gen. f Object of type frequency. sps Floating point value representing samples per second. sval, cval Floating point value values. Expression Semantics sin_cos_gen(f, sps) Construct sin_cos_gen given frequency, f, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics Return Type g() Generate a sin/cos signal and get both sin and cos result. The return type is a std::pair which stores the sin and cos results. std::pair g().first Generate a sin/cos signal and get only the sin result. float g().second Generate a sin/cos signal and get only the cos result. float Expression Semantics g.config(f, sps) Set the frequency, f, with samples per second, sps. g.reset() Reset the current sin and cos to 0.0f and 1.0f, respectively. g.reset(sval, cval) Reset the current sin and cos values, respectively. g.midpoint() Equivalent to g.reset(0.0f, -1.0f).","title":"Sine Cosine Generator","component":"q","version":"develop","name":"sin_cos_gen","url":"/q/develop/reference/synth/sin_cos_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"56":{"id":56,"text":"The sine wave oscillator is one of the most fundamental building blocks in synthesis. It generates a basic, pure waveform consisting of a single frequency with no harmonics or overtones. The sine wave oscillator is often used in additive synthesis to create complex waveforms by combining simple sine waves of various frequencies, phases, and amplitudes. It is also often used as a low-frequency oscillator for modulating various audio parameters, such as frequency and amplitude. sin_osc efficiently synthesizes sine waves from a lookup table to avoid performing complex calculations in real-time. The lookup table is optimized for use in small MCUs (microconrrollers), by having the data stored as c++ constexpr array, which is effectively placed in flash memory. #include struct sin_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto sin = sin_osc{}; sin_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. sin_osc is stateless. The global instance sin can be used anywhere without needing to be placed in a class or struct. It is semantically equivalent to a global function.","title":"Sine Wave Oscillator","component":"q","version":"develop","name":"sin_osc","url":"/q/develop/reference/synth/sin_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"57":{"id":57,"text":"The square wave oscillator programmatically generates a pulse waveform with a 50% pulse width. The basic_square_osc is not bandwidth limited, while square_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_square_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_square = basic_square_osc{}; struct square_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto square = square_osc{}; basic_square_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. square_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_square_osc and square_osc are stateless. The global instances basic_square and square can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Square Wave Oscillator","component":"q","version":"develop","name":"square_osc","url":"/q/develop/reference/synth/square_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"58":{"id":58,"text":"The triangle wave oscillator programmatically generates a triangle waveform that ramps up from 0.0 to 1.0, then ramps down to -1.0, and ramps back up to 0.0. The basic_triangle_osc is not bandwidth limited, while triangle_osc is, using a technique called \"PolyBLAMP\" to reduce aliasing artifacts that can occur when generating the triangle waveform with sharp corners. PolyBLAMP uses the BLAMP (bandlimited ramp) function to treat any discontinuities found in the first derivative of a signal by quasi-bandlimiting the corners found in the waveform. The algorithm derives a polynomial approximation of the BLAMP function, making it efficient for implementation. This correction function is applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_triangle_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_triangle = basic_triangle_osc{}; struct triangle_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto triangle = triangle_osc{}; basic_triangle_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. triangle_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_triangle_osc and triangle_osc are stateless. The global instances basic_triangle and triangle can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Triangle Wave Oscillator","component":"q","version":"develop","name":"triangle_osc","url":"/q/develop/reference/synth/triangle_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"59":{"id":59,"text":"The decibel (dB) is a unit used to measure the relative signal level difference between two signals. It is a logarithmic scale that expresses the relationship between two signal root-power amplitudes or power levels. Here, we are concerned with amplitudes. For amplitudes gain, the relationship is given by: 20 log10(out/in) = dB where out represents the output amplitude, while in represents the input amplitude. The decibel scale is expressed as the base 10 logarithm of the ratio between two amplitudes. For instance, a ratio of 2:1 (two times) corresponds to a 6 dB increase, while a ratio of 10:1 (ten times) corresponds to a 20 dB increase. In contrast, a ratio of 1:2 (one half) corresponds to a -6 dB decrease, whereas a ratio of 1:10 (one tenth) corresponds to a -20 dB decrease. Decibel is non-linear and operates on the logarithmic domain. The decibel class is perfectly suitable for dynamics processing (e.g. compressors and limiters and envelopes). Q provides fast decibel computations using fast math functions and lookup tables for converting to and from scalars. #include struct decibel_unit; struct decibel : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = decibel_unit; }; // Free functions double lin_double(decibel db); constexpr float lin_float(decibel db); inline decibel approx_db(float val); decibel lin_to_db(double val); // Literals inline namespace literals { constexpr decibel operator \"\" _dB(unsigned long long int val); constexpr decibel operator \"\" _dB(long double val); } decibel is a model of Unit. In addition to valid expressions for Unit, decibel allows these expressions. d Object of type decibel. v Linear floating point value. 0.0 A floating point literal number. 0 An integer literal number. Take note that the Unit concept already has a constructor from a floating point value that handles direct construction such as: auto db = decibel{6.0}; // 6 dB This constructor was used in previous versions of the library to convert linear to decibels, which can be confusing. This version ought to have corrected this nonintuitive semantics, but this is a disruptive change that will alter the semantics of all existing code without warning. In order to avoid further confusion, we will mark this constructor as deleted for the time being, making it a hard error to alert users upgrading to this library version. C++ brace initialization may also be used. Expression Semantics Return Type lin_float(d) Convert decibel to a linear value. float lin_double(d) Convert decibel to a linear value. double lin_to_db(v) Convert a linear value v to decibel. decibel approx_db(v) Faster approximate conversion from a linear value v to decibel. decibel The free function lin_to_db can be used to indirectly construct and return a decibel object from a linear value. The lin_to_db function performs linear to decibel conversion. Example: auto db = lin_to_db(2.0); // 6 dB In addition to lin_to_db, approx_db is another free function that performs linear to decibel conversion. It is a faster, but less accurate conversion function from a linear value to decibel. lin_float and lin_double convert decibel to a linear value with float and double results, respectively. If you need to create decibel from numeric constants, it is preferrable to use decibel literals instead. Example: auto db = -6_dB; Expression Semantics 0.0_dB Returns 0.0 dB. 0_dB Returns 0.0 dB. Take note that 0.0 and 0 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _dB literal, it is generally safe to bring its namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"decibel","component":"q","version":"develop","name":"decibel","url":"/q/develop/reference/units/decibel.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Literals","hash":"_literals","id":8}]},"60":{"id":60,"text":"Type safe representation of duration: the length of time that something lasts or continues, measured in seconds. #include struct duration_unit; struct duration : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = duration_unit; }; // Free functions constexpr double as_double(duration d); constexpr float as_float(duration d); // Literals inline namespace literals { constexpr duration operator \"\" _s(long double val); constexpr duration operator \"\" _s(unsigned long long int val); constexpr duration operator \"\" _ms(long double val); constexpr duration operator \"\" _ms(unsigned long long int val); constexpr duration operator \"\" _us(long double val); constexpr duration operator \"\" _us(unsigned long long int val); } In addition to valid expressions for Unit, duration allows these expressions. d Object of type duration 1.0 A floating point literal number. 1 An integer literal number. Expression Semantics Return Type as_float(d) Convert duration to a float in seconds. float as_double(d) Convert duration to a double in seconds. double If you need to create duration from numeric constants, it is preferrable to use duration literals instead. Example: auto d = 6_ms; Expression Semantics 1.0_s Returns a duration of 1.0 seconds. 1_s Returns a duration of 1.0 seconds. 1.0_ms Returns a duration of 1.0 milliseconds. 1_ms Returns a duration of 1.0 milliseconds. 1.0_us Returns a duration of 1.0 microseconds. 1_us Returns a duration of 1.0 microseconds. Take note that 1.0 and 1 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _s, _ms, and _us literals, it is generally safe to bring their namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"duration","component":"q","version":"develop","name":"duration","url":"/q/develop/reference/units/duration.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Conversions","hash":"_conversions","id":6},{"text":"Literals","hash":"_literals","id":7}]},"61":{"id":61,"text":"Type safe representation of frequency: the number of cycles or oscillations of a periodic event per unit of time, measured in Hertz. #include struct frequency_unit; struct frequency : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = frequency_unit; constexpr q::period period() const; }; // Free functions constexpr double as_double(frequency f); constexpr float as_float(frequency f); // Literals inline namespace literals { constexpr frequency operator \"\" _Hz(long double val); constexpr frequency operator \"\" _Hz(unsigned long long int val); constexpr frequency operator \"\" _KHz(long double val); constexpr frequency operator \"\" _KHz(unsigned long long int val); constexpr frequency operator \"\" _kHz(long double val); constexpr frequency operator \"\" _kHz(unsigned long long int val); constexpr frequency operator \"\" _MHz(long double val); constexpr frequency operator \"\" _MHz(unsigned long long int val); } frequency is a model of Unit. In addition to valid expressions for Unit, frequency allows these expressions. f Object of type frequency. 1.0 A floating point literal number. 1 An integer literal number. Expression Semantics Return Type as_float(f) Convert frequency to a float. float as_double(f) Convert frequency to a double. double Expression Semantics Return Type f.period() Get the period (reciprocal of frequency). period If you need to create frequency from numeric constants, it is preferrable to use frequency literals. Example: auto d = 440_Hz; Expression Semantics 1.0_Hz Returns a frequency of 1.0 Hz. 1_Hz Returns a frequency of 1.0 Hz. 1.0_kHz Returns a frequency of 1.0 kHz. 1_kHz Returns a frequency of 1.0 kHz. 1.0_KHz Returns a frequency of 1.0 kHz. 1_KHz Returns a frequency of 1.0 kHz. 1.0_MHz Returns a frequency of 1.0 MHz. 1_MHz Returns a frequency of 1.0 MHz. Take note that 1.0 and 1 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _Hz, _kHz, and _MHz literals, it is generally safe to bring their namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"frequency","component":"q","version":"develop","name":"frequency","url":"/q/develop/reference/units/frequency.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Conversions","hash":"_conversions","id":6},{"text":"Misc","hash":"_misc","id":7},{"text":"Literals","hash":"_literals","id":8}]},"62":{"id":62,"text":"An interval is the distance between two pitches, measured in semitones. It is the basis for melody and harmony as well as all musical scales and chords. The basic_interval is a template class, parameterized by the underlying type T. #include struct interval_unit; template struct basic_interval : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = interval_unit; constexpr explicit basic_interval(concepts::Arithmetic auto val); }; // Free functions template constexpr int as_int(basic_interval i); template constexpr float as_float(basic_interval i); template constexpr double as_double(basic_interval i); template requires std::floating_point constexpr basic_interval round(basic_interval i); template requires std::floating_point constexpr basic_interval ceil(basic_interval i); template requires std::floating_point constexpr basic_interval floor(basic_interval i); There are two basic type aliases: interval and exact_interval, which are template instantiations of the basic_interval template class: interval Fractional interval. Can represent microtones —intervals smaller than a semitone. exact_interval Exact, whole number intervals. using interval = basic_interval; using exact_interval = basic_interval; basic_interval is a model of Unit. In addition to valid expressions for Unit, Intervals allow these expressions. i Object of type basic_interval. Expression Semantics Return Type as_int(i) Convert an interval to an int. int as_float(i) Convert an interval to a float. float as_double(i) Convert an interval to a double. double Expression Semantics Return Type round(i) Rounds i to the nearest non-fractional interval. basic_interval ceil(i) Returns the smallest non-fractional interval that is greater than or equal i. basic_interval floor(i) Returns the largest non-fractional interval that is less than or equal i. basic_interval The round, ceil and floor functions require T to be a floating point type.","title":"Interval","component":"q","version":"develop","name":"interval","url":"/q/develop/reference/units/interval.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Template Instantiations","hash":"_template_instantiations","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Functions","hash":"_functions","id":8}]},"63":{"id":63,"text":"Type safe representation of period: the reciprocal of frequency, or the time it takes for a periodic event to complete one full cycle or oscillation. #include period is a subclass of {duration} and inherits all its public member functions, member variables, and types. struct period : duration { using duration::duration; constexpr period(duration d); constexpr period(frequency f); }; As a subclass of duration, period inherits all the publicly accessible member functions, member variables, and types of its base class. period is a model of Unit. In addition to valid expressions for Unit, period allows these expressions. d Object of type duration f Object of type frequency p Object of type period Expression Semantics phase(d) Construct a period given a duration, d phase(f) Construct a period given a frequency, f C++ brace initialization may also be used. Expression Semantics Return Type as_float(f) Convert frequency to a float in seconds. float as_double(f) Convert frequency to a double in seconds. double","title":"period","component":"q","version":"develop","name":"period","url":"/q/develop/reference/units/period.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7}]},"64":{"id":64,"text":"Type safe representation of phase: the relationship in timing between a periodic signal relative to a reference periodic signal of the same frequency. Phase values run from 0 to 2π. The turn, also cycle, full circle, revolution, and rotation, is a complete circular movement or measure (as to return to the same point) with circle or ellipse. A turn is abbreviated τ, cyc, rev, or rot depending on the application. The symbol τ can also be used as a mathematical constant to represent 2π radians. https://en.wikipedia.org/wiki/Angular_unit phase is represented in a fixed-point 1.31 format where 31 bits are fractional. Such a format is perfectly suitable for oscillators. For that purpose, a phase accumulator can be used: essentially a counter that keeps track of the current phase value for the waveform. Initially, the accumulator is set to an arbitrary starting phase, usually 0. To generate the next sample of the waveform, we compute the phase value for the next sample based on the desired frequency and the sample rate. This value is then added to the current phase accumulator value. This process continues for each successive sample in the waveform. The advantage of using fixed point 1.31 to represent phase is that the phase accumulator inherently rewraps the value when the next phase exceeds 2π. This behavior is inherent to the fixed-point 1.31 format and eliminates the need for additional logic to handle the wraparound condition. Also, see phase_iterator for further additional relevant information. #include struct phase_unit; struct phase : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = phase_unit; constexpr phase(); constexpr phase(frequency freq, float sps); constexpr static phase begin(); constexpr static phase end(); constexpr static phase middle(); }; // Free functions constexpr phase frac_to_phase(std::floating_point auto frac); constexpr double frac_double(phase d); constexpr float frac_float(phase p); phase is a model of Unit. In addition to valid expressions for Unit, phase allows these expressions. frac A floating point number, representing a fractional number from 0.0 to 1.0 (corresponding to 0 to 2π). freq Object of type frequency. sps Floating point value representing samples per second. p Object of type phase. val The underlying data type representing phase. See Unit. Expression Semantics phase() Default construct a phase. Equivalent to phase(0). phase(freq, sps) Construct a phase from the freq and sps C++ brace initialization may also be used. Expression Semantics Return Type frac_float(p) Convert phase to a float from 0.0 to 1.0. float frac_double(p) Convert phase to a double from 0.0 to 1.0r. double frac_to_phase(frac) Convert a floating point fractional value to a phase phase Expression Semantics Return Type phase::begin() Get the minimum phase representing 0° phase phase::end() Get the maximum phase representing 360° (2π) phase phase::middle() Get the phase representing 180° (π) phase","title":"phase","component":"q","version":"develop","name":"phase","url":"/q/develop/reference/units/phase.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Accessors","hash":"_accessors","id":8}]},"65":{"id":65,"text":"Read phase first for prerequisite information. phase_iterator is a class that iterates over the phase with an iteration step size specified by the given frequency and sampling rate. phase_iterator holds two phase members, the phase accumulator and the phase step size. The phase accumulator, keeps track of the current phase value for the waveform. Initially, the accumulator is set to an arbitrary starting phase, usually 0. For each sample of the waveform, the phase step size value is added to the current phase accumulator, which inherently rewraps the value when the next phase exceeds 2π. #include struct phase_iterator { constexpr phase_iterator(); constexpr phase_iterator(frequency freq, float sps); constexpr phase_iterator operator++(int); constexpr phase_iterator& operator++(); constexpr phase_iterator operator--(int); constexpr phase_iterator& operator--(); constexpr phase_iterator& operator=(phase rhs); constexpr phase_iterator& operator=(phase_iterator const& rhs) = default; constexpr void set(frequency freq, float sps); constexpr bool first() const; constexpr bool last() const; constexpr phase_iterator begin() const; constexpr phase_iterator end() const; constexpr phase_iterator middle() const; phase _phase, _step; }; freq Object of type frequency sps Floating point value representing samples per second i, a, b Objects of type phase_iterator p Objects of type phase Expression Semantics phase_iterator() Default construct a phase_iterator. phase_iterator(freq, sps) Construct a phase_iterator from the freq and sps phase_iterator(i) Copy construct from phase_iterator i. a = b Assign phase_iterator b, to phase_iterator a. i = p Assign phase p, to phase_iterator i. See Modifying The State. C++ brace initialization may also be used. Expression Semantics Return Type i++ Post increment. Returns a copy of the iterator made prior to increment. phase_iterator ++i Pre increment. Increment and return a reference to the iterator. phase_iterator& i-- Post decrement. Returns a copy of the iterator made prior to decrement. phase_iterator --i Pre decrement. Decrement and return a reference to the iterator. phase_iterator& Expression Semantics Return Type set(freq, sps) Modify a phase_iterator given a new freq and sps. See Modifying The State. void When modifying a phase_iterator with a new frequency, freq, and sampling rate, sps, only the phase step size will be changed. To prevent discontinuities, the phase accumulator will not be touched. This means that the phase accumulator will continue to count up from its previous value, while the updated phase step size will determine the new frequency. Expression Semantics Return Type i.first() Returns true if the phase_iterator is at the start of the waveform cycle (0° or 0 rad). I.e. the phase accumulator is within 0 to phase step size. bool i.last() Returns true if the phase_iterator is at the end of the waveform cycle (360° or 2π rad). I.e. the phase accumulator is within phase step size below 2π. bool i.begin() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the start of the waveform cycle (0° or 0 rad). phase_iterator i.end() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the end of the waveform cycle (360° or 2π rad). phase_iterator i.middle() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the middle of the waveform cycle (180° or π rad) phase_iterator i._phase Direct access to the phase accumulator. phase& i._step Direct access to the phase step size. phase&","title":"phase_iterator","component":"q","version":"develop","name":"phase_iterator","url":"/q/develop/reference/units/phase_iterator.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignments","hash":"_constructors_and_assignments","id":6},{"text":"Iteration","hash":"_iteration","id":7},{"text":"Mutator","hash":"_mutator","id":8},{"text":"Modifying The State","hash":"_modifying_the_state","id":9},{"text":"Accessors","hash":"_accessors","id":10}]},"66":{"id":66,"text":"pitch is determined by its position on the chromatic scale, which is a system of 12 notes that repeat in octaves. The distance between each pitch on the chromatic scale is a semitone, and each pitch represents a specific frequency measured in hertz (Hz). pitch is an interval with a base frequency of 8.1757989156437 Hz that correspond to MIDI note 0 (which is an octave below F#0). pitch is represented by the MIDI value. Therefore, only positive values are valid. pitch includes construction from frequency as well as numeric values representing the absolute position in the chromatic scale from the base frequency. pitch also includes conversions to frequency. Conversions to and from frequency utilize fast log2 and pow2 computations using fast math functions. #include struct pitch : interval { constexpr static auto base_frequency = frequency{8.1757989156437}; constexpr pitch(); explicit pitch(frequency f); constexpr bool valid() const; // These operations do not make sense and are not allowed. pitch& operator+=(pitch) = delete; pitch& operator-=(pitch) = delete; }; // Free functions frequency as_frequency(pitch n); float as_float(pitch n); double as_double(pitch n); constexpr pitch round(pitch n); constexpr pitch ceil(pitch n); constexpr pitch floor(pitch n); // These operations do not make sense and are not allowed. pitch operator+(pitch, pitch) = delete; pitch operator-(pitch, pitch) = delete; In addition to valid expressions for interval, pitch allows these expressions. p, a, b Objects of type pitch f Object of type frequency Expression Semantics pitch(f) Construct a pitch from frequency f. pitch() Default construct a pitch. The result is an invalid pitch by default where p.rep == -1.0. C++ brace initialization may also be used. Expression Semantics Return Type as_float(p) Convert pitch to a float. float as_double(p) Convert pitch to a double. double as_frequency(p) Convert pitch to a frequency. frequency Expression Semantics Return Type p.valid() Returns true if p is valid. p is valid if p.rep >= 0.0 bool round(p) Rounds p to the nearest non-fractional pitch. pitch ceil(p) Returns the smallest non-fractional pitch that is greater than or equal i pitch floor(p) Returns the largest non-fractional pitch that is less than or equal i pitch These valid expressions for interval do not make sense for pitch and are no longer allowed. Expression a += b a -= b a + b a - b","title":"pitch","component":"q","version":"develop","name":"pitch","url":"/q/develop/reference/units/pitch.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Functions","hash":"_functions","id":8},{"text":"Deleted Functions","hash":"_deleted_functions","id":9}]},"67":{"id":67,"text":"Fractional ring buffer allows sub-sample indexing using interpolation. fractional_ring_buffer is a subclass of ring_buffer that overloads the index operator to provide sub-sample indexing. #include template , typename Index = float , typename Interpolation = sample_interpolation::linear> class fractional_ring_buffer : public ring_buffer { public: using value_type = T; using storage_type = Storage; using index_type = Index; using interpolation_type = Interpolation; using ring_buffer::ring_buffer; // get data (index can be fractional) T const operator[](Index index) const; }; As a subclass of ring_buffer, fractional_ring_buffer inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for ring_buffer, fractional_ring_buffer allows these expressions. T Element type, e.g. float. S Storage type, e.g. std::vector. I Index type, e.g. float. X Interpolation type, e.g. sample_interpolation::linear. rb_type A fractional_ring_buffer type. rb Object of type fractional_ring_buffer. i Object of type I. a [, b, c, d] Required a, optional b, c, d. Expression Semantics fractional_ring_buffer Instantiate a fractional_ring_buffer type given: Element type T Storage type S (optional) Index type I (optional) Interpolation type, X (optional) using rb_type1 = fractional_ring_buffer using rb_type2 = fractional_ring_buffer> using rb_type3 = fractional_ring_buffer, float> using rb_type4 = fractional_ring_buffer Expression Semantics rb_type::value_type Get the underlying element type. rb_type::storage_type Get the underlying storage type. rb_type::index_type Get the underlying index type. rb_type::interpolation_type Get the underlying interpolation type. Expression Semantics Return Type rb[i] Get the element at index i. rb[0] refers to the latest element. rb[rb.size()-1] refers to the oldest element. Index can be fractional (e.g. rb[2.5]). T& or T const& if rb is const. i rb.size()-1 is undefined behavior.","title":"Fractional Ring Buffer","component":"q","version":"develop","name":"fractional_ring_buffer","url":"/q/develop/reference/utility/fractional_ring_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"68":{"id":68,"text":"The ring buffer is a fixed-size buffer that is regarded as if it were circular. When data is written to the buffer, it is stored in sequential order up to its size, after which new data will overwrite the oldest data in the buffer. ring_buffer is a template class parameterized by the underlying element type, T, and the type of storage used, which defaults to std::vector, although it is also possible to use fixed sized storage such as std::array as long as the size is a powers of 2. For efficiency, the ring buffer storage will maintain a size that is the power of 2. The ring_buffer is not resizable after construction. #include template > class ring_buffer { public: using value_type = T; using storage_type = Storage; explicit ring_buffer(); explicit ring_buffer(std::size_t size); ring_buffer(ring_buffer const& rhs) = default; ring_buffer(ring_buffer&& rhs) = default; ring_buffer& operator=(ring_buffer const& rhs) = default; ring_buffer& operator=(ring_buffer&& rhs) = default; std::size_t size() const; void push(T val); T const& front() const; T& front(); T const& back() const; T& back(); T const& operator[](std::size_t index) const; T& operator[](std::size_t index); void clear(); void pop_front(); Storage& store(); const Storage& store() const; }; T Element type, e.g. float. S Storage type, e.g. std::vector. rb_type A ring_buffer type. rb, a, b Objects of type ring_buffer. val Object of type T. i Object of type std::size_t. s Object of type std::size_t. a [, b, c, d] Required a, optional b, c, d. Expression Semantics ring_buffer Instantiate a ring_buffer type given: Element type T Storage type S (optional) using rb_type1 = ring_buffer using rb_type2 = ring_buffer> Expression Semantics rb_type::value_type Get the underlying element type. rb_type::storage_type Get the underlying storage type. Expression Semantics rb_type() Default construct a ring buffer. This constructor is only applicable when a fixed sized storage is specified. rb_type(s) Construct a ring buffer with specified size, s. This constructor is only applicable when a resizable storage is specified. The actual buffer size will be the minimum power of 2 greater than size. greater than s. rb_type(rb) Copy construct from rb_type rb. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics rb.push(val) Push the latest element, overwriting the oldest element. rb.clear() Clear the ring buffer. rb.pop_front() Pop the latest element. This operation will not destruct the element, but will instead allow the ring buffer to overwrite the element on the next push. Expression Semantics Return Type rb.size() Get the ring buffer’s size. std::size_t. rb.front() Get the latest element. T& or T const& if rb is const. rb.back() Get the oldest element. T& or T const& if rb is const. rb[i] Get the element at index i. rb[0] refers to the latest element. rb[rb.size()-1] refers to the oldest element. T& or T const& if rb is const. rb.store() Get a reference to the storage. S& or S const& if rb is const. i rb.size()-1 is undefined behavior.","title":"Ring Buffer","component":"q","version":"develop","name":"ring_buffer","url":"/q/develop/reference/utility/ring_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Mutators","hash":"_mutators","id":10},{"text":"Accessors","hash":"_accessors","id":11}]},"69":{"id":69,"text":"","title":"","component":"q","version":"v1.0_beta","name":"common","url":"/q/v1.0_beta/common.html","titles":[]},"70":{"id":70,"text":"The Fundamentals section of the Q DSP library provides a brief overview of the basic features of the library, including layering and dependencies, file structure, namespace, function objects as fundamental building blocks, rich data types, and user-defined literals. The Q library comprises of two layers: q_io: Audio and MIDI I/O layer. The q_io layer provides cross-platform audio and MIDI host connectivity straight out of the box. The q_io layer is optional. The q_lib layer is usable without it. q_lib: The core DSP library, q_lib is a no-frills, lightweight, header-only library. The dependencies are determined by the arrows. q_io has very minimal dependencies (portaudio and portmidi) with very loose coupling via thin wrappers that are easy to transplant and port to a host, with or without an operating system, such as an audio plugin or direct to hardware ADC and DAC. q_io is used in the tests and examples, but can be easily replaced by other mechanisms in an application. Plugin libraries for DAWs (digital audio workstations), for example, have their own audio and MIDI I/O mechanisms. q_lib has no dependencies except the standard c++ library. The library is organized with this simplified directory structure: docs (1) example (2) q_io ├─ external (3) ├─ include (4) └─ src (5) q_lib └─ include (6) test (7) 1 Where this documentation resides. 2 Self-contained and easy to understand c++ programs that demonstrate various features of the library. 3 3rd party libraries used by the q_io module. 4 q_io header files. 5 q_io source files. 6 Header-only core q_lib DSP library. 7 A comprehensive set of c++ files for testing the library. Other sub-directories not listed here can be ignored. The q_lib module, header-only core, has this simplified directory structure: q_lib └─ include └─ q ├─ fft (1) ├─ fx (2) ├─ pitch (3) ├─ support (4) ├─ synth (5) └─ utility (6) 1 Fast fourier transform. 2 Various \"effects\" processor building blocks. 3 Pitch detection related facilities. 4 Fundamental support facilities. 5 Various synthesisers. 6 Auxiliary utility functions and classes. Other sub-directories not listed here can be ignored. All entities in the Q library are placed in namespace cycfi::q. Everywhere in this documentation, we will be using a namespace alias to make the code less verbose: namespace q = cycfi::q; Typical audio processors in the Q DSP library work on floating point input samples with the normal -1.0 to 1.0 range. However, values are not limited to sampled signals. For instance, signal envelopes are best represented as decibels that are processed in the logarithmic domain, so dynamic-range processors such as compressors and expanders accept decibel as input and return decibel as output. For example: decibel gain = comp(env); comp is a compressor. The compressor above, however, processes signal envelopes rather than raw samples, in contrast to the typical implementation of DSP compressors. The compressor above accepts an envelope represented by decibel, performs computation in the logarithmic domain, and returns a compressed envelope also represented by decibel. Oscillators, as another example, operate on phase-angle inputs and return output samples: float out = sin(phase++); The Q DSP library has a rich set of such types: float and double Typical sample data type -1.0 to 1.0 (or beyond for some computational headroom). frequency Cycles per second (Hz). duration A time span (seconds, milliseconds, etc.) period The inverse of frequency. phase Fixed point 1.31 format where 31 bits are fractional. phase. represents 0 to 2π phase values suitable for oscillators. decibel Ratio of one value to another on a logarithmic scale (dB). For more information, see Units. The Q DSP library is typeful and typesafe. You can not mismatch values of different types such as frequency and decibel, for example. Such potentially disastrous mistakes can happen if all values are just raw floating point types. There are conversions to and from these data types where it is reasonable to do so. decibel can, for example, be converted to 'float' or 'double' using the as_float or as_double conversion functions. Example: float gain = as_float(12_dB); Relational operations are allowed. For example: if (gain > 3_dB) // 3_dB is a decibel literal (see below) s = lp(s); Arithmetic operations are allowed. For example: auto total_duration = 3_ms + 5_ms; // 3_ms and 5_ms are duration literals Where appropriate, arithmetic with raw types are allowed. For example: auto harmonic = 440_Hz * 4; // 440_Hz is a frequency literal To augment the wealth of value types, the Q DSP library makes abundant use of user-defined literals. We take advantage of C++ type safe user-defined literals, instead of the usual float or double which can be unsafe when values of different units (e.g. frequency vs. duration) are mismatched. The Q DSP library makes abundant use of user-defined literals for units such as time, frequency and volume. For example, we use 24_dB, instead of a unit-less 24 or worse, a non-intuitive, unit-less 15.8 —the gain equivalent of 24_dB. Such constants also make the code very readable, another objective of this library. Q Literals are placed in the namespace q::literals. The namespace is sparse enough to be hoisted into your namespace using using namespace: To use these literals, include the literals.hpp header: #include then use the literals namespace somewhere in a scope where you need it: using namespace q::literals; Here are some example expressions: 82.4069_Hz 440_Hz 1.5_KHz 1.5_kHz 1_kHz 0.5_MHz 3_MHz 10.3_s 1_s 20.5_ms 1_ms 10.5_us 500_us -3.5_dB 10_dB 2_pi 0.5_pi Here’s the list of available literals: // frequency constexpr frequency operator \"\" _Hz(long double val); constexpr frequency operator \"\" _Hz(unsigned long long int val); constexpr frequency operator \"\" _KHz(long double val); constexpr frequency operator \"\" _KHz(unsigned long long int val); constexpr frequency operator \"\" _kHz(long double val); constexpr frequency operator \"\" _kHz(unsigned long long int val); constexpr frequency operator \"\" _MHz(long double val); constexpr frequency operator \"\" _MHz(unsigned long long int val); // duration constexpr duration operator \"\" _s(long double val); constexpr duration operator \"\" _s(unsigned long long int val); constexpr duration operator \"\" _ms(long double val); constexpr duration operator \"\" _ms(unsigned long long int val); constexpr duration operator \"\" _us(long double val); constexpr duration operator \"\" _us(unsigned long long int val); // decibel constexpr decibel operator \"\" _dB(unsigned long long int val); constexpr decibel operator \"\" _dB(long double val); // pi constexpr long double operator \"\" _pi(long double val); constexpr long double operator \"\" _pi(unsigned long long int val) In the realm of electronic music, there are processors and synthesizers, whose definitions overlap somewhat and differ primarily in how they handle input and output. The processor receives one or more input samples and generates one or more output samples according to a specific processing algorithm. A synthesizer, on the other hand, generates sound from scratch without using any samples. The C++ function object is the most basic building block. In the Q world, both processors and synthesizers are simply function objects, which can be composed to form more complex functions. A function object can accept zero or more input values and generate zero or more output values. Function objects are instantiated from struct or class declarations in the header files. In this example, we instantiate hypothetical f_x and g_x structs: auto f = f_x{}; auto g = g_x{}; Syntactically, you can use these function objects just like any other function. Here’s an example function call invocation for the single input function object, f instantiated above: float r = f(s); where s is the input value, and f(s) returns a result and stores it in the variable r. Composition by passing the result of f to g, like this: float r = g(f(s)); can be encapsulated using function composition in a class or struct: struct fg_x { float operator()(float s) const { return g(f(s)); } f_x f; g_x g; }; Here, we encapsulate f_x and g_x inside the composed function object struct fg_x. We can then instantiate a function object for fg_x just like we would above. The Q DSP library uses fine-grained and reusable function object structs or classes like this. Such reusable components are composed to form more powerful higher level composites. Here’s the code example in the library for signal conditioning: inline float signal_conditioner::operator()(float s) { // High pass s = _hp(s); (1) // Pre clip s = _clip(s); (2) // Dynamic Smoother s = _sm(s); (3) // Signal envelope auto env = _env(std::abs(s)); (4) // Noise gate auto gate = _gate(env); (5) s *= _gate_env(gate); (6) // Compressor + makeup-gain auto env_db = decibel(env); auto gain = as_float(_comp(env_db)) * _makeup_gain; (7) s = s * gain; _post_env = env * gain; return s; } We’re showing only the operator() for brevity. But take note that the code uses multiple function objects for various processing functions that correspond to these class member variables: private: clip _clip; (2) highpass _hp; (1) dynamic_smoother _sm; (3) fast_envelope_follower _env; (4) float _post_env; compressor _comp; (7) float _makeup_gain; onset_gate _gate; (5) envelope_follower _gate_env; (6) }; The complete code can be found here: signal_conditioner.hpp Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Fundamentals","component":"q","version":"v1.0_beta","name":"fundamentals","url":"/q/v1.0_beta/fundamentals.html","titles":[{"text":"Layers","hash":"_layers","id":1},{"text":"Dependencies","hash":"_dependencies","id":2},{"text":"File Structure","hash":"_file_structure","id":3},{"text":"Namespace","hash":"_namespace","id":4},{"text":"Data Types","hash":"_data_types","id":5},{"text":"Literals","hash":"_literals","id":6},{"text":"Examples","hash":"_examples","id":7},{"text":"Frequency","hash":"_frequency","id":8},{"text":"Duration","hash":"_duration","id":9},{"text":"Decibel","hash":"_decibel","id":10},{"text":"Pi","hash":"_pi","id":11},{"text":"Function Objects","hash":"_function_objects","id":12}]},"71":{"id":71,"text":"is a cross-platform C++ library for Audio Digital Signal Processing. Aptly named after the \"Q factor\", a dimensionless parameter that describes the quality of a resonant circuit, the Q DSP Library is designed to be simple and elegant, as the simplicity of its name suggests, and efficient enough to run on small microcontrollers. Q leverages the power of modern C++ and efficient use of functional programming techniques, especially function composition using fine-grained and reusable function objects (both stateless and stateful), to simplify complex DSP programming tasks without sacrificing readability. Q is the host of some experimental Music related DSP facilities The Author has accumulated over the years as part of research and development, and will continue to evolve to accommodate more facilities necessary for the fulfillment of various Music related projects. The library is Open Source and released under the very liberal MIT license. Show Table of Contents Setup and Installation Quick Start Fundamentals Reference Units frequency duration period phase phase_iterator decibel interval pitch Biquad Low Pass Filter High Pass Filter Band Pass Filter; Constant Skirt Gain Band Pass Filter; Constant Peak Gain All Pass Filter Notch Filter Peaking Filter Low Shelf Filter High Shelf Filter Envelope Peak Envelope Follower AR Envelope Follower Fast Envelope Follower Fast Averaging Envelope Follower Fast RMS Envelope Follower Dynamic Compressor Soft Knee Compressor Expander AGC Miscellaneous Delay Moving Sum Moving Average Noise Gate Onset Gate One Pole Low Pass DC Block Synthesizers Sine Wave Oscillator Saw Wave Oscillator Square Wave Oscillator Pulse Wave Oscillator Triangle Wave Oscillator Sine Cosine Generator Blackman Window Generator Hann Window Generator Hamming Window Generator Linear Ramp Generator Exponential Ramp Generator Envelope Generator Support Basic Concepts Multi Buffer Audio Stream MIDI Messages MIDI Processor Utility Ring Buffer Fractional Ring Buffer Audio MIDI I/O Audio Device Audio Stream Audio File MIDI Device MIDI Stream Joel got into electronics and programming in the 80s because almost everything in music, his first love, is becoming electronic and digital. Since then, he builds his own guitars, effect boxes and synths. He enjoys playing distortion-laden rock guitar, composes and produces his own music in his home studio. Joel de Guzman is the principal architect and engineer at Cycfi Research. He is a software engineer specializing in advanced C++ and an advocate of Open Source. He has authored a number of highly successful Open Source projects such as Boost.Spirit, Boost.Phoenix and Boost.Fusion. These libraries are all part of the Boost Libraries, a well respected, peer-reviewed, Open Source, collaborative development effort. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Q Audio DSP Library","component":"q","version":"v1.0_beta","name":"index","url":"/q/v1.0_beta/index.html","titles":[{"text":"Introduction","hash":"_introduction","id":1},{"text":"Table of Contents","hash":"_table_of_contents","id":2},{"text":"The Author","hash":"_the_author","id":3}]},"72":{"id":72,"text":"Here’s a quick \"Hello, World\" example that highlights the simplicity of the Q DSP Library: a delay effects processor. The full example can be found here: example/delay.cpp. The example loads a pre-recorded wav file and plays it back with processing. The raw audio source will be played in the left channel while the delayed signal will be played in the right channel. Pretty much as straightforward as possible. The audio will be played using the currently selected audio device. The final audio output can be heard below: Your browser does not support the audio tag. // fractional delay (1) q::delay _delay{350_ms, 44100}; // Mix the signal s, and the delayed signal (where s is the incoming sample) (2) auto _y = s + _delay(); // Feed back the result to the delay (2) _delay.push(_y * _feedback); Normally, there will be a processing loop that receives the incoming samples, s. The code above are placed: 1 Before the processing loop. 2 Inside inside the processing loop. Typically, you encapsulate the code inside a class where _delay, _y and _feedback are member variables. 44100 is the desired sampling rate. _feedback is the amount of feedback desired (anything from 0.0 to less than 1.0, e.g. 0.85). 350_ms is the delay duration. Take note of 350_ms. Here, we take advantage of C++ type safe user-defined literals, instead of the usual float or double which can be unsafe when values of different units (e.g. frequency vs. duration) are mismatched. The Q DSP library makes abundant use of user-defined literals for units such as time, frequency and volume. For example, we use 24_dB, instead of a unit-less 24 or worse, a non-intuitive, unit-less 15.8 —the gain equivalent of 24_dB. Such constants also make the code very readable, another objective of this library. Processors such as q::delay are C++ function objects that can be composed to form more complex processors. For example if you want to filter the delayed signal with a low-pass filter with a 1 kHz cutoff frequency, you apply the q::lowpass filter over the result of the delay: q::lowpass _lp{1_kHz, 44100}; then insert the filter where it is needed in the processing loop: // Add the signal s, and the delayed, low-pass filtered signal auto _y = s + _lp(_delay()); Let us move on to a more elaborate example. How about a fully functional, bandwidth limited square wave synthesizer with ADSR envelope that controls an amplifier and a resonant filter and control the note-on and note-off using MIDI? Sounds good? This example is complete and self-contained in one .cpp file, kept as simple as possible to highlight the ease-of-use. The full example can be found here: example/square_synth.cpp. In order to run this example, you will need a MIDI input device connected to your system, preferrably a keyboard. Make sure you have at least one installed. If you do not have a physical MIDI input device, you can install one of the MIDI onscreen keyboards. For example, MidiKeys is a small application for MacOS that presents a MIDI keyboard onscreen. Here’s a short video clip: After building the program, make sure you have a MIDI keyboard connected before starting the application. At startup, the app will present you with a list of available MIDI hardware and will ask you what you want to use. Example: ================================================================================ Available MIDI Devices (ID : \"Name\" inputs/outputs): 0 : \"Quantum 2626\" 1/0 1 : \"Code 61 USB MIDI\" 1/0 2 : \"Code 61 MIDI DIN\" 1/0 3 : \"Code 61 Mackie/HUI\" 1/0 4 : \"Code 61 Editor\" 1/0 5 : \"Quantum 2626\" 0/1 6 : \"Code 61 USB MIDI\" 0/1 7 : \"Code 61 MIDI DIN\" 0/1 8 : \"Code 61 Mackie/HUI\" 0/1 9 : \"Code 61 Editor\" 0/1 ================================================================================ Choose MIDI Device ID: 1 And then a list of audio devices to choose from. Example: ================================================================================ Available Audio Devices (ID : \"Name\" inputs/outputs): 1 : \"MacBook Air Microphone\" 1/0 2 : \"MacBook Air Speakers\" 0/2 3 : \"Quantum 2626\" 26/26 ================================================================================ Choose Audio Device ID: 3 Take note that the demo is a console application. The Q library does not have a GUI, for good reason! We want to keep it as simple as possible. The GUI is taken cared of by other libraries (e.g. Elements). After choosing the MIDI and Audio driver, the synth is playable. The synth is monophonic and responds to velocity only, for simplicity. There are more demo applications in the example directory. After this quick tutorial, feel free to explore. Here’s the actual synthesizer with the processing loop: struct my_square_synth : q::audio_stream { my_square_synth(q::adsr_envelope_gen::config env_cfg, int device_id) : audio_stream(q::audio_device::get(device_id), 0, 2) , env(env_cfg, this->sampling_rate()) , filter(0.5, 0.8) {} void process(out_channels const& out) { auto left = out[0]; auto right = out[1]; for (auto frame : out.frames()) { // Generate the ADSR envelope auto env_ = env() * velocity; // Set the filter frequency filter.cutoff(env_); // Synthesize the square wave auto val = q::square(phase++); // Apply the envelope (amplifier and filter) with soft clip val = clip(filter(val) * env_); // Output right[frame] = left[frame] = val; } } q::phase_iterator phase; // The phase iterator q::adsr_envelope_gen env; // The envelope generator q::reso_filter filter; // The resonant filter q::soft_clip clip; // Soft clip float velocity; // Note-on velocity }; Our synth, a subclass of q::audio_stream, sets up buffers for the input and output audio streams and presents those to our processing loop (the process function above). In this example, we setup an audio stream with the selected device, no inputs and two (stereo) outputs: audio_stream(q::audio_device::get(device_id), 0, 2) Behind the scenes, there’s a lot going on here, actually. But you will notice that emphasis is given to making the library very readable, easy to understand and follow, by breaking down complex tasks into smaller manageable tasks and using function composition at progressively higher levels, while maintaining simplicity and clarity of intent. The synthesizer above is composed of smaller building blocks: fine grained C++ function objects. For example, here’s the square wave oscillator (bandwidth limited using poly_blep). For now, we will skim over details such as the adsr_envelope_gen, phase, and phase_iterator, and this thing called poly_blep. The important point, exemplified here, is that we want to keep our building blocks as simple and minimal as possible. We will cover these in greater detail later. The astute reader may notice that our square_osc class does not even have state! struct square_osc { constexpr float operator()(phase p, phase dt) const { constexpr auto middle = phase::middle(); auto r = p < middle ? 1.0f : -1.0f; // Correct rising discontinuity r += poly_blep(p, dt); // Correct falling discontinuity r -= poly_blep(p + middle, dt); return r; } constexpr float operator()(phase_iterator i) const { return (*this)(i._phase, i._incr); } }; constexpr auto square = square_osc{}; Yeah, that’s the complete oscillator. That’s all there is to it! The modern C++ savvy programmer will immediately notice the use of constexpr, applied judiciously all throughout the library. Such modern C++ facilities allow the compiler to generate extremely efficient code, even those that are generated at compile time. That means, for this example, that one can build an oscillator at compile time if needed, perhaps with constant wavetable results stored in read-only memory. The midi_processor takes care of MIDI events. Your application will have its own MIDI processor that deals with MIDI events that you are interested in. For this simple example, we simply want to process note-on and note-off events. On note-on events, our MIDI processor sets `my_square_synth’s note frequency and velocity and triggers its envelope for attack. On note-off events, our MIDI processor initiates the envelope’s release. struct my_midi_processor : midi::processor { using midi::processor::operator(); my_midi_processor(my_square_synth& synth) : _synth(synth) {} void operator()(midi::note_on msg, std::size_t time) { _key = msg.key(); auto freq = midi::note_frequency(_key); _synth.phase.set(freq, _synth.sampling_rate()); _synth.env.attack(); _synth.velocity = float(msg.velocity()) / 128; } void operator()(midi::note_off msg, std::size_t time) { if (msg.key() == _key) _synth.env.release(); } std::uint8_t _key; my_square_synth& _synth; }; In the main function, we instantiate my_square_synth and my_midi_processor. The synth constructor, in case you haven’t noticed yet, requires an envelope configuration (envelope::config). Here, we provide our configuration. Take note that in this example, the envelope parameters are constant, for the sake of simplicity, but you can definitely have these controllable by the user by writing your own MIDI processor that deals with MIDI control change messages. Again, take note of the abundant use of user-defined literals for units such as duration (e.g. 100_ms) and level (e.g. -12_dB). auto env_cfg = q::envelope::config { 100_ms // attack rate , 1_s // decay rate , -12_dB // sustain level , 5_s // sustain rate , 1_s // release rate }; my_square_synth synth{ env_cfg }; Then, we create my_midi_processor, giving it a reference to my_square_synth. We’ll also need a midi_input_stream that receives the actual incoming MIDI messages from the chosen hardware. q::midi_input_stream stream; my_midi_processor proc{ synth }; Now we’re all set. We start the synth and enter a loop that exits when the user presses ctrl-c (in which case the running flag becomes false). In the loop, we give our MIDI processor a chance to process incoming MIDI events as they arrive from the MIDI stream: synth.start(); while (running) stream.process(proc); synth.stop(); Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Quick Start","component":"q","version":"v1.0_beta","name":"quick_start","url":"/q/v1.0_beta/quick_start.html","titles":[{"text":"Hello, World","hash":"_hello_world","id":1},{"text":"The DSP Code","hash":"_the_dsp_code","id":2},{"text":"Notes:","hash":"_notes","id":3},{"text":"Hello, Universe","hash":"_hello_universe","id":4},{"text":"The Synthesizer","hash":"_the_synthesizer","id":5},{"text":"The Oscillator","hash":"_the_oscillator","id":6},{"text":"Processing MIDI","hash":"_processing_midi","id":7},{"text":"The Main Function","hash":"_the_main_function","id":8}]},"73":{"id":73,"text":"Here are the basic requirements and dependencies that you need to satisfy in order to use the library: A C++20 compiler git CMake 3.5.1 or higher Additionally, the following libraries are dragged as submodules: The Cycfi infra library portaudio Audio I/O library. portmidi MIDI I/O library. Q currently supports the MacOS, Windows and Linux. In the Mac, we support both XCode. Q is tested with XCode 10 and XCode 11. In Windows, we support Windows 10 with Visual Studio 2022. In Linux, we support both Clang and gcc. Get the latest version with a C++20 compiler. The CLion IDE is supported on all platforms. Clone the Q DSP library and its submodules: git clone --recurse-submodules https://github.com/cycfi/Q.git Make sure you have CMake 3.5.1 or higher. Follow the installation procedure for your platform. There are multiple ways to generate a project file using CMake depending on your platform and desired IDE, but here are some examples for MacOS 10.14, Windows 10 and, and Ubuntu 16.04: Using XCode: CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"Xcode\" ../ If successful, cmake will generate an XCode project in the build directory. Using Visual Studio 2022 CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"Visual Studio 17 2022\" ../ If successful, cmake will generate an Visual Studio solution project in the build directory. Using dpkg packaging system, stock g++ compiler and CodeBlocks. Install portaudio dependencies: sudo apt-get install libasound-dev CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"CodeBlocks - Unix Makefiles\" ../ If successful, cmake will generate a CodeBlocks project in the build directory. Build the project generated by cmake. Try running the tests and examples. If you intend to run the executables directly from the command line, make sure to change the directory to the same level where the audio_files is (e.g. 1 folder up on XCode builds). Some tests and examples may require audio clips that are found in this folder. To make sure everything is OK, try running the sin_osc.cpp example. Make sure your system’s default audio device is set up and ready to play audio. The sin_osc.cpp program should play a 5 second 440 Hz sine wave. You might also want to try running the list_devices.cpp example that prints out all detected audio and MIDI devices. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Setup and Installation","component":"q","version":"v1.0_beta","name":"setup","url":"/q/v1.0_beta/setup.html","titles":[{"text":"Requirements","hash":"_requirements","id":1},{"text":"C++20","hash":"_c20","id":2},{"text":"Git","hash":"_git","id":3},{"text":"CMake","hash":"_cmake","id":4},{"text":"Generating the Project using CMake","hash":"_generating_the_project_using_cmake","id":5},{"text":"MacOS","hash":"_macos","id":6},{"text":"Windows","hash":"_windows","id":7},{"text":"Linux","hash":"_linux","id":8},{"text":"Build and Test","hash":"_build_and_test","id":9}]},"74":{"id":74,"text":"The biquad filter is a versatile and effective audio processing tool. The biquad filter is a second-order filter IIR (Infinite Impulse Response) filter, particularly useful for their simplicity and efficiency in implementation. They can be utilized for a variety of filtering operations. The biquad class and its supporting infrastructure are based on Robert Bristow Johnson’s Audio-EQ Cookbook, implemented using modern C++. The biquad serves as the base class for various forms of filters, including: Low pass filter High pass filter Band pass filter All pass filter Notch filter Peaking filter Low shelf filter High shelf filter #include The Q DSP library’s API implementation hides the majority of the details behind the main biquad struct, with the exception of the copy constructor and the function call operator, which accepts a single s (input sample) parameter and returns the processed value. struct biquad { biquad(biquad const&) = default; float operator()(float s); }; s Input sample. f, a, b Objects of type biquad. Expression Semantics biquad(f) Copy construct from f. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type f(s) Process the input sample s and return the filtered result. float lowpass highpass bandpass_csg bandpass_cpg allpass notch peaking lowshelf highshelf","title":"Biquad Filters","component":"q","version":"v1.0_beta","name":"biquad","url":"/q/v1.0_beta/reference/biquad.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"biquad","hash":"_biquad","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Copy Constructor and Assignment","hash":"_copy_constructor_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8},{"text":"Derived Classes","hash":"_derived_classes","id":9}]},"75":{"id":75,"text":"Audio dynamic range processing DSP refers to the manipulation of an audio signal’s dynamic range. The dynamic range of an audio signal is the difference between its loudest and quietest components. Compression, Expansion, Limiting, and Gating are a few common types of dynamic range processing used in audio DSP. Such processing can enhance sound quality, minimize or eliminate noise, and create creative effects. The dynamic range processors in the Q DSP library are unique in that they do not process audio waveform samples directly. Instead, they operate on the envelope of the audio signal, represented as decibel, perform computations in the logarithmic domain, and return a processed envelope, also represented as decibel. As an example, here’s the processing code for the compressor: decibel compressor::operator()(decibel env) const { if (env <= _threshold) return 0_dB; return _slope * (_threshold - env); } This is a hard knee compressor: a type of compressor in which the compression ratio changes abruptly when the input signal exceeds the threshold level, known as the knee point. Both hard knee and soft knee compressors are supported by the Q DSP library. The code accepts an envelope input, env, in decibels and outputs a compressed envelope also in decibels. Processing is done in the logarithmic domain, where addition of two values is equivalent to multiplying their corresponding linear values, and multiplication of two values is equivalent to raising their corresponding linear values to a power. The envelope follower, which is responsible for generating the input envelope for the compressor, is implemented outside of the compressor class. The objective is separation of concerns and the flexibility to use various envelope followers. Compared to their linear counterparts, performing computations in the logarithmic domain is simpler, more intuitive, and makes the code easier to understand while maintaining the same level of efficiency. The compressor example above and all dynamic range processors in the Q DSP library are essentially envelope processors. They receive envelopes, process envelopes, and return envelopes. Since envelope processors operate on the envelope, perform computations in the logarithmic domain, and return a processed envelope, multiple envelope processors can be cascaded. For instance, you can use a single envelope follower and apply the derived envelope to an expander and then pass the result to a compressor, like in the diagram below: A specific use-case for cascading an expander and a compressor, like in the example above, is when you want to use the expander as a noise gate, with soft, non-abrupt gating, set at a threshold just above the noise floor. Then, setting the threshold of the compressor to a high value to even out the dynamic range. The compressor and expander in this case work on different regions of the full dynamic range. But there are also useful cases where the overlap of dynamic ranges the processors are working on is advantageous. The compressor-limiter is a good example. Likewise, multiple compressors with variable thresholds and ratios are another example. By cascading multiple dynamic range processors, we can design efficient multi-function processors like the compressor-limiter with gate (transfer response graph at the right).","title":"Dynamic","component":"q","version":"v1.0_beta","name":"dynamic","url":"/q/v1.0_beta/reference/dynamic.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Example","hash":"_example","id":2},{"text":"Key Points","hash":"_key_points","id":3},{"text":"Cascading","hash":"_cascading","id":4}]},"76":{"id":76,"text":"This section deals with envelope extraction from signals. In audio DSP, an envelope refers to the time-varying changes of a signal. It essentially represents the \"shape\" of the signal in terms of its moment-to-moment changes. Extracting an envelope from a signal is particularly important because they can be used for a variety of processing tasks, including controlling the perceived loudness of a signal, reducing noise, emphasizing particular elements of the signal, modulating amplitude, frequency, and other sound properties, to name a few. Envelopes are typically, but not always, related to amplitude changes, although it can sometimes be related to other parameters like pitch or frequency, phase, and filter cutoff, to name a few. This section will only cover amplitude envelope extraction. Figure 1. Output behavior of different types of envelope followers. The amplitude envelope can also be used to extract dynamic features from a sound. As an example, onset detection is a method for determining the beginning of each musical note. The most basic onset detection scheme involves analyzing the amplitude envelope and detecting sudden changes in amplitude that coincide with the start of each note. [1] The Q DSP library includes a variety of envelope extractors, ranging from the most basic peak envelope follower to the more precise, but computationally demanding, fast RMS envelope follower. Each has distinct strengths, characteristics, and tradeoffs that can be evaluated based on the application’s specific requirements. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License 1. An accurate onset detection mechanism that goes far beyond the aforementioned simple onset detection scheme is included in the Hz DSP library, an offshoot of the Q DSP library.","title":"Envelope","component":"q","version":"v1.0_beta","name":"envelope","url":"/q/v1.0_beta/reference/envelope.html","titles":[]},"77":{"id":77,"text":"q_io is the Audio and MIDI I/O layer that provides cross-platform audio and MIDI host connectivity. As stated in the Fundamentals section, the q_io layer is optional. The rest of the q_lib layer is usable without it. q_io is primarily used in the tests and examples, but can be easily replaced by other mechanisms in an application. Plugin libraries for DAWs (digital audio workstations), for example, have their own audio and MIDI I/O mechanisms. q_io was intended to be very minimal. The entire layer is comprised of a handful of classes. The diagram below depicts the data transfer between the various components, an application, and the host operating system. audio_device audio_device represents individual audio interfaces on the host platform. There are typically one or more audio devices available. Each device has a name, device identifier, and specific capabilities, including sample rate and the number of input and output channels supported. audio_stream audio_stream handles audio input and output to and from an audio device. Parameters such as sample rate, sample format, and buffer size are specified when opening the audio stream. Audio streams can be input only, output only, or both input and output. Data is transmitted asynchronously between an open audio stream and the application. audio_file audio_file is a set of small and lightweight classes for reading and writing WAV (Waveform Audio File Format) files. It offers a straightforward and intuitive interface for working with WAV audio data. midi_device midi_device is an abstraction which encapsulates the properties and functionality of a MIDI interface. Each MIDI device includes information such as its name, device identifier, and the number of inputs and outputs available. midi_input_stream The midi_input_stream class facilitates MIDI communication and data transmission of MIDI messages between a MIDI device and an application. The application processes audio, asynchronoously, via user provided process functions as documented in the Audio Stream Client Interface. The MIDI Processor is a user provided class that acts as an intermediary between the application and the MIDI stream, facilitating communication and data transmission of MIDI messages.","title":"Audio MIDI I/O","component":"q","version":"v1.0_beta","name":"q_io","url":"/q/v1.0_beta/reference/q_io.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Components and Data Flow","hash":"_components_and_data_flow","id":2}]},"78":{"id":78,"text":"Synthesizers are one of the most engaging parts of any DSP library, as they involve the actual creation of sounds. What makes synthesizers so engaging is the level of control they offer over sound creation. A synthesizer allows a user to shape and mold a sound by adjusting parameters such as waveform shape, frequency, amplitude, and filter settings. This level of control enables users to create expressive and unique sounds that can be used in a variety of contexts, ranging from music production to sound design for film and video games. The advancements in DSP technology have made synthesizers even more powerful and flexible. Users can now create sounds that were previously impossible to achieve with traditional analog synthesizers. The Q DSP library provides some common synthesisers such as sine-wave, square, pulse, triangle and saw-tooth, as well as various generators for sculpting the sound envelopes with controls for attack, decay, hold sustain and release. These are designed as moduler building blocks that are combined to form more complex synthesisers. Oscillator is a concept representation of an oscillator that generates periodic waveforms. Oscillators are function objects that take in a phase_iterator: an iterator over the phase. The output is typically a floating point value. namespace cycfi::q::concepts { template concept Oscillator = std::copy_constructible && std::assignable_from && std::default_initializable && requires(T o, T a, T b, phase_iterator pi) { o(pi); // Generate a periodic waveform given `{phase_iterator}`, `pi`. }; } o, a, b Instances of types that conform to Oscillator. pi Object of type phase_iterator. Expression Semantics Oscillator() Default construct an Oscillator. Oscillator(o) Copy construct from o. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type o(pi) Generate a periodic waveform given phase_iterator, pi. decltype(o(pi)) BasicOscillator is a refinement of the Oscillator concept. BasicOscillator is not bandwidth limited. This is is suitable in certain cases. Moreover, some oscillators are inherently bandwidth limited. namespace cycfi::q::concepts { template concept BasicOscillator = Oscillator && requires(T o, phase ph) { o(ph); // Generate a periodic waveform given `{phase}`, `pi`. }; } In addition to valid expressions for Oscillator, BasicOscillator allows these expressions. o Instance of a type that conforms to BasicOscillator. ph Object of type phase. Expression Semantics Return Type o(ph) Generate a periodic waveform given phase, ph. decltype(o(ph)) Waveforms with hard discontinuities such as sawtooth and square waves can generate harmonics that extend beyond the Nyquist frequency range or half the sampling rate. Oscillators may be bandwidth limited to ensure that the harmonics generated fall within the Nyquist frequency range to prevent aliasing, which causes unwanted spectral artifacts in the signal. BandwidthLimitedOscillator is a refinement of the Oscillator concept. These oscillators are bandwidth limited. namespace cycfi::q::concepts { template concept BandwidthLimitedOscillator = Oscillator && requires(T o, phase ph, phase dt) { o(ph, dt); // Generate a periodic waveform given `{phase}`, `pi` // and another `{phase}`, `dt` representing the delta // phase between two samples of the waveform (this is // equivalent to the `_step` member function of the // `{phase_iterator}`). (ph))` }; } In addition to valid expressions for Oscillator, BandwidthLimitedOscillator allows these expressions. o Instance of a type that conforms to BasicOscillator. ph, dt Object of type phase. Expression Semantics Return Type o(ph, dt) Generate a periodic waveform given phase, ph and another phase, dt representing the delta phase between two samples of the waveform (this is equivalent to the _step member function of the phase_iterator). decltype(o(ph)) Generator is a concept representation of a generator. Generators are function objects that take no function arguments and return an output that is typically a floating point value. Generators are typically non-periodic. Generators are useful for constructing complex signals, envelopes and tapers (also known as window functions). namespace cycfi::q::concepts { template concept Generator = requires(T v, T o, T a, T b, phase_iterator pi) { T(o); // Copy construct from `o`. a = b; // Assign `b` to `a`. v(); // Generate a signal. }; } g, a, b Instances of types that conform to Generator. Expression Semantics Generator(g) Copy construct from g. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type g() Generate a signal. decltype(g(pi)) Ramp is a concept representation of a generator that generates non-periodic signals from 0.0 to 1.0 or from 1.0 to 0.0. It is a refinement of the Generator concept. Ramp(s) are suitable for generating envelopes. A Ramp represents a segment of an envelope. Essentially, an envelope comprises two or more upward and downward `Ramp`s. namespace cycfi::q::concepts { template concept Ramp = Generator && requires(T v, duration w, float sps) { T(w, sps); // Construct a Ramp given duration, w, and sps. v.reset(); // Reset the Ramp to the start. v.config(w, sps); // Configure a Ramp given duration, w, and sps. }; } In addition to valid expressions for Generator, Ramp allows these expressions. r Instance of a type that conforms to Ramp. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics Ramp(w, sps) Construct a Ramp given duration, w, and sps. C++ brace initialization may also be used. Expression Semantics r.reset() Reset the Ramp to the start. v.config(w, sps) Configure a Ramp given duration, w, and sps.","title":"Oscillators","component":"q","version":"v1.0_beta","name":"synth","url":"/q/v1.0_beta/reference/synth.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Oscillator","hash":"_oscillator","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"BasicOscillator","hash":"_basicoscillator","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10},{"text":"Notation","hash":"_notation_2","id":11},{"text":"Function Call","hash":"_function_call_2","id":12},{"text":"BandwidthLimitedOscillator","hash":"_bandwidthlimitedoscillator","id":13},{"text":"Declaration","hash":"_declaration_3","id":14},{"text":"Expressions","hash":"_expressions_3","id":15},{"text":"Notation","hash":"_notation_3","id":16},{"text":"Function Call","hash":"_function_call_3","id":17},{"text":"Generator","hash":"_generator","id":18},{"text":"Declaration","hash":"_declaration_4","id":19},{"text":"Expressions","hash":"_expressions_4","id":20},{"text":"Notation","hash":"_notation_4","id":21},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_2","id":22},{"text":"Function Call","hash":"_function_call_4","id":23},{"text":"Ramp","hash":"_ramp","id":24},{"text":"Declaration","hash":"_declaration_5","id":25},{"text":"Expressions","hash":"_expressions_5","id":26},{"text":"Notation","hash":"_notation_5","id":27},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_3","id":28},{"text":"Mutators","hash":"_mutators","id":29}]},"79":{"id":79,"text":"The Q DSP library processes audio signals by applying various audio processors to sample inputs. These processors typically operate with floating-point input samples in the typical -1.0 to 1.0 range. However, the values are not restricted to sampled signals. For instance, signal envelopes are best represented as decibels processed in the logarithmic domain. Consequently, dynamic-range processors such as compressors and expanders accept decibel as input and return decibel as output. The Q DSP library is typeful and typesafe, which means that each data type is explicitly defined and enforced. This is crucial because it avoids the potentially catastrophic errors that could result from mismatching values of different types. For example, if all values were just raw floating point types, it would be possible to accidentally mix up the frequency and decibel values. Mistakenly interchanging frequency and decibel values could result in erroneous processing of the audio signal and will lead to undefined results. This document aims to provide comprehensive documentation of the fundamental data types used by the Q DSP library. These basic units are utilized consistently throughout the library and serve as the basis for quantifying specific parameters, such as decibels (dB) for signal level and hertz (Hz) for frequency. Unit is a concept representation of a physical unit. U Unit type. T Underlying arithmetic value type. v Arithmetic value. a Instance of a type that conforms to Unit. b Object with the same unit_type as a. A Type of object a. B Type of object b. The arithmetic value concept is documented in Basic Concepts and declared in this C++ concept as: namespace cycfi::q::concepts { template concept Arithmetic = std::integral || std::floating_point; } Expression Semantics Type U::value_type Get the underlying arithmetic value type. T U::unit_type Get the unique unit type. Each Unit type has its own unique unit type to distinguish from differnt Unit types. unspecified Compatible unit types A and B are allowed for certain expressions as defined below. These types conform to the SameUnit concept declared below: namespace cycfi::q::concepts { template concept SameUnit = std::same_as; } Basically, the declaration states that unit types A and B are the same if they have the same unit_type. Expression Semantics U(v) Construct a Unit from an arithmetic value v. U(b) Copy construct from b. a = b Assign b, to a. C++ brace initialization may also be used. Expression Semantics Return Type a.rep Direct access to the underlying arithmetic value representation. T Expression Semantics Return Type a == b Equality. bool a == v Equality with an arithmetic value. bool v == b Equality with an arithmetic value. bool a != b Non-Equality. bool a != v Non-Equality with an arithmetic value. bool v != b Non-Equality with aan arithmetic value. bool a b Greater than. bool a > v Greater than with an arithmetic value. bool v > b Greater than with an arithmetic value. bool a >= b Greater than equal. bool a >= v Greater than equal with an arithmetic value. bool v >= b Greater than equal with an arithmetic value. bool Expression Semantics Return Type +a Positive. Unit -a Negative. Unit a += b Add assign. Unit& a += v Add assign with an arithmetic value. Unit& a -= b Subtract assign. Unit& a -= v Subtract assign with an arithmetic value. Unit& a *= v Multiply assign with an arithmetic value. Unit& a /= v Divide assign with an arithmetic value. Unit& a + b Addition. Unit a + v Addition with an arithmetic value. Unit v + b Addition with an arithmetic value. Unit a - b Subtraction. Unit a - v Subtraction with an arithmetic value. Unit v - b Subtraction with an arithmetic value. Unit a * v Multiplication with an arithmetic value. Unit v * b Multiplication with an arithmetic value. Unit a / b Division. T a / v Division with an arithmetic value. Unit On binary operations a + b and a - b, where a and b conform to the SameUnit concept (see above), the resuling type will be whichever has the value_type of decltype(a.ref + b.rep), else if both operands are promoted, then whichever has the larger value_type will be chosen. For example, if a.rep is double and b.rep is int, the result will be the unit type of a. frequency duration period phase decibel interval","title":"Units","component":"q","version":"v1.0_beta","name":"units","url":"/q/v1.0_beta/reference/units.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Unit","hash":"_unit","id":2},{"text":"Expressions","hash":"_expressions","id":3},{"text":"Notation","hash":"_notation","id":4},{"text":"Arithmetic Concept","hash":"_arithmetic_concept","id":5},{"text":"Type Definitions","hash":"_type_definitions","id":6},{"text":"SameUnit Concept","hash":"_sameunit_concept","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Access","hash":"_access","id":9},{"text":"Comparison","hash":"_comparison","id":10},{"text":"Arithmetic","hash":"_arithmetic","id":11},{"text":"Unit Promotion","hash":"_unit_promotion","id":12},{"text":"Models","hash":"_models","id":13}]},"80":{"id":80,"text":"All pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the allpass class. #include struct allpass : biquad { allpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, allpass allows these expressions. ap Object of type allpass. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics allpass(f, sps [, q]) Construct an allpass filter from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics ap.config(f, sps [, q]) Configure an allpass from f, sps and optional q (defaults to 0.707).","title":"All Pass Filter","component":"q","version":"v1.0_beta","name":"allpass","url":"/q/v1.0_beta/reference/biquad/allpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"81":{"id":81,"text":"Band pass second-order IIR (Infinite Impulse Response) filter with constant 0 dB peak gain. This filter is embodied by the allpass class. #include struct bw (1) { double val; // in octaves }; struct bandpass_cpg : biquad { bandpass_cpg(frequency f, float sps, bw _bw); bandpass_cpg(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, bandpass_cpg allows these expressions. bf Object of type bandpass_cpg. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics bandpass_cpg(f, sps [, q]) Construct a bandpass_cpg filter from f, sps and optional q (defaults to 0.707). bandpass_cpg(f, sps, bw{b}) Construct a bandpass_cpg filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(f, sps) Configure a bandpass_cpg filter from f, sps. q defaults to 0.707 bf.config(f, sps [, q]) Configure a bandpass_cpg filter from f, sps and optional q (defaults to 0.707). bf.config(f, sps, bw{b}) Configure a bandpass_cpg filter from f, sps and b (bandwidth).","title":"Band Pass Filter; Constant Peak Gain","component":"q","version":"v1.0_beta","name":"bandpass_cpg","url":"/q/v1.0_beta/reference/biquad/bandpass_cpg.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"82":{"id":82,"text":"Band pass second-order IIR (Infinite Impulse Response) filter with constant skirt gain, peak gain = Q. This filter is embodied by the bandpass_csg class. #include struct bw (1) { double val; // in octaves }; struct bandpass_csg : biquad { bandpass_csg(frequency f, float sps, bw _bw); bandpass_csg(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, bandpass_csg allows these expressions. bf Object of type bandpass_csg. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics bandpass_csg(f, sps [, q]) Construct a bandpass_csg filter from f, sps and optional q (defaults to 0.707). bandpass_csg(f, sps, bw{b}) Construct a bandpass_csg filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(f, sps [, q]) Configure a bandpass_csg filter from f, sps and optional q (defaults to 0.707). bf.config(f, sps, bw{b}) Configure a bandpass_csg filter from f, sps and b (bandwidth).","title":"Band Pass Filter; Constant Skirt Gain","component":"q","version":"v1.0_beta","name":"bandpass_csg","url":"/q/v1.0_beta/reference/biquad/bandpass_csg.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"83":{"id":83,"text":"High pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the highpass class. #include struct highpass : biquad { highpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, highpass allows these expressions. hp Object of type highpass. f Object of type frequency. sps Floating point value representing samples per second. `q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics highpass(f, sps [, q]) Construct a highpass filter from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics hp.config(f, sps [, q]) Configure a highpass from f, sps and optional q (defaults to 0.707).","title":"High Pass Filter","component":"q","version":"v1.0_beta","name":"highpass","url":"/q/v1.0_beta/reference/biquad/highpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"84":{"id":84,"text":"High shelf second-order IIR (Infinite Impulse Response) filter. All frequencies above the shelving frequency are either boosted or attenuated by the specified gain in decibels. This filter is embodied by the highshelf class. #include struct highshelf : biquad { highshelf(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, double q = 0.707); }; In addition to valid expressions for biquad, highshelf allows these expressions. hs Object of type highshelf. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics highshelf(g, f, sps [, q]) Construct a highshelf from g, f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics hs.config(g, f, sps [, q]) Configure a highshelf from g, f, sps and optional q (defaults to 0.707).","title":"High Shelf Filter","component":"q","version":"v1.0_beta","name":"highshelf","url":"/q/v1.0_beta/reference/biquad/highshelf.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"85":{"id":85,"text":"Low pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the lowpass class. #include struct lowpass : biquad { lowpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, lowpass allows these expressions. lp Object of type lowpass. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics lowpass(f, sps [, q]) Construct a lowpass from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics lp.config(f, sps [, q]) Configure a lowpass from f, sps and optional q (defaults to 0.707).","title":"Low Pass Filter","component":"q","version":"v1.0_beta","name":"lowpass","url":"/q/v1.0_beta/reference/biquad/lowpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"86":{"id":86,"text":"Low shelf second-order IIR (Infinite Impulse Response) filter. All frequencies below the shelving frequency are either boosted or attenuated by the specified gain in decibels. This filter is embodied by the lowshelf class. #include struct lowshelf : biquad { lowshelf(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, double q = 0.707); }; In addition to valid expressions for biquad, lowshelf allows these expressions. ls Object of type lowshelf. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics lowshelf(g, f, sps [, q]) Construct a lowshelf from g, f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics ls.config(g, f, sps [, q]) Configure a lowshelf from g, f, sps and optional q (defaults to 0.707).","title":"Low Shelf Filter","component":"q","version":"v1.0_beta","name":"lowshelf","url":"/q/v1.0_beta/reference/biquad/lowshelf.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"87":{"id":87,"text":"Notch second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the notch class. #include struct bw (1) { double val; // in octaves }; struct notch : biquad { notch(frequency f, float sps, bw _bw); notch(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, notch allows these expressions. nf Object of type notch. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics notch(f, sps [, q]) Construct a notch filter from f, sps and optional q (defaults to 0.707). notch(f, sps, bw{b}) Construct a notch filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics `nf.config(f, sps [, q]) Configure a notch filter from f, sps and optional q (defaults to 0.707). nf.config(f, sps, bw{b}) Configure a notch filter from f, sps and b (bandwidth).","title":"Notch Filter","component":"q","version":"v1.0_beta","name":"notch","url":"/q/v1.0_beta/reference/biquad/notch.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"88":{"id":88,"text":"Peaking second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the peaking class. #include struct bw (1) { double val; // in octaves }; struct peaking : biquad { peaking(double db_gain, frequency f, float sps, bw _bw); peaking(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, bw _bw); void config(double db_gain, frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, peaking allows these expressions. bf Object of type peaking. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics peaking(g, f, sps [, q]) Construct a peaking filter from g, f, sps and optional q (defaults to 0.707). peaking(g, f, sps, bw{b}) Construct a peaking filter from g, f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(g, f, sps [, q]) Configure a peaking filter from g, f, sps and optional q (defaults to 0.707). bf.config(g, f, sps, bw{b}) Configure a peaking filter from g, f, sps and b (bandwidth).","title":"Peaking Filter","component":"q","version":"v1.0_beta","name":"peaking","url":"/q/v1.0_beta/reference/biquad/peaking.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"89":{"id":89,"text":"The AGC, or automatic gain control, compares the envelope, env, to an external reference, ref, and increases or decreases the gain to maintain a constant output level. A class named agc implements AGC. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The agc is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. agc is a feedforward type AGC.\" In contrast to feedback AGCs, feedforward AGCs derive their control signal only from the input signal and an external reference set-point. #include struct agc { agc(decibel max); decibel operator()(decibel env, decibel ref) const; void max(decibel max_); decibel max() const; }; g, a, b Objects of type agc max, ref Objects of type decibel Expression Semantics agc(max) Construct an agc from max (maximum) gain. agc(g) Copy construct from agc g. a = b Assign b to a. C++ brace initialization may also be used. As previously stated, the agc compares the envelope, env, to an external reference, ref, and adjusts the gain accordingly to maintain a constant output level. However, there is a maximum gain that can be applied when the signal falls below the reference. The max constructor parameter specified this \"maximum\" gain. Expression Semantics Return Type g(env, ref) Process the input envelope env by increasing or decreasing the gain if env goes above, or falls below ref to maintain a constant output level. decibel The output is the adjusted gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(g(env, ref)); (1) auto out = signal * gain; (2) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by agc and converted to float. 2 The signal multiplied by gain. Expression Semantics Return Type g.max(max) Set the agc maximum gain. void Expression Semantics Return Type g.max() Get the agc maximum gain. float","title":"AGC","component":"q","version":"v1.0_beta","name":"agc","url":"/q/v1.0_beta/reference/dynamic/agc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"90":{"id":90,"text":"The compressor dynamically modulates the gain when the signal envelope rises above a specified threshold. The compressor reduces the level of high-level signals (signals above the threshold) while leaving low-level signals unchanged. The compressor is implemented by a class named compressor. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The compressor can be utilized as a limiter by setting its threshold to the desired limit level and the ratio to a high value (e.g. 10:1 or greater). The limiter prevents the signal from exceeding a certain threshold level. When the input signal exceeds the threshold, the compressor squashes the output level. For this to be effective, you will need to use an envelope follower with fast attack time to ensure that the limiting action is instantaneous, preventing transient peaks from exceeding the threshold level. The compressor is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. compressor is a hard knee compressor: a type of compressor in which the compression ratio changes abruptly when the input signal exceeds the threshold level, known as the knee point. Both hard knee and soft knee compressors are supported by the Q DSP library. #include struct compressor { compressor(decibel threshold, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void ratio(float ratio); decibel threshold() const; float ratio() const; }; comp, a, b Objects of type compressor t, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics compressor(t, r) Construct a compressor from t (threshold) and r (ratio). compressor(comp) Copy construct from compressor comp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"n:1\" notation for compressors, the ratio parameter is 1/n, thereby the ratio for compressors is normally from 0.0…​1.0. For example, a 4:1 compression is 1/4 or 0.25. Signal rising above the threshold is attenuated, compressing the signal. For every dB above the threshold, t, the signal is attenuated by n dB. For example, with a ratio of 4:1 (0.25), 1dB above the threshold is attenuated by 4dB. Expression Semantics Return Type comp(env) Process the input envelope env and return the compressed result. decibel The output is the compressed gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(comp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by comp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Typically, you add some makeup gain after compression to compensate for the gain reduction. Expression Semantics Return Type comp.threshold(t) Set the compressor threshold. void comp.ratio(r) Set the compressor ratio. void Expression Semantics Return Type comp.threshold() Get the compressor threshold. decibel comp.ratio() Get the compressor ratio. float","title":"Compressor","component":"q","version":"v1.0_beta","name":"compressor","url":"/q/v1.0_beta/reference/dynamic/compressor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"91":{"id":91,"text":"The expander is the inverse of the compressor. The expander dynamically modulates the gain when the signal falls below the threshold, attenuating the signal. The expander is used to increase the dynamic range of an audio signal by reducing the level of low-level signals (signals below the threshold) while leaving high-level signals unchanged, in contrast to a compressor, which reduces the level of high-level signals while leaving low-level signals unchanged. A certain type of expander, called the downward expander, is implemented by a class named expander. The expander can be utilized as a noise gate by setting the threshold to allow only audio signals above the noise floor to pass through. When the audio level falls below the threshold, the expander effectively gates out any low-level noise by reducing the audio signal level down to zero. The result can range from a hard and sudden cutoff to a soft and gradual reduction of signals below the threshold, depending on the desired ratio. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The expander is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. expander is a downward expander. This type of expander gradually decreases the level of the audio signal below the threshold. #include struct expander { expander(decibel threshold, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void ratio(float ratio); decibel threshold() const; float ratio() const; }; exp, a, b Objects of type expander t, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics expander(t, r) Construct a expander from t (threshold), w (width), and r (ratio). expander(exp) Copy construct from expander exp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"1:n\" notation for expanders, the ratio parameter is n, thereby the ratio for expanders is normally from 0.0…​inf. (e.g. 1:4 expansion is 4). A ratio of 1:inf is a hard gate where no signal passes below the threshold. For every dB below the threshold, the signal is attenuated by n dB. For example, with a ratio of 4:1 (4), 1dB below the threshold is attenuated by 4dB. Expression Semantics Return Type exp(env) Process the input envelope env and return the expanded result. decibel The output is the expanded gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(exp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by exp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Expression Semantics Return Type exp.threshold(t) Set the expander threshold. void exp.ratio(r) Set the expander ratio. void Expression Semantics Return Type exp.threshold() Get the expander threshold. decibel exp.ratio() Get the expander ratio. float","title":"Expander","component":"q","version":"v1.0_beta","name":"expander","url":"/q/v1.0_beta/reference/dynamic/expander.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"92":{"id":92,"text":"The compressor dynamically modulates the gain when the signal envelope rises above a specified threshold. The compressor reduces the level of high-level signals (signals above the threshold) while leaving low-level signals unchanged. A type of compressor known as the soft knee compressor is implemented by a class named soft_knee_compressor. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The soft_knee_compressor is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. soft_knee_compressor is a type of compressor that employs a gradual compression ratio transition. In a soft knee compressor, the compression ratio gradually increases as the input signal level approaches the threshold level, rather than immediately switching to the ratio at the threshold. This produces a smoother and more natural-sounding compression effect. Soft knee compressors are used when a transparent and subtle compression effect is desired. Both hard knee and soft knee compressors are supported by the Q DSP library. #include struct soft_knee_compressor { soft_knee_compressor(decibel threshold, decibel width, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void width(decibel val); void ratio(float ratio); decibel threshold() const; decibel width() const; float ratio() const; }; comp, a, b Objects of type soft_knee_compressor t, w, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics soft_knee_compressor(t, w, r) Construct a soft_knee_compressor from t (threshold), w (width), and r (ratio). soft_knee_compressor(comp) Copy construct from soft_knee_compressor comp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"n:1\" notation for compressors, the ratio parameter is 1/n, thereby the ratio for compressors is normally from 0.0…​1.0. For example, a 4:1 compression is 1/4 or 0.25. Signal rising above the threshold is attenuated, compressing the signal. For every dB above the threshold, t, the signal is attenuated by n dB. For example, with a ratio of 4:1 (0.25), 1dB above the threshold is attenuated by 4dB. Expression Semantics Return Type comp(env) Process the input envelope env and return the compressed result. decibel The output is the compressed gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(comp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by comp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Typically, you add some makeup gain after compression to compensate for the gain reduction. Expression Semantics Return Type comp.threshold(t) Set the soft_knee_compressor threshold. void comp.width(w) Set the soft_knee_compressor width. void comp.ratio(r) Set the soft_knee_compressor ratio. void Expression Semantics Return Type comp.threshold() Get the soft_knee_compressor threshold. decibel comp.width() Get the soft_knee_compressor width. decibel comp.ratio() Get the soft_knee_compressor ratio. float","title":"Soft Knee Compressor","component":"q","version":"v1.0_beta","name":"soft_knee_compressor","url":"/q/v1.0_beta/reference/dynamic/soft_knee_compressor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"93":{"id":93,"text":"AR Envelope Follower, where \"AR\" stands for Attack-Release, is similar to the Peak Envelope Follower but allows you to specify the attack duration. During the attack phase of an audio signal, the AR envelope follower attempts to follow the signal but is constrained by the attack duration. A longer attack period gives a softer response, exponentially increasing. When the signal level drops below the peak, the follower gradually releases the peak level with an exponential decay. The AR envelope follower models the behavior of two resistors, one for attack, and one for release, each connected in series with an ideal diode —with no voltage drop—, tied together and connected to a capacitor. During attacks, the capacitor charges through the attack resistor, exponentially increasing. The capacitor discharges through the release resistor as the audio signal falls below the peak charge, causing the output voltage to progressively decay with an exponential curve. Figure 1. AR envelope follower response The plot in Figure 1 depicts the response of the AR envelope follower, which was obtained by picking the guitar’s low-E string and using a 2-milliseconds attack duration and 2-second release duration (envelope: magenta, signal: blue, absolute value of the signal: dark blue). It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The AR envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. Like the Peak Envelope Follower, the AR Peak Detector is susceptible to having ripples in the envelope with the short release durations. See Envelope Ripples for details. #include struct ar_envelope_follower { ar_envelope_follower( duration attack , duration release , float sps ); float operator()(float s); float operator()() const; ar_envelope_follower& operator=(float y); void config(duration attack, duration release, float sps); void attack(float attack_, float sps); void release(float release_, float sps); }; env, a, b Objects of type ar_envelope_follower atk, rel Objects of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. y Floating point value from 0.0 to 1.0. Expression Semantics ar_envelope_follower(atk, rel, sps) Construct a ar_envelope_follower given atk (attack duration), rel (release duration) and sps (samples per second). ar_envelope_follower(env) Copy construct from ar_envelope_follower env. a = b Assign b to a. a = y Reset the latest held value of the ar_envelope_follower to y. C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the ar_envelope_follower float Expression Semantics Return Type env.config(atk, rel, sps) Set the attack duration given atk (attack duration), rel (release duration) and sps (samples per second). void env.attack(atk, sps) Set the attack duration given atk (attack duration) and sps (samples per second) void env.release(rel, sps) Set the release duration given rel (release duration) and sps (samples per second) void","title":"AR Envelope Follower","component":"q","version":"v1.0_beta","name":"ar_envelope_follower","url":"/q/v1.0_beta/reference/envelope/ar_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8},{"text":"Mutators","hash":"_mutators","id":9}]},"94":{"id":94,"text":"The Fast Averaging Envelope Follower is a variation of the Fast Envelope Follower. It is a simple composite class that contains a fast envelope follower member and a moving average filter member to smooth out the staircase ripples. One advantage of a moving average filter over a standard low-pass filter is that its output has less distortion of the envelope’s shape due to its linear phase response, which means it does not cause phase shifts, keeping the signal’s time-domain shape substantially intact. The plot in Figure 1 below shows the fast averaging envelope follower’s response (envelope: pink, signal: blue, absolute value of the signal: dark blue). Figure 1. Fast averaging envelope follower response The plot in Figure 2 below shows the plain and Fast averaging envelope follower’s response. The fast envelope follower’s staircase-like envelope is effectively smoothed out using a moving average filter with the same duration as the hold parameter. The moving average filter transforms the hard staircase edges into soft ramps. #include template struct basic_fast_ave_envelope_follower { basic_fast_ave_envelope_follower(duration hold, float sps); float operator()(float s); float operator()() const; }; using fast_ave_envelope_follower = basic_fast_ave_envelope_follower; basic_fast_ave_envelope_follower essentially follows the same API as Fast Envelope Follower. basic_fast_ave_envelope_follower is a template class parameterized by div, which must be >= 1. div specifies the minimum duration required for the hold parameter. The hold duration should be equal to or slightly longer than 1/div multiplied by the period of the lowest frequency of the signal we wish to track. For example, if the lowest frequency we wish to track is 440 Hz, and div = 2, then the hold parameter should be greater than 1.13 ms. fast_ave_envelope_follower is an alias for basic_fast_ave_envelope_follower. In general, this is all you need to use, unless you want finer granularity. The higher the div is, the finer the granularity possible. Again, all of these comes at the cost of additional computing complexity. env_t A basic_fast_ave_envelope_follower type. env, a, b Objects of type basic_fast_ave_envelope_follower hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_ave_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_ave_envelope_follower env. a = b Assign b to a. C++ brace initialization may also be used. env_t is just a shortcut notation for any type or alias to a template instantiation of basic_fast_ave_envelope_follower. Example: using my_env_t = basic_fast_ave_envelope_follower; Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_ave_envelope_follower float","title":"Fast Averaging Envelope Follower","component":"q","version":"v1.0_beta","name":"fast_ave_envelope_follower","url":"/q/v1.0_beta/reference/envelope/fast_ave_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8}]},"95":{"id":95,"text":"The Fast Envelope Follower is the software implementation of a unique envelope detector that feature fast response and low ripple. It is based on the hardware article titled Envelope Follower Combines Fast Response, Low Ripple by Harry Bissell Jr. See Figure 1 below. Basically, the result of the fast envelope follower is the maximum of N peak values taken simultaneously. Each value is the maximum of the current sample and the latest held peak value. Each of the peak values are reset to zero in a round-robin fashion. As a peak value is reset, the other peak values still hold the latest peak value. The highest peak among N peaks is then chosen as the current output. Figure 1. Fast Envelope Detector The plot in Figure 2 below shows the fast envelope follower’s response. As compared to the Peak Envelope Follower and AR Envelope Follower, the fast envelope follower’s superior performance is immediately apparent in the plot. Of course, this comes at the cost of additional computing complexity. Figure 2. Fast envelope follower response The reset cycle time is specified by the hold duration parameter. The number of peak values is specified by the div parameter. The plot was obtained by picking the guitar’s low-E string and using a hold duration of approximately 6 ms and with a div of 2 (envelope: red, signal: blue, absolute value of the signal: dark blue). See below for more information on the hold and div parameters. It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The fast envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. The output is a jagged, staircase-like envelope that tightly follows the input, including fast attacks and decays. Figure 3 below (envelope: red, signal: blue, absolute value of the signal: dark blue) is a closer view of Figure 2 above: Figure 3. Staircase-Like Output The output is suitable for signal analysis as is. If the signal is to be utilized for modulation, for example as input to a Compressor, further filtering is recommended. Fast Averaging Envelope Follower is one such example. Figure 4 demonstrates in closer detail the transient response of various envelope detectors, demonstrating how the fast envelope follower’s response closely follows the true envelope of the signal compared to the Peak Envelope Follower and AR Envelope Follower, both of which perform poorly on signal decays. Figure 4. Transient Response of Envelope Detectors #include template struct basic_fast_envelope_follower { static_assert(div >= 1, \"div must be >= 1\"); basic_fast_envelope_follower(duration hold, float sps); float operator()(float s); float operator()() const; }; using fast_envelope_follower = basic_fast_envelope_follower; basic_fast_envelope_follower is a template class parameterized by div, which must be >= 1. div specifies the minimum duration required for the hold parameter. The hold duration should be equal to or slightly longer than 1/div multiplied by the period of the lowest frequency of the signal we wish to track. For example, if the lowest frequency we wish to track is 440 Hz, and div = 2, then the hold parameter should be greater than 1.13 ms. fast_envelope_follower is an alias for basic_fast_envelope_follower. In general, this is all you need to use, unless you want finer granularity. The higher the div is, the finer the granularity possible. Again, all of these comes at the cost of additional computing complexity. env_t A basic_fast_envelope_follower type. env, a, b Objects of type basic_fast_envelope_follower hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_envelope_follower env. a = b Assign b to a. env_t is just a shortcut notation for any type or alias to a template instantiation of basic_fast_envelope_follower. Example: using my_env_t = basic_fast_envelope_follower; C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_envelope_follower float","title":"Fast Envelope Follower","component":"q","version":"v1.0_beta","name":"fast_envelope_follower","url":"/q/v1.0_beta/reference/envelope/fast_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Staircase Output","hash":"_staircase_output","id":3},{"text":"Transient Response","hash":"_transient_response","id":4},{"text":"Include","hash":"_include","id":5},{"text":"Declaration","hash":"_declaration","id":6},{"text":"Expressions","hash":"_expressions","id":7},{"text":"Notation","hash":"_notation","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Function Call","hash":"_function_call","id":10}]},"96":{"id":96,"text":"The Fast RMS Envelope Follower is a variation of the Fast Envelope Follower. It is a simple composite class that contains a Fast Averaging Envelope Follower member. The signal path is as follows: Square the signal. Apply the fast averaging envelope follower. The moving average filter in the fast averaging envelope follower returns the arithmetic mean of the squared values over its hold period. Return the square root the result. This is embodied in the fast_rms_envelope_follower class. Following the fast envelope follower API, the function call operator accepts a floating point sample, transforms it, and returns an envelope, also a floating point. The fast_rms_envelope_follower_db variant works in the dB domain, making it easy to use as an envelope follower for dynamic range effects (compressor, expander, and agc) that already work in the dB domain, so we eliminate a linear to decibel conversion and optimize computation by using division by 2 instead of sqrt as an added bonus. The plot in Figure 1 below shows the fast RMS envelope follower’s response (envelope: green, signal: blue, absolute value of the signal: dark blue). It may look indistinguishable from the Fast Averaging Envelope Follower's output, but this detector returns true RMS results. Figure 1. Fast RMS envelope follower response #include struct fast_rms_envelope_follower { fast_rms_envelope_follower(duration hold, float sps); float operator()(float s); }; struct fast_rms_envelope_follower_db : fast_rms_envelope_follower { using fast_rms_envelope_follower::fast_rms_envelope_follower; decibel operator()(float s); }; fast_rms_envelope_follower essentially follows the same API as Fast Envelope Follower. The fast_rms_envelope_follower_db variant works in the dB domain and returns decibel instead of float. env_t A fast_rms_envelope_follower or fast_rms_envelope_follower_db. env, a, b Objects of type fast_rms_envelope_follower or fast_rms_envelope_follower_db. hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_ave_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_ave_envelope_follower env. a = b Assign b to a. C++ brace initialization may also be used. env_t is just a shortcut notation for any type or alias to a template instantiation of fast_rms_envelope_follower or fast_rms_envelope_follower_db. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_ave_envelope_follower float","title":"Fast RMS Envelope Follower","component":"q","version":"v1.0_beta","name":"fast_rms_envelope_follower","url":"/q/v1.0_beta/reference/envelope/fast_rms_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8}]},"97":{"id":97,"text":"During the attack phase of an audio signal, the peak envelope follower closely tracks the maximum peak level. When the signal level drops below the peak, the follower gradually releases the peak level with an exponential decay. This allows the follower to accurately capture the dynamic changes in the audio signal while avoiding sudden downward fluctuations. The peak envelope follower models the behavior of an ideal diode —with no voltage drop— connected in series with a resistor and a capacitor connected in parallel. The ideal diode allows the positive peaks of the audio signal to pass through, charging the capacitor to the maximum. When the signal falls below the peak, the capacitor discharges through the resistor, causing the output voltage to gradually decay with an exponential curve, following the release time constant. Figure 1. Peak envelope follower response The plot in Figure 1 depicts the response of the peak envelope follower, which was obtained by picking the guitar’s low-E string and using a 2-second release duration (envelope: orange, signal: blue, absolute value of the signal: dark blue). It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The peak envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. The peak envelope follower can track fast attack transients, but cannot track downward slopes faster than the specified release duration. However, reducing the release duration too much can reveal envelope ripples. When the release duration is too fast, the peak envelope follower quickly releases the previous cycle’s peak and begins tracking the peak of the next cycle, causing ripples in the envelope follower’s output, as shown in the image on the right. Such ripples can cause unwanted modulation and can be heard as distortion or noise in the audio signal. Further low-pass filtering can reduce the ripples at the expense of smearing the attack shape. #include struct peak_envelope_follower { peak_envelope_follower(duration release, float sps); float operator()(float s); float operator()() const; peak_envelope_follower& operator=(float y); void release(duration release_, float sps); }; env, a, b Objects of type peak_envelope_follower rel Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. y Floating point value from 0.0 to 1.0. Expression Semantics peak_envelope_follower(rel, sps) Construct a peak_envelope_follower given rel (release duration) and sps (samples per second). peak_envelope_follower(env) Copy construct from peak_envelope_follower env. a = b Assign b to a. a = y Reset the latest held value of the peak_envelope_follower to y. C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the peak_envelope_follower float Expression Semantics Return Type env.release(rel, sps) Set the release duration given rel (release duration) and sps (samples per second) void","title":"Peak Envelope Follower","component":"q","version":"v1.0_beta","name":"peak_envelope_follower","url":"/q/v1.0_beta/reference/envelope/peak_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Envelope Ripples","hash":"_envelope_ripples","id":3},{"text":"Include","hash":"_include","id":4},{"text":"Declaration","hash":"_declaration","id":5},{"text":"Expressions","hash":"_expressions","id":6},{"text":"Notation","hash":"_notation","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Function Call","hash":"_function_call","id":9},{"text":"Mutators","hash":"_mutators","id":10}]},"98":{"id":98,"text":"A DC blocker is a high-pass filter which attenuates frequencies below the signal’s lowest frequency of interest. Eliminating the DC offset from a signal allows the signal to be analyzed or processed more effectively in subsequent stages. dc_block is an implementation of a DC blocker based on Julius O. Smith’s document Introduction to Digital Filters. #include struct dc_block { dc_block(frequency f, float sps); float operator()(float s); float operator()() const; dc_block& operator=(float y); void cutoff(frequency f, float sps); }; bk, a, b Objects of type dc_block. f Object of type frequency representing the cutoff frequency. sps Floating point value representing samples per second. s Input sample. Expression Semantics dc_block(f, sps) Construct a dc_block with specified cutoff frequency, f, and samples per second sps. dc_block(b) Copy construct a dc_block from b. a = b Assign b to a. a = s Set the latest result to s. C++ brace initialization may also be used. Expression Semantics Return Type bk() Return the latest result. float bk(s) Remove DC from the input sample s. float Expression Semantics Return Type bk.cutoff(f, sps) Set the cutoff frequency given frequency f, and samples per second sps. void","title":"DC Block","component":"q","version":"v1.0_beta","name":"dc_block","url":"/q/v1.0_beta/reference/misc/dc_block.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"99":{"id":99,"text":"Delays are important DSP building blocks. They introduce repetitions of the original signal, resulting in spacious soundscapes and echoes. The number of repetitions is controlled via feedback. The interval between the initial signal and the repetitions is altered by adjusting the delay time. Longer durations provide echoes, whereas shorter delays produce doubling effects. Filters can shape the repeating signals, influencing their tonal properties. Delays are also essential for modulation effects such as flangers and choruses, which are created by dynamically modulating delay times using low-frequency oscillators (LFOs). basic_delay is a basic class for delays. The actual delay duration parameter is decoupled from, and managed outside the class to allow both single and multi-tapped delays. The delay is implemented using a base ring buffer with provisions for non-fractional (exact) and fractional (sub-sample) indexing. Fractional element indexing is required for fractional delays that are not integer multiples of the sampling period. Figure 1. Delay Line basic_delay is a template class whose Base template parameter should be the ring buffer storage type it inherits from. See ring_buffer and fractional_ring_buffer. #include template class basic_delay : public Base { public: using value_type = typename Base::value_type; using storage_type = typename Base::storage_type; using index_type = typename Base::index_type; using interpolation_type = typename Base::interpolation_type; basic_delay(duration max_delay, float sps); float operator()() const; float operator()(index_type i) const; float operator()(value_type val, index_type i); }; // Fractional delay using delay = basic_delay>; // Non-fractional delay using nf_delay = basic_delay>; In addition to valid expressions for the Base class that the basic_delay inherits from (See ring_buffer and fractional_ring_buffer), basic_delay allows these expressions. Base Ring buffer storage type, e.g. ring_buffer. d_type A basic_delay type. d, a, b Objects of type basic_delay. val Object of type d_type::value_type. i Object of type d_type::index_type. max_delay Object of type duration. sps Floating point value representing samples per second. Expression Semantics basic_delay Instantiate a basic_delay type given Base ring buffer storage type. delay Pre declared fractional delay type. nf_delay Pre declared Non-fractional delay type. using my_delay_type1 = basic_delay>; using my_delay_type2 = delay; Expression Semantics d_type::value_type Get the underlying element type. d_type::storage_type Get the underlying storage type. d_type::index_type Get the underlying index type. d_type::interpolation_type Get the underlying interpolation type. Expression Semantics d_type(max_delay, sps) Construct a basic_delay with maximum duration, max_delay and samples per second, sps. d_type(d) Copy construct from d_type d. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type d() Get the delayed signal (maximum delay). d_type::value_type d(i) Get the delayed signal at index i. d_type::value_type d(val, i) Push a new signal and return the delayed signal at index i+1. This is the simplest (common) case for single delays. For multi-tapped delays, you need to access the individual delays using the indexing operator for various tap-points before pushing the latest sample. d_type::value_type","title":"Delay","component":"q","version":"v1.0_beta","name":"delay","url":"/q/v1.0_beta/reference/misc/delay.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Function Call","hash":"_function_call","id":10}]},"100":{"id":100,"text":"The moving_average is the simplest and most efficient FIR filter. It is also the most common filter in DSP primarily due to its simplicity. But while it is technically a low pass FIR filter, it performs poorly in the frequency domain with very slow roll-off and dreadful stopband attenuation. On the other hand, it performs admirably in the time domain. The moving average filter is optimal in reducing random noise while retaining a sharp step response. Averaging N samples (the moving average window size) increases the SNR by the square root of N. For example, N=16 improves SNR by 4 (12dB). The filter delay is exactly (N−1)/2. Figure 1. Moving Average When data is pushed into a moving average, the element indices are shifted by one position to accommodate the incoming data. This logical shifting ensures that the newest data is stored in the first index (index 0), while the oldest data is pushed out of the buffer. The physical location of data does not actually change, only the indices. The data type, T, is a template parameter, allowing both floating point as well as integer computations. Integers are typically faster than floating point and are not prone to round-off errors. moving_average is a subclass of the moving_sum. #include template struct basic_moving_average : basic_moving_sum { using basic_moving_sum::basic_moving_sum; using value_type = T; T operator()(T s); T operator()() const; }; using moving_average = basic_moving_average; As a subclass of Moving Sum, moving_average inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for Moving Sum, moving_average allows these expressions. T Element type, e.g. float. ma Object of type basic_moving_average. s Object of type ma_type::value_type. Expression Semantics basic_moving_average Instantiate a basic_moving_average type given T, the element type, e.g. float. moving_average Pre declared basic_moving_average type. Expression Semantics Return Type ma() Return the current average. ma_type::value_type ma(s) Add a new sample and calculate the current average. ma_type::value_type","title":"Moving Average","component":"q","version":"v1.0_beta","name":"moving_average","url":"/q/v1.0_beta/reference/misc/moving_average.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Function Call","hash":"_function_call","id":7}]},"101":{"id":101,"text":"The moving sum involves adding a specified number of values in a sequence of data points —the moving sum window. The window moves through the data one point at a time as new samples arrive, and at each step, the sum of the data points within the window is calculated. Instead of calculating the sum of all elements in the window each time, an efficient scheme keeps a continuous total and subtracts the last element that will fall off the window when a new sample arrives. Figure 1. Moving Sum When data is pushed into a moving sum, the element indices are shifted by one position to accommodate the incoming data. This logical shifting ensures that the newest data is stored in the first index (index 0), while the oldest data is pushed out of the buffer. The physical location of data does not actually change, only the indices. basic_moving_sum is a template class representing moving sums with provision for specifying the element type, T. Integers are typically faster than floating point and are not prone to round-off errors. It is implemented internally using a ring buffer. Refer to ring_buffer. #include template struct basic_moving_sum { using value_type = T; basic_moving_sum(std::size_t max_size); basic_moving_sum(duration d, float sps); value_type operator()(value_type s); value_type operator()() const; value_type sum() const; std::size_t size() const; void resize(std::size_t size, bool update = false); void resize(duration d, float sps, bool update = false); void clear(); void fill(T val); }; using moving_sum = basic_moving_sum; T Element type, e.g. float. ms_type A basic_moving_sum type. ms, a, b Objects of type basic_moving_sum. s, val Objects of type ms_type::value_type. size Object of type std::size_t. d Object of type duration. sps Floating point value representing samples per second. a [, b, c, d] Required a, optional b, c, d. Expression Semantics basic_moving_sum Instantiate a basic_moving_sum type given T, the element type, e.g. float. moving_sum Pre declared basic_moving_sum type. Expression Semantics ms_type::value_type Get the underlying element type. Expression Semantics ms_type(size) Construct a basic_moving_sum with specified window size in samples. ms_type(d, sps) Construct a basic_moving_sum with window size specified by d and sps (duration and sample rate). ms_type(ms) Copy construct from ms_type ms. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type ms() Return the current sum. ms_type::value_type ms(s) Add a new sample and calculate the current sum. ms_type::value_type Expression Semantics Return Type ms.sum() Return the current sum. ms_type::value_type ms.size() Return the window size (in samples). std::size_t Expression Semantics ms.resize(size [, update]) Resize the moving sum window to the number of samples specified by the 'size' parameter. If update=true, the sum is recalculated. if update=false, the contents are cleared. Default: update=false. ms.resize(d, sps [, update]) Resize the moving sum with window size specified by d and sps (duration and sample rate). If update=true, the sum is recalculated. if update=false, the contents are cleared. Default: update=false. ms.clear() Clear the moving window to zero. ms.fill(val) Fill the moving window with val, and update the sum accordingly. basic_moving_sum can be resized as long as the new size does not exceed the original size (at construction time). When resizing with update=true, when downsizing, the oldest elements are subtracted from the sum. When upsizing, the older elements are added to the sum, otherwise, if update=false, the contents are cleared.","title":"Moving Sum","component":"q","version":"v1.0_beta","name":"moving_sum","url":"/q/v1.0_beta/reference/misc/moving_sum.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Type Accessors","hash":"_type_accessors","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Function Call","hash":"_function_call","id":9},{"text":"Accessors","hash":"_accessors","id":10},{"text":"Mutators","hash":"_mutators","id":11}]},"102":{"id":102,"text":"A noise gate is an audio tool that reduces unwanted noise by muting or attenuating signals below specified thresholds. It is typically used to eliminate background noise or hum. The noise_gate class implements a Q-flavored noise gate processor following Q’s Dynamic processor design. Unlike typical noise gates, noise_gate has no parameters for attack and release and does not process audio waveform samples directly. Instead, it operates on the envelope of the audio signal. The objective is separation of concerns and the flexibility to use various envelope followers. There are two thresholds. On onsets, the noise_gate opens up if the signal envelope goes above the specified onset threshold. On note release, the noise_gate turns off if the signal goes below a specified release threshold. #include struct noise_gate { noise_gate(decibel onset_threshold, decibel release_threshold); noise_gate(decibel release_threshold); bool operator()(float env); bool operator()() const; void onset_threshold(decibel onset_threshold); void onset_threshold(float onset_threshold); void release_threshold(decibel release_threshold); void release_threshold(float release_threshold); float onset_threshold() const; float release_threshold() const; }; g, a, b Objects of type noise_gate. env Floating point value for the current envelope value. ot, rt Object of type decibel representing onset and release thresholds, respectively. Expression Semantics noise_gate(rt) Construct a noise_gate with specified release threshold, rt. noise_gate(ot, rt) Construct a noise_gate with specified onset threshold, ot and release threshold, rt. noise_gate(b) Copy construct a noise_gate from b. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type g() Get the current state. bool g(env) Process the input envelope env, compute and return the state. bool The noise_gate state is a boolean flag that is true if the noise_gate is open or false if the noise_gate is closed. Expression Semantics Return Type g.onset_threshold(ot) Set the noise_gate onset threshold. void g.release_threshold(rt) Set the noise_gate release threshold. void Expression Semantics Return Type g.onset_threshold() Get the noise_gate onset threshold. decibel g.release_threshold() Get the noise_gate release threshold. decibel","title":"Noise Gate","component":"q","version":"v1.0_beta","name":"noise_gate","url":"/q/v1.0_beta/reference/misc/noise_gate.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"103":{"id":103,"text":"Basic one pole low-pass filter serves as an important building block due to its utility in a vast number of applications including noise reduction, signal smoothing, and extracting relevant information from a signal. The 6dB/octave slope of the single pole filter is suitable for many non-critical use-cases and its simplicity makes it computationally efficient. #include struct one_pole_lowpass { one_pole_lowpass(frequency f, float sps); float operator()(float s); float operator()() const; one_pole_lowpass& operator=(bool y); void cutoff(frequency f, float sps); }; lp, a, b Objects of type one_pole_lowpass. f Object of type frequency representing the cutoff frequency. sps Floating point value representing samples per second. s Input sample. Expression Semantics one_pole_lowpass(f, sps) Construct a one_pole_lowpass with specified cutoff frequency, f, and samples per second sps. one_pole_lowpass(b) Copy construct a one_pole_lowpass from b. a = b Assign b to a. a = s Set the latest result to s. C++ brace initialization may also be used. Expression Semantics Return Type lp() Return the latest result. float lp(s) process the input sample, s. float Expression Semantics Return Type lp.cutoff(f, sps) Set the cutoff frequency given frequency f, and samples per second sps. void","title":"One Pole Low Pass","component":"q","version":"v1.0_beta","name":"one_pole_lowpass","url":"/q/v1.0_beta/reference/misc/one_pole_lowpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"104":{"id":104,"text":"onset_gate is a specialization of noise_gate with provision for gating out slow attacks. The constructor parameters attack_width and sps specify the slope’s delta time. The envelope’s slope must exceed the required onset threshold. This prevents slow moving signals to pass as valid onsets. For example, given an attack width of 500 µs and an onset threshold of -30 dB, the difference in amplitude over a period of 500 µs must exceed -30 dB to pass as a valid onset. #include struct onset_gate : noise_gate { onset_gate( decibel onset_threshold , decibel release_threshold , duration attack_width , float sps ); using noise_gate::operator(); bool operator()(float env); }; As a subclass of noise_gate, onset_gate inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for noise_gate, onset_gate allows these expressions. ot, rt Object of type decibel representing onset and release thresholds, respectively. aw Object of type duration representing attack width. sps Floating point value representing samples per second. Expression Semantics onset_gate(ot, rt, aw, sps) Construct an onset_gate with specified onset threshold, ot release threshold, rt, attack width, aw, and samples per second sps. C++ brace initialization may also be used.","title":"Onset Gate","component":"q","version":"v1.0_beta","name":"onset_gate","url":"/q/v1.0_beta/reference/misc/onset_gate.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6}]},"105":{"id":105,"text":"audio_device represents individual audio interfaces on the host platform. There are typically one or more audio devices available. Each device has a name, device identifier, and specific capabilities, including sample rate and the number of input and output channels supported. #include class audio_device { public: using device_list = std::vector; static device_list list(); static audio_device get(int device_id); int id() const; std::string name() const; std::size_t input_channels() const; std::size_t output_channels() const; double default_sample_rate() const; }; a, b Objects of type audio_device. ad Object of type audio_device. id A unique audio device ID (integer). Expression Semantics audio_device(b) Copy construct from audio_device b. a = b Assign b to a. There are no public constructors. Instead, see list() and get(id) below. `audio_device`s are lightweight handles that can be cheaply passed by value. Expression Semantics Return Type audio_device::list() Get the list of available audio devices. std::vector audio_device::get(id) Get the audio device with the given ID. audio_device To get an audio_device, first get list of currently available audio devices via audio_device::list(), then choose, or let the user choose, the one suitable for your needs. Alternatively, if you know the unique audio_device ID, you can use audio_device::get(id) to obtain a specific audio_device. Expression Semantics Return Type ad.id() Get the unique ID. int ad.name() Get the unique name. std::string ad.input_channels() Get the maximum number of input channels. std::size_t ad.output_channels() Get the maximum number of output channels. std::size_t ad.default_sample_rate() Get the default sample rate. double List all available audio devices: #include #include #include namespace q = cycfi::q; int main() { std::cout << \"Available Audio Devices: \" << std::endl; for (auto const& device : q::audio_device::list()) { std::cout << \"id: \" << device.id() << std:: endl << \"name: \\\"\" << device.name() << '\"' << std:: endl << \"number of input channels: \" << device.input_channels() << std:: endl << \"number of output channels: \" << device.output_channels() << std:: endl ; } return 0; }","title":"audio_device","component":"q","version":"v1.0_beta","name":"audio_device","url":"/q/v1.0_beta/reference/q_io/audio_device.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Instantiation","hash":"_instantiation","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"Example","hash":"_example","id":9}]},"106":{"id":106,"text":"audio_file is a set of small and lightweight classes for reading and writing WAV (Waveform Audio File Format) files. It offers a straightforward and intuitive interface for working with WAV audio data. This includes: wav_reader For reading WAV files. wav_writer For writing WAV files. #include wav_base is the base class with common functionalities for wav_reader and wav_writer. class wav_base { public: wav_base(); wav_base(wav_base const&) = delete; ~wav_base(); wav_base& operator=(wav_base const&) = delete; explicit operator bool() const; std::size_t sps() const; std::size_t num_channels() const; }; w Object of wav_base. Expression Semantics wav_base() Default construct a wav_base. wav_base is non-copyable. C++ brace initialization may also be used. Expression Semantics Return Type bool(w) Evaluates to true if wav_base is valid. Operations must only be performed on valid wav_base objects. bool w.sps() Get the WAV file’s sampling rate. float w.num_channels() Get the number of channels in the WAV file. std::size_t wav_reader is a class for reading WAV files with the typical read-only input mechanisms, such as incrementally reading a chunk of audio data from a position starting at the beginning of the file, and being able to move a certain position in the file. class wav_reader : public wav_base { public: wav_reader(std::string filepath); wav_reader(char const* filepath); std::uint64_t length() const; std::uint64_t position(); bool restart(); bool seek(std::uint64_t target); std::size_t read(float* data, std::uint32_t len); std::size_t read(concepts::IndexableContainer auto& buffer); }; The IndexableContainer concept is declared in Basic Concepts. wav_reader is derived from wav_base. In addition to valid expressions for wav_base, wav_reader allows these expressions. r Object of type wav_reader. f Object of type convertible to std::string or char const* representing a file path. d Pointer to a buffer of float elements with size len. s Size buffer of d. b Object of type that conforms to the IndexableContainer concept. p Position in the wav file (std::uint64_t). Expression Semantics wav_reader(f) Construct a wav_reader given a file path. C++ brace initialization may also be used. Expression Semantics Return Type r.restart() Reset the read position to the start. Returns false if r is not valid. bool r.seek(p) Set the read position to the p. Returns false if r is not valid. bool r.read(d, s) Read a chunk of data given a raw buffer, float*, d, with size s. Returns the actual size read. std::size_t. r.read(b) Read a chunk of data given a buffer, b. Returns the actual size read. std::size_t. Expression Semantics Return Type r.length() Get the length of the WAV file. std::uint64_t. r.position() Get the current read position. std::uint64_t. wav_writer is a class for writing WAV files with the typical write-only output mechanisms, such as incrementally writing a chunk of audio data from a position starting at the beginning of the file. wav_writer writes WAV files with one or more channels and 32-bit floating point samples. class wav_writer : public wav_base { public: wav_writer( std::string filename , std::uint32_t num_channels, float sps); wav_writer( char const* filename , std::uint32_t num_channels, float sps); std::size_t write(float const* data, std::uint32_t len); std::size_t write(concepts::IndexableContainer auto const& buffer); }; The IndexableContainer concept is declared in Basic Concepts. wav_writer is derived from wav_base. In addition to valid expressions for wav_base, wav_writer allows these expressions. w Object of type wav_writer. f Object of type convertible to std::string or char const* representing a file path. d Pointer to a buffer of float elements with size len. s Size buffer of d. b Object of type that conforms to the IndexableContainer concept. ch Integer value representing number of channels. sps Floating point value representing samples per second. Expression Semantics wav_writer(f, ch, sps) Construct a wav_writer given a file path, f, number of channels, ch, and sampling rate, sps. Expression Semantics Return Type w.write(d, s) Write a chunk of data given a raw buffer, float*, d, with size s. Returns the actual size written. std::size_t. w.write(b) Write a chunk of data given a buffer, b. Returns the actual size written. std::size_t.","title":"audio_file","component":"q","version":"v1.0_beta","name":"audio_file","url":"/q/v1.0_beta/reference/q_io/audio_file.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"wav_base","hash":"_wav_base","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"wav_reader","hash":"_wav_reader","id":9},{"text":"Declaration","hash":"_declaration_2","id":10},{"text":"Expressions","hash":"_expressions_2","id":11},{"text":"Notation","hash":"_notation_2","id":12},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_2","id":13},{"text":"Mutators","hash":"_mutators","id":14},{"text":"Accessors","hash":"_accessors_2","id":15},{"text":"wav_writer","hash":"_wav_writer","id":16},{"text":"Declaration","hash":"_declaration_3","id":17},{"text":"Expressions","hash":"_expressions_3","id":18},{"text":"Notation","hash":"_notation_3","id":19},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_3","id":20},{"text":"Mutators","hash":"_mutators_2","id":21}]},"107":{"id":107,"text":"audio_stream is a subclass of audio_stream_base. It is responsible for setting up multichannel input and output buffers and presenting them to the user’s processing function, which is called at regular intervals at 1/Nth of the sampling frequency, where N is the size of the buffer. #include class audio_stream : public audio_stream_base { public: audio_stream( std::size_t input_channels , std::size_t output_channels , double sps = -1 , int frames = -1 ); audio_stream( audio_device const& device , std::size_t input_channels , std::size_t output_channels , double sps = -1 , int frames = -1 ); virtual ~audio_stream(); void start(); void stop(); bool is_valid() const; duration time() const; double cpu_load() const; char const* error() const; duration input_latency() const; duration output_latency() const; double sampling_rate() const; std::size_t input_channels() const; std::size_t output_channels() const; }; As a subclass of audio_stream_base, audio_stream inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for audio_stream_base, audio_stream allows these expressions. as Object of type audio_stream. ad Object of type audio_device. ic Number of input channels. oc Number of output channels. sps Floating point value for the desired sample rate. A value of -1, the default, indicates a request to use the device’s default sampling rate. fr Number of frames --the buffer size per channel. A value of -1, the default, indicates a request for the optimal (and possibly varying) number of frames. Expression Semantics audio_stream(ic, oc, sps, fr) Construct an audio_stream using the default audio_device, given the number of input and output channels, ic and oc, optional sample rate, sps, and optional number of frames, fr. audio_stream(ad, ic, oc, sps, fr) Construct an audio_stream using the the audio_device, ad, given the number of input and output channels, ic and oc, optional sample rate, sps, and optional number of frames, fr. Take note that audio_stream_base is non-copyable, and therefore audio_stream is also non-copyable. Expression Semantics Return Type as.is_valid() Check if the audio_stream is valid. Do this before any operation on the audio_stream. Any operation on an invalid stream is undefined behavior. bool as.time() Get stream’s current time in seconds. The time values are monotonically increasing with an unspecified origin. Starting and stopping the stream does not affect the passage of time. duration as.cpu_load() Get stream’s CPU load: A floating point value, typically between 0.0 and 1.0, where 1.0 indicates that the stream is consuming the maximum number of CPU cycles possible to maintain real-time operation. double as.error() On as.is_valid() == false, this function returns a human readable error message stating the reason why an audio_stream cannot be opened. char const* as.input_latency() Get the input latency. duration as.output_latency() Get the output latency. duration as.input_channels() Get the number of input channels. std::size_t as.output_channels() Get the number of output channels. std::size_t as.default_sample_rate() Get the sampling rate. double Expression Semantics as.start() Start the audio_stream. as.stop() Stop the audio_stream. Make a delay processor with 1 input channel (mono) and two output channels (stereo). Route the mono input to both the left and right output channels. struct my_processor : q::audio_stream (1) { my_processor() : audio_stream(1, 2) (2) {} void process(in_channels const& in, out_channels const& out) (3) { auto left = out[0]; auto right = out[1]; auto mono_in = in[0]; for (auto frame : out.frames) { // Get the next input sample auto s = mono_in[frame]; // Output left[frame] = s; right[frame] = s; } } }; 1 Here we declare my_processor. A user-defined class derived from audio_stream. 2 Construct the base audio_stream with 1 input channel (mono) and two output channels (stereo) using the default audio device. 3 Implement the process member function. See Audio Stream Client Interface for more info.","title":"audio_stream","component":"q","version":"v1.0_beta","name":"audio_stream","url":"/q/v1.0_beta/reference/q_io/audio_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Accessors","hash":"_accessors","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Example","hash":"_example","id":9}]},"108":{"id":108,"text":"midi_device is an abstraction which encapsulates the properties and functionality of a MIDI interface. Each MIDI device includes information such as its name, device identifier, and the number of inputs and outputs available. #include class midi_device { public: using device_list = std::vector; static device_list list(); std::uint32_t id() const; std::string name() const; std::size_t num_inputs() const; std::size_t num_outputs() const; }; a, b Objects of type midi_device. md Object of type midi_device. id A unique audio device ID integer. Expression Semantics midi_device(b) Copy construct from midi_device b. a = b Assign b to a. There are no public constructors. Instead, see list() and get(id) below. midi_device(s) are lightweight handles that can be cheaply passed by value. Expression Semantics Return Type midi_device::list() Get the list of available MIDI devices. std::vector To get a midi_device, first get list of currently available MIDI devices via midi_device::list(), then choose, or let the user choose, the one suitable for your needs. Expression Semantics Return Type md.id() Get the unique ID. int md.name() Get the unique name. std::string md.num_inputs() Get the number of MIDI inputs. std::size_t md.num_outputs() Get the number of MIDI outputs. std::size_t List all available MIDI devices: #include #include #include namespace q = cycfi::q; int main() { std::cout << \"Available MIDI Devices: \" << std::endl; for (auto const& device : q::midi_device::list()) { std::cout << \"id: \" << device.id() << std:: endl << \"name: \\\"\" << device.name() << '\"' << std:: endl << \"number of inputs: \" << device.num_inputs() << std:: endl << \"number of outputs: \" << device.num_outputs() << std:: endl ; } return 0; }","title":"midi_device","component":"q","version":"v1.0_beta","name":"midi_device","url":"/q/v1.0_beta/reference/q_io/midi_device.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Instantiation","hash":"_instantiation","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"Example","hash":"_example","id":9}]},"109":{"id":109,"text":"The midi_input_stream class facilitates MIDI communication and data transmission of MIDI messages between a MIDI device and an application. midi_input_stream dispatches MIDI messages to a MIDI processor: a user-defined construct that follows a specific C++ concept for receiving and interpreting MIDI messages. The MIDI processor acts as an intermediary between MIDI devices and the application. Its purpose is to receive incoming MIDI messages, analyze their content, and extract relevant information. This may include extracting note data, control change values, program change commands, or any other MIDI message content that is of interest to the user. See MIDI Processor #include class midi_input_stream : non_copyable { public: midi_input_stream(); midi_input_stream(midi_device const& device); ~midi_input_stream(); bool is_valid() const; template requires concepts::midi_1_0::Processor void process(Processor&& proc); static void set_default_device(int id); }; ms Object of type midi_input_stream. md Object of type midi_device. id A unique MIDI device ID (integer). proc Object that conforms to the MIDI Processor concept. Expression Semantics midi_input_stream() Construct a default midi_input_stream. See set_default_device below. midi_input_stream(md) Construct a midi_input_stream using the the midi_device, md. Take note that midi_input_stream is non-copyable. Expression Semantics set_default_device(id) Set the default midi_device used by the default constructor above to the midi_device with the given ID. Once set, the default midi_input_stream constructor will use this midi_device. Expression Semantics Return Type ms.is_valid() Check if the midi_input_stream is valid. Do this before any operation on the midi_input_stream. Any operation on an invalid stream is undefined behavior. bool Expression Semantics ms.process(proc) Process incoming MIDI messages, given a user provided MIDI processor proc. Call this function in a loop while to process incoming MIDI messages. This function blocks. It is advisable to place this processing loop in a separate thread. Monitor incoming MIDI messages: q::midi_input_stream stream; (1) if (stream.is_valid()) (2) { while (true) (3) stream.process(midi_processor{}); (4) } 1 Instantiate a default MIDI stream. 2 Check if the MIDI stream is valid. 3 Infinite loop, processing incoming MIDI messages from the stream. 4 midi_processor is a user defined struct implemented below. struct midi_processor : midi::processor { using midi::processor::operator(); void operator()(midi::note_on msg, std::size_t time) { std::cout << \"Note On {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Velocity: \" << int(msg.velocity()) << '}' << std::endl; } void operator()(midi::note_off msg, std::size_t time) { std::cout << \"Note Off {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Velocity: \" << int(msg.velocity()) << '}' << std::endl; } void operator()(midi::poly_aftertouch msg, std::size_t time) { std::cout << \"Polyphonic Aftertouch {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Pressure: \" << int(msg.pressure()) << '}' << std::endl; } void operator()(midi::control_change msg, std::size_t time) { std::cout << \"Control Change {\" << \"Channel: \" << int(msg.channel()) << \", Controller: \" << int(msg.controller()) << \", Value: \" << int(msg.value()) << '}' << std::endl; } void operator()(midi::program_change msg, std::size_t time) { std::cout << \"Program Change {\" << \"Channel: \" << int(msg.channel()) << \", Preset: \" << int(msg.preset()) << '}' << std::endl; } void operator()(midi::channel_aftertouch msg, std::size_t time) { std::cout << \"Channel Aftertouch {\" << \"Channel: \" << int(msg.channel()) << \", Pressure: \" << int(msg.pressure()) << '}' << std::endl; } void operator()(midi::pitch_bend msg, std::size_t time) { std::cout << \"Pitch Bend {\" << \"Channel: \" << int(msg.channel()) << \", Value: \" << int(msg.value()) << '}' << std::endl; } };","title":"midi_input_stream","component":"q","version":"v1.0_beta","name":"midi_stream","url":"/q/v1.0_beta/reference/q_io/midi_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Default MIDI device","hash":"_default_midi_device","id":7},{"text":"Accessor","hash":"_accessor","id":8},{"text":"Process MIDI","hash":"_process_midi","id":9},{"text":"Example","hash":"_example","id":10}]},"110":{"id":110,"text":"Read Multi Buffer first for prerequisite information. audio_stream_base is the abstract base class and highest-level interface for audio processing. It is responsible for setting up multichannel input and output buffers and presenting them to the user’s processing function, which is called at regular intervals at 1/Nth of the sampling frequency, where N is the size of the buffer. #include class audio_stream_base : non_copyable { public: using in_channels = multi_buffer; using out_channels = multi_buffer; audio_stream_base() {} virtual ~audio_stream_base() = default; virtual void process(in_channels const& in) {} virtual void process(out_channels const& out) {} virtual void process(in_channels const& in, out_channels const& out) {} }; The audio_stream_base is an abstract base class not meant to be directly instantiated. Audio I/O systems are responsible for providing concrete subclasses of audio_stream_base for the client’s use. The client writes a class derived from one of these, and overrides one of the three process member functions depending on the I/O configuration and purpose. process(in_channels const& in); Audio input only. Examples: VU Meter, Spectrum Analyzer. process(out_channels const& out); Audio output only. Example: Synthesizers. process(in_channels const& in, out_channels const& out); Audio input and output. Example: Effects processors.","title":"Audio Stream","component":"q","version":"v1.0_beta","name":"audio_stream","url":"/q/v1.0_beta/reference/support/audio_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Client Interface","hash":"_client_interface","id":4}]},"111":{"id":111,"text":"Here are the basic C++ concepts used by the Q DSP library. #include The Arithmetic concept is a model of the std::integral OR the std::floating_point concept. namespace cycfi::q::concepts { template concept Arithmetic = std::integral || std::floating_point; } IndexableContainer is a concept that represents an indexable data type. Essentially, it must be indexable using the indexing subscript operator [] with a subscript convertable from std::size_t, and has a size() member function that returns the size of the Container or View being indexed. namespace cycfi::q::concepts { template concept IndexableContainer = requires(T& x, std::size_t i) { { x[i] } -> std::convertible_to; { x.size() } -> std::convertible_to; }; } IndexableContainer types allow standard for-loop iteration: for (auto i = 0; i != c.size() ++i) { c[i]; } Where c is an instance of IndexableContainer. RandomAccessIteratable is a concept that represents a random-access iteratable data type, which has begin() and end() member functions, and the return type of both functions is an iterator that conforms to the std::random_access_iterator concept. namespace cycfi::q::concepts { template concept RandomAccessIteratable = std::random_access_iterator && requires(T& c) { { c.begin() } -> std::same_as; { c.end() } -> std::same_as; }; } RandomAccessIteratable allows C++ range-based for loop syntax: for (auto e : c) { /**...**/ } Where c is an instance of RandomAccessIteratable and e is an element of c.","title":"Basic Concepts","component":"q","version":"v1.0_beta","name":"basic_concepts","url":"/q/v1.0_beta/reference/support/basic_concepts.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Arithmetic","hash":"_arithmetic","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"IndexableContainer","hash":"_indexablecontainer","id":5},{"text":"Declaration","hash":"_declaration_2","id":6},{"text":"RandomAccessIteratable","hash":"_randomaccessiteratable","id":7},{"text":"Declaration","hash":"_declaration_3","id":8}]},"112":{"id":112,"text":"MIDI is one way to control DSP parameters in a more meaningful, and musical way. Here, we talk about MIDI as a standardized messaging protocol. MIDI messages include note-on and note-off messages, control change messages, program change messages, and pitch bend messages, as well as tempo, time signature, and other performance data. #include namespace cycfi::q::midi_1_0 { /**...**/ } Currently, the Q DSP library supports MIDI 1.0, implemented in namespace midi_1_0. The MIDI 1.0 message is basically an array of std::uint8_t with sizes 1 to 3, encapsulated in a struct: struct message_base {}; // Base class for all messages template struct message : message_base { static constexpr int const size = size_; std::uint8_t data[size]; }; struct message1 : message { message1() = default; constexpr message1(raw_message msg); }; struct message2 : message { message2() = default; constexpr message2(raw_message msg); }; struct message3 : message { message3() = default; constexpr message3(raw_message msg); }; Generic MIDI messages are constructed from raw_message, which is essentially a std::uint32_t encapsulated in a struct that holds the 24-bits MIDI 1.0 message, encoded as little-endian: Figure 1. Raw MIDI Message struct raw_message { std::uint32_t data; }; The status byte indicates the type of MIDI message and includes both a status nibble (upper 4 bits) and a 16-channel number nibble (lower 4 bits). Figure 2. MIDI Status Byte Here is the MIDI status enumeration: namespace status { enum { note_off = 0x80, note_on = 0x90, poly_aftertouch = 0xA0, control_change = 0xB0, program_change = 0xC0, channel_aftertouch = 0xD0, pitch_bend = 0xE0, sysex = 0xF0, song_position = 0xF2, song_select = 0xF3, tune_request = 0xF6, sysex_end = 0xF7, timing_tick = 0xF8, start = 0xFA, continue_ = 0xFB, stop = 0xFC, active_sensing = 0xFE, reset = 0xFF }; } Specific MIDI messages are subclasses of the generic MIDI messages above. struct note_off : message3 { using message3::message3; constexpr note_off(std::uint8_t channel, std::uint8_t key, std::uint8_t velocity); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const; constexpr std::uint8_t velocity() const; }; struct note_on : message3 { using message3::message3; constexpr note_on(std::uint8_t channel, std::uint8_t key, std::uint8_t velocity); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const; constexpr std::uint8_t velocity() const; }; struct poly_aftertouch : message3 { using message3::message3; constexpr poly_aftertouch( std::uint8_t channel, std::uint8_t key, std::uint8_t pressure); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const { return data[1]; } constexpr std::uint8_t pressure() const; }; namespace cc { enum controller { bank_select = 0x00, modulation = 0x01, breath = 0x02, foot = 0x04, portamento_time = 0x05, data_entry = 0x06, channel_volume = 0x07, balance = 0x08, pan = 0x0A, expression = 0x0B, effect_1 = 0x0C, effect_2 = 0x0D, general_1 = 0x10, general_2 = 0x11, general_3 = 0x12, general_4 = 0x13, bank_select_lsb = 0x20, modulation_lsb = 0x21, breath_lsb = 0x22, foot_lsb = 0x24, portamento_time_lsb = 0x25, data_entry_lsb = 0x26, channel_volume_lsb = 0x27, balance_lsb = 0x28, pan_lsb = 0x2A, expression_lsb = 0x2B, effect_1_lsb = 0x2C, effect_2_lsb = 0x2D, general_1_lsb = 0x30, general_2_lsb = 0x31, general_3_lsb = 0x32, general_4_lsb = 0x33, sustain = 0x40, portamento = 0x41, sostenuto = 0x42, soft_pedal = 0x43, legato = 0x44, hold_2 = 0x45, sound_controller_1 = 0x46, // default: sound variation sound_controller_2 = 0x47, // default: timbre / harmonic content sound_controller_3 = 0x48, // default: release time sound_controller_4 = 0x49, // default: attack time sound_controller_5 = 0x4A, // default: brightness sound_controller_6 = 0x4B, // no default sound_controller_7 = 0x4C, // no default sound_controller_8 = 0x4D, // no default sound_controller_9 = 0x4E, // no default sound_controller_10 = 0x4F, // no default general_5 = 0x50, general_6 = 0x51, general_7 = 0x52, general_8 = 0x53, portamento_control = 0x54, effects_1_depth = 0x5B, // previously reverb send effects_2_depth = 0x5C, // previously tremolo depth effects_3_depth = 0x5D, // previously chorus depth effects_4_depth = 0x5E, // previously celeste (detune) depth effects_5_depth = 0x5F, // previously phaser effect depth data_inc = 0x60, // increment data value (+1) data_dec = 0x61, // decrement data value (-1) nonrpn_lsb = 0x62, nonrpn_msb = 0x63, rpn_lsb = 0x64, rpn_msb = 0x65, all_sounds_off = 0x78, reset = 0x79, local = 0x7A, all_notes_off = 0x7B, omni_off = 0x7C, omni_on = 0x7D, mono = 0x7E, poly = 0x7F }; } struct control_change : message3 { using message3::message3; constexpr control_change( std::uint8_t channel, cc::controller ctrl, std::uint8_t value); constexpr std::uint8_t channel() const; constexpr cc::controller controller() const; constexpr std::uint8_t value() const; }; struct program_change : message2 { using message2::message2; constexpr program_change(std::uint8_t channel, std::uint8_t preset); constexpr std::uint8_t channel() const; constexpr std::uint8_t preset() const; }; struct channel_aftertouch : message2 { using message2::message2; constexpr channel_aftertouch(std::uint8_t channel, std::uint8_t pressure); constexpr std::uint8_t channel() const; constexpr std::uint8_t pressure() const; }; struct pitch_bend : message3 { using message3::message3; constexpr pitch_bend(std::uint8_t channel, std::uint16_t value); constexpr pitch_bend(std::uint8_t channel, std::uint16_t lsb, std::uint8_t msb); constexpr std::uint8_t channel() const; constexpr std::uint16_t value() const; }; struct song_position : message3 { using message3::message3; constexpr song_position(std::uint16_t position); constexpr song_position(std::uint8_t lsb, std::uint8_t msb); constexpr std::uint16_t position() const; }; struct song_select : message2 { using message2::message2; constexpr song_select(std::uint8_t song_number); constexpr std::uint16_t song_number() const; }; struct tune_request : message1 { using message1::message1; constexpr tune_request(); }; struct timing_tick : message1 { using message1::message1; constexpr timing_tick(); }; struct start : message1 { using message1::message1; constexpr start(); }; struct continue_ : message1 { using message1::message1; constexpr continue_(); }; struct stop : message1 { using message1::message1; constexpr stop(); }; struct active_sensing : message1 { using message1::message1; constexpr active_sensing(); }; struct reset : message1 { using message1::message1; constexpr reset(); }; The note_name utility function can be used to convert a MIDI note number to a string representing the key. constexpr char const* note_name(std::uint8_t key); Example: std::cout << note_name(60) << std::endl; // Prints \"C4\" Conversely, the note_number utility function can be used to convert a string representing the key to a MIDI note number. int note_number(std::string_view note) The syntax is as follows: A letter a-g or A-G Optionally followed by # or b Followed by a number that ranges from -1 to 9 The range is from C-1 to G9. Example: std::cout << note_number(\"C4\") << std::endl; // Prints 60 The function returns -1 when given invalid input.","title":"MIDI Messages","component":"q","version":"v1.0_beta","name":"midi_messages","url":"/q/v1.0_beta/reference/support/midi_messages.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Namespace","hash":"_namespace","id":3},{"text":"Generic MIDI Messages","hash":"_generic_midi_messages","id":4},{"text":"Raw MIDI Messages","hash":"_raw_midi_messages","id":5},{"text":"MIDI Status","hash":"_midi_status","id":6},{"text":"Specific MIDI Messages","hash":"_specific_midi_messages","id":7},{"text":"note_off","hash":"_note_off","id":8},{"text":"note_on","hash":"_note_on","id":9},{"text":"poly_aftertouch","hash":"_poly_aftertouch","id":10},{"text":"control_change","hash":"_control_change","id":11},{"text":"program_change","hash":"_program_change","id":12},{"text":"channel_aftertouch","hash":"_channel_aftertouch","id":13},{"text":"pitch_bend","hash":"_pitch_bend","id":14},{"text":"song_position","hash":"_song_position","id":15},{"text":"song_select","hash":"_song_select","id":16},{"text":"tune_request","hash":"_tune_request","id":17},{"text":"timing_tick","hash":"_timing_tick","id":18},{"text":"start","hash":"_start","id":19},{"text":"continue_","hash":"_continue","id":20},{"text":"stop","hash":"_stop","id":21},{"text":"active_sensing","hash":"_active_sensing","id":22},{"text":"reset","hash":"_reset","id":23},{"text":"Note Name","hash":"_note_name","id":24},{"text":"Note Number","hash":"_note_number","id":25}]},"113":{"id":113,"text":"Read MIDI Messages first for prerequisite information. The MIDI processor is a user-defined construct that follows a specific C++ concept for receiving and interpreting MIDI messages. The MIDI processor acts as an intermediary between MIDI devices and the application. Its purpose is to receive incoming MIDI messages, analyze their content, and extract relevant information. This may include extracting note data, control change values, program change commands, or any other MIDI message content that is of interest to the user. #include // Concepts namespace cycfi::q::concepts::midi_1_0 { /**...**/ } // API and Implementation namespace cycfi::q::midi_1_0 { /**...**/ } Currently, the Q DSP library supports MIDI 1.0, implemented in namespace midi_1_0. namespace cycfi::q::concepts { namespace midi_1_0 { template concept Processor = requires(T&& proc, q::midi_1_0::message_base const& msg, std::size_t time) { proc(msg, time); }; } } Processor is a concept that represents a MIDI 1.0 processor. It is placed inside namespace midi_1_0 to distinguish it from future MIDI processors. Essentially, the C++ concept states that: Processor has a function call operator that accepts a MIDI 1.0 message and a time stamp. The MIDI 1.0 message, msg, is derived from message_base. The time stamp is represented as a millisecond clock with an undefined arbitrary start time. proc Instance of a type that conforms to Processor. msg Instance of a type that conforms to Message. time A std::size_t time stamp. Expression Semantics Return Type proc(msg, time) Process the MIDI message, msg at time stamp time. void processor is a basic class that conforms to the Processor concept, but does nothing by default. struct processor { void operator()(message_base const& msg, std::size_t time) {} }; This utility class provides the default no-op handling. It is intended to be derived from. Thus, the derived class can overload specific function call operators for messages it is interested with. Example: namespace midi = cycfi::q::midi_1_0; struct my_midi_processor : midi::processor { using midi::processor::operator(); void operator()(midi::note_on msg, std::size_t time); void operator()(midi::note_off msg, std::size_t time); }; In this example, my_midi_processor is interested with, and processes only note_on and note_off messages. The dispatch takes in a raw MIDI 1.0 message (raw_message), a time stamp, and a Processor. It converts the raw MIDI message to a specific MIDI message, and dispatches the message to the processor, along with the time stamp. template requires concepts::Processor void dispatch(raw_message msg, std::size_t time, P&& proc); This function is the basic low-level hook for dispatching raw MIDI messages obtained by an I/O system from MIDI devices.","title":"MIDI Processor","component":"q","version":"v1.0_beta","name":"midi_processor","url":"/q/v1.0_beta/reference/support/midi_processor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Namespaces","hash":"_namespaces","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"processor","hash":"_processor","id":8},{"text":"Dispatch","hash":"_dispatch","id":9}]},"114":{"id":114,"text":"Read Basic Concepts first for prerequisite information. Multi-buffer presents a multi-channel buffer arranged in a non-interleaved format where each channel has its own dedicated buffer, and the samples within each buffer are arranged sequentially in contiguous memory locations. The non-interleaved format is ideal for digital signal processing where it is necessary to perform operations on individual channels separately, often in parallel for maximum efficiency. As an example, the figure below shows the memory layout of a 4-channel non-interleaved format. Figure 1. 4 Channel Non-Interleaved Format A Multi-buffer can be conceptualized as a two-dimensional array. The first dimension in this representation corresponds to the samples (x-dimension), while the second dimension represents the channels (y-dimension). Essentially, you can access each individual sample using the two indices ch and i, where ch is the channel index and i is the sample index. mb[ch][i] Each dimension has a size which can be obtained this way: mb.size() // The number of channels mb[ch].size() // The number of frames per channel That way, you can iterate through the channels and samples this way: for (auto ch = 0; ch != mb.size() ++ch) { for (auto i = 0; i != mb[ch].size() ++i) { auto s = mb[ch][i]; // Do something with the sample `s` } } Alternately, you can iterate through the channels and samples in a channel, using C++ range-based for loop syntax, as follows: for (auto ch : mb.channels) { for (auto i : mb.frames) { auto s = mb[ch][i]; // Do something with the sample `s` } } Take note that this syntax is unorthodox in the way it uses C++ range-based for loop syntax. Instead of accessing the channels and samples directly, mb.channels and mb.frames both return a range of indices (corresponding to 0..N, where N is number of channels, for mb.channels or samples, for mb.frames). The design rationale is to always allow random access to all channels and all samples for each channel. For example, you might want to access both the left and right channels of a stereo (2-channel) multi-buffer and mix them: auto left = mb[0]; auto right = mb[1]; for (auto i : mb.frames) { auto mono = right[i] + left[i]; // Add the left and right channels // Do something with `mono` } mb[ch] returns a view of the channel. It does not copy the whole buffer. This \"view\" is lightweight and can be held and passed by value without worrying about performance. The previous example can extend to an N channel mixer this way: for (auto i : mb.frames) { auto sum = 0.0f; for (auto ch : mb.channels) sum += mb[ch][i]; // Do something with `sum` } If you simply need sequential access to the samples in a channel, you can do it this way: for (auto ch : mb.channels) { for (auto s : mb[ch]) { // Do something with the sample `s` } } #include template class multi_buffer { public: using sample_type = T; using buffer_view = iterator_range; using frames_view = iterator_range; using channels_view = iterator_range; // Unspecified constructor buffer_view operator[](std::size_t channel) const; std::size_t size() const; frames_view frames; channels_view channels; }; multi_buffer is a template class that implements the multi-buffer. The template paratemeter, T, is the sample type which is a model of the std::floating_point concept. iterator_range is a template class that holds two random access iterators. It is a model of IndexableContainer, and RandomAccessIteratable. The template parameter, I, is the iterator type. index_iterator is a model of the std::random_access_iterator concept. The value_type of the index_iterator is simply a std::size_t. multi_buffer is a model of IndexableContainer with buffer_view elements: an iterator-range containing pointers to the sample type (T*). multi_buffer has member variables frames and channels that are iterator-ranges containing index-iterators. T The sample type (typically float). MB multi_buffer type. mb Instance of multi_buffer. i Object of type std::size_t, used for indexing. Expression Semantics Type MB::sample_type Get the sample type. `T MB::buffer_view Get the iterator type. iterator_range MB::channel_view Get the channel view type. iterator_range MB::frames_view Get the frames view type. iterator_range The multi_buffer constructor is unspecified. The multi-buffer is not meant to be instantiated by the user. Expression Semantics Return Type mb[i] Index operator. MB::buffer_view mb.size() Get the number of channels. std::size_t mb.frames Get the frames view. MB::frames_view mb.channels Get the channels view. MB::channels_view","title":"Multi Buffer","component":"q","version":"v1.0_beta","name":"multi_buffer","url":"/q/v1.0_beta/reference/support/multi_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Usage","hash":"_usage","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Type Definitions","hash":"_type_definitions","id":7},{"text":"Constructor","hash":"_constructor","id":8},{"text":"Indexing","hash":"_indexing","id":9}]},"115":{"id":115,"text":"The Blackman taper is a type of window function that gradually tapers the amplitude of a signal towards the window’s edges. It is often used in digital signal processing to smooth a signal (smoothing discontinuities at the edges of sampled signals) or to reduce spectral leakage. The Blackman window has a wider main lobe and lower level side lobes than other windows. It is named after Robert Blackman, who first described it in 1958. The formula for the Blackman window is: w(n) = 0.42 - 0.5 * cos(2pi*n/(N-1)) + 0.08 * cos(4pi*n/(N-1)) Aside from its common use as a window function, the Q DSP library also utilizes the blackman window generator for modulating the audio signal and generating complex envelopes. #include struct blackman_gen { blackman_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; blackman_gen is a model of Generator. In addition to valid expressions for Generator, blackman_gen allows these expressions. g Object of type blackman_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics blackman_gen(w, sps) Construct blackman_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window. Two subclasses of blackman_gen are specialized for ramp generation: The Blackman upward ramp generator generates a rising curve with the shape of the first half of a Blackman window taper. The Blackman downward ramp generator generates a falling curve with the shape of the second half of a Blackman window taper. struct blackman_upward_ramp_gen : blackman_gen { blackman_upward_ramp_gen(duration width, float sps); void config(duration width, float sps); }; struct blackman_downward_ramp_gen : blackman_gen { blackman_downward_ramp_gen(duration width, float sps); void reset(); void config(duration width, float sps); }; blackman_upward_ramp_gen and struct blackman_downward_ramp_gen : blackman_gen ` are a models of `Ramp and implements all valid expressions of Ramp.","title":"Blackman Window Generator","component":"q","version":"v1.0_beta","name":"blackman_gen","url":"/q/v1.0_beta/reference/synth/blackman_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7},{"text":"Ramp Generators","hash":"_ramp_generators","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10}]},"116":{"id":116,"text":"envelope_gen is a highly configurable multi-segment envelope generator. Each segment is a Ramp that can be configured to have any conceivable shape. A few ramp shapes, including exponential, linear, blackman, and hann are provided. The user may add their own Ramp generator following a well defined c++ concept specification. The plot above is an example of a 5-segment envelope_gen output. The ramp segments S1 to S5 are as follows: blackman_upward_ramp_gen (see blackman_gen) hold_line_gen (see linear_gen) blackman_downward_ramp_gen (see blackman_gen) lin_downward_ramp_gen (see linear_gen) exp_downward_ramp_gen (see exponential_gen) The phases and transitions of the envelope gen are depicted in the following stylized state diagram. There are four phases of interest: Idle phase: The output sits at zero while waiting for the next attack signal Ⓐ. Attack phase: Initiated when the attack signal Ⓐ is received, e.g. when a key is pressed. Intermediate phase: Starts after the attack phase and ends before the release phase. Release phase: Initiated when the release signal Ⓡ is received, e.g when the key is released. The envelope_gen waits for an attack signal Ⓐ while in the idle phase. As soon as an attack signal Ⓐ is received, the state immediately transitions to the attack phase. The output ramps up from 0.0 to the specified attack level, over the specified attack duration. The envelope gen is not retriggerable. Attack signals Ⓐ are only permitted during the idle phase. Any attack signal Ⓐ received outside of the idle phase is disregarded. Use one envelope_gen instance per note. This is most natural with polyphonic voicing, but can also apply to monophonic voicing. For monophonic voicing, on an incoming attack signal Ⓐ, active instances are sent release signals Ⓡ, a new instance is created, and its attack phase is initiated. The output will then be the maximum of all active instances. After the attack phase, anything that comes in between the attack phase and release phase are intermmediate phases that are sequenced by the envelope_gen, one after the other. Intermmediate phases may include the decay phase, the hold phase and the sustain phase. For each intermediate phase, the output ramps up or down from the previous level to the phase’s level over the phase’s duration. Upon receiving the release signal Ⓡ, the envelope_gen immediately transitions to the release phase. This may occur at any point during the attack or intermediate phases. The current phase may be cut short when this happens, and without delay, the output ramps down to 0.0 over the specified release duration. Typically, the last intermediate segment is configured with a very long duration (e.g. for sustain), and normally a release signal Ⓡ will occur long before the last intermediate segment ends. If that is not the case, like for example if the sustain segment is a relatively short linear down ramp, it is possible to transition to the release phase before a release signal Ⓡ is received. After completion of the release phase, the envelope_gen returns back to the idle state. Each envelope segment has parameters for width (the duration of the segment), level (the end level of the segment), and of course the Ramp type. A make_envelope_segment free function, templated on the ramp type, is provided for making segments. #include struct envelope_segment { envelope_segment(envelope_segment const&); envelope_segment& operator=(envelope_segment const&); void level(float level); void config(duration width, float sps); void config(float level, duration width, float sps); /*** Unspecified member functions ***/ }; template inline envelope_segment make_envelope_segment(duration width, float level, float sps); s, a, b Objects of type envelope_segment. w Object of type duration. l Floating point value representing level (0.0 to 1.0). sps Floating point value representing samples per second. T Ramp type. Expression Semantics envelope_segment(s) Copy construct from s. a = b Assign b to a. Expression Semantics Return Type make_envelope_segment( w, l, sps) Make an envelope segment with specified Ramp type, T, level, l, width, w, and samples per second, sps. envelope_segment // Make a 10 ms exponential segment with a peak level of 1.0. auto s = make_envelope_segment(10_ms, 1.0f, sps); Expression Semantics s.level(l) Set the segment level to l. s.config(w, sps) Set the segment width, w, with samples per second, sps. s.config(l, w, sps) Set the segment level, l, width, w, with samples per second, sps. The envelope generator is basically a container (std::vector) of envelope segments. Multiple segments with distinct shape characteristics may be used to construct ADSR envelopes, AD envelopes, etc. #include struct envelope_gen : std::vector { using base_type = std::vector; template envelope_gen(T&& ...arg); void attack(); void release(); float operator()(); void reset(); float current() const; bool in_idle_phase() const; bool in_attack_phase() const; bool in_release_phase() const; std::size_t index() const; }; As a subclass of std::vector, you can use all the facilities of std::vector to compose a multi-segment envelope generator of varying complexity. Take note of the single forwarding constructor that accepts variable arguments. Its purpose is to reset envelope_gen automatically after construction. All arguments are forwarded to the base class. envelope_gen is a subclass of std::vector and inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for std::vector, envelope_gen allows these expressions. g Object of type envelope_gen. Expression Semantics Return Type g() Generate the next value. float Expression Semantics g.attack() Start the attack phase. g.release() Start the release phase. g.reset() Reset and move to the idle phase. Call envelope_gen::reset() whenever the segments change, such as when adding or removing segments from the segments container, to reset envelope_gen to the idle state. Expression Semantics Return Type g.current() Get the current level. float g.in_idle_phase() Return true if we are in the idle phase. bool g.in_attack_phase() Return true if we are in the attack phase. bool g.in_release_phase() Return true if we are in the release phase. bool g.index() Get the current index — the index of the latest active segment. std::size_t adsr_envelope_gen is a subclass of envelope_gen that offers specializations for generating envelopes of the ADSR type. This is a basic subclass that serves as a practical and prototypical envelope generator example. We will provide the full source code below, as an example of how to write an envelope generator. #include struct adsr_envelope_gen : envelope_gen { struct config { // Default settings duration attack_rate = 30_ms; duration decay_rate = 70_ms; decibel sustain_level = -6_dB; duration sustain_rate = 50_s; duration release_rate = 100_ms; }; adsr_envelope_gen(config const& config, float sps); void attack_rate(duration rate, float sps); void decay_rate(duration rate, float sps); void sustain_level(decibel level); void sustain_rate(duration rate, float sps); void release_rate(duration rate, float sps); }; inline adsr_envelope_gen::adsr_envelope_gen(config const& config_, float sps) : envelope_gen{ make_envelope_segment( config_.attack_rate, 1.0f, sps) // Attack (1) , make_envelope_segment( config_.decay_rate, lin_float(config_.sustain_level), sps) // Decay (2) , make_envelope_segment( config_.sustain_rate, 0.0f, sps) // Sustain (3) , make_envelope_segment( config_.release_rate, 0.0f, sps) // Release (4) } { } The config struct contains the constructor specifications for the ADSR paramneters, including attack_rate, decay_rate, sustain_level, sustain_rate, and release_rate. The user may specify these parameters like in this example: // Configure the adsr_envelope_gen auto env_cfg = q::adsr_envelope_gen::config { 300_ms // attack rate , 1_s // decay rate , -12_dB // sustain level , 5_s // sustain rate , 1_s // release rate }; // Instantiate an adsr_envelope_gen auto env_gen = q::adsr_envelope_gen{env_cfg, sps}; These parameters are used to construct the 4 segments comprising an ADSR envelope generator. Each of the segments are created using make_envelope_segment, passing in the Ramp type and the level, width, and samples per second. By defautl, the adsr_envelope_gen makes 4 segments with types: 1 exp_upward_ramp_gen for the attack segment, with peak level of 1.0. 2 exp_downward_ramp_gen for the decay segment, with level set to the sustain level. 3 lin_downward_ramp_gen for the sustain segment. This is a 5-second decaying linear ramp. 4 exp_downward_ramp_gen for the release segment, with level of 0.0. The remaining items are self-explanatory. These member functions permit the user to modify the five ADSR parameters following construction. The envelope segments are stored at indices 0 to 3 in the vector. // Set the attack rate inline void adsr_envelope_gen::attack_rate(duration rate, float sps) { (*this)[0].config(rate, sps); } // Set the decay rate inline void adsr_envelope_gen::decay_rate(duration rate, float sps) { (*this)[1].config(rate, sps); } // Set the sustain level inline void adsr_envelope_gen::sustain_level(decibel level) { (*this)[2].level(lin_float(level)); } // Set the sustain rate inline void adsr_envelope_gen::sustain_rate(duration rate, float sps) { (*this)[2].config(rate, sps); } // Set the release rate inline void adsr_envelope_gen::release_rate(duration rate, float sps) { (*this)[3].config(rate, sps); }","title":"Envelope Generator","component":"q","version":"v1.0_beta","name":"envelope_gen","url":"/q/v1.0_beta/reference/synth/envelope_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Phases and Transitions","hash":"_phases_and_transitions","id":2},{"text":"Envelope Segment","hash":"_envelope_segment","id":3},{"text":"Include","hash":"_include","id":4},{"text":"Declaration","hash":"_declaration","id":5},{"text":"Expressions","hash":"_expressions","id":6},{"text":"Notation","hash":"_notation","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Factory","hash":"_factory","id":9},{"text":"Example","hash":"_example","id":10},{"text":"Mutators","hash":"_mutators","id":11},{"text":"Envelope Generator","hash":"_envelope_generator","id":12},{"text":"Include","hash":"_include_2","id":13},{"text":"Declaration","hash":"_declaration_2","id":14},{"text":"Expressions","hash":"_expressions_2","id":15},{"text":"Notation","hash":"_notation_2","id":16},{"text":"Function Call","hash":"_function_call","id":17},{"text":"Operation","hash":"_operation","id":18},{"text":"Accessors","hash":"_accessors","id":19},{"text":"ADSR Envelope Generator","hash":"_adsr_envelope_generator","id":20},{"text":"Include","hash":"_include_3","id":21},{"text":"Declaration","hash":"_declaration_3","id":22},{"text":"Implementation","hash":"_implementation","id":23},{"text":"Constructor","hash":"_constructor","id":24},{"text":"Mutators","hash":"_mutators_2","id":25}]},"117":{"id":117,"text":"exp_upward_ramp_gen is an exponential upward ramp generator that generates an exponentially increasing amplitude from 0.0 to 1.0, similar to a capacitor charged by a series resistor over time specified by the duration (width) and samples per second (sps), and optional exponential curvature (cv) parameters. exp_downward_ramp_gen is the inverse of the exponential upward ramp generator. This is similar to a capacitor discherged through a resistor. The Q DSP library utilizes the exponential ramp generators for generating complex envelopes. #include struct exp_upward_ramp_gen { exp_upward_ramp_gen(duration width, float sps, float cv = 0.95); float operator()(); void config(duration width, float sps); void config(duration width, float sps, float cv); void reset(); }; struct exp_downward_ramp_gen : exp_upward_ramp_gen { using exp_upward_ramp_gen::exp_upward_ramp_gen; float operator()(); }; exp_upward_ramp_gen and exp_downward_ramp_gen are a models of Ramp. In addition to valid expressions for Ramp, exp_upward_ramp_gen and exp_downward_ramp_gen allow these expressions. g Object of type exp_upward_ramp_gen or exp_downward_ramp_gen. w Object of type duration. sps Floating point value representing samples per second. cv Exponential curvature. The cv constructor and config parameter determines the curvature of the exponential. Valid cv values range greater than 0.0 to anything less than 1.0. cv is the final value in the exponential curve that will be considered as the peak value that will be scaled up to 1.0. Increasing the cv value leads to more pronounced curves. Lower cv values produce flatter, more linear ramps. The default is 0.95. Expression Semantics exp_upward_ramp_gen(w, sps, cv) Construct exp_upward_ramp_gen given width, w, and samples per second, sps, and exponential curvature, cw. exp_downward_ramp_gen(w, sps, cv) Construct exp_downward_ramp_gen given width, w, and samples per second, sps, and exponential curvature, cw. C++ brace initialization may also be used. Expression Semantics g.config(w, sps, cw) Set the ramp width, w, with samples per second, sps, and exponential curvature, cw.","title":"Exponential Ramp Generator","component":"q","version":"v1.0_beta","name":"exponential_gen","url":"/q/v1.0_beta/reference/synth/exponential_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"118":{"id":118,"text":"The Hamming window, named for R. W. Hamming, is a window function that tapers a signal towards its edges with non-zero endpoints. The Hamming window features a moderate rolloff rate and optimized to minimize the nearest side lobe, allowing for a fair mix of spectral resolution and noise reduction. The formula for the Hamming window is: w(n) = 0.54 - 0.46 * cos(2pi*n/(N-1)) Aside from its common use as a window function, the Q DSP library also utilizes the hamming window generator for modulating the audio signal and generating complex envelopes. #include struct hamming_gen { hamming_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; hamming_gen is a model of Generator. In addition to valid expressions for Generator, hamming_gen allows these expressions. g Object of type hamming_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics hamming_gen(w, sps) Construct hamming_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window.","title":"Hamming Window Generator","component":"q","version":"v1.0_beta","name":"hamming_gen","url":"/q/v1.0_beta/reference/synth/hamming_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"119":{"id":119,"text":"The Hann window, also known as the Cosine Bell, is named after the Austrian meteorologist Julius von Hann. The Hann window is a taper formed with a cosine raised above zero. It is used as one of many windowing functions for smoothing values. The The Hann window taper belongs to both the cosine-sum and sine-power families. Unlike the Hamming window, the Hann window’s end points touch zero. The formula for the Hann window is: w(n) = 0.5*(1 - cos(2pin/(N-1))) Aside from its common use as a window function, the Q DSP library also utilizes the hann window generator for modulating the audio signal and generating complex envelopes. #include struct hann_gen { hann_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; hann_gen is a model of Generator. In addition to valid expressions for Generator, hann_gen allows these expressions. g Object of type hann_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics hann_gen(w, sps) Construct hann_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window. Two subclasses of hann_gen are specialized for ramp generation: The Hann upward ramp generator generates a rising curve with the shape of the first half of a Hann window taper. The Hann downward ramp generator generates a falling curve with the shape of the second half of a Hann window taper. struct hann_upward_ramp_gen : hann_gen { hann_upward_ramp_gen(duration width, float sps); void config(duration width, float sps); }; struct hann_downward_ramp_gen : hann_gen { hann_downward_ramp_gen(duration width, float sps); void reset(); void config(duration width, float sps); }; hann_upward_ramp_gen and struct hann_downward_ramp_gen : hann_gen ` are a models of `Ramp and implements all valid expressions of Ramp.","title":"Hann Window Generator","component":"q","version":"v1.0_beta","name":"hann_gen","url":"/q/v1.0_beta/reference/synth/hann_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7},{"text":"Ramp Generators","hash":"_ramp_generators","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10}]},"120":{"id":120,"text":"The linear upward ramp generator, lin_upward_ramp_gen generates a linearly increasing amplitude from 0.0 to 1.0 specified by the duration (width) and samples per second (sps parameters. This is essentially a basic straight ramp from 0.0 to 1.0. lin_downward_ramp_gen is the inverse of the linear upward ramp generator. This is essentially a basic straight ramp from 1.0 to 0.0. hold_line_gen is an infinitely wide straight horizontal line at 1.0. The Q DSP library utilizes the linear ramp generators for generating complex envelopes. #include struct lin_upward_ramp_gen { lin_upward_ramp_gen(duration width, float sps); float operator()(); void config(duration width, float sps); void reset(); }; struct lin_downward_ramp_gen : lin_upward_ramp_gen { lin_downward_ramp_gen(duration width, float sps); float operator()(); }; struct hold_line_gen { hold_line_gen(duration width, float sps); float operator()(); void config(duration width, float sps); void reset(); }; lin_upward_ramp_gen, lin_downward_ramp_gen and hold_line_gen are a models of Ramp and implements all valid expressions of Ramp.","title":"Linear Ramp Generator","component":"q","version":"v1.0_beta","name":"linear_gen","url":"/q/v1.0_beta/reference/synth/linear_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"121":{"id":121,"text":"The pulse wave oscillator programmatically generates a pulse waveform with specified pulse width. The basic_pulse_osc is not bandwidth limited, while pulse_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_pulse_osc { constexpr basic_pulse_osc(float width = 0.5); constexpr void width(float width); constexpr float operator()(phase p); constexpr float operator()(phase_iterator i); }; struct pulse_osc : basic_pulse_osc { constexpr pulse_osc(float width = 0.5); constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; basic_pulse_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. pulse_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. In addition to valid expressions for BasicOscillator and BandwidthLimitedOscillator, basic_pulse_osc and pulse_osc allow these expressions. w A floating point value from 0.0 to 1.0 representing pulse width. ps Object of type basic_pulse_osc or pulse_osc Expression Semantics basic_pulse_osc(w) Construct a basic_pulse_osc given a pulse width, w pulse_osc(w) Construct a pulse_osc given a pulse width, w C++ brace initialization may also be used. Expression Semantics ps.width(w) Set the basic_pulse_osc or pulse_osc pulse width to w.","title":"Pulse Wave Oscillator","component":"q","version":"v1.0_beta","name":"pulse_osc","url":"/q/v1.0_beta/reference/synth/pulse_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"122":{"id":122,"text":"The saw-tooth wave oscillator programmatically generates the waveform. The result is basically just the phase, centered around zero, producing an amplitude of ±1.0. The basic_saw_osc is not bandwidth limited, while saw_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_saw_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_saw = basic_saw_osc{}; struct saw_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto saw = saw_osc{}; basic_saw_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. saw_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_saw_osc and saw_osc are stateless. The global instances basic_saw and saw can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Saw-Tooth Wave Oscillator","component":"q","version":"v1.0_beta","name":"saw_osc","url":"/q/v1.0_beta/reference/synth/saw_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"123":{"id":123,"text":"sin_cos_gen is an oscillator that simultaneously generates sine and cosine waveforms. sin_cos_gen is implemented utilizing Hal Chamberlin’s state variable IIR filter, a digital derivation of the analog state variable filter optimized for infinite Q oscillation. sin_cos_gen is suitable as a low frequency sine wave oscillator. The upper frequency limit for stability is roughly 1/6 sps. At low frequencies, the waveform symmetry is very pure, but it becomes skewed as you approach the upper limit. For low frequencies, we can reduce the calculation of the coefficient to 2*Pi*freq/sps. When utilized with fixed point or IEEE floating point, the oscallator should run forever without instability. While sin_cos_gen is technically an oscillator which generates periodic waveforms, it is presented as a model of Generator because it does not conform to the Oscillator concept which requires complete control over the phase. Although sin_cos_gen is technically an oscillator that produces periodic waveforms, it is represented as a model of a Generator because it does not adhere to the Oscillator concept, which requires complete control over the phase for synchronicity. As a free-running oscillator,sin_cos_gen can exhibit phase drift over time due to accumulating floating-point errors. Source: The digital state variable filter #include struct sin_cos_gen { sin_cos_gen(frequency f, float sps); std::pair operator()(); void config(frequency f, float sps); void reset(float sin = 0.0f, float cos = 1.0f); void midpoint(); }; sin_cos_gen is a model of Generator. In addition to valid expressions for Generator, sin_cos_gen allows these expressions. g Object of type sin_cos_gen. f Object of type frequency. sps Floating point value representing samples per second. sval, cval Floating point value values. Expression Semantics sin_cos_gen(f, sps) Construct sin_cos_gen given frequency, f, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics Return Type g() Generate a sin/cos signal and get both sin and cos result. The return type is a std::pair which stores the sin and cos results. std::pair g().first Generate a sin/cos signal and get only the sin result. float g().second Generate a sin/cos signal and get only the cos result. float Expression Semantics g.config(f, sps) Set the frequency, f, with samples per second, sps. g.reset() Reset the current sin and cos to 0.0f and 1.0f, respectively. g.reset(sval, cval) Reset the current sin and cos values, respectively. g.midpoint() Equivalent to g.reset(0.0f, -1.0f).","title":"Sine Cosine Generator","component":"q","version":"v1.0_beta","name":"sin_cos_gen","url":"/q/v1.0_beta/reference/synth/sin_cos_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"124":{"id":124,"text":"The sine wave oscillator is one of the most fundamental building blocks in synthesis. It generates a basic, pure waveform consisting of a single frequency with no harmonics or overtones. The sine wave oscillator is often used in additive synthesis to create complex waveforms by combining simple sine waves of various frequencies, phases, and amplitudes. It is also often used as a low-frequency oscillator for modulating various audio parameters, such as frequency and amplitude. sin_osc efficiently synthesizes sine waves from a lookup table to avoid performing complex calculations in real-time. The lookup table is optimized for use in small MCUs (microconrrollers), by having the data stored as c++ constexpr array, which is effectively placed in flash memory. #include struct sin_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto sin = sin_osc{}; sin_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. sin_osc is stateless. The global instance sin can be used anywhere without needing to be placed in a class or struct. It is semantically equivalent to a global function.","title":"Sine Wave Oscillator","component":"q","version":"v1.0_beta","name":"sin_osc","url":"/q/v1.0_beta/reference/synth/sin_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"125":{"id":125,"text":"The square wave oscillator programmatically generates a pulse waveform with a 50% pulse width. The basic_square_osc is not bandwidth limited, while square_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_square_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_square = basic_square_osc{}; struct square_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto square = square_osc{}; basic_square_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. square_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_square_osc and square_osc are stateless. The global instances basic_square and square can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Square Wave Oscillator","component":"q","version":"v1.0_beta","name":"square_osc","url":"/q/v1.0_beta/reference/synth/square_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"126":{"id":126,"text":"The triangle wave oscillator programmatically generates a triangle waveform that ramps up from 0.0 to 1.0, then ramps down to -1.0, and ramps back up to 0.0. The basic_triangle_osc is not bandwidth limited, while triangle_osc is, using a technique called \"PolyBLAMP\" to reduce aliasing artifacts that can occur when generating the triangle waveform with sharp corners. PolyBLAMP uses the BLAMP (bandlimited ramp) function to treat any discontinuities found in the first derivative of a signal by quasi-bandlimiting the corners found in the waveform. The algorithm derives a polynomial approximation of the BLAMP function, making it efficient for implementation. This correction function is applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_triangle_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_triangle = basic_triangle_osc{}; struct triangle_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto triangle = triangle_osc{}; basic_triangle_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. triangle_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_triangle_osc and triangle_osc are stateless. The global instances basic_triangle and triangle can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Triangle Wave Oscillator","component":"q","version":"v1.0_beta","name":"triangle_osc","url":"/q/v1.0_beta/reference/synth/triangle_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"127":{"id":127,"text":"The decibel (dB) is a unit used to measure the relative signal level difference between two signals. It is a logarithmic scale that expresses the relationship between two signal root-power amplitudes or power levels. Here, we are concerned with amplitudes. For amplitudes gain, the relationship is given by: 20 log10(out/in) = dB where out represents the output amplitude, while in represents the input amplitude. The decibel scale is expressed as the base 10 logarithm of the ratio between two amplitudes. For instance, a ratio of 2:1 (two times) corresponds to a 6 dB increase, while a ratio of 10:1 (ten times) corresponds to a 20 dB increase. In contrast, a ratio of 1:2 (one half) corresponds to a -6 dB decrease, whereas a ratio of 1:10 (one tenth) corresponds to a -20 dB decrease. Decibel is non-linear and operates on the logarithmic domain. The decibel class is perfectly suitable for dynamics processing (e.g. compressors and limiters and envelopes). Q provides fast decibel computations using fast math functions and lookup tables for converting to and from scalars. #include struct decibel_unit; struct decibel : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = decibel_unit; }; // Free functions double lin_double(decibel db); constexpr float lin_float(decibel db); inline decibel approx_db(float val); decibel lin_to_db(double val); // Literals inline namespace literals { constexpr decibel operator \"\" _dB(unsigned long long int val); constexpr decibel operator \"\" _dB(long double val); } decibel is a model of Unit. In addition to valid expressions for Unit, decibel allows these expressions. d Object of type decibel. v Linear floating point value. 0.0 A floating point literal number. 0 An integer literal number. Take note that the Unit concept already has a constructor from a floating point value that handles direct construction such as: auto db = decibel{6.0}; // 6 dB This constructor was used in previous versions of the library to convert linear to decibels, which can be confusing. This version ought to have corrected this nonintuitive semantics, but this is a disruptive change that will alter the semantics of all existing code without warning. In order to avoid further confusion, we will mark this constructor as deleted for the time being, making it a hard error to alert users upgrading to this library version. C++ brace initialization may also be used. Expression Semantics Return Type lin_float(d) Convert decibel to a linear value. float lin_double(d) Convert decibel to a linear value. double lin_to_db(v) Convert a linear value v to decibel. decibel approx_db(v) Faster approximate conversion from a linear value v to decibel. decibel The free function lin_to_db can be used to indirectly construct and return a decibel object from a linear value. The lin_to_db function performs linear to decibel conversion. Example: auto db = lin_to_db(2.0); // 6 dB In addition to lin_to_db, approx_db is another free function that performs linear to decibel conversion. It is a faster, but less accurate conversion function from a linear value to decibel. lin_float and lin_double convert decibel to a linear value with float and double results, respectively. If you need to create decibel from numeric constants, it is preferrable to use decibel literals instead. Example: auto db = -6_dB; Expression Semantics 0.0_dB Returns 0.0 dB. 0_dB Returns 0.0 dB. Take note that 0.0 and 0 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _dB literal, it is generally safe to bring its namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"decibel","component":"q","version":"v1.0_beta","name":"decibel","url":"/q/v1.0_beta/reference/units/decibel.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Literals","hash":"_literals","id":8}]},"128":{"id":128,"text":"Type safe representation of duration: the length of time that something lasts or continues, measured in seconds. #include struct duration_unit; struct duration : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = duration_unit; }; // Free functions constexpr double as_double(duration d); constexpr float as_float(duration d); // Literals inline namespace literals { constexpr duration operator \"\" _s(long double val); constexpr duration operator \"\" _s(unsigned long long int val); constexpr duration operator \"\" _ms(long double val); constexpr duration operator \"\" _ms(unsigned long long int val); constexpr duration operator \"\" _us(long double val); constexpr duration operator \"\" _us(unsigned long long int val); } In addition to valid expressions for Unit, duration allows these expressions. d Object of type duration 1.0 A floating point literal number. 1 An integer literal number. Expression Semantics Return Type as_float(d) Convert duration to a float in seconds. float as_double(d) Convert duration to a double in seconds. double If you need to create duration from numeric constants, it is preferrable to use duration literals instead. Example: auto d = 6_ms; Expression Semantics 1.0_s Returns a duration of 1.0 seconds. 1_s Returns a duration of 1.0 seconds. 1.0_ms Returns a duration of 1.0 milliseconds. 1_ms Returns a duration of 1.0 milliseconds. 1.0_us Returns a duration of 1.0 microseconds. 1_us Returns a duration of 1.0 microseconds. Take note that 1.0 and 1 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _s, _ms, and _us literals, it is generally safe to bring their namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"duration","component":"q","version":"v1.0_beta","name":"duration","url":"/q/v1.0_beta/reference/units/duration.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Conversions","hash":"_conversions","id":6},{"text":"Literals","hash":"_literals","id":7}]},"129":{"id":129,"text":"Type safe representation of frequency: the number of cycles or oscillations of a periodic event per unit of time, measured in Hertz. #include struct frequency_unit; struct frequency : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = frequency_unit; constexpr q::period period() const; }; // Free functions constexpr double as_double(frequency f); constexpr float as_float(frequency f); // Literals inline namespace literals { constexpr frequency operator \"\" _Hz(long double val); constexpr frequency operator \"\" _Hz(unsigned long long int val); constexpr frequency operator \"\" _KHz(long double val); constexpr frequency operator \"\" _KHz(unsigned long long int val); constexpr frequency operator \"\" _kHz(long double val); constexpr frequency operator \"\" _kHz(unsigned long long int val); constexpr frequency operator \"\" _MHz(long double val); constexpr frequency operator \"\" _MHz(unsigned long long int val); } frequency is a model of Unit. In addition to valid expressions for Unit, frequency allows these expressions. f Object of type frequency. 1.0 A floating point literal number. 1 An integer literal number. Expression Semantics Return Type as_float(f) Convert frequency to a float. float as_double(f) Convert frequency to a double. double Expression Semantics Return Type f.period() Get the period (reciprocal of frequency). period If you need to create frequency from numeric constants, it is preferrable to use frequency literals. Example: auto d = 440_Hz; Expression Semantics 1.0_Hz Returns a frequency of 1.0 Hz. 1_Hz Returns a frequency of 1.0 Hz. 1.0_kHz Returns a frequency of 1.0 kHz. 1_kHz Returns a frequency of 1.0 kHz. 1.0_KHz Returns a frequency of 1.0 kHz. 1_KHz Returns a frequency of 1.0 kHz. 1.0_MHz Returns a frequency of 1.0 MHz. 1_MHz Returns a frequency of 1.0 MHz. Take note that 1.0 and 1 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _Hz, _kHz, and _MHz literals, it is generally safe to bring their namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"frequency","component":"q","version":"v1.0_beta","name":"frequency","url":"/q/v1.0_beta/reference/units/frequency.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Conversions","hash":"_conversions","id":6},{"text":"Misc","hash":"_misc","id":7},{"text":"Literals","hash":"_literals","id":8}]},"130":{"id":130,"text":"An interval is the distance between two pitches, measured in semitones. It is the basis for melody and harmony as well as all musical scales and chords. The basic_interval is a template class, parameterized by the underlying type T. #include struct interval_unit; template struct basic_interval : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = interval_unit; constexpr explicit basic_interval(concepts::Arithmetic auto val); }; // Free functions template constexpr int as_int(basic_interval i); template constexpr float as_float(basic_interval i); template constexpr double as_double(basic_interval i); template requires std::floating_point constexpr basic_interval round(basic_interval i); template requires std::floating_point constexpr basic_interval ceil(basic_interval i); template requires std::floating_point constexpr basic_interval floor(basic_interval i); There are two basic type aliases: interval and exact_interval, which are template instantiations of the basic_interval template class: interval Fractional interval. Can represent microtones —intervals smaller than a semitone. exact_interval Exact, whole number intervals. using interval = basic_interval; using exact_interval = basic_interval; basic_interval is a model of Unit. In addition to valid expressions for Unit, Intervals allow these expressions. i Object of type basic_interval. Expression Semantics Return Type as_int(i) Convert an interval to an int. int as_float(i) Convert an interval to a float. float as_double(i) Convert an interval to a double. double Expression Semantics Return Type round(i) Rounds i to the nearest non-fractional interval. basic_interval ceil(i) Returns the smallest non-fractional interval that is greater than or equal i. basic_interval floor(i) Returns the largest non-fractional interval that is less than or equal i. basic_interval The round, ceil and floor functions require T to be a floating point type.","title":"Interval","component":"q","version":"v1.0_beta","name":"interval","url":"/q/v1.0_beta/reference/units/interval.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Template Instantiations","hash":"_template_instantiations","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Functions","hash":"_functions","id":8}]},"131":{"id":131,"text":"Type safe representation of period: the reciprocal of frequency, or the time it takes for a periodic event to complete one full cycle or oscillation. #include period is a subclass of {duration} and inherits all its public member functions, member variables, and types. struct period : duration { using duration::duration; constexpr period(duration d); constexpr period(frequency f); }; As a subclass of duration, period inherits all the publicly accessible member functions, member variables, and types of its base class. period is a model of Unit. In addition to valid expressions for Unit, period allows these expressions. d Object of type duration f Object of type frequency p Object of type period Expression Semantics phase(d) Construct a period given a duration, d phase(f) Construct a period given a frequency, f C++ brace initialization may also be used. Expression Semantics Return Type as_float(f) Convert frequency to a float in seconds. float as_double(f) Convert frequency to a double in seconds. double","title":"period","component":"q","version":"v1.0_beta","name":"period","url":"/q/v1.0_beta/reference/units/period.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7}]},"132":{"id":132,"text":"Type safe representation of phase: the relationship in timing between a periodic signal relative to a reference periodic signal of the same frequency. Phase values run from 0 to 2π. The turn, also cycle, full circle, revolution, and rotation, is a complete circular movement or measure (as to return to the same point) with circle or ellipse. A turn is abbreviated τ, cyc, rev, or rot depending on the application. The symbol τ can also be used as a mathematical constant to represent 2π radians. https://en.wikipedia.org/wiki/Angular_unit phase is represented in a fixed-point 1.31 format where 31 bits are fractional. Such a format is perfectly suitable for oscillators. For that purpose, a phase accumulator can be used: essentially a counter that keeps track of the current phase value for the waveform. Initially, the accumulator is set to an arbitrary starting phase, usually 0. To generate the next sample of the waveform, we compute the phase value for the next sample based on the desired frequency and the sample rate. This value is then added to the current phase accumulator value. This process continues for each successive sample in the waveform. The advantage of using fixed point 1.31 to represent phase is that the phase accumulator inherently rewraps the value when the next phase exceeds 2π. This behavior is inherent to the fixed-point 1.31 format and eliminates the need for additional logic to handle the wraparound condition. Also, see phase_iterator for further additional relevant information. #include struct phase_unit; struct phase : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = phase_unit; constexpr phase(); constexpr phase(frequency freq, float sps); constexpr static phase begin(); constexpr static phase end(); constexpr static phase middle(); }; // Free functions constexpr phase frac_to_phase(std::floating_point auto frac); constexpr double frac_double(phase d); constexpr float frac_float(phase p); phase is a model of Unit. In addition to valid expressions for Unit, phase allows these expressions. frac A floating point number, representing a fractional number from 0.0 to 1.0 (corresponding to 0 to 2π). freq Object of type frequency. sps Floating point value representing samples per second. p Object of type phase. val The underlying data type representing phase. See Unit. Expression Semantics phase() Default construct a phase. Equivalent to phase(0). phase(freq, sps) Construct a phase from the freq and sps C++ brace initialization may also be used. Expression Semantics Return Type frac_float(p) Convert phase to a float from 0.0 to 1.0. float frac_double(p) Convert phase to a double from 0.0 to 1.0r. double frac_to_phase(frac) Convert a floating point fractional value to a phase phase Expression Semantics Return Type phase::begin() Get the minimum phase representing 0° phase phase::end() Get the maximum phase representing 360° (2π) phase phase::middle() Get the phase representing 180° (π) phase","title":"phase","component":"q","version":"v1.0_beta","name":"phase","url":"/q/v1.0_beta/reference/units/phase.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Accessors","hash":"_accessors","id":8}]},"133":{"id":133,"text":"Read phase first for prerequisite information. phase_iterator is a class that iterates over the phase with an iteration step size specified by the given frequency and sampling rate. phase_iterator holds two phase members, the phase accumulator and the phase step size. The phase accumulator, keeps track of the current phase value for the waveform. Initially, the accumulator is set to an arbitrary starting phase, usually 0. For each sample of the waveform, the phase step size value is added to the current phase accumulator, which inherently rewraps the value when the next phase exceeds 2π. #include struct phase_iterator { constexpr phase_iterator(); constexpr phase_iterator(frequency freq, float sps); constexpr phase_iterator operator++(int); constexpr phase_iterator& operator++(); constexpr phase_iterator operator--(int); constexpr phase_iterator& operator--(); constexpr phase_iterator& operator=(phase rhs); constexpr phase_iterator& operator=(phase_iterator const& rhs) = default; constexpr void set(frequency freq, float sps); constexpr bool first() const; constexpr bool last() const; constexpr phase_iterator begin() const; constexpr phase_iterator end() const; constexpr phase_iterator middle() const; phase _phase, _step; }; freq Object of type frequency sps Floating point value representing samples per second i, a, b Objects of type phase_iterator p Objects of type phase Expression Semantics phase_iterator() Default construct a phase_iterator. phase_iterator(freq, sps) Construct a phase_iterator from the freq and sps phase_iterator(i) Copy construct from phase_iterator i. a = b Assign phase_iterator b, to phase_iterator a. i = p Assign phase p, to phase_iterator i. See Modifying The State. C++ brace initialization may also be used. Expression Semantics Return Type i++ Post increment. Returns a copy of the iterator made prior to increment. phase_iterator ++i Pre increment. Increment and return a reference to the iterator. phase_iterator& i-- Post decrement. Returns a copy of the iterator made prior to decrement. phase_iterator --i Pre decrement. Decrement and return a reference to the iterator. phase_iterator& Expression Semantics Return Type set(freq, sps) Modify a phase_iterator given a new freq and sps. See Modifying The State. void When modifying a phase_iterator with a new frequency, freq, and sampling rate, sps, only the phase step size will be changed. To prevent discontinuities, the phase accumulator will not be touched. This means that the phase accumulator will continue to count up from its previous value, while the updated phase step size will determine the new frequency. Expression Semantics Return Type i.first() Returns true if the phase_iterator is at the start of the waveform cycle (0° or 0 rad). I.e. the phase accumulator is within 0 to phase step size. bool i.last() Returns true if the phase_iterator is at the end of the waveform cycle (360° or 2π rad). I.e. the phase accumulator is within phase step size below 2π. bool i.begin() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the start of the waveform cycle (0° or 0 rad). phase_iterator i.end() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the end of the waveform cycle (360° or 2π rad). phase_iterator i.middle() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the middle of the waveform cycle (180° or π rad) phase_iterator i._phase Direct access to the phase accumulator. phase& i._step Direct access to the phase step size. phase&","title":"phase_iterator","component":"q","version":"v1.0_beta","name":"phase_iterator","url":"/q/v1.0_beta/reference/units/phase_iterator.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignments","hash":"_constructors_and_assignments","id":6},{"text":"Iteration","hash":"_iteration","id":7},{"text":"Mutator","hash":"_mutator","id":8},{"text":"Modifying The State","hash":"_modifying_the_state","id":9},{"text":"Accessors","hash":"_accessors","id":10}]},"134":{"id":134,"text":"pitch is determined by its position on the chromatic scale, which is a system of 12 notes that repeat in octaves. The distance between each pitch on the chromatic scale is a semitone, and each pitch represents a specific frequency measured in hertz (Hz). pitch is an interval with a base frequency of 8.1757989156437 Hz that correspond to MIDI note 0 (which is an octave below F#0). pitch is represented by the MIDI value. Therefore, only positive values are valid. pitch includes construction from frequency as well as numeric values representing the absolute position in the chromatic scale from the base frequency. pitch also includes conversions to frequency. Conversions to and from frequency utilize fast log2 and pow2 computations using fast math functions. #include struct pitch : interval { constexpr static auto base_frequency = frequency{8.1757989156437}; constexpr pitch(); explicit pitch(frequency f); constexpr bool valid() const; // These operations do not make sense and are not allowed. pitch& operator+=(pitch) = delete; pitch& operator-=(pitch) = delete; }; // Free functions frequency as_frequency(pitch n); float as_float(pitch n); double as_double(pitch n); constexpr pitch round(pitch n); constexpr pitch ceil(pitch n); constexpr pitch floor(pitch n); // These operations do not make sense and are not allowed. pitch operator+(pitch, pitch) = delete; pitch operator-(pitch, pitch) = delete; In addition to valid expressions for interval, pitch allows these expressions. p, a, b Objects of type pitch f Object of type frequency Expression Semantics pitch(f) Construct a pitch from frequency f. pitch() Default construct a pitch. The result is an invalid pitch by default where p.rep == -1.0. C++ brace initialization may also be used. Expression Semantics Return Type as_float(p) Convert pitch to a float. float as_double(p) Convert pitch to a double. double as_frequency(p) Convert pitch to a frequency. frequency Expression Semantics Return Type p.valid() Returns true if p is valid. p is valid if p.rep >= 0.0 bool round(p) Rounds p to the nearest non-fractional pitch. pitch ceil(p) Returns the smallest non-fractional pitch that is greater than or equal i pitch floor(p) Returns the largest non-fractional pitch that is less than or equal i pitch These valid expressions for interval do not make sense for pitch and are no longer allowed. Expression a += b a -= b a + b a - b","title":"pitch","component":"q","version":"v1.0_beta","name":"pitch","url":"/q/v1.0_beta/reference/units/pitch.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Functions","hash":"_functions","id":8},{"text":"Deleted Functions","hash":"_deleted_functions","id":9}]},"135":{"id":135,"text":"Fractional ring buffer allows sub-sample indexing using interpolation. fractional_ring_buffer is a subclass of ring_buffer that overloads the index operator to provide sub-sample indexing. #include template , typename Index = float , typename Interpolation = sample_interpolation::linear> class fractional_ring_buffer : public ring_buffer { public: using value_type = T; using storage_type = Storage; using index_type = Index; using interpolation_type = Interpolation; using ring_buffer::ring_buffer; // get data (index can be fractional) T const operator[](Index index) const; }; As a subclass of ring_buffer, fractional_ring_buffer inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for ring_buffer, fractional_ring_buffer allows these expressions. T Element type, e.g. float. S Storage type, e.g. std::vector. I Index type, e.g. float. X Interpolation type, e.g. sample_interpolation::linear. rb_type A fractional_ring_buffer type. rb Object of type fractional_ring_buffer. i Object of type I. a [, b, c, d] Required a, optional b, c, d. Expression Semantics fractional_ring_buffer Instantiate a fractional_ring_buffer type given: Element type T Storage type S (optional) Index type I (optional) Interpolation type, X (optional) using rb_type1 = fractional_ring_buffer using rb_type2 = fractional_ring_buffer> using rb_type3 = fractional_ring_buffer, float> using rb_type4 = fractional_ring_buffer Expression Semantics rb_type::value_type Get the underlying element type. rb_type::storage_type Get the underlying storage type. rb_type::index_type Get the underlying index type. rb_type::interpolation_type Get the underlying interpolation type. Expression Semantics Return Type rb[i] Get the element at index i. rb[0] refers to the latest element. rb[rb.size()-1] refers to the oldest element. Index can be fractional (e.g. rb[2.5]). T& or T const& if rb is const. i rb.size()-1 is undefined behavior.","title":"Fractional Ring Buffer","component":"q","version":"v1.0_beta","name":"fractional_ring_buffer","url":"/q/v1.0_beta/reference/utility/fractional_ring_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"136":{"id":136,"text":"The ring buffer is a fixed-size buffer that is regarded as if it were circular. When data is written to the buffer, it is stored in sequential order up to its size, after which new data will overwrite the oldest data in the buffer. ring_buffer is a template class parameterized by the underlying element type, T, and the type of storage used, which defaults to std::vector, although it is also possible to use fixed sized storage such as std::array as long as the size is a powers of 2. For efficiency, the ring buffer storage will maintain a size that is the power of 2. The ring_buffer is not resizable after construction. #include template > class ring_buffer { public: using value_type = T; using storage_type = Storage; explicit ring_buffer(); explicit ring_buffer(std::size_t size); ring_buffer(ring_buffer const& rhs) = default; ring_buffer(ring_buffer&& rhs) = default; ring_buffer& operator=(ring_buffer const& rhs) = default; ring_buffer& operator=(ring_buffer&& rhs) = default; std::size_t size() const; void push(T val); T const& front() const; T& front(); T const& back() const; T& back(); T const& operator[](std::size_t index) const; T& operator[](std::size_t index); void clear(); void pop_front(); Storage& store(); const Storage& store() const; }; T Element type, e.g. float. S Storage type, e.g. std::vector. rb_type A ring_buffer type. rb, a, b Objects of type ring_buffer. val Object of type T. i Object of type std::size_t. s Object of type std::size_t. a [, b, c, d] Required a, optional b, c, d. Expression Semantics ring_buffer Instantiate a ring_buffer type given: Element type T Storage type S (optional) using rb_type1 = ring_buffer using rb_type2 = ring_buffer> Expression Semantics rb_type::value_type Get the underlying element type. rb_type::storage_type Get the underlying storage type. Expression Semantics rb_type() Default construct a ring buffer. This constructor is only applicable when a fixed sized storage is specified. rb_type(s) Construct a ring buffer with specified size, s. This constructor is only applicable when a resizable storage is specified. The actual buffer size will be the minimum power of 2 greater than size. greater than s. rb_type(rb) Copy construct from rb_type rb. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics rb.push(val) Push the latest element, overwriting the oldest element. rb.clear() Clear the ring buffer. rb.pop_front() Pop the latest element. This operation will not destruct the element, but will instead allow the ring buffer to overwrite the element on the next push. Expression Semantics Return Type rb.size() Get the ring buffer’s size. std::size_t. rb.front() Get the latest element. T& or T const& if rb is const. rb.back() Get the oldest element. T& or T const& if rb is const. rb[i] Get the element at index i. rb[0] refers to the latest element. rb[rb.size()-1] refers to the oldest element. T& or T const& if rb is const. rb.store() Get a reference to the storage. S& or S const& if rb is const. i rb.size()-1 is undefined behavior.","title":"Ring Buffer","component":"q","version":"v1.0_beta","name":"ring_buffer","url":"/q/v1.0_beta/reference/utility/ring_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Mutators","hash":"_mutators","id":10},{"text":"Accessors","hash":"_accessors","id":11}]}},"components":{},"componentVersions":{"q/develop":{"displayVersion":"develop","title":"Q Audio DSP Library","version":"develop","name":"q","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Q Docs","site-url":"https://www.cycfi.com/","source-language":"asciidoc@","table-caption":false},"sourcemap":false},"url":"/q/develop/index.html","navigation":[{"items":[{"content":"Setup and Installation","url":"/q/develop/setup.html","urlType":"internal"},{"content":"Quick Start","url":"/q/develop/quick_start.html","urlType":"internal"},{"content":"Fundamentals","url":"/q/develop/fundamentals.html","urlType":"internal"},{"content":"Reference","items":[{"content":"Units","url":"/q/develop/reference/units.html","urlType":"internal","items":[{"content":"frequency","url":"/q/develop/reference/units/frequency.html","urlType":"internal"},{"content":"duration","url":"/q/develop/reference/units/duration.html","urlType":"internal"},{"content":"period","url":"/q/develop/reference/units/period.html","urlType":"internal"},{"content":"phase","url":"/q/develop/reference/units/phase.html","urlType":"internal","items":[{"content":"phase_iterator","url":"/q/develop/reference/units/phase_iterator.html","urlType":"internal"}]},{"content":"decibel","url":"/q/develop/reference/units/decibel.html","urlType":"internal"},{"content":"interval","url":"/q/develop/reference/units/interval.html","urlType":"internal","items":[{"content":"pitch","url":"/q/develop/reference/units/pitch.html","urlType":"internal"}]}]},{"content":"Biquad","url":"/q/develop/reference/biquad.html","urlType":"internal","items":[{"content":"Low Pass Filter","url":"/q/develop/reference/biquad/lowpass.html","urlType":"internal"},{"content":"High Pass Filter","url":"/q/develop/reference/biquad/highpass.html","urlType":"internal"},{"content":"Band Pass Filter; Constant Skirt Gain","url":"/q/develop/reference/biquad/bandpass_csg.html","urlType":"internal"},{"content":"Band Pass Filter; Constant Peak Gain","url":"/q/develop/reference/biquad/bandpass_cpg.html","urlType":"internal"},{"content":"All Pass Filter","url":"/q/develop/reference/biquad/allpass.html","urlType":"internal"},{"content":"Notch Filter","url":"/q/develop/reference/biquad/notch.html","urlType":"internal"},{"content":"Peaking Filter","url":"/q/develop/reference/biquad/peaking.html","urlType":"internal"},{"content":"Low Shelf Filter","url":"/q/develop/reference/biquad/lowshelf.html","urlType":"internal"},{"content":"High Shelf Filter","url":"/q/develop/reference/biquad/highshelf.html","urlType":"internal"}]},{"content":"Envelope","url":"/q/develop/reference/envelope.html","urlType":"internal","items":[{"content":"Peak Envelope Follower","url":"/q/develop/reference/envelope/peak_envelope_follower.html","urlType":"internal"},{"content":"AR Envelope Follower","url":"/q/develop/reference/envelope/ar_envelope_follower.html","urlType":"internal"},{"content":"Fast Envelope Follower","url":"/q/develop/reference/envelope/fast_envelope_follower.html","urlType":"internal"},{"content":"Fast Averaging Envelope Follower","url":"/q/develop/reference/envelope/fast_ave_envelope_follower.html","urlType":"internal"},{"content":"Fast RMS Envelope Follower","url":"/q/develop/reference/envelope/fast_rms_envelope_follower.html","urlType":"internal"}]},{"content":"Dynamic","url":"/q/develop/reference/dynamic.html","urlType":"internal","items":[{"content":"Compressor","url":"/q/develop/reference/dynamic/compressor.html","urlType":"internal"},{"content":"Soft Knee Compressor","url":"/q/develop/reference/dynamic/soft_knee_compressor.html","urlType":"internal"},{"content":"Expander","url":"/q/develop/reference/dynamic/expander.html","urlType":"internal"},{"content":"AGC","url":"/q/develop/reference/dynamic/agc.html","urlType":"internal"}]},{"content":"Miscellaneous","items":[{"content":"Delay","url":"/q/develop/reference/misc/delay.html","urlType":"internal"},{"content":"Moving Sum","url":"/q/develop/reference/misc/moving_sum.html","urlType":"internal"},{"content":"Moving Average","url":"/q/develop/reference/misc/moving_average.html","urlType":"internal"},{"content":"Noise Gate","url":"/q/develop/reference/misc/noise_gate.html","urlType":"internal"},{"content":"Onset Gate","url":"/q/develop/reference/misc/onset_gate.html","urlType":"internal"},{"content":"One Pole Low Pass","url":"/q/develop/reference/misc/one_pole_lowpass.html","urlType":"internal"},{"content":"DC Block","url":"/q/develop/reference/misc/dc_block.html","urlType":"internal"}]},{"content":"Synthesizers","url":"/q/develop/reference/synth.html","urlType":"internal","items":[{"content":"Sine Wave Oscillator","url":"/q/develop/reference/synth/sin_osc.html","urlType":"internal"},{"content":"Saw Wave Oscillator","url":"/q/develop/reference/synth/saw_osc.html","urlType":"internal"},{"content":"Square Wave Oscillator","url":"/q/develop/reference/synth/square_osc.html","urlType":"internal"},{"content":"Pulse Wave Oscillator","url":"/q/develop/reference/synth/pulse_osc.html","urlType":"internal"},{"content":"Triangle Wave Oscillator","url":"/q/develop/reference/synth/triangle_osc.html","urlType":"internal"},{"content":"Sine Cosine Generator","url":"/q/develop/reference/synth/sin_cos_gen.html","urlType":"internal"},{"content":"Blackman Window Generator","url":"/q/develop/reference/synth/blackman_gen.html","urlType":"internal"},{"content":"Hann Window Generator","url":"/q/develop/reference/synth/hann_gen.html","urlType":"internal"},{"content":"Hamming Window Generator","url":"/q/develop/reference/synth/hamming_gen.html","urlType":"internal"},{"content":"Linear Ramp Generator","url":"/q/develop/reference/synth/linear_gen.html","urlType":"internal"},{"content":"Exponential Ramp Generator","url":"/q/develop/reference/synth/exponential_gen.html","urlType":"internal"},{"content":"Envelope Generator","url":"/q/develop/reference/synth/envelope_gen.html","urlType":"internal"}]},{"content":"Support","items":[{"content":"Basic Concepts","url":"/q/develop/reference/support/basic_concepts.html","urlType":"internal"},{"content":"Multi Buffer","url":"/q/develop/reference/support/multi_buffer.html","urlType":"internal"},{"content":"Audio Stream","url":"/q/develop/reference/support/audio_stream.html","urlType":"internal"},{"content":"MIDI Messages","url":"/q/develop/reference/support/midi_messages.html","urlType":"internal"},{"content":"MIDI Processor","url":"/q/develop/reference/support/midi_processor.html","urlType":"internal"}]},{"content":"Utility","items":[{"content":"Ring Buffer","url":"/q/develop/reference/utility/ring_buffer.html","urlType":"internal"},{"content":"Fractional Ring Buffer","url":"/q/develop/reference/utility/fractional_ring_buffer.html","urlType":"internal"}]},{"content":"Audio MIDI I/O","url":"/q/develop/reference/q_io.html","urlType":"internal","items":[{"content":"Audio Device","url":"/q/develop/reference/q_io/audio_device.html","urlType":"internal"},{"content":"Audio Stream","url":"/q/develop/reference/q_io/audio_stream.html","urlType":"internal"},{"content":"Audio File","url":"/q/develop/reference/q_io/audio_file.html","urlType":"internal"},{"content":"MIDI Device","url":"/q/develop/reference/q_io/midi_device.html","urlType":"internal"},{"content":"MIDI Stream","url":"/q/develop/reference/q_io/midi_stream.html","urlType":"internal"}]}]}],"root":true,"order":0}]},"q/v1.0_beta":{"displayVersion":"v1.0_beta","title":"Q Audio DSP Library","version":"v1.0_beta","name":"q","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Q Docs","site-url":"https://www.cycfi.com/","source-language":"asciidoc@","table-caption":false},"sourcemap":false},"url":"/q/v1.0_beta/index.html","navigation":[{"items":[{"content":"Setup and Installation","url":"/q/v1.0_beta/setup.html","urlType":"internal"},{"content":"Quick Start","url":"/q/v1.0_beta/quick_start.html","urlType":"internal"},{"content":"Fundamentals","url":"/q/v1.0_beta/fundamentals.html","urlType":"internal"},{"content":"Reference","items":[{"content":"Units","url":"/q/v1.0_beta/reference/units.html","urlType":"internal","items":[{"content":"frequency","url":"/q/v1.0_beta/reference/units/frequency.html","urlType":"internal"},{"content":"duration","url":"/q/v1.0_beta/reference/units/duration.html","urlType":"internal"},{"content":"period","url":"/q/v1.0_beta/reference/units/period.html","urlType":"internal"},{"content":"phase","url":"/q/v1.0_beta/reference/units/phase.html","urlType":"internal","items":[{"content":"phase_iterator","url":"/q/v1.0_beta/reference/units/phase_iterator.html","urlType":"internal"}]},{"content":"decibel","url":"/q/v1.0_beta/reference/units/decibel.html","urlType":"internal"},{"content":"interval","url":"/q/v1.0_beta/reference/units/interval.html","urlType":"internal","items":[{"content":"pitch","url":"/q/v1.0_beta/reference/units/pitch.html","urlType":"internal"}]}]},{"content":"Biquad","url":"/q/v1.0_beta/reference/biquad.html","urlType":"internal","items":[{"content":"Low Pass Filter","url":"/q/v1.0_beta/reference/biquad/lowpass.html","urlType":"internal"},{"content":"High Pass Filter","url":"/q/v1.0_beta/reference/biquad/highpass.html","urlType":"internal"},{"content":"Band Pass Filter; Constant Skirt Gain","url":"/q/v1.0_beta/reference/biquad/bandpass_csg.html","urlType":"internal"},{"content":"Band Pass Filter; Constant Peak Gain","url":"/q/v1.0_beta/reference/biquad/bandpass_cpg.html","urlType":"internal"},{"content":"All Pass Filter","url":"/q/v1.0_beta/reference/biquad/allpass.html","urlType":"internal"},{"content":"Notch Filter","url":"/q/v1.0_beta/reference/biquad/notch.html","urlType":"internal"},{"content":"Peaking Filter","url":"/q/v1.0_beta/reference/biquad/peaking.html","urlType":"internal"},{"content":"Low Shelf Filter","url":"/q/v1.0_beta/reference/biquad/lowshelf.html","urlType":"internal"},{"content":"High Shelf Filter","url":"/q/v1.0_beta/reference/biquad/highshelf.html","urlType":"internal"}]},{"content":"Envelope","url":"/q/v1.0_beta/reference/envelope.html","urlType":"internal","items":[{"content":"Peak Envelope Follower","url":"/q/v1.0_beta/reference/envelope/peak_envelope_follower.html","urlType":"internal"},{"content":"AR Envelope Follower","url":"/q/v1.0_beta/reference/envelope/ar_envelope_follower.html","urlType":"internal"},{"content":"Fast Envelope Follower","url":"/q/v1.0_beta/reference/envelope/fast_envelope_follower.html","urlType":"internal"},{"content":"Fast Averaging Envelope Follower","url":"/q/v1.0_beta/reference/envelope/fast_ave_envelope_follower.html","urlType":"internal"},{"content":"Fast RMS Envelope Follower","url":"/q/v1.0_beta/reference/envelope/fast_rms_envelope_follower.html","urlType":"internal"}]},{"content":"Dynamic","url":"/q/v1.0_beta/reference/dynamic.html","urlType":"internal","items":[{"content":"Compressor","url":"/q/v1.0_beta/reference/dynamic/compressor.html","urlType":"internal"},{"content":"Soft Knee Compressor","url":"/q/v1.0_beta/reference/dynamic/soft_knee_compressor.html","urlType":"internal"},{"content":"Expander","url":"/q/v1.0_beta/reference/dynamic/expander.html","urlType":"internal"},{"content":"AGC","url":"/q/v1.0_beta/reference/dynamic/agc.html","urlType":"internal"}]},{"content":"Miscellaneous","items":[{"content":"Delay","url":"/q/v1.0_beta/reference/misc/delay.html","urlType":"internal"},{"content":"Moving Sum","url":"/q/v1.0_beta/reference/misc/moving_sum.html","urlType":"internal"},{"content":"Moving Average","url":"/q/v1.0_beta/reference/misc/moving_average.html","urlType":"internal"},{"content":"Noise Gate","url":"/q/v1.0_beta/reference/misc/noise_gate.html","urlType":"internal"},{"content":"Onset Gate","url":"/q/v1.0_beta/reference/misc/onset_gate.html","urlType":"internal"},{"content":"One Pole Low Pass","url":"/q/v1.0_beta/reference/misc/one_pole_lowpass.html","urlType":"internal"},{"content":"DC Block","url":"/q/v1.0_beta/reference/misc/dc_block.html","urlType":"internal"}]},{"content":"Synthesizers","url":"/q/v1.0_beta/reference/synth.html","urlType":"internal","items":[{"content":"Sine Wave Oscillator","url":"/q/v1.0_beta/reference/synth/sin_osc.html","urlType":"internal"},{"content":"Saw Wave Oscillator","url":"/q/v1.0_beta/reference/synth/saw_osc.html","urlType":"internal"},{"content":"Square Wave Oscillator","url":"/q/v1.0_beta/reference/synth/square_osc.html","urlType":"internal"},{"content":"Pulse Wave Oscillator","url":"/q/v1.0_beta/reference/synth/pulse_osc.html","urlType":"internal"},{"content":"Triangle Wave Oscillator","url":"/q/v1.0_beta/reference/synth/triangle_osc.html","urlType":"internal"},{"content":"Sine Cosine Generator","url":"/q/v1.0_beta/reference/synth/sin_cos_gen.html","urlType":"internal"},{"content":"Blackman Window Generator","url":"/q/v1.0_beta/reference/synth/blackman_gen.html","urlType":"internal"},{"content":"Hann Window Generator","url":"/q/v1.0_beta/reference/synth/hann_gen.html","urlType":"internal"},{"content":"Hamming Window Generator","url":"/q/v1.0_beta/reference/synth/hamming_gen.html","urlType":"internal"},{"content":"Linear Ramp Generator","url":"/q/v1.0_beta/reference/synth/linear_gen.html","urlType":"internal"},{"content":"Exponential Ramp Generator","url":"/q/v1.0_beta/reference/synth/exponential_gen.html","urlType":"internal"},{"content":"Envelope Generator","url":"/q/v1.0_beta/reference/synth/envelope_gen.html","urlType":"internal"}]},{"content":"Support","items":[{"content":"Basic Concepts","url":"/q/v1.0_beta/reference/support/basic_concepts.html","urlType":"internal"},{"content":"Multi Buffer","url":"/q/v1.0_beta/reference/support/multi_buffer.html","urlType":"internal"},{"content":"Audio Stream","url":"/q/v1.0_beta/reference/support/audio_stream.html","urlType":"internal"},{"content":"MIDI Messages","url":"/q/v1.0_beta/reference/support/midi_messages.html","urlType":"internal"},{"content":"MIDI Processor","url":"/q/v1.0_beta/reference/support/midi_processor.html","urlType":"internal"}]},{"content":"Utility","items":[{"content":"Ring Buffer","url":"/q/v1.0_beta/reference/utility/ring_buffer.html","urlType":"internal"},{"content":"Fractional Ring Buffer","url":"/q/v1.0_beta/reference/utility/fractional_ring_buffer.html","urlType":"internal"}]},{"content":"Audio MIDI I/O","url":"/q/v1.0_beta/reference/q_io.html","urlType":"internal","items":[{"content":"Audio Device","url":"/q/v1.0_beta/reference/q_io/audio_device.html","urlType":"internal"},{"content":"Audio Stream","url":"/q/v1.0_beta/reference/q_io/audio_stream.html","urlType":"internal"},{"content":"Audio File","url":"/q/v1.0_beta/reference/q_io/audio_file.html","urlType":"internal"},{"content":"MIDI Device","url":"/q/v1.0_beta/reference/q_io/midi_device.html","urlType":"internal"},{"content":"MIDI Stream","url":"/q/v1.0_beta/reference/q_io/midi_stream.html","urlType":"internal"}]}]}],"root":true,"order":0}]}}}}) \ No newline at end of file +antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1",[]],["name/1",[0,0.943]],["text/1",[]],["component/1",[1,0.411]],["title/2-1",[2,58.365]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["title/2-2",[3,46.852]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["title/2-3",[4,33.879,5,46.248]],["name/2-3",[]],["text/2-3",[]],["component/2-3",[]],["title/2-4",[6,42.095]],["name/2-4",[]],["text/2-4",[]],["component/2-4",[]],["title/2-5",[7,30.121,8,18.179]],["name/2-5",[]],["text/2-5",[]],["component/2-5",[]],["title/2-6",[9,46.852]],["name/2-6",[]],["text/2-6",[]],["component/2-6",[]],["title/2-7",[10,32.125]],["name/2-7",[]],["text/2-7",[]],["component/2-7",[]],["title/2-8",[11,31.517]],["name/2-8",[]],["text/2-8",[]],["component/2-8",[]],["title/2-9",[12,35.797]],["name/2-9",[]],["text/2-9",[]],["component/2-9",[]],["title/2-10",[13,38.784]],["name/2-10",[]],["text/2-10",[]],["component/2-10",[]],["title/2-11",[14,58.365]],["name/2-11",[]],["text/2-11",[]],["component/2-11",[]],["title/2-12",[15,18.782,16,19.992]],["name/2-12",[]],["text/2-12",[]],["component/2-12",[]],["title/2",[17,49.533]],["name/2",[17,0.997]],["text/2",[1,1.151,2,1.791,3,1.01,4,1.2,5,1.037,6,1.953,7,0.676,8,1.138,9,2.337,10,2.093,11,1.966,12,1.661,13,2.187,14,0.342,15,1.785,16,1.436,17,0.823,18,0.342,19,1.703,20,2.926,21,0.499,22,0.404,23,0.151,24,0.442,25,0.632,26,0.569,27,0.779,28,0.779,29,0.785,30,0.944,31,1.068,32,0.325,33,0.252,34,2.495,35,1.061,36,0.635,37,0.565,38,0.342,39,0.311,40,0.632,41,0.311,42,0.366,43,0.489,44,0.366,45,0.235,46,2.43,47,0.366,48,0.743,49,1.145,50,0.404,51,0.3,52,2.114,53,0.311,54,0.404,55,0.823,56,0.311,57,0.366,58,0.366,59,0.404,60,0.404,61,0.311,62,0.404,63,0.404,64,0.665,65,0.404,66,0.404,67,2.492,68,0.291,69,1.557,70,0.711,71,0.3,72,0.342,73,0.404,74,0.404,75,1.697,76,0.921,77,0.366,78,0.366,79,0.632,80,0.262,81,0.366,82,0.291,83,0.366,84,0.366,85,0.325,86,0.847,87,0.404,88,0.711,89,1.259,90,0.404,91,1.016,92,1.354,93,3.581,94,0.311,95,1.403,96,1.636,97,0.404,98,1.701,99,1.701,100,1.346,101,0.632,102,0.404,103,0.342,104,0.291,105,0.342,106,0.291,107,0.366,108,0.964,109,0.404,110,0.404,111,0.48,112,0.311,113,0.366,114,0.394,115,0.665,116,0.921,117,1.3,118,0.785,119,0.404,120,0.404,121,0.534,122,0.499,123,0.325,124,0.43,125,0.252,126,0.404,127,0.342,128,0.228,129,1.227,130,0.282,131,0.665,132,0.632,133,0.366,134,0.404,135,0.759,136,0.404,137,0.548,138,0.665,139,0.404,140,0.325,141,0.877,142,1.343,143,0.823,144,0.404,145,0.665,146,0.282,147,1.533,148,0.484,149,1.394,150,1.163,151,0.3,152,0.824,153,0.509,154,1.33,155,0.262,156,0.86,157,0.252,158,0.835,159,0.366,160,0.667,161,0.729,162,0.8,163,0.509,164,0.463,165,1.498,166,0.282,167,0.823,168,0.925,169,0.951,170,1.61,171,0.342,172,0.342,173,0.836,174,0.823,175,0.325,176,0.205,177,0.243,178,0.463,179,0.311,180,0.424,181,0.882,182,0.782,183,0.404,184,0.404,185,2.102,186,0.342,187,0.404,188,0.282,189,0.19,190,0.359,191,0.282,192,0.418,193,0.404,194,0.325,195,0.366,196,0.238,197,0.325,198,0.325,199,0.366,200,0.311,201,0.366,202,0.325,203,0.275,204,0.247,205,0.275,206,0.3,207,0.618,208,0.311,209,0.275,210,1.444,211,0.262,212,0.463,213,1.105,214,0.366,215,0.665,216,0.743,217,0.366,218,0.404,219,0.404,220,0.366,221,0.499,222,0.342,223,0.238,224,0.311,225,0.311,226,0.404,227,0.505,228,0.785,229,0.218,230,1.935,231,0.366,232,0.565,233,1.429,234,0.404,235,0.785,236,0.785,237,0.404,238,0.325,239,1.037,240,0.404,241,0.404,242,0.711,243,0.499,244,0.311,245,0.291,246,0.499,247,0.325,248,0.366,249,0.247,250,0.366,251,0.366,252,0.711,253,0.342,254,0.366,255,0.243,256,0.311,257,0.366,258,0.268,259,0.252,260,0.325,261,0.785,262,0.404,263,0.366,264,0.404,265,0.404,266,0.404,267,0.325,268,0.224,269,0.107,270,0.404,271,0.785,272,0.366,273,0.404,274,0.404,275,0.404,276,0.325,277,0.404,278,0.366,279,0.404,280,0.404,281,0.404,282,0.404,283,0.404,284,0.404,285,0.97,286,0.311,287,2.863,288,0.366,289,2.817,290,0.366,291,3.731,292,1.871,293,0.711,294,0.711,295,0.366,296,0.366,297,0.366,298,0.366,299,0.366,300,0.366,301,0.366,302,0.366,303,0.366,304,0.366,305,0.404,306,0.404,307,0.404,308,0.366,309,0.3,310,0.823,311,0.366,312,0.325,313,0.366,314,0.404,315,0.342,316,0.291,317,0.3,318,0.514,319,0.404,320,0.257,321,0.366,322,0.342,323,0.291,324,0.404,325,0.342,326,0.228,327,0.291,328,0.921,329,0.605,330,0.252,331,0.548,332,0.849,333,0.86,334,0.138,335,0.404,336,1.485,337,1.485,338,0.849,339,0.687,340,0.404,341,0.183,342,0.404,343,0.291,344,0.8,345,0.711,346,0.449,347,0.282,348,0.509,349,0.882,350,0.398,351,0.785,352,0.605,353,1.145,354,0.262,355,0.183,356,0.342,357,0.342,358,0.342,359,0.711,360,0.291,361,0.291,362,0.311,363,0.235,364,0.366,365,0.311,366,0.404,367,0.243,368,0.404,369,0.3,370,0.665,371,0.404,372,0.366,373,0.404,374,0.48,375,0.404,376,0.262,377,0.548,378,0.404,379,0.404,380,0.342,381,0.404,382,0.404,383,0.404,384,0.785,385,0.785,386,0.366,387,0.3,388,0.404,389,0.224,390,0.3,391,0.3,392,0.243,393,0.404,394,0.404,395,0.325,396,0.404,397,0.404,398,0.404,399,0.342,400,0.404,401,0.404,402,0.342,403,0.404,404,0.404,405,0.404,406,0.3,407,0.325,408,0.404,409,0.311,410,0.311,411,0.311,412,0.311,413,0.311,414,0.311,415,0.275,416,0.311,417,0.311,418,0.311,419,0.311,420,0.311]],["component/2",[1,0.411]],["title/3-1",[421,62.413]],["name/3-1",[]],["text/3-1",[]],["component/3-1",[]],["title/3-2",[422,41.06,423,37.915]],["name/3-2",[]],["text/3-2",[]],["component/3-2",[]],["title/3-3",[424,62.413]],["name/3-3",[]],["text/3-3",[]],["component/3-3",[]],["title/3",[1,9.959,19,17.917,20,18.401,35,16.871]],["name/3",[425,0.92]],["text/3",[1,1.164,4,0.83,11,0.572,12,0.65,13,0.704,15,1.168,16,0.49,17,0.899,19,1.691,20,2.509,24,0.704,27,0.85,28,0.85,35,2.588,36,2.544,37,0.899,38,1.059,39,0.963,40,1.005,44,1.133,48,0.811,55,0.899,69,0.726,75,0.832,82,1.648,86,1.573,88,1.133,106,2.282,108,0.811,112,3.028,121,0.85,122,0.794,123,1.005,124,0.684,125,1.976,128,0.704,129,0.726,131,1.942,132,1.844,156,0.595,158,2.616,161,0.613,164,0.738,165,1.427,166,0.873,170,1.376,180,2.475,182,0.658,196,0.738,203,0.85,207,0.675,210,0.75,213,0.764,259,1.427,260,1.005,263,1.133,308,2.077,309,2.919,310,0.899,318,2.544,326,0.704,328,1.005,330,0.778,349,0.963,350,2.618,357,1.059,358,1.059,359,1.133,361,0.899,367,1.376,376,0.811,377,1.601,387,0.928,409,0.963,410,0.963,411,0.963,412,2.446,413,1.766,414,1.766,415,0.85,416,0.963,417,0.963,418,1.766,419,1.766,420,1.766,422,1.005,423,0.928,424,2.077,426,1.25,427,1.4,428,0.83,429,1.25,430,0.658,431,1.133,432,0.811,433,1.133,434,1.25,435,0.963,436,0.928,437,1.25,438,0.963,439,1.25,440,1.487,441,0.963,442,0.963,443,1.25,444,1.25,445,1.059,446,0.963,447,1.25,448,0.963,449,0.794,450,1.059,451,1.25,452,1.25,453,1.005,454,0.83,455,1.25,456,2.077,457,2.292,458,2.292,459,0.963,460,1.25,461,1.059,462,0.963,463,1.25,464,1.942,465,3.161,466,0.85,467,1.25,468,1.005,469,1.005,470,1.059,471,0.738,472,0.84,473,0.899,474,0.85,475,0.764,476,1.737,477,3.1,478,1.702,479,1.059,480,1.873,481,0.963,482,1.702,483,2.383,484,1.005,485,1.648,486,1.005,487,0.873,488,0.963,489,0.963,490,1.25,491,0.873,492,1.487,493,0.928,494,0.963,495,1.059,496,1.059,497,1.601,498,2.752,499,1.005,500,0.83,501,0.963,502,1.005,503,1.005,504,1.005,505,2.016,506,1.005,507,1.005,508,0.85,509,1.4,510,0.928,511,0.764,512,0.899,513,1.905,514,2.357,515,0.811,516,1.648,517,1.521,518,1.25,519,1.133,520,0.794,521,1.25,522,1.059,523,2.292,524,1.25,525,1.059,526,1.059,527,1.25,528,1.25,529,0.928,530,1.25,531,1.133,532,1.25,533,1.25,534,2.292,535,1.133,536,1.133,537,0.963,538,1.133,539,1.25,540,0.714,541,1.133,542,1.059,543,1.25,544,1.25,545,1.25,546,1.059,547,0.899,548,0.963,549,1.25,550,1.25,551,1.25,552,1.25]],["component/3",[1,0.411]],["title/4-1",[325,43.249,553,43.249]],["name/4-1",[]],["text/4-1",[]],["component/4-1",[]],["title/4-2",[19,27.199,142,37.915]],["name/4-2",[]],["text/4-2",[]],["component/4-2",[]],["title/4-3",[389,38.227]],["name/4-3",[]],["text/4-3",[]],["component/4-3",[]],["title/4-4",[553,43.249,554,51.042]],["name/4-4",[]],["text/4-4",[]],["component/4-4",[]],["title/4-5",[310,49.533]],["name/4-5",[]],["text/4-5",[]],["component/4-5",[]],["title/4-6",[180,37.19]],["name/4-6",[]],["text/4-6",[]],["component/4-6",[]],["title/4-7",[36,28.326,161,25.052]],["name/4-7",[]],["text/4-7",[]],["component/4-7",[]],["title/4-8",[15,18.782,555,37.915]],["name/4-8",[]],["text/4-8",[]],["component/4-8",[]],["title/4",[470,43.249,471,30.121]],["name/4",[556,1.386]],["text/4",[1,0.349,4,0.536,8,0.148,9,0.801,10,2.308,11,0.849,12,0.612,15,0.798,16,0.461,19,0.431,20,1.35,21,0.264,27,1.038,28,0.55,30,1.179,31,0.847,33,0.259,35,1.764,36,3.346,41,0.623,43,0.259,55,0.581,56,0.321,64,0.353,68,0.299,69,1.259,72,0.685,75,1.277,80,1.205,86,0.988,89,0.353,91,1.043,92,1.389,93,3.898,95,0.782,96,0.283,98,0.335,99,0.335,100,0.377,103,0.353,104,0.299,105,0.353,106,0.299,112,0.321,114,0.766,116,0.65,117,1.56,122,0.264,123,2.211,128,0.234,129,1.595,132,0.335,135,0.339,137,0.291,141,1.096,142,2.784,143,0.847,145,0.242,147,0.602,148,0.176,149,0.793,150,0.511,151,0.309,152,0.231,154,0.173,155,0.524,156,1.032,158,1.139,161,1.606,168,0.353,169,0.803,170,0.25,173,0.663,174,0.299,180,0.636,181,0.321,182,0.803,185,0.214,192,0.989,203,0.283,204,0.72,207,0.824,210,0.707,213,1.135,215,0.353,216,0.27,222,0.353,227,0.184,229,0.225,230,1.221,233,1.997,242,0.732,243,1.378,244,0.321,245,0.299,246,0.513,247,0.335,248,0.377,249,1.135,250,0.377,251,0.377,252,0.732,253,0.353,254,0.377,255,0.25,256,0.321,257,0.377,258,0.276,259,0.733,260,0.65,268,0.847,276,0.65,285,1.293,286,0.907,287,1.096,289,0.684,292,0.264,310,1.098,312,0.335,317,0.6,318,0.686,323,0.299,325,0.353,327,0.299,328,0.65,329,0.321,330,0.503,332,0.238,333,0.479,341,0.189,344,1.066,346,0.673,347,0.291,348,0.27,349,0.321,350,0.41,352,0.321,355,0.534,356,0.998,357,0.353,358,0.353,362,0.321,363,0.684,369,0.309,370,1.293,374,0.494,386,0.377,389,2.08,392,0.25,406,0.6,407,0.65,409,0.321,410,0.321,411,0.321,412,0.321,413,0.321,414,0.321,415,0.801,416,0.321,417,0.321,418,0.321,419,0.321,420,0.321,427,0.494,430,0.219,433,0.732,436,1.134,438,1.176,440,0.27,441,0.907,442,0.321,445,0.685,449,0.264,450,0.685,454,0.536,466,0.55,468,0.335,469,0.65,470,0.685,471,0.477,472,0.28,473,0.299,476,0.442,477,1.556,483,0.216,487,0.564,491,2.107,492,0.27,498,0.707,500,1.013,513,0.25,514,1.134,515,0.524,517,2.002,522,0.353,525,1.293,553,0.353,555,0.309,557,0.808,558,0.623,559,0.416,560,0.377,561,0.416,562,0.353,563,0.65,564,0.685,565,0.564,566,0.416,567,0.377,568,0.353,569,0.99,570,0.234,571,0.808,572,0.377,573,0.377,574,0.416,575,0.416,576,0.808,577,0.416,578,1.177,579,0.335,580,1.134,581,1.177,582,0.808,583,0.416,584,0.416,585,1.177,586,2.211,587,0.564,588,0.581,589,1.205,590,0.335,591,0.353,592,0.353,593,0.259,594,0.416,595,0.808,596,1.379,597,0.377,598,0.321,599,0.733,600,0.808,601,0.416,602,0.416,603,0.291,604,0.416,605,0.416,606,0.416,607,0.536,608,0.685,609,1.038,610,0.808,611,0.732,612,0.335,613,0.416,614,0.416,615,0.416,616,0.254,617,0.335,618,1.526,619,0.732,620,0.335,621,0.808,622,0.416,623,0.353,624,0.907,625,0.353,626,0.377,627,0.416,628,0.416,629,0.416,630,1.176,631,0.808,632,1.177,633,1.177,634,2.169,635,2.748,636,0.808,637,0.808,638,0.808,639,0.808,640,1.857,641,0.416,642,0.377,643,1.293,644,0.808,645,0.808,646,0.416,647,0.416,648,0.416,649,0.416,650,0.808,651,0.416,652,0.808,653,0.623,654,0.377,655,0.808,656,0.276,657,0.416,658,0.416,659,0.377,660,0.416,661,1.573,662,0.416,663,0.416,664,0.283,665,0.416,666,0.847,667,1.857,668,0.732,669,0.416,670,1.067,671,0.377,672,0.808,673,0.416,674,0.377,675,0.416,676,0.416,677,0.555,678,0.377,679,0.377,680,0.377,681,0.353,682,0.377,683,0.808,684,0.416,685,0.416,686,0.416,687,0.377,688,0.377,689,0.416,690,0.309,691,0.416,692,0.416,693,0.416,694,0.27,695,0.27,696,0.808,697,0.309,698,0.377,699,0.416,700,0.416,701,0.416,702,0.416,703,1.526,704,0.416,705,0.207,706,0.416,707,0.335,708,0.732,709,0.377,710,0.377,711,0.321,712,0.416,713,0.416,714,0.808,715,0.732,716,0.416,717,0.564,718,0.377,719,0.416,720,0.335,721,0.416,722,0.377,723,0.283,724,0.416,725,0.416,726,0.416,727,0.998,728,0.685,729,0.309,730,0.513,731,0.875,732,0.875,733,0.377,734,0.685,735,0.6,736,0.321,737,0.564,738,0.808,739,0.283,740,0.309,741,0.416,742,0.416,743,0.416,744,0.808,745,0.416,746,0.416,747,0.335,748,0.416,749,0.377,750,1.067,751,0.416,752,0.321,753,0.335,754,0.416,755,0.299,756,0.353,757,0.353,758,1.838,759,0.732,760,0.321,761,0.416,762,0.416,763,0.536,764,0.182,765,0.353,766,1.383,767,0.353,768,0.353,769,0.416,770,0.416,771,0.353,772,0.65,773,0.513,774,1.177,775,0.808,776,0.353,777,0.416,778,0.416,779,0.416,780,0.416,781,0.416,782,0.416,783,0.416,784,0.353,785,0.416,786,0.377,787,0.416,788,0.153,789,0.6,790,0.416,791,0.219,792,0.503,793,0.416,794,0.416,795,0.321,796,0.254,797,0.353,798,0.732,799,0.732,800,0.416,801,0.309,802,0.65,803,0.377,804,0.283,805,0.732,806,0.416,807,0.335,808,0.353,809,0.377,810,0.353,811,0.416,812,0.416,813,0.377,814,0.377,815,0.377,816,0.321,817,0.416,818,0.377,819,0.416,820,0.416,821,0.416]],["component/4",[1,0.411]],["title/5-1",[791,36.242]],["name/5-1",[]],["text/5-1",[]],["component/5-1",[]],["title/5-2",[822,62.413]],["name/5-2",[]],["text/5-2",[]],["component/5-2",[]],["title/5-3",[823,62.413]],["name/5-3",[]],["text/5-3",[]],["component/5-3",[]],["title/5-4",[824,58.365]],["name/5-4",[]],["text/5-4",[]],["component/5-4",[]],["title/5-5",[75,12.21,318,15.104,464,28.49,824,28.49]],["name/5-5",[]],["text/5-5",[]],["component/5-5",[]],["title/5-6",[623,58.365]],["name/5-6",[]],["text/5-6",[]],["component/5-6",[]],["title/5-7",[505,43.759]],["name/5-7",[]],["text/5-7",[]],["component/5-7",[]],["title/5-8",[825,62.413]],["name/5-8",[]],["text/5-8",[]],["component/5-8",[]],["title/5-9",[27,34.717,76,41.06]],["name/5-9",[]],["text/5-9",[]],["component/5-9",[]],["title/5",[468,41.06,469,41.06]],["name/5",[468,1.115]],["text/5",[1,2.027,3,2.32,4,0.904,10,2.276,19,0.726,20,3.745,24,0.767,27,5.673,35,2.448,36,1.376,37,1.783,39,2.629,43,0.848,57,2.246,58,1.234,68,0.979,75,1.772,76,2.744,86,0.545,89,6.105,91,0.655,93,1.264,98,1.096,106,0.979,114,0.683,117,1.783,122,3.1,130,0.951,141,3.531,190,0.623,191,0.951,249,0.832,268,0.756,318,2.192,326,1.396,339,0.818,362,1.91,363,0.791,370,1.154,390,1.012,407,1.096,409,1.05,410,1.05,411,1.05,412,1.05,413,1.05,414,1.05,415,0.926,416,1.05,417,1.05,418,1.05,419,1.05,420,1.05,441,3.238,464,4.134,469,2.744,483,1.288,497,0.951,498,0.818,505,2.669,517,1.645,519,1.234,525,2.1,531,3.807,535,1.234,542,2.89,570,0.767,588,0.979,596,1.012,616,0.832,619,3.807,623,2.1,630,1.91,695,1.609,750,3.091,791,1.304,796,0.832,822,2.246,823,2.246,824,6.859,825,2.246,826,1.362,827,2.479,828,1.362,829,1.362,830,3.411,831,1.362,832,1.362,833,5.468,834,2.89,835,1.362,836,3.411,837,3.411,838,1.362,839,1.362,840,0.865,841,1.234,842,1.362,843,2.479,844,1.362,845,1.362,846,1.362,847,1.154,848,1.362,849,1.362,850,1.362,851,7.827,852,3.411,853,3.411,854,3.411,855,1.362,856,1.362,857,1.362,858,1.362,859,1.362,860,1.362,861,1.362,862,2.479,863,1.362,864,1.362,865,1.362,866,1.362,867,1.362,868,1.362,869,1.362,870,3.411,871,1.154,872,1.362,873,1.05,874,1.154,875,1.154,876,0.979,877,1.05,878,2.479,879,1.362,880,2.479,881,1.362,882,0.691,883,1.362,884,1.154,885,1.362,886,1.234]],["component/5",[1,0.411]],["title/6-1",[23,25.689]],["name/6-1",[]],["text/6-1",[]],["component/6-1",[]],["title/6-2",[475,42.095]],["name/6-2",[]],["text/6-2",[]],["component/6-2",[]],["title/6-3",[26,18.526]],["name/6-3",[]],["text/6-3",[]],["component/6-3",[]],["title/6-4",[334,23.488]],["name/6-4",[]],["text/6-4",[]],["component/6-4",[]],["title/6-5",[269,18.168]],["name/6-5",[]],["text/6-5",[]],["component/6-5",[]],["title/6-6",[887,25.347]],["name/6-6",[]],["text/6-6",[]],["component/6-6",[]],["title/6-7",[788,14.918,888,21.331,889,16.74]],["name/6-7",[]],["text/6-7",[]],["component/6-7",[]],["title/6-8",[15,18.782,341,23.138]],["name/6-8",[]],["text/6-8",[]],["component/6-8",[]],["title/6-9",[135,21.414,890,34.717]],["name/6-9",[]],["text/6-9",[]],["component/6-9",[]],["title/6",[475,31.192,477,24.281]],["name/6",[475,0.847]],["text/6",[1,0.706,8,1.447,15,0.877,16,0.933,19,1.27,26,1.093,35,2.039,67,1.793,75,1.929,84,2.159,86,1.627,93,2.324,108,1.546,122,1.514,124,1.304,128,1.342,135,1.705,147,1.603,149,2.76,150,2.303,154,0.992,161,2.607,167,1.714,168,2.323,176,2.695,190,1.09,230,3.533,269,1.072,329,1.837,333,1.652,338,2.322,341,1.08,343,1.714,345,2.159,346,1.362,350,3.184,354,1.546,355,1.08,367,2.439,395,1.917,430,1.254,438,1.837,440,1.546,445,2.019,475,5.001,476,2.223,477,4.967,478,1.77,480,2.398,481,3.131,482,3.018,555,1.77,616,1.456,698,2.159,717,1.664,764,1.042,788,0.877,882,1.209,888,2.138,889,0.984,891,2.383,892,2.159,893,1.546,894,1.484,895,1.582,896,1.238,897,2.159,898,2.019,899,2.383,900,2.288,901,2.159,902,2.383,903,2.383,904,2.383,905,2.383,906,1.917,907,2.383,908,1.917,909,2.383,910,2.383,911,2.383,912,2.477,913,1.591,914,2.383,915,0.962,916,1.061,917,2.019,918,2.019,919,2.019,920,1.917,921,2.019,922,2.019]],["component/6",[1,0.411]],["title/7-1",[23,25.689]],["name/7-1",[]],["text/7-1",[]],["component/7-1",[]],["title/7-2",[10,32.125]],["name/7-2",[]],["text/7-2",[]],["component/7-2",[]],["title/7-3",[148,21.589,923,41.06]],["name/7-3",[]],["text/7-3",[]],["component/7-3",[]],["title/7-4",[924,62.413]],["name/7-4",[]],["text/7-4",[]],["component/7-4",[]],["title/7",[164,40.649]],["name/7",[164,0.818]],["text/7",[0,0.898,1,0.984,8,0.858,10,2.225,13,2.686,15,0.486,16,0.517,19,2.542,20,1.818,33,1.5,35,2.686,43,0.822,56,1.017,67,1.063,69,0.766,75,1.944,93,1.519,105,1.118,108,0.857,114,1.209,122,0.839,128,0.743,129,3.669,135,0.554,141,0.779,142,2.468,146,1.683,148,0.558,149,1.727,150,0.572,153,4.598,154,1.985,155,2.156,156,1.581,157,0.822,158,4.09,160,1.082,161,3.3,162,2.864,163,2.661,164,4.181,165,5.123,166,2.864,167,0.949,168,2.087,169,0.695,173,1.871,176,0.67,177,1.995,178,1.961,179,2.561,181,1.017,206,1.79,210,0.792,216,1.563,229,0.713,244,1.017,246,0.839,255,0.792,256,1.017,258,1.599,285,1.118,313,1.196,317,0.981,318,0.593,320,0.839,323,0.949,326,0.743,343,0.949,346,0.754,348,0.857,350,0.67,355,0.598,360,0.949,361,0.949,363,1.399,367,0.792,374,2.506,376,2.156,377,2.864,390,3.046,391,1.79,415,0.898,432,0.857,435,1.017,440,1.563,472,0.887,483,1.727,487,1.683,488,3.16,508,2.26,512,0.949,558,1.017,596,0.981,599,0.822,611,1.196,711,1.017,728,1.118,789,2.468,796,0.807,804,0.898,873,1.017,876,0.949,890,0.898,896,1.252,924,3.011,925,1.32,926,1.118,927,0.839,928,1.32,929,1.32,930,1.196,931,1.118,932,1.32,933,1.017,934,1.32,935,0.949,936,0.779,937,1.32,938,2.409,939,1.196,940,1.32,941,1.732,942,1.196,943,0.981,944,3.046,945,1.017,946,1.017,947,0.616,948,0.922,949,1.196,950,1.118,951,1.062,952,1.118,953,0.981,954,1.118,955,1.32,956,1.32,957,1.32,958,0.839,959,1.118,960,1.32,961,1.118,962,1.32,963,1.32,964,1.196,965,1.32]],["component/7",[1,0.411]],["title/8",[158,31.817]],["name/8",[158,0.64]],["text/8",[1,1.099,8,0.764,10,1,11,1.698,18,3.144,19,3.115,20,2.684,24,2.089,25,1.725,26,1.319,35,1.076,53,1.652,75,1.347,79,1.725,86,0.859,91,2.357,111,1.31,121,1.458,125,1.335,130,4.614,131,3.144,145,1.245,153,1.391,156,3.441,158,4.26,160,0.963,161,1.052,164,1.265,169,1.128,182,1.128,186,1.817,191,1.498,192,1.143,210,1.287,216,1.391,309,1.593,320,1.362,323,2.668,376,1.391,389,2.059,409,1.652,410,1.652,411,1.652,412,1.652,413,1.652,414,1.652,415,1.458,416,1.652,417,1.652,418,1.652,419,1.652,420,1.652,427,2.268,430,1.128,436,1.593,450,1.817,471,1.265,477,1.02,480,1.265,483,2.549,486,1.725,494,4.505,598,1.652,609,1.458,656,1.423,720,1.725,722,1.943,759,1.943,791,1.128,796,3.572,897,1.943,898,3.144,900,1.207,931,3.144,958,1.362,966,4.702,967,2.319,968,1.817,969,1.498,970,2.144,971,3.711,972,2.144,973,2.144,974,1.335,975,2.144,976,2.144,977,4.919,978,1.725,979,1.943,980,1.817,981,2.144,982,1.391,983,1.498,984,2.144,985,1.593,986,3.054,987,2.756,988,1.817,989,1.652,990,1.817,991,2.144,992,2.144,993,2.144,994,1.943,995,2.144,996,1.943,997,2.144,998,1.943,999,2.144,1000,1.943,1001,2.144,1002,1.817,1003,1.817,1004,2.144,1005,2.144,1006,2.144]],["component/8",[1,0.411]],["title/9-1",[23,25.689]],["name/9-1",[]],["text/9-1",[]],["component/9-1",[]],["title/9-2",[7,23.924,360,29.153,1007,40.542]],["name/9-2",[]],["text/9-2",[]],["component/9-2",[]],["title/9",[35,20.341,36,22.498,37,29.153]],["name/9",[34,1.175]],["text/9",[2,4.393,4,2.12,7,3.496,10,1.49,15,1.175,17,1.299,18,1.531,20,0.989,21,2.727,26,0.859,30,2.029,32,1.453,34,4.393,35,4.792,36,4.769,37,2.297,38,1.531,39,2.462,40,3.454,41,1.392,45,1.049,46,1.637,47,1.637,48,1.172,51,1.342,55,1.299,56,1.392,61,1.392,67,0.797,68,1.299,69,1.854,70,1.637,75,0.656,76,1.453,77,1.637,78,1.637,79,2.569,80,4.247,81,1.637,82,1.299,83,1.637,101,1.453,108,1.172,114,0.906,122,1.148,129,1.049,135,2.175,145,1.049,146,1.262,149,3.078,150,1.862,160,0.812,161,1.568,169,3.117,200,2.462,207,0.975,210,1.084,211,1.172,229,0.975,256,1.392,286,2.462,315,1.531,316,1.299,320,1.148,322,1.531,326,1.017,352,1.392,360,1.299,427,1.952,430,0.951,442,1.392,449,1.148,465,2.569,513,1.084,514,4.4,515,2.073,517,4.696,540,1.826,562,2.706,565,1.262,568,1.531,589,2.073,755,1.299,795,1.392,807,2.569,871,1.531,877,2.462,927,3.294,936,1.066,959,1.531,964,1.637,978,1.453,986,1.989,1008,1.807,1009,1.807,1010,1.453,1011,2.462,1012,1.453,1013,3.729,1014,2.706,1015,1.637,1016,2.462,1017,1.172,1018,0.975,1019,1.807,1020,1.807,1021,1.453,1022,2.462,1023,1.531,1024,2.894,1025,2.894,1026,2.894,1027,1.807,1028,1.453,1029,1.531,1030,1.531]],["component/9",[1,0.411]],["title/10-1",[23,25.689]],["name/10-1",[]],["text/10-1",[]],["component/10-1",[]],["title/10-2",[180,37.19]],["name/10-2",[]],["text/10-2",[]],["component/10-2",[]],["title/10-3",[334,23.488]],["name/10-3",[]],["text/10-3",[]],["component/10-3",[]],["title/10-4",[269,18.168]],["name/10-4",[]],["text/10-4",[]],["component/10-4",[]],["title/10-5",[887,25.347]],["name/10-5",[]],["text/10-5",[]],["component/10-5",[]],["title/10-6",[788,18.782,889,21.076]],["name/10-6",[]],["text/10-6",[]],["component/10-6",[]],["title/10-7",[15,18.782,341,23.138]],["name/10-7",[]],["text/10-7",[]],["component/10-7",[]],["title/10-8",[1031,49.533]],["name/10-8",[]],["text/10-8",[]],["component/10-8",[]],["title/10-9",[334,23.488]],["name/10-9",[]],["text/10-9",[]],["component/10-9",[]],["title/10-10",[269,18.168]],["name/10-10",[]],["text/10-10",[]],["component/10-10",[]],["title/10-11",[887,25.347]],["name/10-11",[]],["text/10-11",[]],["component/10-11",[]],["title/10-12",[15,18.782,341,23.138]],["name/10-12",[]],["text/10-12",[]],["component/10-12",[]],["title/10-13",[1032,51.167]],["name/10-13",[]],["text/10-13",[]],["component/10-13",[]],["title/10-14",[334,23.488]],["name/10-14",[]],["text/10-14",[]],["component/10-14",[]],["title/10-15",[269,18.168]],["name/10-15",[]],["text/10-15",[]],["component/10-15",[]],["title/10-16",[887,25.347]],["name/10-16",[]],["text/10-16",[]],["component/10-16",[]],["title/10-17",[15,18.782,341,23.138]],["name/10-17",[]],["text/10-17",[]],["component/10-17",[]],["title/10-18",[318,30.942]],["name/10-18",[]],["text/10-18",[]],["component/10-18",[]],["title/10-19",[334,23.488]],["name/10-19",[]],["text/10-19",[]],["component/10-19",[]],["title/10-20",[269,18.168]],["name/10-20",[]],["text/10-20",[]],["component/10-20",[]],["title/10-21",[887,25.347]],["name/10-21",[]],["text/10-21",[]],["component/10-21",[]],["title/10-22",[788,18.782,889,21.076]],["name/10-22",[]],["text/10-22",[]],["component/10-22",[]],["title/10-23",[15,18.782,341,23.138]],["name/10-23",[]],["text/10-23",[]],["component/10-23",[]],["title/10-24",[509,42.095]],["name/10-24",[]],["text/10-24",[]],["component/10-24",[]],["title/10-25",[334,23.488]],["name/10-25",[]],["text/10-25",[]],["component/10-25",[]],["title/10-26",[269,18.168]],["name/10-26",[]],["text/10-26",[]],["component/10-26",[]],["title/10-27",[887,25.347]],["name/10-27",[]],["text/10-27",[]],["component/10-27",[]],["title/10-28",[788,18.782,889,21.076]],["name/10-28",[]],["text/10-28",[]],["component/10-28",[]],["title/10-29",[1033,32.768]],["name/10-29",[]],["text/10-29",[]],["component/10-29",[]],["title/10",[180,37.19]],["name/10",[123,1.115]],["text/10",[0,0.486,1,0.212,6,1.808,8,2.039,11,0.889,12,1.769,14,3.232,15,1.253,16,1.333,19,1.035,20,0.744,21,0.454,27,0.486,28,0.486,30,1.234,32,0.575,33,1.209,69,1.128,75,1.074,86,0.778,93,3.672,108,0.464,111,0.437,114,0.359,133,1.231,141,0.422,145,1.128,147,0.976,148,0.821,150,1.073,152,0.754,153,1.26,154,0.808,155,1.605,156,1.407,157,1.842,158,1.367,160,1.111,168,1.294,169,0.715,180,3.471,181,1.047,182,3.143,186,0.605,189,0.337,190,0.327,196,2.682,205,0.924,207,0.386,210,1.166,227,1.091,238,1.093,243,0.863,255,0.816,258,0.902,269,1.637,309,0.531,310,2.128,318,3.573,323,2.743,329,0.551,330,0.846,339,1.166,344,0.499,361,0.514,363,0.789,392,0.816,430,0.376,435,1.047,454,0.902,456,0.647,466,0.486,471,0.802,473,3.015,477,0.34,497,0.499,498,0.816,499,0.575,500,0.902,501,0.551,502,0.575,505,0.454,509,3.162,511,3.162,538,0.647,547,0.514,589,0.464,593,0.846,607,1.642,609,1.321,626,0.647,666,0.514,690,0.531,705,2.417,715,0.647,728,0.605,731,2.529,737,0.499,739,0.486,763,0.474,764,0.85,789,0.531,792,0.846,801,0.531,802,0.575,804,0.924,882,0.363,888,1.022,889,0.802,898,0.605,912,2.271,913,1.642,915,1.539,916,0.865,927,0.863,935,0.514,936,3.054,941,0.514,945,0.551,947,0.906,953,0.531,958,0.454,969,0.949,977,0.486,988,0.605,1021,0.575,1031,2.448,1032,1.443,1034,1.359,1035,1.359,1036,0.715,1037,0.605,1038,0.575,1039,0.715,1040,0.715,1041,0.715,1042,0.715,1043,0.715,1044,0.647,1045,0.605,1046,0.715,1047,0.715,1048,0.715,1049,0.647,1050,0.605,1051,0.715,1052,0.499,1053,0.605,1054,1.397,1055,2.38,1056,1.691,1057,0.715,1058,0.715,1059,0.715,1060,2.507,1061,4.117,1062,1.88,1063,1.359,1064,2.128,1065,0.715,1066,0.715,1067,1.942,1068,0.551,1069,0.715,1070,0.605,1071,3.814,1072,2.473,1073,0.897,1074,1.359,1075,0.715,1076,0.647,1077,1.047,1078,0.575,1079,0.575,1080,0.575,1081,0.575,1082,0.531,1083,0.575,1084,0.605,1085,0.605,1086,0.551,1087,1.231,1088,1.231,1089,0.531,1090,0.575,1091,1.646,1092,0.715,1093,0.715,1094,0.715,1095,0.715,1096,0.605,1097,0.551,1098,0.551,1099,0.715,1100,2.259,1101,2.365,1102,0.715,1103,0.715,1104,0.83,1105,1.359,1106,0.715,1107,0.715]],["component/10",[1,0.411]],["title/11-1",[23,25.689]],["name/11-1",[]],["text/11-1",[]],["component/11-1",[]],["title/11-2",[213,42.095]],["name/11-2",[]],["text/11-2",[]],["component/11-2",[]],["title/11-3",[269,18.168]],["name/11-3",[]],["text/11-3",[]],["component/11-3",[]],["title/11-4",[887,25.347]],["name/11-4",[]],["text/11-4",[]],["component/11-4",[]],["title/11-5",[232,36.704,511,31.192]],["name/11-5",[]],["text/11-5",[]],["component/11-5",[]],["title/11-6",[8,18.179,312,41.06]],["name/11-6",[]],["text/11-6",[]],["component/11-6",[]],["title/11-7",[511,31.192,1108,46.248]],["name/11-7",[]],["text/11-7",[]],["component/11-7",[]],["title/11-8",[788,18.782,889,21.076]],["name/11-8",[]],["text/11-8",[]],["component/11-8",[]],["title/11-9",[1109,43.759]],["name/11-9",[]],["text/11-9",[]],["component/11-9",[]],["title/11-10",[1110,68.884]],["name/11-10",[]],["text/11-10",[]],["component/11-10",[]],["title/11-11",[232,49.533]],["name/11-11",[]],["text/11-11",[]],["component/11-11",[]],["title/11-12",[213,31.192,1111,46.248]],["name/11-12",[]],["text/11-12",[]],["component/11-12",[]],["title/11-13",[1112,37.696]],["name/11-13",[]],["text/11-13",[]],["component/11-13",[]],["title/11",[213,42.095]],["name/11",[213,0.847]],["text/11",[1,0.701,6,1.022,7,0.987,8,3.06,10,0.78,11,1.365,12,0.463,13,2.528,16,0.926,17,0.64,19,1.26,20,1.632,21,0.566,24,1.332,31,1.203,35,1.187,67,0.738,69,0.971,71,0.661,75,0.607,86,0.67,93,3.578,101,1.903,108,0.578,113,0.807,124,0.487,129,1.373,145,0.971,147,0.66,148,0.707,149,1.229,150,1.026,152,0.928,153,1.085,154,3.866,156,1.683,157,1.042,158,0.411,159,0.807,160,0.4,161,1.161,162,0.622,163,0.578,164,0.525,165,0.554,166,0.622,167,0.64,168,1.305,169,0.468,173,0.501,174,0.64,182,0.468,185,0.457,191,0.622,196,0.525,209,0.606,212,0.525,213,5.677,214,0.807,215,0.754,216,0.578,217,0.807,227,0.393,229,0.903,232,6.361,255,1.42,269,1.065,292,0.566,320,0.566,326,0.501,334,0.807,346,1.705,363,0.517,390,1.242,430,0.468,449,0.566,474,0.606,511,2.996,569,0.578,579,0.716,599,0.554,603,1.168,620,0.716,695,0.578,723,2.746,749,0.807,752,0.686,764,0.389,808,0.754,876,1.701,888,0.468,889,1.854,906,0.716,912,4.181,913,1.385,915,0.675,916,0.396,935,1.203,947,1.103,948,0.622,986,1.042,1054,1.203,1055,1.346,1056,0.956,1062,1.895,1064,1.701,1068,0.686,1091,6.908,1108,2.143,1109,0.566,1111,0.807,1113,0.89,1114,0.89,1115,0.89,1116,0.89,1117,0.89,1118,0.622,1119,0.89,1120,0.661,1121,0.89,1122,0.89,1123,0.89,1124,0.89,1125,0.807,1126,0.661,1127,0.89,1128,0.807,1129,0.807,1130,0.89,1131,0.754,1132,0.89,1133,1.701,1134,1.242,1135,0.807,1136,0.716,1137,0.89,1138,0.89,1139,0.661,1140,0.89,1141,0.716,1142,0.89,1143,0.807,1144,0.89,1145,0.89,1146,1.673,1147,4.07,1148,4.144,1149,0.89,1150,0.606,1151,0.716,1152,2.726,1153,0.89,1154,1.515,1155,0.89,1156,0.89,1157,1.673,1158,1.203,1159,0.89,1160,1.673,1161,0.89,1162,0.89]],["component/11",[1,0.411]],["title/12-1",[23,25.689]],["name/12-1",[]],["text/12-1",[]],["component/12-1",[]],["title/12-2",[26,18.526]],["name/12-2",[]],["text/12-2",[]],["component/12-2",[]],["title/12-3",[334,23.488]],["name/12-3",[]],["text/12-3",[]],["component/12-3",[]],["title/12-4",[269,18.168]],["name/12-4",[]],["text/12-4",[]],["component/12-4",[]],["title/12-5",[887,25.347]],["name/12-5",[]],["text/12-5",[]],["component/12-5",[]],["title/12-6",[788,25.347]],["name/12-6",[]],["text/12-6",[]],["component/12-6",[]],["title/12-7",[1033,32.768]],["name/12-7",[]],["text/12-7",[]],["component/12-7",[]],["title/12",[350,25.904,477,24.281]],["name/12",[920,1.115]],["text/12",[1,2.868,8,1.825,11,1.441,16,2.007,26,0.847,45,3.763,75,1.143,86,2.595,93,3.587,135,1.321,147,2.557,148,1.332,150,1.366,154,1.31,160,1.414,185,2.632,189,1.483,190,2.345,227,1.389,269,1.97,333,1.28,338,4.699,350,1.598,428,2.09,432,2.043,475,3.132,477,3.083,616,1.924,677,1.483,764,1.377,791,1.657,792,1.961,882,2.601,893,2.043,894,1.961,895,2.09,896,1.636,912,2.39,913,2.007,915,1.27,916,1.402,920,7.09,947,1.468,1073,1.454,1101,4.512,1163,2.09,1164,3.149,1165,5.08,1166,2.264,1167,3.149,1168,2.886,1169,3.149,1170,3.149]],["component/12",[1,0.411]],["title/13-1",[23,25.689]],["name/13-1",[]],["text/13-1",[]],["component/13-1",[]],["title/13-2",[26,18.526]],["name/13-2",[]],["text/13-2",[]],["component/13-2",[]],["title/13-3",[334,23.488]],["name/13-3",[]],["text/13-3",[]],["component/13-3",[]],["title/13-4",[269,18.168]],["name/13-4",[]],["text/13-4",[]],["component/13-4",[]],["title/13-5",[887,25.347]],["name/13-5",[]],["text/13-5",[]],["component/13-5",[]],["title/13-6",[788,25.347]],["name/13-6",[]],["text/13-6",[]],["component/13-6",[]],["title/13-7",[1033,32.768]],["name/13-7",[]],["text/13-7",[]],["component/13-7",[]],["title/13",[170,15.048,259,15.612,350,12.723,477,11.926,478,18.622,480,14.794]],["name/13",[919,1.175]],["text/13",[1,2.649,8,1.753,11,0.986,16,1.459,26,0.579,45,2.858,75,0.782,86,1.971,91,1.79,93,3.422,124,1.179,135,0.904,147,2.614,148,0.911,150,0.934,154,0.897,160,0.968,170,1.293,185,3.011,189,1.014,190,1.704,204,1.316,209,1.465,227,0.95,259,1.341,269,1.547,289,1.251,333,1.515,338,5.112,350,1.093,428,1.43,432,1.398,475,2.276,477,3.7,478,1.6,480,1.271,607,3.892,616,1.316,677,1.754,764,0.942,791,1.133,792,3.065,882,2.498,893,1.398,894,1.341,895,1.43,896,1.119,912,3.089,913,1.459,915,1.503,916,0.959,919,6.969,920,1.733,947,1.005,1073,0.995,1101,4.918,1139,1.6,1163,1.43,1165,4.506,1166,2.679,1168,2.097,1171,3.959,1172,2.871,1173,3.725,1174,2.997,1175,1.825,1176,3.725,1177,2.997,1178,4.46]],["component/13",[1,0.411]],["title/14-1",[23,25.689]],["name/14-1",[]],["text/14-1",[]],["component/14-1",[]],["title/14-2",[26,18.526]],["name/14-2",[]],["text/14-2",[]],["component/14-2",[]],["title/14-3",[334,23.488]],["name/14-3",[]],["text/14-3",[]],["component/14-3",[]],["title/14-4",[269,18.168]],["name/14-4",[]],["text/14-4",[]],["component/14-4",[]],["title/14-5",[887,25.347]],["name/14-5",[]],["text/14-5",[]],["component/14-5",[]],["title/14-6",[788,25.347]],["name/14-6",[]],["text/14-6",[]],["component/14-6",[]],["title/14-7",[1033,32.768]],["name/14-7",[]],["text/14-7",[]],["component/14-7",[]],["title/14",[170,15.048,259,15.612,350,12.723,477,11.926,478,18.622,479,21.242]],["name/14",[918,1.175]],["text/14",[1,2.69,8,1.803,11,1.023,16,1.507,26,0.601,45,2.94,75,0.812,86,2.027,91,1.849,93,3.567,124,1.224,135,0.938,147,2.674,148,0.946,150,0.97,154,0.931,160,1.004,170,2.309,185,3.088,189,1.053,190,1.76,227,0.987,259,1.392,269,1.586,289,1.298,333,1.564,338,5.002,350,1.135,428,1.484,432,1.451,475,2.351,477,3.522,478,1.661,479,1.895,480,1.319,607,3.992,616,1.366,677,1.812,764,0.978,791,1.176,792,2.396,882,1.952,893,1.451,894,1.392,895,1.484,896,1.162,912,3.161,913,1.507,915,1.552,916,0.995,918,7.093,947,1.043,1073,1.033,1101,4.787,1139,1.661,1163,1.484,1165,4.09,1166,2.766,1168,2.166,1171,4.073,1172,2.965,1174,3.095,1175,1.895,1177,3.095,1178,3.486,1179,3.847,1180,3.847]],["component/14",[1,0.411]],["title/15-1",[23,25.689]],["name/15-1",[]],["text/15-1",[]],["component/15-1",[]],["title/15-2",[26,18.526]],["name/15-2",[]],["text/15-2",[]],["component/15-2",[]],["title/15-3",[334,23.488]],["name/15-3",[]],["text/15-3",[]],["component/15-3",[]],["title/15-4",[269,18.168]],["name/15-4",[]],["text/15-4",[]],["component/15-4",[]],["title/15-5",[887,25.347]],["name/15-5",[]],["text/15-5",[]],["component/15-5",[]],["title/15-6",[788,25.347]],["name/15-6",[]],["text/15-6",[]],["component/15-6",[]],["title/15-7",[1033,32.768]],["name/15-7",[]],["text/15-7",[]],["component/15-7",[]],["title/15",[350,20.575,367,24.336,477,19.286]],["name/15",[395,1.115]],["text/15",[1,2.861,8,1.816,11,1.431,16,1.997,26,0.841,45,3.746,75,1.136,86,2.584,93,3.578,135,1.312,147,2.545,148,1.323,150,1.356,154,1.302,160,1.405,185,2.617,189,1.473,190,2.332,227,1.38,269,1.962,333,1.272,338,4.683,350,1.587,367,1.877,395,7.068,428,2.076,432,2.03,475,3.115,477,3.069,616,1.911,677,1.473,764,1.368,791,1.646,792,1.948,882,2.587,893,2.03,894,1.948,895,2.076,896,1.625,912,2.377,913,1.997,915,1.262,916,1.392,947,1.459,1073,1.445,1101,4.499,1163,2.076,1165,5.06,1166,2.249,1168,2.87,1181,3.128,1182,3.128,1183,3.128,1184,3.128]],["component/15",[1,0.411]],["title/16-1",[23,25.689]],["name/16-1",[]],["text/16-1",[]],["component/16-1",[]],["title/16-2",[26,18.526]],["name/16-2",[]],["text/16-2",[]],["component/16-2",[]],["title/16-3",[334,23.488]],["name/16-3",[]],["text/16-3",[]],["component/16-3",[]],["title/16-4",[269,18.168]],["name/16-4",[]],["text/16-4",[]],["component/16-4",[]],["title/16-5",[887,25.347]],["name/16-5",[]],["text/16-5",[]],["component/16-5",[]],["title/16-6",[788,25.347]],["name/16-6",[]],["text/16-6",[]],["component/16-6",[]],["title/16-7",[1033,32.768]],["name/16-7",[]],["text/16-7",[]],["component/16-7",[]],["title/16",[367,24.336,477,19.286,482,30.115]],["name/16",[922,1.175]],["text/16",[1,2.728,8,1.646,11,3.516,13,2.602,16,1.81,26,0.747,45,3.446,75,1.008,86,2.377,93,3.412,135,1.165,147,2.342,148,1.175,150,1.204,154,1.156,160,1.247,170,2.774,173,1.564,185,2.373,189,1.308,190,2.115,227,1.225,269,1.825,333,1.129,338,5.027,339,3.563,367,1.667,428,1.843,432,1.802,475,2.824,477,2.199,482,2.063,546,2.353,616,1.697,677,1.308,764,1.215,791,1.461,792,1.729,882,2.346,893,1.802,894,1.729,895,1.843,896,1.443,912,2.155,913,1.81,915,1.12,916,1.236,922,7.029,947,1.295,1018,1.499,1073,1.283,1101,4.271,1163,1.843,1165,4.707,1168,2.602,1185,2.516,1186,1.94,1187,2.777,1188,3.916,1189,2.353,1190,2.777,1191,2.777,1192,2.777]],["component/16",[1,0.411]],["title/17-1",[23,25.689]],["name/17-1",[]],["text/17-1",[]],["component/17-1",[]],["title/17-2",[26,18.526]],["name/17-2",[]],["text/17-2",[]],["component/17-2",[]],["title/17-3",[334,23.488]],["name/17-3",[]],["text/17-3",[]],["component/17-3",[]],["title/17-4",[269,18.168]],["name/17-4",[]],["text/17-4",[]],["component/17-4",[]],["title/17-5",[887,25.347]],["name/17-5",[]],["text/17-5",[]],["component/17-5",[]],["title/17-6",[788,25.347]],["name/17-6",[]],["text/17-6",[]],["component/17-6",[]],["title/17-7",[1033,32.768]],["name/17-7",[]],["text/17-7",[]],["component/17-7",[]],["title/17",[350,20.575,476,22.186,477,19.286]],["name/17",[917,1.175]],["text/17",[1,2.868,8,1.825,11,1.441,16,2.007,26,0.847,45,3.763,75,1.143,86,2.595,93,3.587,135,1.321,147,2.557,148,1.332,150,1.366,154,1.31,160,1.414,185,2.632,189,1.483,190,2.345,227,1.389,269,1.97,333,1.28,338,4.699,350,1.598,428,2.09,432,2.043,475,3.132,476,1.723,477,2.438,616,1.924,677,1.483,764,1.377,791,1.657,792,1.961,882,2.601,893,2.043,894,1.961,895,2.09,896,1.636,912,2.39,913,2.007,915,1.27,916,1.402,917,7.468,947,1.468,1073,1.454,1101,4.512,1163,2.09,1165,5.08,1166,2.264,1168,2.886,1193,3.149,1194,2.853,1195,3.149,1196,3.149]],["component/17",[1,0.411]],["title/18-1",[23,25.689]],["name/18-1",[]],["text/18-1",[]],["component/18-1",[]],["title/18-2",[26,18.526]],["name/18-2",[]],["text/18-2",[]],["component/18-2",[]],["title/18-3",[334,23.488]],["name/18-3",[]],["text/18-3",[]],["component/18-3",[]],["title/18-4",[269,18.168]],["name/18-4",[]],["text/18-4",[]],["component/18-4",[]],["title/18-5",[887,25.347]],["name/18-5",[]],["text/18-5",[]],["component/18-5",[]],["title/18-6",[788,25.347]],["name/18-6",[]],["text/18-6",[]],["component/18-6",[]],["title/18-7",[1033,32.768]],["name/18-7",[]],["text/18-7",[]],["component/18-7",[]],["title/18",[476,22.186,477,19.286,482,30.115]],["name/18",[921,1.175]],["text/18",[1,2.728,8,1.646,11,3.516,13,2.602,16,1.81,26,0.747,45,3.446,75,1.008,86,2.377,93,3.412,135,1.165,147,2.342,148,1.175,150,1.204,154,1.156,160,1.247,170,2.774,185,2.373,189,1.308,190,2.115,227,1.225,229,1.499,269,1.825,333,1.129,338,5.027,339,3.563,428,1.843,432,1.802,475,2.824,476,1.52,477,2.199,482,2.063,546,2.353,616,1.697,677,1.308,764,1.215,791,1.461,792,1.729,882,2.346,893,1.802,894,1.729,895,1.843,896,1.443,912,2.155,913,1.81,915,1.12,916,1.236,921,7.029,947,1.295,1018,1.499,1073,1.283,1101,4.271,1163,1.843,1165,4.707,1168,2.602,1185,2.516,1186,1.94,1188,3.916,1189,2.353,1197,2.777,1198,2.777,1199,2.777,1200,2.777]],["component/18",[1,0.411]],["title/19-1",[23,25.689]],["name/19-1",[]],["text/19-1",[]],["component/19-1",[]],["title/19-2",[26,18.526]],["name/19-2",[]],["text/19-2",[]],["component/19-2",[]],["title/19-3",[334,23.488]],["name/19-3",[]],["text/19-3",[]],["component/19-3",[]],["title/19-4",[269,18.168]],["name/19-4",[]],["text/19-4",[]],["component/19-4",[]],["title/19-5",[887,25.347]],["name/19-5",[]],["text/19-5",[]],["component/19-5",[]],["title/19-6",[788,25.347]],["name/19-6",[]],["text/19-6",[]],["component/19-6",[]],["title/19-7",[1033,32.768]],["name/19-7",[]],["text/19-7",[]],["component/19-7",[]],["title/19",[477,24.281,481,39.337]],["name/19",[481,1.069]],["text/19",[1,2.636,8,1.857,11,1.063,16,1.558,26,0.625,45,3.026,75,0.844,86,2.087,91,1.911,93,3.523,124,1.272,135,0.975,147,2.737,148,0.983,150,1.008,154,0.967,160,1.044,185,3.169,189,1.095,190,1.82,227,1.026,269,1.628,289,1.349,333,1.617,338,5.086,428,1.543,432,1.508,475,2.43,477,3.597,481,6.858,607,4.096,616,1.42,677,1.873,764,1.017,791,1.223,792,2.477,882,2.018,893,1.508,894,1.447,895,1.543,896,1.208,912,3.235,913,1.558,915,1.605,916,1.035,947,1.084,1073,1.074,1101,4.849,1139,1.727,1163,1.543,1165,4.198,1166,2.86,1168,2.239,1171,4.193,1172,3.065,1174,3.199,1177,3.199,1201,3.977,1202,2.324,1203,3.977,1204,3.977]],["component/19",[1,0.411]],["title/20-1",[23,25.689]],["name/20-1",[]],["text/20-1",[]],["component/20-1",[]],["title/20-2",[26,18.526]],["name/20-2",[]],["text/20-2",[]],["component/20-2",[]],["title/20-3",[334,23.488]],["name/20-3",[]],["text/20-3",[]],["component/20-3",[]],["title/20-4",[269,18.168]],["name/20-4",[]],["text/20-4",[]],["component/20-4",[]],["title/20-5",[887,25.347]],["name/20-5",[]],["text/20-5",[]],["component/20-5",[]],["title/20-6",[788,25.347]],["name/20-6",[]],["text/20-6",[]],["component/20-6",[]],["title/20-7",[1033,32.768]],["name/20-7",[]],["text/20-7",[]],["component/20-7",[]],["title/20",[477,24.281,480,30.121]],["name/20",[480,0.818]],["text/20",[1,2.535,8,1.735,11,3.006,13,1.196,16,1.442,26,0.571,45,2.828,75,0.772,86,1.951,91,1.769,93,3.404,124,1.163,135,0.891,147,2.592,148,0.899,150,0.922,154,0.884,160,0.954,170,1.275,185,2.983,189,1.001,190,1.684,227,0.938,269,1.532,289,1.234,333,1.497,338,5.536,339,3.943,428,1.41,432,1.379,475,2.25,477,3.423,480,5.05,607,3.856,616,1.299,677,1.734,764,0.929,791,1.118,792,2.293,882,1.868,893,1.379,894,1.323,895,1.41,896,1.104,912,3.063,913,1.442,915,1.485,916,0.946,947,0.991,1073,0.981,1101,4.703,1139,1.578,1163,1.41,1165,3.951,1168,2.073,1171,3.918,1172,2.837,1174,2.962,1175,1.8,1177,2.962,1188,4.922,1189,3.119,1205,3.682,1206,3.682,1207,3.682]],["component/20",[1,0.411]],["title/21-1",[23,25.689]],["name/21-1",[]],["text/21-1",[]],["component/21-1",[]],["title/21-2",[26,18.526]],["name/21-2",[]],["text/21-2",[]],["component/21-2",[]],["title/21-3",[334,23.488]],["name/21-3",[]],["text/21-3",[]],["component/21-3",[]],["title/21-4",[269,18.168]],["name/21-4",[]],["text/21-4",[]],["component/21-4",[]],["title/21-5",[887,25.347]],["name/21-5",[]],["text/21-5",[]],["component/21-5",[]],["title/21-6",[788,18.782,889,21.076]],["name/21-6",[]],["text/21-6",[]],["component/21-6",[]],["title/21-7",[15,18.782,341,23.138]],["name/21-7",[]],["text/21-7",[]],["component/21-7",[]],["title/21-8",[1033,32.768]],["name/21-8",[]],["text/21-8",[]],["component/21-8",[]],["title/21-9",[1208,37.696]],["name/21-9",[]],["text/21-9",[]],["component/21-9",[]],["title/21",[489,53.086]],["name/21",[489,1.069]],["text/21",[8,2.348,10,0.745,13,3.416,15,0.588,16,1.122,26,0.43,35,0.802,43,0.995,67,1.264,75,2.203,86,0.64,91,1.376,92,1.612,93,2.247,94,4.205,114,1.437,129,0.928,135,0.67,141,0.943,147,1.535,148,0.676,149,1.488,156,3.137,158,3.758,161,1.91,162,1.116,163,1.037,164,0.943,168,2.074,169,2.871,170,5.352,173,0.9,175,1.286,176,0.811,177,0.959,178,1.69,185,0.821,212,0.943,216,1.037,223,1.69,224,1.232,225,1.232,229,1.546,233,1.526,249,0.977,259,2.423,269,1.25,327,1.149,333,0.65,339,1.719,341,0.724,346,0.913,355,1.298,363,2.259,374,4.029,427,0.977,430,0.841,449,1.015,472,3.185,483,1.488,489,7.188,569,1.037,591,1.354,599,0.995,609,1.948,677,1.349,711,2.999,717,1.116,739,1.948,764,0.699,788,0.588,888,0.841,889,0.66,890,1.087,912,1.815,913,1.857,915,1.155,916,0.711,946,1.232,948,2,954,2.426,987,1.187,1003,1.354,1018,0.863,1037,2.426,1045,1.354,1089,1.187,1209,1.232,1210,6.594,1211,1.948,1212,2.426,1213,1.948,1214,1.286,1215,1.116,1216,2.864,1217,1.598,1218,5.457,1219,1.286,1220,1.598,1221,1.598,1222,1.598,1223,3.711,1224,1.598,1225,1.448,1226,1.448,1227,1.598,1228,1.061,1229,1.598,1230,1.598]],["component/21",[1,0.411]],["title/22-1",[23,25.689]],["name/22-1",[]],["text/22-1",[]],["component/22-1",[]],["title/22-2",[26,18.526]],["name/22-2",[]],["text/22-2",[]],["component/22-2",[]],["title/22-3",[334,23.488]],["name/22-3",[]],["text/22-3",[]],["component/22-3",[]],["title/22-4",[269,18.168]],["name/22-4",[]],["text/22-4",[]],["component/22-4",[]],["title/22-5",[887,25.347]],["name/22-5",[]],["text/22-5",[]],["component/22-5",[]],["title/22-6",[788,18.782,889,21.076]],["name/22-6",[]],["text/22-6",[]],["component/22-6",[]],["title/22-7",[15,18.782,341,23.138]],["name/22-7",[]],["text/22-7",[]],["component/22-7",[]],["title/22-8",[1033,32.768]],["name/22-8",[]],["text/22-8",[]],["component/22-8",[]],["title/22-9",[1208,37.696]],["name/22-9",[]],["text/22-9",[]],["component/22-9",[]],["title/22",[165,42.896]],["name/22",[165,0.863]],["text/22",[1,0.342,8,1.915,10,1.384,13,2.748,15,0.425,16,0.835,19,0.615,20,0.632,26,0.311,35,0.579,67,0.94,75,1.953,86,0.462,91,1.024,92,1.2,93,2.156,94,1.642,95,1.414,111,0.706,114,1.489,122,0.734,124,0.632,125,0.719,128,0.65,129,0.67,135,0.484,141,0.681,145,1.237,147,1.926,148,0.901,149,1.542,151,0.858,154,0.887,155,2.395,156,3.429,158,3.191,161,1.456,162,0.807,163,0.749,164,1.257,165,5.64,168,1.891,169,1.561,170,4.147,171,0.978,172,2.514,173,2.434,176,0.586,177,0.693,178,1.257,179,4.144,185,0.593,192,0.615,206,5.557,209,1.449,212,0.681,216,0.749,223,1.257,224,0.89,225,0.89,233,1.581,249,1.302,268,0.641,269,0.973,289,0.67,326,0.65,327,0.83,333,0.47,341,0.523,344,2.578,346,1.218,355,1.345,363,3.379,367,1.279,374,2.642,380,0.978,427,0.706,430,1.121,476,0.632,480,0.681,483,1.542,487,0.807,488,2.844,569,0.749,588,0.83,590,0.929,599,0.719,603,0.807,677,1.738,697,1.583,717,0.807,723,0.785,736,1.642,763,0.767,764,0.505,796,0.706,887,0.425,888,0.608,889,0.477,912,1.384,913,1.446,915,0.86,916,0.514,941,1.532,942,1.046,943,1.583,944,5.918,945,0.89,946,0.89,948,2.072,974,0.719,987,0.858,1018,1.15,1062,1.885,1068,0.89,1079,0.929,1081,1.714,1089,0.858,1186,2.072,1213,1.449,1214,0.929,1215,0.807,1219,0.929,1228,0.767,1231,0.978,1232,0.978,1233,1.046,1234,2.131,1235,1.155,1236,1.155,1237,1.155,1238,0.929,1239,1.155,1240,0.978,1241,0.978,1242,1.155,1243,1.155,1244,1.046,1245,1.046,1246,0.978,1247,1.046,1248,1.806,1249,1.046,1250,1.931,1251,0.785,1252,0.978,1253,0.978,1254,1.046,1255,0.978,1256,1.806,1257,0.978,1258,1.806,1259,1.046,1260,0.89,1261,1.046,1262,1.046,1263,1.046,1264,1.046]],["component/22",[1,0.411]],["title/23-1",[23,25.689]],["name/23-1",[]],["text/23-1",[]],["component/23-1",[]],["title/23-2",[26,18.526]],["name/23-2",[]],["text/23-2",[]],["component/23-2",[]],["title/23-3",[334,23.488]],["name/23-3",[]],["text/23-3",[]],["component/23-3",[]],["title/23-4",[269,18.168]],["name/23-4",[]],["text/23-4",[]],["component/23-4",[]],["title/23-5",[887,25.347]],["name/23-5",[]],["text/23-5",[]],["component/23-5",[]],["title/23-6",[788,18.782,889,21.076]],["name/23-6",[]],["text/23-6",[]],["component/23-6",[]],["title/23-7",[15,18.782,341,23.138]],["name/23-7",[]],["text/23-7",[]],["component/23-7",[]],["title/23-8",[1033,32.768]],["name/23-8",[]],["text/23-8",[]],["component/23-8",[]],["title/23-9",[1208,37.696]],["name/23-9",[]],["text/23-9",[]],["component/23-9",[]],["title/23",[166,48.111]],["name/23",[166,0.968]],["text/23",[3,0.782,8,2.067,10,0.989,13,2.739,15,0.423,16,0.831,26,0.309,35,2.441,43,0.716,67,0.936,75,1.946,86,0.46,91,1.019,92,1.194,93,2.15,94,1.635,95,1.408,96,1.443,111,0.702,114,1.482,124,0.629,128,0.647,129,0.667,135,0.482,141,0.678,145,0.667,147,1.919,148,0.486,149,0.597,151,0.854,153,1.376,154,0.478,156,3.884,158,2.864,161,1.45,162,0.803,163,0.746,164,1.743,165,1.321,166,6.597,168,1.884,169,1.116,170,3.722,173,0.647,175,0.924,176,0.583,177,0.69,178,1.252,179,0.886,185,0.59,197,0.924,206,5.544,209,1.443,212,0.678,216,0.746,223,1.252,224,0.886,225,0.886,227,0.507,229,3.133,233,1.574,249,1.296,269,0.97,289,0.667,327,0.826,331,0.803,333,0.467,341,0.962,344,2.568,346,1.689,350,1.077,355,1.339,363,3.81,367,1.273,374,2.632,376,1.917,377,2.063,427,0.702,430,1.116,476,1.617,483,1.102,487,0.803,569,0.746,588,0.826,590,0.924,598,0.886,599,0.716,677,1.731,697,1.576,707,0.924,717,0.803,739,1.443,764,0.503,887,0.423,888,0.605,889,0.475,912,1.378,913,1.44,915,0.856,916,0.512,930,1.041,941,1.525,944,5.731,946,0.886,948,2.063,961,0.974,974,1.84,987,0.854,990,0.974,1018,0.62,1062,1.348,1068,0.886,1089,0.854,1098,1.635,1100,0.763,1186,2.063,1211,0.782,1212,0.974,1213,1.443,1214,0.924,1215,0.803,1219,0.924,1228,0.763,1231,1.797,1232,1.797,1240,0.974,1241,0.974,1246,0.974,1248,0.974,1251,1.443,1252,0.974,1253,0.974,1255,0.974,1256,1.797,1257,0.974,1258,1.797,1260,0.886,1265,0.854,1266,1.635,1267,1.149,1268,2.954,1269,1.149,1270,0.746,1271,1.149,1272,1.149,1273,1.149,1274,1.149,1275,1.149,1276,1.149,1277,1.149,1278,1.149,1279,1.149,1280,1.149,1281,1.149]],["component/23",[1,0.411]],["title/24-1",[23,25.689]],["name/24-1",[]],["text/24-1",[]],["component/24-1",[]],["title/24-2",[26,18.526]],["name/24-2",[]],["text/24-2",[]],["component/24-2",[]],["title/24-3",[334,23.488]],["name/24-3",[]],["text/24-3",[]],["component/24-3",[]],["title/24-4",[269,18.168]],["name/24-4",[]],["text/24-4",[]],["component/24-4",[]],["title/24-5",[887,25.347]],["name/24-5",[]],["text/24-5",[]],["component/24-5",[]],["title/24-6",[788,18.782,889,21.076]],["name/24-6",[]],["text/24-6",[]],["component/24-6",[]],["title/24-7",[15,18.782,341,23.138]],["name/24-7",[]],["text/24-7",[]],["component/24-7",[]],["title/24-8",[1033,32.768]],["name/24-8",[]],["text/24-8",[]],["component/24-8",[]],["title/24-9",[1208,37.696]],["name/24-9",[]],["text/24-9",[]],["component/24-9",[]],["title/24",[165,25.246,487,28.316,488,31.244]],["name/24",[1282,1.256]],["text/24",[1,0.34,8,2.067,10,1.378,13,3.492,15,0.423,16,0.831,19,0.612,20,0.629,26,0.309,35,0.577,67,0.936,75,1.946,86,0.46,91,1.019,92,1.194,93,2.15,94,1.635,95,1.408,111,0.702,114,1.482,122,0.73,128,1.194,129,0.667,135,0.482,141,0.678,145,1.232,147,1.919,148,0.486,149,1.102,151,0.854,154,0.478,156,3.122,158,3.031,161,1.45,162,0.803,163,0.746,164,1.252,165,4.086,168,1.884,169,1.116,170,4.136,171,0.974,172,2.503,173,2.425,176,0.583,177,0.69,178,1.252,179,5.057,185,0.59,206,5.731,209,1.443,210,0.69,212,0.678,216,0.746,223,1.252,224,0.886,225,0.886,233,1.574,249,0.702,269,0.97,289,1.232,323,0.826,326,0.647,327,0.826,333,0.467,341,0.521,344,2.568,346,1.212,355,1.666,363,2.501,367,0.69,372,1.041,374,2.632,380,0.974,427,0.702,430,1.116,476,0.629,483,1.102,487,2.568,488,3.32,529,0.854,569,0.746,588,0.826,590,0.924,599,0.716,603,0.803,677,2.291,697,1.576,717,0.803,736,1.635,747,0.924,764,0.503,887,0.423,888,0.605,889,0.475,912,1.378,913,1.44,915,0.856,916,0.512,941,0.826,944,5.34,945,0.886,946,0.886,948,2.063,974,0.716,987,0.854,1018,1.145,1062,1.877,1089,0.854,1100,1.961,1186,2.063,1211,0.782,1213,1.443,1214,0.924,1215,0.803,1219,0.924,1228,0.763,1231,0.974,1232,0.974,1240,0.974,1241,0.974,1244,1.041,1245,1.041,1246,0.974,1247,1.041,1248,1.797,1249,1.041,1250,1.922,1251,0.782,1252,0.974,1253,0.974,1254,1.041,1255,0.974,1256,1.797,1257,0.974,1258,1.797,1259,1.041,1260,0.886,1261,1.041,1262,1.041,1263,1.041,1264,1.041,1266,1.635,1270,2.795,1282,6.762,1283,1.149,1284,0.854,1285,1.041,1286,1.149,1287,1.041,1288,1.149,1289,1.149,1290,1.149,1291,1.149,1292,1.149,1293,1.149,1294,1.149,1295,1.149]],["component/24",[1,0.411]],["title/25-1",[23,25.689]],["name/25-1",[]],["text/25-1",[]],["component/25-1",[]],["title/25-2",[896,35.797]],["name/25-2",[]],["text/25-2",[]],["component/25-2",[]],["title/25-3",[26,18.526]],["name/25-3",[]],["text/25-3",[]],["component/25-3",[]],["title/25-4",[334,23.488]],["name/25-4",[]],["text/25-4",[]],["component/25-4",[]],["title/25-5",[269,18.168]],["name/25-5",[]],["text/25-5",[]],["component/25-5",[]],["title/25-6",[887,25.347]],["name/25-6",[]],["text/25-6",[]],["component/25-6",[]],["title/25-7",[788,18.782,889,21.076]],["name/25-7",[]],["text/25-7",[]],["component/25-7",[]],["title/25-8",[15,18.782,341,23.138]],["name/25-8",[]],["text/25-8",[]],["component/25-8",[]],["title/25-9",[1033,32.768]],["name/25-9",[]],["text/25-9",[]],["component/25-9",[]],["title/25",[158,18.726,483,21.069,484,32.613]],["name/25",[1296,1.256]],["text/25",[3,0.765,8,1.287,10,0.524,12,4.404,16,0.814,26,0.302,33,0.7,35,1.043,41,1.602,67,0.917,75,1.053,80,0.73,86,0.45,91,0.999,92,1.171,93,1.957,114,1.455,130,0.785,147,2.686,148,1.226,149,1.08,150,2.291,152,0.624,154,2.199,156,2.723,158,3.41,161,0.552,168,1.268,169,0.592,177,1.248,178,0.664,182,0.592,189,1.996,190,2.192,194,0.905,196,0.664,207,1.122,212,0.664,227,0.917,229,1.122,230,1.633,268,0.624,269,0.765,326,0.633,333,0.457,354,0.73,355,0.51,363,1.207,374,1.772,389,0.624,462,0.867,466,4.834,476,0.615,480,3.117,483,3.368,484,4.604,500,0.746,510,2.683,587,0.785,593,0.7,625,0.953,677,2.256,705,1.793,710,1.019,717,0.785,739,0.765,753,0.905,763,5.367,764,0.492,801,1.544,805,1.019,840,1.842,888,0.592,889,0.464,896,1.507,912,1.352,913,1.136,915,0.839,916,0.501,936,0.664,953,0.835,982,1.349,983,0.785,986,0.7,1010,0.905,1018,0.607,1038,0.905,1083,0.905,1101,3.585,1104,0.687,1112,0.615,1150,1.414,1151,1.673,1209,0.867,1211,1.414,1228,0.746,1265,1.544,1266,0.867,1296,5.186,1297,0.905,1298,1.019,1299,1.762,1300,1.124,1301,1.124,1302,0.867,1303,1.124,1304,1.884,1305,2.457,1306,0.953,1307,0.953,1308,1.019,1309,1.884,1310,1.124,1311,1.124,1312,2.457,1313,1.762,1314,1.019,1315,0.867,1316,1.544,1317,0.953,1318,0.953,1319,0.905,1320,0.905,1321,1.124,1322,2.235,1323,1.544,1324,1.602,1325,0.953,1326,1.762,1327,0.867,1328,0.765,1329,0.953,1330,0.953,1331,1.124,1332,1.019,1333,1.602,1334,0.953,1335,2.784,1336,0.809,1337,1.124,1338,1.124,1339,1.124,1340,1.019,1341,3.613,1342,3.692,1343,1.124,1344,1.124,1345,1.544,1346,0.867,1347,1.124,1348,1.124,1349,1.019]],["component/25",[1,0.411]],["title/26-1",[23,25.689]],["name/26-1",[]],["text/26-1",[]],["component/26-1",[]],["title/26-2",[896,35.797]],["name/26-2",[]],["text/26-2",[]],["component/26-2",[]],["title/26-3",[26,18.526]],["name/26-3",[]],["text/26-3",[]],["component/26-3",[]],["title/26-4",[334,23.488]],["name/26-4",[]],["text/26-4",[]],["component/26-4",[]],["title/26-5",[269,18.168]],["name/26-5",[]],["text/26-5",[]],["component/26-5",[]],["title/26-6",[887,25.347]],["name/26-6",[]],["text/26-6",[]],["component/26-6",[]],["title/26-7",[788,18.782,889,21.076]],["name/26-7",[]],["text/26-7",[]],["component/26-7",[]],["title/26-8",[15,18.782,341,23.138]],["name/26-8",[]],["text/26-8",[]],["component/26-8",[]],["title/26",[125,20.939,158,15.531,483,17.474,485,24.179]],["name/26",[1350,1.256]],["text/26",[8,1.771,10,1.184,11,1.162,12,2.584,16,0.995,26,0.376,43,1.581,67,0.617,75,1.806,85,1.125,86,0.56,91,1.676,92,1.43,93,2.253,104,1.006,125,4.072,127,1.185,128,0.787,130,0.977,135,1.065,140,2.043,143,1.006,147,2.4,148,1.074,149,1.32,150,1.859,154,1.784,156,1.659,158,3.525,161,0.686,163,0.907,168,1.111,169,0.736,178,0.825,182,1.336,189,1.196,190,1.162,191,0.977,192,0.745,196,0.825,207,0.755,229,1.371,230,1.963,244,1.078,268,0.776,269,0.67,318,0.628,330,0.871,332,0.799,333,0.569,349,1.078,350,0.71,354,0.907,355,0.634,362,1.078,374,2.131,387,1.886,392,1.524,430,1.835,436,1.039,454,0.928,476,0.765,477,2.365,483,2.892,485,4.702,487,0.977,492,2.782,508,0.951,509,0.855,526,1.185,569,0.907,596,1.039,653,1.078,705,0.694,723,0.951,752,1.078,764,0.612,765,1.185,791,0.736,797,1.185,840,1.613,876,1.826,884,1.185,887,0.515,888,0.736,889,0.577,896,2.228,908,1.125,912,1.626,913,0.995,915,1.024,916,0.623,926,1.185,941,1.006,947,0.652,948,0.977,958,0.888,969,1.773,982,2.263,1018,0.755,1052,4.567,1056,1.993,1083,1.125,1101,2.082,1147,1.078,1213,1.727,1302,1.078,1316,1.886,1322,1.957,1323,1.039,1324,1.078,1333,1.078,1345,1.039,1346,1.078,1350,2.301,1351,1.185,1352,2.043,1353,2.955,1354,1.125,1355,1.185,1356,1.399,1357,1.399,1358,2.805,1359,1.399,1360,1.399,1361,1.185,1362,7.181,1363,1.399,1364,1.125,1365,3.885,1366,1.125,1367,1.267,1368,1.267,1369,2.151,1370,2.301,1371,1.267,1372,1.078,1373,1.078,1374,2.301,1375,2.301,1376,1.185,1377,1.267,1378,2.151,1379,1.185,1380,1.185,1381,1.185,1382,1.267]],["component/26",[1,0.411]],["title/27-1",[23,25.689]],["name/27-1",[]],["text/27-1",[]],["component/27-1",[]],["title/27-2",[896,35.797]],["name/27-2",[]],["text/27-2",[]],["component/27-2",[]],["title/27-3",[169,26.855,1353,43.249]],["name/27-3",[]],["text/27-3",[]],["component/27-3",[]],["title/27-4",[896,26.526,1238,41.06]],["name/27-4",[]],["text/27-4",[]],["component/27-4",[]],["title/27-5",[26,18.526]],["name/27-5",[]],["text/27-5",[]],["component/27-5",[]],["title/27-6",[334,23.488]],["name/27-6",[]],["text/27-6",[]],["component/27-6",[]],["title/27-7",[269,18.168]],["name/27-7",[]],["text/27-7",[]],["component/27-7",[]],["title/27-8",[887,25.347]],["name/27-8",[]],["text/27-8",[]],["component/27-8",[]],["title/27-9",[788,18.782,889,21.076]],["name/27-9",[]],["text/27-9",[]],["component/27-9",[]],["title/27-10",[15,18.782,341,23.138]],["name/27-10",[]],["text/27-10",[]],["component/27-10",[]],["title/27",[125,25.246,158,18.726,483,21.069]],["name/27",[399,1.175]],["text/27",[3,0.626,8,1.293,10,1.693,11,0.789,12,2.15,16,0.676,24,0.518,25,0.74,26,0.464,67,0.761,69,0.534,72,0.78,75,1.502,80,0.597,86,0.368,91,1.744,92,2.044,93,1.999,95,1.145,96,1.173,99,0.74,107,1.563,108,0.597,111,0.562,124,0.503,125,3.962,130,0.643,135,0.386,140,1.387,147,1.814,148,0.729,149,1.593,150,1.574,154,2.869,156,2.886,158,3.957,161,0.452,165,0.573,168,0.754,169,1.613,173,0.518,176,0.467,177,1.84,178,1.437,188,0.643,189,0.812,190,0.789,191,0.643,192,0.49,196,0.543,205,0.626,207,0.497,210,0.552,211,0.597,212,1.018,227,0.406,229,1.655,230,1.371,268,0.957,269,0.455,318,0.413,326,0.971,330,1.074,331,0.643,332,0.526,333,0.374,346,0.526,354,0.597,355,0.417,362,0.709,374,1.488,387,0.683,389,0.511,399,1.461,430,1.91,462,0.709,476,1.332,477,0.438,480,3.755,483,3.307,484,1.387,485,0.662,500,0.611,536,0.834,540,0.526,569,0.597,570,0.971,587,0.643,596,0.683,654,0.834,705,0.456,717,0.643,723,0.626,747,0.74,753,0.74,763,0.611,764,0.402,791,0.484,797,0.78,801,1.281,808,0.78,840,1.947,884,0.78,887,0.339,888,0.484,889,0.38,896,2.389,900,0.518,912,1.135,913,0.676,915,0.696,916,0.41,935,0.662,936,0.543,947,0.804,948,0.643,953,0.683,954,1.461,982,3.501,986,1.074,1018,1.314,1038,0.74,1052,4.237,1053,0.78,1056,1.392,1101,1.489,1104,1.488,1147,0.709,1150,1.173,1151,1.387,1209,0.709,1213,1.173,1215,0.643,1223,1.173,1228,0.611,1238,1.387,1251,1.173,1302,0.709,1316,2.277,1317,0.78,1318,0.78,1319,0.74,1320,0.74,1322,2.797,1323,1.808,1324,1.876,1325,0.78,1326,1.461,1327,0.709,1328,0.626,1329,0.78,1330,2.597,1333,1.329,1345,1.281,1346,0.709,1353,1.461,1358,1.958,1364,0.74,1365,4.543,1366,0.74,1367,0.834,1368,0.834,1369,1.461,1370,1.563,1371,0.834,1372,1.329,1373,0.709,1374,1.563,1375,1.563,1376,1.461,1377,1.563,1378,1.461,1379,0.78,1380,0.78,1381,0.78,1382,0.834,1383,0.92,1384,0.92,1385,0.92,1386,0.92,1387,0.92,1388,0.834,1389,0.709,1390,0.92,1391,0.92,1392,0.92,1393,0.834,1394,0.92,1395,0.92,1396,0.834,1397,0.78,1398,1.725,1399,0.92,1400,0.92,1401,1.725,1402,0.78,1403,0.92,1404,0.92,1405,0.78,1406,0.643,1407,0.834,1408,6.066,1409,0.92,1410,0.92]],["component/27",[1,0.411]],["title/28-1",[23,25.689]],["name/28-1",[]],["text/28-1",[]],["component/28-1",[]],["title/28-2",[896,35.797]],["name/28-2",[]],["text/28-2",[]],["component/28-2",[]],["title/28-3",[26,18.526]],["name/28-3",[]],["text/28-3",[]],["component/28-3",[]],["title/28-4",[334,23.488]],["name/28-4",[]],["text/28-4",[]],["component/28-4",[]],["title/28-5",[269,18.168]],["name/28-5",[]],["text/28-5",[]],["component/28-5",[]],["title/28-6",[887,25.347]],["name/28-6",[]],["text/28-6",[]],["component/28-6",[]],["title/28-7",[788,18.782,889,21.076]],["name/28-7",[]],["text/28-7",[]],["component/28-7",[]],["title/28-8",[15,18.782,341,23.138]],["name/28-8",[]],["text/28-8",[]],["component/28-8",[]],["title/28",[125,20.939,158,15.531,483,17.474,486,27.049]],["name/28",[1411,1.256]],["text/28",[8,1.651,12,1.449,13,2.138,15,0.571,16,1.092,26,0.417,64,1.314,67,0.684,75,1.684,86,0.621,91,1.34,92,0.873,93,2.205,104,1.115,125,4.795,127,1.314,128,0.873,130,1.083,135,1.169,140,1.247,141,0.915,146,2.652,147,2.896,148,1.961,149,1.449,150,2.318,153,1.006,154,2.225,156,2.205,158,4.069,161,0.761,163,2.464,164,0.915,165,0.966,166,1.083,167,1.115,168,2.833,169,0.816,178,0.915,189,1.313,190,1.275,196,0.915,209,2.582,221,0.985,229,0.837,230,2.61,232,1.115,246,1.771,269,0.735,332,0.886,333,1.133,341,0.703,346,1.593,349,1.195,354,1.809,374,2.32,387,1.152,392,0.931,436,1.152,454,1.029,477,0.738,483,4.319,485,3.844,486,3.729,489,1.195,492,1.006,500,2.52,508,1.055,599,0.966,705,0.769,752,1.195,764,0.678,840,1.771,876,1.115,887,0.571,888,0.816,889,0.64,896,1.449,908,2.242,912,1.771,913,1.092,915,1.125,916,0.69,933,1.195,958,0.985,982,1.809,1052,3.733,1056,0.886,1101,2.251,1154,1.405,1163,1.029,1316,1.152,1322,2.148,1323,1.152,1324,1.195,1330,1.314,1345,1.152,1346,1.195,1351,1.314,1358,1.247,1362,3.44,1378,2.362,1379,1.314,1380,1.314,1381,1.314,1406,1.083,1411,5.869,1412,1.405,1413,1.314,1414,5.952,1415,2.787,1416,1.405,1417,1.152,1418,1.551,1419,1.115,1420,1.551,1421,1.551,1422,1.551,1423,1.551,1424,1.551,1425,1.551,1426,1.551]],["component/28",[1,0.411]],["title/29-1",[23,25.689]],["name/29-1",[]],["text/29-1",[]],["component/29-1",[]],["title/29-2",[896,35.797]],["name/29-2",[]],["text/29-2",[]],["component/29-2",[]],["title/29-3",[158,23.576,1333,39.337]],["name/29-3",[]],["text/29-3",[]],["component/29-3",[]],["title/29-4",[26,18.526]],["name/29-4",[]],["text/29-4",[]],["component/29-4",[]],["title/29-5",[334,23.488]],["name/29-5",[]],["text/29-5",[]],["component/29-5",[]],["title/29-6",[269,18.168]],["name/29-6",[]],["text/29-6",[]],["component/29-6",[]],["title/29-7",[887,25.347]],["name/29-7",[]],["text/29-7",[]],["component/29-7",[]],["title/29-8",[788,18.782,889,21.076]],["name/29-8",[]],["text/29-8",[]],["component/29-8",[]],["title/29-9",[15,18.782,341,23.138]],["name/29-9",[]],["text/29-9",[]],["component/29-9",[]],["title/29-10",[1033,32.768]],["name/29-10",[]],["text/29-10",[]],["component/29-10",[]],["title/29",[158,18.726,480,23.924,483,21.069]],["name/29",[1427,1.256]],["text/29",[3,0.815,8,1.354,10,0.559,12,3.097,16,0.864,26,0.322,35,1.908,41,1.7,67,0.973,69,0.696,75,1.112,80,0.778,86,0.48,91,1.06,92,0.675,93,1.409,111,0.733,114,0.602,125,1.374,130,0.837,147,2.509,148,1.296,149,1.146,150,1.928,152,0.665,154,2.294,156,3.197,158,3.394,161,0.588,164,0.708,168,1.34,169,1.161,177,1.324,178,0.708,182,0.631,188,0.837,189,1.443,190,1.74,192,0.639,227,1.352,229,1.191,230,1.725,259,0.747,268,0.665,269,0.808,326,0.675,333,0.487,350,1.119,354,0.778,355,0.544,363,1.778,374,1.872,376,0.778,389,0.665,415,0.815,462,0.924,466,4.795,476,1.207,477,0.57,480,4.782,483,3.493,500,0.796,510,1.638,526,1.016,567,1.086,573,1.086,587,0.837,593,0.747,677,1.039,705,1.094,739,0.815,753,0.964,763,2.033,764,0.524,796,0.733,801,1.638,840,1.946,888,0.631,889,0.495,896,1.146,912,1.429,913,1.2,915,0.89,916,0.534,936,0.708,953,0.891,969,0.837,974,1.374,982,1.431,983,0.837,985,0.891,990,1.016,1002,1.016,1010,0.964,1018,0.647,1038,0.964,1083,2.464,1084,1.016,1098,1.7,1101,2.677,1104,0.733,1112,0.656,1118,0.837,1150,2.084,1151,1.774,1209,0.924,1213,2.586,1215,0.837,1223,1.5,1228,0.796,1238,0.964,1265,1.638,1266,1.7,1299,1.016,1304,1.999,1305,1.869,1306,1.016,1307,1.869,1308,1.999,1309,1.999,1312,2.596,1313,1.016,1314,1.086,1315,0.924,1316,1.638,1317,1.016,1318,1.016,1319,0.964,1320,0.964,1322,2.361,1323,1.638,1324,1.7,1325,1.016,1326,2.596,1327,0.924,1328,0.815,1329,1.016,1333,2.93,1334,1.016,1335,2.93,1340,1.086,1342,2.361,1345,1.638,1346,0.924,1349,1.086,1358,0.964,1405,1.016,1427,4.995,1428,1.199,1429,1.086,1430,1.199,1431,1.016,1432,0.964,1433,1.199,1434,1.199,1435,0.924,1436,1.199,1437,0.891,1438,1.199,1439,1.199,1440,1.199,1441,1.199,1442,1.199,1443,1.199,1444,1.199,1445,1.199]],["component/29",[1,0.411]],["title/30-1",[23,25.689]],["name/30-1",[]],["text/30-1",[]],["component/30-1",[]],["title/30-2",[26,18.526]],["name/30-2",[]],["text/30-2",[]],["component/30-2",[]],["title/30-3",[334,23.488]],["name/30-3",[]],["text/30-3",[]],["component/30-3",[]],["title/30-4",[269,18.168]],["name/30-4",[]],["text/30-4",[]],["component/30-4",[]],["title/30-5",[887,25.347]],["name/30-5",[]],["text/30-5",[]],["component/30-5",[]],["title/30-6",[788,25.347]],["name/30-6",[]],["text/30-6",[]],["component/30-6",[]],["title/30-7",[788,18.782,889,21.076]],["name/30-7",[]],["text/30-7",[]],["component/30-7",[]],["title/30-8",[1033,32.768]],["name/30-8",[]],["text/30-8",[]],["component/30-8",[]],["title/30",[28,34.717,496,43.249]],["name/30",[1446,1.256]],["text/30",[8,2.273,11,3.791,16,1.627,26,0.658,67,1.079,75,0.888,82,1.758,86,0.979,93,2.364,101,1.967,114,2.084,128,1.377,147,3.269,148,1.034,149,2.158,150,3.1,154,1.018,156,1.975,160,1.865,161,1.2,168,2.368,176,1.241,189,2.549,190,2.477,210,1.468,227,1.079,229,1.32,230,4.024,269,1.428,333,0.994,338,4.085,346,2.373,350,1.241,354,1.587,355,1.108,367,1.468,421,2.215,477,1.975,496,5.406,598,4.171,677,1.956,705,1.213,760,1.884,764,1.07,840,2.638,888,1.286,889,1.01,900,1.377,912,2.976,913,2.12,915,1.675,916,1.088,926,2.072,933,1.884,989,1.884,1018,1.32,1061,2.215,1101,4.024,1186,1.708,1334,2.072,1335,1.884,1369,2.072,1446,7.04,1447,4.153,1448,2.445,1449,2.445,1450,2.445,1451,2.215,1452,2.445,1453,2.445,1454,2.215,1455,4.153,1456,2.445,1457,2.445,1458,2.445,1459,1.816,1460,2.445]],["component/30",[1,0.411]],["title/31-1",[23,25.689]],["name/31-1",[]],["text/31-1",[]],["component/31-1",[]],["title/31-2",[26,18.526]],["name/31-2",[]],["text/31-2",[]],["component/31-2",[]],["title/31-3",[334,23.488]],["name/31-3",[]],["text/31-3",[]],["component/31-3",[]],["title/31-4",[269,18.168]],["name/31-4",[]],["text/31-4",[]],["component/31-4",[]],["title/31-5",[887,25.347]],["name/31-5",[]],["text/31-5",[]],["component/31-5",[]],["title/31-6",[8,18.179,915,20.594]],["name/31-6",[]],["text/31-6",[]],["component/31-6",[]],["title/31-7",[10,32.125]],["name/31-7",[]],["text/31-7",[]],["component/31-7",[]],["title/31-8",[8,18.179,1208,27.933]],["name/31-8",[]],["text/31-8",[]],["component/31-8",[]],["title/31-9",[788,18.782,889,21.076]],["name/31-9",[]],["text/31-9",[]],["component/31-9",[]],["title/31-10",[15,18.782,341,23.138]],["name/31-10",[]],["text/31-10",[]],["component/31-10",[]],["title/31",[491,48.111]],["name/31",[491,0.968]],["text/31",[0,0.807,8,2.949,11,0.543,12,1.96,16,1.477,19,0.632,21,0.754,24,0.668,26,0.319,27,0.807,28,0.807,61,0.915,67,0.964,69,0.689,75,2.655,86,0.475,91,0.57,93,2.902,108,0.77,111,1.335,115,1.006,128,1.23,135,1.851,147,1.741,148,0.924,150,1.914,154,0.494,156,2.605,160,0.533,164,0.7,168,0.956,176,0.602,180,0.641,185,0.609,189,1.029,190,1,192,1.164,196,0.7,203,4.027,212,1.29,227,0.964,249,0.725,255,1.823,268,0.659,269,1.312,289,1.269,311,1.075,326,0.668,332,0.678,334,0.745,343,1.571,346,0.678,355,0.991,369,1.623,390,0.882,425,3.303,430,1.15,474,0.807,476,0.65,477,0.565,491,6.752,512,1.571,513,2.264,516,2.712,529,0.882,540,0.678,587,0.829,591,1.006,609,0.807,656,1.451,666,0.853,705,0.589,709,1.075,720,0.955,764,0.956,789,0.882,791,0.624,804,0.807,840,0.754,875,1.006,888,0.624,889,0.49,900,2.802,912,1.416,913,1.477,915,0.882,916,0.528,927,0.754,947,0.554,950,1.006,958,0.754,969,0.829,978,0.955,982,0.77,1012,0.955,1037,1.006,1056,1.736,1073,0.548,1101,1.832,1109,0.754,1133,2.712,1158,0.853,1168,1.71,1223,1.486,1302,0.915,1461,1.187,1462,3.037,1463,1.006,1464,1.187,1465,1.187,1466,2.185,1467,1.075,1468,1.075,1469,1.187,1470,1.075,1471,1.187,1472,1.187,1473,1.187,1474,1.187,1475,1.187,1476,7.584,1477,1.187,1478,3.037,1479,1.006,1480,1.075,1481,0.788,1482,3.196,1483,1.571,1484,2.34,1485,1.852,1486,1.418,1487,3.418,1488,1.187,1489,1.006,1490,1.187,1491,1.98,1492,1.187,1493,1.075,1494,1.187,1495,1.187,1496,3.037,1497,1.187,1498,1.075,1499,2.185,1500,2.185,1501,4.413,1502,2.185,1503,1.187,1504,1.187,1505,1.187,1506,1.187,1507,1.075,1508,1.187,1509,1.187,1510,1.187,1511,1.187,1512,1.758,1513,0.882,1514,1.187,1515,1.075]],["component/31",[1,0.411]],["title/32-1",[23,25.689]],["name/32-1",[]],["text/32-1",[]],["component/32-1",[]],["title/32-2",[26,18.526]],["name/32-2",[]],["text/32-2",[]],["component/32-2",[]],["title/32-3",[334,23.488]],["name/32-3",[]],["text/32-3",[]],["component/32-3",[]],["title/32-4",[269,18.168]],["name/32-4",[]],["text/32-4",[]],["component/32-4",[]],["title/32-5",[887,25.347]],["name/32-5",[]],["text/32-5",[]],["component/32-5",[]],["title/32-6",[8,18.179,915,20.594]],["name/32-6",[]],["text/32-6",[]],["component/32-6",[]],["title/32-7",[15,18.782,341,23.138]],["name/32-7",[]],["text/32-7",[]],["component/32-7",[]],["title/32",[485,36.704,492,33.12]],["name/32",[1516,1.256]],["text/32",[0,1.224,7,3.853,8,2.82,10,0.839,11,0.823,15,0.662,16,1.247,19,0.959,26,0.484,43,1.121,55,1.294,67,0.794,75,1.554,91,0.865,93,2.189,96,1.224,135,0.755,145,1.045,147,2.04,148,1.346,150,1.381,163,2.066,168,1.392,177,1.911,178,1.062,192,0.959,204,1.1,207,0.972,227,1.405,230,1.792,249,1.945,269,1.364,315,1.525,322,1.525,326,1.013,332,1.029,333,0.732,334,0.614,347,1.257,348,1.168,350,0.913,355,0.816,369,1.337,376,1.168,392,1.911,425,2.113,430,0.947,438,1.387,440,1.168,461,1.525,476,0.985,477,2.811,485,5.077,491,1.257,492,4.237,493,2.365,500,1.195,505,1.143,513,1.08,520,1.143,547,1.294,570,1.792,580,1.337,603,1.257,620,1.448,656,2.841,666,1.294,694,2.066,705,0.893,796,1.1,896,0.935,900,1.013,913,1.247,947,0.839,974,1.121,982,1.168,1017,1.168,1056,1.819,1062,4.148,1073,0.831,1079,1.448,1109,1.143,1120,1.337,1150,1.224,1158,1.294,1186,1.257,1211,1.224,1251,2.165,1328,2.165,1354,1.448,1355,2.697,1389,1.387,1407,1.631,1413,1.525,1417,1.337,1432,1.448,1481,2.113,1483,1.294,1512,2.561,1513,1.337,1515,1.631,1516,5.917,1517,3.183,1518,1.631,1519,1.631,1520,1.8,1521,1.8,1522,1.8,1523,1.8,1524,1.525,1525,1.8,1526,1.387,1527,1.525,1528,3.183,1529,1.8,1530,1.8,1531,1.8,1532,1.8,1533,1.8,1534,1.525,1535,1.631,1536,1.448,1537,1.525,1538,1.631,1539,1.525,1540,6.53,1541,1.631,1542,1.8,1543,1.8,1544,1.337,1545,3.183,1546,4.28,1547,1.8,1548,1.448]],["component/32",[1,0.411]],["title/33-1",[23,25.689]],["name/33-1",[]],["text/33-1",[]],["component/33-1",[]],["title/33-2",[26,18.526]],["name/33-2",[]],["text/33-2",[]],["component/33-2",[]],["title/33-3",[334,23.488]],["name/33-3",[]],["text/33-3",[]],["component/33-3",[]],["title/33-4",[269,18.168]],["name/33-4",[]],["text/33-4",[]],["component/33-4",[]],["title/33-5",[887,25.347]],["name/33-5",[]],["text/33-5",[]],["component/33-5",[]],["title/33-6",[8,18.179,915,20.594]],["name/33-6",[]],["text/33-6",[]],["component/33-6",[]],["title/33-7",[8,18.179,1208,27.933]],["name/33-7",[]],["text/33-7",[]],["component/33-7",[]],["title/33-8",[788,18.782,889,21.076]],["name/33-8",[]],["text/33-8",[]],["component/33-8",[]],["title/33-9",[15,18.782,341,23.138]],["name/33-9",[]],["text/33-9",[]],["component/33-9",[]],["title/33-10",[1208,37.696]],["name/33-10",[]],["text/33-10",[]],["component/33-10",[]],["title/33-11",[1033,32.768]],["name/33-11",[]],["text/33-11",[]],["component/33-11",[]],["title/33",[492,33.12,493,37.915]],["name/33",[1539,1.175]],["text/33",[7,3.332,8,2.601,12,1.48,16,1.391,26,0.296,43,0.685,45,0.639,67,0.486,75,1.29,86,1.14,91,0.529,93,2.371,135,0.462,145,0.639,147,1.862,148,1.764,150,2.62,154,0.848,160,0.916,168,1.824,176,0.559,189,0.518,190,0.504,192,1.517,204,0.673,207,1.101,230,1.148,246,0.699,249,1.246,269,1.244,289,1.653,291,0.792,331,0.769,332,0.629,333,0.448,334,0.375,347,0.769,355,1.291,369,0.818,423,2.115,425,1.353,430,0.579,440,0.714,459,0.848,461,0.933,472,0.739,492,4.154,493,6.238,505,4.465,513,1.224,516,0.792,520,0.699,540,1.165,570,1.603,580,0.818,589,1.323,603,0.769,620,0.886,653,0.848,656,4.01,666,0.792,677,1.673,705,0.546,739,0.749,764,0.482,773,1.809,791,0.579,796,0.673,816,1.571,818,1.847,882,1.035,888,0.579,889,0.455,912,1.945,913,1.848,915,1.433,916,0.49,943,0.818,982,0.714,986,1.269,987,0.818,988,0.933,1017,4.154,1018,2.547,1056,1.165,1062,2.256,1079,0.886,1080,0.886,1101,2.529,1120,0.818,1133,0.792,1148,1.353,1150,0.749,1152,1.571,1158,2.554,1168,2.932,1225,0.997,1265,0.818,1328,1.387,1355,1.727,1372,2.194,1389,0.848,1419,1.466,1432,0.886,1463,0.933,1479,0.933,1481,0.731,1484,0.848,1498,0.997,1512,1.64,1513,2.638,1527,0.933,1534,0.933,1535,0.997,1536,1.64,1537,0.933,1538,0.997,1539,1.727,1541,6.097,1548,2.29,1549,0.997,1550,1.101,1551,0.886,1552,1.101,1553,1.101,1554,1.101,1555,1.101,1556,1.101,1557,3.778,1558,1.101,1559,3.778,1560,1.101,1561,2.039,1562,4.17,1563,1.101,1564,1.101,1565,1.101,1566,1.101,1567,1.101,1568,1.101,1569,1.101,1570,3.218,1571,2.847,1572,2.039,1573,4.17,1574,1.101,1575,1.101,1576,1.101,1577,1.101,1578,1.101,1579,1.101,1580,1.101,1581,1.101]],["component/33",[1,0.411]],["title/34-1",[23,25.689]],["name/34-1",[]],["text/34-1",[]],["component/34-1",[]],["title/34-2",[26,18.526]],["name/34-2",[]],["text/34-2",[]],["component/34-2",[]],["title/34-3",[334,23.488]],["name/34-3",[]],["text/34-3",[]],["component/34-3",[]],["title/34-4",[269,18.168]],["name/34-4",[]],["text/34-4",[]],["component/34-4",[]],["title/34-5",[887,25.347]],["name/34-5",[]],["text/34-5",[]],["component/34-5",[]],["title/34-6",[788,18.782,889,21.076]],["name/34-6",[]],["text/34-6",[]],["component/34-6",[]],["title/34-7",[15,18.782,341,23.138]],["name/34-7",[]],["text/34-7",[]],["component/34-7",[]],["title/34-8",[1033,32.768]],["name/34-8",[]],["text/34-8",[]],["component/34-8",[]],["title/34-9",[1208,37.696]],["name/34-9",[]],["text/34-9",[]],["component/34-9",[]],["title/34",[376,33.12,377,35.65]],["name/34",[1582,1.175]],["text/34",[1,0.512,8,2.048,13,2.826,16,1.622,26,0.464,33,1.075,35,2.078,67,1.354,75,1.504,86,0.692,93,1.534,108,1.121,114,1.54,129,1.782,135,0.725,145,1.782,147,1.634,148,0.73,149,0.898,150,0.749,154,1.277,156,2.388,158,2.656,160,0.776,161,1.506,164,1.019,168,2.196,173,0.972,176,0.876,178,1.019,229,1.657,246,1.097,269,1.324,333,0.702,339,1.842,354,1.121,355,1.878,374,2.531,376,3.731,377,2.893,389,0.958,430,0.909,435,1.331,449,2.631,465,2.469,466,5.004,483,1.595,494,4.908,548,1.331,570,1.728,677,2.999,695,1.121,763,1.146,764,0.755,815,1.565,816,1.331,873,1.331,888,0.909,889,0.713,892,1.565,912,2.341,913,1.966,915,1.671,916,0.769,933,1.331,936,1.019,944,6.468,951,1.389,952,1.463,953,1.283,974,1.075,1003,2.6,1018,3.104,1084,1.463,1148,3.332,1186,1.206,1226,1.565,1405,1.463,1406,1.206,1582,8.125,1583,1.727,1584,1.727,1585,1.727,1586,1.727,1587,1.727,1588,1.565,1589,1.565,1590,3.069,1591,4.548,1592,5.21,1593,1.727,1594,1.727,1595,1.727,1596,1.727,1597,2.781,1598,4.548,1599,1.727,1600,1.727,1601,1.727,1602,1.727,1603,1.727,1604,1.727,1605,1.727,1606,1.727]],["component/34",[1,0.411]],["title/35-1",[23,25.689]],["name/35-1",[]],["text/35-1",[]],["component/35-1",[]],["title/35-2",[26,18.526]],["name/35-2",[]],["text/35-2",[]],["component/35-2",[]],["title/35-3",[334,23.488]],["name/35-3",[]],["text/35-3",[]],["component/35-3",[]],["title/35-4",[269,18.168]],["name/35-4",[]],["text/35-4",[]],["component/35-4",[]],["title/35-5",[887,25.347]],["name/35-5",[]],["text/35-5",[]],["component/35-5",[]],["title/35-6",[788,25.347]],["name/35-6",[]],["text/35-6",[]],["component/35-6",[]],["title/35-7",[788,18.782,889,21.076]],["name/35-7",[]],["text/35-7",[]],["component/35-7",[]],["title/35-8",[1033,32.768]],["name/35-8",[]],["text/35-8",[]],["component/35-8",[]],["title/35",[207,18.154,350,17.064,476,18.401,495,28.49]],["name/35",[1607,1.256]],["text/35",[8,2.257,11,3.251,16,1.612,24,1.363,26,1.107,27,1.646,28,1.646,67,1.068,75,1.495,80,1.57,86,0.969,93,2.348,114,2.065,124,1.324,141,1.428,147,3.253,148,1.024,149,2.139,150,3.081,154,1.007,156,1.958,160,1.849,161,1.188,168,2.35,189,2.53,190,2.458,205,1.646,207,1.307,211,1.57,230,4,231,2.193,255,1.453,269,1.417,333,0.984,338,4.061,343,1.74,346,2.353,350,1.228,354,1.57,355,1.097,376,1.57,438,1.865,440,1.57,476,1.324,477,1.958,495,3.488,540,1.383,598,4.14,677,1.939,705,1.201,720,1.947,764,1.059,789,1.798,840,2.615,888,1.273,889,0.999,906,1.947,912,2.956,913,2.104,915,1.661,916,1.077,966,1.947,994,2.193,1018,1.307,1101,4.004,1194,3.73,1260,1.865,1335,1.865,1352,1.947,1354,1.947,1431,2.05,1454,2.193,1607,6.437,1608,2.42,1609,1.947,1610,2.42,1611,2.193,1612,2.42,1613,2.42,1614,2.42,1615,2.42,1616,2.42,1617,2.42]],["component/35",[1,0.411]],["title/36-1",[23,25.689]],["name/36-1",[]],["text/36-1",[]],["component/36-1",[]],["title/36-2",[26,18.526]],["name/36-2",[]],["text/36-2",[]],["component/36-2",[]],["title/36-3",[334,23.488]],["name/36-3",[]],["text/36-3",[]],["component/36-3",[]],["title/36-4",[269,18.168]],["name/36-4",[]],["text/36-4",[]],["component/36-4",[]],["title/36-5",[887,25.347]],["name/36-5",[]],["text/36-5",[]],["component/36-5",[]],["title/36-6",[788,25.347]],["name/36-6",[]],["text/36-6",[]],["component/36-6",[]],["title/36",[377,35.65,494,39.337]],["name/36",[402,1.175]],["text/36",[8,1.935,10,1.146,12,2.168,13,3.059,15,0.904,16,1.634,26,0.661,43,1.531,75,1.515,86,0.984,93,3.077,135,1.031,147,1.646,148,1.04,150,1.809,154,1.023,156,1.169,160,2.441,189,1.964,190,1.908,192,1.31,196,1.45,209,2.837,216,1.595,227,1.085,230,2.348,269,1.433,333,0.999,348,1.595,350,2.117,354,1.595,374,1.502,377,1.717,392,2.504,402,6.602,430,1.293,454,1.631,466,2.837,492,1.595,494,6.005,537,1.894,548,1.894,694,1.595,705,1.22,763,4.25,764,1.075,765,2.083,788,0.904,791,1.293,900,1.384,913,0.963,915,0.992,916,1.094,943,3.098,944,5.325,947,1.146,977,1.672,1018,2.252,1073,2.51,1081,1.977,1087,2.227,1101,3.482,1109,1.561,1148,1.631,1270,3.526,1431,2.083,1479,2.083,1483,1.767,1519,3.779,1544,1.826,1582,5.425,1591,2.227,1592,2.227,1597,3.779,1598,4.923,1618,4.171,1619,2.458,1620,4.171,1621,4.171,1622,2.458,1623,5.433,1624,2.458]],["component/36",[1,0.411]],["title/37-1",[23,25.689]],["name/37-1",[]],["text/37-1",[]],["component/37-1",[]],["title/37-2",[26,18.526]],["name/37-2",[]],["text/37-2",[]],["component/37-2",[]],["title/37-3",[334,23.488]],["name/37-3",[]],["text/37-3",[]],["component/37-3",[]],["title/37-4",[269,18.168]],["name/37-4",[]],["text/37-4",[]],["component/37-4",[]],["title/37-5",[887,25.347]],["name/37-5",[]],["text/37-5",[]],["component/37-5",[]],["title/37-6",[788,18.782,889,21.076]],["name/37-6",[]],["text/37-6",[]],["component/37-6",[]],["title/37-7",[332,39.371]],["name/37-7",[]],["text/37-7",[]],["component/37-7",[]],["title/37-8",[1208,37.696]],["name/37-8",[]],["text/37-8",[]],["component/37-8",[]],["title/37-9",[10,32.125]],["name/37-9",[]],["text/37-9",[]],["component/37-9",[]],["title/37",[1011,53.086]],["name/37",[1011,1.069]],["text/37",[1,0.49,6,1.011,8,1.732,16,1.157,26,1.502,30,1.051,35,3.606,39,1.275,40,1.331,51,1.229,61,1.275,75,1.073,93,4.15,116,4.494,122,1.051,135,0.694,138,1.402,145,0.96,149,2.079,150,1.281,154,0.688,160,0.743,168,1.75,169,2.105,185,1.517,204,1.011,205,1.125,207,1.595,210,0.993,212,0.976,229,0.893,233,0.881,246,1.051,268,0.918,269,1.055,286,4.305,292,2.542,316,1.19,320,1.876,350,0.84,355,2.811,427,2.972,517,5.275,520,1.051,540,3.193,555,1.229,565,3.902,570,0.931,589,1.916,630,5.185,643,2.503,671,1.499,705,0.821,773,3.09,788,0.609,882,0.84,888,0.87,889,0.683,912,2.268,913,1.567,915,0.667,935,3.497,986,1.03,1011,6.125,1012,1.331,1013,1.19,1014,1.402,1015,1.499,1223,2.009,1228,1.098,1419,1.19,1481,1.098,1486,1.916,1625,2.676,1626,2.276,1627,2.194,1628,1.654,1629,2.503,1630,1.499,1631,1.499,1632,1.654,1633,1.654,1634,1.499,1635,1.654,1636,1.499,1637,2.954,1638,2.954,1639,1.499,1640,1.654,1641,1.654,1642,1.654,1643,1.654,1644,1.654,1645,1.654,1646,2.376,1647,1.331,1648,1.654,1649,1.499,1650,4.407,1651,4.407,1652,1.499,1653,1.654,1654,1.654]],["component/37",[1,0.411]],["title/38-1",[23,25.689]],["name/38-1",[]],["text/38-1",[]],["component/38-1",[]],["title/38-2",[26,18.526]],["name/38-2",[]],["text/38-2",[]],["component/38-2",[]],["title/38-3",[1655,62.413]],["name/38-3",[]],["text/38-3",[]],["component/38-3",[]],["title/38-4",[334,23.488]],["name/38-4",[]],["text/38-4",[]],["component/38-4",[]],["title/38-5",[269,18.168]],["name/38-5",[]],["text/38-5",[]],["component/38-5",[]],["title/38-6",[887,25.347]],["name/38-6",[]],["text/38-6",[]],["component/38-6",[]],["title/38-7",[788,18.782,889,21.076]],["name/38-7",[]],["text/38-7",[]],["component/38-7",[]],["title/38-8",[1208,37.696]],["name/38-8",[]],["text/38-8",[]],["component/38-8",[]],["title/38-9",[1656,62.413]],["name/38-9",[]],["text/38-9",[]],["component/38-9",[]],["title/38-10",[334,23.488]],["name/38-10",[]],["text/38-10",[]],["component/38-10",[]],["title/38-11",[269,18.168]],["name/38-11",[]],["text/38-11",[]],["component/38-11",[]],["title/38-12",[887,25.347]],["name/38-12",[]],["text/38-12",[]],["component/38-12",[]],["title/38-13",[788,18.782,889,21.076]],["name/38-13",[]],["text/38-13",[]],["component/38-13",[]],["title/38-14",[1033,32.768]],["name/38-14",[]],["text/38-14",[]],["component/38-14",[]],["title/38-15",[1208,37.696]],["name/38-15",[]],["text/38-15",[]],["component/38-15",[]],["title/38-16",[1657,62.413]],["name/38-16",[]],["text/38-16",[]],["component/38-16",[]],["title/38-17",[334,23.488]],["name/38-17",[]],["text/38-17",[]],["component/38-17",[]],["title/38-18",[269,18.168]],["name/38-18",[]],["text/38-18",[]],["component/38-18",[]],["title/38-19",[887,25.347]],["name/38-19",[]],["text/38-19",[]],["component/38-19",[]],["title/38-20",[788,18.782,889,21.076]],["name/38-20",[]],["text/38-20",[]],["component/38-20",[]],["title/38-21",[1033,32.768]],["name/38-21",[]],["text/38-21",[]],["component/38-21",[]],["title/38",[877,53.086]],["name/38",[877,1.069]],["text/38",[0,0.622,4,5.003,7,3.172,8,2.039,15,0.337,16,1.956,24,0.966,26,0.461,35,1.531,51,0.679,67,0.757,69,0.996,75,0.623,79,1.38,86,0.687,93,2.349,114,0.861,135,1.921,145,0.996,146,0.639,147,2.121,148,0.725,149,0.475,150,1.323,154,0.714,160,1.37,168,2.504,169,0.481,174,1.233,177,0.549,189,0.431,190,0.418,200,0.705,202,0.736,207,0.494,210,0.549,223,1.012,227,0.757,230,2.319,233,0.914,255,0.549,256,0.705,269,1.594,334,0.585,338,1.384,344,1.692,355,2.875,442,0.705,471,1.429,492,0.593,511,2.517,513,3.436,540,1.384,562,5.122,565,2.131,568,0.775,570,0.515,589,1.113,656,1.139,666,2.194,705,2.044,730,1.09,755,4.56,764,0.75,773,3.84,795,3.849,816,1.322,877,0.705,882,0.464,890,1.167,900,0.515,912,1.423,913,1.793,915,0.977,916,0.764,936,0.54,947,0.8,985,1.274,1000,0.829,1013,0.658,1017,3.714,1021,0.736,1064,1.233,1068,0.705,1073,1.903,1100,1.139,1101,2,1104,0.559,1148,2.734,1150,3.397,1168,2.319,1406,0.639,1412,2.764,1481,0.607,1486,2.344,1629,2.052,1655,6.829,1656,4.525,1657,5.477,1658,0.915,1659,1.38,1660,0.915,1661,0.736,1662,2.422,1663,0.775,1664,0.915,1665,0.915,1666,0.915,1667,0.915,1668,1.453,1669,4.119,1670,0.775,1671,0.915,1672,1.715,1673,0.915,1674,3.613,1675,1.554,1676,0.915,1677,0.915,1678,0.915,1679,0.915,1680,2.585,1681,3.05,1682,0.915,1683,2.454,1684,2.052,1685,1.554,1686,0.915,1687,0.915,1688,0.915,1689,0.915,1690,0.915,1691,0.915,1692,0.915,1693,0.915,1694,1.715,1695,0.915,1696,0.915,1697,2.195,1698,0.915,1699,0.915,1700,1.554,1701,0.915]],["component/38",[1,0.411]],["title/39-1",[23,25.689]],["name/39-1",[]],["text/39-1",[]],["component/39-1",[]],["title/39-2",[26,18.526]],["name/39-2",[]],["text/39-2",[]],["component/39-2",[]],["title/39-3",[334,23.488]],["name/39-3",[]],["text/39-3",[]],["component/39-3",[]],["title/39-4",[269,18.168]],["name/39-4",[]],["text/39-4",[]],["component/39-4",[]],["title/39-5",[887,25.347]],["name/39-5",[]],["text/39-5",[]],["component/39-5",[]],["title/39-6",[788,25.347]],["name/39-6",[]],["text/39-6",[]],["component/39-6",[]],["title/39-7",[1208,37.696]],["name/39-7",[]],["text/39-7",[]],["component/39-7",[]],["title/39-8",[1033,32.768]],["name/39-8",[]],["text/39-8",[]],["component/39-8",[]],["title/39-9",[10,32.125]],["name/39-9",[]],["text/39-9",[]],["component/39-9",[]],["title/39",[1016,53.086]],["name/39",[1016,1.069]],["text/39",[8,1.121,11,0.435,12,2.202,15,1.158,16,0.696,26,0.255,30,0.603,31,0.683,33,1.106,35,0.892,43,0.591,45,1.827,67,1.105,75,1.143,91,2.816,92,1.41,93,3.68,95,1.179,114,0.477,117,0.683,129,0.551,135,1.05,141,0.56,145,0.551,147,0.701,148,0.752,149,3.045,150,2.039,152,0.986,154,1.549,161,0.872,168,0.777,169,3.083,176,0.482,185,2.175,188,0.663,189,0.447,190,0.435,192,1.983,210,0.57,212,0.56,222,0.805,227,0.419,230,1.41,233,1.983,243,0.603,255,1.067,260,0.764,269,0.982,292,1.129,326,0.535,333,0.386,334,0.324,341,0.431,348,0.616,355,3.178,389,0.527,392,1.503,415,1.209,449,0.603,465,0.764,471,1.477,474,0.646,491,0.663,513,1.503,514,2.338,515,0.616,517,1.179,540,3.533,560,0.86,564,1.506,565,4.526,569,1.153,570,0.535,587,0.663,588,0.683,589,2.415,593,0.591,624,0.732,668,0.86,674,0.86,677,1.179,679,0.86,680,0.86,681,3.984,682,0.86,687,0.86,688,0.86,694,1.153,695,0.616,697,1.32,705,0.882,711,0.732,773,3.255,816,0.732,882,1.889,890,0.646,896,0.494,900,1,913,0.981,915,1.01,927,0.603,947,0.443,968,0.805,983,0.663,1011,2.426,1013,0.683,1016,6.063,1017,1.153,1028,0.764,1073,0.821,1101,2.283,1109,0.603,1120,1.32,1126,0.705,1141,0.764,1148,1.179,1211,0.646,1223,0.646,1251,0.646,1328,1.703,1417,0.705,1419,1.278,1437,0.705,1463,0.805,1483,0.683,1486,1.153,1544,0.705,1630,2.268,1631,2.268,1663,1.506,1684,1.506,1702,3.372,1703,0.86,1704,0.86,1705,0.86,1706,0.86,1707,0.86,1708,2.121,1709,0.86,1710,0.95,1711,0.95,1712,0.95,1713,3.147,1714,3.722,1715,1.777,1716,0.95,1717,3.722,1718,0.95,1719,0.95,1720,0.86,1721,1.777,1722,0.86,1723,0.764,1724,0.95,1725,1.777,1726,0.95,1727,0.95,1728,0.95,1729,0.95,1730,1.777,1731,0.95,1732,0.86,1733,0.95,1734,0.95,1735,0.95,1736,1.777,1737,0.95,1738,0.95,1739,0.95,1740,0.95,1741,0.95,1742,0.95,1743,2.121,1744,0.95,1745,2.504,1746,0.95,1747,0.86,1748,0.86,1749,0.95,1750,0.95,1751,0.95,1752,0.95]],["component/39",[1,0.411]],["title/40-1",[23,25.689]],["name/40-1",[]],["text/40-1",[]],["component/40-1",[]],["title/40-2",[26,18.526]],["name/40-2",[]],["text/40-2",[]],["component/40-2",[]],["title/40-3",[334,23.488]],["name/40-3",[]],["text/40-3",[]],["component/40-3",[]],["title/40-4",[269,18.168]],["name/40-4",[]],["text/40-4",[]],["component/40-4",[]],["title/40-5",[887,25.347]],["name/40-5",[]],["text/40-5",[]],["component/40-5",[]],["title/40-6",[788,18.782,889,21.076]],["name/40-6",[]],["text/40-6",[]],["component/40-6",[]],["title/40-7",[332,39.371]],["name/40-7",[]],["text/40-7",[]],["component/40-7",[]],["title/40-8",[1208,37.696]],["name/40-8",[]],["text/40-8",[]],["component/40-8",[]],["title/40-9",[10,32.125]],["name/40-9",[]],["text/40-9",[]],["component/40-9",[]],["title/40",[1022,53.086]],["name/40",[1022,1.069]],["text/40",[1,0.57,6,1.176,8,1.932,15,0.708,16,1.323,26,1.66,30,1.223,35,0.966,36,4.319,51,1.43,61,1.483,69,1.118,75,0.699,93,4.277,116,4.965,135,0.808,138,1.631,149,2.345,154,0.801,168,1.974,169,2.374,204,1.176,205,1.309,207,1.039,211,1.249,212,1.136,229,1.039,233,1.026,246,1.223,268,1.068,269,1.19,286,4.757,292,2.146,316,1.384,350,0.977,352,1.483,355,2.798,427,3.315,517,5.166,520,1.223,540,3.528,555,1.43,570,1.084,630,4.757,643,2.862,773,3.446,788,0.708,888,1.013,889,0.795,912,2.53,913,1.768,915,0.777,935,3.245,978,1.548,986,1.199,1013,1.384,1014,1.631,1022,5.239,1023,1.631,1481,1.278,1486,2.192,1625,3.06,1626,2.603,1627,1.43,1629,2.862,1634,1.744,1636,1.744,1646,2.717,1647,1.548,1649,1.744,1650,4.915,1651,4.915,1652,1.744,1680,1.631,1753,1.925,1754,1.925,1755,1.744,1756,1.925,1757,1.925,1758,3.378,1759,1.925,1760,1.925,1761,1.925,1762,1.925,1763,1.925,1764,1.925,1765,1.925]],["component/40",[1,0.411]],["title/41-1",[23,25.689]],["name/41-1",[]],["text/41-1",[]],["component/41-1",[]],["title/41-2",[26,18.526]],["name/41-2",[]],["text/41-2",[]],["component/41-2",[]],["title/41-3",[334,23.488]],["name/41-3",[]],["text/41-3",[]],["component/41-3",[]],["title/41-4",[269,18.168]],["name/41-4",[]],["text/41-4",[]],["component/41-4",[]],["title/41-5",[887,25.347]],["name/41-5",[]],["text/41-5",[]],["component/41-5",[]],["title/41-6",[788,25.347]],["name/41-6",[]],["text/41-6",[]],["component/41-6",[]],["title/41-7",[36,22.498,517,26.91,882,20.575]],["name/41-7",[]],["text/41-7",[]],["component/41-7",[]],["title/41-8",[1208,37.696]],["name/41-8",[]],["text/41-8",[]],["component/41-8",[]],["title/41-9",[36,28.326,161,25.052]],["name/41-9",[]],["text/41-9",[]],["component/41-9",[]],["title/41-10",[10,32.125]],["name/41-10",[]],["text/41-10",[]],["component/41-10",[]],["title/41",[807,55.412]],["name/41",[1766,1.386]],["text/41",[7,1.039,8,0.884,15,0.648,16,0.972,21,0.597,26,0.473,28,0.639,30,1.983,31,1.266,36,4.542,67,0.777,75,1.133,80,1.142,86,0.376,91,0.846,92,0.991,93,4.587,95,1.168,96,1.197,106,1.266,114,0.883,121,0.639,129,2.144,135,0.738,137,0.657,154,1.033,161,1.532,168,0.411,173,0.529,176,0.477,192,2.488,211,0.61,212,1.039,229,0.95,243,0.597,255,0.564,269,0.823,317,1.307,320,0.597,332,0.537,333,0.716,341,0.426,355,0.798,389,1.732,423,1.307,483,0.489,511,1.076,514,2.743,515,3.551,517,2.072,565,3.554,580,2.743,586,1.996,587,0.657,609,1.688,630,2.406,661,1.491,677,2.577,705,0.873,757,1.491,760,0.725,767,0.797,768,0.797,771,0.797,772,3.755,773,2.966,784,0.797,788,0.648,791,0.495,796,1.907,807,5.404,809,0.852,810,2.103,874,0.797,882,1.874,894,0.585,913,1.223,915,1.001,923,1.996,927,1.118,935,0.676,951,0.756,966,1.416,983,0.657,989,0.725,1022,2.846,1024,0.852,1025,0.852,1026,0.852,1029,0.797,1030,0.797,1056,0.537,1064,0.676,1073,0.813,1126,0.698,1148,1.168,1372,0.725,1406,0.657,1481,0.624,1486,0.61,1609,0.756,1627,0.698,1646,3.755,1647,3.755,1663,0.797,1709,0.852,1722,1.595,1723,0.756,1755,1.595,1767,0.797,1768,0.852,1769,0.725,1770,0.852,1771,0.94,1772,0.94,1773,0.94,1774,0.94,1775,0.94,1776,0.94,1777,0.94,1778,0.94,1779,0.94,1780,0.94,1781,0.94,1782,0.94,1783,0.94,1784,0.94,1785,0.94,1786,4.668,1787,2.482,1788,1.76,1789,0.94,1790,0.852,1791,1.76,1792,1.595,1793,1.76,1794,0.94,1795,0.94,1796,1.76,1797,0.94,1798,0.852,1799,0.94,1800,0.94,1801,0.94,1802,0.852]],["component/41",[1,0.411]],["title/42-1",[23,25.689]],["name/42-1",[]],["text/42-1",[]],["component/42-1",[]],["title/42-2",[26,18.526]],["name/42-2",[]],["text/42-2",[]],["component/42-2",[]],["title/42-3",[334,23.488]],["name/42-3",[]],["text/42-3",[]],["component/42-3",[]],["title/42-4",[1013,36.704,1028,41.06]],["name/42-4",[]],["text/42-4",[]],["component/42-4",[]],["title/42",[35,25.61,514,37.915]],["name/42",[1016,1.069]],["text/42",[3,1.784,10,2.657,11,1.2,15,1.621,21,1.666,26,0.705,35,3.734,37,3.168,43,4.157,68,1.886,75,2.069,93,3.579,114,1.316,128,1.476,129,1.522,135,2.8,149,2.96,150,1.137,161,2.796,169,2.997,207,2.378,211,1.702,310,1.886,332,1.499,341,1.189,355,4.076,363,1.522,392,1.574,474,1.784,512,1.886,513,3.419,520,1.666,624,2.021,677,2.683,678,3.992,694,1.702,695,1.702,755,1.886,792,1.633,795,2.021,873,2.021,882,1.331,890,1.784,896,2.289,900,2.48,989,2.021,1013,1.886,1017,1.702,1023,3.733,1028,2.109,1251,1.784,1393,2.376,1486,1.702,1702,7.302,1703,2.376,1704,2.376,1705,2.376,1706,2.376,1707,6.048,1747,6.048,1748,5.162,1769,2.021,1770,2.376,1803,2.109,1804,2.622,1805,3.733,1806,2.376,1807,2.622,1808,2.622,1809,2.622,1810,2.622,1811,2.622,1812,2.622,1813,2.622]],["component/42",[1,0.411]],["title/43-1",[23,25.689]],["name/43-1",[]],["text/43-1",[]],["component/43-1",[]],["title/43-2",[26,18.526]],["name/43-2",[]],["text/43-2",[]],["component/43-2",[]],["title/43-3",[232,49.533]],["name/43-3",[]],["text/43-3",[]],["component/43-3",[]],["title/43-4",[334,23.488]],["name/43-4",[]],["text/43-4",[]],["component/43-4",[]],["title/43-5",[1683,55.412]],["name/43-5",[]],["text/43-5",[]],["component/43-5",[]],["title/43-6",[334,23.488]],["name/43-6",[]],["text/43-6",[]],["component/43-6",[]],["title/43-7",[1814,58.365]],["name/43-7",[]],["text/43-7",[]],["component/43-7",[]],["title/43-8",[334,23.488]],["name/43-8",[]],["text/43-8",[]],["component/43-8",[]],["title/43",[24,28.739,511,31.192]],["name/43",[1815,1.386]],["text/43",[1,0.699,6,3.221,7,2.377,8,2.22,15,1.94,19,1.257,20,1.291,24,1.328,26,0.635,67,1.041,75,1.463,85,1.898,86,3.261,93,4.496,104,1.697,117,1.697,153,1.531,157,2.508,160,1.809,168,1.762,204,1.442,223,1.392,227,1.777,232,2.897,233,2.147,326,1.328,392,2.418,425,4.137,511,5.473,586,3.24,656,1.566,690,2.992,773,2.559,900,1.328,958,1.499,985,1.752,1017,2.614,1055,4.24,1056,3.013,1060,3.413,1064,1.697,1109,1.499,1112,1.291,1135,3.65,1136,3.24,1143,3.65,1319,3.24,1402,1.999,1524,1.999,1670,1.999,1683,5.014,1814,5.281,1816,4.028,1817,1.999,1818,2.359,1819,4.028,1820,2.359,1821,2.359,1822,2.359,1823,2.359,1824,1.818,1825,3.65,1826,2.359,1827,2.359,1828,1.999]],["component/43",[1,0.411]],["title/44-1",[23,25.689]],["name/44-1",[]],["text/44-1",[]],["component/44-1",[]],["title/44-2",[26,18.526]],["name/44-2",[]],["text/44-2",[]],["component/44-2",[]],["title/44-3",[6,42.095]],["name/44-3",[]],["text/44-3",[]],["component/44-3",[]],["title/44-4",[36,22.498,318,18.211,515,26.307]],["name/44-4",[]],["text/44-4",[]],["component/44-4",[]],["title/44-5",[36,22.498,174,29.153,515,26.307]],["name/44-5",[]],["text/44-5",[]],["component/44-5",[]],["title/44-6",[36,28.326,1829,46.248]],["name/44-6",[]],["text/44-6",[]],["component/44-6",[]],["title/44-7",[36,22.498,320,25.755,515,26.307]],["name/44-7",[]],["text/44-7",[]],["component/44-7",[]],["title/44-8",[1830,58.365]],["name/44-8",[]],["text/44-8",[]],["component/44-8",[]],["title/44-9",[1831,58.365]],["name/44-9",[]],["text/44-9",[]],["component/44-9",[]],["title/44-10",[1832,62.413]],["name/44-10",[]],["text/44-10",[]],["component/44-10",[]],["title/44-11",[1833,62.413]],["name/44-11",[]],["text/44-11",[]],["component/44-11",[]],["title/44-12",[1834,62.413]],["name/44-12",[]],["text/44-12",[]],["component/44-12",[]],["title/44-13",[1835,62.413]],["name/44-13",[]],["text/44-13",[]],["component/44-13",[]],["title/44-14",[1836,62.413]],["name/44-14",[]],["text/44-14",[]],["component/44-14",[]],["title/44-15",[1837,62.413]],["name/44-15",[]],["text/44-15",[]],["component/44-15",[]],["title/44-16",[1838,62.413]],["name/44-16",[]],["text/44-16",[]],["component/44-16",[]],["title/44-17",[1839,62.413]],["name/44-17",[]],["text/44-17",[]],["component/44-17",[]],["title/44-18",[1840,62.413]],["name/44-18",[]],["text/44-18",[]],["component/44-18",[]],["title/44-19",[471,40.649]],["name/44-19",[]],["text/44-19",[]],["component/44-19",[]],["title/44-20",[1841,62.413]],["name/44-20",[]],["text/44-20",[]],["component/44-20",[]],["title/44-21",[1708,58.365]],["name/44-21",[]],["text/44-21",[]],["component/44-21",[]],["title/44-22",[1842,62.413]],["name/44-22",[]],["text/44-22",[]],["component/44-22",[]],["title/44-23",[1104,42.095]],["name/44-23",[]],["text/44-23",[]],["component/44-23",[]],["title/44-24",[389,28.326,427,31.192]],["name/44-24",[]],["text/44-24",[]],["component/44-24",[]],["title/44-25",[389,28.326,540,29.174]],["name/44-25",[]],["text/44-25",[]],["component/44-25",[]],["title/44",[36,28.326,515,33.12]],["name/44",[1843,1.386]],["text/44",[1,0.148,6,1.099,7,1.061,8,0.177,10,0.448,15,0.513,19,0.512,20,0.273,24,0.281,26,0.375,36,2.753,45,0.289,75,2.016,85,0.401,86,0.199,91,1.377,92,0.281,93,4.492,95,0.331,96,0.654,106,0.358,111,0.304,117,0.691,121,0.339,122,0.316,124,0.526,128,0.281,135,0.209,149,0.259,152,0.773,153,0.624,154,1.053,160,0.432,168,0.421,173,0.281,174,0.358,176,0.253,177,0.299,192,0.743,202,1.121,207,0.269,210,0.299,221,0.316,223,0.567,238,0.401,253,0.422,269,0.131,287,5.017,292,0.611,309,0.37,318,0.432,320,0.316,323,0.358,326,0.281,333,2.653,339,0.577,352,0.741,355,2.823,389,1.208,423,0.37,430,0.262,466,0.339,471,0.822,483,0.724,515,3.603,540,1.027,547,0.358,565,3.609,570,0.281,609,1.223,642,0.451,661,1.523,694,0.323,705,0.247,763,0.331,772,1.121,786,6.709,796,0.588,802,0.401,814,0.451,847,0.815,882,2.292,886,0.871,900,0.281,912,0.232,915,0.201,923,2.797,958,0.316,982,0.624,1017,0.624,1045,1.844,1052,0.348,1056,0.285,1104,1.099,1150,0.654,1320,0.774,1328,0.339,1351,0.422,1627,0.37,1646,0.774,1647,0.774,1668,0.422,1680,0.815,1684,0.422,1708,1.181,1723,0.401,1743,0.422,1792,1.629,1798,0.871,1802,0.451,1828,0.422,1829,1.972,1830,0.815,1831,0.815,1832,1.263,1833,1.263,1834,0.871,1835,0.871,1836,0.871,1837,0.871,1838,0.871,1839,1.263,1840,1.263,1841,1.263,1842,1.263,1844,0.498,1845,0.498,1846,0.498,1847,0.498,1848,0.498,1849,0.451,1850,0.451,1851,0.422,1852,0.871,1853,0.498,1854,0.498,1855,3.477,1856,0.498,1857,2.176,1858,0.498,1859,3.18,1860,0.498,1861,0.871,1862,0.498,1863,0.498,1864,0.498,1865,0.962,1866,0.962,1867,0.451,1868,0.498,1869,0.422,1870,0.498,1871,0.962,1872,0.498,1873,0.498,1874,0.498,1875,0.498,1876,0.498,1877,0.498,1878,0.498,1879,0.498,1880,0.498,1881,0.498,1882,0.498,1883,0.498,1884,0.498,1885,0.498,1886,0.498,1887,0.498,1888,0.498,1889,0.498,1890,0.498,1891,0.498,1892,2.531,1893,0.498,1894,0.498,1895,0.498,1896,0.498,1897,0.498,1898,0.498,1899,0.498,1900,0.498,1901,0.498,1902,0.498,1903,0.498,1904,0.498,1905,0.498,1906,0.498,1907,0.498,1908,0.498,1909,0.498,1910,0.498,1911,0.498,1912,0.498,1913,0.498,1914,0.498,1915,0.498,1916,0.498,1917,0.498,1918,0.498,1919,0.498,1920,0.498,1921,0.498,1922,0.498,1923,0.498,1924,0.498,1925,0.498,1926,0.498,1927,0.498,1928,0.498,1929,0.498,1930,0.498,1931,0.498,1932,0.498,1933,0.498,1934,0.498,1935,0.498,1936,0.498,1937,0.498,1938,0.498,1939,0.498,1940,0.498,1941,0.498,1942,0.498,1943,0.498,1944,0.498,1945,0.498,1946,0.498,1947,0.498,1948,0.498,1949,0.498,1950,0.498,1951,0.498,1952,0.498,1953,0.498,1954,0.498,1955,0.498,1956,0.498,1957,0.498,1958,0.498,1959,0.498,1960,0.498,1961,0.498,1962,0.498,1963,0.498,1964,0.498,1965,0.498,1966,0.498,1967,0.498,1968,0.498,1969,0.498,1970,0.498,1971,0.498,1972,0.498,1973,0.498,1974,0.498,1975,0.498,1976,0.498,1977,0.498,1978,0.498,1979,0.498,1980,0.498,1981,0.498,1982,0.498,1983,0.498,1984,0.498,1985,0.498,1986,0.498,1987,0.498,1988,0.498,1989,0.498,1990,0.498,1991,0.498,1992,0.498,1993,0.498,1994,0.498,1995,0.498,1996,0.498,1997,0.498,1998,0.498,1999,0.498,2000,0.498,2001,0.498,2002,0.498,2003,0.498,2004,0.498,2005,0.498,2006,0.498,2007,0.498,2008,0.498,2009,1.798,2010,0.498,2011,0.498,2012,0.498,2013,0.498,2014,0.498,2015,0.498,2016,0.498,2017,0.498,2018,0.498,2019,0.498,2020,0.498,2021,0.498,2022,0.498,2023,0.498,2024,0.451,2025,0.498,2026,0.498,2027,0.498,2028,0.498,2029,0.498,2030,0.498,2031,0.498,2032,0.498,2033,0.498,2034,0.498,2035,0.498,2036,0.498,2037,0.498,2038,0.498,2039,0.498,2040,0.498,2041,0.498,2042,0.498,2043,0.498,2044,0.498,2045,0.498,2046,0.498,2047,0.962,2048,1.394,2049,0.498,2050,0.498,2051,0.962,2052,2.176,2053,0.962,2054,0.962,2055,0.498,2056,0.498,2057,0.498,2058,0.962,2059,2.865,2060,0.498,2061,0.498,2062,0.498,2063,0.498,2064,0.498,2065,0.498,2066,0.498,2067,0.498,2068,0.498,2069,0.498]],["component/44",[1,0.411]],["title/45-1",[23,25.689]],["name/45-1",[]],["text/45-1",[]],["component/45-1",[]],["title/45-2",[26,18.526]],["name/45-2",[]],["text/45-2",[]],["component/45-2",[]],["title/45-3",[6,42.095]],["name/45-3",[]],["text/45-3",[]],["component/45-3",[]],["title/45-4",[334,23.488]],["name/45-4",[]],["text/45-4",[]],["component/45-4",[]],["title/45-5",[269,18.168]],["name/45-5",[]],["text/45-5",[]],["component/45-5",[]],["title/45-6",[887,25.347]],["name/45-6",[]],["text/45-6",[]],["component/45-6",[]],["title/45-7",[15,18.782,341,23.138]],["name/45-7",[]],["text/45-7",[]],["component/45-7",[]],["title/45-8",[129,39.992]],["name/45-8",[]],["text/45-8",[]],["component/45-8",[]],["title/45-9",[1767,58.365]],["name/45-9",[]],["text/45-9",[]],["component/45-9",[]],["title/45",[36,28.326,129,29.634]],["name/45",[757,1.175]],["text/45",[1,0.422,6,3.759,7,0.84,8,1.261,10,1.204,15,1.302,19,0.759,20,0.779,21,0.905,24,1.453,26,0.694,30,1.64,31,1.024,36,5.246,37,1.024,67,1.139,68,1.024,75,0.517,80,0.924,86,1.033,93,3.658,106,1.024,122,0.905,124,0.779,129,4.795,135,1.485,137,0.995,152,2.795,154,0.593,157,1.607,160,1.159,161,1.267,167,1.024,168,0.623,174,2.545,176,1.31,192,4.758,194,1.145,211,1.675,223,0.84,243,0.905,269,0.376,316,1.024,317,1.917,320,2.249,333,1.049,341,1.17,355,1.17,356,1.207,363,0.827,389,0.79,423,1.917,449,0.905,471,0.84,476,0.779,483,0.74,511,3.441,515,5.661,517,1.713,520,0.905,570,0.802,580,1.058,609,0.968,677,2.372,730,0.905,755,1.024,760,2.728,766,2.338,767,1.207,768,1.207,771,1.207,772,5.315,773,3.577,784,1.207,791,0.749,796,1.577,810,2.999,871,1.207,874,1.207,882,1.31,890,2.407,908,1.145,913,0.558,915,0.575,927,0.905,958,0.905,966,2.076,989,1.097,1029,1.207,1030,1.207,1055,1.145,1056,1.475,1060,1.207,1064,2.545,1126,1.058,1139,1.058,1228,0.945,1609,1.145,1767,2.999,1768,1.29,1769,1.097,1803,1.145,1830,1.207,1831,1.207,1849,2.338,1850,3.207,1852,1.29,1861,1.29,2070,1.424,2071,1.424,2072,2.581,2073,1.424,2074,5.631,2075,1.424,2076,1.207,2077,1.424,2078,1.424,2079,1.424,2080,1.424,2081,1.29,2082,1.424,2083,1.424,2084,1.424,2085,1.424]],["component/45",[1,0.411]],["title/46-1",[23,25.689]],["name/46-1",[]],["text/46-1",[]],["component/46-1",[]],["title/46-2",[2086,55.412]],["name/46-2",[]],["text/46-2",[]],["component/46-2",[]],["title/46-3",[26,18.526]],["name/46-3",[]],["text/46-3",[]],["component/46-3",[]],["title/46-4",[334,23.488]],["name/46-4",[]],["text/46-4",[]],["component/46-4",[]],["title/46-5",[269,18.168]],["name/46-5",[]],["text/46-5",[]],["component/46-5",[]],["title/46-6",[887,25.347]],["name/46-6",[]],["text/46-6",[]],["component/46-6",[]],["title/46-7",[8,18.179,312,41.06]],["name/46-7",[]],["text/46-7",[]],["component/46-7",[]],["title/46-8",[788,25.347]],["name/46-8",[]],["text/46-8",[]],["component/46-8",[]],["title/46-9",[425,45.722]],["name/46-9",[]],["text/46-9",[]],["component/46-9",[]],["title/46",[512,36.704,513,30.639]],["name/46",[1805,1.175]],["text/46",[8,2.233,10,1.11,16,0.351,24,0.505,26,0.241,30,0.57,33,1.483,48,0.582,51,0.666,67,0.743,75,1.79,82,0.645,86,0.675,91,0.431,92,0.505,93,3.963,96,1.146,104,1.211,135,0.999,145,0.521,147,0.354,150,3.238,153,2.309,154,0.373,156,0.427,157,0.559,160,0.403,161,0.44,168,1.042,176,0.455,177,1.011,189,0.423,190,0.411,200,2.313,204,1.029,211,0.582,227,0.396,229,0.484,230,2.286,233,3.75,243,0.57,246,0.57,255,1.802,268,0.498,269,0.444,326,0.948,327,1.211,332,0.513,348,0.582,350,0.455,355,0.764,387,0.666,389,0.498,391,1.251,392,0.539,415,1.62,425,2.362,430,0.472,435,0.691,440,0.582,462,0.691,483,0.466,493,1.769,511,1.455,512,2.92,513,3.186,520,1.07,540,1.716,564,2.018,565,6.358,579,0.722,586,1.355,596,0.666,603,0.627,624,0.691,656,0.596,681,3.015,690,3.661,697,0.666,755,0.645,756,1.427,773,1.907,788,0.62,847,3.44,873,0.691,888,0.472,900,0.948,913,0.66,951,0.722,958,0.57,979,0.813,982,1.093,986,2.216,1012,1.355,1017,1.093,1052,0.627,1054,0.645,1056,2.034,1062,2.26,1076,0.813,1080,0.722,1109,2.579,1112,1.643,1136,0.722,1141,1.355,1158,0.645,1223,0.61,1228,0.596,1251,1.146,1265,1.251,1307,0.76,1328,1.146,1335,0.691,1345,0.666,1402,3.44,1429,0.813,1435,0.691,1486,0.582,1524,1.427,1537,0.76,1639,0.813,1683,1.355,1685,0.813,1697,4.466,1743,1.427,1803,0.722,1805,3.825,1806,0.813,1814,0.76,1817,0.76,1825,0.813,1828,2.018,1851,0.76,2087,1.685,2088,3.002,2089,0.897,2090,1.526,2091,0.897,2092,0.897,2093,0.897,2094,0.897,2095,3.558,2096,3.002,2097,2.381,2098,1.685,2099,3.224,2100,4.06,2101,4.06,2102,0.897,2103,0.897,2104,0.897,2105,0.897,2106,0.897,2107,0.897,2108,0.897,2109,1.685,2110,0.813,2111,0.897,2112,0.897,2113,0.76,2114,0.897,2115,2.381,2116,4.515,2117,1.685,2118,1.685,2119,0.813,2120,0.897,2121,1.685,2122,1.685,2123,0.897,2124,1.685,2125,0.897,2126,1.685,2127,0.897,2128,0.897]],["component/46",[1,0.411]],["title/47-1",[23,25.689]],["name/47-1",[]],["text/47-1",[]],["component/47-1",[]],["title/47-2",[26,18.526]],["name/47-2",[]],["text/47-2",[]],["component/47-2",[]],["title/47-3",[334,23.488]],["name/47-3",[]],["text/47-3",[]],["component/47-3",[]],["title/47-4",[269,18.168]],["name/47-4",[]],["text/47-4",[]],["component/47-4",[]],["title/47-5",[887,25.347]],["name/47-5",[]],["text/47-5",[]],["component/47-5",[]],["title/47-6",[788,25.347]],["name/47-6",[]],["text/47-6",[]],["component/47-6",[]],["title/47-7",[1033,32.768]],["name/47-7",[]],["text/47-7",[]],["component/47-7",[]],["title/47-8",[318,22.928,509,31.192]],["name/47-8",[]],["text/47-8",[]],["component/47-8",[]],["title/47-9",[334,23.488]],["name/47-9",[]],["text/47-9",[]],["component/47-9",[]],["title/47-10",[269,18.168]],["name/47-10",[]],["text/47-10",[]],["component/47-10",[]],["title/47",[318,18.211,504,32.613,505,25.755]],["name/47",[2129,1.175]],["text/47",[0,1.129,1,0.492,8,1.429,12,0.863,15,1.09,16,1.16,19,0.885,20,0.908,26,0.446,33,1.034,35,0.833,67,0.732,75,1.457,82,1.194,86,0.665,91,1.424,93,3.353,111,1.014,114,2.013,124,0.908,147,2.841,148,0.702,150,2.115,154,0.691,156,2.664,158,0.767,160,0.746,161,0.815,176,0.842,182,1.559,189,1.89,190,2.231,227,0.732,269,1.477,318,3.416,330,1.034,333,1.982,339,0.996,363,0.964,427,1.014,431,1.504,471,0.98,504,6.117,505,5.44,509,3.422,520,1.882,537,1.279,555,1.233,570,1.668,677,2.926,694,1.077,705,0.824,732,1.233,736,1.279,737,1.159,739,1.129,764,0.726,901,1.504,913,1.16,915,0.67,916,0.739,947,0.774,969,2.069,974,1.034,977,1.129,1073,1.369,1078,2.383,1085,1.407,1090,3.923,1097,1.279,1098,1.279,1100,2.663,1101,4.02,1104,1.811,1112,1.621,1266,1.279,1270,4.673,1315,2.283,1327,1.279,1336,2.885,1352,2.383,1361,2.51,1869,1.407,2129,6.443,2130,1.504,2131,1.504,2132,1.66,2133,1.66,2134,2.685,2135,1.66,2136,1.407,2137,1.407,2138,1.66,2139,1.504,2140,1.504,2141,1.66,2142,1.66,2143,1.407,2144,1.66,2145,1.335,2146,1.66,2147,1.335,2148,1.279,2149,1.335,2150,2.685,2151,1.66,2152,2.685,2153,1.66]],["component/47",[1,0.411]],["title/48-1",[23,25.689]],["name/48-1",[]],["text/48-1",[]],["component/48-1",[]],["title/48-2",[182,26.855,1284,37.915]],["name/48-2",[]],["text/48-2",[]],["component/48-2",[]],["title/48-3",[158,23.576,1096,43.249]],["name/48-3",[]],["text/48-3",[]],["component/48-3",[]],["title/48-4",[26,18.526]],["name/48-4",[]],["text/48-4",[]],["component/48-4",[]],["title/48-5",[334,23.488]],["name/48-5",[]],["text/48-5",[]],["component/48-5",[]],["title/48-6",[269,18.168]],["name/48-6",[]],["text/48-6",[]],["component/48-6",[]],["title/48-7",[887,25.347]],["name/48-7",[]],["text/48-7",[]],["component/48-7",[]],["title/48-8",[788,18.782,889,21.076]],["name/48-8",[]],["text/48-8",[]],["component/48-8",[]],["title/48-9",[2154,68.884]],["name/48-9",[]],["text/48-9",[]],["component/48-9",[]],["title/48-10",[10,32.125]],["name/48-10",[]],["text/48-10",[]],["component/48-10",[]],["title/48-11",[1033,32.768]],["name/48-11",[]],["text/48-11",[]],["component/48-11",[]],["title/48-12",[158,23.576,318,22.928]],["name/48-12",[]],["text/48-12",[]],["component/48-12",[]],["title/48-13",[26,18.526]],["name/48-13",[]],["text/48-13",[]],["component/48-13",[]],["title/48-14",[334,23.488]],["name/48-14",[]],["text/48-14",[]],["component/48-14",[]],["title/48-15",[269,18.168]],["name/48-15",[]],["text/48-15",[]],["component/48-15",[]],["title/48-16",[887,25.347]],["name/48-16",[]],["text/48-16",[]],["component/48-16",[]],["title/48-17",[15,18.782,341,23.138]],["name/48-17",[]],["text/48-17",[]],["component/48-17",[]],["title/48-18",[67,30.394]],["name/48-18",[]],["text/48-18",[]],["component/48-18",[]],["title/48-19",[1208,37.696]],["name/48-19",[]],["text/48-19",[]],["component/48-19",[]],["title/48-20",[158,18.726,318,18.211,608,34.351]],["name/48-20",[]],["text/48-20",[]],["component/48-20",[]],["title/48-21",[26,18.526]],["name/48-21",[]],["text/48-21",[]],["component/48-21",[]],["title/48-22",[334,23.488]],["name/48-22",[]],["text/48-22",[]],["component/48-22",[]],["title/48-23",[176,34.958]],["name/48-23",[]],["text/48-23",[]],["component/48-23",[]],["title/48-24",[788,25.347]],["name/48-24",[]],["text/48-24",[]],["component/48-24",[]],["title/48-25",[1033,32.768]],["name/48-25",[]],["text/48-25",[]],["component/48-25",[]],["title/48",[158,23.576,318,22.928]],["name/48",[2155,1.256]],["text/48",[8,1.585,10,0.936,12,1.953,13,0.256,15,0.609,16,0.501,21,0.812,24,0.495,26,0.629,30,0.812,31,0.327,32,0.366,48,0.295,55,0.327,67,0.201,69,0.264,75,0.85,86,0.182,91,0.423,92,0.495,93,3.681,95,0.849,96,1.125,98,0.708,103,0.385,104,0.92,112,0.35,114,1.758,132,0.366,135,0.369,141,0.976,142,0.338,145,0.264,147,2.204,148,0.541,150,0.87,151,0.338,152,0.71,154,0.532,156,1.903,157,1.03,158,2.153,160,0.395,167,0.327,168,1.161,169,1.231,173,0.256,182,3.837,189,1.102,190,1.071,195,0.412,204,0.278,207,0.475,212,1.184,220,0.412,227,0.201,229,0.245,230,0.72,233,0.681,243,0.289,249,0.781,269,0.779,276,0.708,291,0.633,317,1.738,318,1.453,320,0.559,328,0.366,330,0.283,331,0.317,332,0.26,333,0.816,339,0.528,341,0.206,343,0.327,347,0.317,348,0.571,350,0.231,355,1.467,363,3.515,365,2.046,389,0.488,390,0.338,392,0.993,406,0.338,425,0.849,430,0.87,449,1.051,454,0.849,466,3.799,471,0.755,480,0.519,483,0.859,491,0.317,492,0.295,504,0.366,506,0.366,508,0.87,509,2.72,510,0.654,511,0.278,512,0.633,537,0.35,541,0.412,547,0.327,558,0.35,563,0.366,569,0.295,570,0.931,580,0.338,587,0.893,589,3.155,592,0.385,593,1.03,599,0.283,603,0.317,608,1.701,625,0.745,659,0.797,664,0.309,670,0.412,677,2.29,694,1.073,695,0.571,707,1.029,718,1.819,734,0.745,747,0.708,760,0.35,763,4.019,764,0.559,773,0.559,788,0.324,789,0.338,792,1.03,795,0.35,796,0.278,798,0.412,799,0.412,801,1.738,802,2.818,803,0.412,804,0.598,813,0.412,834,0.385,840,0.289,882,0.231,888,0.239,889,0.188,900,0.495,906,0.366,912,0.596,913,0.917,915,0.81,923,0.708,927,0.289,931,0.385,947,0.212,950,0.385,959,0.385,968,0.385,969,0.893,986,1.03,996,0.412,998,0.412,1010,0.366,1018,1.084,1021,0.366,1052,0.317,1056,0.731,1062,0.559,1073,0.21,1089,0.654,1096,5.997,1100,1.553,1101,3.382,1104,1.011,1109,0.289,1141,0.366,1148,1.553,1209,0.35,1223,0.309,1270,1.916,1284,1.229,1287,0.412,1299,0.745,1316,0.338,1328,0.309,1336,0.327,1342,0.35,1372,0.35,1376,0.385,1396,0.412,1406,0.893,1419,0.633,1435,0.35,1437,0.654,1459,0.338,1483,0.327,1513,0.338,1544,0.338,1549,0.412,1551,0.708,1626,2.046,1769,0.35,1790,0.412,1824,0.986,2113,0.745,2129,0.745,2148,0.35,2150,0.412,2152,0.412,2155,4.406,2156,0.454,2157,0.454,2158,0.454,2159,0.412,2160,0.797,2161,0.797,2162,1.159,2163,0.412,2164,0.88,2165,0.454,2166,0.454,2167,2.953,2168,0.454,2169,0.88,2170,2.007,2171,0.454,2172,0.454,2173,0.88,2174,0.454,2175,1.279,2176,1.279,2177,0.454,2178,0.88,2179,0.88,2180,0.454,2181,0.678,2182,0.454,2183,2.655,2184,2.007,2185,0.454,2186,0.454,2187,0.454,2188,0.454,2189,0.454,2190,2.007,2191,0.454,2192,0.454,2193,0.454,2194,0.454,2195,0.454,2196,0.338,2197,0.454,2198,0.454,2199,0.454,2200,0.454,2201,0.454,2202,0.88,2203,0.454,2204,0.454,2205,0.454,2206,0.454,2207,0.454,2208,0.454,2209,0.454,2210,0.454,2211,0.454,2212,0.454,2213,0.454,2214,1.159,2215,0.88,2216,0.454,2217,0.88,2218,0.454,2219,0.88,2220,0.412,2221,0.88,2222,0.454,2223,0.88,2224,0.454,2225,0.454,2226,0.454,2227,0.454,2228,0.454,2229,0.454,2230,0.454,2231,0.454,2232,0.454,2233,0.454,2234,0.454,2235,0.454,2236,0.454,2237,0.454,2238,0.454,2239,0.454,2240,0.454,2241,0.454,2242,0.454,2243,0.412,2244,0.454,2245,0.454,2246,0.454,2247,0.385,2248,0.454,2249,0.454,2250,0.454,2251,0.454,2252,0.454,2253,0.454,2254,0.454,2255,0.454,2256,0.454,2257,0.454,2258,0.454,2259,0.454]],["component/48",[1,0.411]],["title/49-1",[23,25.689]],["name/49-1",[]],["text/49-1",[]],["component/49-1",[]],["title/49-2",[26,18.526]],["name/49-2",[]],["text/49-2",[]],["component/49-2",[]],["title/49-3",[334,23.488]],["name/49-3",[]],["text/49-3",[]],["component/49-3",[]],["title/49-4",[269,18.168]],["name/49-4",[]],["text/49-4",[]],["component/49-4",[]],["title/49-5",[887,25.347]],["name/49-5",[]],["text/49-5",[]],["component/49-5",[]],["title/49-6",[788,25.347]],["name/49-6",[]],["text/49-6",[]],["component/49-6",[]],["title/49-7",[1033,32.768]],["name/49-7",[]],["text/49-7",[]],["component/49-7",[]],["title/49",[318,18.211,509,24.775,510,30.115]],["name/49",[2163,1.256]],["text/49",[1,0.531,8,1.13,12,1.649,16,1.243,19,0.955,20,0.981,26,0.482,45,1.041,53,1.382,67,1.4,75,1.152,86,0.718,93,2.413,114,0.9,124,0.981,143,1.289,147,2.96,148,0.758,150,2.556,152,2.368,153,1.163,154,2.712,158,0.828,160,0.805,189,2.776,190,2.697,192,0.955,197,1.442,208,1.382,210,1.904,227,0.791,269,1.36,318,2.648,330,1.116,333,1.29,339,1.076,430,1.669,454,1.19,480,1.058,508,1.219,509,4.305,510,6.363,529,1.332,572,1.624,592,1.519,593,1.976,677,2.01,695,1.163,705,1.574,723,1.219,764,0.784,788,0.66,882,0.91,913,1.243,915,1.28,916,0.798,947,0.836,977,1.219,1018,0.968,1073,1.465,1097,2.445,1100,3.423,1101,4.16,1104,1.096,1112,0.981,1125,1.624,1211,2.158,1265,1.332,1270,4.571,1298,2.875,1305,2.688,1306,1.519,1312,2.688,1313,1.519,1315,2.445,1336,2.281,1869,1.519,2147,1.442,2162,5.903,2214,1.624,2243,6.383,2260,6.515,2261,8.566,2262,1.793,2263,1.793,2264,3.173,2265,1.793,2266,1.793,2267,1.793,2268,1.793,2269,1.793,2270,5.157,2271,1.793]],["component/49",[1,0.411]],["title/50-1",[23,25.689]],["name/50-1",[]],["text/50-1",[]],["component/50-1",[]],["title/50-2",[26,18.526]],["name/50-2",[]],["text/50-2",[]],["component/50-2",[]],["title/50-3",[334,23.488]],["name/50-3",[]],["text/50-3",[]],["component/50-3",[]],["title/50-4",[269,18.168]],["name/50-4",[]],["text/50-4",[]],["component/50-4",[]],["title/50-5",[887,25.347]],["name/50-5",[]],["text/50-5",[]],["component/50-5",[]],["title/50-6",[788,25.347]],["name/50-6",[]],["text/50-6",[]],["component/50-6",[]],["title/50-7",[1033,32.768]],["name/50-7",[]],["text/50-7",[]],["component/50-7",[]],["title/50",[318,18.211,505,25.755,507,32.613]],["name/50",[2272,1.256]],["text/50",[0,1.654,1,0.72,8,1.473,12,1.264,15,1.521,16,1.619,19,1.296,20,1.331,25,1.957,26,0.654,35,1.22,56,1.875,67,1.073,75,1.501,86,0.974,91,1.169,93,2.356,111,1.486,114,2.705,124,1.331,147,2.509,148,1.029,150,2.338,154,1.012,156,1.967,158,1.124,160,1.093,182,2.175,189,2.539,190,2.467,227,1.824,255,1.46,269,1.677,318,2.856,330,1.515,331,1.699,333,0.989,339,1.46,344,1.699,376,1.578,427,1.486,471,1.435,505,5.966,507,5.732,570,2.328,579,1.957,589,1.578,677,2.539,705,1.207,732,1.807,764,1.064,913,1.619,915,0.981,916,1.083,947,1.134,1073,1.124,1085,2.061,1090,1.957,1100,4.221,1101,4.014,1104,1.486,1112,1.331,1260,1.875,1270,4.126,1327,1.875,1336,1.749,1361,2.061,1417,1.807,2130,2.204,2134,2.204,2136,2.061,2137,2.061,2140,2.204,2143,2.061,2145,1.957,2147,1.957,2148,1.875,2149,1.957,2272,6.457,2273,2.432,2274,2.432,2275,2.432,2276,2.061,2277,2.432,2278,2.432,2279,2.432,2280,2.432,2281,2.432,2282,2.432]],["component/50",[1,0.411]],["title/51-1",[23,25.689]],["name/51-1",[]],["text/51-1",[]],["component/51-1",[]],["title/51-2",[26,18.526]],["name/51-2",[]],["text/51-2",[]],["component/51-2",[]],["title/51-3",[334,23.488]],["name/51-3",[]],["text/51-3",[]],["component/51-3",[]],["title/51-4",[269,18.168]],["name/51-4",[]],["text/51-4",[]],["component/51-4",[]],["title/51-5",[887,25.347]],["name/51-5",[]],["text/51-5",[]],["component/51-5",[]],["title/51-6",[788,25.347]],["name/51-6",[]],["text/51-6",[]],["component/51-6",[]],["title/51-7",[1033,32.768]],["name/51-7",[]],["text/51-7",[]],["component/51-7",[]],["title/51-8",[318,22.928,509,31.192]],["name/51-8",[]],["text/51-8",[]],["component/51-8",[]],["title/51-9",[334,23.488]],["name/51-9",[]],["text/51-9",[]],["component/51-9",[]],["title/51-10",[269,18.168]],["name/51-10",[]],["text/51-10",[]],["component/51-10",[]],["title/51",[318,18.211,505,25.755,506,32.613]],["name/51",[2283,1.256]],["text/51",[0,1.145,1,0.499,8,1.069,12,0.875,15,1.104,16,1.175,19,0.897,20,0.921,26,0.453,33,1.049,35,0.845,67,0.743,75,1.474,86,0.674,91,0.809,93,3.086,111,1.029,114,2.036,124,0.921,147,2.863,148,1.269,150,1.76,154,1.249,156,0.801,158,0.778,160,0.756,173,0.948,176,0.855,182,1.579,189,1.911,190,2.254,207,0.909,227,0.743,269,1.491,318,3.441,326,0.948,329,1.298,330,1.049,331,2.096,333,2.003,339,1.011,361,1.211,427,1.029,471,0.994,493,1.251,497,1.176,503,3.265,505,5.782,506,6.702,507,1.355,509,3.455,520,1.07,537,1.298,570,1.689,677,2.952,694,1.093,705,0.835,732,1.251,736,1.298,739,1.145,764,0.737,913,1.175,915,0.679,916,0.75,945,1.298,947,0.785,949,1.526,969,2.096,1073,1.386,1078,2.414,1090,3.964,1097,1.298,1098,1.298,1100,2.694,1101,4.046,1104,1.834,1112,1.642,1270,4.709,1315,2.312,1336,2.919,1352,1.355,1451,1.526,1588,1.526,1611,1.526,1824,1.298,2131,1.526,2136,1.427,2137,1.427,2143,1.427,2145,1.355,2147,1.355,2148,1.298,2149,1.355,2283,6.94,2284,1.684,2285,1.684,2286,1.684,2287,1.684,2288,1.684,2289,1.684,2290,1.526,2291,1.684,2292,1.684,2293,1.684,2294,1.684,2295,3.001,2296,1.684,2297,3.001,2298,1.684]],["component/51",[1,0.411]],["title/52-1",[23,25.689]],["name/52-1",[]],["text/52-1",[]],["component/52-1",[]],["title/52-2",[26,18.526]],["name/52-2",[]],["text/52-2",[]],["component/52-2",[]],["title/52-3",[334,23.488]],["name/52-3",[]],["text/52-3",[]],["component/52-3",[]],["title/52-4",[269,18.168]],["name/52-4",[]],["text/52-4",[]],["component/52-4",[]],["title/52",[318,18.211,508,27.575,509,24.775]],["name/52",[2160,1.256]],["text/52",[1,0.902,12,1.583,19,1.624,20,1.667,24,2.809,26,0.819,42,5.741,67,2.796,93,3.394,124,1.667,147,3.772,150,1.321,152,4.065,158,1.407,176,1.546,189,1.435,190,1.394,197,2.451,269,0.804,318,3.63,330,1.897,333,2.576,430,1.603,508,4.309,509,5.599,593,3.946,677,3.449,875,2.582,894,1.897,958,3.17,977,2.072,1018,1.645,1073,1.407,1097,3.845,1101,4.214,1104,3.049,1112,1.667,1211,2.072,1270,5.631,1336,3.588,2159,5.741,2161,5.741,2299,7.324,2300,3.047,2301,3.047,2302,3.047,2303,3.047,2304,3.047,2305,3.047]],["component/52",[1,0.411]],["title/53-1",[23,25.689]],["name/53-1",[]],["text/53-1",[]],["component/53-1",[]],["title/53-2",[26,18.526]],["name/53-2",[]],["text/53-2",[]],["component/53-2",[]],["title/53-3",[334,23.488]],["name/53-3",[]],["text/53-3",[]],["component/53-3",[]],["title/53-4",[269,18.168]],["name/53-4",[]],["text/53-4",[]],["component/53-4",[]],["title/53-5",[887,25.347]],["name/53-5",[]],["text/53-5",[]],["component/53-5",[]],["title/53-6",[788,25.347]],["name/53-6",[]],["text/53-6",[]],["component/53-6",[]],["title/53-7",[1033,32.768]],["name/53-7",[]],["text/53-7",[]],["component/53-7",[]],["title/53",[180,21.888,498,24.336,501,31.244]],["name/53",[2306,1.256]],["text/53",[8,0.8,11,2.325,15,1.421,16,0.88,26,0.604,75,1.403,86,0.9,93,2.943,114,1.127,128,1.265,146,1.569,147,2.682,148,0.95,152,2.82,154,0.935,155,1.458,156,1.069,160,1.009,173,1.265,176,1.96,180,1.213,182,1.182,227,0.991,269,1.958,287,4.689,318,2.282,333,1.57,341,1.018,355,1.751,360,1.616,367,1.349,446,1.731,498,1.349,501,6.124,593,1.399,599,1.399,607,1.491,677,1.058,705,1.917,729,2.869,730,2.454,731,1.669,735,2.869,737,2.698,740,2.869,764,0.983,913,1.513,915,1.559,916,1,936,2.999,947,1.048,974,1.399,1018,1.213,1031,3.654,1032,3.774,1073,2.347,1077,1.731,1082,2.869,1086,2.977,1100,4.004,1112,2.114,1118,1.569,1152,1.731,1270,5.444,1284,1.669,1459,1.669,1526,1.731,2139,3.5,2181,1.731,2306,7.2,2307,1.807,2308,8.389,2309,3.273,2310,1.904,2311,3.107,2312,2.247,2313,2.247,2314,2.247,2315,2.247,2316,2.247,2317,2.247,2318,2.247]],["component/53",[1,0.411]],["title/54-1",[23,25.689]],["name/54-1",[]],["text/54-1",[]],["component/54-1",[]],["title/54-2",[26,18.526]],["name/54-2",[]],["text/54-2",[]],["component/54-2",[]],["title/54-3",[334,23.488]],["name/54-3",[]],["text/54-3",[]],["component/54-3",[]],["title/54-4",[269,18.168]],["name/54-4",[]],["text/54-4",[]],["component/54-4",[]],["title/54",[180,18.154,498,20.184,499,27.049,1050,28.49]],["name/54",[2319,1.256]],["text/54",[11,2.628,15,2.113,24,1.493,26,0.713,48,1.721,75,1.615,93,3.002,128,1.493,135,1.113,137,1.852,146,1.852,147,2.652,152,3.187,155,1.721,156,1.261,157,1.651,173,1.493,176,2.257,180,1.432,182,2.34,233,2.37,258,1.76,268,1.472,269,1.173,287,4.783,318,2.58,331,1.852,333,2.335,341,1.202,346,1.516,355,3.047,360,1.907,367,1.592,446,2.044,448,2.044,498,1.592,499,4.62,529,1.97,599,1.651,607,1.76,729,3.303,730,2.825,731,1.97,735,3.303,737,3.106,740,3.303,913,1.039,936,3.389,974,1.651,977,1.804,1031,3.198,1032,3.303,1050,2.247,1073,2.054,1077,2.044,1082,3.303,1086,3.427,1112,2.434,1118,1.852,1152,2.044,1284,1.97,1459,1.97,1526,2.044,2181,2.044,2307,2.133,2309,3.768,2310,2.247,2311,3.577,2319,6.785,2320,2.652,2321,2.652,2322,7.489,2323,4.447,2324,3.577,2325,1.907]],["component/54",[1,0.411]],["title/55-1",[23,25.689]],["name/55-1",[]],["text/55-1",[]],["component/55-1",[]],["title/55-2",[26,18.526]],["name/55-2",[]],["text/55-2",[]],["component/55-2",[]],["title/55-3",[334,23.488]],["name/55-3",[]],["text/55-3",[]],["component/55-3",[]],["title/55-4",[269,18.168]],["name/55-4",[]],["text/55-4",[]],["component/55-4",[]],["title/55-5",[887,25.347]],["name/55-5",[]],["text/55-5",[]],["component/55-5",[]],["title/55-6",[788,25.347]],["name/55-6",[]],["text/55-6",[]],["component/55-6",[]],["title/55-7",[15,18.782,341,23.138]],["name/55-7",[]],["text/55-7",[]],["component/55-7",[]],["title/55-8",[1033,32.768]],["name/55-8",[]],["text/55-8",[]],["component/55-8",[]],["title/55",[318,18.211,497,28.316,503,32.613]],["name/55",[2326,1.256]],["text/55",[1,0.453,8,1.635,11,2.94,16,1.079,26,0.412,48,0.993,55,1.101,67,0.675,75,0.556,82,1.981,86,0.613,93,1.701,112,1.179,114,0.768,124,1.507,147,2.876,148,2.24,150,1.629,154,1.911,155,1.787,156,1.787,160,1.237,168,1.205,176,0.777,180,3.47,182,1.976,189,1.769,190,1.719,192,0.816,196,1.626,198,1.231,205,1.041,227,0.675,258,1.016,269,1.397,318,3.275,326,0.862,333,0.622,338,3.027,339,1.654,346,2.624,347,1.069,348,2.437,406,2.046,441,2.123,449,2.386,453,1.231,454,2.493,476,2.056,477,1.787,497,1.924,498,0.919,503,1.231,511,1.683,522,1.297,529,1.137,548,2.123,570,1.551,609,1.874,624,1.179,664,1.041,677,1.769,705,0.759,734,3.183,764,0.669,791,1.449,890,1.041,893,0.993,894,0.953,913,1.471,915,0.617,916,0.681,936,2.709,947,0.714,974,0.953,980,1.297,1049,1.387,1064,1.101,1073,0.707,1101,3.344,1104,1.683,1112,2.056,1120,1.137,1166,1.101,1285,1.387,1354,1.231,1388,1.387,1417,1.137,1518,2.496,1548,1.231,1867,2.496,2113,2.334,2145,1.231,2148,1.179,2149,1.231,2326,6.932,2327,1.53,2328,1.53,2329,1.53,2330,1.53,2331,1.53,2332,1.53,2333,1.387,2334,1.53,2335,1.53,2336,1.53,2337,1.53,2338,1.53,2339,1.53,2340,1.53,2341,1.53,2342,1.53,2343,1.53,2344,1.53,2345,1.53,2346,1.53,2347,3.756,2348,1.53,2349,5.348,2350,5.902,2351,1.53,2352,2.755,2353,1.53,2354,3.756,2355,1.53,2356,1.53,2357,1.53,2358,1.53,2359,1.53]],["component/55",[1,0.411]],["title/56-1",[23,25.689]],["name/56-1",[]],["text/56-1",[]],["component/56-1",[]],["title/56-2",[26,18.526]],["name/56-2",[]],["text/56-2",[]],["component/56-2",[]],["title/56-3",[334,23.488]],["name/56-3",[]],["text/56-3",[]],["component/56-3",[]],["title/56-4",[269,18.168]],["name/56-4",[]],["text/56-4",[]],["component/56-4",[]],["title/56",[180,21.888,497,28.316,498,24.336]],["name/56",[2360,1.256]],["text/56",[7,1.72,11,3.262,15,1.072,17,2.096,24,1.641,26,0.784,27,1.982,28,1.982,35,1.462,48,1.891,69,1.692,75,2.589,86,1.167,93,2.275,108,3.122,111,1.781,128,1.641,135,1.223,137,3.36,147,1.898,157,1.815,176,1.479,177,1.75,180,3.316,182,1.533,192,1.553,207,1.574,233,1.553,238,2.345,258,1.935,268,1.617,269,0.769,287,4.207,310,2.096,318,1.309,330,2.996,333,1.956,343,2.096,347,2.036,355,2.181,422,3.87,430,1.533,436,2.165,440,1.891,442,2.246,448,2.246,476,1.595,497,4.98,498,4.28,729,2.165,730,1.852,740,2.165,756,2.47,804,1.982,913,1.142,936,2.839,947,1.359,977,3.272,1031,3.459,1053,2.47,1073,1.346,1112,1.595,1118,2.036,1128,2.641,1332,2.641,1417,2.165,1548,2.345,1732,2.641,1851,2.47,2324,3.87,2325,2.096,2333,2.641,2349,4.359,2360,7.15,2361,4.811,2362,2.915,2363,4.359,2364,2.915,2365,2.915,2366,2.915]],["component/56",[1,0.411]],["title/57-1",[23,25.689]],["name/57-1",[]],["text/57-1",[]],["component/57-1",[]],["title/57-2",[26,18.526]],["name/57-2",[]],["text/57-2",[]],["component/57-2",[]],["title/57-3",[334,23.488]],["name/57-3",[]],["text/57-3",[]],["component/57-3",[]],["title/57-4",[269,18.168]],["name/57-4",[]],["text/57-4",[]],["component/57-4",[]],["title/57",[180,21.888,498,24.336,500,26.91]],["name/57",[727,1.175]],["text/57",[11,2.693,15,2.166,26,0.738,48,1.781,75,1.662,93,3.055,128,1.545,135,1.151,137,1.917,146,1.917,147,2.71,152,2.54,155,1.781,156,1.306,157,1.709,173,1.545,176,2.323,180,1.482,182,1.444,233,2.439,258,1.822,268,1.523,269,1.207,287,4.867,318,2.644,333,2.393,341,1.244,355,3.114,360,1.974,367,1.647,446,2.115,448,2.115,498,1.647,500,3.907,501,3.527,599,1.709,607,1.822,727,6.469,729,3.4,730,2.907,731,2.039,735,3.4,737,3.197,740,3.4,913,1.075,936,3.474,974,1.709,1031,3.291,1032,3.4,1073,2.114,1077,2.115,1082,3.4,1086,3.527,1112,2.505,1118,1.917,1152,2.115,1270,1.781,1284,2.039,1459,2.039,1526,2.115,2181,2.115,2307,2.208,2309,3.878,2310,2.326,2311,3.682,2324,3.682,2325,1.974,2367,2.745,2368,7.635,2369,4.577]],["component/57",[1,0.411]],["title/58-1",[23,25.689]],["name/58-1",[]],["text/58-1",[]],["component/58-1",[]],["title/58-2",[26,18.526]],["name/58-2",[]],["text/58-2",[]],["component/58-2",[]],["title/58-3",[334,23.488]],["name/58-3",[]],["text/58-3",[]],["component/58-3",[]],["title/58-4",[269,18.168]],["name/58-4",[]],["text/58-4",[]],["component/58-4",[]],["title/58",[180,21.888,498,24.336,502,32.613]],["name/58",[2370,1.256]],["text/58",[11,1.908,15,2.356,26,0.661,48,1.595,75,1.973,93,2.886,128,1.384,135,1.031,137,1.717,141,1.45,147,2.526,152,2.315,155,1.595,156,1.169,157,1.531,173,1.384,176,2.757,180,1.327,182,1.293,233,2.223,258,1.631,268,1.364,269,1.1,287,4.598,318,2.441,321,2.227,333,2.209,341,1.114,355,2.902,407,3.355,440,1.595,446,1.894,448,1.894,498,1.475,502,5.767,509,3.912,520,1.561,563,1.977,593,2.597,599,1.531,607,1.631,695,2.706,707,1.977,729,3.098,730,2.65,731,1.826,735,1.826,737,1.717,740,3.098,890,2.837,913,0.963,936,3.778,974,1.531,1031,2.999,1032,3.098,1073,1.927,1077,1.894,1082,3.098,1086,3.214,1112,2.283,1118,1.717,1397,2.083,1459,1.826,1526,1.894,2181,1.894,2307,1.977,2311,1.977,2324,3.355,2325,1.767,2370,6.496,2371,7.169,2372,4.171,2373,4.171,2374,4.171,2375,4.171,2376,2.458,2377,2.458,2378,2.458,2379,4.171]],["component/58",[1,0.411]],["title/59-1",[23,25.689]],["name/59-1",[]],["text/59-1",[]],["component/59-1",[]],["title/59-2",[26,18.526]],["name/59-2",[]],["text/59-2",[]],["component/59-2",[]],["title/59-3",[334,23.488]],["name/59-3",[]],["text/59-3",[]],["component/59-3",[]],["title/59-4",[269,18.168]],["name/59-4",[]],["text/59-4",[]],["component/59-4",[]],["title/59-5",[887,25.347]],["name/59-5",[]],["text/59-5",[]],["component/59-5",[]],["title/59-6",[788,25.347]],["name/59-6",[]],["text/59-6",[]],["component/59-6",[]],["title/59-7",[221,43.759]],["name/59-7",[]],["text/59-7",[]],["component/59-7",[]],["title/59-8",[9,46.852]],["name/59-8",[]],["text/59-8",[]],["component/59-8",[]],["title/59",[13,38.784]],["name/59",[13,0.781]],["text/59",[1,0.311,4,0.696,6,1.669,8,0.694,9,3.428,10,0.909,13,5.35,15,1.677,16,0.764,20,1.067,21,0.667,26,0.282,30,0.667,33,2.127,43,0.653,48,0.681,67,1.205,69,0.609,71,1.448,75,2.378,86,0.42,93,2.977,99,2.748,117,0.754,125,1.214,135,0.44,141,0.619,142,0.779,143,0.754,147,1.988,148,1.445,149,0.545,154,2.442,155,0.681,156,1.299,157,0.653,158,0.485,160,0.876,161,0.515,162,1.908,163,0.681,164,0.619,165,0.653,168,1.494,169,0.552,170,0.63,175,0.844,177,1.17,178,0.619,181,0.809,185,1.754,192,1.455,204,1.192,205,0.714,206,2.986,207,1.053,208,1.503,209,5.179,213,2.087,216,0.681,221,2.17,223,2.69,227,0.463,233,1.455,243,1.239,245,0.754,246,0.667,249,0.641,255,0.63,259,0.653,267,0.844,268,0.582,269,1.202,287,1.612,289,1.983,291,1.402,292,0.667,303,0.951,304,0.951,316,0.754,318,0.471,333,0.793,346,0.6,361,1.402,363,1.132,365,1.503,389,1.082,391,2.537,422,0.844,508,4.658,511,0.641,540,1.114,548,0.809,593,2.127,612,0.844,616,0.641,617,0.844,664,1.858,705,0.521,735,0.779,764,0.459,788,1.005,796,0.641,804,0.714,834,0.889,841,2.475,900,0.591,913,1.338,915,0.787,916,0.467,927,1.735,939,0.951,941,0.754,947,0.909,952,0.889,977,3.1,1002,0.889,1073,0.485,1078,0.844,1091,2.314,1112,0.574,1118,0.733,1120,0.779,1134,0.779,1168,0.591,1211,1.326,1212,1.652,1215,0.733,1233,0.951,1297,0.844,1342,0.809,1373,0.809,1397,0.889,1413,0.889,1416,0.951,1432,1.569,1435,0.809,1467,0.951,1468,0.951,1481,1.294,1659,0.844,1670,0.889,2086,0.844,2196,0.779,2220,0.951,2325,0.754,2363,0.951,2380,0.779,2381,1.767,2382,2.731,2383,1.049,2384,1.049,2385,1.049,2386,1.049,2387,1.049,2388,1.049,2389,0.951,2390,0.951,2391,1.049,2392,1.95,2393,1.503,2394,0.809,2395,1.049,2396,1.049,2397,1.049,2398,1.049,2399,1.049,2400,1.95,2401,1.049,2402,1.049,2403,1.049,2404,1.049,2405,1.049,2406,1.049,2407,1.049,2408,1.049,2409,1.049,2410,1.049,2411,1.049,2412,1.049,2413,2.731,2414,1.049,2415,1.049,2416,1.049,2417,1.049,2418,1.049,2419,1.569,2420,1.049,2421,0.889,2422,1.049,2423,0.889,2424,0.889]],["component/59",[1,0.411]],["title/60-1",[23,25.689]],["name/60-1",[]],["text/60-1",[]],["component/60-1",[]],["title/60-2",[26,18.526]],["name/60-2",[]],["text/60-2",[]],["component/60-2",[]],["title/60-3",[334,23.488]],["name/60-3",[]],["text/60-3",[]],["component/60-3",[]],["title/60-4",[269,18.168]],["name/60-4",[]],["text/60-4",[]],["component/60-4",[]],["title/60-5",[887,25.347]],["name/60-5",[]],["text/60-5",[]],["component/60-5",[]],["title/60-6",[221,43.759]],["name/60-6",[]],["text/60-6",[]],["component/60-6",[]],["title/60-7",[9,46.852]],["name/60-7",[]],["text/60-7",[]],["component/60-7",[]],["title/60",[12,35.797]],["name/60",[12,0.721]],["text/60",[4,1.232,6,2.681,8,1.562,9,4.886,10,0.866,12,5.417,15,0.683,16,0.727,26,0.499,67,2.936,71,1.379,75,2.416,91,1.572,93,3.64,147,2.379,148,1.384,152,4.24,168,3.142,185,3.416,190,2.759,192,0.989,194,2.632,213,1.135,223,1.931,227,0.819,233,0.989,243,1.179,245,2.353,246,1.179,259,1.156,267,1.493,268,1.03,269,1.395,276,1.493,278,1.682,287,4.509,289,3.863,291,4.784,292,2.787,297,1.682,298,1.682,299,1.682,300,1.682,301,1.682,302,1.682,318,0.834,333,1.33,365,1.431,389,1.03,459,1.431,540,1.87,612,1.493,617,1.493,664,1.263,804,1.263,913,1.282,947,0.866,1054,1.335,1073,0.858,1134,1.379,1168,2.977,1297,1.493,1373,1.431,1481,2.172,1551,1.493,1675,1.682,2086,1.493,2099,1.682,2196,1.379,2325,1.335,2380,1.379,2393,2.522,2394,1.431,2419,2.632,2421,1.573,2423,1.573,2424,1.573,2425,3.272,2426,1.857,2427,1.857,2428,1.857,2429,1.857,2430,1.857,2431,1.857,2432,1.857,2433,1.857,2434,3.272,2435,1.857,2436,1.857,2437,1.857,2438,1.857]],["component/60",[1,0.411]],["title/61-1",[23,25.689]],["name/61-1",[]],["text/61-1",[]],["component/61-1",[]],["title/61-2",[26,18.526]],["name/61-2",[]],["text/61-2",[]],["component/61-2",[]],["title/61-3",[334,23.488]],["name/61-3",[]],["text/61-3",[]],["component/61-3",[]],["title/61-4",[269,18.168]],["name/61-4",[]],["text/61-4",[]],["component/61-4",[]],["title/61-5",[887,25.347]],["name/61-5",[]],["text/61-5",[]],["component/61-5",[]],["title/61-6",[221,43.759]],["name/61-6",[]],["text/61-6",[]],["component/61-6",[]],["title/61-7",[2439,68.884]],["name/61-7",[]],["text/61-7",[]],["component/61-7",[]],["title/61-8",[9,46.852]],["name/61-8",[]],["text/61-8",[]],["component/61-8",[]],["title/61",[11,31.517]],["name/61",[11,0.634]],["text/61",[4,1.057,6,2.371,8,1.684,9,4.476,10,0.743,11,4.868,15,0.586,16,0.624,26,0.428,67,3.106,71,1.183,75,2.198,91,1.372,93,3.58,147,2.148,148,1.208,152,4.33,168,3.413,180,0.86,185,3.379,188,1.112,189,0.75,191,1.994,192,0.849,196,2.791,213,2.371,223,1.685,227,0.703,233,0.849,239,1.443,243,1.012,245,2.053,259,0.992,267,1.281,268,0.884,269,1.436,272,2.587,287,4.793,288,1.443,289,4.087,290,1.443,291,5.062,292,3.004,293,2.587,294,2.587,295,1.443,296,1.443,318,0.715,333,1.161,338,2.218,355,0.722,365,1.227,389,0.884,540,2.218,597,4.285,612,1.281,617,1.281,664,1.083,758,1.349,804,1.083,913,1.52,947,0.743,1054,1.145,1073,0.736,1112,0.872,1131,1.349,1134,1.183,1168,0.897,1297,1.281,1373,1.227,1481,1.895,2086,1.281,2196,1.183,2325,1.145,2380,1.183,2393,2.2,2394,1.227,2419,2.297,2421,1.349,2423,1.349,2424,1.349,2440,2.855,2441,1.593,2442,1.593,2443,1.593,2444,1.443,2445,1.443,2446,1.593,2447,1.443,2448,1.593,2449,1.593,2450,2.855,2451,1.593,2452,2.855,2453,1.593,2454,1.593,2455,1.593,2456,1.593]],["component/61",[1,0.411]],["title/62-1",[23,25.689]],["name/62-1",[]],["text/62-1",[]],["component/62-1",[]],["title/62-2",[26,18.526]],["name/62-2",[]],["text/62-2",[]],["component/62-2",[]],["title/62-3",[334,23.488]],["name/62-3",[]],["text/62-3",[]],["component/62-3",[]],["title/62-4",[332,29.174,1056,29.174]],["name/62-4",[]],["text/62-4",[]],["component/62-4",[]],["title/62-5",[269,18.168]],["name/62-5",[]],["text/62-5",[]],["component/62-5",[]],["title/62-6",[887,25.347]],["name/62-6",[]],["text/62-6",[]],["component/62-6",[]],["title/62-7",[221,43.759]],["name/62-7",[]],["text/62-7",[]],["component/62-7",[]],["title/62-8",[15,25.347]],["name/62-8",[]],["text/62-8",[]],["component/62-8",[]],["title/62",[474,46.852]],["name/62",[474,0.943]],["text/62",[8,2.537,15,1.334,16,0.818,24,1.175,26,0.561,33,2.257,75,2.359,93,3.001,121,1.42,135,1.521,143,1.501,147,2.264,148,0.883,160,0.938,168,2.51,185,2.467,203,3.903,208,1.609,213,2.215,223,2.835,227,0.921,233,1.112,255,2.884,269,1.514,287,4.515,289,1.212,292,3.052,309,1.55,332,1.193,333,1.474,474,6.69,540,1.193,547,1.501,664,1.42,708,1.891,723,1.42,791,3.019,913,1.42,927,1.326,947,0.973,961,1.768,1056,5.045,1062,2.303,1073,0.964,1082,1.55,1112,1.142,1129,1.891,1133,1.501,1134,1.55,1136,3.865,1147,2.794,1364,1.679,1389,2.794,1480,1.891,1661,1.679,2110,1.891,2196,1.55,2276,1.768,2380,1.55,2393,2.794,2394,1.609,2457,1.891,2458,3.284,2459,2.087,2460,2.087,2461,2.087,2462,9.624,2463,3.625,2464,2.087,2465,2.087,2466,2.087,2467,2.087,2468,2.087,2469,2.087,2470,2.087,2471,4.805,2472,2.087,2473,2.087,2474,2.087,2475,2.087,2476,2.087,2477,2.087,2478,1.891,2479,2.087,2480,1.891,2481,2.087]],["component/62",[1,0.411]],["title/63-1",[23,25.689]],["name/63-1",[]],["text/63-1",[]],["component/63-1",[]],["title/63-2",[26,18.526]],["name/63-2",[]],["text/63-2",[]],["component/63-2",[]],["title/63-3",[334,23.488]],["name/63-3",[]],["text/63-3",[]],["component/63-3",[]],["title/63-4",[269,18.168]],["name/63-4",[]],["text/63-4",[]],["component/63-4",[]],["title/63-5",[887,25.347]],["name/63-5",[]],["text/63-5",[]],["component/63-5",[]],["title/63-6",[788,25.347]],["name/63-6",[]],["text/63-6",[]],["component/63-6",[]],["title/63-7",[221,43.759]],["name/63-7",[]],["text/63-7",[]],["component/63-7",[]],["title/63",[196,40.649]],["name/63",[196,0.818]],["text/63",[8,3.272,11,3.71,12,4.214,15,1.846,16,2.493,26,0.825,75,1.821,86,1.228,93,2.358,135,1.287,147,1.979,168,1.341,180,1.656,185,2.576,188,2.142,190,2.295,192,1.634,196,6.023,207,1.656,213,3.065,223,2.96,227,1.353,243,1.948,245,2.205,269,1.939,287,2.96,333,1.247,338,3.638,348,3.255,392,4.414,406,2.278,558,2.363,694,3.255,705,2.489,730,1.948,758,2.598,764,1.341,900,1.727,913,1.965,915,2.024,916,1.365,947,1.43,1054,2.205,1073,1.416,1109,1.948,1112,1.678,1168,3.583,1483,3.607,1486,1.99,1544,2.278,2444,2.779,2445,2.779,2447,2.779,2482,3.067,2483,3.067,2484,3.067,2485,3.067,2486,3.067]],["component/63",[1,0.411]],["title/64-1",[23,25.689]],["name/64-1",[]],["text/64-1",[]],["component/64-1",[]],["title/64-2",[26,18.526]],["name/64-2",[]],["text/64-2",[]],["component/64-2",[]],["title/64-3",[334,23.488]],["name/64-3",[]],["text/64-3",[]],["component/64-3",[]],["title/64-4",[269,18.168]],["name/64-4",[]],["text/64-4",[]],["component/64-4",[]],["title/64-5",[887,25.347]],["name/64-5",[]],["text/64-5",[]],["component/64-5",[]],["title/64-6",[788,25.347]],["name/64-6",[]],["text/64-6",[]],["component/64-6",[]],["title/64-7",[221,43.759]],["name/64-7",[]],["text/64-7",[]],["component/64-7",[]],["title/64-8",[1208,37.696]],["name/64-8",[]],["text/64-8",[]],["component/64-8",[]],["title/64",[182,36.242]],["name/64",[182,0.729]],["text/64",[3,0.893,7,0.775,8,1.9,11,1.513,15,0.483,16,0.939,26,0.353,69,0.762,75,2.123,80,0.852,86,0.526,92,2.675,93,2.483,114,0.659,147,2.306,148,2.472,150,2.061,152,1.33,154,2.621,156,1.14,160,3.01,161,0.644,168,1.447,178,0.775,180,0.709,182,5.663,185,1.698,188,0.917,189,0.618,190,0.601,192,0.699,196,1.414,198,2.661,199,2.997,200,2.549,201,1.189,202,1.056,203,2.25,204,2.495,205,0.893,211,0.852,212,1.414,213,2.021,223,1.952,227,0.579,233,0.699,244,1.012,245,0.944,247,1.056,258,0.871,259,0.817,268,0.728,269,1.253,287,3.716,289,0.762,316,0.944,318,0.59,333,0.974,364,1.189,391,0.975,406,0.975,441,1.012,453,3.284,459,1.012,471,0.775,472,0.882,473,0.944,540,1.37,542,1.112,558,1.012,570,1.35,588,0.944,589,0.852,593,2.06,653,1.012,664,0.893,730,1.523,732,0.975,733,1.189,764,1.048,776,2.802,876,1.724,882,0.666,900,0.739,913,1.295,915,0.967,916,0.584,927,0.834,933,1.012,936,1.952,943,0.975,947,1.542,958,0.834,983,0.917,985,0.975,986,0.817,1054,0.944,1070,2.031,1073,0.606,1101,1.983,1112,0.718,1133,0.944,1134,0.975,1168,0.739,1213,0.893,1215,0.917,1223,0.893,1342,1.012,1366,1.056,1419,0.944,1437,2.457,1534,1.112,1589,2.172,1609,1.056,1627,2.457,1769,1.012,1824,1.012,2076,1.112,2196,0.975,2380,0.975,2381,1.189,2389,1.189,2393,1.847,2394,1.012,2487,2.397,2488,1.313,2489,1.313,2490,1.189,2491,1.313,2492,1.313,2493,1.313,2494,1.313,2495,1.313,2496,1.313,2497,1.313,2498,1.313,2499,1.313,2500,1.313,2501,1.313,2502,1.189,2503,1.313,2504,2.397,2505,1.313,2506,1.313,2507,2.397,2508,1.313,2509,1.313,2510,1.313,2511,1.313,2512,1.313,2513,1.313,2514,1.313,2515,1.313,2516,1.313,2517,1.313,2518,1.189,2519,1.189]],["component/64",[1,0.411]],["title/65-1",[23,25.689]],["name/65-1",[]],["text/65-1",[]],["component/65-1",[]],["title/65-2",[26,18.526]],["name/65-2",[]],["text/65-2",[]],["component/65-2",[]],["title/65-3",[334,23.488]],["name/65-3",[]],["text/65-3",[]],["component/65-3",[]],["title/65-4",[269,18.168]],["name/65-4",[]],["text/65-4",[]],["component/65-4",[]],["title/65-5",[887,25.347]],["name/65-5",[]],["text/65-5",[]],["component/65-5",[]],["title/65-6",[788,18.782,889,21.076]],["name/65-6",[]],["text/65-6",[]],["component/65-6",[]],["title/65-7",[690,51.167]],["name/65-7",[]],["text/65-7",[]],["component/65-7",[]],["title/65-8",[1033,32.768]],["name/65-8",[]],["text/65-8",[]],["component/65-8",[]],["title/65-9",[449,32.426,2247,43.249]],["name/65-9",[]],["text/65-9",[]],["component/65-9",[]],["title/65-10",[1208,37.696]],["name/65-10",[]],["text/65-10",[]],["component/65-10",[]],["title/65",[473,49.533]],["name/65",[473,0.997]],["text/65",[8,1.715,11,2.429,16,1.143,26,0.305,33,0.705,53,0.873,67,1.287,71,1.555,75,0.411,86,0.454,92,2.046,93,1.966,114,1.823,135,0.475,147,1.151,148,0.479,150,1.576,154,1.773,160,0.509,168,3.121,182,5.231,188,2.976,189,0.533,190,0.518,204,2.942,211,0.735,212,1.235,229,0.611,247,0.911,269,0.958,287,4.521,292,0.719,333,0.46,355,2.183,369,1.555,392,0.68,449,1.33,453,5.739,454,0.752,459,0.873,471,1.722,472,1.406,473,7.507,520,1.33,570,1.178,589,1.358,653,0.873,677,0.986,690,3.577,695,0.735,705,1.038,730,1.854,732,1.555,737,0.791,752,0.873,755,0.814,764,0.916,776,4.08,796,0.692,876,2.098,882,1.062,888,1.535,889,0.864,912,1.361,913,1.423,915,1.177,916,0.504,936,3.132,943,0.841,985,0.841,986,0.705,1017,3.731,1018,0.611,1044,1.896,1052,0.791,1070,0.96,1080,1.684,1081,0.911,1088,1.026,1101,2.792,1109,1.33,1148,2.412,1213,0.77,1406,1.462,1419,0.814,1435,0.873,1437,0.841,1513,3.577,1527,4.872,1551,0.911,1557,1.026,1668,3.079,1803,0.911,1824,2.249,2024,3.292,2076,0.96,2247,3.079,2290,1.026,2502,1.026,2518,1.896,2519,1.026,2520,1.133,2521,1.133,2522,1.133,2523,1.896,2524,1.133,2525,1.133,2526,1.133,2527,1.133,2528,1.133,2529,2.093,2530,2.093,2531,1.133,2532,1.133,2533,1.133,2534,4.261,2535,2.093,2536,1.133,2537,1.133,2538,1.133,2539,1.133,2540,1.133,2541,1.133]],["component/65",[1,0.411]],["title/66-1",[23,25.689]],["name/66-1",[]],["text/66-1",[]],["component/66-1",[]],["title/66-2",[26,18.526]],["name/66-2",[]],["text/66-2",[]],["component/66-2",[]],["title/66-3",[334,23.488]],["name/66-3",[]],["text/66-3",[]],["component/66-3",[]],["title/66-4",[269,18.168]],["name/66-4",[]],["text/66-4",[]],["component/66-4",[]],["title/66-5",[887,25.347]],["name/66-5",[]],["text/66-5",[]],["component/66-5",[]],["title/66-6",[788,25.347]],["name/66-6",[]],["text/66-6",[]],["component/66-6",[]],["title/66-7",[221,43.759]],["name/66-7",[]],["text/66-7",[]],["component/66-7",[]],["title/66-8",[15,25.347]],["name/66-8",[]],["text/66-8",[]],["component/66-8",[]],["title/66-9",[15,18.782,1659,41.06]],["name/66-9",[]],["text/66-9",[]],["component/66-9",[]],["title/66",[121,46.852]],["name/66",[121,0.943]],["text/66",[8,1.627,11,3.636,15,1.008,16,1.073,26,1.005,36,1.52,53,1.172,67,2.016,68,1.093,75,0.995,86,0.609,93,3.392,121,7.652,124,0.832,125,1.705,141,2.205,143,1.093,147,1.474,152,0.844,154,1.555,160,1.678,168,2.307,178,0.897,185,1.919,191,1.913,203,2.541,204,0.929,208,2.879,221,1.74,223,2.205,227,2.016,229,0.821,233,0.81,255,2.243,269,1.688,287,3.468,320,0.966,333,0.618,338,2.136,346,0.869,355,0.689,389,1.52,391,1.129,474,3.107,547,1.093,593,0.947,664,1.034,723,1.034,730,2.902,764,0.665,882,1.39,900,1.542,912,2.459,913,1.463,915,1.507,916,0.677,927,0.966,947,0.709,986,1.705,1073,2.715,1131,1.288,1147,2.111,1148,1.818,1150,2.541,1172,2.111,1251,3.998,1302,1.172,1323,1.129,1389,1.172,1406,1.062,1470,1.378,1627,1.129,1659,3.675,1661,1.223,1720,1.378,1723,1.223,2276,1.288,2380,1.129,2390,1.378,2419,1.223,2457,1.378,2458,1.378,2478,1.378,2480,1.378,2542,3.736,2543,1.521,2544,1.521,2545,1.521,2546,1.521,2547,1.521,2548,1.521,2549,1.521,2550,1.521,2551,3.736,2552,1.521,2553,1.521,2554,1.521,2555,1.521,2556,1.521,2557,1.521,2558,1.521,2559,1.521,2560,1.521,2561,2.739,2562,1.521,2563,1.521,2564,1.521,2565,1.521,2566,1.521,2567,1.521,2568,1.521]],["component/66",[1,0.411]],["title/67-1",[23,25.689]],["name/67-1",[]],["text/67-1",[]],["component/67-1",[]],["title/67-2",[26,18.526]],["name/67-2",[]],["text/67-2",[]],["component/67-2",[]],["title/67-3",[334,23.488]],["name/67-3",[]],["text/67-3",[]],["component/67-3",[]],["title/67-4",[269,18.168]],["name/67-4",[]],["text/67-4",[]],["component/67-4",[]],["title/67-5",[887,25.347]],["name/67-5",[]],["text/67-5",[]],["component/67-5",[]],["title/67-6",[8,18.179,915,20.594]],["name/67-6",[]],["text/67-6",[]],["component/67-6",[]],["title/67-7",[10,32.125]],["name/67-7",[]],["text/67-7",[]],["component/67-7",[]],["title/67-8",[8,18.179,1208,27.933]],["name/67-8",[]],["text/67-8",[]],["component/67-8",[]],["title/67-9",[1208,37.696]],["name/67-9",[]],["text/67-9",[]],["component/67-9",[]],["title/67",[203,27.575,513,24.336,516,29.153]],["name/67",[1485,1.175]],["text/67",[7,1.1,8,3.619,15,0.686,16,1.286,21,1.184,26,0.501,45,3.078,67,0.822,75,3.051,86,1.315,91,1.578,93,3.707,115,2.782,135,1.377,147,2.092,150,1.424,168,0.815,203,2.993,227,1.449,230,1.849,249,3.694,269,1.595,332,1.065,348,1.209,355,2.403,392,1.971,425,5.964,472,2.206,513,1.119,516,1.34,656,4.427,694,2.13,705,0.925,791,0.981,840,1.184,900,1.049,912,1.531,913,1.723,947,0.869,983,1.302,1056,1.065,1062,4.237,1073,0.861,1109,1.184,1126,1.385,1133,3.813,1158,1.34,1168,1.849,1482,4.492,1483,1.34,1484,4.086,1485,7.613,1486,2.13,1487,2.975,1489,1.579,1491,1.689,1493,1.689,1507,6.043,1536,1.499,1544,1.385,1626,1.436,1817,2.782,2081,1.689,2569,3.283,2570,1.864,2571,1.864,2572,1.689,2573,2.975,2574,1.689,2575,1.689,2576,1.864,2577,1.864,2578,1.689,2579,1.689,2580,1.864,2581,1.864,2582,1.689,2583,1.689,2584,1.689,2585,1.864,2586,1.689]],["component/67",[1,0.411]],["title/68-1",[23,25.689]],["name/68-1",[]],["text/68-1",[]],["component/68-1",[]],["title/68-2",[26,18.526]],["name/68-2",[]],["text/68-2",[]],["component/68-2",[]],["title/68-3",[334,23.488]],["name/68-3",[]],["text/68-3",[]],["component/68-3",[]],["title/68-4",[269,18.168]],["name/68-4",[]],["text/68-4",[]],["component/68-4",[]],["title/68-5",[887,25.347]],["name/68-5",[]],["text/68-5",[]],["component/68-5",[]],["title/68-6",[8,18.179,915,20.594]],["name/68-6",[]],["text/68-6",[]],["component/68-6",[]],["title/68-7",[10,32.125]],["name/68-7",[]],["text/68-7",[]],["component/68-7",[]],["title/68-8",[8,18.179,1208,27.933]],["name/68-8",[]],["text/68-8",[]],["component/68-8",[]],["title/68-9",[788,18.782,889,21.076]],["name/68-9",[]],["text/68-9",[]],["component/68-9",[]],["title/68-10",[1033,32.768]],["name/68-10",[]],["text/68-10",[]],["component/68-10",[]],["title/68-11",[1208,37.696]],["name/68-11",[]],["text/68-11",[]],["component/68-11",[]],["title/68",[513,30.639,516,36.704]],["name/68",[1484,1.069]],["text/68",[7,1.864,8,2.933,16,1.533,26,0.334,45,1.324,67,0.549,69,0.722,75,2.05,80,1.48,86,1.265,91,1.096,92,1.779,93,2.873,135,0.957,147,0.491,168,0.544,198,2.541,227,0.549,230,3.178,246,0.79,249,1.394,269,1.205,289,1.324,291,0.894,332,0.711,347,2.207,355,4.078,361,2.272,425,2.097,440,0.807,472,2.122,513,4.117,516,4.059,563,1.835,569,0.807,616,0.76,656,5.314,666,0.894,677,1.488,695,0.807,705,0.617,711,0.958,723,1.551,764,0.544,773,2.486,788,0.839,791,0.654,840,2.486,882,2.608,888,0.654,889,0.513,912,2.13,913,1.789,915,1.579,916,0.553,980,1.053,983,0.868,1017,4.856,1018,1.706,1056,1.304,1062,5.492,1126,0.924,1133,2.272,1158,0.894,1168,1.284,1364,1,1366,1,1437,0.924,1482,6.342,1484,5.768,1486,0.807,1489,1.053,1512,1.835,1513,0.924,1536,3.148,1559,2.066,1570,2.066,1626,1.758,1661,1.835,1700,1.127,2090,1.127,2119,2.066,2490,1.127,2523,3.546,2572,2.863,2573,4.656,2574,1.127,2575,1.127,2578,1.127,2579,1.127,2582,1.127,2583,1.127,2584,1.127,2586,2.066,2587,1.243,2588,3.159,2589,1.243,2590,1.243,2591,2.281,2592,2.281,2593,1.243,2594,2.281,2595,1.243,2596,1.243,2597,1.243,2598,1.243,2599,1.243,2600,1.243,2601,1.243,2602,1.243,2603,1.243,2604,1.243,2605,1.243,2606,1.243]],["component/68",[1,0.411]],["title/69",[]],["name/69",[0,0.943]],["text/69",[]],["component/69",[1,0.411]],["title/70-1",[2,58.365]],["name/70-1",[]],["text/70-1",[]],["component/70-1",[]],["title/70-2",[3,46.852]],["name/70-2",[]],["text/70-2",[]],["component/70-2",[]],["title/70-3",[4,33.879,5,46.248]],["name/70-3",[]],["text/70-3",[]],["component/70-3",[]],["title/70-4",[6,42.095]],["name/70-4",[]],["text/70-4",[]],["component/70-4",[]],["title/70-5",[7,30.121,8,18.179]],["name/70-5",[]],["text/70-5",[]],["component/70-5",[]],["title/70-6",[9,46.852]],["name/70-6",[]],["text/70-6",[]],["component/70-6",[]],["title/70-7",[10,32.125]],["name/70-7",[]],["text/70-7",[]],["component/70-7",[]],["title/70-8",[11,31.517]],["name/70-8",[]],["text/70-8",[]],["component/70-8",[]],["title/70-9",[12,35.797]],["name/70-9",[]],["text/70-9",[]],["component/70-9",[]],["title/70-10",[13,38.784]],["name/70-10",[]],["text/70-10",[]],["component/70-10",[]],["title/70-11",[14,58.365]],["name/70-11",[]],["text/70-11",[]],["component/70-11",[]],["title/70-12",[15,18.782,16,19.992]],["name/70-12",[]],["text/70-12",[]],["component/70-12",[]],["title/70",[17,49.533]],["name/70",[17,0.997]],["text/70",[1,1.151,2,1.791,3,1.01,4,1.2,5,1.037,6,1.953,7,0.676,8,1.138,9,2.337,10,2.093,11,1.966,12,1.661,13,2.187,14,0.342,15,1.785,16,1.436,17,0.823,18,0.342,19,1.703,20,2.926,21,0.499,22,0.404,23,0.151,24,0.442,25,0.632,26,0.569,27,0.779,28,0.779,29,0.785,30,0.944,31,1.068,32,0.325,33,0.252,34,2.495,35,1.061,36,0.635,37,0.565,38,0.342,39,0.311,40,0.632,41,0.311,42,0.366,43,0.489,44,0.366,45,0.235,46,2.43,47,0.366,48,0.743,49,1.145,50,0.404,51,0.3,52,2.114,53,0.311,54,0.404,55,0.823,56,0.311,57,0.366,58,0.366,59,0.404,60,0.404,61,0.311,62,0.404,63,0.404,64,0.665,65,0.404,66,0.404,67,2.492,68,0.291,69,1.557,70,0.711,71,0.3,72,0.342,73,0.404,74,0.404,75,1.697,76,0.921,77,0.366,78,0.366,79,0.632,80,0.262,81,0.366,82,0.291,83,0.366,84,0.366,85,0.325,86,0.847,87,0.404,88,0.711,89,1.259,90,0.404,91,1.016,92,1.354,93,3.581,94,0.311,95,1.403,96,1.636,97,0.404,98,1.701,99,1.701,100,1.346,101,0.632,102,0.404,103,0.342,104,0.291,105,0.342,106,0.291,107,0.366,108,0.964,109,0.404,110,0.404,111,0.48,112,0.311,113,0.366,114,0.394,115,0.665,116,0.921,117,1.3,118,0.785,119,0.404,120,0.404,121,0.534,122,0.499,123,0.325,124,0.43,125,0.252,126,0.404,127,0.342,128,0.228,129,1.227,130,0.282,131,0.665,132,0.632,133,0.366,134,0.404,135,0.759,136,0.404,137,0.548,138,0.665,139,0.404,140,0.325,141,0.877,142,1.343,143,0.823,144,0.404,145,0.665,146,0.282,147,1.533,148,0.484,149,1.394,150,1.163,151,0.3,152,0.824,153,0.509,154,1.33,155,0.262,156,0.86,157,0.252,158,0.835,159,0.366,160,0.667,161,0.729,162,0.8,163,0.509,164,0.463,165,1.498,166,0.282,167,0.823,168,0.925,169,0.951,170,1.61,171,0.342,172,0.342,173,0.836,174,0.823,175,0.325,176,0.205,177,0.243,178,0.463,179,0.311,180,0.424,181,0.882,182,0.782,183,0.404,184,0.404,185,2.102,186,0.342,187,0.404,188,0.282,189,0.19,190,0.359,191,0.282,192,0.418,193,0.404,194,0.325,195,0.366,196,0.238,197,0.325,198,0.325,199,0.366,200,0.311,201,0.366,202,0.325,203,0.275,204,0.247,205,0.275,206,0.3,207,0.618,208,0.311,209,0.275,210,1.444,211,0.262,212,0.463,213,1.105,214,0.366,215,0.665,216,0.743,217,0.366,218,0.404,219,0.404,220,0.366,221,0.499,222,0.342,223,0.238,224,0.311,225,0.311,226,0.404,227,0.505,228,0.785,229,0.218,230,1.935,231,0.366,232,0.565,233,1.429,234,0.404,235,0.785,236,0.785,237,0.404,238,0.325,239,1.037,240,0.404,241,0.404,242,0.711,243,0.499,244,0.311,245,0.291,246,0.499,247,0.325,248,0.366,249,0.247,250,0.366,251,0.366,252,0.711,253,0.342,254,0.366,255,0.243,256,0.311,257,0.366,258,0.268,259,0.252,260,0.325,261,0.785,262,0.404,263,0.366,264,0.404,265,0.404,266,0.404,267,0.325,268,0.224,269,0.107,270,0.404,271,0.785,272,0.366,273,0.404,274,0.404,275,0.404,276,0.325,277,0.404,278,0.366,279,0.404,280,0.404,281,0.404,282,0.404,283,0.404,284,0.404,285,0.97,286,0.311,287,2.863,288,0.366,289,2.817,290,0.366,291,3.731,292,1.871,293,0.711,294,0.711,295,0.366,296,0.366,297,0.366,298,0.366,299,0.366,300,0.366,301,0.366,302,0.366,303,0.366,304,0.366,305,0.404,306,0.404,307,0.404,308,0.366,309,0.3,310,0.823,311,0.366,312,0.325,313,0.366,314,0.404,315,0.342,316,0.291,317,0.3,318,0.514,319,0.404,320,0.257,321,0.366,322,0.342,323,0.291,324,0.404,325,0.342,326,0.228,327,0.291,328,0.921,329,0.605,330,0.252,331,0.548,332,0.849,333,0.86,334,0.138,335,0.404,336,1.485,337,1.485,338,0.849,339,0.687,340,0.404,341,0.183,342,0.404,343,0.291,344,0.8,345,0.711,346,0.449,347,0.282,348,0.509,349,0.882,350,0.398,351,0.785,352,0.605,353,1.145,354,0.262,355,0.183,356,0.342,357,0.342,358,0.342,359,0.711,360,0.291,361,0.291,362,0.311,363,0.235,364,0.366,365,0.311,366,0.404,367,0.243,368,0.404,369,0.3,370,0.665,371,0.404,372,0.366,373,0.404,374,0.48,375,0.404,376,0.262,377,0.548,378,0.404,379,0.404,380,0.342,381,0.404,382,0.404,383,0.404,384,0.785,385,0.785,386,0.366,387,0.3,388,0.404,389,0.224,390,0.3,391,0.3,392,0.243,393,0.404,394,0.404,395,0.325,396,0.404,397,0.404,398,0.404,399,0.342,400,0.404,401,0.404,402,0.342,403,0.404,404,0.404,405,0.404,406,0.3,407,0.325,408,0.404,409,0.311,410,0.311,411,0.311,412,0.311,413,0.311,414,0.311,415,0.275,416,0.311,417,0.311,418,0.311,419,0.311,420,0.311]],["component/70",[1,0.411]],["title/71-1",[421,62.413]],["name/71-1",[]],["text/71-1",[]],["component/71-1",[]],["title/71-2",[422,41.06,423,37.915]],["name/71-2",[]],["text/71-2",[]],["component/71-2",[]],["title/71-3",[424,62.413]],["name/71-3",[]],["text/71-3",[]],["component/71-3",[]],["title/71",[1,9.959,19,17.917,20,18.401,35,16.871]],["name/71",[425,0.92]],["text/71",[1,1.164,4,0.83,11,0.572,12,0.65,13,0.704,15,1.168,16,0.49,17,0.899,19,1.691,20,2.509,24,0.704,27,0.85,28,0.85,35,2.588,36,2.544,37,0.899,38,1.059,39,0.963,40,1.005,44,1.133,48,0.811,55,0.899,69,0.726,75,0.832,82,1.648,86,1.573,88,1.133,106,2.282,108,0.811,112,3.028,121,0.85,122,0.794,123,1.005,124,0.684,125,1.976,128,0.704,129,0.726,131,1.942,132,1.844,156,0.595,158,2.616,161,0.613,164,0.738,165,1.427,166,0.873,170,1.376,180,2.475,182,0.658,196,0.738,203,0.85,207,0.675,210,0.75,213,0.764,259,1.427,260,1.005,263,1.133,308,2.077,309,2.919,310,0.899,318,2.544,326,0.704,328,1.005,330,0.778,349,0.963,350,2.618,357,1.059,358,1.059,359,1.133,361,0.899,367,1.376,376,0.811,377,1.601,387,0.928,409,0.963,410,0.963,411,0.963,412,2.446,413,1.766,414,1.766,415,0.85,416,0.963,417,0.963,418,1.766,419,1.766,420,1.766,422,1.005,423,0.928,424,2.077,426,1.25,427,1.4,428,0.83,429,1.25,430,0.658,431,1.133,432,0.811,433,1.133,434,1.25,435,0.963,436,0.928,437,1.25,438,0.963,439,1.25,440,1.487,441,0.963,442,0.963,443,1.25,444,1.25,445,1.059,446,0.963,447,1.25,448,0.963,449,0.794,450,1.059,451,1.25,452,1.25,453,1.005,454,0.83,455,1.25,456,2.077,457,2.292,458,2.292,459,0.963,460,1.25,461,1.059,462,0.963,463,1.25,464,1.942,465,3.161,466,0.85,467,1.25,468,1.005,469,1.005,470,1.059,471,0.738,472,0.84,473,0.899,474,0.85,475,0.764,476,1.737,477,3.1,478,1.702,479,1.059,480,1.873,481,0.963,482,1.702,483,2.383,484,1.005,485,1.648,486,1.005,487,0.873,488,0.963,489,0.963,490,1.25,491,0.873,492,1.487,493,0.928,494,0.963,495,1.059,496,1.059,497,1.601,498,2.752,499,1.005,500,0.83,501,0.963,502,1.005,503,1.005,504,1.005,505,2.016,506,1.005,507,1.005,508,0.85,509,1.4,510,0.928,511,0.764,512,0.899,513,1.905,514,2.357,515,0.811,516,1.648,517,1.521,518,1.25,519,1.133,520,0.794,521,1.25,522,1.059,523,2.292,524,1.25,525,1.059,526,1.059,527,1.25,528,1.25,529,0.928,530,1.25,531,1.133,532,1.25,533,1.25,534,2.292,535,1.133,536,1.133,537,0.963,538,1.133,539,1.25,540,0.714,541,1.133,542,1.059,543,1.25,544,1.25,545,1.25,546,1.059,547,0.899,548,0.963,549,1.25,550,1.25,551,1.25,552,1.25]],["component/71",[1,0.411]],["title/72-1",[325,43.249,553,43.249]],["name/72-1",[]],["text/72-1",[]],["component/72-1",[]],["title/72-2",[19,27.199,142,37.915]],["name/72-2",[]],["text/72-2",[]],["component/72-2",[]],["title/72-3",[389,38.227]],["name/72-3",[]],["text/72-3",[]],["component/72-3",[]],["title/72-4",[553,43.249,554,51.042]],["name/72-4",[]],["text/72-4",[]],["component/72-4",[]],["title/72-5",[310,49.533]],["name/72-5",[]],["text/72-5",[]],["component/72-5",[]],["title/72-6",[180,37.19]],["name/72-6",[]],["text/72-6",[]],["component/72-6",[]],["title/72-7",[36,28.326,161,25.052]],["name/72-7",[]],["text/72-7",[]],["component/72-7",[]],["title/72-8",[15,18.782,555,37.915]],["name/72-8",[]],["text/72-8",[]],["component/72-8",[]],["title/72",[470,43.249,471,30.121]],["name/72",[556,1.386]],["text/72",[1,0.349,4,0.536,8,0.148,9,0.801,10,2.308,11,0.849,12,0.612,15,0.798,16,0.461,19,0.431,20,1.35,21,0.264,27,1.038,28,0.55,30,1.179,31,0.847,33,0.259,35,1.764,36,3.346,41,0.623,43,0.259,55,0.581,56,0.321,64,0.353,68,0.299,69,1.259,72,0.685,75,1.277,80,1.205,86,0.988,89,0.353,91,1.043,92,1.389,93,3.898,95,0.782,96,0.283,98,0.335,99,0.335,100,0.377,103,0.353,104,0.299,105,0.353,106,0.299,112,0.321,114,0.766,116,0.65,117,1.56,122,0.264,123,2.211,128,0.234,129,1.595,132,0.335,135,0.339,137,0.291,141,1.096,142,2.784,143,0.847,145,0.242,147,0.602,148,0.176,149,0.793,150,0.511,151,0.309,152,0.231,154,0.173,155,0.524,156,1.032,158,1.139,161,1.606,168,0.353,169,0.803,170,0.25,173,0.663,174,0.299,180,0.636,181,0.321,182,0.803,185,0.214,192,0.989,203,0.283,204,0.72,207,0.824,210,0.707,213,1.135,215,0.353,216,0.27,222,0.353,227,0.184,229,0.225,230,1.221,233,1.997,242,0.732,243,1.378,244,0.321,245,0.299,246,0.513,247,0.335,248,0.377,249,1.135,250,0.377,251,0.377,252,0.732,253,0.353,254,0.377,255,0.25,256,0.321,257,0.377,258,0.276,259,0.733,260,0.65,268,0.847,276,0.65,285,1.293,286,0.907,287,1.096,289,0.684,292,0.264,310,1.098,312,0.335,317,0.6,318,0.686,323,0.299,325,0.353,327,0.299,328,0.65,329,0.321,330,0.503,332,0.238,333,0.479,341,0.189,344,1.066,346,0.673,347,0.291,348,0.27,349,0.321,350,0.41,352,0.321,355,0.534,356,0.998,357,0.353,358,0.353,362,0.321,363,0.684,369,0.309,370,1.293,374,0.494,386,0.377,389,2.08,392,0.25,406,0.6,407,0.65,409,0.321,410,0.321,411,0.321,412,0.321,413,0.321,414,0.321,415,0.801,416,0.321,417,0.321,418,0.321,419,0.321,420,0.321,427,0.494,430,0.219,433,0.732,436,1.134,438,1.176,440,0.27,441,0.907,442,0.321,445,0.685,449,0.264,450,0.685,454,0.536,466,0.55,468,0.335,469,0.65,470,0.685,471,0.477,472,0.28,473,0.299,476,0.442,477,1.556,483,0.216,487,0.564,491,2.107,492,0.27,498,0.707,500,1.013,513,0.25,514,1.134,515,0.524,517,2.002,522,0.353,525,1.293,553,0.353,555,0.309,557,0.808,558,0.623,559,0.416,560,0.377,561,0.416,562,0.353,563,0.65,564,0.685,565,0.564,566,0.416,567,0.377,568,0.353,569,0.99,570,0.234,571,0.808,572,0.377,573,0.377,574,0.416,575,0.416,576,0.808,577,0.416,578,1.177,579,0.335,580,1.134,581,1.177,582,0.808,583,0.416,584,0.416,585,1.177,586,2.211,587,0.564,588,0.581,589,1.205,590,0.335,591,0.353,592,0.353,593,0.259,594,0.416,595,0.808,596,1.379,597,0.377,598,0.321,599,0.733,600,0.808,601,0.416,602,0.416,603,0.291,604,0.416,605,0.416,606,0.416,607,0.536,608,0.685,609,1.038,610,0.808,611,0.732,612,0.335,613,0.416,614,0.416,615,0.416,616,0.254,617,0.335,618,1.526,619,0.732,620,0.335,621,0.808,622,0.416,623,0.353,624,0.907,625,0.353,626,0.377,627,0.416,628,0.416,629,0.416,630,1.176,631,0.808,632,1.177,633,1.177,634,2.169,635,2.748,636,0.808,637,0.808,638,0.808,639,0.808,640,1.857,641,0.416,642,0.377,643,1.293,644,0.808,645,0.808,646,0.416,647,0.416,648,0.416,649,0.416,650,0.808,651,0.416,652,0.808,653,0.623,654,0.377,655,0.808,656,0.276,657,0.416,658,0.416,659,0.377,660,0.416,661,1.573,662,0.416,663,0.416,664,0.283,665,0.416,666,0.847,667,1.857,668,0.732,669,0.416,670,1.067,671,0.377,672,0.808,673,0.416,674,0.377,675,0.416,676,0.416,677,0.555,678,0.377,679,0.377,680,0.377,681,0.353,682,0.377,683,0.808,684,0.416,685,0.416,686,0.416,687,0.377,688,0.377,689,0.416,690,0.309,691,0.416,692,0.416,693,0.416,694,0.27,695,0.27,696,0.808,697,0.309,698,0.377,699,0.416,700,0.416,701,0.416,702,0.416,703,1.526,704,0.416,705,0.207,706,0.416,707,0.335,708,0.732,709,0.377,710,0.377,711,0.321,712,0.416,713,0.416,714,0.808,715,0.732,716,0.416,717,0.564,718,0.377,719,0.416,720,0.335,721,0.416,722,0.377,723,0.283,724,0.416,725,0.416,726,0.416,727,0.998,728,0.685,729,0.309,730,0.513,731,0.875,732,0.875,733,0.377,734,0.685,735,0.6,736,0.321,737,0.564,738,0.808,739,0.283,740,0.309,741,0.416,742,0.416,743,0.416,744,0.808,745,0.416,746,0.416,747,0.335,748,0.416,749,0.377,750,1.067,751,0.416,752,0.321,753,0.335,754,0.416,755,0.299,756,0.353,757,0.353,758,1.838,759,0.732,760,0.321,761,0.416,762,0.416,763,0.536,764,0.182,765,0.353,766,1.383,767,0.353,768,0.353,769,0.416,770,0.416,771,0.353,772,0.65,773,0.513,774,1.177,775,0.808,776,0.353,777,0.416,778,0.416,779,0.416,780,0.416,781,0.416,782,0.416,783,0.416,784,0.353,785,0.416,786,0.377,787,0.416,788,0.153,789,0.6,790,0.416,791,0.219,792,0.503,793,0.416,794,0.416,795,0.321,796,0.254,797,0.353,798,0.732,799,0.732,800,0.416,801,0.309,802,0.65,803,0.377,804,0.283,805,0.732,806,0.416,807,0.335,808,0.353,809,0.377,810,0.353,811,0.416,812,0.416,813,0.377,814,0.377,815,0.377,816,0.321,817,0.416,818,0.377,819,0.416,820,0.416,821,0.416]],["component/72",[1,0.411]],["title/73-1",[791,36.242]],["name/73-1",[]],["text/73-1",[]],["component/73-1",[]],["title/73-2",[822,62.413]],["name/73-2",[]],["text/73-2",[]],["component/73-2",[]],["title/73-3",[823,62.413]],["name/73-3",[]],["text/73-3",[]],["component/73-3",[]],["title/73-4",[824,58.365]],["name/73-4",[]],["text/73-4",[]],["component/73-4",[]],["title/73-5",[75,12.21,318,15.104,464,28.49,824,28.49]],["name/73-5",[]],["text/73-5",[]],["component/73-5",[]],["title/73-6",[623,58.365]],["name/73-6",[]],["text/73-6",[]],["component/73-6",[]],["title/73-7",[505,43.759]],["name/73-7",[]],["text/73-7",[]],["component/73-7",[]],["title/73-8",[825,62.413]],["name/73-8",[]],["text/73-8",[]],["component/73-8",[]],["title/73-9",[27,34.717,76,41.06]],["name/73-9",[]],["text/73-9",[]],["component/73-9",[]],["title/73",[468,41.06,469,41.06]],["name/73",[468,1.115]],["text/73",[1,2.027,3,2.32,4,0.904,10,2.276,19,0.726,20,3.745,24,0.767,27,5.673,35,2.448,36,1.376,37,1.783,39,2.629,43,0.848,57,2.246,58,1.234,68,0.979,75,1.772,76,2.744,86,0.545,89,6.105,91,0.655,93,1.264,98,1.096,106,0.979,114,0.683,117,1.783,122,3.1,130,0.951,141,3.531,190,0.623,191,0.951,249,0.832,268,0.756,318,2.192,326,1.396,339,0.818,362,1.91,363,0.791,370,1.154,390,1.012,407,1.096,409,1.05,410,1.05,411,1.05,412,1.05,413,1.05,414,1.05,415,0.926,416,1.05,417,1.05,418,1.05,419,1.05,420,1.05,441,3.238,464,4.134,469,2.744,483,1.288,497,0.951,498,0.818,505,2.669,517,1.645,519,1.234,525,2.1,531,3.807,535,1.234,542,2.89,570,0.767,588,0.979,596,1.012,616,0.832,619,3.807,623,2.1,630,1.91,695,1.609,750,3.091,791,1.304,796,0.832,822,2.246,823,2.246,824,6.859,825,2.246,826,1.362,827,2.479,828,1.362,829,1.362,830,3.411,831,1.362,832,1.362,833,5.468,834,2.89,835,1.362,836,3.411,837,3.411,838,1.362,839,1.362,840,0.865,841,1.234,842,1.362,843,2.479,844,1.362,845,1.362,846,1.362,847,1.154,848,1.362,849,1.362,850,1.362,851,7.827,852,3.411,853,3.411,854,3.411,855,1.362,856,1.362,857,1.362,858,1.362,859,1.362,860,1.362,861,1.362,862,2.479,863,1.362,864,1.362,865,1.362,866,1.362,867,1.362,868,1.362,869,1.362,870,3.411,871,1.154,872,1.362,873,1.05,874,1.154,875,1.154,876,0.979,877,1.05,878,2.479,879,1.362,880,2.479,881,1.362,882,0.691,883,1.362,884,1.154,885,1.362,886,1.234]],["component/73",[1,0.411]],["title/74-1",[23,25.689]],["name/74-1",[]],["text/74-1",[]],["component/74-1",[]],["title/74-2",[475,42.095]],["name/74-2",[]],["text/74-2",[]],["component/74-2",[]],["title/74-3",[26,18.526]],["name/74-3",[]],["text/74-3",[]],["component/74-3",[]],["title/74-4",[334,23.488]],["name/74-4",[]],["text/74-4",[]],["component/74-4",[]],["title/74-5",[269,18.168]],["name/74-5",[]],["text/74-5",[]],["component/74-5",[]],["title/74-6",[887,25.347]],["name/74-6",[]],["text/74-6",[]],["component/74-6",[]],["title/74-7",[788,14.918,888,21.331,889,16.74]],["name/74-7",[]],["text/74-7",[]],["component/74-7",[]],["title/74-8",[15,18.782,341,23.138]],["name/74-8",[]],["text/74-8",[]],["component/74-8",[]],["title/74-9",[135,21.414,890,34.717]],["name/74-9",[]],["text/74-9",[]],["component/74-9",[]],["title/74",[475,31.192,477,24.281]],["name/74",[475,0.847]],["text/74",[1,0.706,8,1.447,15,0.877,16,0.933,19,1.27,26,1.093,35,2.039,67,1.793,75,1.929,84,2.159,86,1.627,93,2.324,108,1.546,122,1.514,124,1.304,128,1.342,135,1.705,147,1.603,149,2.76,150,2.303,154,0.992,161,2.607,167,1.714,168,2.323,176,2.695,190,1.09,230,3.533,269,1.072,329,1.837,333,1.652,338,2.322,341,1.08,343,1.714,345,2.159,346,1.362,350,3.184,354,1.546,355,1.08,367,2.439,395,1.917,430,1.254,438,1.837,440,1.546,445,2.019,475,5.001,476,2.223,477,4.967,478,1.77,480,2.398,481,3.131,482,3.018,555,1.77,616,1.456,698,2.159,717,1.664,764,1.042,788,0.877,882,1.209,888,2.138,889,0.984,891,2.383,892,2.159,893,1.546,894,1.484,895,1.582,896,1.238,897,2.159,898,2.019,899,2.383,900,2.288,901,2.159,902,2.383,903,2.383,904,2.383,905,2.383,906,1.917,907,2.383,908,1.917,909,2.383,910,2.383,911,2.383,912,2.477,913,1.591,914,2.383,915,0.962,916,1.061,917,2.019,918,2.019,919,2.019,920,1.917,921,2.019,922,2.019]],["component/74",[1,0.411]],["title/75-1",[23,25.689]],["name/75-1",[]],["text/75-1",[]],["component/75-1",[]],["title/75-2",[10,32.125]],["name/75-2",[]],["text/75-2",[]],["component/75-2",[]],["title/75-3",[148,21.589,923,41.06]],["name/75-3",[]],["text/75-3",[]],["component/75-3",[]],["title/75-4",[924,62.413]],["name/75-4",[]],["text/75-4",[]],["component/75-4",[]],["title/75",[164,40.649]],["name/75",[164,0.818]],["text/75",[0,0.898,1,0.984,8,0.858,10,2.225,13,2.686,15,0.486,16,0.517,19,2.542,20,1.818,33,1.5,35,2.686,43,0.822,56,1.017,67,1.063,69,0.766,75,1.944,93,1.519,105,1.118,108,0.857,114,1.209,122,0.839,128,0.743,129,3.669,135,0.554,141,0.779,142,2.468,146,1.683,148,0.558,149,1.727,150,0.572,153,4.598,154,1.985,155,2.156,156,1.581,157,0.822,158,4.09,160,1.082,161,3.3,162,2.864,163,2.661,164,4.181,165,5.123,166,2.864,167,0.949,168,2.087,169,0.695,173,1.871,176,0.67,177,1.995,178,1.961,179,2.561,181,1.017,206,1.79,210,0.792,216,1.563,229,0.713,244,1.017,246,0.839,255,0.792,256,1.017,258,1.599,285,1.118,313,1.196,317,0.981,318,0.593,320,0.839,323,0.949,326,0.743,343,0.949,346,0.754,348,0.857,350,0.67,355,0.598,360,0.949,361,0.949,363,1.399,367,0.792,374,2.506,376,2.156,377,2.864,390,3.046,391,1.79,415,0.898,432,0.857,435,1.017,440,1.563,472,0.887,483,1.727,487,1.683,488,3.16,508,2.26,512,0.949,558,1.017,596,0.981,599,0.822,611,1.196,711,1.017,728,1.118,789,2.468,796,0.807,804,0.898,873,1.017,876,0.949,890,0.898,896,1.252,924,3.011,925,1.32,926,1.118,927,0.839,928,1.32,929,1.32,930,1.196,931,1.118,932,1.32,933,1.017,934,1.32,935,0.949,936,0.779,937,1.32,938,2.409,939,1.196,940,1.32,941,1.732,942,1.196,943,0.981,944,3.046,945,1.017,946,1.017,947,0.616,948,0.922,949,1.196,950,1.118,951,1.062,952,1.118,953,0.981,954,1.118,955,1.32,956,1.32,957,1.32,958,0.839,959,1.118,960,1.32,961,1.118,962,1.32,963,1.32,964,1.196,965,1.32]],["component/75",[1,0.411]],["title/76",[158,31.817]],["name/76",[158,0.64]],["text/76",[1,1.099,8,0.764,10,1,11,1.698,18,3.144,19,3.115,20,2.684,24,2.089,25,1.725,26,1.319,35,1.076,53,1.652,75,1.347,79,1.725,86,0.859,91,2.357,111,1.31,121,1.458,125,1.335,130,4.614,131,3.144,145,1.245,153,1.391,156,3.441,158,4.26,160,0.963,161,1.052,164,1.265,169,1.128,182,1.128,186,1.817,191,1.498,192,1.143,210,1.287,216,1.391,309,1.593,320,1.362,323,2.668,376,1.391,389,2.059,409,1.652,410,1.652,411,1.652,412,1.652,413,1.652,414,1.652,415,1.458,416,1.652,417,1.652,418,1.652,419,1.652,420,1.652,427,2.268,430,1.128,436,1.593,450,1.817,471,1.265,472,1.44,477,1.02,480,1.265,483,2.549,486,1.725,494,4.505,598,1.652,609,1.458,656,1.423,720,1.725,722,1.943,759,1.943,791,1.128,796,3.572,897,1.943,898,3.144,900,1.207,931,3.144,958,1.362,966,4.702,968,1.817,969,1.498,970,2.144,971,3.711,972,2.144,973,2.144,974,1.335,975,2.144,976,2.144,977,4.919,978,1.725,979,1.943,980,1.817,981,2.144,982,1.391,983,1.498,984,2.144,985,1.593,986,3.054,987,2.756,988,1.817,989,1.652,990,1.817,991,2.144,992,2.144,993,2.144,994,1.943,995,2.144,996,1.943,997,2.144,998,1.943,999,2.144,1000,1.943,1001,2.144,1002,1.817,1003,1.817,1004,2.144,1005,2.144,1006,2.144]],["component/76",[1,0.411]],["title/77-1",[23,25.689]],["name/77-1",[]],["text/77-1",[]],["component/77-1",[]],["title/77-2",[7,23.924,360,29.153,1007,40.542]],["name/77-2",[]],["text/77-2",[]],["component/77-2",[]],["title/77",[35,20.341,36,22.498,37,29.153]],["name/77",[34,1.175]],["text/77",[2,4.393,4,2.12,7,3.496,10,1.49,15,1.175,17,1.299,18,1.531,20,0.989,21,2.727,26,0.859,30,2.029,32,1.453,34,4.393,35,4.792,36,4.769,37,2.297,38,1.531,39,2.462,40,3.454,41,1.392,45,1.049,46,1.637,47,1.637,48,1.172,51,1.342,55,1.299,56,1.392,61,1.392,67,0.797,68,1.299,69,1.854,70,1.637,75,0.656,76,1.453,77,1.637,78,1.637,79,2.569,80,4.247,81,1.637,82,1.299,83,1.637,101,1.453,108,1.172,114,0.906,122,1.148,129,1.049,135,2.175,145,1.049,146,1.262,149,3.078,150,1.862,160,0.812,161,1.568,169,3.117,200,2.462,207,0.975,210,1.084,211,1.172,229,0.975,256,1.392,286,2.462,315,1.531,316,1.299,320,1.148,322,1.531,326,1.017,352,1.392,360,1.299,427,1.952,430,0.951,442,1.392,449,1.148,465,2.569,513,1.084,514,4.4,515,2.073,517,4.696,540,1.826,562,2.706,565,1.262,568,1.531,589,2.073,755,1.299,795,1.392,807,2.569,871,1.531,877,2.462,927,3.294,936,1.066,959,1.531,964,1.637,978,1.453,986,1.989,1008,1.807,1009,1.807,1010,1.453,1011,2.462,1012,1.453,1013,3.729,1014,2.706,1015,1.637,1016,2.462,1017,1.172,1018,0.975,1019,1.807,1020,1.807,1021,1.453,1022,2.462,1023,1.531,1024,2.894,1025,2.894,1026,2.894,1027,1.807,1028,1.453,1029,1.531,1030,1.531]],["component/77",[1,0.411]],["title/78-1",[23,25.689]],["name/78-1",[]],["text/78-1",[]],["component/78-1",[]],["title/78-2",[180,37.19]],["name/78-2",[]],["text/78-2",[]],["component/78-2",[]],["title/78-3",[334,23.488]],["name/78-3",[]],["text/78-3",[]],["component/78-3",[]],["title/78-4",[269,18.168]],["name/78-4",[]],["text/78-4",[]],["component/78-4",[]],["title/78-5",[887,25.347]],["name/78-5",[]],["text/78-5",[]],["component/78-5",[]],["title/78-6",[788,18.782,889,21.076]],["name/78-6",[]],["text/78-6",[]],["component/78-6",[]],["title/78-7",[15,18.782,341,23.138]],["name/78-7",[]],["text/78-7",[]],["component/78-7",[]],["title/78-8",[1031,49.533]],["name/78-8",[]],["text/78-8",[]],["component/78-8",[]],["title/78-9",[334,23.488]],["name/78-9",[]],["text/78-9",[]],["component/78-9",[]],["title/78-10",[269,18.168]],["name/78-10",[]],["text/78-10",[]],["component/78-10",[]],["title/78-11",[887,25.347]],["name/78-11",[]],["text/78-11",[]],["component/78-11",[]],["title/78-12",[15,18.782,341,23.138]],["name/78-12",[]],["text/78-12",[]],["component/78-12",[]],["title/78-13",[1032,51.167]],["name/78-13",[]],["text/78-13",[]],["component/78-13",[]],["title/78-14",[334,23.488]],["name/78-14",[]],["text/78-14",[]],["component/78-14",[]],["title/78-15",[269,18.168]],["name/78-15",[]],["text/78-15",[]],["component/78-15",[]],["title/78-16",[887,25.347]],["name/78-16",[]],["text/78-16",[]],["component/78-16",[]],["title/78-17",[15,18.782,341,23.138]],["name/78-17",[]],["text/78-17",[]],["component/78-17",[]],["title/78-18",[318,30.942]],["name/78-18",[]],["text/78-18",[]],["component/78-18",[]],["title/78-19",[334,23.488]],["name/78-19",[]],["text/78-19",[]],["component/78-19",[]],["title/78-20",[269,18.168]],["name/78-20",[]],["text/78-20",[]],["component/78-20",[]],["title/78-21",[887,25.347]],["name/78-21",[]],["text/78-21",[]],["component/78-21",[]],["title/78-22",[788,18.782,889,21.076]],["name/78-22",[]],["text/78-22",[]],["component/78-22",[]],["title/78-23",[15,18.782,341,23.138]],["name/78-23",[]],["text/78-23",[]],["component/78-23",[]],["title/78-24",[509,42.095]],["name/78-24",[]],["text/78-24",[]],["component/78-24",[]],["title/78-25",[334,23.488]],["name/78-25",[]],["text/78-25",[]],["component/78-25",[]],["title/78-26",[269,18.168]],["name/78-26",[]],["text/78-26",[]],["component/78-26",[]],["title/78-27",[887,25.347]],["name/78-27",[]],["text/78-27",[]],["component/78-27",[]],["title/78-28",[788,18.782,889,21.076]],["name/78-28",[]],["text/78-28",[]],["component/78-28",[]],["title/78-29",[1033,32.768]],["name/78-29",[]],["text/78-29",[]],["component/78-29",[]],["title/78",[180,37.19]],["name/78",[123,1.115]],["text/78",[0,0.486,1,0.212,6,1.808,8,2.039,11,0.889,12,1.769,14,3.232,15,1.253,16,1.333,19,1.035,20,0.744,21,0.454,27,0.486,28,0.486,30,1.234,32,0.575,33,1.209,69,1.128,75,1.074,86,0.778,93,3.672,108,0.464,111,0.437,114,0.359,133,1.231,141,0.422,145,1.128,147,0.976,148,0.821,150,1.073,152,0.754,153,1.26,154,0.808,155,1.605,156,1.407,157,1.842,158,1.367,160,1.111,168,1.294,169,0.715,180,3.471,181,1.047,182,3.143,186,0.605,189,0.337,190,0.327,196,2.682,205,0.924,207,0.386,210,1.166,227,1.091,238,1.093,243,0.863,255,0.816,258,0.902,269,1.637,309,0.531,310,2.128,318,3.573,323,2.743,329,0.551,330,0.846,339,1.166,344,0.499,361,0.514,363,0.789,392,0.816,430,0.376,435,1.047,454,0.902,456,0.647,466,0.486,471,0.802,473,3.015,477,0.34,497,0.499,498,0.816,499,0.575,500,0.902,501,0.551,502,0.575,505,0.454,509,3.162,511,3.162,538,0.647,547,0.514,589,0.464,593,0.846,607,1.642,609,1.321,626,0.647,666,0.514,690,0.531,705,2.417,715,0.647,728,0.605,731,2.529,737,0.499,739,0.486,763,0.474,764,0.85,789,0.531,792,0.846,801,0.531,802,0.575,804,0.924,882,0.363,888,1.022,889,0.802,898,0.605,912,2.271,913,1.642,915,1.539,916,0.865,927,0.863,935,0.514,936,3.054,941,0.514,945,0.551,947,0.906,953,0.531,958,0.454,969,0.949,977,0.486,988,0.605,1021,0.575,1031,2.448,1032,1.443,1034,1.359,1035,1.359,1036,0.715,1037,0.605,1038,0.575,1039,0.715,1040,0.715,1041,0.715,1042,0.715,1043,0.715,1044,0.647,1045,0.605,1046,0.715,1047,0.715,1048,0.715,1049,0.647,1050,0.605,1051,0.715,1052,0.499,1053,0.605,1054,1.397,1055,2.38,1056,1.691,1057,0.715,1058,0.715,1059,0.715,1060,2.507,1061,4.117,1062,1.88,1063,1.359,1064,2.128,1065,0.715,1066,0.715,1067,1.942,1068,0.551,1069,0.715,1070,0.605,1071,3.814,1072,2.473,1073,0.897,1074,1.359,1075,0.715,1076,0.647,1077,1.047,1078,0.575,1079,0.575,1080,0.575,1081,0.575,1082,0.531,1083,0.575,1084,0.605,1085,0.605,1086,0.551,1087,1.231,1088,1.231,1089,0.531,1090,0.575,1091,1.646,1092,0.715,1093,0.715,1094,0.715,1095,0.715,1096,0.605,1097,0.551,1098,0.551,1099,0.715,1100,2.259,1101,2.365,1102,0.715,1103,0.715,1104,0.83,1105,1.359,1106,0.715,1107,0.715]],["component/78",[1,0.411]],["title/79-1",[23,25.689]],["name/79-1",[]],["text/79-1",[]],["component/79-1",[]],["title/79-2",[213,42.095]],["name/79-2",[]],["text/79-2",[]],["component/79-2",[]],["title/79-3",[269,18.168]],["name/79-3",[]],["text/79-3",[]],["component/79-3",[]],["title/79-4",[887,25.347]],["name/79-4",[]],["text/79-4",[]],["component/79-4",[]],["title/79-5",[232,36.704,511,31.192]],["name/79-5",[]],["text/79-5",[]],["component/79-5",[]],["title/79-6",[8,18.179,312,41.06]],["name/79-6",[]],["text/79-6",[]],["component/79-6",[]],["title/79-7",[511,31.192,1108,46.248]],["name/79-7",[]],["text/79-7",[]],["component/79-7",[]],["title/79-8",[788,18.782,889,21.076]],["name/79-8",[]],["text/79-8",[]],["component/79-8",[]],["title/79-9",[1109,43.759]],["name/79-9",[]],["text/79-9",[]],["component/79-9",[]],["title/79-10",[1110,68.884]],["name/79-10",[]],["text/79-10",[]],["component/79-10",[]],["title/79-11",[232,49.533]],["name/79-11",[]],["text/79-11",[]],["component/79-11",[]],["title/79-12",[213,31.192,1111,46.248]],["name/79-12",[]],["text/79-12",[]],["component/79-12",[]],["title/79-13",[1112,37.696]],["name/79-13",[]],["text/79-13",[]],["component/79-13",[]],["title/79",[213,42.095]],["name/79",[213,0.847]],["text/79",[1,0.701,6,1.022,7,0.987,8,3.06,10,0.78,11,1.365,12,0.463,13,2.528,16,0.926,17,0.64,19,1.26,20,1.632,21,0.566,24,1.332,31,1.203,35,1.187,67,0.738,69,0.971,71,0.661,75,0.607,86,0.67,93,3.578,101,1.903,108,0.578,113,0.807,124,0.487,129,1.373,145,0.971,147,0.66,148,0.707,149,1.229,150,1.026,152,0.928,153,1.085,154,3.866,156,1.683,157,1.042,158,0.411,159,0.807,160,0.4,161,1.161,162,0.622,163,0.578,164,0.525,165,0.554,166,0.622,167,0.64,168,1.305,169,0.468,173,0.501,174,0.64,182,0.468,185,0.457,191,0.622,196,0.525,209,0.606,212,0.525,213,5.677,214,0.807,215,0.754,216,0.578,217,0.807,227,0.393,229,0.903,232,6.361,255,1.42,269,1.065,292,0.566,320,0.566,326,0.501,334,0.807,346,1.705,363,0.517,390,1.242,430,0.468,449,0.566,474,0.606,511,2.996,569,0.578,579,0.716,599,0.554,603,1.168,620,0.716,695,0.578,723,2.746,749,0.807,752,0.686,764,0.389,808,0.754,876,1.701,888,0.468,889,1.854,906,0.716,912,4.181,913,1.385,915,0.675,916,0.396,935,1.203,947,1.103,948,0.622,986,1.042,1054,1.203,1055,1.346,1056,0.956,1062,1.895,1064,1.701,1068,0.686,1091,6.908,1108,2.143,1109,0.566,1111,0.807,1113,0.89,1114,0.89,1115,0.89,1116,0.89,1117,0.89,1118,0.622,1119,0.89,1120,0.661,1121,0.89,1122,0.89,1123,0.89,1124,0.89,1125,0.807,1126,0.661,1127,0.89,1128,0.807,1129,0.807,1130,0.89,1131,0.754,1132,0.89,1133,1.701,1134,1.242,1135,0.807,1136,0.716,1137,0.89,1138,0.89,1139,0.661,1140,0.89,1141,0.716,1142,0.89,1143,0.807,1144,0.89,1145,0.89,1146,1.673,1147,4.07,1148,4.144,1149,0.89,1150,0.606,1151,0.716,1152,2.726,1153,0.89,1154,1.515,1155,0.89,1156,0.89,1157,1.673,1158,1.203,1159,0.89,1160,1.673,1161,0.89,1162,0.89]],["component/79",[1,0.411]],["title/80-1",[23,25.689]],["name/80-1",[]],["text/80-1",[]],["component/80-1",[]],["title/80-2",[26,18.526]],["name/80-2",[]],["text/80-2",[]],["component/80-2",[]],["title/80-3",[334,23.488]],["name/80-3",[]],["text/80-3",[]],["component/80-3",[]],["title/80-4",[269,18.168]],["name/80-4",[]],["text/80-4",[]],["component/80-4",[]],["title/80-5",[887,25.347]],["name/80-5",[]],["text/80-5",[]],["component/80-5",[]],["title/80-6",[788,25.347]],["name/80-6",[]],["text/80-6",[]],["component/80-6",[]],["title/80-7",[1033,32.768]],["name/80-7",[]],["text/80-7",[]],["component/80-7",[]],["title/80",[350,25.904,477,24.281]],["name/80",[920,1.115]],["text/80",[1,2.868,8,1.825,11,1.441,16,2.007,26,0.847,45,3.763,75,1.143,86,2.595,93,3.587,135,1.321,147,2.557,148,1.332,150,1.366,154,1.31,160,1.414,185,2.632,189,1.483,190,2.345,227,1.389,269,1.97,333,1.28,338,4.699,350,1.598,428,2.09,432,2.043,475,3.132,477,3.083,616,1.924,677,1.483,764,1.377,791,1.657,792,1.961,882,2.601,893,2.043,894,1.961,895,2.09,896,1.636,912,2.39,913,2.007,915,1.27,916,1.402,920,7.09,947,1.468,1073,1.454,1101,4.512,1163,2.09,1164,3.149,1165,5.08,1166,2.264,1167,3.149,1168,2.886,1169,3.149,1170,3.149]],["component/80",[1,0.411]],["title/81-1",[23,25.689]],["name/81-1",[]],["text/81-1",[]],["component/81-1",[]],["title/81-2",[26,18.526]],["name/81-2",[]],["text/81-2",[]],["component/81-2",[]],["title/81-3",[334,23.488]],["name/81-3",[]],["text/81-3",[]],["component/81-3",[]],["title/81-4",[269,18.168]],["name/81-4",[]],["text/81-4",[]],["component/81-4",[]],["title/81-5",[887,25.347]],["name/81-5",[]],["text/81-5",[]],["component/81-5",[]],["title/81-6",[788,25.347]],["name/81-6",[]],["text/81-6",[]],["component/81-6",[]],["title/81-7",[1033,32.768]],["name/81-7",[]],["text/81-7",[]],["component/81-7",[]],["title/81",[170,15.048,259,15.612,350,12.723,477,11.926,478,18.622,480,14.794]],["name/81",[919,1.175]],["text/81",[1,2.649,8,1.753,11,0.986,16,1.459,26,0.579,45,2.858,75,0.782,86,1.971,91,1.79,93,3.422,124,1.179,135,0.904,147,2.614,148,0.911,150,0.934,154,0.897,160,0.968,170,1.293,185,3.011,189,1.014,190,1.704,204,1.316,209,1.465,227,0.95,259,1.341,269,1.547,289,1.251,333,1.515,338,5.112,350,1.093,428,1.43,432,1.398,475,2.276,477,3.7,478,1.6,480,1.271,607,3.892,616,1.316,677,1.754,764,0.942,791,1.133,792,3.065,882,2.498,893,1.398,894,1.341,895,1.43,896,1.119,912,3.089,913,1.459,915,1.503,916,0.959,919,6.969,920,1.733,947,1.005,1073,0.995,1101,4.918,1139,1.6,1163,1.43,1165,4.506,1166,2.679,1168,2.097,1171,3.959,1172,2.871,1173,3.725,1174,2.997,1175,1.825,1176,3.725,1177,2.997,1178,4.46]],["component/81",[1,0.411]],["title/82-1",[23,25.689]],["name/82-1",[]],["text/82-1",[]],["component/82-1",[]],["title/82-2",[26,18.526]],["name/82-2",[]],["text/82-2",[]],["component/82-2",[]],["title/82-3",[334,23.488]],["name/82-3",[]],["text/82-3",[]],["component/82-3",[]],["title/82-4",[269,18.168]],["name/82-4",[]],["text/82-4",[]],["component/82-4",[]],["title/82-5",[887,25.347]],["name/82-5",[]],["text/82-5",[]],["component/82-5",[]],["title/82-6",[788,25.347]],["name/82-6",[]],["text/82-6",[]],["component/82-6",[]],["title/82-7",[1033,32.768]],["name/82-7",[]],["text/82-7",[]],["component/82-7",[]],["title/82",[170,15.048,259,15.612,350,12.723,477,11.926,478,18.622,479,21.242]],["name/82",[918,1.175]],["text/82",[1,2.69,8,1.803,11,1.023,16,1.507,26,0.601,45,2.94,75,0.812,86,2.027,91,1.849,93,3.567,124,1.224,135,0.938,147,2.674,148,0.946,150,0.97,154,0.931,160,1.004,170,2.309,185,3.088,189,1.053,190,1.76,227,0.987,259,1.392,269,1.586,289,1.298,333,1.564,338,5.002,350,1.135,428,1.484,432,1.451,475,2.351,477,3.522,478,1.661,479,1.895,480,1.319,607,3.992,616,1.366,677,1.812,764,0.978,791,1.176,792,2.396,882,1.952,893,1.451,894,1.392,895,1.484,896,1.162,912,3.161,913,1.507,915,1.552,916,0.995,918,7.093,947,1.043,1073,1.033,1101,4.787,1139,1.661,1163,1.484,1165,4.09,1166,2.766,1168,2.166,1171,4.073,1172,2.965,1174,3.095,1175,1.895,1177,3.095,1178,3.486,1179,3.847,1180,3.847]],["component/82",[1,0.411]],["title/83-1",[23,25.689]],["name/83-1",[]],["text/83-1",[]],["component/83-1",[]],["title/83-2",[26,18.526]],["name/83-2",[]],["text/83-2",[]],["component/83-2",[]],["title/83-3",[334,23.488]],["name/83-3",[]],["text/83-3",[]],["component/83-3",[]],["title/83-4",[269,18.168]],["name/83-4",[]],["text/83-4",[]],["component/83-4",[]],["title/83-5",[887,25.347]],["name/83-5",[]],["text/83-5",[]],["component/83-5",[]],["title/83-6",[788,25.347]],["name/83-6",[]],["text/83-6",[]],["component/83-6",[]],["title/83-7",[1033,32.768]],["name/83-7",[]],["text/83-7",[]],["component/83-7",[]],["title/83",[350,20.575,367,24.336,477,19.286]],["name/83",[395,1.115]],["text/83",[1,2.861,8,1.816,11,1.431,16,1.997,26,0.841,45,3.746,75,1.136,86,2.584,93,3.578,135,1.312,147,2.545,148,1.323,150,1.356,154,1.302,160,1.405,185,2.617,189,1.473,190,2.332,227,1.38,269,1.962,333,1.272,338,4.683,350,1.587,367,1.877,395,7.068,428,2.076,432,2.03,475,3.115,477,3.069,616,1.911,677,1.473,764,1.368,791,1.646,792,1.948,882,2.587,893,2.03,894,1.948,895,2.076,896,1.625,912,2.377,913,1.997,915,1.262,916,1.392,947,1.459,1073,1.445,1101,4.499,1163,2.076,1165,5.06,1166,2.249,1168,2.87,1181,3.128,1182,3.128,1183,3.128,1184,3.128]],["component/83",[1,0.411]],["title/84-1",[23,25.689]],["name/84-1",[]],["text/84-1",[]],["component/84-1",[]],["title/84-2",[26,18.526]],["name/84-2",[]],["text/84-2",[]],["component/84-2",[]],["title/84-3",[334,23.488]],["name/84-3",[]],["text/84-3",[]],["component/84-3",[]],["title/84-4",[269,18.168]],["name/84-4",[]],["text/84-4",[]],["component/84-4",[]],["title/84-5",[887,25.347]],["name/84-5",[]],["text/84-5",[]],["component/84-5",[]],["title/84-6",[788,25.347]],["name/84-6",[]],["text/84-6",[]],["component/84-6",[]],["title/84-7",[1033,32.768]],["name/84-7",[]],["text/84-7",[]],["component/84-7",[]],["title/84",[367,24.336,477,19.286,482,30.115]],["name/84",[922,1.175]],["text/84",[1,2.728,8,1.646,11,3.516,13,2.602,16,1.81,26,0.747,45,3.446,75,1.008,86,2.377,93,3.412,135,1.165,147,2.342,148,1.175,150,1.204,154,1.156,160,1.247,170,2.774,173,1.564,185,2.373,189,1.308,190,2.115,227,1.225,269,1.825,333,1.129,338,5.027,339,3.563,367,1.667,428,1.843,432,1.802,475,2.824,477,2.199,482,2.063,546,2.353,616,1.697,677,1.308,764,1.215,791,1.461,792,1.729,882,2.346,893,1.802,894,1.729,895,1.843,896,1.443,912,2.155,913,1.81,915,1.12,916,1.236,922,7.029,947,1.295,1018,1.499,1073,1.283,1101,4.271,1163,1.843,1165,4.707,1168,2.602,1185,2.516,1186,1.94,1187,2.777,1188,3.916,1189,2.353,1190,2.777,1191,2.777,1192,2.777]],["component/84",[1,0.411]],["title/85-1",[23,25.689]],["name/85-1",[]],["text/85-1",[]],["component/85-1",[]],["title/85-2",[26,18.526]],["name/85-2",[]],["text/85-2",[]],["component/85-2",[]],["title/85-3",[334,23.488]],["name/85-3",[]],["text/85-3",[]],["component/85-3",[]],["title/85-4",[269,18.168]],["name/85-4",[]],["text/85-4",[]],["component/85-4",[]],["title/85-5",[887,25.347]],["name/85-5",[]],["text/85-5",[]],["component/85-5",[]],["title/85-6",[788,25.347]],["name/85-6",[]],["text/85-6",[]],["component/85-6",[]],["title/85-7",[1033,32.768]],["name/85-7",[]],["text/85-7",[]],["component/85-7",[]],["title/85",[350,20.575,476,22.186,477,19.286]],["name/85",[917,1.175]],["text/85",[1,2.868,8,1.825,11,1.441,16,2.007,26,0.847,45,3.763,75,1.143,86,2.595,93,3.587,135,1.321,147,2.557,148,1.332,150,1.366,154,1.31,160,1.414,185,2.632,189,1.483,190,2.345,227,1.389,269,1.97,333,1.28,338,4.699,350,1.598,428,2.09,432,2.043,475,3.132,476,1.723,477,2.438,616,1.924,677,1.483,764,1.377,791,1.657,792,1.961,882,2.601,893,2.043,894,1.961,895,2.09,896,1.636,912,2.39,913,2.007,915,1.27,916,1.402,917,7.468,947,1.468,1073,1.454,1101,4.512,1163,2.09,1165,5.08,1166,2.264,1168,2.886,1193,3.149,1194,2.853,1195,3.149,1196,3.149]],["component/85",[1,0.411]],["title/86-1",[23,25.689]],["name/86-1",[]],["text/86-1",[]],["component/86-1",[]],["title/86-2",[26,18.526]],["name/86-2",[]],["text/86-2",[]],["component/86-2",[]],["title/86-3",[334,23.488]],["name/86-3",[]],["text/86-3",[]],["component/86-3",[]],["title/86-4",[269,18.168]],["name/86-4",[]],["text/86-4",[]],["component/86-4",[]],["title/86-5",[887,25.347]],["name/86-5",[]],["text/86-5",[]],["component/86-5",[]],["title/86-6",[788,25.347]],["name/86-6",[]],["text/86-6",[]],["component/86-6",[]],["title/86-7",[1033,32.768]],["name/86-7",[]],["text/86-7",[]],["component/86-7",[]],["title/86",[476,22.186,477,19.286,482,30.115]],["name/86",[921,1.175]],["text/86",[1,2.728,8,1.646,11,3.516,13,2.602,16,1.81,26,0.747,45,3.446,75,1.008,86,2.377,93,3.412,135,1.165,147,2.342,148,1.175,150,1.204,154,1.156,160,1.247,170,2.774,185,2.373,189,1.308,190,2.115,227,1.225,229,1.499,269,1.825,333,1.129,338,5.027,339,3.563,428,1.843,432,1.802,475,2.824,476,1.52,477,2.199,482,2.063,546,2.353,616,1.697,677,1.308,764,1.215,791,1.461,792,1.729,882,2.346,893,1.802,894,1.729,895,1.843,896,1.443,912,2.155,913,1.81,915,1.12,916,1.236,921,7.029,947,1.295,1018,1.499,1073,1.283,1101,4.271,1163,1.843,1165,4.707,1168,2.602,1185,2.516,1186,1.94,1188,3.916,1189,2.353,1197,2.777,1198,2.777,1199,2.777,1200,2.777]],["component/86",[1,0.411]],["title/87-1",[23,25.689]],["name/87-1",[]],["text/87-1",[]],["component/87-1",[]],["title/87-2",[26,18.526]],["name/87-2",[]],["text/87-2",[]],["component/87-2",[]],["title/87-3",[334,23.488]],["name/87-3",[]],["text/87-3",[]],["component/87-3",[]],["title/87-4",[269,18.168]],["name/87-4",[]],["text/87-4",[]],["component/87-4",[]],["title/87-5",[887,25.347]],["name/87-5",[]],["text/87-5",[]],["component/87-5",[]],["title/87-6",[788,25.347]],["name/87-6",[]],["text/87-6",[]],["component/87-6",[]],["title/87-7",[1033,32.768]],["name/87-7",[]],["text/87-7",[]],["component/87-7",[]],["title/87",[477,24.281,481,39.337]],["name/87",[481,1.069]],["text/87",[1,2.636,8,1.857,11,1.063,16,1.558,26,0.625,45,3.026,75,0.844,86,2.087,91,1.911,93,3.523,124,1.272,135,0.975,147,2.737,148,0.983,150,1.008,154,0.967,160,1.044,185,3.169,189,1.095,190,1.82,227,1.026,269,1.628,289,1.349,333,1.617,338,5.086,428,1.543,432,1.508,475,2.43,477,3.597,481,6.858,607,4.096,616,1.42,677,1.873,764,1.017,791,1.223,792,2.477,882,2.018,893,1.508,894,1.447,895,1.543,896,1.208,912,3.235,913,1.558,915,1.605,916,1.035,947,1.084,1073,1.074,1101,4.849,1139,1.727,1163,1.543,1165,4.198,1166,2.86,1168,2.239,1171,4.193,1172,3.065,1174,3.199,1177,3.199,1201,3.977,1202,2.324,1203,3.977,1204,3.977]],["component/87",[1,0.411]],["title/88-1",[23,25.689]],["name/88-1",[]],["text/88-1",[]],["component/88-1",[]],["title/88-2",[26,18.526]],["name/88-2",[]],["text/88-2",[]],["component/88-2",[]],["title/88-3",[334,23.488]],["name/88-3",[]],["text/88-3",[]],["component/88-3",[]],["title/88-4",[269,18.168]],["name/88-4",[]],["text/88-4",[]],["component/88-4",[]],["title/88-5",[887,25.347]],["name/88-5",[]],["text/88-5",[]],["component/88-5",[]],["title/88-6",[788,25.347]],["name/88-6",[]],["text/88-6",[]],["component/88-6",[]],["title/88-7",[1033,32.768]],["name/88-7",[]],["text/88-7",[]],["component/88-7",[]],["title/88",[477,24.281,480,30.121]],["name/88",[480,0.818]],["text/88",[1,2.535,8,1.735,11,3.006,13,1.196,16,1.442,26,0.571,45,2.828,75,0.772,86,1.951,91,1.769,93,3.404,124,1.163,135,0.891,147,2.592,148,0.899,150,0.922,154,0.884,160,0.954,170,1.275,185,2.983,189,1.001,190,1.684,227,0.938,269,1.532,289,1.234,333,1.497,338,5.536,339,3.943,428,1.41,432,1.379,475,2.25,477,3.423,480,5.05,607,3.856,616,1.299,677,1.734,764,0.929,791,1.118,792,2.293,882,1.868,893,1.379,894,1.323,895,1.41,896,1.104,912,3.063,913,1.442,915,1.485,916,0.946,947,0.991,1073,0.981,1101,4.703,1139,1.578,1163,1.41,1165,3.951,1168,2.073,1171,3.918,1172,2.837,1174,2.962,1175,1.8,1177,2.962,1188,4.922,1189,3.119,1205,3.682,1206,3.682,1207,3.682]],["component/88",[1,0.411]],["title/89-1",[23,25.689]],["name/89-1",[]],["text/89-1",[]],["component/89-1",[]],["title/89-2",[26,18.526]],["name/89-2",[]],["text/89-2",[]],["component/89-2",[]],["title/89-3",[334,23.488]],["name/89-3",[]],["text/89-3",[]],["component/89-3",[]],["title/89-4",[269,18.168]],["name/89-4",[]],["text/89-4",[]],["component/89-4",[]],["title/89-5",[887,25.347]],["name/89-5",[]],["text/89-5",[]],["component/89-5",[]],["title/89-6",[788,18.782,889,21.076]],["name/89-6",[]],["text/89-6",[]],["component/89-6",[]],["title/89-7",[15,18.782,341,23.138]],["name/89-7",[]],["text/89-7",[]],["component/89-7",[]],["title/89-8",[1033,32.768]],["name/89-8",[]],["text/89-8",[]],["component/89-8",[]],["title/89-9",[1208,37.696]],["name/89-9",[]],["text/89-9",[]],["component/89-9",[]],["title/89",[489,53.086]],["name/89",[489,1.069]],["text/89",[8,2.348,10,0.745,13,3.416,15,0.588,16,1.122,26,0.43,35,0.802,43,0.995,67,1.264,75,2.203,86,0.64,91,1.376,92,1.612,93,2.247,94,4.205,114,1.437,129,0.928,135,0.67,141,0.943,147,1.535,148,0.676,149,1.488,156,3.137,158,3.758,161,1.91,162,1.116,163,1.037,164,0.943,168,2.074,169,2.871,170,5.352,173,0.9,175,1.286,176,0.811,177,0.959,178,1.69,185,0.821,212,0.943,216,1.037,223,1.69,224,1.232,225,1.232,229,1.546,233,1.526,249,0.977,259,2.423,269,1.25,327,1.149,333,0.65,339,1.719,341,0.724,346,0.913,355,1.298,363,2.259,374,4.029,427,0.977,430,0.841,449,1.015,472,3.185,483,1.488,489,7.188,569,1.037,591,1.354,599,0.995,609,1.948,677,1.349,711,2.999,717,1.116,739,1.948,764,0.699,788,0.588,888,0.841,889,0.66,890,1.087,912,1.815,913,1.857,915,1.155,916,0.711,946,1.232,948,2,954,2.426,987,1.187,1003,1.354,1018,0.863,1037,2.426,1045,1.354,1089,1.187,1209,1.232,1210,6.594,1211,1.948,1212,2.426,1213,1.948,1214,1.286,1215,1.116,1216,2.864,1217,1.598,1218,5.457,1219,1.286,1220,1.598,1221,1.598,1222,1.598,1223,3.711,1224,1.598,1225,1.448,1226,1.448,1227,1.598,1228,1.061,1229,1.598,1230,1.598]],["component/89",[1,0.411]],["title/90-1",[23,25.689]],["name/90-1",[]],["text/90-1",[]],["component/90-1",[]],["title/90-2",[26,18.526]],["name/90-2",[]],["text/90-2",[]],["component/90-2",[]],["title/90-3",[334,23.488]],["name/90-3",[]],["text/90-3",[]],["component/90-3",[]],["title/90-4",[269,18.168]],["name/90-4",[]],["text/90-4",[]],["component/90-4",[]],["title/90-5",[887,25.347]],["name/90-5",[]],["text/90-5",[]],["component/90-5",[]],["title/90-6",[788,18.782,889,21.076]],["name/90-6",[]],["text/90-6",[]],["component/90-6",[]],["title/90-7",[15,18.782,341,23.138]],["name/90-7",[]],["text/90-7",[]],["component/90-7",[]],["title/90-8",[1033,32.768]],["name/90-8",[]],["text/90-8",[]],["component/90-8",[]],["title/90-9",[1208,37.696]],["name/90-9",[]],["text/90-9",[]],["component/90-9",[]],["title/90",[165,42.896]],["name/90",[165,0.863]],["text/90",[1,0.342,8,1.915,10,1.384,13,2.748,15,0.425,16,0.835,19,0.615,20,0.632,26,0.311,35,0.579,67,0.94,75,1.953,86,0.462,91,1.024,92,1.2,93,2.156,94,1.642,95,1.414,111,0.706,114,1.489,122,0.734,124,0.632,125,0.719,128,0.65,129,0.67,135,0.484,141,0.681,145,1.237,147,1.926,148,0.901,149,1.542,151,0.858,154,0.887,155,2.395,156,3.429,158,3.191,161,1.456,162,0.807,163,0.749,164,1.257,165,5.64,168,1.891,169,1.561,170,4.147,171,0.978,172,2.514,173,2.434,176,0.586,177,0.693,178,1.257,179,4.144,185,0.593,192,0.615,206,5.557,209,1.449,212,0.681,216,0.749,223,1.257,224,0.89,225,0.89,233,1.581,249,1.302,268,0.641,269,0.973,289,0.67,326,0.65,327,0.83,333,0.47,341,0.523,344,2.578,346,1.218,355,1.345,363,3.379,367,1.279,374,2.642,380,0.978,427,0.706,430,1.121,476,0.632,480,0.681,483,1.542,487,0.807,488,2.844,569,0.749,588,0.83,590,0.929,599,0.719,603,0.807,677,1.738,697,1.583,717,0.807,723,0.785,736,1.642,763,0.767,764,0.505,796,0.706,887,0.425,888,0.608,889,0.477,912,1.384,913,1.446,915,0.86,916,0.514,941,1.532,942,1.046,943,1.583,944,5.918,945,0.89,946,0.89,948,2.072,974,0.719,987,0.858,1018,1.15,1062,1.885,1068,0.89,1079,0.929,1081,1.714,1089,0.858,1186,2.072,1213,1.449,1214,0.929,1215,0.807,1219,0.929,1228,0.767,1231,0.978,1232,0.978,1233,1.046,1234,2.131,1235,1.155,1236,1.155,1237,1.155,1238,0.929,1239,1.155,1240,0.978,1241,0.978,1242,1.155,1243,1.155,1244,1.046,1245,1.046,1246,0.978,1247,1.046,1248,1.806,1249,1.046,1250,1.931,1251,0.785,1252,0.978,1253,0.978,1254,1.046,1255,0.978,1256,1.806,1257,0.978,1258,1.806,1259,1.046,1260,0.89,1261,1.046,1262,1.046,1263,1.046,1264,1.046]],["component/90",[1,0.411]],["title/91-1",[23,25.689]],["name/91-1",[]],["text/91-1",[]],["component/91-1",[]],["title/91-2",[26,18.526]],["name/91-2",[]],["text/91-2",[]],["component/91-2",[]],["title/91-3",[334,23.488]],["name/91-3",[]],["text/91-3",[]],["component/91-3",[]],["title/91-4",[269,18.168]],["name/91-4",[]],["text/91-4",[]],["component/91-4",[]],["title/91-5",[887,25.347]],["name/91-5",[]],["text/91-5",[]],["component/91-5",[]],["title/91-6",[788,18.782,889,21.076]],["name/91-6",[]],["text/91-6",[]],["component/91-6",[]],["title/91-7",[15,18.782,341,23.138]],["name/91-7",[]],["text/91-7",[]],["component/91-7",[]],["title/91-8",[1033,32.768]],["name/91-8",[]],["text/91-8",[]],["component/91-8",[]],["title/91-9",[1208,37.696]],["name/91-9",[]],["text/91-9",[]],["component/91-9",[]],["title/91",[166,48.111]],["name/91",[166,0.968]],["text/91",[3,0.782,8,2.067,10,0.989,13,2.739,15,0.423,16,0.831,26,0.309,35,2.441,43,0.716,67,0.936,75,1.946,86,0.46,91,1.019,92,1.194,93,2.15,94,1.635,95,1.408,96,1.443,111,0.702,114,1.482,124,0.629,128,0.647,129,0.667,135,0.482,141,0.678,145,0.667,147,1.919,148,0.486,149,0.597,151,0.854,153,1.376,154,0.478,156,3.884,158,2.864,161,1.45,162,0.803,163,0.746,164,1.743,165,1.321,166,6.597,168,1.884,169,1.116,170,3.722,173,0.647,175,0.924,176,0.583,177,0.69,178,1.252,179,0.886,185,0.59,197,0.924,206,5.544,209,1.443,212,0.678,216,0.746,223,1.252,224,0.886,225,0.886,227,0.507,229,3.133,233,1.574,249,1.296,269,0.97,289,0.667,327,0.826,331,0.803,333,0.467,341,0.962,344,2.568,346,1.689,350,1.077,355,1.339,363,3.81,367,1.273,374,2.632,376,1.917,377,2.063,427,0.702,430,1.116,476,1.617,483,1.102,487,0.803,569,0.746,588,0.826,590,0.924,598,0.886,599,0.716,677,1.731,697,1.576,707,0.924,717,0.803,739,1.443,764,0.503,887,0.423,888,0.605,889,0.475,912,1.378,913,1.44,915,0.856,916,0.512,930,1.041,941,1.525,944,5.731,946,0.886,948,2.063,961,0.974,974,1.84,987,0.854,990,0.974,1018,0.62,1062,1.348,1068,0.886,1089,0.854,1098,1.635,1100,0.763,1186,2.063,1211,0.782,1212,0.974,1213,1.443,1214,0.924,1215,0.803,1219,0.924,1228,0.763,1231,1.797,1232,1.797,1240,0.974,1241,0.974,1246,0.974,1248,0.974,1251,1.443,1252,0.974,1253,0.974,1255,0.974,1256,1.797,1257,0.974,1258,1.797,1260,0.886,1265,0.854,1266,1.635,1267,1.149,1268,2.954,1269,1.149,1270,0.746,1271,1.149,1272,1.149,1273,1.149,1274,1.149,1275,1.149,1276,1.149,1277,1.149,1278,1.149,1279,1.149,1280,1.149,1281,1.149]],["component/91",[1,0.411]],["title/92-1",[23,25.689]],["name/92-1",[]],["text/92-1",[]],["component/92-1",[]],["title/92-2",[26,18.526]],["name/92-2",[]],["text/92-2",[]],["component/92-2",[]],["title/92-3",[334,23.488]],["name/92-3",[]],["text/92-3",[]],["component/92-3",[]],["title/92-4",[269,18.168]],["name/92-4",[]],["text/92-4",[]],["component/92-4",[]],["title/92-5",[887,25.347]],["name/92-5",[]],["text/92-5",[]],["component/92-5",[]],["title/92-6",[788,18.782,889,21.076]],["name/92-6",[]],["text/92-6",[]],["component/92-6",[]],["title/92-7",[15,18.782,341,23.138]],["name/92-7",[]],["text/92-7",[]],["component/92-7",[]],["title/92-8",[1033,32.768]],["name/92-8",[]],["text/92-8",[]],["component/92-8",[]],["title/92-9",[1208,37.696]],["name/92-9",[]],["text/92-9",[]],["component/92-9",[]],["title/92",[165,25.246,487,28.316,488,31.244]],["name/92",[1282,1.256]],["text/92",[1,0.34,8,2.067,10,1.378,13,3.492,15,0.423,16,0.831,19,0.612,20,0.629,26,0.309,35,0.577,67,0.936,75,1.946,86,0.46,91,1.019,92,1.194,93,2.15,94,1.635,95,1.408,111,0.702,114,1.482,122,0.73,128,1.194,129,0.667,135,0.482,141,0.678,145,1.232,147,1.919,148,0.486,149,1.102,151,0.854,154,0.478,156,3.122,158,3.031,161,1.45,162,0.803,163,0.746,164,1.252,165,4.086,168,1.884,169,1.116,170,4.136,171,0.974,172,2.503,173,2.425,176,0.583,177,0.69,178,1.252,179,5.057,185,0.59,206,5.731,209,1.443,210,0.69,212,0.678,216,0.746,223,1.252,224,0.886,225,0.886,233,1.574,249,0.702,269,0.97,289,1.232,323,0.826,326,0.647,327,0.826,333,0.467,341,0.521,344,2.568,346,1.212,355,1.666,363,2.501,367,0.69,372,1.041,374,2.632,380,0.974,427,0.702,430,1.116,476,0.629,483,1.102,487,2.568,488,3.32,529,0.854,569,0.746,588,0.826,590,0.924,599,0.716,603,0.803,677,2.291,697,1.576,717,0.803,736,1.635,747,0.924,764,0.503,887,0.423,888,0.605,889,0.475,912,1.378,913,1.44,915,0.856,916,0.512,941,0.826,944,5.34,945,0.886,946,0.886,948,2.063,974,0.716,987,0.854,1018,1.145,1062,1.877,1089,0.854,1100,1.961,1186,2.063,1211,0.782,1213,1.443,1214,0.924,1215,0.803,1219,0.924,1228,0.763,1231,0.974,1232,0.974,1240,0.974,1241,0.974,1244,1.041,1245,1.041,1246,0.974,1247,1.041,1248,1.797,1249,1.041,1250,1.922,1251,0.782,1252,0.974,1253,0.974,1254,1.041,1255,0.974,1256,1.797,1257,0.974,1258,1.797,1259,1.041,1260,0.886,1261,1.041,1262,1.041,1263,1.041,1264,1.041,1266,1.635,1270,2.795,1282,6.762,1283,1.149,1284,0.854,1285,1.041,1286,1.149,1287,1.041,1288,1.149,1289,1.149,1290,1.149,1291,1.149,1292,1.149,1293,1.149,1294,1.149,1295,1.149]],["component/92",[1,0.411]],["title/93-1",[23,25.689]],["name/93-1",[]],["text/93-1",[]],["component/93-1",[]],["title/93-2",[896,35.797]],["name/93-2",[]],["text/93-2",[]],["component/93-2",[]],["title/93-3",[26,18.526]],["name/93-3",[]],["text/93-3",[]],["component/93-3",[]],["title/93-4",[334,23.488]],["name/93-4",[]],["text/93-4",[]],["component/93-4",[]],["title/93-5",[269,18.168]],["name/93-5",[]],["text/93-5",[]],["component/93-5",[]],["title/93-6",[887,25.347]],["name/93-6",[]],["text/93-6",[]],["component/93-6",[]],["title/93-7",[788,18.782,889,21.076]],["name/93-7",[]],["text/93-7",[]],["component/93-7",[]],["title/93-8",[15,18.782,341,23.138]],["name/93-8",[]],["text/93-8",[]],["component/93-8",[]],["title/93-9",[1033,32.768]],["name/93-9",[]],["text/93-9",[]],["component/93-9",[]],["title/93",[158,18.726,483,21.069,484,32.613]],["name/93",[1296,1.256]],["text/93",[3,0.765,8,1.287,10,0.524,12,4.404,16,0.814,26,0.302,33,0.7,35,1.043,41,1.602,67,0.917,75,1.053,80,0.73,86,0.45,91,0.999,92,1.171,93,1.957,114,1.455,130,0.785,147,2.686,148,1.226,149,1.08,150,2.291,152,0.624,154,2.199,156,2.723,158,3.41,161,0.552,168,1.268,169,0.592,177,1.248,178,0.664,182,0.592,189,1.996,190,2.192,194,0.905,196,0.664,207,1.122,212,0.664,227,0.917,229,1.122,230,1.633,268,0.624,269,0.765,326,0.633,333,0.457,354,0.73,355,0.51,363,1.207,374,1.772,389,0.624,462,0.867,466,4.834,476,0.615,480,3.117,483,3.368,484,4.604,500,0.746,510,2.683,587,0.785,593,0.7,625,0.953,677,2.256,705,1.793,710,1.019,717,0.785,739,0.765,753,0.905,763,5.367,764,0.492,801,1.544,805,1.019,840,1.842,888,0.592,889,0.464,896,1.507,912,1.352,913,1.136,915,0.839,916,0.501,936,0.664,953,0.835,982,1.349,983,0.785,986,0.7,1010,0.905,1018,0.607,1038,0.905,1083,0.905,1101,3.585,1104,0.687,1112,0.615,1150,1.414,1151,1.673,1209,0.867,1211,1.414,1228,0.746,1265,1.544,1266,0.867,1296,5.186,1297,0.905,1298,1.019,1299,1.762,1300,1.124,1301,1.124,1302,0.867,1303,1.124,1304,1.884,1305,2.457,1306,0.953,1307,0.953,1308,1.019,1309,1.884,1310,1.124,1311,1.124,1312,2.457,1313,1.762,1314,1.019,1315,0.867,1316,1.544,1317,0.953,1318,0.953,1319,0.905,1320,0.905,1321,1.124,1322,2.235,1323,1.544,1324,1.602,1325,0.953,1326,1.762,1327,0.867,1328,0.765,1329,0.953,1330,0.953,1331,1.124,1332,1.019,1333,1.602,1334,0.953,1335,2.784,1336,0.809,1337,1.124,1338,1.124,1339,1.124,1340,1.019,1341,3.613,1342,3.692,1343,1.124,1344,1.124,1345,1.544,1346,0.867,1347,1.124,1348,1.124,1349,1.019]],["component/93",[1,0.411]],["title/94-1",[23,25.689]],["name/94-1",[]],["text/94-1",[]],["component/94-1",[]],["title/94-2",[896,35.797]],["name/94-2",[]],["text/94-2",[]],["component/94-2",[]],["title/94-3",[26,18.526]],["name/94-3",[]],["text/94-3",[]],["component/94-3",[]],["title/94-4",[334,23.488]],["name/94-4",[]],["text/94-4",[]],["component/94-4",[]],["title/94-5",[269,18.168]],["name/94-5",[]],["text/94-5",[]],["component/94-5",[]],["title/94-6",[887,25.347]],["name/94-6",[]],["text/94-6",[]],["component/94-6",[]],["title/94-7",[788,18.782,889,21.076]],["name/94-7",[]],["text/94-7",[]],["component/94-7",[]],["title/94-8",[15,18.782,341,23.138]],["name/94-8",[]],["text/94-8",[]],["component/94-8",[]],["title/94",[125,20.939,158,15.531,483,17.474,485,24.179]],["name/94",[1350,1.256]],["text/94",[8,1.771,10,1.184,11,1.162,12,2.584,16,0.995,26,0.376,43,1.581,67,0.617,75,1.806,85,1.125,86,0.56,91,1.676,92,1.43,93,2.253,104,1.006,125,4.072,127,1.185,128,0.787,130,0.977,135,1.065,140,2.043,143,1.006,147,2.4,148,1.074,149,1.32,150,1.859,154,1.784,156,1.659,158,3.525,161,0.686,163,0.907,168,1.111,169,0.736,178,0.825,182,1.336,189,1.196,190,1.162,191,0.977,192,0.745,196,0.825,207,0.755,229,1.371,230,1.963,244,1.078,268,0.776,269,0.67,318,0.628,330,0.871,332,0.799,333,0.569,349,1.078,350,0.71,354,0.907,355,0.634,362,1.078,374,2.131,387,1.886,392,1.524,430,1.835,436,1.039,454,0.928,476,0.765,477,2.365,483,2.892,485,4.702,487,0.977,492,2.782,508,0.951,509,0.855,526,1.185,569,0.907,596,1.039,653,1.078,705,0.694,723,0.951,752,1.078,764,0.612,765,1.185,791,0.736,797,1.185,840,1.613,876,1.826,884,1.185,887,0.515,888,0.736,889,0.577,896,2.228,908,1.125,912,1.626,913,0.995,915,1.024,916,0.623,926,1.185,941,1.006,947,0.652,948,0.977,958,0.888,969,1.773,982,2.263,1018,0.755,1052,4.567,1056,1.993,1083,1.125,1101,2.082,1147,1.078,1213,1.727,1302,1.078,1316,1.886,1322,1.957,1323,1.039,1324,1.078,1333,1.078,1345,1.039,1346,1.078,1350,2.301,1351,1.185,1352,2.043,1353,2.955,1354,1.125,1355,1.185,1356,1.399,1357,1.399,1358,2.805,1359,1.399,1360,1.399,1361,1.185,1362,7.181,1363,1.399,1364,1.125,1365,3.885,1366,1.125,1367,1.267,1368,1.267,1369,2.151,1370,2.301,1371,1.267,1372,1.078,1373,1.078,1374,2.301,1375,2.301,1376,1.185,1377,1.267,1378,2.151,1379,1.185,1380,1.185,1381,1.185,1382,1.267]],["component/94",[1,0.411]],["title/95-1",[23,25.689]],["name/95-1",[]],["text/95-1",[]],["component/95-1",[]],["title/95-2",[896,35.797]],["name/95-2",[]],["text/95-2",[]],["component/95-2",[]],["title/95-3",[169,26.855,1353,43.249]],["name/95-3",[]],["text/95-3",[]],["component/95-3",[]],["title/95-4",[896,26.526,1238,41.06]],["name/95-4",[]],["text/95-4",[]],["component/95-4",[]],["title/95-5",[26,18.526]],["name/95-5",[]],["text/95-5",[]],["component/95-5",[]],["title/95-6",[334,23.488]],["name/95-6",[]],["text/95-6",[]],["component/95-6",[]],["title/95-7",[269,18.168]],["name/95-7",[]],["text/95-7",[]],["component/95-7",[]],["title/95-8",[887,25.347]],["name/95-8",[]],["text/95-8",[]],["component/95-8",[]],["title/95-9",[788,18.782,889,21.076]],["name/95-9",[]],["text/95-9",[]],["component/95-9",[]],["title/95-10",[15,18.782,341,23.138]],["name/95-10",[]],["text/95-10",[]],["component/95-10",[]],["title/95",[125,25.246,158,18.726,483,21.069]],["name/95",[399,1.175]],["text/95",[3,0.626,8,1.293,10,1.693,11,0.789,12,2.15,16,0.676,24,0.518,25,0.74,26,0.464,67,0.761,69,0.534,72,0.78,75,1.502,80,0.597,86,0.368,91,1.744,92,2.044,93,1.999,95,1.145,96,1.173,99,0.74,107,1.563,108,0.597,111,0.562,124,0.503,125,3.962,130,0.643,135,0.386,140,1.387,147,1.814,148,0.729,149,1.593,150,1.574,154,2.869,156,2.886,158,3.957,161,0.452,165,0.573,168,0.754,169,1.613,173,0.518,176,0.467,177,1.84,178,1.437,188,0.643,189,0.812,190,0.789,191,0.643,192,0.49,196,0.543,205,0.626,207,0.497,210,0.552,211,0.597,212,1.018,227,0.406,229,1.655,230,1.371,268,0.957,269,0.455,318,0.413,326,0.971,330,1.074,331,0.643,332,0.526,333,0.374,346,0.526,354,0.597,355,0.417,362,0.709,374,1.488,387,0.683,389,0.511,399,1.461,430,1.91,462,0.709,476,1.332,477,0.438,480,3.755,483,3.307,484,1.387,485,0.662,500,0.611,536,0.834,540,0.526,569,0.597,570,0.971,587,0.643,596,0.683,654,0.834,705,0.456,717,0.643,723,0.626,747,0.74,753,0.74,763,0.611,764,0.402,791,0.484,797,0.78,801,1.281,808,0.78,840,1.947,884,0.78,887,0.339,888,0.484,889,0.38,896,2.389,900,0.518,912,1.135,913,0.676,915,0.696,916,0.41,935,0.662,936,0.543,947,0.804,948,0.643,953,0.683,954,1.461,982,3.501,986,1.074,1018,1.314,1038,0.74,1052,4.237,1053,0.78,1056,1.392,1101,1.489,1104,1.488,1147,0.709,1150,1.173,1151,1.387,1209,0.709,1213,1.173,1215,0.643,1223,1.173,1228,0.611,1238,1.387,1251,1.173,1302,0.709,1316,2.277,1317,0.78,1318,0.78,1319,0.74,1320,0.74,1322,2.797,1323,1.808,1324,1.876,1325,0.78,1326,1.461,1327,0.709,1328,0.626,1329,0.78,1330,2.597,1333,1.329,1345,1.281,1346,0.709,1353,1.461,1358,1.958,1364,0.74,1365,4.543,1366,0.74,1367,0.834,1368,0.834,1369,1.461,1370,1.563,1371,0.834,1372,1.329,1373,0.709,1374,1.563,1375,1.563,1376,1.461,1377,1.563,1378,1.461,1379,0.78,1380,0.78,1381,0.78,1382,0.834,1383,0.92,1384,0.92,1385,0.92,1386,0.92,1387,0.92,1388,0.834,1389,0.709,1390,0.92,1391,0.92,1392,0.92,1393,0.834,1394,0.92,1395,0.92,1396,0.834,1397,0.78,1398,1.725,1399,0.92,1400,0.92,1401,1.725,1402,0.78,1403,0.92,1404,0.92,1405,0.78,1406,0.643,1407,0.834,1408,6.066,1409,0.92,1410,0.92]],["component/95",[1,0.411]],["title/96-1",[23,25.689]],["name/96-1",[]],["text/96-1",[]],["component/96-1",[]],["title/96-2",[896,35.797]],["name/96-2",[]],["text/96-2",[]],["component/96-2",[]],["title/96-3",[26,18.526]],["name/96-3",[]],["text/96-3",[]],["component/96-3",[]],["title/96-4",[334,23.488]],["name/96-4",[]],["text/96-4",[]],["component/96-4",[]],["title/96-5",[269,18.168]],["name/96-5",[]],["text/96-5",[]],["component/96-5",[]],["title/96-6",[887,25.347]],["name/96-6",[]],["text/96-6",[]],["component/96-6",[]],["title/96-7",[788,18.782,889,21.076]],["name/96-7",[]],["text/96-7",[]],["component/96-7",[]],["title/96-8",[15,18.782,341,23.138]],["name/96-8",[]],["text/96-8",[]],["component/96-8",[]],["title/96",[125,20.939,158,15.531,483,17.474,486,27.049]],["name/96",[1411,1.256]],["text/96",[8,1.651,12,1.449,13,2.138,15,0.571,16,1.092,26,0.417,64,1.314,67,0.684,75,1.684,86,0.621,91,1.34,92,0.873,93,2.205,104,1.115,125,4.795,127,1.314,128,0.873,130,1.083,135,1.169,140,1.247,141,0.915,146,2.652,147,2.896,148,1.961,149,1.449,150,2.318,153,1.006,154,2.225,156,2.205,158,4.069,161,0.761,163,2.464,164,0.915,165,0.966,166,1.083,167,1.115,168,2.833,169,0.816,178,0.915,189,1.313,190,1.275,196,0.915,209,2.582,221,0.985,229,0.837,230,2.61,232,1.115,246,1.771,269,0.735,332,0.886,333,1.133,341,0.703,346,1.593,349,1.195,354,1.809,374,2.32,387,1.152,392,0.931,436,1.152,454,1.029,477,0.738,483,4.319,485,3.844,486,3.729,489,1.195,492,1.006,500,2.52,508,1.055,599,0.966,705,0.769,752,1.195,764,0.678,840,1.771,876,1.115,887,0.571,888,0.816,889,0.64,896,1.449,908,2.242,912,1.771,913,1.092,915,1.125,916,0.69,933,1.195,958,0.985,982,1.809,1052,3.733,1056,0.886,1101,2.251,1154,1.405,1163,1.029,1316,1.152,1322,2.148,1323,1.152,1324,1.195,1330,1.314,1345,1.152,1346,1.195,1351,1.314,1358,1.247,1362,3.44,1378,2.362,1379,1.314,1380,1.314,1381,1.314,1406,1.083,1411,5.869,1412,1.405,1413,1.314,1414,5.952,1415,2.787,1416,1.405,1417,1.152,1418,1.551,1419,1.115,1420,1.551,1421,1.551,1422,1.551,1423,1.551,1424,1.551,1425,1.551,1426,1.551]],["component/96",[1,0.411]],["title/97-1",[23,25.689]],["name/97-1",[]],["text/97-1",[]],["component/97-1",[]],["title/97-2",[896,35.797]],["name/97-2",[]],["text/97-2",[]],["component/97-2",[]],["title/97-3",[158,23.576,1333,39.337]],["name/97-3",[]],["text/97-3",[]],["component/97-3",[]],["title/97-4",[26,18.526]],["name/97-4",[]],["text/97-4",[]],["component/97-4",[]],["title/97-5",[334,23.488]],["name/97-5",[]],["text/97-5",[]],["component/97-5",[]],["title/97-6",[269,18.168]],["name/97-6",[]],["text/97-6",[]],["component/97-6",[]],["title/97-7",[887,25.347]],["name/97-7",[]],["text/97-7",[]],["component/97-7",[]],["title/97-8",[788,18.782,889,21.076]],["name/97-8",[]],["text/97-8",[]],["component/97-8",[]],["title/97-9",[15,18.782,341,23.138]],["name/97-9",[]],["text/97-9",[]],["component/97-9",[]],["title/97-10",[1033,32.768]],["name/97-10",[]],["text/97-10",[]],["component/97-10",[]],["title/97",[158,18.726,480,23.924,483,21.069]],["name/97",[1427,1.256]],["text/97",[3,0.815,8,1.354,10,0.559,12,3.097,16,0.864,26,0.322,35,1.908,41,1.7,67,0.973,69,0.696,75,1.112,80,0.778,86,0.48,91,1.06,92,0.675,93,1.409,111,0.733,114,0.602,125,1.374,130,0.837,147,2.509,148,1.296,149,1.146,150,1.928,152,0.665,154,2.294,156,3.197,158,3.394,161,0.588,164,0.708,168,1.34,169,1.161,177,1.324,178,0.708,182,0.631,188,0.837,189,1.443,190,1.74,192,0.639,227,1.352,229,1.191,230,1.725,259,0.747,268,0.665,269,0.808,326,0.675,333,0.487,350,1.119,354,0.778,355,0.544,363,1.778,374,1.872,376,0.778,389,0.665,415,0.815,462,0.924,466,4.795,476,1.207,477,0.57,480,4.782,483,3.493,500,0.796,510,1.638,526,1.016,567,1.086,573,1.086,587,0.837,593,0.747,677,1.039,705,1.094,739,0.815,753,0.964,763,2.033,764,0.524,796,0.733,801,1.638,840,1.946,888,0.631,889,0.495,896,1.146,912,1.429,913,1.2,915,0.89,916,0.534,936,0.708,953,0.891,969,0.837,974,1.374,982,1.431,983,0.837,985,0.891,990,1.016,1002,1.016,1010,0.964,1018,0.647,1038,0.964,1083,2.464,1084,1.016,1098,1.7,1101,2.677,1104,0.733,1112,0.656,1118,0.837,1150,2.084,1151,1.774,1209,0.924,1213,2.586,1215,0.837,1223,1.5,1228,0.796,1238,0.964,1265,1.638,1266,1.7,1299,1.016,1304,1.999,1305,1.869,1306,1.016,1307,1.869,1308,1.999,1309,1.999,1312,2.596,1313,1.016,1314,1.086,1315,0.924,1316,1.638,1317,1.016,1318,1.016,1319,0.964,1320,0.964,1322,2.361,1323,1.638,1324,1.7,1325,1.016,1326,2.596,1327,0.924,1328,0.815,1329,1.016,1333,2.93,1334,1.016,1335,2.93,1340,1.086,1342,2.361,1345,1.638,1346,0.924,1349,1.086,1358,0.964,1405,1.016,1427,4.995,1428,1.199,1429,1.086,1430,1.199,1431,1.016,1432,0.964,1433,1.199,1434,1.199,1435,0.924,1436,1.199,1437,0.891,1438,1.199,1439,1.199,1440,1.199,1441,1.199,1442,1.199,1443,1.199,1444,1.199,1445,1.199]],["component/97",[1,0.411]],["title/98-1",[23,25.689]],["name/98-1",[]],["text/98-1",[]],["component/98-1",[]],["title/98-2",[26,18.526]],["name/98-2",[]],["text/98-2",[]],["component/98-2",[]],["title/98-3",[334,23.488]],["name/98-3",[]],["text/98-3",[]],["component/98-3",[]],["title/98-4",[269,18.168]],["name/98-4",[]],["text/98-4",[]],["component/98-4",[]],["title/98-5",[887,25.347]],["name/98-5",[]],["text/98-5",[]],["component/98-5",[]],["title/98-6",[788,25.347]],["name/98-6",[]],["text/98-6",[]],["component/98-6",[]],["title/98-7",[788,18.782,889,21.076]],["name/98-7",[]],["text/98-7",[]],["component/98-7",[]],["title/98-8",[1033,32.768]],["name/98-8",[]],["text/98-8",[]],["component/98-8",[]],["title/98",[28,34.717,496,43.249]],["name/98",[1446,1.256]],["text/98",[8,2.273,11,3.791,16,1.627,26,0.658,67,1.079,75,0.888,82,1.758,86,0.979,93,2.364,101,1.967,114,2.084,128,1.377,147,3.269,148,1.034,149,2.158,150,3.1,154,1.018,156,1.975,160,1.865,161,1.2,168,2.368,176,1.241,189,2.549,190,2.477,210,1.468,227,1.079,229,1.32,230,4.024,269,1.428,333,0.994,338,4.085,346,2.373,350,1.241,354,1.587,355,1.108,367,1.468,421,2.215,477,1.975,496,5.406,598,4.171,677,1.956,705,1.213,760,1.884,764,1.07,840,2.638,888,1.286,889,1.01,900,1.377,912,2.976,913,2.12,915,1.675,916,1.088,926,2.072,933,1.884,989,1.884,1018,1.32,1061,2.215,1101,4.024,1186,1.708,1334,2.072,1335,1.884,1369,2.072,1446,7.04,1447,4.153,1448,2.445,1449,2.445,1450,2.445,1451,2.215,1452,2.445,1453,2.445,1454,2.215,1455,4.153,1456,2.445,1457,2.445,1458,2.445,1459,1.816,1460,2.445]],["component/98",[1,0.411]],["title/99-1",[23,25.689]],["name/99-1",[]],["text/99-1",[]],["component/99-1",[]],["title/99-2",[26,18.526]],["name/99-2",[]],["text/99-2",[]],["component/99-2",[]],["title/99-3",[334,23.488]],["name/99-3",[]],["text/99-3",[]],["component/99-3",[]],["title/99-4",[269,18.168]],["name/99-4",[]],["text/99-4",[]],["component/99-4",[]],["title/99-5",[887,25.347]],["name/99-5",[]],["text/99-5",[]],["component/99-5",[]],["title/99-6",[8,18.179,915,20.594]],["name/99-6",[]],["text/99-6",[]],["component/99-6",[]],["title/99-7",[10,32.125]],["name/99-7",[]],["text/99-7",[]],["component/99-7",[]],["title/99-8",[8,18.179,1208,27.933]],["name/99-8",[]],["text/99-8",[]],["component/99-8",[]],["title/99-9",[788,18.782,889,21.076]],["name/99-9",[]],["text/99-9",[]],["component/99-9",[]],["title/99-10",[15,18.782,341,23.138]],["name/99-10",[]],["text/99-10",[]],["component/99-10",[]],["title/99",[491,48.111]],["name/99",[491,0.968]],["text/99",[0,0.807,8,2.949,11,0.543,12,1.96,16,1.477,19,0.632,21,0.754,24,0.668,26,0.319,27,0.807,28,0.807,61,0.915,67,0.964,69,0.689,75,2.655,86,0.475,91,0.57,93,2.902,108,0.77,111,1.335,115,1.006,128,1.23,135,1.851,147,1.741,148,0.924,150,1.914,154,0.494,156,2.605,160,0.533,164,0.7,168,0.956,176,0.602,180,0.641,185,0.609,189,1.029,190,1,192,1.164,196,0.7,203,4.027,212,1.29,227,0.964,249,0.725,255,1.823,268,0.659,269,1.312,289,1.269,311,1.075,326,0.668,332,0.678,334,0.745,343,1.571,346,0.678,355,0.991,369,1.623,390,0.882,425,3.303,430,1.15,474,0.807,476,0.65,477,0.565,491,6.752,512,1.571,513,2.264,516,2.712,529,0.882,540,0.678,587,0.829,591,1.006,609,0.807,656,1.451,666,0.853,705,0.589,709,1.075,720,0.955,764,0.956,789,0.882,791,0.624,804,0.807,840,0.754,875,1.006,888,0.624,889,0.49,900,2.802,912,1.416,913,1.477,915,0.882,916,0.528,927,0.754,947,0.554,950,1.006,958,0.754,969,0.829,978,0.955,982,0.77,1012,0.955,1037,1.006,1056,1.736,1073,0.548,1101,1.832,1109,0.754,1133,2.712,1158,0.853,1168,1.71,1223,1.486,1302,0.915,1461,1.187,1462,3.037,1463,1.006,1464,1.187,1465,1.187,1466,2.185,1467,1.075,1468,1.075,1469,1.187,1470,1.075,1471,1.187,1472,1.187,1473,1.187,1474,1.187,1475,1.187,1476,7.584,1477,1.187,1478,3.037,1479,1.006,1480,1.075,1481,0.788,1482,3.196,1483,1.571,1484,2.34,1485,1.852,1486,1.418,1487,3.418,1488,1.187,1489,1.006,1490,1.187,1491,1.98,1492,1.187,1493,1.075,1494,1.187,1495,1.187,1496,3.037,1497,1.187,1498,1.075,1499,2.185,1500,2.185,1501,4.413,1502,2.185,1503,1.187,1504,1.187,1505,1.187,1506,1.187,1507,1.075,1508,1.187,1509,1.187,1510,1.187,1511,1.187,1512,1.758,1513,0.882,1514,1.187,1515,1.075]],["component/99",[1,0.411]],["title/100-1",[23,25.689]],["name/100-1",[]],["text/100-1",[]],["component/100-1",[]],["title/100-2",[26,18.526]],["name/100-2",[]],["text/100-2",[]],["component/100-2",[]],["title/100-3",[334,23.488]],["name/100-3",[]],["text/100-3",[]],["component/100-3",[]],["title/100-4",[269,18.168]],["name/100-4",[]],["text/100-4",[]],["component/100-4",[]],["title/100-5",[887,25.347]],["name/100-5",[]],["text/100-5",[]],["component/100-5",[]],["title/100-6",[8,18.179,915,20.594]],["name/100-6",[]],["text/100-6",[]],["component/100-6",[]],["title/100-7",[15,18.782,341,23.138]],["name/100-7",[]],["text/100-7",[]],["component/100-7",[]],["title/100",[485,36.704,492,33.12]],["name/100",[1516,1.256]],["text/100",[0,1.224,7,3.853,8,2.82,10,0.839,11,0.823,15,0.662,16,1.247,19,0.959,26,0.484,43,1.121,55,1.294,67,0.794,75,1.554,91,0.865,93,2.189,96,1.224,135,0.755,145,1.045,147,2.04,148,1.346,150,1.381,163,2.066,168,1.392,177,1.911,178,1.062,192,0.959,204,1.1,207,0.972,227,1.405,230,1.792,249,1.945,269,1.364,315,1.525,322,1.525,326,1.013,332,1.029,333,0.732,334,0.614,347,1.257,348,1.168,350,0.913,355,0.816,369,1.337,376,1.168,392,1.911,425,2.113,430,0.947,438,1.387,440,1.168,461,1.525,476,0.985,477,2.811,485,5.077,491,1.257,492,4.237,493,2.365,500,1.195,505,1.143,513,1.08,520,1.143,547,1.294,570,1.792,580,1.337,603,1.257,620,1.448,656,2.841,666,1.294,694,2.066,705,0.893,796,1.1,896,0.935,900,1.013,913,1.247,947,0.839,974,1.121,982,1.168,1017,1.168,1056,1.819,1062,4.148,1073,0.831,1079,1.448,1109,1.143,1120,1.337,1150,1.224,1158,1.294,1186,1.257,1211,1.224,1251,2.165,1328,2.165,1354,1.448,1355,2.697,1389,1.387,1407,1.631,1413,1.525,1417,1.337,1432,1.448,1481,2.113,1483,1.294,1512,2.561,1513,1.337,1515,1.631,1516,5.917,1517,3.183,1518,1.631,1519,1.631,1520,1.8,1521,1.8,1522,1.8,1523,1.8,1524,1.525,1525,1.8,1526,1.387,1527,1.525,1528,3.183,1529,1.8,1530,1.8,1531,1.8,1532,1.8,1533,1.8,1534,1.525,1535,1.631,1536,1.448,1537,1.525,1538,1.631,1539,1.525,1540,6.53,1541,1.631,1542,1.8,1543,1.8,1544,1.337,1545,3.183,1546,4.28,1547,1.8,1548,1.448]],["component/100",[1,0.411]],["title/101-1",[23,25.689]],["name/101-1",[]],["text/101-1",[]],["component/101-1",[]],["title/101-2",[26,18.526]],["name/101-2",[]],["text/101-2",[]],["component/101-2",[]],["title/101-3",[334,23.488]],["name/101-3",[]],["text/101-3",[]],["component/101-3",[]],["title/101-4",[269,18.168]],["name/101-4",[]],["text/101-4",[]],["component/101-4",[]],["title/101-5",[887,25.347]],["name/101-5",[]],["text/101-5",[]],["component/101-5",[]],["title/101-6",[8,18.179,915,20.594]],["name/101-6",[]],["text/101-6",[]],["component/101-6",[]],["title/101-7",[8,18.179,1208,27.933]],["name/101-7",[]],["text/101-7",[]],["component/101-7",[]],["title/101-8",[788,18.782,889,21.076]],["name/101-8",[]],["text/101-8",[]],["component/101-8",[]],["title/101-9",[15,18.782,341,23.138]],["name/101-9",[]],["text/101-9",[]],["component/101-9",[]],["title/101-10",[1208,37.696]],["name/101-10",[]],["text/101-10",[]],["component/101-10",[]],["title/101-11",[1033,32.768]],["name/101-11",[]],["text/101-11",[]],["component/101-11",[]],["title/101",[492,33.12,493,37.915]],["name/101",[1539,1.175]],["text/101",[7,3.332,8,2.601,12,1.48,16,1.391,26,0.296,43,0.685,45,0.639,67,0.486,75,1.29,86,1.14,91,0.529,93,2.371,135,0.462,145,0.639,147,1.862,148,1.764,150,2.62,154,0.848,160,0.916,168,1.824,176,0.559,189,0.518,190,0.504,192,1.517,204,0.673,207,1.101,230,1.148,246,0.699,249,1.246,269,1.244,289,1.653,291,0.792,331,0.769,332,0.629,333,0.448,334,0.375,347,0.769,355,1.291,369,0.818,423,2.115,425,1.353,430,0.579,440,0.714,459,0.848,461,0.933,472,0.739,492,4.154,493,6.238,505,4.465,513,1.224,516,0.792,520,0.699,540,1.165,570,1.603,580,0.818,589,1.323,603,0.769,620,0.886,653,0.848,656,4.01,666,0.792,677,1.673,705,0.546,739,0.749,764,0.482,773,1.809,791,0.579,796,0.673,816,1.571,818,1.847,882,1.035,888,0.579,889,0.455,912,1.945,913,1.848,915,1.433,916,0.49,943,0.818,982,0.714,986,1.269,987,0.818,988,0.933,1017,4.154,1018,2.547,1056,1.165,1062,2.256,1079,0.886,1080,0.886,1101,2.529,1120,0.818,1133,0.792,1148,1.353,1150,0.749,1152,1.571,1158,2.554,1168,2.932,1225,0.997,1265,0.818,1328,1.387,1355,1.727,1372,2.194,1389,0.848,1419,1.466,1432,0.886,1463,0.933,1479,0.933,1481,0.731,1484,0.848,1498,0.997,1512,1.64,1513,2.638,1527,0.933,1534,0.933,1535,0.997,1536,1.64,1537,0.933,1538,0.997,1539,1.727,1541,6.097,1548,2.29,1549,0.997,1550,1.101,1551,0.886,1552,1.101,1553,1.101,1554,1.101,1555,1.101,1556,1.101,1557,3.778,1558,1.101,1559,3.778,1560,1.101,1561,2.039,1562,4.17,1563,1.101,1564,1.101,1565,1.101,1566,1.101,1567,1.101,1568,1.101,1569,1.101,1570,3.218,1571,2.847,1572,2.039,1573,4.17,1574,1.101,1575,1.101,1576,1.101,1577,1.101,1578,1.101,1579,1.101,1580,1.101,1581,1.101]],["component/101",[1,0.411]],["title/102-1",[23,25.689]],["name/102-1",[]],["text/102-1",[]],["component/102-1",[]],["title/102-2",[26,18.526]],["name/102-2",[]],["text/102-2",[]],["component/102-2",[]],["title/102-3",[334,23.488]],["name/102-3",[]],["text/102-3",[]],["component/102-3",[]],["title/102-4",[269,18.168]],["name/102-4",[]],["text/102-4",[]],["component/102-4",[]],["title/102-5",[887,25.347]],["name/102-5",[]],["text/102-5",[]],["component/102-5",[]],["title/102-6",[788,18.782,889,21.076]],["name/102-6",[]],["text/102-6",[]],["component/102-6",[]],["title/102-7",[15,18.782,341,23.138]],["name/102-7",[]],["text/102-7",[]],["component/102-7",[]],["title/102-8",[1033,32.768]],["name/102-8",[]],["text/102-8",[]],["component/102-8",[]],["title/102-9",[1208,37.696]],["name/102-9",[]],["text/102-9",[]],["component/102-9",[]],["title/102",[376,33.12,377,35.65]],["name/102",[1582,1.175]],["text/102",[1,0.512,8,2.048,13,2.826,16,1.622,26,0.464,33,1.075,35,2.078,67,1.354,75,1.504,86,0.692,93,1.534,108,1.121,114,1.54,129,1.782,135,0.725,145,1.782,147,1.634,148,0.73,149,0.898,150,0.749,154,1.277,156,2.388,158,2.656,160,0.776,161,1.506,164,1.019,168,2.196,173,0.972,176,0.876,178,1.019,229,1.657,246,1.097,269,1.324,333,0.702,339,1.842,354,1.121,355,1.878,374,2.531,376,3.731,377,2.893,389,0.958,430,0.909,435,1.331,449,2.631,465,2.469,466,5.004,483,1.595,494,4.908,548,1.331,570,1.728,677,2.999,695,1.121,763,1.146,764,0.755,815,1.565,816,1.331,873,1.331,888,0.909,889,0.713,892,1.565,912,2.341,913,1.966,915,1.671,916,0.769,933,1.331,936,1.019,944,6.468,951,1.389,952,1.463,953,1.283,974,1.075,1003,2.6,1018,3.104,1084,1.463,1148,3.332,1186,1.206,1226,1.565,1405,1.463,1406,1.206,1582,8.125,1583,1.727,1584,1.727,1585,1.727,1586,1.727,1587,1.727,1588,1.565,1589,1.565,1590,3.069,1591,4.548,1592,5.21,1593,1.727,1594,1.727,1595,1.727,1596,1.727,1597,2.781,1598,4.548,1599,1.727,1600,1.727,1601,1.727,1602,1.727,1603,1.727,1604,1.727,1605,1.727,1606,1.727]],["component/102",[1,0.411]],["title/103-1",[23,25.689]],["name/103-1",[]],["text/103-1",[]],["component/103-1",[]],["title/103-2",[26,18.526]],["name/103-2",[]],["text/103-2",[]],["component/103-2",[]],["title/103-3",[334,23.488]],["name/103-3",[]],["text/103-3",[]],["component/103-3",[]],["title/103-4",[269,18.168]],["name/103-4",[]],["text/103-4",[]],["component/103-4",[]],["title/103-5",[887,25.347]],["name/103-5",[]],["text/103-5",[]],["component/103-5",[]],["title/103-6",[788,25.347]],["name/103-6",[]],["text/103-6",[]],["component/103-6",[]],["title/103-7",[788,18.782,889,21.076]],["name/103-7",[]],["text/103-7",[]],["component/103-7",[]],["title/103-8",[1033,32.768]],["name/103-8",[]],["text/103-8",[]],["component/103-8",[]],["title/103",[207,18.154,350,17.064,476,18.401,495,28.49]],["name/103",[1607,1.256]],["text/103",[8,2.257,11,3.251,16,1.612,24,1.363,26,1.107,27,1.646,28,1.646,67,1.068,75,1.495,80,1.57,86,0.969,93,2.348,114,2.065,124,1.324,141,1.428,147,3.253,148,1.024,149,2.139,150,3.081,154,1.007,156,1.958,160,1.849,161,1.188,168,2.35,189,2.53,190,2.458,205,1.646,207,1.307,211,1.57,230,4,231,2.193,255,1.453,269,1.417,333,0.984,338,4.061,343,1.74,346,2.353,350,1.228,354,1.57,355,1.097,376,1.57,438,1.865,440,1.57,476,1.324,477,1.958,495,3.488,540,1.383,598,4.14,677,1.939,705,1.201,720,1.947,764,1.059,789,1.798,840,2.615,888,1.273,889,0.999,906,1.947,912,2.956,913,2.104,915,1.661,916,1.077,966,1.947,994,2.193,1018,1.307,1101,4.004,1194,3.73,1260,1.865,1335,1.865,1352,1.947,1354,1.947,1431,2.05,1454,2.193,1607,6.437,1608,2.42,1609,1.947,1610,2.42,1611,2.193,1612,2.42,1613,2.42,1614,2.42,1615,2.42,1616,2.42,1617,2.42]],["component/103",[1,0.411]],["title/104-1",[23,25.689]],["name/104-1",[]],["text/104-1",[]],["component/104-1",[]],["title/104-2",[26,18.526]],["name/104-2",[]],["text/104-2",[]],["component/104-2",[]],["title/104-3",[334,23.488]],["name/104-3",[]],["text/104-3",[]],["component/104-3",[]],["title/104-4",[269,18.168]],["name/104-4",[]],["text/104-4",[]],["component/104-4",[]],["title/104-5",[887,25.347]],["name/104-5",[]],["text/104-5",[]],["component/104-5",[]],["title/104-6",[788,25.347]],["name/104-6",[]],["text/104-6",[]],["component/104-6",[]],["title/104",[377,35.65,494,39.337]],["name/104",[402,1.175]],["text/104",[8,1.935,10,1.146,12,2.168,13,3.059,15,0.904,16,1.634,26,0.661,43,1.531,75,1.515,86,0.984,93,3.077,135,1.031,147,1.646,148,1.04,150,1.809,154,1.023,156,1.169,160,2.441,189,1.964,190,1.908,192,1.31,196,1.45,209,2.837,216,1.595,227,1.085,230,2.348,269,1.433,333,0.999,348,1.595,350,2.117,354,1.595,374,1.502,377,1.717,392,2.504,402,6.602,430,1.293,454,1.631,466,2.837,492,1.595,494,6.005,537,1.894,548,1.894,694,1.595,705,1.22,763,4.25,764,1.075,765,2.083,788,0.904,791,1.293,900,1.384,913,0.963,915,0.992,916,1.094,943,3.098,944,5.325,947,1.146,977,1.672,1018,2.252,1073,2.51,1081,1.977,1087,2.227,1101,3.482,1109,1.561,1148,1.631,1270,3.526,1431,2.083,1479,2.083,1483,1.767,1519,3.779,1544,1.826,1582,5.425,1591,2.227,1592,2.227,1597,3.779,1598,4.923,1618,4.171,1619,2.458,1620,4.171,1621,4.171,1622,2.458,1623,5.433,1624,2.458]],["component/104",[1,0.411]],["title/105-1",[23,25.689]],["name/105-1",[]],["text/105-1",[]],["component/105-1",[]],["title/105-2",[26,18.526]],["name/105-2",[]],["text/105-2",[]],["component/105-2",[]],["title/105-3",[334,23.488]],["name/105-3",[]],["text/105-3",[]],["component/105-3",[]],["title/105-4",[269,18.168]],["name/105-4",[]],["text/105-4",[]],["component/105-4",[]],["title/105-5",[887,25.347]],["name/105-5",[]],["text/105-5",[]],["component/105-5",[]],["title/105-6",[788,18.782,889,21.076]],["name/105-6",[]],["text/105-6",[]],["component/105-6",[]],["title/105-7",[332,39.371]],["name/105-7",[]],["text/105-7",[]],["component/105-7",[]],["title/105-8",[1208,37.696]],["name/105-8",[]],["text/105-8",[]],["component/105-8",[]],["title/105-9",[10,32.125]],["name/105-9",[]],["text/105-9",[]],["component/105-9",[]],["title/105",[1011,53.086]],["name/105",[1011,1.069]],["text/105",[1,0.49,6,1.011,8,1.732,16,1.157,26,1.502,30,1.051,35,3.606,39,1.275,40,1.331,51,1.229,61,1.275,75,1.073,93,4.15,116,4.494,122,1.051,135,0.694,138,1.402,145,0.96,149,2.079,150,1.281,154,0.688,160,0.743,168,1.75,169,2.105,185,1.517,204,1.011,205,1.125,207,1.595,210,0.993,212,0.976,229,0.893,233,0.881,246,1.051,268,0.918,269,1.055,286,4.305,292,2.542,316,1.19,320,1.876,350,0.84,355,2.811,427,2.972,517,5.275,520,1.051,540,3.193,555,1.229,565,3.902,570,0.931,589,1.916,630,5.185,643,2.503,671,1.499,705,0.821,773,3.09,788,0.609,882,0.84,888,0.87,889,0.683,912,2.268,913,1.567,915,0.667,935,3.497,986,1.03,1011,6.125,1012,1.331,1013,1.19,1014,1.402,1015,1.499,1223,2.009,1228,1.098,1419,1.19,1481,1.098,1486,1.916,1625,2.676,1626,2.276,1627,2.194,1628,1.654,1629,2.503,1630,1.499,1631,1.499,1632,1.654,1633,1.654,1634,1.499,1635,1.654,1636,1.499,1637,2.954,1638,2.954,1639,1.499,1640,1.654,1641,1.654,1642,1.654,1643,1.654,1644,1.654,1645,1.654,1646,2.376,1647,1.331,1648,1.654,1649,1.499,1650,4.407,1651,4.407,1652,1.499,1653,1.654,1654,1.654]],["component/105",[1,0.411]],["title/106-1",[23,25.689]],["name/106-1",[]],["text/106-1",[]],["component/106-1",[]],["title/106-2",[26,18.526]],["name/106-2",[]],["text/106-2",[]],["component/106-2",[]],["title/106-3",[1655,62.413]],["name/106-3",[]],["text/106-3",[]],["component/106-3",[]],["title/106-4",[334,23.488]],["name/106-4",[]],["text/106-4",[]],["component/106-4",[]],["title/106-5",[269,18.168]],["name/106-5",[]],["text/106-5",[]],["component/106-5",[]],["title/106-6",[887,25.347]],["name/106-6",[]],["text/106-6",[]],["component/106-6",[]],["title/106-7",[788,18.782,889,21.076]],["name/106-7",[]],["text/106-7",[]],["component/106-7",[]],["title/106-8",[1208,37.696]],["name/106-8",[]],["text/106-8",[]],["component/106-8",[]],["title/106-9",[1656,62.413]],["name/106-9",[]],["text/106-9",[]],["component/106-9",[]],["title/106-10",[334,23.488]],["name/106-10",[]],["text/106-10",[]],["component/106-10",[]],["title/106-11",[269,18.168]],["name/106-11",[]],["text/106-11",[]],["component/106-11",[]],["title/106-12",[887,25.347]],["name/106-12",[]],["text/106-12",[]],["component/106-12",[]],["title/106-13",[788,18.782,889,21.076]],["name/106-13",[]],["text/106-13",[]],["component/106-13",[]],["title/106-14",[1033,32.768]],["name/106-14",[]],["text/106-14",[]],["component/106-14",[]],["title/106-15",[1208,37.696]],["name/106-15",[]],["text/106-15",[]],["component/106-15",[]],["title/106-16",[1657,62.413]],["name/106-16",[]],["text/106-16",[]],["component/106-16",[]],["title/106-17",[334,23.488]],["name/106-17",[]],["text/106-17",[]],["component/106-17",[]],["title/106-18",[269,18.168]],["name/106-18",[]],["text/106-18",[]],["component/106-18",[]],["title/106-19",[887,25.347]],["name/106-19",[]],["text/106-19",[]],["component/106-19",[]],["title/106-20",[788,18.782,889,21.076]],["name/106-20",[]],["text/106-20",[]],["component/106-20",[]],["title/106-21",[1033,32.768]],["name/106-21",[]],["text/106-21",[]],["component/106-21",[]],["title/106",[877,53.086]],["name/106",[877,1.069]],["text/106",[0,0.622,4,5.003,7,3.172,8,2.039,15,0.337,16,1.956,24,0.966,26,0.461,35,1.531,51,0.679,67,0.757,69,0.996,75,0.623,79,1.38,86,0.687,93,2.349,114,0.861,135,1.921,145,0.996,146,0.639,147,2.121,148,0.725,149,0.475,150,1.323,154,0.714,160,1.37,168,2.504,169,0.481,174,1.233,177,0.549,189,0.431,190,0.418,200,0.705,202,0.736,207,0.494,210,0.549,223,1.012,227,0.757,230,2.319,233,0.914,255,0.549,256,0.705,269,1.594,334,0.585,338,1.384,344,1.692,355,2.875,442,0.705,471,1.429,492,0.593,511,2.517,513,3.436,540,1.384,562,5.122,565,2.131,568,0.775,570,0.515,589,1.113,656,1.139,666,2.194,705,2.044,730,1.09,755,4.56,764,0.75,773,3.84,795,3.849,816,1.322,877,0.705,882,0.464,890,1.167,900,0.515,912,1.423,913,1.793,915,0.977,916,0.764,936,0.54,947,0.8,985,1.274,1000,0.829,1013,0.658,1017,3.714,1021,0.736,1064,1.233,1068,0.705,1073,1.903,1100,1.139,1101,2,1104,0.559,1148,2.734,1150,3.397,1168,2.319,1406,0.639,1412,2.764,1481,0.607,1486,2.344,1629,2.052,1655,6.829,1656,4.525,1657,5.477,1658,0.915,1659,1.38,1660,0.915,1661,0.736,1662,2.422,1663,0.775,1664,0.915,1665,0.915,1666,0.915,1667,0.915,1668,1.453,1669,4.119,1670,0.775,1671,0.915,1672,1.715,1673,0.915,1674,3.613,1675,1.554,1676,0.915,1677,0.915,1678,0.915,1679,0.915,1680,2.585,1681,3.05,1682,0.915,1683,2.454,1684,2.052,1685,1.554,1686,0.915,1687,0.915,1688,0.915,1689,0.915,1690,0.915,1691,0.915,1692,0.915,1693,0.915,1694,1.715,1695,0.915,1696,0.915,1697,2.195,1698,0.915,1699,0.915,1700,1.554,1701,0.915]],["component/106",[1,0.411]],["title/107-1",[23,25.689]],["name/107-1",[]],["text/107-1",[]],["component/107-1",[]],["title/107-2",[26,18.526]],["name/107-2",[]],["text/107-2",[]],["component/107-2",[]],["title/107-3",[334,23.488]],["name/107-3",[]],["text/107-3",[]],["component/107-3",[]],["title/107-4",[269,18.168]],["name/107-4",[]],["text/107-4",[]],["component/107-4",[]],["title/107-5",[887,25.347]],["name/107-5",[]],["text/107-5",[]],["component/107-5",[]],["title/107-6",[788,25.347]],["name/107-6",[]],["text/107-6",[]],["component/107-6",[]],["title/107-7",[1208,37.696]],["name/107-7",[]],["text/107-7",[]],["component/107-7",[]],["title/107-8",[1033,32.768]],["name/107-8",[]],["text/107-8",[]],["component/107-8",[]],["title/107-9",[10,32.125]],["name/107-9",[]],["text/107-9",[]],["component/107-9",[]],["title/107",[1016,53.086]],["name/107",[1016,1.069]],["text/107",[8,1.121,11,0.435,12,2.202,15,1.158,16,0.696,26,0.255,30,0.603,31,0.683,33,1.106,35,0.892,43,0.591,45,1.827,67,1.105,75,1.143,91,2.816,92,1.41,93,3.68,95,1.179,114,0.477,117,0.683,129,0.551,135,1.05,141,0.56,145,0.551,147,0.701,148,0.752,149,3.045,150,2.039,152,0.986,154,1.549,161,0.872,168,0.777,169,3.083,176,0.482,185,2.175,188,0.663,189,0.447,190,0.435,192,1.983,210,0.57,212,0.56,222,0.805,227,0.419,230,1.41,233,1.983,243,0.603,255,1.067,260,0.764,269,0.982,292,1.129,326,0.535,333,0.386,334,0.324,341,0.431,348,0.616,355,3.178,389,0.527,392,1.503,415,1.209,449,0.603,465,0.764,471,1.477,474,0.646,491,0.663,513,1.503,514,2.338,515,0.616,517,1.179,540,3.533,560,0.86,564,1.506,565,4.526,569,1.153,570,0.535,587,0.663,588,0.683,589,2.415,593,0.591,624,0.732,668,0.86,674,0.86,677,1.179,679,0.86,680,0.86,681,3.984,682,0.86,687,0.86,688,0.86,694,1.153,695,0.616,697,1.32,705,0.882,711,0.732,773,3.255,816,0.732,882,1.889,890,0.646,896,0.494,900,1,913,0.981,915,1.01,927,0.603,947,0.443,968,0.805,983,0.663,1011,2.426,1013,0.683,1016,6.063,1017,1.153,1028,0.764,1073,0.821,1101,2.283,1109,0.603,1120,1.32,1126,0.705,1141,0.764,1148,1.179,1211,0.646,1223,0.646,1251,0.646,1328,1.703,1417,0.705,1419,1.278,1437,0.705,1463,0.805,1483,0.683,1486,1.153,1544,0.705,1630,2.268,1631,2.268,1663,1.506,1684,1.506,1702,3.372,1703,0.86,1704,0.86,1705,0.86,1706,0.86,1707,0.86,1708,2.121,1709,0.86,1710,0.95,1711,0.95,1712,0.95,1713,3.147,1714,3.722,1715,1.777,1716,0.95,1717,3.722,1718,0.95,1719,0.95,1720,0.86,1721,1.777,1722,0.86,1723,0.764,1724,0.95,1725,1.777,1726,0.95,1727,0.95,1728,0.95,1729,0.95,1730,1.777,1731,0.95,1732,0.86,1733,0.95,1734,0.95,1735,0.95,1736,1.777,1737,0.95,1738,0.95,1739,0.95,1740,0.95,1741,0.95,1742,0.95,1743,2.121,1744,0.95,1745,2.504,1746,0.95,1747,0.86,1748,0.86,1749,0.95,1750,0.95,1751,0.95,1752,0.95]],["component/107",[1,0.411]],["title/108-1",[23,25.689]],["name/108-1",[]],["text/108-1",[]],["component/108-1",[]],["title/108-2",[26,18.526]],["name/108-2",[]],["text/108-2",[]],["component/108-2",[]],["title/108-3",[334,23.488]],["name/108-3",[]],["text/108-3",[]],["component/108-3",[]],["title/108-4",[269,18.168]],["name/108-4",[]],["text/108-4",[]],["component/108-4",[]],["title/108-5",[887,25.347]],["name/108-5",[]],["text/108-5",[]],["component/108-5",[]],["title/108-6",[788,18.782,889,21.076]],["name/108-6",[]],["text/108-6",[]],["component/108-6",[]],["title/108-7",[332,39.371]],["name/108-7",[]],["text/108-7",[]],["component/108-7",[]],["title/108-8",[1208,37.696]],["name/108-8",[]],["text/108-8",[]],["component/108-8",[]],["title/108-9",[10,32.125]],["name/108-9",[]],["text/108-9",[]],["component/108-9",[]],["title/108",[1022,53.086]],["name/108",[1022,1.069]],["text/108",[1,0.57,6,1.176,8,1.932,15,0.708,16,1.323,26,1.66,30,1.223,35,0.966,36,4.319,51,1.43,61,1.483,69,1.118,75,0.699,93,4.277,116,4.965,135,0.808,138,1.631,149,2.345,154,0.801,168,1.974,169,2.374,204,1.176,205,1.309,207,1.039,211,1.249,212,1.136,229,1.039,233,1.026,246,1.223,268,1.068,269,1.19,286,4.757,292,2.146,316,1.384,350,0.977,352,1.483,355,2.798,427,3.315,517,5.166,520,1.223,540,3.528,555,1.43,570,1.084,630,4.757,643,2.862,773,3.446,788,0.708,888,1.013,889,0.795,912,2.53,913,1.768,915,0.777,935,3.245,978,1.548,986,1.199,1013,1.384,1014,1.631,1022,5.239,1023,1.631,1481,1.278,1486,2.192,1625,3.06,1626,2.603,1627,1.43,1629,2.862,1634,1.744,1636,1.744,1646,2.717,1647,1.548,1649,1.744,1650,4.915,1651,4.915,1652,1.744,1680,1.631,1753,1.925,1754,1.925,1755,1.744,1756,1.925,1757,1.925,1758,3.378,1759,1.925,1760,1.925,1761,1.925,1762,1.925,1763,1.925,1764,1.925,1765,1.925]],["component/108",[1,0.411]],["title/109-1",[23,25.689]],["name/109-1",[]],["text/109-1",[]],["component/109-1",[]],["title/109-2",[26,18.526]],["name/109-2",[]],["text/109-2",[]],["component/109-2",[]],["title/109-3",[334,23.488]],["name/109-3",[]],["text/109-3",[]],["component/109-3",[]],["title/109-4",[269,18.168]],["name/109-4",[]],["text/109-4",[]],["component/109-4",[]],["title/109-5",[887,25.347]],["name/109-5",[]],["text/109-5",[]],["component/109-5",[]],["title/109-6",[788,25.347]],["name/109-6",[]],["text/109-6",[]],["component/109-6",[]],["title/109-7",[36,22.498,517,26.91,882,20.575]],["name/109-7",[]],["text/109-7",[]],["component/109-7",[]],["title/109-8",[1208,37.696]],["name/109-8",[]],["text/109-8",[]],["component/109-8",[]],["title/109-9",[36,28.326,161,25.052]],["name/109-9",[]],["text/109-9",[]],["component/109-9",[]],["title/109-10",[10,32.125]],["name/109-10",[]],["text/109-10",[]],["component/109-10",[]],["title/109",[807,55.412]],["name/109",[1766,1.386]],["text/109",[7,1.039,8,0.884,15,0.648,16,0.972,21,0.597,26,0.473,28,0.639,30,1.983,31,1.266,36,4.542,67,0.777,75,1.133,80,1.142,86,0.376,91,0.846,92,0.991,93,4.587,95,1.168,96,1.197,106,1.266,114,0.883,121,0.639,129,2.144,135,0.738,137,0.657,154,1.033,161,1.532,168,0.411,173,0.529,176,0.477,192,2.488,211,0.61,212,1.039,229,0.95,243,0.597,255,0.564,269,0.823,317,1.307,320,0.597,332,0.537,333,0.716,341,0.426,355,0.798,389,1.732,423,1.307,483,0.489,511,1.076,514,2.743,515,3.551,517,2.072,565,3.554,580,2.743,586,1.996,587,0.657,609,1.688,630,2.406,661,1.491,677,2.577,705,0.873,757,1.491,760,0.725,767,0.797,768,0.797,771,0.797,772,3.755,773,2.966,784,0.797,788,0.648,791,0.495,796,1.907,807,5.404,809,0.852,810,2.103,874,0.797,882,1.874,894,0.585,913,1.223,915,1.001,923,1.996,927,1.118,935,0.676,951,0.756,966,1.416,983,0.657,989,0.725,1022,2.846,1024,0.852,1025,0.852,1026,0.852,1029,0.797,1030,0.797,1056,0.537,1064,0.676,1073,0.813,1126,0.698,1148,1.168,1372,0.725,1406,0.657,1481,0.624,1486,0.61,1609,0.756,1627,0.698,1646,3.755,1647,3.755,1663,0.797,1709,0.852,1722,1.595,1723,0.756,1755,1.595,1767,0.797,1768,0.852,1769,0.725,1770,0.852,1771,0.94,1772,0.94,1773,0.94,1774,0.94,1775,0.94,1776,0.94,1777,0.94,1778,0.94,1779,0.94,1780,0.94,1781,0.94,1782,0.94,1783,0.94,1784,0.94,1785,0.94,1786,4.668,1787,2.482,1788,1.76,1789,0.94,1790,0.852,1791,1.76,1792,1.595,1793,1.76,1794,0.94,1795,0.94,1796,1.76,1797,0.94,1798,0.852,1799,0.94,1800,0.94,1801,0.94,1802,0.852]],["component/109",[1,0.411]],["title/110-1",[23,25.689]],["name/110-1",[]],["text/110-1",[]],["component/110-1",[]],["title/110-2",[26,18.526]],["name/110-2",[]],["text/110-2",[]],["component/110-2",[]],["title/110-3",[334,23.488]],["name/110-3",[]],["text/110-3",[]],["component/110-3",[]],["title/110-4",[1013,36.704,1028,41.06]],["name/110-4",[]],["text/110-4",[]],["component/110-4",[]],["title/110",[35,25.61,514,37.915]],["name/110",[1016,1.069]],["text/110",[3,1.784,10,2.657,11,1.2,15,1.621,21,1.666,26,0.705,35,3.734,37,3.168,43,4.157,68,1.886,75,2.069,93,3.579,114,1.316,128,1.476,129,1.522,135,2.8,149,2.96,150,1.137,161,2.796,169,2.997,207,2.378,211,1.702,310,1.886,332,1.499,341,1.189,355,4.076,363,1.522,392,1.574,474,1.784,512,1.886,513,3.419,520,1.666,624,2.021,677,2.683,678,3.992,694,1.702,695,1.702,755,1.886,792,1.633,795,2.021,873,2.021,882,1.331,890,1.784,896,2.289,900,2.48,989,2.021,1013,1.886,1017,1.702,1023,3.733,1028,2.109,1251,1.784,1393,2.376,1486,1.702,1702,7.302,1703,2.376,1704,2.376,1705,2.376,1706,2.376,1707,6.048,1747,6.048,1748,5.162,1769,2.021,1770,2.376,1803,2.109,1804,2.622,1805,3.733,1806,2.376,1807,2.622,1808,2.622,1809,2.622,1810,2.622,1811,2.622,1812,2.622,1813,2.622]],["component/110",[1,0.411]],["title/111-1",[23,25.689]],["name/111-1",[]],["text/111-1",[]],["component/111-1",[]],["title/111-2",[26,18.526]],["name/111-2",[]],["text/111-2",[]],["component/111-2",[]],["title/111-3",[232,49.533]],["name/111-3",[]],["text/111-3",[]],["component/111-3",[]],["title/111-4",[334,23.488]],["name/111-4",[]],["text/111-4",[]],["component/111-4",[]],["title/111-5",[1683,55.412]],["name/111-5",[]],["text/111-5",[]],["component/111-5",[]],["title/111-6",[334,23.488]],["name/111-6",[]],["text/111-6",[]],["component/111-6",[]],["title/111-7",[1814,58.365]],["name/111-7",[]],["text/111-7",[]],["component/111-7",[]],["title/111-8",[334,23.488]],["name/111-8",[]],["text/111-8",[]],["component/111-8",[]],["title/111",[24,28.739,511,31.192]],["name/111",[1815,1.386]],["text/111",[1,0.699,6,3.221,7,2.377,8,2.22,15,1.94,19,1.257,20,1.291,24,1.328,26,0.635,67,1.041,75,1.463,85,1.898,86,3.261,93,4.496,104,1.697,117,1.697,153,1.531,157,2.508,160,1.809,168,1.762,204,1.442,223,1.392,227,1.777,232,2.897,233,2.147,326,1.328,392,2.418,425,4.137,511,5.473,586,3.24,656,1.566,690,2.992,773,2.559,900,1.328,958,1.499,985,1.752,1017,2.614,1055,4.24,1056,3.013,1060,3.413,1064,1.697,1109,1.499,1112,1.291,1135,3.65,1136,3.24,1143,3.65,1319,3.24,1402,1.999,1524,1.999,1670,1.999,1683,5.014,1814,5.281,1816,4.028,1817,1.999,1818,2.359,1819,4.028,1820,2.359,1821,2.359,1822,2.359,1823,2.359,1824,1.818,1825,3.65,1826,2.359,1827,2.359,1828,1.999]],["component/111",[1,0.411]],["title/112-1",[23,25.689]],["name/112-1",[]],["text/112-1",[]],["component/112-1",[]],["title/112-2",[26,18.526]],["name/112-2",[]],["text/112-2",[]],["component/112-2",[]],["title/112-3",[6,42.095]],["name/112-3",[]],["text/112-3",[]],["component/112-3",[]],["title/112-4",[36,22.498,318,18.211,515,26.307]],["name/112-4",[]],["text/112-4",[]],["component/112-4",[]],["title/112-5",[36,22.498,174,29.153,515,26.307]],["name/112-5",[]],["text/112-5",[]],["component/112-5",[]],["title/112-6",[36,28.326,1829,46.248]],["name/112-6",[]],["text/112-6",[]],["component/112-6",[]],["title/112-7",[36,22.498,320,25.755,515,26.307]],["name/112-7",[]],["text/112-7",[]],["component/112-7",[]],["title/112-8",[1830,58.365]],["name/112-8",[]],["text/112-8",[]],["component/112-8",[]],["title/112-9",[1831,58.365]],["name/112-9",[]],["text/112-9",[]],["component/112-9",[]],["title/112-10",[1832,62.413]],["name/112-10",[]],["text/112-10",[]],["component/112-10",[]],["title/112-11",[1833,62.413]],["name/112-11",[]],["text/112-11",[]],["component/112-11",[]],["title/112-12",[1834,62.413]],["name/112-12",[]],["text/112-12",[]],["component/112-12",[]],["title/112-13",[1835,62.413]],["name/112-13",[]],["text/112-13",[]],["component/112-13",[]],["title/112-14",[1836,62.413]],["name/112-14",[]],["text/112-14",[]],["component/112-14",[]],["title/112-15",[1837,62.413]],["name/112-15",[]],["text/112-15",[]],["component/112-15",[]],["title/112-16",[1838,62.413]],["name/112-16",[]],["text/112-16",[]],["component/112-16",[]],["title/112-17",[1839,62.413]],["name/112-17",[]],["text/112-17",[]],["component/112-17",[]],["title/112-18",[1840,62.413]],["name/112-18",[]],["text/112-18",[]],["component/112-18",[]],["title/112-19",[471,40.649]],["name/112-19",[]],["text/112-19",[]],["component/112-19",[]],["title/112-20",[1841,62.413]],["name/112-20",[]],["text/112-20",[]],["component/112-20",[]],["title/112-21",[1708,58.365]],["name/112-21",[]],["text/112-21",[]],["component/112-21",[]],["title/112-22",[1842,62.413]],["name/112-22",[]],["text/112-22",[]],["component/112-22",[]],["title/112-23",[1104,42.095]],["name/112-23",[]],["text/112-23",[]],["component/112-23",[]],["title/112-24",[389,28.326,427,31.192]],["name/112-24",[]],["text/112-24",[]],["component/112-24",[]],["title/112-25",[389,28.326,540,29.174]],["name/112-25",[]],["text/112-25",[]],["component/112-25",[]],["title/112",[36,28.326,515,33.12]],["name/112",[1843,1.386]],["text/112",[1,0.148,6,1.099,7,1.061,8,0.177,10,0.448,15,0.513,19,0.512,20,0.273,24,0.281,26,0.375,36,2.753,45,0.289,75,2.016,85,0.401,86,0.199,91,1.377,92,0.281,93,4.492,95,0.331,96,0.654,106,0.358,111,0.304,117,0.691,121,0.339,122,0.316,124,0.526,128,0.281,135,0.209,149,0.259,152,0.773,153,0.624,154,1.053,160,0.432,168,0.421,173,0.281,174,0.358,176,0.253,177,0.299,192,0.743,202,1.121,207,0.269,210,0.299,221,0.316,223,0.567,238,0.401,253,0.422,269,0.131,287,5.017,292,0.611,309,0.37,318,0.432,320,0.316,323,0.358,326,0.281,333,2.653,339,0.577,352,0.741,355,2.823,389,1.208,423,0.37,430,0.262,466,0.339,471,0.822,483,0.724,515,3.603,540,1.027,547,0.358,565,3.609,570,0.281,609,1.223,642,0.451,661,1.523,694,0.323,705,0.247,763,0.331,772,1.121,786,6.709,796,0.588,802,0.401,814,0.451,847,0.815,882,2.292,886,0.871,900,0.281,912,0.232,915,0.201,923,2.797,958,0.316,982,0.624,1017,0.624,1045,1.844,1052,0.348,1056,0.285,1104,1.099,1150,0.654,1320,0.774,1328,0.339,1351,0.422,1627,0.37,1646,0.774,1647,0.774,1668,0.422,1680,0.815,1684,0.422,1708,1.181,1723,0.401,1743,0.422,1792,1.629,1798,0.871,1802,0.451,1828,0.422,1829,1.972,1830,0.815,1831,0.815,1832,1.263,1833,1.263,1834,0.871,1835,0.871,1836,0.871,1837,0.871,1838,0.871,1839,1.263,1840,1.263,1841,1.263,1842,1.263,1844,0.498,1845,0.498,1846,0.498,1847,0.498,1848,0.498,1849,0.451,1850,0.451,1851,0.422,1852,0.871,1853,0.498,1854,0.498,1855,3.477,1856,0.498,1857,2.176,1858,0.498,1859,3.18,1860,0.498,1861,0.871,1862,0.498,1863,0.498,1864,0.498,1865,0.962,1866,0.962,1867,0.451,1868,0.498,1869,0.422,1870,0.498,1871,0.962,1872,0.498,1873,0.498,1874,0.498,1875,0.498,1876,0.498,1877,0.498,1878,0.498,1879,0.498,1880,0.498,1881,0.498,1882,0.498,1883,0.498,1884,0.498,1885,0.498,1886,0.498,1887,0.498,1888,0.498,1889,0.498,1890,0.498,1891,0.498,1892,2.531,1893,0.498,1894,0.498,1895,0.498,1896,0.498,1897,0.498,1898,0.498,1899,0.498,1900,0.498,1901,0.498,1902,0.498,1903,0.498,1904,0.498,1905,0.498,1906,0.498,1907,0.498,1908,0.498,1909,0.498,1910,0.498,1911,0.498,1912,0.498,1913,0.498,1914,0.498,1915,0.498,1916,0.498,1917,0.498,1918,0.498,1919,0.498,1920,0.498,1921,0.498,1922,0.498,1923,0.498,1924,0.498,1925,0.498,1926,0.498,1927,0.498,1928,0.498,1929,0.498,1930,0.498,1931,0.498,1932,0.498,1933,0.498,1934,0.498,1935,0.498,1936,0.498,1937,0.498,1938,0.498,1939,0.498,1940,0.498,1941,0.498,1942,0.498,1943,0.498,1944,0.498,1945,0.498,1946,0.498,1947,0.498,1948,0.498,1949,0.498,1950,0.498,1951,0.498,1952,0.498,1953,0.498,1954,0.498,1955,0.498,1956,0.498,1957,0.498,1958,0.498,1959,0.498,1960,0.498,1961,0.498,1962,0.498,1963,0.498,1964,0.498,1965,0.498,1966,0.498,1967,0.498,1968,0.498,1969,0.498,1970,0.498,1971,0.498,1972,0.498,1973,0.498,1974,0.498,1975,0.498,1976,0.498,1977,0.498,1978,0.498,1979,0.498,1980,0.498,1981,0.498,1982,0.498,1983,0.498,1984,0.498,1985,0.498,1986,0.498,1987,0.498,1988,0.498,1989,0.498,1990,0.498,1991,0.498,1992,0.498,1993,0.498,1994,0.498,1995,0.498,1996,0.498,1997,0.498,1998,0.498,1999,0.498,2000,0.498,2001,0.498,2002,0.498,2003,0.498,2004,0.498,2005,0.498,2006,0.498,2007,0.498,2008,0.498,2009,1.798,2010,0.498,2011,0.498,2012,0.498,2013,0.498,2014,0.498,2015,0.498,2016,0.498,2017,0.498,2018,0.498,2019,0.498,2020,0.498,2021,0.498,2022,0.498,2023,0.498,2024,0.451,2025,0.498,2026,0.498,2027,0.498,2028,0.498,2029,0.498,2030,0.498,2031,0.498,2032,0.498,2033,0.498,2034,0.498,2035,0.498,2036,0.498,2037,0.498,2038,0.498,2039,0.498,2040,0.498,2041,0.498,2042,0.498,2043,0.498,2044,0.498,2045,0.498,2046,0.498,2047,0.962,2048,1.394,2049,0.498,2050,0.498,2051,0.962,2052,2.176,2053,0.962,2054,0.962,2055,0.498,2056,0.498,2057,0.498,2058,0.962,2059,2.865,2060,0.498,2061,0.498,2062,0.498,2063,0.498,2064,0.498,2065,0.498,2066,0.498,2067,0.498,2068,0.498,2069,0.498]],["component/112",[1,0.411]],["title/113-1",[23,25.689]],["name/113-1",[]],["text/113-1",[]],["component/113-1",[]],["title/113-2",[26,18.526]],["name/113-2",[]],["text/113-2",[]],["component/113-2",[]],["title/113-3",[6,42.095]],["name/113-3",[]],["text/113-3",[]],["component/113-3",[]],["title/113-4",[334,23.488]],["name/113-4",[]],["text/113-4",[]],["component/113-4",[]],["title/113-5",[269,18.168]],["name/113-5",[]],["text/113-5",[]],["component/113-5",[]],["title/113-6",[887,25.347]],["name/113-6",[]],["text/113-6",[]],["component/113-6",[]],["title/113-7",[15,18.782,341,23.138]],["name/113-7",[]],["text/113-7",[]],["component/113-7",[]],["title/113-8",[129,39.992]],["name/113-8",[]],["text/113-8",[]],["component/113-8",[]],["title/113-9",[1767,58.365]],["name/113-9",[]],["text/113-9",[]],["component/113-9",[]],["title/113",[36,28.326,129,29.634]],["name/113",[757,1.175]],["text/113",[1,0.422,6,3.759,7,0.84,8,1.261,10,1.204,15,1.302,19,0.759,20,0.779,21,0.905,24,1.453,26,0.694,30,1.64,31,1.024,36,5.246,37,1.024,67,1.139,68,1.024,75,0.517,80,0.924,86,1.033,93,3.658,106,1.024,122,0.905,124,0.779,129,4.795,135,1.485,137,0.995,152,2.795,154,0.593,157,1.607,160,1.159,161,1.267,167,1.024,168,0.623,174,2.545,176,1.31,192,4.758,194,1.145,211,1.675,223,0.84,243,0.905,269,0.376,316,1.024,317,1.917,320,2.249,333,1.049,341,1.17,355,1.17,356,1.207,363,0.827,389,0.79,423,1.917,449,0.905,471,0.84,476,0.779,483,0.74,511,3.441,515,5.661,517,1.713,520,0.905,570,0.802,580,1.058,609,0.968,677,2.372,730,0.905,755,1.024,760,2.728,766,2.338,767,1.207,768,1.207,771,1.207,772,5.315,773,3.577,784,1.207,791,0.749,796,1.577,810,2.999,871,1.207,874,1.207,882,1.31,890,2.407,908,1.145,913,0.558,915,0.575,927,0.905,958,0.905,966,2.076,989,1.097,1029,1.207,1030,1.207,1055,1.145,1056,1.475,1060,1.207,1064,2.545,1126,1.058,1139,1.058,1228,0.945,1609,1.145,1767,2.999,1768,1.29,1769,1.097,1803,1.145,1830,1.207,1831,1.207,1849,2.338,1850,3.207,1852,1.29,1861,1.29,2070,1.424,2071,1.424,2072,2.581,2073,1.424,2074,5.631,2075,1.424,2076,1.207,2077,1.424,2078,1.424,2079,1.424,2080,1.424,2081,1.29,2082,1.424,2083,1.424,2084,1.424,2085,1.424]],["component/113",[1,0.411]],["title/114-1",[23,25.689]],["name/114-1",[]],["text/114-1",[]],["component/114-1",[]],["title/114-2",[2086,55.412]],["name/114-2",[]],["text/114-2",[]],["component/114-2",[]],["title/114-3",[26,18.526]],["name/114-3",[]],["text/114-3",[]],["component/114-3",[]],["title/114-4",[334,23.488]],["name/114-4",[]],["text/114-4",[]],["component/114-4",[]],["title/114-5",[269,18.168]],["name/114-5",[]],["text/114-5",[]],["component/114-5",[]],["title/114-6",[887,25.347]],["name/114-6",[]],["text/114-6",[]],["component/114-6",[]],["title/114-7",[8,18.179,312,41.06]],["name/114-7",[]],["text/114-7",[]],["component/114-7",[]],["title/114-8",[788,25.347]],["name/114-8",[]],["text/114-8",[]],["component/114-8",[]],["title/114-9",[425,45.722]],["name/114-9",[]],["text/114-9",[]],["component/114-9",[]],["title/114",[512,36.704,513,30.639]],["name/114",[1805,1.175]],["text/114",[8,2.233,10,1.11,16,0.351,24,0.505,26,0.241,30,0.57,33,1.483,48,0.582,51,0.666,67,0.743,75,1.79,82,0.645,86,0.675,91,0.431,92,0.505,93,3.963,96,1.146,104,1.211,135,0.999,145,0.521,147,0.354,150,3.238,153,2.309,154,0.373,156,0.427,157,0.559,160,0.403,161,0.44,168,1.042,176,0.455,177,1.011,189,0.423,190,0.411,200,2.313,204,1.029,211,0.582,227,0.396,229,0.484,230,2.286,233,3.75,243,0.57,246,0.57,255,1.802,268,0.498,269,0.444,326,0.948,327,1.211,332,0.513,348,0.582,350,0.455,355,0.764,387,0.666,389,0.498,391,1.251,392,0.539,415,1.62,425,2.362,430,0.472,435,0.691,440,0.582,462,0.691,483,0.466,493,1.769,511,1.455,512,2.92,513,3.186,520,1.07,540,1.716,564,2.018,565,6.358,579,0.722,586,1.355,596,0.666,603,0.627,624,0.691,656,0.596,681,3.015,690,3.661,697,0.666,755,0.645,756,1.427,773,1.907,788,0.62,847,3.44,873,0.691,888,0.472,900,0.948,913,0.66,951,0.722,958,0.57,979,0.813,982,1.093,986,2.216,1012,1.355,1017,1.093,1052,0.627,1054,0.645,1056,2.034,1062,2.26,1076,0.813,1080,0.722,1109,2.579,1112,1.643,1136,0.722,1141,1.355,1158,0.645,1223,0.61,1228,0.596,1251,1.146,1265,1.251,1307,0.76,1328,1.146,1335,0.691,1345,0.666,1402,3.44,1429,0.813,1435,0.691,1486,0.582,1524,1.427,1537,0.76,1639,0.813,1683,1.355,1685,0.813,1697,4.466,1743,1.427,1803,0.722,1805,3.825,1806,0.813,1814,0.76,1817,0.76,1825,0.813,1828,2.018,1851,0.76,2087,1.685,2088,3.002,2089,0.897,2090,1.526,2091,0.897,2092,0.897,2093,0.897,2094,0.897,2095,3.558,2096,3.002,2097,2.381,2098,1.685,2099,3.224,2100,4.06,2101,4.06,2102,0.897,2103,0.897,2104,0.897,2105,0.897,2106,0.897,2107,0.897,2108,0.897,2109,1.685,2110,0.813,2111,0.897,2112,0.897,2113,0.76,2114,0.897,2115,2.381,2116,4.515,2117,1.685,2118,1.685,2119,0.813,2120,0.897,2121,1.685,2122,1.685,2123,0.897,2124,1.685,2125,0.897,2126,1.685,2127,0.897,2128,0.897]],["component/114",[1,0.411]],["title/115-1",[23,25.689]],["name/115-1",[]],["text/115-1",[]],["component/115-1",[]],["title/115-2",[26,18.526]],["name/115-2",[]],["text/115-2",[]],["component/115-2",[]],["title/115-3",[334,23.488]],["name/115-3",[]],["text/115-3",[]],["component/115-3",[]],["title/115-4",[269,18.168]],["name/115-4",[]],["text/115-4",[]],["component/115-4",[]],["title/115-5",[887,25.347]],["name/115-5",[]],["text/115-5",[]],["component/115-5",[]],["title/115-6",[788,25.347]],["name/115-6",[]],["text/115-6",[]],["component/115-6",[]],["title/115-7",[1033,32.768]],["name/115-7",[]],["text/115-7",[]],["component/115-7",[]],["title/115-8",[318,22.928,509,31.192]],["name/115-8",[]],["text/115-8",[]],["component/115-8",[]],["title/115-9",[334,23.488]],["name/115-9",[]],["text/115-9",[]],["component/115-9",[]],["title/115-10",[269,18.168]],["name/115-10",[]],["text/115-10",[]],["component/115-10",[]],["title/115",[318,18.211,504,32.613,505,25.755]],["name/115",[2129,1.175]],["text/115",[0,1.129,1,0.492,8,1.429,12,0.863,15,1.09,16,1.16,19,0.885,20,0.908,26,0.446,33,1.034,35,0.833,67,0.732,75,1.457,82,1.194,86,0.665,91,1.424,93,3.353,111,1.014,114,2.013,124,0.908,147,2.841,148,0.702,150,2.115,154,0.691,156,2.664,158,0.767,160,0.746,161,0.815,176,0.842,182,1.559,189,1.89,190,2.231,227,0.732,269,1.477,318,3.416,330,1.034,333,1.982,339,0.996,363,0.964,427,1.014,431,1.504,471,0.98,504,6.117,505,5.44,509,3.422,520,1.882,537,1.279,555,1.233,570,1.668,677,2.926,694,1.077,705,0.824,732,1.233,736,1.279,737,1.159,739,1.129,764,0.726,901,1.504,913,1.16,915,0.67,916,0.739,947,0.774,969,2.069,974,1.034,977,1.129,1073,1.369,1078,2.383,1085,1.407,1090,3.923,1097,1.279,1098,1.279,1100,2.663,1101,4.02,1104,1.811,1112,1.621,1266,1.279,1270,4.673,1315,2.283,1327,1.279,1336,2.885,1352,2.383,1361,2.51,1869,1.407,2129,6.443,2130,1.504,2131,1.504,2132,1.66,2133,1.66,2134,2.685,2135,1.66,2136,1.407,2137,1.407,2138,1.66,2139,1.504,2140,1.504,2141,1.66,2142,1.66,2143,1.407,2144,1.66,2145,1.335,2146,1.66,2147,1.335,2148,1.279,2149,1.335,2150,2.685,2151,1.66,2152,2.685,2153,1.66]],["component/115",[1,0.411]],["title/116-1",[23,25.689]],["name/116-1",[]],["text/116-1",[]],["component/116-1",[]],["title/116-2",[182,26.855,1284,37.915]],["name/116-2",[]],["text/116-2",[]],["component/116-2",[]],["title/116-3",[158,23.576,1096,43.249]],["name/116-3",[]],["text/116-3",[]],["component/116-3",[]],["title/116-4",[26,18.526]],["name/116-4",[]],["text/116-4",[]],["component/116-4",[]],["title/116-5",[334,23.488]],["name/116-5",[]],["text/116-5",[]],["component/116-5",[]],["title/116-6",[269,18.168]],["name/116-6",[]],["text/116-6",[]],["component/116-6",[]],["title/116-7",[887,25.347]],["name/116-7",[]],["text/116-7",[]],["component/116-7",[]],["title/116-8",[788,18.782,889,21.076]],["name/116-8",[]],["text/116-8",[]],["component/116-8",[]],["title/116-9",[2154,68.884]],["name/116-9",[]],["text/116-9",[]],["component/116-9",[]],["title/116-10",[10,32.125]],["name/116-10",[]],["text/116-10",[]],["component/116-10",[]],["title/116-11",[1033,32.768]],["name/116-11",[]],["text/116-11",[]],["component/116-11",[]],["title/116-12",[158,23.576,318,22.928]],["name/116-12",[]],["text/116-12",[]],["component/116-12",[]],["title/116-13",[26,18.526]],["name/116-13",[]],["text/116-13",[]],["component/116-13",[]],["title/116-14",[334,23.488]],["name/116-14",[]],["text/116-14",[]],["component/116-14",[]],["title/116-15",[269,18.168]],["name/116-15",[]],["text/116-15",[]],["component/116-15",[]],["title/116-16",[887,25.347]],["name/116-16",[]],["text/116-16",[]],["component/116-16",[]],["title/116-17",[15,18.782,341,23.138]],["name/116-17",[]],["text/116-17",[]],["component/116-17",[]],["title/116-18",[67,30.394]],["name/116-18",[]],["text/116-18",[]],["component/116-18",[]],["title/116-19",[1208,37.696]],["name/116-19",[]],["text/116-19",[]],["component/116-19",[]],["title/116-20",[158,18.726,318,18.211,608,34.351]],["name/116-20",[]],["text/116-20",[]],["component/116-20",[]],["title/116-21",[26,18.526]],["name/116-21",[]],["text/116-21",[]],["component/116-21",[]],["title/116-22",[334,23.488]],["name/116-22",[]],["text/116-22",[]],["component/116-22",[]],["title/116-23",[176,34.958]],["name/116-23",[]],["text/116-23",[]],["component/116-23",[]],["title/116-24",[788,25.347]],["name/116-24",[]],["text/116-24",[]],["component/116-24",[]],["title/116-25",[1033,32.768]],["name/116-25",[]],["text/116-25",[]],["component/116-25",[]],["title/116",[158,23.576,318,22.928]],["name/116",[2155,1.256]],["text/116",[8,1.585,10,0.936,12,1.953,13,0.256,15,0.609,16,0.501,21,0.812,24,0.495,26,0.629,30,0.812,31,0.327,32,0.366,48,0.295,55,0.327,67,0.201,69,0.264,75,0.85,86,0.182,91,0.423,92,0.495,93,3.681,95,0.849,96,1.125,98,0.708,103,0.385,104,0.92,112,0.35,114,1.758,132,0.366,135,0.369,141,0.976,142,0.338,145,0.264,147,2.204,148,0.541,150,0.87,151,0.338,152,0.71,154,0.532,156,1.903,157,1.03,158,2.153,160,0.395,167,0.327,168,1.161,169,1.231,173,0.256,182,3.837,189,1.102,190,1.071,195,0.412,204,0.278,207,0.475,212,1.184,220,0.412,227,0.201,229,0.245,230,0.72,233,0.681,243,0.289,249,0.781,269,0.779,276,0.708,291,0.633,317,1.738,318,1.453,320,0.559,328,0.366,330,0.283,331,0.317,332,0.26,333,0.816,339,0.528,341,0.206,343,0.327,347,0.317,348,0.571,350,0.231,355,1.467,363,3.515,365,2.046,389,0.488,390,0.338,392,0.993,406,0.338,425,0.849,430,0.87,449,1.051,454,0.849,466,3.799,471,0.755,480,0.519,483,0.859,491,0.317,492,0.295,504,0.366,506,0.366,508,0.87,509,2.72,510,0.654,511,0.278,512,0.633,537,0.35,541,0.412,547,0.327,558,0.35,563,0.366,569,0.295,570,0.931,580,0.338,587,0.893,589,3.155,592,0.385,593,1.03,599,0.283,603,0.317,608,1.701,625,0.745,659,0.797,664,0.309,670,0.412,677,2.29,694,1.073,695,0.571,707,1.029,718,1.819,734,0.745,747,0.708,760,0.35,763,4.019,764,0.559,773,0.559,788,0.324,789,0.338,792,1.03,795,0.35,796,0.278,798,0.412,799,0.412,801,1.738,802,2.818,803,0.412,804,0.598,813,0.412,834,0.385,840,0.289,882,0.231,888,0.239,889,0.188,900,0.495,906,0.366,912,0.596,913,0.917,915,0.81,923,0.708,927,0.289,931,0.385,947,0.212,950,0.385,959,0.385,968,0.385,969,0.893,986,1.03,996,0.412,998,0.412,1010,0.366,1018,1.084,1021,0.366,1052,0.317,1056,0.731,1062,0.559,1073,0.21,1089,0.654,1096,5.997,1100,1.553,1101,3.382,1104,1.011,1109,0.289,1141,0.366,1148,1.553,1209,0.35,1223,0.309,1270,1.916,1284,1.229,1287,0.412,1299,0.745,1316,0.338,1328,0.309,1336,0.327,1342,0.35,1372,0.35,1376,0.385,1396,0.412,1406,0.893,1419,0.633,1435,0.35,1437,0.654,1459,0.338,1483,0.327,1513,0.338,1544,0.338,1549,0.412,1551,0.708,1626,2.046,1769,0.35,1790,0.412,1824,0.986,2113,0.745,2129,0.745,2148,0.35,2150,0.412,2152,0.412,2155,4.406,2156,0.454,2157,0.454,2158,0.454,2159,0.412,2160,0.797,2161,0.797,2162,1.159,2163,0.412,2164,0.88,2165,0.454,2166,0.454,2167,2.953,2168,0.454,2169,0.88,2170,2.007,2171,0.454,2172,0.454,2173,0.88,2174,0.454,2175,1.279,2176,1.279,2177,0.454,2178,0.88,2179,0.88,2180,0.454,2181,0.678,2182,0.454,2183,2.655,2184,2.007,2185,0.454,2186,0.454,2187,0.454,2188,0.454,2189,0.454,2190,2.007,2191,0.454,2192,0.454,2193,0.454,2194,0.454,2195,0.454,2196,0.338,2197,0.454,2198,0.454,2199,0.454,2200,0.454,2201,0.454,2202,0.88,2203,0.454,2204,0.454,2205,0.454,2206,0.454,2207,0.454,2208,0.454,2209,0.454,2210,0.454,2211,0.454,2212,0.454,2213,0.454,2214,1.159,2215,0.88,2216,0.454,2217,0.88,2218,0.454,2219,0.88,2220,0.412,2221,0.88,2222,0.454,2223,0.88,2224,0.454,2225,0.454,2226,0.454,2227,0.454,2228,0.454,2229,0.454,2230,0.454,2231,0.454,2232,0.454,2233,0.454,2234,0.454,2235,0.454,2236,0.454,2237,0.454,2238,0.454,2239,0.454,2240,0.454,2241,0.454,2242,0.454,2243,0.412,2244,0.454,2245,0.454,2246,0.454,2247,0.385,2248,0.454,2249,0.454,2250,0.454,2251,0.454,2252,0.454,2253,0.454,2254,0.454,2255,0.454,2256,0.454,2257,0.454,2258,0.454,2259,0.454]],["component/116",[1,0.411]],["title/117-1",[23,25.689]],["name/117-1",[]],["text/117-1",[]],["component/117-1",[]],["title/117-2",[26,18.526]],["name/117-2",[]],["text/117-2",[]],["component/117-2",[]],["title/117-3",[334,23.488]],["name/117-3",[]],["text/117-3",[]],["component/117-3",[]],["title/117-4",[269,18.168]],["name/117-4",[]],["text/117-4",[]],["component/117-4",[]],["title/117-5",[887,25.347]],["name/117-5",[]],["text/117-5",[]],["component/117-5",[]],["title/117-6",[788,25.347]],["name/117-6",[]],["text/117-6",[]],["component/117-6",[]],["title/117-7",[1033,32.768]],["name/117-7",[]],["text/117-7",[]],["component/117-7",[]],["title/117",[318,18.211,509,24.775,510,30.115]],["name/117",[2163,1.256]],["text/117",[1,0.531,8,1.13,12,1.649,16,1.243,19,0.955,20,0.981,26,0.482,45,1.041,53,1.382,67,1.4,75,1.152,86,0.718,93,2.413,114,0.9,124,0.981,143,1.289,147,2.96,148,0.758,150,2.556,152,2.368,153,1.163,154,2.712,158,0.828,160,0.805,189,2.776,190,2.697,192,0.955,197,1.442,208,1.382,210,1.904,227,0.791,269,1.36,318,2.648,330,1.116,333,1.29,339,1.076,430,1.669,454,1.19,480,1.058,508,1.219,509,4.305,510,6.363,529,1.332,572,1.624,592,1.519,593,1.976,677,2.01,695,1.163,705,1.574,723,1.219,764,0.784,788,0.66,882,0.91,913,1.243,915,1.28,916,0.798,947,0.836,977,1.219,1018,0.968,1073,1.465,1097,2.445,1100,3.423,1101,4.16,1104,1.096,1112,0.981,1125,1.624,1211,2.158,1265,1.332,1270,4.571,1298,2.875,1305,2.688,1306,1.519,1312,2.688,1313,1.519,1315,2.445,1336,2.281,1869,1.519,2147,1.442,2162,5.903,2214,1.624,2243,6.383,2260,6.515,2261,8.566,2262,1.793,2263,1.793,2264,3.173,2265,1.793,2266,1.793,2267,1.793,2268,1.793,2269,1.793,2270,5.157,2271,1.793]],["component/117",[1,0.411]],["title/118-1",[23,25.689]],["name/118-1",[]],["text/118-1",[]],["component/118-1",[]],["title/118-2",[26,18.526]],["name/118-2",[]],["text/118-2",[]],["component/118-2",[]],["title/118-3",[334,23.488]],["name/118-3",[]],["text/118-3",[]],["component/118-3",[]],["title/118-4",[269,18.168]],["name/118-4",[]],["text/118-4",[]],["component/118-4",[]],["title/118-5",[887,25.347]],["name/118-5",[]],["text/118-5",[]],["component/118-5",[]],["title/118-6",[788,25.347]],["name/118-6",[]],["text/118-6",[]],["component/118-6",[]],["title/118-7",[1033,32.768]],["name/118-7",[]],["text/118-7",[]],["component/118-7",[]],["title/118",[318,18.211,505,25.755,507,32.613]],["name/118",[2272,1.256]],["text/118",[0,1.654,1,0.72,8,1.473,12,1.264,15,1.521,16,1.619,19,1.296,20,1.331,25,1.957,26,0.654,35,1.22,56,1.875,67,1.073,75,1.501,86,0.974,91,1.169,93,2.356,111,1.486,114,2.705,124,1.331,147,2.509,148,1.029,150,2.338,154,1.012,156,1.967,158,1.124,160,1.093,182,2.175,189,2.539,190,2.467,227,1.824,255,1.46,269,1.677,318,2.856,330,1.515,331,1.699,333,0.989,339,1.46,344,1.699,376,1.578,427,1.486,471,1.435,505,5.966,507,5.732,570,2.328,579,1.957,589,1.578,677,2.539,705,1.207,732,1.807,764,1.064,913,1.619,915,0.981,916,1.083,947,1.134,1073,1.124,1085,2.061,1090,1.957,1100,4.221,1101,4.014,1104,1.486,1112,1.331,1260,1.875,1270,4.126,1327,1.875,1336,1.749,1361,2.061,1417,1.807,2130,2.204,2134,2.204,2136,2.061,2137,2.061,2140,2.204,2143,2.061,2145,1.957,2147,1.957,2148,1.875,2149,1.957,2272,6.457,2273,2.432,2274,2.432,2275,2.432,2276,2.061,2277,2.432,2278,2.432,2279,2.432,2280,2.432,2281,2.432,2282,2.432]],["component/118",[1,0.411]],["title/119-1",[23,25.689]],["name/119-1",[]],["text/119-1",[]],["component/119-1",[]],["title/119-2",[26,18.526]],["name/119-2",[]],["text/119-2",[]],["component/119-2",[]],["title/119-3",[334,23.488]],["name/119-3",[]],["text/119-3",[]],["component/119-3",[]],["title/119-4",[269,18.168]],["name/119-4",[]],["text/119-4",[]],["component/119-4",[]],["title/119-5",[887,25.347]],["name/119-5",[]],["text/119-5",[]],["component/119-5",[]],["title/119-6",[788,25.347]],["name/119-6",[]],["text/119-6",[]],["component/119-6",[]],["title/119-7",[1033,32.768]],["name/119-7",[]],["text/119-7",[]],["component/119-7",[]],["title/119-8",[318,22.928,509,31.192]],["name/119-8",[]],["text/119-8",[]],["component/119-8",[]],["title/119-9",[334,23.488]],["name/119-9",[]],["text/119-9",[]],["component/119-9",[]],["title/119-10",[269,18.168]],["name/119-10",[]],["text/119-10",[]],["component/119-10",[]],["title/119",[318,18.211,505,25.755,506,32.613]],["name/119",[2283,1.256]],["text/119",[0,1.145,1,0.499,8,1.069,12,0.875,15,1.104,16,1.175,19,0.897,20,0.921,26,0.453,33,1.049,35,0.845,67,0.743,75,1.474,86,0.674,91,0.809,93,3.086,111,1.029,114,2.036,124,0.921,147,2.863,148,1.269,150,1.76,154,1.249,156,0.801,158,0.778,160,0.756,173,0.948,176,0.855,182,1.579,189,1.911,190,2.254,207,0.909,227,0.743,269,1.491,318,3.441,326,0.948,329,1.298,330,1.049,331,2.096,333,2.003,339,1.011,361,1.211,427,1.029,471,0.994,493,1.251,497,1.176,503,3.265,505,5.782,506,6.702,507,1.355,509,3.455,520,1.07,537,1.298,570,1.689,677,2.952,694,1.093,705,0.835,732,1.251,736,1.298,739,1.145,764,0.737,913,1.175,915,0.679,916,0.75,945,1.298,947,0.785,949,1.526,969,2.096,1073,1.386,1078,2.414,1090,3.964,1097,1.298,1098,1.298,1100,2.694,1101,4.046,1104,1.834,1112,1.642,1270,4.709,1315,2.312,1336,2.919,1352,1.355,1451,1.526,1588,1.526,1611,1.526,1824,1.298,2131,1.526,2136,1.427,2137,1.427,2143,1.427,2145,1.355,2147,1.355,2148,1.298,2149,1.355,2283,6.94,2284,1.684,2285,1.684,2286,1.684,2287,1.684,2288,1.684,2289,1.684,2290,1.526,2291,1.684,2292,1.684,2293,1.684,2294,1.684,2295,3.001,2296,1.684,2297,3.001,2298,1.684]],["component/119",[1,0.411]],["title/120-1",[23,25.689]],["name/120-1",[]],["text/120-1",[]],["component/120-1",[]],["title/120-2",[26,18.526]],["name/120-2",[]],["text/120-2",[]],["component/120-2",[]],["title/120-3",[334,23.488]],["name/120-3",[]],["text/120-3",[]],["component/120-3",[]],["title/120-4",[269,18.168]],["name/120-4",[]],["text/120-4",[]],["component/120-4",[]],["title/120",[318,18.211,508,27.575,509,24.775]],["name/120",[2160,1.256]],["text/120",[1,0.902,12,1.583,19,1.624,20,1.667,24,2.809,26,0.819,42,5.741,67,2.796,93,3.394,124,1.667,147,3.772,150,1.321,152,4.065,158,1.407,176,1.546,189,1.435,190,1.394,197,2.451,269,0.804,318,3.63,330,1.897,333,2.576,430,1.603,508,4.309,509,5.599,593,3.946,677,3.449,875,2.582,894,1.897,958,3.17,977,2.072,1018,1.645,1073,1.407,1097,3.845,1101,4.214,1104,3.049,1112,1.667,1211,2.072,1270,5.631,1336,3.588,2159,5.741,2161,5.741,2299,7.324,2300,3.047,2301,3.047,2302,3.047,2303,3.047,2304,3.047,2305,3.047]],["component/120",[1,0.411]],["title/121-1",[23,25.689]],["name/121-1",[]],["text/121-1",[]],["component/121-1",[]],["title/121-2",[26,18.526]],["name/121-2",[]],["text/121-2",[]],["component/121-2",[]],["title/121-3",[334,23.488]],["name/121-3",[]],["text/121-3",[]],["component/121-3",[]],["title/121-4",[269,18.168]],["name/121-4",[]],["text/121-4",[]],["component/121-4",[]],["title/121-5",[887,25.347]],["name/121-5",[]],["text/121-5",[]],["component/121-5",[]],["title/121-6",[788,25.347]],["name/121-6",[]],["text/121-6",[]],["component/121-6",[]],["title/121-7",[1033,32.768]],["name/121-7",[]],["text/121-7",[]],["component/121-7",[]],["title/121",[180,21.888,498,24.336,501,31.244]],["name/121",[2306,1.256]],["text/121",[8,0.8,11,2.325,15,1.421,16,0.88,26,0.604,75,1.403,86,0.9,93,2.943,114,1.127,128,1.265,146,1.569,147,2.682,148,0.95,152,2.82,154,0.935,155,1.458,156,1.069,160,1.009,173,1.265,176,1.96,180,1.213,182,1.182,227,0.991,269,1.958,287,4.689,318,2.282,333,1.57,341,1.018,355,1.751,360,1.616,367,1.349,446,1.731,498,1.349,501,6.124,593,1.399,599,1.399,607,1.491,677,1.058,705,1.917,729,2.869,730,2.454,731,1.669,735,2.869,737,2.698,740,2.869,764,0.983,913,1.513,915,1.559,916,1,936,2.999,947,1.048,974,1.399,1018,1.213,1031,3.654,1032,3.774,1073,2.347,1077,1.731,1082,2.869,1086,2.977,1100,4.004,1112,2.114,1118,1.569,1152,1.731,1270,5.444,1284,1.669,1459,1.669,1526,1.731,2139,3.5,2181,1.731,2306,7.2,2307,1.807,2308,8.389,2309,3.273,2310,1.904,2311,3.107,2312,2.247,2313,2.247,2314,2.247,2315,2.247,2316,2.247,2317,2.247,2318,2.247]],["component/121",[1,0.411]],["title/122-1",[23,25.689]],["name/122-1",[]],["text/122-1",[]],["component/122-1",[]],["title/122-2",[26,18.526]],["name/122-2",[]],["text/122-2",[]],["component/122-2",[]],["title/122-3",[334,23.488]],["name/122-3",[]],["text/122-3",[]],["component/122-3",[]],["title/122-4",[269,18.168]],["name/122-4",[]],["text/122-4",[]],["component/122-4",[]],["title/122",[180,18.154,498,20.184,499,27.049,1050,28.49]],["name/122",[2319,1.256]],["text/122",[11,2.628,15,2.113,24,1.493,26,0.713,48,1.721,75,1.615,93,3.002,128,1.493,135,1.113,137,1.852,146,1.852,147,2.652,152,3.187,155,1.721,156,1.261,157,1.651,173,1.493,176,2.257,180,1.432,182,2.34,233,2.37,258,1.76,268,1.472,269,1.173,287,4.783,318,2.58,331,1.852,333,2.335,341,1.202,346,1.516,355,3.047,360,1.907,367,1.592,446,2.044,448,2.044,498,1.592,499,4.62,529,1.97,599,1.651,607,1.76,729,3.303,730,2.825,731,1.97,735,3.303,737,3.106,740,3.303,913,1.039,936,3.389,974,1.651,977,1.804,1031,3.198,1032,3.303,1050,2.247,1073,2.054,1077,2.044,1082,3.303,1086,3.427,1112,2.434,1118,1.852,1152,2.044,1284,1.97,1459,1.97,1526,2.044,2181,2.044,2307,2.133,2309,3.768,2310,2.247,2311,3.577,2319,6.785,2320,2.652,2321,2.652,2322,7.489,2323,4.447,2324,3.577,2325,1.907]],["component/122",[1,0.411]],["title/123-1",[23,25.689]],["name/123-1",[]],["text/123-1",[]],["component/123-1",[]],["title/123-2",[26,18.526]],["name/123-2",[]],["text/123-2",[]],["component/123-2",[]],["title/123-3",[334,23.488]],["name/123-3",[]],["text/123-3",[]],["component/123-3",[]],["title/123-4",[269,18.168]],["name/123-4",[]],["text/123-4",[]],["component/123-4",[]],["title/123-5",[887,25.347]],["name/123-5",[]],["text/123-5",[]],["component/123-5",[]],["title/123-6",[788,25.347]],["name/123-6",[]],["text/123-6",[]],["component/123-6",[]],["title/123-7",[15,18.782,341,23.138]],["name/123-7",[]],["text/123-7",[]],["component/123-7",[]],["title/123-8",[1033,32.768]],["name/123-8",[]],["text/123-8",[]],["component/123-8",[]],["title/123",[318,18.211,497,28.316,503,32.613]],["name/123",[2326,1.256]],["text/123",[1,0.453,8,1.635,11,2.94,16,1.079,26,0.412,48,0.993,55,1.101,67,0.675,75,0.556,82,1.981,86,0.613,93,1.701,112,1.179,114,0.768,124,1.507,147,2.876,148,2.24,150,1.629,154,1.911,155,1.787,156,1.787,160,1.237,168,1.205,176,0.777,180,3.47,182,1.976,189,1.769,190,1.719,192,0.816,196,1.626,198,1.231,205,1.041,227,0.675,258,1.016,269,1.397,318,3.275,326,0.862,333,0.622,338,3.027,339,1.654,346,2.624,347,1.069,348,2.437,406,2.046,441,2.123,449,2.386,453,1.231,454,2.493,476,2.056,477,1.787,497,1.924,498,0.919,503,1.231,511,1.683,522,1.297,529,1.137,548,2.123,570,1.551,609,1.874,624,1.179,664,1.041,677,1.769,705,0.759,734,3.183,764,0.669,791,1.449,890,1.041,893,0.993,894,0.953,913,1.471,915,0.617,916,0.681,936,2.709,947,0.714,974,0.953,980,1.297,1049,1.387,1064,1.101,1073,0.707,1101,3.344,1104,1.683,1112,2.056,1120,1.137,1166,1.101,1285,1.387,1354,1.231,1388,1.387,1417,1.137,1518,2.496,1548,1.231,1867,2.496,2113,2.334,2145,1.231,2148,1.179,2149,1.231,2326,6.932,2327,1.53,2328,1.53,2329,1.53,2330,1.53,2331,1.53,2332,1.53,2333,1.387,2334,1.53,2335,1.53,2336,1.53,2337,1.53,2338,1.53,2339,1.53,2340,1.53,2341,1.53,2342,1.53,2343,1.53,2344,1.53,2345,1.53,2346,1.53,2347,3.756,2348,1.53,2349,5.348,2350,5.902,2351,1.53,2352,2.755,2353,1.53,2354,3.756,2355,1.53,2356,1.53,2357,1.53,2358,1.53,2359,1.53]],["component/123",[1,0.411]],["title/124-1",[23,25.689]],["name/124-1",[]],["text/124-1",[]],["component/124-1",[]],["title/124-2",[26,18.526]],["name/124-2",[]],["text/124-2",[]],["component/124-2",[]],["title/124-3",[334,23.488]],["name/124-3",[]],["text/124-3",[]],["component/124-3",[]],["title/124-4",[269,18.168]],["name/124-4",[]],["text/124-4",[]],["component/124-4",[]],["title/124",[180,21.888,497,28.316,498,24.336]],["name/124",[2360,1.256]],["text/124",[7,1.72,11,3.262,15,1.072,17,2.096,24,1.641,26,0.784,27,1.982,28,1.982,35,1.462,48,1.891,69,1.692,75,2.589,86,1.167,93,2.275,108,3.122,111,1.781,128,1.641,135,1.223,137,3.36,147,1.898,157,1.815,176,1.479,177,1.75,180,3.316,182,1.533,192,1.553,207,1.574,233,1.553,238,2.345,258,1.935,268,1.617,269,0.769,287,4.207,310,2.096,318,1.309,330,2.996,333,1.956,343,2.096,347,2.036,355,2.181,422,3.87,430,1.533,436,2.165,440,1.891,442,2.246,448,2.246,476,1.595,497,4.98,498,4.28,729,2.165,730,1.852,740,2.165,756,2.47,804,1.982,913,1.142,936,2.839,947,1.359,977,3.272,1031,3.459,1053,2.47,1073,1.346,1112,1.595,1118,2.036,1128,2.641,1332,2.641,1417,2.165,1548,2.345,1732,2.641,1851,2.47,2324,3.87,2325,2.096,2333,2.641,2349,4.359,2360,7.15,2361,4.811,2362,2.915,2363,4.359,2364,2.915,2365,2.915,2366,2.915]],["component/124",[1,0.411]],["title/125-1",[23,25.689]],["name/125-1",[]],["text/125-1",[]],["component/125-1",[]],["title/125-2",[26,18.526]],["name/125-2",[]],["text/125-2",[]],["component/125-2",[]],["title/125-3",[334,23.488]],["name/125-3",[]],["text/125-3",[]],["component/125-3",[]],["title/125-4",[269,18.168]],["name/125-4",[]],["text/125-4",[]],["component/125-4",[]],["title/125",[180,21.888,498,24.336,500,26.91]],["name/125",[727,1.175]],["text/125",[11,2.693,15,2.166,26,0.738,48,1.781,75,1.662,93,3.055,128,1.545,135,1.151,137,1.917,146,1.917,147,2.71,152,2.54,155,1.781,156,1.306,157,1.709,173,1.545,176,2.323,180,1.482,182,1.444,233,2.439,258,1.822,268,1.523,269,1.207,287,4.867,318,2.644,333,2.393,341,1.244,355,3.114,360,1.974,367,1.647,446,2.115,448,2.115,498,1.647,500,3.907,501,3.527,599,1.709,607,1.822,727,6.469,729,3.4,730,2.907,731,2.039,735,3.4,737,3.197,740,3.4,913,1.075,936,3.474,974,1.709,1031,3.291,1032,3.4,1073,2.114,1077,2.115,1082,3.4,1086,3.527,1112,2.505,1118,1.917,1152,2.115,1270,1.781,1284,2.039,1459,2.039,1526,2.115,2181,2.115,2307,2.208,2309,3.878,2310,2.326,2311,3.682,2324,3.682,2325,1.974,2367,2.745,2368,7.635,2369,4.577]],["component/125",[1,0.411]],["title/126-1",[23,25.689]],["name/126-1",[]],["text/126-1",[]],["component/126-1",[]],["title/126-2",[26,18.526]],["name/126-2",[]],["text/126-2",[]],["component/126-2",[]],["title/126-3",[334,23.488]],["name/126-3",[]],["text/126-3",[]],["component/126-3",[]],["title/126-4",[269,18.168]],["name/126-4",[]],["text/126-4",[]],["component/126-4",[]],["title/126",[180,21.888,498,24.336,502,32.613]],["name/126",[2370,1.256]],["text/126",[11,1.908,15,2.356,26,0.661,48,1.595,75,1.973,93,2.886,128,1.384,135,1.031,137,1.717,141,1.45,147,2.526,152,2.315,155,1.595,156,1.169,157,1.531,173,1.384,176,2.757,180,1.327,182,1.293,233,2.223,258,1.631,268,1.364,269,1.1,287,4.598,318,2.441,321,2.227,333,2.209,341,1.114,355,2.902,407,3.355,440,1.595,446,1.894,448,1.894,498,1.475,502,5.767,509,3.912,520,1.561,563,1.977,593,2.597,599,1.531,607,1.631,695,2.706,707,1.977,729,3.098,730,2.65,731,1.826,735,1.826,737,1.717,740,3.098,890,2.837,913,0.963,936,3.778,974,1.531,1031,2.999,1032,3.098,1073,1.927,1077,1.894,1082,3.098,1086,3.214,1112,2.283,1118,1.717,1397,2.083,1459,1.826,1526,1.894,2181,1.894,2307,1.977,2311,1.977,2324,3.355,2325,1.767,2370,6.496,2371,7.169,2372,4.171,2373,4.171,2374,4.171,2375,4.171,2376,2.458,2377,2.458,2378,2.458,2379,4.171]],["component/126",[1,0.411]],["title/127-1",[23,25.689]],["name/127-1",[]],["text/127-1",[]],["component/127-1",[]],["title/127-2",[26,18.526]],["name/127-2",[]],["text/127-2",[]],["component/127-2",[]],["title/127-3",[334,23.488]],["name/127-3",[]],["text/127-3",[]],["component/127-3",[]],["title/127-4",[269,18.168]],["name/127-4",[]],["text/127-4",[]],["component/127-4",[]],["title/127-5",[887,25.347]],["name/127-5",[]],["text/127-5",[]],["component/127-5",[]],["title/127-6",[788,25.347]],["name/127-6",[]],["text/127-6",[]],["component/127-6",[]],["title/127-7",[221,43.759]],["name/127-7",[]],["text/127-7",[]],["component/127-7",[]],["title/127-8",[9,46.852]],["name/127-8",[]],["text/127-8",[]],["component/127-8",[]],["title/127",[13,38.784]],["name/127",[13,0.781]],["text/127",[1,0.311,4,0.696,6,1.669,8,0.694,9,3.428,10,0.909,13,5.35,15,1.677,16,0.764,20,1.067,21,0.667,26,0.282,30,0.667,33,2.127,43,0.653,48,0.681,67,1.205,69,0.609,71,1.448,75,2.378,86,0.42,93,2.977,99,2.748,117,0.754,125,1.214,135,0.44,141,0.619,142,0.779,143,0.754,147,1.988,148,1.445,149,0.545,154,2.442,155,0.681,156,1.299,157,0.653,158,0.485,160,0.876,161,0.515,162,1.908,163,0.681,164,0.619,165,0.653,168,1.494,169,0.552,170,0.63,175,0.844,177,1.17,178,0.619,181,0.809,185,1.754,192,1.455,204,1.192,205,0.714,206,2.986,207,1.053,208,1.503,209,5.179,213,2.087,216,0.681,221,2.17,223,2.69,227,0.463,233,1.455,243,1.239,245,0.754,246,0.667,249,0.641,255,0.63,259,0.653,267,0.844,268,0.582,269,1.202,287,1.612,289,1.983,291,1.402,292,0.667,303,0.951,304,0.951,316,0.754,318,0.471,333,0.793,346,0.6,361,1.402,363,1.132,365,1.503,389,1.082,391,2.537,422,0.844,508,4.658,511,0.641,540,1.114,548,0.809,593,2.127,612,0.844,616,0.641,617,0.844,664,1.858,705,0.521,735,0.779,764,0.459,788,1.005,796,0.641,804,0.714,834,0.889,841,2.475,900,0.591,913,1.338,915,0.787,916,0.467,927,1.735,939,0.951,941,0.754,947,0.909,952,0.889,977,3.1,1002,0.889,1073,0.485,1078,0.844,1091,2.314,1112,0.574,1118,0.733,1120,0.779,1134,0.779,1168,0.591,1211,1.326,1212,1.652,1215,0.733,1233,0.951,1297,0.844,1342,0.809,1373,0.809,1397,0.889,1413,0.889,1416,0.951,1432,1.569,1435,0.809,1467,0.951,1468,0.951,1481,1.294,1659,0.844,1670,0.889,2086,0.844,2196,0.779,2220,0.951,2325,0.754,2363,0.951,2380,0.779,2381,1.767,2382,2.731,2383,1.049,2384,1.049,2385,1.049,2386,1.049,2387,1.049,2388,1.049,2389,0.951,2390,0.951,2391,1.049,2392,1.95,2393,1.503,2394,0.809,2395,1.049,2396,1.049,2397,1.049,2398,1.049,2399,1.049,2400,1.95,2401,1.049,2402,1.049,2403,1.049,2404,1.049,2405,1.049,2406,1.049,2407,1.049,2408,1.049,2409,1.049,2410,1.049,2411,1.049,2412,1.049,2413,2.731,2414,1.049,2415,1.049,2416,1.049,2417,1.049,2418,1.049,2419,1.569,2420,1.049,2421,0.889,2422,1.049,2423,0.889,2424,0.889]],["component/127",[1,0.411]],["title/128-1",[23,25.689]],["name/128-1",[]],["text/128-1",[]],["component/128-1",[]],["title/128-2",[26,18.526]],["name/128-2",[]],["text/128-2",[]],["component/128-2",[]],["title/128-3",[334,23.488]],["name/128-3",[]],["text/128-3",[]],["component/128-3",[]],["title/128-4",[269,18.168]],["name/128-4",[]],["text/128-4",[]],["component/128-4",[]],["title/128-5",[887,25.347]],["name/128-5",[]],["text/128-5",[]],["component/128-5",[]],["title/128-6",[221,43.759]],["name/128-6",[]],["text/128-6",[]],["component/128-6",[]],["title/128-7",[9,46.852]],["name/128-7",[]],["text/128-7",[]],["component/128-7",[]],["title/128",[12,35.797]],["name/128",[12,0.721]],["text/128",[4,1.232,6,2.681,8,1.562,9,4.886,10,0.866,12,5.417,15,0.683,16,0.727,26,0.499,67,2.936,71,1.379,75,2.416,91,1.572,93,3.64,147,2.379,148,1.384,152,4.24,168,3.142,185,3.416,190,2.759,192,0.989,194,2.632,213,1.135,223,1.931,227,0.819,233,0.989,243,1.179,245,2.353,246,1.179,259,1.156,267,1.493,268,1.03,269,1.395,276,1.493,278,1.682,287,4.509,289,3.863,291,4.784,292,2.787,297,1.682,298,1.682,299,1.682,300,1.682,301,1.682,302,1.682,318,0.834,333,1.33,365,1.431,389,1.03,459,1.431,540,1.87,612,1.493,617,1.493,664,1.263,804,1.263,913,1.282,947,0.866,1054,1.335,1073,0.858,1134,1.379,1168,2.977,1297,1.493,1373,1.431,1481,2.172,1551,1.493,1675,1.682,2086,1.493,2099,1.682,2196,1.379,2325,1.335,2380,1.379,2393,2.522,2394,1.431,2419,2.632,2421,1.573,2423,1.573,2424,1.573,2425,3.272,2426,1.857,2427,1.857,2428,1.857,2429,1.857,2430,1.857,2431,1.857,2432,1.857,2433,1.857,2434,3.272,2435,1.857,2436,1.857,2437,1.857,2438,1.857]],["component/128",[1,0.411]],["title/129-1",[23,25.689]],["name/129-1",[]],["text/129-1",[]],["component/129-1",[]],["title/129-2",[26,18.526]],["name/129-2",[]],["text/129-2",[]],["component/129-2",[]],["title/129-3",[334,23.488]],["name/129-3",[]],["text/129-3",[]],["component/129-3",[]],["title/129-4",[269,18.168]],["name/129-4",[]],["text/129-4",[]],["component/129-4",[]],["title/129-5",[887,25.347]],["name/129-5",[]],["text/129-5",[]],["component/129-5",[]],["title/129-6",[221,43.759]],["name/129-6",[]],["text/129-6",[]],["component/129-6",[]],["title/129-7",[2439,68.884]],["name/129-7",[]],["text/129-7",[]],["component/129-7",[]],["title/129-8",[9,46.852]],["name/129-8",[]],["text/129-8",[]],["component/129-8",[]],["title/129",[11,31.517]],["name/129",[11,0.634]],["text/129",[4,1.057,6,2.371,8,1.684,9,4.476,10,0.743,11,4.868,15,0.586,16,0.624,26,0.428,67,3.106,71,1.183,75,2.198,91,1.372,93,3.58,147,2.148,148,1.208,152,4.33,168,3.413,180,0.86,185,3.379,188,1.112,189,0.75,191,1.994,192,0.849,196,2.791,213,2.371,223,1.685,227,0.703,233,0.849,239,1.443,243,1.012,245,2.053,259,0.992,267,1.281,268,0.884,269,1.436,272,2.587,287,4.793,288,1.443,289,4.087,290,1.443,291,5.062,292,3.004,293,2.587,294,2.587,295,1.443,296,1.443,318,0.715,333,1.161,338,2.218,355,0.722,365,1.227,389,0.884,540,2.218,597,4.285,612,1.281,617,1.281,664,1.083,758,1.349,804,1.083,913,1.52,947,0.743,1054,1.145,1073,0.736,1112,0.872,1131,1.349,1134,1.183,1168,0.897,1297,1.281,1373,1.227,1481,1.895,2086,1.281,2196,1.183,2325,1.145,2380,1.183,2393,2.2,2394,1.227,2419,2.297,2421,1.349,2423,1.349,2424,1.349,2440,2.855,2441,1.593,2442,1.593,2443,1.593,2444,1.443,2445,1.443,2446,1.593,2447,1.443,2448,1.593,2449,1.593,2450,2.855,2451,1.593,2452,2.855,2453,1.593,2454,1.593,2455,1.593,2456,1.593]],["component/129",[1,0.411]],["title/130-1",[23,25.689]],["name/130-1",[]],["text/130-1",[]],["component/130-1",[]],["title/130-2",[26,18.526]],["name/130-2",[]],["text/130-2",[]],["component/130-2",[]],["title/130-3",[334,23.488]],["name/130-3",[]],["text/130-3",[]],["component/130-3",[]],["title/130-4",[332,29.174,1056,29.174]],["name/130-4",[]],["text/130-4",[]],["component/130-4",[]],["title/130-5",[269,18.168]],["name/130-5",[]],["text/130-5",[]],["component/130-5",[]],["title/130-6",[887,25.347]],["name/130-6",[]],["text/130-6",[]],["component/130-6",[]],["title/130-7",[221,43.759]],["name/130-7",[]],["text/130-7",[]],["component/130-7",[]],["title/130-8",[15,25.347]],["name/130-8",[]],["text/130-8",[]],["component/130-8",[]],["title/130",[474,46.852]],["name/130",[474,0.943]],["text/130",[8,2.537,15,1.334,16,0.818,24,1.175,26,0.561,33,2.257,75,2.359,93,3.001,121,1.42,135,1.521,143,1.501,147,2.264,148,0.883,160,0.938,168,2.51,185,2.467,203,3.903,208,1.609,213,2.215,223,2.835,227,0.921,233,1.112,255,2.884,269,1.514,287,4.515,289,1.212,292,3.052,309,1.55,332,1.193,333,1.474,474,6.69,540,1.193,547,1.501,664,1.42,708,1.891,723,1.42,791,3.019,913,1.42,927,1.326,947,0.973,961,1.768,1056,5.045,1062,2.303,1073,0.964,1082,1.55,1112,1.142,1129,1.891,1133,1.501,1134,1.55,1136,3.865,1147,2.794,1364,1.679,1389,2.794,1480,1.891,1661,1.679,2110,1.891,2196,1.55,2276,1.768,2380,1.55,2393,2.794,2394,1.609,2457,1.891,2458,3.284,2459,2.087,2460,2.087,2461,2.087,2462,9.624,2463,3.625,2464,2.087,2465,2.087,2466,2.087,2467,2.087,2468,2.087,2469,2.087,2470,2.087,2471,4.805,2472,2.087,2473,2.087,2474,2.087,2475,2.087,2476,2.087,2477,2.087,2478,1.891,2479,2.087,2480,1.891,2481,2.087]],["component/130",[1,0.411]],["title/131-1",[23,25.689]],["name/131-1",[]],["text/131-1",[]],["component/131-1",[]],["title/131-2",[26,18.526]],["name/131-2",[]],["text/131-2",[]],["component/131-2",[]],["title/131-3",[334,23.488]],["name/131-3",[]],["text/131-3",[]],["component/131-3",[]],["title/131-4",[269,18.168]],["name/131-4",[]],["text/131-4",[]],["component/131-4",[]],["title/131-5",[887,25.347]],["name/131-5",[]],["text/131-5",[]],["component/131-5",[]],["title/131-6",[788,25.347]],["name/131-6",[]],["text/131-6",[]],["component/131-6",[]],["title/131-7",[221,43.759]],["name/131-7",[]],["text/131-7",[]],["component/131-7",[]],["title/131",[196,40.649]],["name/131",[196,0.818]],["text/131",[8,3.272,11,3.71,12,4.214,15,1.846,16,2.493,26,0.825,75,1.821,86,1.228,93,2.358,135,1.287,147,1.979,168,1.341,180,1.656,185,2.576,188,2.142,190,2.295,192,1.634,196,6.023,207,1.656,213,3.065,223,2.96,227,1.353,243,1.948,245,2.205,269,1.939,287,2.96,333,1.247,338,3.638,348,3.255,392,4.414,406,2.278,558,2.363,694,3.255,705,2.489,730,1.948,758,2.598,764,1.341,900,1.727,913,1.965,915,2.024,916,1.365,947,1.43,1054,2.205,1073,1.416,1109,1.948,1112,1.678,1168,3.583,1483,3.607,1486,1.99,1544,2.278,2444,2.779,2445,2.779,2447,2.779,2482,3.067,2483,3.067,2484,3.067,2485,3.067,2486,3.067]],["component/131",[1,0.411]],["title/132-1",[23,25.689]],["name/132-1",[]],["text/132-1",[]],["component/132-1",[]],["title/132-2",[26,18.526]],["name/132-2",[]],["text/132-2",[]],["component/132-2",[]],["title/132-3",[334,23.488]],["name/132-3",[]],["text/132-3",[]],["component/132-3",[]],["title/132-4",[269,18.168]],["name/132-4",[]],["text/132-4",[]],["component/132-4",[]],["title/132-5",[887,25.347]],["name/132-5",[]],["text/132-5",[]],["component/132-5",[]],["title/132-6",[788,25.347]],["name/132-6",[]],["text/132-6",[]],["component/132-6",[]],["title/132-7",[221,43.759]],["name/132-7",[]],["text/132-7",[]],["component/132-7",[]],["title/132-8",[1208,37.696]],["name/132-8",[]],["text/132-8",[]],["component/132-8",[]],["title/132",[182,36.242]],["name/132",[182,0.729]],["text/132",[3,0.893,7,0.775,8,1.9,11,1.513,15,0.483,16,0.939,26,0.353,69,0.762,75,2.123,80,0.852,86,0.526,92,2.675,93,2.483,114,0.659,147,2.306,148,2.472,150,2.061,152,1.33,154,2.621,156,1.14,160,3.01,161,0.644,168,1.447,178,0.775,180,0.709,182,5.663,185,1.698,188,0.917,189,0.618,190,0.601,192,0.699,196,1.414,198,2.661,199,2.997,200,2.549,201,1.189,202,1.056,203,2.25,204,2.495,205,0.893,211,0.852,212,1.414,213,2.021,223,1.952,227,0.579,233,0.699,244,1.012,245,0.944,247,1.056,258,0.871,259,0.817,268,0.728,269,1.253,287,3.716,289,0.762,316,0.944,318,0.59,333,0.974,364,1.189,391,0.975,406,0.975,441,1.012,453,3.284,459,1.012,471,0.775,472,0.882,473,0.944,540,1.37,542,1.112,558,1.012,570,1.35,588,0.944,589,0.852,593,2.06,653,1.012,664,0.893,730,1.523,732,0.975,733,1.189,764,1.048,776,2.802,876,1.724,882,0.666,900,0.739,913,1.295,915,0.967,916,0.584,927,0.834,933,1.012,936,1.952,943,0.975,947,1.542,958,0.834,983,0.917,985,0.975,986,0.817,1054,0.944,1070,2.031,1073,0.606,1101,1.983,1112,0.718,1133,0.944,1134,0.975,1168,0.739,1213,0.893,1215,0.917,1223,0.893,1342,1.012,1366,1.056,1419,0.944,1437,2.457,1534,1.112,1589,2.172,1609,1.056,1627,2.457,1769,1.012,1824,1.012,2076,1.112,2196,0.975,2380,0.975,2381,1.189,2389,1.189,2393,1.847,2394,1.012,2487,2.397,2488,1.313,2489,1.313,2490,1.189,2491,1.313,2492,1.313,2493,1.313,2494,1.313,2495,1.313,2496,1.313,2497,1.313,2498,1.313,2499,1.313,2500,1.313,2501,1.313,2502,1.189,2503,1.313,2504,2.397,2505,1.313,2506,1.313,2507,2.397,2508,1.313,2509,1.313,2510,1.313,2511,1.313,2512,1.313,2513,1.313,2514,1.313,2515,1.313,2516,1.313,2517,1.313,2518,1.189,2519,1.189]],["component/132",[1,0.411]],["title/133-1",[23,25.689]],["name/133-1",[]],["text/133-1",[]],["component/133-1",[]],["title/133-2",[26,18.526]],["name/133-2",[]],["text/133-2",[]],["component/133-2",[]],["title/133-3",[334,23.488]],["name/133-3",[]],["text/133-3",[]],["component/133-3",[]],["title/133-4",[269,18.168]],["name/133-4",[]],["text/133-4",[]],["component/133-4",[]],["title/133-5",[887,25.347]],["name/133-5",[]],["text/133-5",[]],["component/133-5",[]],["title/133-6",[788,18.782,889,21.076]],["name/133-6",[]],["text/133-6",[]],["component/133-6",[]],["title/133-7",[690,51.167]],["name/133-7",[]],["text/133-7",[]],["component/133-7",[]],["title/133-8",[1033,32.768]],["name/133-8",[]],["text/133-8",[]],["component/133-8",[]],["title/133-9",[449,32.426,2247,43.249]],["name/133-9",[]],["text/133-9",[]],["component/133-9",[]],["title/133-10",[1208,37.696]],["name/133-10",[]],["text/133-10",[]],["component/133-10",[]],["title/133",[473,49.533]],["name/133",[473,0.997]],["text/133",[8,1.715,11,2.429,16,1.143,26,0.305,33,0.705,53,0.873,67,1.287,71,1.555,75,0.411,86,0.454,92,2.046,93,1.966,114,1.823,135,0.475,147,1.151,148,0.479,150,1.576,154,1.773,160,0.509,168,3.121,182,5.231,188,2.976,189,0.533,190,0.518,204,2.942,211,0.735,212,1.235,229,0.611,247,0.911,269,0.958,287,4.521,292,0.719,333,0.46,355,2.183,369,1.555,392,0.68,449,1.33,453,5.739,454,0.752,459,0.873,471,1.722,472,1.406,473,7.507,520,1.33,570,1.178,589,1.358,653,0.873,677,0.986,690,3.577,695,0.735,705,1.038,730,1.854,732,1.555,737,0.791,752,0.873,755,0.814,764,0.916,776,4.08,796,0.692,876,2.098,882,1.062,888,1.535,889,0.864,912,1.361,913,1.423,915,1.177,916,0.504,936,3.132,943,0.841,985,0.841,986,0.705,1017,3.731,1018,0.611,1044,1.896,1052,0.791,1070,0.96,1080,1.684,1081,0.911,1088,1.026,1101,2.792,1109,1.33,1148,2.412,1213,0.77,1406,1.462,1419,0.814,1435,0.873,1437,0.841,1513,3.577,1527,4.872,1551,0.911,1557,1.026,1668,3.079,1803,0.911,1824,2.249,2024,3.292,2076,0.96,2247,3.079,2290,1.026,2502,1.026,2518,1.896,2519,1.026,2520,1.133,2521,1.133,2522,1.133,2523,1.896,2524,1.133,2525,1.133,2526,1.133,2527,1.133,2528,1.133,2529,2.093,2530,2.093,2531,1.133,2532,1.133,2533,1.133,2534,4.261,2535,2.093,2536,1.133,2537,1.133,2538,1.133,2539,1.133,2540,1.133,2541,1.133]],["component/133",[1,0.411]],["title/134-1",[23,25.689]],["name/134-1",[]],["text/134-1",[]],["component/134-1",[]],["title/134-2",[26,18.526]],["name/134-2",[]],["text/134-2",[]],["component/134-2",[]],["title/134-3",[334,23.488]],["name/134-3",[]],["text/134-3",[]],["component/134-3",[]],["title/134-4",[269,18.168]],["name/134-4",[]],["text/134-4",[]],["component/134-4",[]],["title/134-5",[887,25.347]],["name/134-5",[]],["text/134-5",[]],["component/134-5",[]],["title/134-6",[788,25.347]],["name/134-6",[]],["text/134-6",[]],["component/134-6",[]],["title/134-7",[221,43.759]],["name/134-7",[]],["text/134-7",[]],["component/134-7",[]],["title/134-8",[15,25.347]],["name/134-8",[]],["text/134-8",[]],["component/134-8",[]],["title/134-9",[15,18.782,1659,41.06]],["name/134-9",[]],["text/134-9",[]],["component/134-9",[]],["title/134",[121,46.852]],["name/134",[121,0.943]],["text/134",[8,1.627,11,3.636,15,1.008,16,1.073,26,1.005,36,1.52,53,1.172,67,2.016,68,1.093,75,0.995,86,0.609,93,3.392,121,7.652,124,0.832,125,1.705,141,2.205,143,1.093,147,1.474,152,0.844,154,1.555,160,1.678,168,2.307,178,0.897,185,1.919,191,1.913,203,2.541,204,0.929,208,2.879,221,1.74,223,2.205,227,2.016,229,0.821,233,0.81,255,2.243,269,1.688,287,3.468,320,0.966,333,0.618,338,2.136,346,0.869,355,0.689,389,1.52,391,1.129,474,3.107,547,1.093,593,0.947,664,1.034,723,1.034,730,2.902,764,0.665,882,1.39,900,1.542,912,2.459,913,1.463,915,1.507,916,0.677,927,0.966,947,0.709,986,1.705,1073,2.715,1131,1.288,1147,2.111,1148,1.818,1150,2.541,1172,2.111,1251,3.998,1302,1.172,1323,1.129,1389,1.172,1406,1.062,1470,1.378,1627,1.129,1659,3.675,1661,1.223,1720,1.378,1723,1.223,2276,1.288,2380,1.129,2390,1.378,2419,1.223,2457,1.378,2458,1.378,2478,1.378,2480,1.378,2542,3.736,2543,1.521,2544,1.521,2545,1.521,2546,1.521,2547,1.521,2548,1.521,2549,1.521,2550,1.521,2551,3.736,2552,1.521,2553,1.521,2554,1.521,2555,1.521,2556,1.521,2557,1.521,2558,1.521,2559,1.521,2560,1.521,2561,2.739,2562,1.521,2563,1.521,2564,1.521,2565,1.521,2566,1.521,2567,1.521,2568,1.521]],["component/134",[1,0.411]],["title/135-1",[23,25.689]],["name/135-1",[]],["text/135-1",[]],["component/135-1",[]],["title/135-2",[26,18.526]],["name/135-2",[]],["text/135-2",[]],["component/135-2",[]],["title/135-3",[334,23.488]],["name/135-3",[]],["text/135-3",[]],["component/135-3",[]],["title/135-4",[269,18.168]],["name/135-4",[]],["text/135-4",[]],["component/135-4",[]],["title/135-5",[887,25.347]],["name/135-5",[]],["text/135-5",[]],["component/135-5",[]],["title/135-6",[8,18.179,915,20.594]],["name/135-6",[]],["text/135-6",[]],["component/135-6",[]],["title/135-7",[10,32.125]],["name/135-7",[]],["text/135-7",[]],["component/135-7",[]],["title/135-8",[8,18.179,1208,27.933]],["name/135-8",[]],["text/135-8",[]],["component/135-8",[]],["title/135-9",[1208,37.696]],["name/135-9",[]],["text/135-9",[]],["component/135-9",[]],["title/135",[203,27.575,513,24.336,516,29.153]],["name/135",[1485,1.175]],["text/135",[7,1.1,8,3.619,15,0.686,16,1.286,21,1.184,26,0.501,45,3.078,67,0.822,75,3.051,86,1.315,91,1.578,93,3.707,115,2.782,135,1.377,147,2.092,150,1.424,168,0.815,203,2.993,227,1.449,230,1.849,249,3.694,269,1.595,332,1.065,348,1.209,355,2.403,392,1.971,425,5.964,472,2.206,513,1.119,516,1.34,656,4.427,694,2.13,705,0.925,791,0.981,840,1.184,900,1.049,912,1.531,913,1.723,947,0.869,983,1.302,1056,1.065,1062,4.237,1073,0.861,1109,1.184,1126,1.385,1133,3.813,1158,1.34,1168,1.849,1482,4.492,1483,1.34,1484,4.086,1485,7.613,1486,2.13,1487,2.975,1489,1.579,1491,1.689,1493,1.689,1507,6.043,1536,1.499,1544,1.385,1626,1.436,1817,2.782,2081,1.689,2569,3.283,2570,1.864,2571,1.864,2572,1.689,2573,2.975,2574,1.689,2575,1.689,2576,1.864,2577,1.864,2578,1.689,2579,1.689,2580,1.864,2581,1.864,2582,1.689,2583,1.689,2584,1.689,2585,1.864,2586,1.689]],["component/135",[1,0.411]],["title/136-1",[23,25.689]],["name/136-1",[]],["text/136-1",[]],["component/136-1",[]],["title/136-2",[26,18.526]],["name/136-2",[]],["text/136-2",[]],["component/136-2",[]],["title/136-3",[334,23.488]],["name/136-3",[]],["text/136-3",[]],["component/136-3",[]],["title/136-4",[269,18.168]],["name/136-4",[]],["text/136-4",[]],["component/136-4",[]],["title/136-5",[887,25.347]],["name/136-5",[]],["text/136-5",[]],["component/136-5",[]],["title/136-6",[8,18.179,915,20.594]],["name/136-6",[]],["text/136-6",[]],["component/136-6",[]],["title/136-7",[10,32.125]],["name/136-7",[]],["text/136-7",[]],["component/136-7",[]],["title/136-8",[8,18.179,1208,27.933]],["name/136-8",[]],["text/136-8",[]],["component/136-8",[]],["title/136-9",[788,18.782,889,21.076]],["name/136-9",[]],["text/136-9",[]],["component/136-9",[]],["title/136-10",[1033,32.768]],["name/136-10",[]],["text/136-10",[]],["component/136-10",[]],["title/136-11",[1208,37.696]],["name/136-11",[]],["text/136-11",[]],["component/136-11",[]],["title/136",[513,30.639,516,36.704]],["name/136",[1484,1.069]],["text/136",[7,1.864,8,2.933,16,1.533,26,0.334,45,1.324,67,0.549,69,0.722,75,2.05,80,1.48,86,1.265,91,1.096,92,1.779,93,2.873,135,0.957,147,0.491,168,0.544,198,2.541,227,0.549,230,3.178,246,0.79,249,1.394,269,1.205,289,1.324,291,0.894,332,0.711,347,2.207,355,4.078,361,2.272,425,2.097,440,0.807,472,2.122,513,4.117,516,4.059,563,1.835,569,0.807,616,0.76,656,5.314,666,0.894,677,1.488,695,0.807,705,0.617,711,0.958,723,1.551,764,0.544,773,2.486,788,0.839,791,0.654,840,2.486,882,2.608,888,0.654,889,0.513,912,2.13,913,1.789,915,1.579,916,0.553,980,1.053,983,0.868,1017,4.856,1018,1.706,1056,1.304,1062,5.492,1126,0.924,1133,2.272,1158,0.894,1168,1.284,1364,1,1366,1,1437,0.924,1482,6.342,1484,5.768,1486,0.807,1489,1.053,1512,1.835,1513,0.924,1536,3.148,1559,2.066,1570,2.066,1626,1.758,1661,1.835,1700,1.127,2090,1.127,2119,2.066,2490,1.127,2523,3.546,2572,2.863,2573,4.656,2574,1.127,2575,1.127,2578,1.127,2579,1.127,2582,1.127,2583,1.127,2584,1.127,2586,2.066,2587,1.243,2588,3.159,2589,1.243,2590,1.243,2591,2.281,2592,2.281,2593,1.243,2594,2.281,2595,1.243,2596,1.243,2597,1.243,2598,1.243,2599,1.243,2600,1.243,2601,1.243,2602,1.243,2603,1.243,2604,1.243,2605,1.243,2606,1.243]],["component/136",[1,0.411]]],"invertedIndex":[["",{"_index":93,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"6":{},"7":{},"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":{},"67":{},"68":{},"70":{},"72":{},"73":{},"74":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["0",{"_index":204,"title":{},"name":{},"text":{"2":{},"4":{},"13":{},"32":{},"33":{},"37":{},"40":{},"43":{},"46":{},"48":{},"59":{},"64":{},"65":{},"66":{},"70":{},"72":{},"81":{},"100":{},"101":{},"105":{},"108":{},"111":{},"114":{},"116":{},"127":{},"132":{},"133":{},"134":{}},"component":{}}],["0..n",{"_index":2103,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["0.0",{"_index":593,"title":{},"name":{},"text":{"4":{},"10":{},"25":{},"29":{},"39":{},"48":{},"49":{},"52":{},"53":{},"58":{},"59":{},"64":{},"66":{},"72":{},"78":{},"93":{},"97":{},"107":{},"116":{},"117":{},"120":{},"121":{},"126":{},"127":{},"132":{},"134":{}},"component":{}}],["0.08",{"_index":2141,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["0.0_db",{"_index":2420,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["0.0f",{"_index":2113,"title":{},"name":{},"text":{"46":{},"48":{},"55":{},"114":{},"116":{},"123":{}},"component":{}}],["0.0…​1.0",{"_index":1247,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["0.0…​inf",{"_index":1273,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["0.25",{"_index":1250,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["0.42",{"_index":2138,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["0.46",{"_index":2280,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["0.5",{"_index":2139,"title":{},"name":{},"text":{"47":{},"53":{},"115":{},"121":{}},"component":{}}],["0.5*(1",{"_index":2291,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["0.54",{"_index":2279,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["0.5_mhz",{"_index":273,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["0.5_pi",{"_index":284,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["0.707",{"_index":1165,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["0.8",{"_index":676,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["0.85",{"_index":594,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["0.95",{"_index":2264,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["0/1",{"_index":640,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["0/2",{"_index":648,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["0_db",{"_index":939,"title":{},"name":{},"text":{"7":{},"59":{},"75":{},"127":{}},"component":{}}],["0x00",{"_index":1898,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x01",{"_index":1899,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x02",{"_index":1901,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x04",{"_index":1903,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x05",{"_index":1905,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x06",{"_index":1907,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x07",{"_index":1909,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x08",{"_index":1911,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x0a",{"_index":1913,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x0b",{"_index":1914,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x0c",{"_index":1916,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x0d",{"_index":1918,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x10",{"_index":1920,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x11",{"_index":1922,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x12",{"_index":1924,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x13",{"_index":1926,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x20",{"_index":1928,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x21",{"_index":1930,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x22",{"_index":1932,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x24",{"_index":1934,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x25",{"_index":1936,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x26",{"_index":1938,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x27",{"_index":1940,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x28",{"_index":1942,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x2a",{"_index":1944,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x2b",{"_index":1946,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x2c",{"_index":1948,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x2d",{"_index":1950,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x30",{"_index":1952,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x31",{"_index":1954,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x32",{"_index":1956,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x33",{"_index":1958,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x40",{"_index":1959,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x41",{"_index":1961,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x42",{"_index":1963,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x43",{"_index":1965,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x44",{"_index":1967,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x45",{"_index":1969,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x46",{"_index":1971,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x47",{"_index":1973,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x48",{"_index":1976,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x49",{"_index":1978,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4a",{"_index":1980,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4b",{"_index":1983,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4c",{"_index":1985,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4d",{"_index":1987,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4e",{"_index":1989,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x4f",{"_index":1991,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x50",{"_index":1993,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x51",{"_index":1995,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x52",{"_index":1997,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x53",{"_index":1999,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x54",{"_index":2001,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5b",{"_index":2003,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5c",{"_index":2007,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5d",{"_index":2011,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5e",{"_index":2014,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x5f",{"_index":2018,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x60",{"_index":2021,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x61",{"_index":2023,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x62",{"_index":2026,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x63",{"_index":2028,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x64",{"_index":2030,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x65",{"_index":2032,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x78",{"_index":2034,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x79",{"_index":2035,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7a",{"_index":2037,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7b",{"_index":2039,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7c",{"_index":2041,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7d",{"_index":2043,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7e",{"_index":2044,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x7f",{"_index":2046,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x80",{"_index":1872,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0x90",{"_index":1873,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xa0",{"_index":1874,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xb0",{"_index":1875,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xc0",{"_index":1876,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xd0",{"_index":1877,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xe0",{"_index":1878,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf0",{"_index":1880,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf2",{"_index":1881,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf3",{"_index":1882,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf6",{"_index":1883,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf7",{"_index":1885,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xf8",{"_index":1886,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xfa",{"_index":1887,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xfb",{"_index":1888,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xfc",{"_index":1889,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xfe",{"_index":1890,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["0xff",{"_index":1891,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["1",{"_index":91,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"8":{},"13":{},"14":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"32":{},"33":{},"39":{},"41":{},"44":{},"46":{},"47":{},"48":{},"50":{},"51":{},"60":{},"61":{},"67":{},"68":{},"70":{},"72":{},"73":{},"76":{},"81":{},"82":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"99":{},"100":{},"101":{},"107":{},"109":{},"112":{},"114":{},"115":{},"116":{},"118":{},"119":{},"128":{},"129":{},"135":{},"136":{}},"component":{}}],["1.0",{"_index":152,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"11":{},"25":{},"29":{},"39":{},"44":{},"45":{},"48":{},"49":{},"52":{},"53":{},"54":{},"57":{},"58":{},"60":{},"61":{},"64":{},"66":{},"70":{},"72":{},"78":{},"79":{},"93":{},"97":{},"107":{},"112":{},"113":{},"116":{},"117":{},"120":{},"121":{},"122":{},"125":{},"126":{},"128":{},"129":{},"132":{},"134":{}},"component":{}}],["1.0_",{"_index":2431,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["1.0_hz",{"_index":2448,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1.0_khz",{"_index":2450,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1.0_m",{"_index":2432,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["1.0_mhz",{"_index":2451,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1.0_u",{"_index":2433,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["1.0f",{"_index":734,"title":{},"name":{},"text":{"4":{},"48":{},"55":{},"72":{},"116":{},"123":{}},"component":{}}],["1.0r",{"_index":2514,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["1.13",{"_index":1371,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["1.31",{"_index":199,"title":{},"name":{},"text":{"2":{},"64":{},"70":{},"132":{}},"component":{}}],["1.5_khz",{"_index":271,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["1/0",{"_index":634,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["1/4",{"_index":1249,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["1/6",{"_index":2331,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["1/div",{"_index":1368,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["1/n",{"_index":1245,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["1/nth",{"_index":1706,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["10",{"_index":834,"title":{},"name":{},"text":{"5":{},"48":{},"59":{},"73":{},"116":{},"127":{}},"component":{}}],["10.14",{"_index":848,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["10.3_",{"_index":275,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["10.5_u",{"_index":279,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["100_m",{"_index":798,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["10:1",{"_index":1233,"title":{},"name":{},"text":{"22":{},"59":{},"90":{},"127":{}},"component":{}}],["10_db",{"_index":282,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["11",{"_index":835,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["12",{"_index":2543,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["128",{"_index":783,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["12_db",{"_index":799,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["12db",{"_index":1531,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["15.8",{"_index":257,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["16",{"_index":1868,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["16.04",{"_index":850,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["17",{"_index":857,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["180",{"_index":2519,"title":{},"name":{},"text":{"64":{},"65":{},"132":{},"133":{}},"component":{}}],["1958",{"_index":2135,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["1:10",{"_index":2387,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["1:2",{"_index":2386,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["1:4",{"_index":1274,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["1:inf",{"_index":1275,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["1:n",{"_index":1272,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["1_",{"_index":276,"title":{},"name":{},"text":{"2":{},"4":{},"48":{},"60":{},"70":{},"72":{},"116":{},"128":{}},"component":{}}],["1_hz",{"_index":2449,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1_khz",{"_index":272,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["1_m",{"_index":278,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["1_mhz",{"_index":2453,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["1_u",{"_index":2435,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["1db",{"_index":1252,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["2",{"_index":92,"title":{},"name":{},"text":{"2":{},"4":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"39":{},"41":{},"44":{},"46":{},"48":{},"64":{},"65":{},"68":{},"70":{},"72":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"107":{},"109":{},"112":{},"114":{},"116":{},"132":{},"133":{},"136":{}},"component":{}}],["2*pi*freq/sp",{"_index":2336,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["20",{"_index":2382,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["20.5_m",{"_index":277,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["2014",{"_index":410,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["2022",{"_index":837,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["2023",{"_index":411,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["24",{"_index":253,"title":{},"name":{},"text":{"2":{},"4":{},"44":{},"70":{},"72":{},"112":{}},"component":{}}],["24_db",{"_index":252,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["26/26",{"_index":649,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["2626",{"_index":633,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["2:1",{"_index":2384,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["2_pi",{"_index":283,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["3",{"_index":95,"title":{},"name":{},"text":{"2":{},"4":{},"22":{},"23":{},"24":{},"27":{},"39":{},"41":{},"44":{},"48":{},"70":{},"72":{},"90":{},"91":{},"92":{},"95":{},"107":{},"109":{},"112":{},"116":{}},"component":{}}],["3.5.1",{"_index":827,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["3.5_db",{"_index":281,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["30",{"_index":1621,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["300_m",{"_index":2239,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["30_m",{"_index":2216,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["31",{"_index":201,"title":{},"name":{},"text":{"2":{},"64":{},"70":{},"132":{}},"component":{}}],["32",{"_index":1693,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["350_m",{"_index":595,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["360",{"_index":2518,"title":{},"name":{},"text":{"64":{},"65":{},"132":{},"133":{}},"component":{}}],["3_db",{"_index":228,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["3_m",{"_index":235,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["3_mhz",{"_index":274,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["3rd",{"_index":109,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["4",{"_index":96,"title":{},"name":{},"text":{"2":{},"4":{},"23":{},"27":{},"32":{},"41":{},"44":{},"46":{},"48":{},"70":{},"72":{},"91":{},"95":{},"100":{},"109":{},"112":{},"114":{},"116":{}},"component":{}}],["440",{"_index":884,"title":{},"name":{},"text":{"5":{},"26":{},"27":{},"73":{},"94":{},"95":{}},"component":{}}],["440_hz",{"_index":239,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["44100",{"_index":578,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["4:1",{"_index":1248,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["4db",{"_index":1253,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["5",{"_index":98,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"48":{},"70":{},"72":{},"73":{},"116":{}},"component":{}}],["50",{"_index":2367,"title":{},"name":{},"text":{"57":{},"125":{}},"component":{}}],["500",{"_index":1620,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["500_u",{"_index":280,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["50_",{"_index":2222,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["5_",{"_index":803,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["5_m",{"_index":236,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["6",{"_index":99,"title":{},"name":{},"text":{"2":{},"4":{},"27":{},"59":{},"70":{},"72":{},"95":{},"127":{}},"component":{}}],["60",{"_index":2069,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["61",{"_index":635,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["6_db",{"_index":2220,"title":{},"name":{},"text":{"48":{},"59":{},"116":{},"127":{}},"component":{}}],["6_m",{"_index":2430,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["6db/octav",{"_index":1610,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["7",{"_index":100,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["70_m",{"_index":2218,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["8",{"_index":641,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["8.1757989156437",{"_index":2544,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["80",{"_index":518,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["82.4069_hz",{"_index":270,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["9",{"_index":642,"title":{},"name":{},"text":{"4":{},"44":{},"72":{},"112":{}},"component":{}}],["_bw",{"_index":1174,"title":{},"name":{},"text":{"13":{},"14":{},"19":{},"20":{},"81":{},"82":{},"87":{},"88":{}},"component":{}}],["_clip",{"_index":394,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_clip(",{"_index":371,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_comp",{"_index":401,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_db",{"_index":2422,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["_db(long",{"_index":304,"title":{},"name":{},"text":{"2":{},"59":{},"70":{},"127":{}},"component":{}}],["_db(unsign",{"_index":303,"title":{},"name":{},"text":{"2":{},"59":{},"70":{},"127":{}},"component":{}}],["_delay",{"_index":582,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_delay.push(_i",{"_index":584,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_delay{350_m",{"_index":577,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_env",{"_index":400,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_env(std::abs(",{"_index":375,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_feedback",{"_index":585,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_gate",{"_index":403,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_gate(env",{"_index":378,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_gate_env",{"_index":405,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_gate_env(g",{"_index":379,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_hp",{"_index":396,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_hp(",{"_index":368,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_hz",{"_index":2454,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["_hz(long",{"_index":288,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_hz(unsign",{"_index":290,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_key",{"_index":774,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_khz",{"_index":2455,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["_khz(long",{"_index":293,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_khz(unsign",{"_index":294,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_lp(_delay",{"_index":604,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_lp{1_khz",{"_index":601,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_m",{"_index":2437,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["_makeup_gain",{"_index":384,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_mhz",{"_index":2456,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["_mhz(long",{"_index":295,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_mhz(unsign",{"_index":296,"title":{},"name":{},"text":{"2":{},"61":{},"70":{},"129":{}},"component":{}}],["_ms(long",{"_index":299,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_ms(unsign",{"_index":300,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_phase",{"_index":2526,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["_pi(long",{"_index":305,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_pi(unsign",{"_index":306,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_post_env",{"_index":385,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_s",{"_index":2436,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["_s(long",{"_index":297,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_s(unsign",{"_index":298,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_slope",{"_index":940,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["_sm",{"_index":398,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_sm(",{"_index":373,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["_step",{"_index":1088,"title":{},"name":{},"text":{"10":{},"65":{},"78":{},"133":{}},"component":{}}],["_synth",{"_index":787,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth(synth",{"_index":770,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.env.attack",{"_index":780,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.env.releas",{"_index":785,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.phase.set(freq",{"_index":778,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.sampling_r",{"_index":779,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_synth.veloc",{"_index":781,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["_threshold",{"_index":938,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["_u",{"_index":2438,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["_unspecified_base_type_",{"_index":2393,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"62":{},"64":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["_us(long",{"_index":301,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_us(unsign",{"_index":302,"title":{},"name":{},"text":{"2":{},"60":{},"70":{},"128":{}},"component":{}}],["_y",{"_index":581,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["a.rep",{"_index":1146,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["aan",{"_index":1149,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["abbrevi",{"_index":2493,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["abov",{"_index":173,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"11":{},"16":{},"21":{},"22":{},"23":{},"24":{},"27":{},"34":{},"41":{},"44":{},"48":{},"51":{},"53":{},"54":{},"57":{},"58":{},"70":{},"72":{},"75":{},"79":{},"84":{},"89":{},"90":{},"91":{},"92":{},"95":{},"102":{},"109":{},"112":{},"116":{},"119":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["abrupt",{"_index":960,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["abruptli",{"_index":942,"title":{},"name":{},"text":{"7":{},"22":{},"75":{},"90":{}},"component":{}}],["absolut",{"_index":1323,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"66":{},"93":{},"94":{},"95":{},"96":{},"97":{},"134":{}},"component":{}}],["abstract",{"_index":1023,"title":{},"name":{},"text":{"9":{},"40":{},"42":{},"77":{},"108":{},"110":{}},"component":{}}],["abund",{"_index":242,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["accept",{"_index":167,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"11":{},"28":{},"45":{},"48":{},"70":{},"74":{},"75":{},"79":{},"96":{},"113":{},"116":{}},"component":{}}],["access",{"_index":1109,"title":{"11-9":{},"79-9":{}},"name":{},"text":{"11":{},"31":{},"32":{},"36":{},"39":{},"43":{},"46":{},"48":{},"63":{},"65":{},"67":{},"79":{},"99":{},"100":{},"104":{},"107":{},"111":{},"114":{},"116":{},"131":{},"133":{},"135":{}},"component":{}}],["accessor",{"_index":1208,"title":{"21-9":{},"22-9":{},"23-9":{},"24-9":{},"31-8":{},"33-7":{},"33-10":{},"34-9":{},"37-8":{},"38-8":{},"38-15":{},"39-7":{},"40-8":{},"41-8":{},"48-19":{},"64-8":{},"65-10":{},"67-8":{},"67-9":{},"68-8":{},"68-11":{},"89-9":{},"90-9":{},"91-9":{},"92-9":{},"99-8":{},"101-7":{},"101-10":{},"102-9":{},"105-8":{},"106-8":{},"106-15":{},"107-7":{},"108-8":{},"109-8":{},"116-19":{},"132-8":{},"133-10":{},"135-8":{},"135-9":{},"136-8":{},"136-11":{}},"name":{},"text":{},"component":{}}],["accident",{"_index":1121,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["accommod",{"_index":461,"title":{},"name":{},"text":{"3":{},"32":{},"33":{},"71":{},"100":{},"101":{}},"component":{}}],["accord",{"_index":319,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["accordingli",{"_index":1225,"title":{},"name":{},"text":{"21":{},"33":{},"89":{},"101":{}},"component":{}}],["accumul",{"_index":453,"title":{},"name":{},"text":{"3":{},"55":{},"64":{},"65":{},"71":{},"123":{},"132":{},"133":{}},"component":{}}],["accur",{"_index":1002,"title":{},"name":{},"text":{"8":{},"29":{},"59":{},"76":{},"97":{},"127":{}},"component":{}}],["achiev",{"_index":1047,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["act",{"_index":1029,"title":{},"name":{},"text":{"9":{},"41":{},"45":{},"77":{},"109":{},"113":{}},"component":{}}],["action",{"_index":1236,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["activ",{"_index":2176,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["active_sens",{"_index":1842,"title":{"44-22":{},"112-22":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["actual",{"_index":666,"title":{},"name":{},"text":{"4":{},"10":{},"31":{},"32":{},"33":{},"38":{},"68":{},"72":{},"78":{},"99":{},"100":{},"101":{},"106":{},"136":{}},"component":{}}],["ad",{"_index":1419,"title":{},"name":{},"text":{"28":{},"33":{},"37":{},"39":{},"48":{},"64":{},"65":{},"96":{},"101":{},"105":{},"107":{},"116":{},"132":{},"133":{}},"component":{}}],["ad.default_sample_r",{"_index":1645,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["ad.id",{"_index":1641,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["ad.input_channel",{"_index":1643,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["ad.nam",{"_index":1642,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["ad.output_channel",{"_index":1644,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["adc",{"_index":73,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["add",{"_index":603,"title":{},"name":{},"text":{"4":{},"11":{},"22":{},"24":{},"32":{},"33":{},"46":{},"48":{},"72":{},"79":{},"90":{},"92":{},"100":{},"101":{},"114":{},"116":{}},"component":{}}],["addit",{"_index":947,"title":{},"name":{},"text":{"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"27":{},"31":{},"32":{},"36":{},"38":{},"39":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"56":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"94":{},"95":{},"99":{},"100":{},"104":{},"106":{},"107":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"124":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{},"135":{}},"component":{}}],["addition",{"_index":828,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["adher",{"_index":2341,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["adjust",{"_index":1037,"title":{},"name":{},"text":{"10":{},"21":{},"31":{},"78":{},"89":{},"99":{}},"component":{}}],["admir",{"_index":1523,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["adsr",{"_index":608,"title":{"48-20":{},"116-20":{}},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["adsr_envelope_gen",{"_index":718,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["adsr_envelope_gen(config",{"_index":2224,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::adsr_envelope_gen(config",{"_index":2230,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::attack_rate(dur",{"_index":2250,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::decay_rate(dur",{"_index":2252,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::release_rate(dur",{"_index":2258,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::sustain_level(decibel",{"_index":2254,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["adsr_envelope_gen::sustain_rate(dur",{"_index":2256,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["advanc",{"_index":538,"title":{},"name":{},"text":{"3":{},"10":{},"71":{},"78":{}},"component":{}}],["advantag",{"_index":244,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"26":{},"64":{},"70":{},"72":{},"75":{},"94":{},"132":{}},"component":{}}],["advis",{"_index":1781,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["advoc",{"_index":539,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["affect",{"_index":1727,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["aforement",{"_index":1005,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["aftertouch",{"_index":1791,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["again",{"_index":797,"title":{},"name":{},"text":{"4":{},"26":{},"27":{},"72":{},"94":{},"95":{}},"component":{}}],["agc",{"_index":489,"title":{"21":{},"89":{}},"name":{"21":{},"89":{}},"text":{"3":{},"21":{},"28":{},"71":{},"89":{},"96":{}},"component":{}}],["agc(decibel",{"_index":1217,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["agc(g",{"_index":1224,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["agc(max",{"_index":1222,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["aim",{"_index":1127,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["air",{"_index":645,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["alert",{"_index":2407,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["algorithm",{"_index":321,"title":{},"name":{},"text":{"2":{},"58":{},"70":{},"126":{}},"component":{}}],["alia",{"_index":140,"title":{},"name":{},"text":{"2":{},"26":{},"27":{},"28":{},"70":{},"94":{},"95":{},"96":{}},"component":{}}],["alias",{"_index":1082,"title":{},"name":{},"text":{"10":{},"53":{},"54":{},"57":{},"58":{},"62":{},"78":{},"121":{},"122":{},"125":{},"126":{},"130":{}},"component":{}}],["all_notes_off",{"_index":2038,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["all_sounds_off",{"_index":2033,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["allow",{"_index":227,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"23":{},"25":{},"27":{},"29":{},"30":{},"31":{},"32":{},"36":{},"38":{},"39":{},"43":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"68":{},"70":{},"72":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"91":{},"93":{},"95":{},"97":{},"98":{},"99":{},"100":{},"104":{},"106":{},"107":{},"111":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{},"135":{},"136":{}},"component":{}}],["allpass",{"_index":920,"title":{},"name":{"12":{},"80":{}},"text":{"6":{},"12":{},"13":{},"74":{},"80":{},"81":{}},"component":{}}],["allpass(f",{"_index":1169,"title":{},"name":{},"text":{"12":{},"80":{}},"component":{}}],["allpass(frequ",{"_index":1164,"title":{},"name":{},"text":{"12":{},"80":{}},"component":{}}],["along",{"_index":2082,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["alreadi",{"_index":1416,"title":{},"name":{},"text":{"28":{},"59":{},"96":{},"127":{}},"component":{}}],["alter",{"_index":1467,"title":{},"name":{},"text":{"31":{},"59":{},"99":{},"127":{}},"component":{}}],["altern",{"_index":1639,"title":{},"name":{},"text":{"37":{},"46":{},"105":{},"114":{}},"component":{}}],["although",{"_index":980,"title":{},"name":{},"text":{"8":{},"55":{},"68":{},"76":{},"123":{},"136":{}},"component":{}}],["alway",{"_index":979,"title":{},"name":{},"text":{"8":{},"46":{},"76":{},"114":{}},"component":{}}],["amount",{"_index":590,"title":{},"name":{},"text":{"4":{},"22":{},"23":{},"24":{},"72":{},"90":{},"91":{},"92":{}},"component":{}}],["amplifi",{"_index":610,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["amplitud",{"_index":977,"title":{},"name":{},"text":{"8":{},"10":{},"36":{},"47":{},"49":{},"52":{},"54":{},"56":{},"59":{},"76":{},"78":{},"104":{},"115":{},"117":{},"120":{},"122":{},"124":{},"127":{}},"component":{}}],["analog",{"_index":1049,"title":{},"name":{},"text":{"10":{},"55":{},"78":{},"123":{}},"component":{}}],["analysi",{"_index":1403,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["analyz",{"_index":989,"title":{},"name":{},"text":{"8":{},"30":{},"41":{},"42":{},"45":{},"76":{},"98":{},"109":{},"110":{},"113":{}},"component":{}}],["angl",{"_index":183,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["anoth",{"_index":181,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"10":{},"59":{},"70":{},"72":{},"75":{},"78":{},"127":{}},"component":{}}],["anyth",{"_index":592,"title":{},"name":{},"text":{"4":{},"48":{},"49":{},"72":{},"116":{},"117":{}},"component":{}}],["anywher",{"_index":2325,"title":{},"name":{},"text":{"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{}},"component":{}}],["ap",{"_index":1167,"title":{},"name":{},"text":{"12":{},"80":{}},"component":{}}],["ap.config(f",{"_index":1170,"title":{},"name":{},"text":{"12":{},"80":{}},"component":{}}],["api",{"_index":908,"title":{},"name":{},"text":{"6":{},"26":{},"28":{},"45":{},"74":{},"94":{},"96":{},"113":{}},"component":{}}],["app",{"_index":628,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["appar",{"_index":1395,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["appli",{"_index":599,"title":{},"name":{},"text":{"4":{},"7":{},"11":{},"21":{},"22":{},"23":{},"24":{},"28":{},"48":{},"53":{},"54":{},"57":{},"58":{},"72":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"96":{},"116":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["applic",{"_index":80,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"25":{},"27":{},"29":{},"35":{},"41":{},"45":{},"64":{},"68":{},"70":{},"72":{},"77":{},"93":{},"95":{},"97":{},"103":{},"109":{},"113":{},"132":{},"136":{}},"component":{}}],["application’",{"_index":1001,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["approach",{"_index":1285,"title":{},"name":{},"text":{"24":{},"55":{},"92":{},"123":{}},"component":{}}],["appropri",{"_index":237,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["approx_db",{"_index":2416,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["approx_db(float",{"_index":2397,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["approx_db(v",{"_index":2412,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["approxim",{"_index":1397,"title":{},"name":{},"text":{"27":{},"58":{},"59":{},"95":{},"126":{},"127":{}},"component":{}}],["apt",{"_index":864,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["aptli",{"_index":426,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["ar",{"_index":484,"title":{"25":{},"93":{}},"name":{},"text":{"3":{},"25":{},"27":{},"71":{},"93":{},"95":{}},"component":{}}],["ar_envelope_follow",{"_index":1296,"title":{},"name":{"25":{},"93":{}},"text":{"25":{},"93":{}},"component":{}}],["ar_envelope_follower(atk",{"_index":1343,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["ar_envelope_follower(env",{"_index":1344,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["arbitrari",{"_index":2076,"title":{},"name":{},"text":{"45":{},"64":{},"65":{},"113":{},"132":{},"133":{}},"component":{}}],["architect",{"_index":533,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["arg",{"_index":2198,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["argument",{"_index":1089,"title":{},"name":{},"text":{"10":{},"21":{},"22":{},"23":{},"24":{},"48":{},"78":{},"89":{},"90":{},"91":{},"92":{},"116":{}},"component":{}}],["arithmet",{"_index":232,"title":{"11-5":{},"11-11":{},"43-3":{},"79-5":{},"79-11":{},"111-3":{}},"name":{},"text":{"2":{},"11":{},"28":{},"43":{},"70":{},"79":{},"96":{},"111":{}},"component":{}}],["around",{"_index":2321,"title":{},"name":{},"text":{"54":{},"122":{}},"component":{}}],["arrang",{"_index":2087,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["array",{"_index":1851,"title":{},"name":{},"text":{"44":{},"46":{},"56":{},"112":{},"114":{},"124":{}},"component":{}}],["arriv",{"_index":818,"title":{},"name":{},"text":{"4":{},"33":{},"72":{},"101":{}},"component":{}}],["arrow",{"_index":54,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["articl",{"_index":1383,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["artifact",{"_index":1086,"title":{},"name":{},"text":{"10":{},"53":{},"54":{},"57":{},"58":{},"78":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["as.cpu_load",{"_index":1729,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.default_sample_r",{"_index":1740,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.error",{"_index":1733,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.input_channel",{"_index":1738,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.input_lat",{"_index":1735,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.is_valid",{"_index":1721,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.output_channel",{"_index":1739,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.output_lat",{"_index":1737,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.start",{"_index":1741,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.stop",{"_index":1742,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as.tim",{"_index":1724,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["as_doubl",{"_index":225,"title":{},"name":{},"text":{"2":{},"21":{},"22":{},"23":{},"24":{},"70":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["as_double(basic_interv",{"_index":2467,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_double(d",{"_index":2429,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["as_double(dur",{"_index":2426,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["as_double(f",{"_index":2445,"title":{},"name":{},"text":{"61":{},"63":{},"129":{},"131":{}},"component":{}}],["as_double(frequ",{"_index":2442,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["as_double(i",{"_index":2475,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_double(p",{"_index":2563,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_double(pitch",{"_index":2555,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_float",{"_index":224,"title":{},"name":{},"text":{"2":{},"21":{},"22":{},"23":{},"24":{},"70":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["as_float(12_db",{"_index":226,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["as_float(_comp(env_db",{"_index":383,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["as_float(basic_interv",{"_index":2466,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_float(comp(env",{"_index":1254,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["as_float(d",{"_index":2428,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["as_float(dur",{"_index":2427,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["as_float(exp(env",{"_index":1277,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["as_float(f",{"_index":2444,"title":{},"name":{},"text":{"61":{},"63":{},"129":{},"131":{}},"component":{}}],["as_float(frequ",{"_index":2443,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["as_float(g(env",{"_index":1227,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["as_float(i",{"_index":2474,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_float(p",{"_index":2562,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_float(pitch",{"_index":2554,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_frequency(p",{"_index":2564,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_frequency(pitch",{"_index":2553,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["as_int(basic_interv",{"_index":2465,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["as_int(i",{"_index":2473,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["asid",{"_index":2143,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"115":{},"118":{},"119":{}},"component":{}}],["ask",{"_index":629,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["assign",{"_index":889,"title":{"6-7":{},"10-6":{},"10-22":{},"10-28":{},"11-8":{},"21-6":{},"22-6":{},"23-6":{},"24-6":{},"25-7":{},"26-7":{},"27-9":{},"28-7":{},"29-8":{},"30-7":{},"31-9":{},"33-8":{},"34-6":{},"35-7":{},"37-6":{},"38-7":{},"38-13":{},"38-20":{},"40-6":{},"48-8":{},"65-6":{},"68-9":{},"74-7":{},"78-6":{},"78-22":{},"78-28":{},"79-8":{},"89-6":{},"90-6":{},"91-6":{},"92-6":{},"93-7":{},"94-7":{},"95-9":{},"96-7":{},"97-8":{},"98-7":{},"99-9":{},"101-8":{},"102-6":{},"103-7":{},"105-6":{},"106-7":{},"106-13":{},"106-20":{},"108-6":{},"116-8":{},"133-6":{},"136-9":{}},"name":{},"text":{"6":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"37":{},"40":{},"48":{},"65":{},"68":{},"74":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"105":{},"108":{},"116":{},"133":{},"136":{}},"component":{}}],["astut",{"_index":725,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["asynchron",{"_index":1020,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["asynchrono",{"_index":1027,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["atk",{"_index":1341,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["attack",{"_index":763,"title":{},"name":{},"text":{"4":{},"10":{},"22":{},"25":{},"27":{},"29":{},"34":{},"36":{},"44":{},"48":{},"72":{},"78":{},"90":{},"93":{},"95":{},"97":{},"102":{},"104":{},"112":{},"116":{}},"component":{}}],["attack(float",{"_index":1337,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["attack_",{"_index":1338,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["attack_r",{"_index":2215,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["attack_rate(dur",{"_index":2225,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["attack_width",{"_index":1618,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["attempt",{"_index":1300,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["attenu",{"_index":1186,"title":{},"name":{},"text":{"16":{},"18":{},"22":{},"23":{},"24":{},"30":{},"32":{},"34":{},"84":{},"86":{},"90":{},"91":{},"92":{},"98":{},"100":{},"102":{}},"component":{}}],["audio",{"_index":35,"title":{"3":{},"9":{},"42":{},"71":{},"77":{},"110":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"29":{},"34":{},"37":{},"38":{},"39":{},"40":{},"42":{},"47":{},"50":{},"51":{},"56":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"97":{},"102":{},"105":{},"106":{},"107":{},"108":{},"110":{},"115":{},"118":{},"119":{},"124":{}},"component":{}}],["audio_devic",{"_index":1011,"title":{"37":{},"105":{}},"name":{"37":{},"105":{}},"text":{"9":{},"37":{},"39":{},"77":{},"105":{},"107":{}},"component":{}}],["audio_device(b",{"_index":1633,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["audio_device::get(id",{"_index":1638,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["audio_device::list",{"_index":1637,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["audio_device`",{"_index":1635,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["audio_fil",{"_index":877,"title":{"38":{},"106":{}},"name":{"38":{},"106":{}},"text":{"5":{},"9":{},"38":{},"73":{},"77":{},"106":{}},"component":{}}],["audio_stream",{"_index":1016,"title":{"39":{},"107":{}},"name":{"39":{},"42":{},"107":{},"110":{}},"text":{"9":{},"39":{},"77":{},"107":{}},"component":{}}],["audio_stream(",{"_index":1718,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["audio_stream(1",{"_index":1746,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["audio_stream(ad",{"_index":1719,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["audio_stream(q::audio_device::get(device_id",{"_index":672,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["audio_stream_bas",{"_index":1702,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["augment",{"_index":240,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["austrian",{"_index":2285,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["author",{"_index":424,"title":{"3-3":{},"71-3":{}},"name":{},"text":{"3":{},"71":{}},"component":{}}],["auto",{"_index":233,"title":{},"name":{},"text":{"2":{},"4":{},"21":{},"22":{},"23":{},"24":{},"37":{},"38":{},"39":{},"40":{},"43":{},"46":{},"48":{},"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"64":{},"66":{},"70":{},"72":{},"89":{},"90":{},"91":{},"92":{},"105":{},"106":{},"107":{},"108":{},"111":{},"114":{},"116":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"132":{},"134":{}},"component":{}}],["automat",{"_index":1209,"title":{},"name":{},"text":{"21":{},"25":{},"27":{},"29":{},"48":{},"89":{},"93":{},"95":{},"97":{},"116":{}},"component":{}}],["auxiliari",{"_index":134,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["avail",{"_index":286,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"37":{},"40":{},"70":{},"72":{},"77":{},"105":{},"108":{}},"component":{}}],["averag",{"_index":485,"title":{"26":{},"32":{},"94":{},"100":{}},"name":{},"text":{"3":{},"26":{},"27":{},"28":{},"32":{},"71":{},"94":{},"95":{},"96":{},"100":{}},"component":{}}],["avoid",{"_index":1118,"title":{},"name":{},"text":{"11":{},"29":{},"53":{},"54":{},"56":{},"57":{},"58":{},"59":{},"79":{},"97":{},"121":{},"122":{},"124":{},"125":{},"126":{},"127":{}},"component":{}}],["aw",{"_index":1623,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["b",{"_index":912,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"37":{},"38":{},"40":{},"44":{},"48":{},"65":{},"66":{},"67":{},"68":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"105":{},"106":{},"108":{},"112":{},"116":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["b.rep",{"_index":1160,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["back",{"_index":563,"title":{},"name":{},"text":{"4":{},"48":{},"58":{},"68":{},"72":{},"116":{},"126":{},"136":{}},"component":{}}],["background",{"_index":1584,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["balanc",{"_index":1910,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["balance_lsb",{"_index":1941,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["band",{"_index":478,"title":{"13":{},"14":{},"81":{},"82":{}},"name":{},"text":{"3":{},"6":{},"13":{},"14":{},"71":{},"74":{},"81":{},"82":{}},"component":{}}],["bandlimit",{"_index":2375,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["bandpass_cpg",{"_index":919,"title":{},"name":{"13":{},"81":{}},"text":{"6":{},"13":{},"74":{},"81":{}},"component":{}}],["bandpass_cpg(f",{"_index":1176,"title":{},"name":{},"text":{"13":{},"81":{}},"component":{}}],["bandpass_cpg(frequ",{"_index":1173,"title":{},"name":{},"text":{"13":{},"81":{}},"component":{}}],["bandpass_csg",{"_index":918,"title":{},"name":{"14":{},"82":{}},"text":{"6":{},"14":{},"74":{},"82":{}},"component":{}}],["bandpass_csg(f",{"_index":1180,"title":{},"name":{},"text":{"14":{},"82":{}},"component":{}}],["bandpass_csg(frequ",{"_index":1179,"title":{},"name":{},"text":{"14":{},"82":{}},"component":{}}],["bandwidth",{"_index":607,"title":{},"name":{},"text":{"4":{},"10":{},"13":{},"14":{},"19":{},"20":{},"53":{},"54":{},"57":{},"58":{},"72":{},"78":{},"81":{},"82":{},"87":{},"88":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["bandwidthlimitedoscil",{"_index":1032,"title":{"10-13":{},"78-13":{}},"name":{},"text":{"10":{},"53":{},"54":{},"57":{},"58":{},"78":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["bank_select",{"_index":1897,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["bank_select_lsb",{"_index":1927,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["base",{"_index":900,"title":{},"name":{},"text":{"6":{},"8":{},"27":{},"30":{},"31":{},"32":{},"36":{},"38":{},"39":{},"42":{},"43":{},"44":{},"46":{},"48":{},"59":{},"63":{},"64":{},"66":{},"67":{},"74":{},"76":{},"95":{},"98":{},"99":{},"100":{},"104":{},"106":{},"107":{},"110":{},"111":{},"112":{},"114":{},"116":{},"127":{},"131":{},"132":{},"134":{},"135":{}},"component":{}}],["base::index_typ",{"_index":1492,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["base::interpolation_typ",{"_index":1494,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["base::storage_typ",{"_index":1490,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["base::value_typ",{"_index":1488,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["base_frequ",{"_index":2548,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["base_typ",{"_index":2196,"title":{},"name":{},"text":{"48":{},"59":{},"60":{},"61":{},"62":{},"64":{},"116":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["base_type::base_typ",{"_index":2394,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"62":{},"64":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["basi",{"_index":1129,"title":{},"name":{},"text":{"11":{},"62":{},"79":{},"130":{}},"component":{}}],["basic",{"_index":24,"title":{"43":{},"111":{}},"name":{},"text":{"2":{},"3":{},"5":{},"8":{},"11":{},"27":{},"31":{},"35":{},"38":{},"43":{},"44":{},"45":{},"46":{},"48":{},"52":{},"54":{},"56":{},"62":{},"70":{},"71":{},"73":{},"76":{},"79":{},"95":{},"99":{},"103":{},"106":{},"111":{},"112":{},"113":{},"114":{},"116":{},"120":{},"122":{},"124":{},"130":{}},"component":{}}],["basic_concept",{"_index":1815,"title":{},"name":{"43":{},"111":{}},"text":{},"component":{}}],["basic_delay",{"_index":1476,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["basic_delay(dur",{"_index":1495,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["basic_fast_ave_envelope_follow",{"_index":1362,"title":{},"name":{},"text":{"26":{},"28":{},"94":{},"96":{}},"component":{}}],["basic_fast_ave_envelope_follower(dur",{"_index":1363,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["basic_fast_envelope_follow",{"_index":1408,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["basic_fast_envelope_follower(dur",{"_index":1410,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["basic_interv",{"_index":2462,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["basic_interval(concepts::arithmet",{"_index":2464,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["basic_moving_averag",{"_index":1540,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["basic_moving_sum",{"_index":1541,"title":{},"name":{},"text":{"32":{},"33":{},"100":{},"101":{}},"component":{}}],["basic_moving_sum(dur",{"_index":1555,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["basic_moving_sum(std::size_t",{"_index":1553,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["basic_moving_sum::basic_moving_sum",{"_index":1542,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["basic_pulse_osc",{"_index":2308,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["basic_pulse_osc(float",{"_index":2312,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["basic_pulse_osc(w",{"_index":2316,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["basic_saw",{"_index":2323,"title":{},"name":{},"text":{"54":{},"122":{}},"component":{}}],["basic_saw_osc",{"_index":2322,"title":{},"name":{},"text":{"54":{},"122":{}},"component":{}}],["basic_squar",{"_index":2369,"title":{},"name":{},"text":{"57":{},"125":{}},"component":{}}],["basic_square_osc",{"_index":2368,"title":{},"name":{},"text":{"57":{},"125":{}},"component":{}}],["basic_triangl",{"_index":2379,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["basic_triangle_osc",{"_index":2371,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["basicoscil",{"_index":1031,"title":{"10-8":{},"78-8":{}},"name":{},"text":{"10":{},"53":{},"54":{},"56":{},"57":{},"58":{},"78":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["be",{"_index":1670,"title":{},"name":{},"text":{"38":{},"43":{},"59":{},"106":{},"111":{},"127":{}},"component":{}}],["becom",{"_index":522,"title":{},"name":{},"text":{"3":{},"4":{},"55":{},"71":{},"72":{},"123":{}},"component":{}}],["befor",{"_index":587,"title":{},"name":{},"text":{"4":{},"25":{},"27":{},"29":{},"31":{},"39":{},"41":{},"48":{},"72":{},"93":{},"95":{},"97":{},"99":{},"107":{},"109":{},"116":{}},"component":{}}],["begin",{"_index":985,"title":{},"name":{},"text":{"8":{},"29":{},"38":{},"43":{},"64":{},"65":{},"76":{},"97":{},"106":{},"111":{},"132":{},"133":{}},"component":{}}],["behavior",{"_index":983,"title":{},"name":{},"text":{"8":{},"25":{},"29":{},"39":{},"41":{},"64":{},"67":{},"68":{},"76":{},"93":{},"97":{},"107":{},"109":{},"132":{},"135":{},"136":{}},"component":{}}],["behind",{"_index":698,"title":{},"name":{},"text":{"4":{},"6":{},"72":{},"74":{}},"component":{}}],["bell",{"_index":2284,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["belong",{"_index":2288,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["below",{"_index":229,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"9":{},"11":{},"18":{},"21":{},"23":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"37":{},"40":{},"41":{},"46":{},"48":{},"65":{},"66":{},"70":{},"72":{},"75":{},"77":{},"79":{},"86":{},"89":{},"91":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"102":{},"105":{},"108":{},"109":{},"114":{},"116":{},"133":{},"134":{}},"component":{}}],["bend",{"_index":1802,"title":{},"name":{},"text":{"41":{},"44":{},"109":{},"112":{}},"component":{}}],["best",{"_index":159,"title":{},"name":{},"text":{"2":{},"11":{},"70":{},"79":{}},"component":{}}],["between",{"_index":927,"title":{},"name":{},"text":{"7":{},"9":{},"10":{},"31":{},"39":{},"41":{},"45":{},"48":{},"59":{},"62":{},"64":{},"66":{},"75":{},"77":{},"78":{},"99":{},"107":{},"109":{},"113":{},"116":{},"127":{},"130":{},"132":{},"134":{}},"component":{}}],["beyond",{"_index":186,"title":{},"name":{},"text":{"2":{},"8":{},"10":{},"70":{},"76":{},"78":{}},"component":{}}],["bf",{"_index":1175,"title":{},"name":{},"text":{"13":{},"14":{},"20":{},"81":{},"82":{},"88":{}},"component":{}}],["bf.config(f",{"_index":1178,"title":{},"name":{},"text":{"13":{},"14":{},"81":{},"82":{}},"component":{}}],["bf.config(g",{"_index":1207,"title":{},"name":{},"text":{"20":{},"88":{}},"component":{}}],["binari",{"_index":1155,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["biquad",{"_index":475,"title":{"6":{},"74":{},"6-2":{},"74-2":{}},"name":{"6":{},"74":{}},"text":{"3":{},"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"71":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["biquad(biquad",{"_index":911,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["biquad(f",{"_index":914,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["bissel",{"_index":1386,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["bit",{"_index":202,"title":{},"name":{},"text":{"2":{},"38":{},"44":{},"64":{},"70":{},"106":{},"112":{},"132":{}},"component":{}}],["bk",{"_index":1455,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["bk(",{"_index":1458,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["bk.cutoff(f",{"_index":1460,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["blackman",{"_index":504,"title":{"47":{},"115":{}},"name":{},"text":{"3":{},"47":{},"48":{},"71":{},"115":{},"116":{}},"component":{}}],["blackman_downward_ramp_gen",{"_index":2152,"title":{},"name":{},"text":{"47":{},"48":{},"115":{},"116":{}},"component":{}}],["blackman_downward_ramp_gen(dur",{"_index":2153,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["blackman_gen",{"_index":2129,"title":{},"name":{"47":{},"115":{}},"text":{"47":{},"48":{},"115":{},"116":{}},"component":{}}],["blackman_gen(dur",{"_index":2144,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["blackman_gen(w",{"_index":2146,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["blackman_upward_ramp_gen",{"_index":2150,"title":{},"name":{},"text":{"47":{},"48":{},"115":{},"116":{}},"component":{}}],["blackman_upward_ramp_gen(dur",{"_index":2151,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["blamp",{"_index":2374,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["block",{"_index":28,"title":{"30":{},"98":{}},"name":{},"text":{"2":{},"3":{},"4":{},"10":{},"31":{},"35":{},"41":{},"56":{},"70":{},"71":{},"72":{},"78":{},"99":{},"103":{},"109":{},"124":{}},"component":{}}],["blocker",{"_index":1447,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["blue",{"_index":1322,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["bonu",{"_index":1420,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["bool",{"_index":1148,"title":{},"name":{},"text":{"11":{},"33":{},"34":{},"36":{},"38":{},"39":{},"41":{},"48":{},"65":{},"66":{},"79":{},"101":{},"102":{},"104":{},"106":{},"107":{},"109":{},"116":{},"133":{},"134":{}},"component":{}}],["bool(w",{"_index":1664,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["boolean",{"_index":1602,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["boost",{"_index":546,"title":{},"name":{},"text":{"3":{},"16":{},"18":{},"71":{},"84":{},"86":{}},"component":{}}],["boost.fus",{"_index":545,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["boost.phoenix",{"_index":544,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["boost.spirit",{"_index":543,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["both",{"_index":326,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"7":{},"9":{},"11":{},"22":{},"24":{},"25":{},"27":{},"29":{},"31":{},"32":{},"39":{},"43":{},"44":{},"46":{},"51":{},"55":{},"70":{},"71":{},"73":{},"75":{},"77":{},"79":{},"90":{},"92":{},"93":{},"95":{},"97":{},"99":{},"100":{},"107":{},"111":{},"112":{},"114":{},"119":{},"123":{}},"component":{}}],["box",{"_index":44,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["brace",{"_index":916,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"47":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"63":{},"64":{},"65":{},"66":{},"68":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"106":{},"115":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"131":{},"132":{},"133":{},"134":{},"136":{}},"component":{}}],["break",{"_index":706,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["breath",{"_index":1900,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["breath_lsb",{"_index":1931,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["breviti",{"_index":388,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["brief",{"_index":22,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["bright",{"_index":1981,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["bring",{"_index":2423,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"127":{},"128":{},"129":{}},"component":{}}],["bristow",{"_index":902,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["browser",{"_index":574,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["buffer",{"_index":513,"title":{"46":{},"67":{},"68":{},"114":{},"135":{},"136":{}},"name":{},"text":{"3":{},"4":{},"9":{},"31":{},"32":{},"33":{},"38":{},"39":{},"42":{},"46":{},"67":{},"68":{},"71":{},"72":{},"77":{},"99":{},"100":{},"101":{},"106":{},"107":{},"110":{},"114":{},"135":{},"136":{}},"component":{}}],["buffer_view",{"_index":2115,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["buffer’",{"_index":2603,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["build",{"_index":27,"title":{"5-9":{},"73-9":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"10":{},"31":{},"35":{},"56":{},"70":{},"71":{},"72":{},"73":{},"78":{},"99":{},"103":{},"124":{}},"component":{}}],["bw",{"_index":1171,"title":{},"name":{},"text":{"13":{},"14":{},"19":{},"20":{},"81":{},"82":{},"87":{},"88":{}},"component":{}}],["bw{b",{"_index":1177,"title":{},"name":{},"text":{"13":{},"14":{},"19":{},"20":{},"81":{},"82":{},"87":{},"88":{}},"component":{}}],["byte",{"_index":1865,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["c",{"_index":86,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"8":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"56":{},"59":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"71":{},"72":{},"73":{},"74":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"106":{},"109":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"124":{},"127":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["c++20",{"_index":822,"title":{"5-2":{},"73-2":{}},"name":{},"text":{"5":{},"73":{}},"component":{}}],["c.begin",{"_index":1826,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["c.end",{"_index":1827,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["c.size",{"_index":1821,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["c4",{"_index":2063,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["c[i",{"_index":1822,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["calcul",{"_index":1548,"title":{},"name":{},"text":{"32":{},"33":{},"55":{},"56":{},"100":{},"101":{},"123":{},"124":{}},"component":{}}],["call",{"_index":341,"title":{"6-8":{},"10-7":{},"10-12":{},"10-17":{},"10-23":{},"21-7":{},"22-7":{},"23-7":{},"24-7":{},"25-8":{},"26-8":{},"27-10":{},"28-8":{},"29-9":{},"31-10":{},"32-7":{},"33-9":{},"34-7":{},"45-7":{},"48-17":{},"55-7":{},"74-8":{},"78-7":{},"78-12":{},"78-17":{},"78-23":{},"89-7":{},"90-7":{},"91-7":{},"92-7":{},"93-8":{},"94-8":{},"95-10":{},"96-8":{},"97-9":{},"99-10":{},"100-7":{},"101-9":{},"102-7":{},"113-7":{},"116-17":{},"123-7":{}},"name":{},"text":{"2":{},"4":{},"6":{},"21":{},"22":{},"23":{},"24":{},"28":{},"39":{},"41":{},"42":{},"45":{},"48":{},"53":{},"54":{},"57":{},"58":{},"70":{},"72":{},"74":{},"89":{},"90":{},"91":{},"92":{},"96":{},"107":{},"109":{},"110":{},"113":{},"116":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["capabl",{"_index":1015,"title":{},"name":{},"text":{"9":{},"37":{},"77":{},"105":{}},"component":{}}],["capacitor",{"_index":1312,"title":{},"name":{},"text":{"25":{},"29":{},"49":{},"93":{},"97":{},"117":{}},"component":{}}],["captur",{"_index":1326,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["care",{"_index":655,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["cascad",{"_index":924,"title":{"7-4":{},"75-4":{}},"name":{},"text":{"7":{},"75":{}},"component":{}}],["case",{"_index":789,"title":{},"name":{},"text":{"4":{},"7":{},"10":{},"31":{},"35":{},"48":{},"72":{},"75":{},"78":{},"99":{},"103":{},"116":{}},"component":{}}],["catastroph",{"_index":1119,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["caus",{"_index":1083,"title":{},"name":{},"text":{"10":{},"25":{},"26":{},"29":{},"78":{},"93":{},"94":{},"97":{}},"component":{}}],["cc",{"_index":1896,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["cc::control",{"_index":2047,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["cd",{"_index":851,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["ceil",{"_index":2481,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["ceil(basic_interv",{"_index":2469,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["ceil(i",{"_index":2477,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["ceil(p",{"_index":2567,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["ceil(pitch",{"_index":2557,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["celest",{"_index":2015,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["center",{"_index":2320,"title":{},"name":{},"text":{"54":{},"122":{}},"component":{}}],["certain",{"_index":1068,"title":{},"name":{},"text":{"10":{},"11":{},"22":{},"23":{},"38":{},"78":{},"79":{},"90":{},"91":{},"106":{}},"component":{}}],["ch",{"_index":1697,"title":{},"name":{},"text":{"38":{},"46":{},"106":{},"114":{}},"component":{}}],["chamberlin’",{"_index":2328,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["chanc",{"_index":817,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["chang",{"_index":796,"title":{},"name":{},"text":{"4":{},"5":{},"7":{},"8":{},"22":{},"29":{},"32":{},"33":{},"41":{},"44":{},"45":{},"48":{},"59":{},"65":{},"72":{},"73":{},"75":{},"76":{},"90":{},"97":{},"100":{},"101":{},"109":{},"112":{},"113":{},"116":{},"127":{},"133":{}},"component":{}}],["channel",{"_index":565,"title":{},"name":{},"text":{"4":{},"9":{},"37":{},"38":{},"39":{},"41":{},"44":{},"46":{},"72":{},"77":{},"105":{},"106":{},"107":{},"109":{},"112":{},"114":{}},"component":{}}],["channel_aftertouch",{"_index":1835,"title":{"44-13":{},"112-13":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["channel_aftertouch(std::uint8_t",{"_index":2050,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["channel_volum",{"_index":1908,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["channel_volume_lsb",{"_index":1939,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["channels_view",{"_index":2118,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["char",{"_index":1684,"title":{},"name":{},"text":{"38":{},"39":{},"44":{},"106":{},"107":{},"112":{}},"component":{}}],["characterist",{"_index":998,"title":{},"name":{},"text":{"8":{},"48":{},"76":{},"116":{}},"component":{}}],["charg",{"_index":1313,"title":{},"name":{},"text":{"25":{},"29":{},"49":{},"93":{},"97":{},"117":{}},"component":{}}],["cheapli",{"_index":1636,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["check",{"_index":1722,"title":{},"name":{},"text":{"39":{},"41":{},"107":{},"109":{}},"component":{}}],["choos",{"_index":643,"title":{},"name":{},"text":{"4":{},"37":{},"40":{},"72":{},"105":{},"108":{}},"component":{}}],["chord",{"_index":2461,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["choru",{"_index":2012,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["chorus",{"_index":1474,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["chosen",{"_index":808,"title":{},"name":{},"text":{"4":{},"11":{},"27":{},"72":{},"79":{},"95":{}},"component":{}}],["chromat",{"_index":2542,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["chunk",{"_index":1669,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["circl",{"_index":2487,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["circuit",{"_index":434,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["circular",{"_index":2490,"title":{},"name":{},"text":{"64":{},"68":{},"132":{},"136":{}},"component":{}}],["clang",{"_index":838,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["clariti",{"_index":712,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["class",{"_index":135,"title":{"6-9":{},"74-9":{}},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"9":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"31":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"44":{},"45":{},"46":{},"48":{},"54":{},"56":{},"57":{},"58":{},"59":{},"62":{},"63":{},"65":{},"67":{},"68":{},"70":{},"72":{},"74":{},"75":{},"77":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{},"96":{},"99":{},"100":{},"101":{},"102":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"112":{},"113":{},"114":{},"116":{},"122":{},"124":{},"125":{},"126":{},"127":{},"130":{},"131":{},"133":{},"135":{},"136":{}},"component":{}}],["clear",{"_index":1559,"title":{},"name":{},"text":{"33":{},"68":{},"101":{},"136":{}},"component":{}}],["client",{"_index":1028,"title":{"42-4":{},"110-4":{}},"name":{},"text":{"9":{},"39":{},"42":{},"77":{},"107":{},"110":{}},"component":{}}],["client’",{"_index":1808,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["clion",{"_index":842,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["clip",{"_index":370,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"70":{},"72":{},"73":{}},"component":{}}],["clip(filter(v",{"_index":686,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["clock",{"_index":2075,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["clone",{"_index":843,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["close",{"_index":1405,"title":{},"name":{},"text":{"27":{},"29":{},"34":{},"95":{},"97":{},"102":{}},"component":{}}],["closer",{"_index":1401,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["cmake",{"_index":824,"title":{"5-4":{},"5-5":{},"73-4":{},"73-5":{}},"name":{},"text":{"5":{},"73":{}},"component":{}}],["co",{"_index":2350,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["code",{"_index":142,"title":{"4-2":{},"72-2":{}},"name":{},"text":{"2":{},"4":{},"7":{},"48":{},"59":{},"70":{},"72":{},"75":{},"116":{},"127":{}},"component":{}}],["codeblock",{"_index":862,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["coeffici",{"_index":2335,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["coincid",{"_index":991,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["collabor",{"_index":551,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["combin",{"_index":1053,"title":{},"name":{},"text":{"10":{},"27":{},"56":{},"78":{},"95":{},"124":{}},"component":{}}],["come",{"_index":1376,"title":{},"name":{},"text":{"26":{},"27":{},"48":{},"94":{},"95":{},"116":{}},"component":{}}],["command",{"_index":874,"title":{},"name":{},"text":{"5":{},"41":{},"45":{},"73":{},"109":{},"113":{}},"component":{}}],["common",{"_index":0,"title":{},"name":{"1":{},"69":{}},"text":{"7":{},"10":{},"31":{},"32":{},"38":{},"47":{},"50":{},"51":{},"75":{},"78":{},"99":{},"100":{},"106":{},"115":{},"118":{},"119":{}},"component":{}}],["commun",{"_index":1025,"title":{},"name":{},"text":{"9":{},"41":{},"77":{},"109":{}},"component":{}}],["comp",{"_index":172,"title":{},"name":{},"text":{"2":{},"22":{},"24":{},"70":{},"90":{},"92":{}},"component":{}}],["comp(env",{"_index":171,"title":{},"name":{},"text":{"2":{},"22":{},"24":{},"70":{},"90":{},"92":{}},"component":{}}],["comp.ratio",{"_index":1264,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["comp.ratio(r",{"_index":1262,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["comp.threshold",{"_index":1263,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["comp.threshold(t",{"_index":1261,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["comp.width",{"_index":1295,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["comp.width(w",{"_index":1294,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["compar",{"_index":954,"title":{},"name":{},"text":{"7":{},"21":{},"27":{},"75":{},"89":{},"95":{}},"component":{}}],["comparison",{"_index":1110,"title":{"11-10":{},"79-10":{}},"name":{},"text":{},"component":{}}],["compat",{"_index":1142,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["compens",{"_index":1259,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["compil",{"_index":750,"title":{},"name":{},"text":{"4":{},"5":{},"72":{},"73":{}},"component":{}}],["complet",{"_index":406,"title":{},"name":{},"text":{"2":{},"4":{},"48":{},"55":{},"63":{},"64":{},"70":{},"72":{},"116":{},"123":{},"131":{},"132":{}},"component":{}}],["complex",{"_index":330,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"10":{},"26":{},"27":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"56":{},"70":{},"71":{},"72":{},"78":{},"94":{},"95":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"124":{}},"component":{}}],["compon",{"_index":360,"title":{"9-2":{},"77-2":{}},"name":{},"text":{"2":{},"7":{},"9":{},"53":{},"54":{},"57":{},"70":{},"75":{},"77":{},"121":{},"122":{},"125":{}},"component":{}}],["compos",{"_index":328,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"48":{},"70":{},"71":{},"72":{},"116":{}},"component":{}}],["composit",{"_index":349,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"26":{},"28":{},"70":{},"71":{},"72":{},"94":{},"96":{}},"component":{}}],["comprehens",{"_index":113,"title":{},"name":{},"text":{"2":{},"11":{},"70":{},"79":{}},"component":{}}],["compress",{"_index":179,"title":{},"name":{},"text":{"2":{},"7":{},"22":{},"23":{},"24":{},"70":{},"75":{},"90":{},"91":{},"92":{}},"component":{}}],["compressor",{"_index":165,"title":{"22":{},"24":{},"90":{},"92":{}},"name":{"22":{},"90":{}},"text":{"2":{},"3":{},"7":{},"11":{},"22":{},"23":{},"24":{},"27":{},"28":{},"59":{},"70":{},"71":{},"75":{},"79":{},"90":{},"91":{},"92":{},"95":{},"96":{},"127":{}},"component":{}}],["compressor(comp",{"_index":1243,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["compressor(decibel",{"_index":1239,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["compressor(t",{"_index":1242,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["compressor::operator()(decibel",{"_index":937,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["compris",{"_index":32,"title":{},"name":{},"text":{"2":{},"9":{},"10":{},"48":{},"70":{},"77":{},"78":{},"116":{}},"component":{}}],["comput",{"_index":178,"title":{},"name":{},"text":{"2":{},"7":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"32":{},"34":{},"59":{},"64":{},"66":{},"70":{},"75":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"100":{},"102":{},"127":{},"132":{},"134":{}},"component":{}}],["computation",{"_index":994,"title":{},"name":{},"text":{"8":{},"35":{},"76":{},"103":{}},"component":{}}],["conceiv",{"_index":2156,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["concept",{"_index":511,"title":{"43":{},"111":{},"11-5":{},"11-7":{},"79-5":{},"79-7":{}},"name":{},"text":{"3":{},"10":{},"11":{},"38":{},"41":{},"43":{},"45":{},"46":{},"48":{},"55":{},"59":{},"71":{},"78":{},"79":{},"106":{},"109":{},"111":{},"113":{},"114":{},"116":{},"123":{},"127":{}},"component":{}}],["concepts::midi_1_0::processor",{"_index":1772,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["concepts::processor",{"_index":2083,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["conceptu",{"_index":2093,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["concern",{"_index":952,"title":{},"name":{},"text":{"7":{},"34":{},"59":{},"75":{},"102":{},"127":{}},"component":{}}],["concret",{"_index":1807,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["condit",{"_index":364,"title":{},"name":{},"text":{"2":{},"64":{},"70":{},"132":{}},"component":{}}],["config",{"_index":2214,"title":{},"name":{},"text":{"48":{},"49":{},"116":{},"117":{}},"component":{}}],["config(doubl",{"_index":1189,"title":{},"name":{},"text":{"16":{},"18":{},"20":{},"84":{},"86":{},"88":{}},"component":{}}],["config(dur",{"_index":1336,"title":{},"name":{},"text":{"25":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"93":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{}},"component":{}}],["config(float",{"_index":2188,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config(frequ",{"_index":1166,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"17":{},"19":{},"55":{},"80":{},"81":{},"82":{},"83":{},"85":{},"87":{},"123":{}},"component":{}}],["config_",{"_index":2231,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config_.attack_r",{"_index":2232,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config_.decay_r",{"_index":2233,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config_.release_r",{"_index":2236,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["config_.sustain_r",{"_index":2235,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["configur",{"_index":792,"title":{},"name":{},"text":{"4":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"42":{},"48":{},"72":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"110":{},"116":{}},"component":{}}],["conflict",{"_index":2421,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"127":{},"128":{},"129":{}},"component":{}}],["conform",{"_index":1064,"title":{},"name":{},"text":{"10":{},"11":{},"38":{},"41":{},"43":{},"45":{},"55":{},"78":{},"79":{},"106":{},"109":{},"111":{},"113":{},"123":{}},"component":{}}],["confus",{"_index":2400,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["connect",{"_index":41,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"25":{},"29":{},"70":{},"72":{},"77":{},"93":{},"97":{}},"component":{}}],["consequ",{"_index":1114,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["consid",{"_index":2266,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["consist",{"_index":1128,"title":{},"name":{},"text":{"11":{},"56":{},"79":{},"124":{}},"component":{}}],["consol",{"_index":651,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["const",{"_index":355,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"44":{},"45":{},"46":{},"48":{},"53":{},"54":{},"56":{},"57":{},"58":{},"61":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"74":{},"75":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"112":{},"113":{},"114":{},"116":{},"121":{},"122":{},"124":{},"125":{},"126":{},"129":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["constant",{"_index":259,"title":{"13":{},"14":{},"81":{},"82":{}},"name":{},"text":{"2":{},"3":{},"4":{},"13":{},"14":{},"21":{},"29":{},"59":{},"60":{},"61":{},"64":{},"70":{},"71":{},"72":{},"81":{},"82":{},"89":{},"97":{},"127":{},"128":{},"129":{},"132":{}},"component":{}}],["constexpr",{"_index":287,"title":{},"name":{},"text":{"2":{},"4":{},"44":{},"53":{},"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"70":{},"72":{},"112":{},"121":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{}},"component":{}}],["constrain",{"_index":1301,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["construct",{"_index":915,"title":{"31-6":{},"32-6":{},"33-6":{},"67-6":{},"68-6":{},"99-6":{},"100-6":{},"101-6":{},"135-6":{},"136-6":{}},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"44":{},"45":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"63":{},"64":{},"65":{},"66":{},"68":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"112":{},"113":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"131":{},"132":{},"133":{},"134":{},"136":{}},"component":{}}],["constructor",{"_index":788,"title":{"6-7":{},"10-6":{},"10-22":{},"10-28":{},"11-8":{},"12-6":{},"13-6":{},"14-6":{},"15-6":{},"16-6":{},"17-6":{},"18-6":{},"19-6":{},"20-6":{},"21-6":{},"22-6":{},"23-6":{},"24-6":{},"25-7":{},"26-7":{},"27-9":{},"28-7":{},"29-8":{},"30-6":{},"30-7":{},"31-9":{},"33-8":{},"34-6":{},"35-6":{},"35-7":{},"36-6":{},"37-6":{},"38-7":{},"38-13":{},"38-20":{},"39-6":{},"40-6":{},"41-6":{},"46-8":{},"47-6":{},"48-8":{},"48-24":{},"49-6":{},"50-6":{},"51-6":{},"53-6":{},"55-6":{},"59-6":{},"63-6":{},"64-6":{},"65-6":{},"66-6":{},"68-9":{},"74-7":{},"78-6":{},"78-22":{},"78-28":{},"79-8":{},"80-6":{},"81-6":{},"82-6":{},"83-6":{},"84-6":{},"85-6":{},"86-6":{},"87-6":{},"88-6":{},"89-6":{},"90-6":{},"91-6":{},"92-6":{},"93-7":{},"94-7":{},"95-9":{},"96-7":{},"97-8":{},"98-6":{},"98-7":{},"99-9":{},"101-8":{},"102-6":{},"103-6":{},"103-7":{},"104-6":{},"105-6":{},"106-7":{},"106-13":{},"106-20":{},"107-6":{},"108-6":{},"109-6":{},"114-8":{},"115-6":{},"116-8":{},"116-24":{},"117-6":{},"118-6":{},"119-6":{},"121-6":{},"123-6":{},"127-6":{},"131-6":{},"132-6":{},"133-6":{},"134-6":{},"136-9":{}},"name":{},"text":{"4":{},"6":{},"21":{},"36":{},"37":{},"40":{},"41":{},"46":{},"48":{},"49":{},"59":{},"68":{},"72":{},"74":{},"89":{},"104":{},"105":{},"108":{},"109":{},"114":{},"116":{},"117":{},"127":{},"136":{}},"component":{}}],["consum",{"_index":1731,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["contain",{"_index":104,"title":{},"name":{},"text":{"2":{},"4":{},"26":{},"28":{},"43":{},"46":{},"48":{},"70":{},"72":{},"94":{},"96":{},"111":{},"114":{},"116":{}},"component":{}}],["content",{"_index":423,"title":{"3-2":{},"71-2":{}},"name":{},"text":{"3":{},"33":{},"41":{},"44":{},"45":{},"71":{},"101":{},"109":{},"112":{},"113":{}},"component":{}}],["context",{"_index":1039,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["contigu",{"_index":2091,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["continu",{"_index":459,"title":{},"name":{},"text":{"3":{},"33":{},"60":{},"64":{},"65":{},"71":{},"101":{},"128":{},"132":{},"133":{}},"component":{}}],["continue_",{"_index":1841,"title":{"44-20":{},"112-20":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["contrast",{"_index":175,"title":{},"name":{},"text":{"2":{},"21":{},"23":{},"59":{},"70":{},"89":{},"91":{},"127":{}},"component":{}}],["control",{"_index":609,"title":{},"name":{},"text":{"4":{},"8":{},"10":{},"21":{},"31":{},"41":{},"44":{},"45":{},"55":{},"72":{},"76":{},"78":{},"89":{},"99":{},"109":{},"112":{},"113":{},"123":{}},"component":{}}],["control_chang",{"_index":1833,"title":{"44-11":{},"112-11":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["convers",{"_index":221,"title":{"59-7":{},"60-6":{},"61-6":{},"62-7":{},"63-7":{},"64-7":{},"66-7":{},"127-7":{},"128-6":{},"129-6":{},"130-7":{},"131-7":{},"132-7":{},"134-7":{}},"name":{},"text":{"2":{},"28":{},"44":{},"59":{},"66":{},"70":{},"96":{},"112":{},"127":{},"134":{}},"component":{}}],["convert",{"_index":223,"title":{},"name":{},"text":{"2":{},"21":{},"22":{},"23":{},"24":{},"38":{},"43":{},"44":{},"45":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"70":{},"89":{},"90":{},"91":{},"92":{},"106":{},"111":{},"112":{},"113":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{}},"component":{}}],["cookbook",{"_index":905,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["copi",{"_index":888,"title":{"6-7":{},"74-7":{}},"name":{},"text":{"6":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"37":{},"40":{},"46":{},"48":{},"65":{},"68":{},"74":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"105":{},"108":{},"114":{},"116":{},"133":{},"136":{}},"component":{}}],["copyabl",{"_index":1663,"title":{},"name":{},"text":{"38":{},"39":{},"41":{},"106":{},"107":{},"109":{}},"component":{}}],["copyright",{"_index":409,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["core",{"_index":49,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["corner",{"_index":2373,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["correct",{"_index":735,"title":{},"name":{},"text":{"4":{},"53":{},"54":{},"57":{},"58":{},"59":{},"72":{},"121":{},"122":{},"125":{},"126":{},"127":{}},"component":{}}],["correspond",{"_index":391,"title":{},"name":{},"text":{"2":{},"7":{},"46":{},"59":{},"64":{},"66":{},"70":{},"75":{},"114":{},"127":{},"132":{},"134":{}},"component":{}}],["cos(2pi*n/(n",{"_index":2140,"title":{},"name":{},"text":{"47":{},"50":{},"115":{},"118":{}},"component":{}}],["cos(2pin/(n",{"_index":2292,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["cos(4pi*n/(n",{"_index":2142,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["cosin",{"_index":503,"title":{"55":{},"123":{}},"name":{},"text":{"3":{},"51":{},"55":{},"71":{},"119":{},"123":{}},"component":{}}],["cost",{"_index":1377,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["count",{"_index":2532,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["counter",{"_index":2501,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["counterpart",{"_index":955,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["coupl",{"_index":60,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["cours",{"_index":1396,"title":{},"name":{},"text":{"27":{},"48":{},"95":{},"116":{}},"component":{}}],["cover",{"_index":722,"title":{},"name":{},"text":{"4":{},"8":{},"72":{},"76":{}},"component":{}}],["cpp",{"_index":612,"title":{},"name":{},"text":{"4":{},"59":{},"60":{},"61":{},"72":{},"127":{},"128":{},"129":{}},"component":{}}],["cpu",{"_index":1730,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["cpu_load",{"_index":1710,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["creat",{"_index":804,"title":{},"name":{},"text":{"4":{},"7":{},"10":{},"31":{},"48":{},"56":{},"59":{},"60":{},"61":{},"72":{},"75":{},"78":{},"99":{},"116":{},"124":{},"127":{},"128":{},"129":{}},"component":{}}],["creation",{"_index":1035,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["creativ",{"_index":934,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["critic",{"_index":1612,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["cross",{"_index":38,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"70":{},"71":{},"77":{}},"component":{}}],["crucial",{"_index":1117,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["ctrl",{"_index":814,"title":{},"name":{},"text":{"4":{},"44":{},"72":{},"112":{}},"component":{}}],["current",{"_index":570,"title":{},"name":{},"text":{"4":{},"5":{},"27":{},"32":{},"33":{},"34":{},"37":{},"38":{},"39":{},"40":{},"44":{},"45":{},"47":{},"48":{},"50":{},"51":{},"55":{},"64":{},"65":{},"72":{},"73":{},"95":{},"100":{},"101":{},"102":{},"105":{},"106":{},"107":{},"108":{},"112":{},"113":{},"115":{},"116":{},"118":{},"119":{},"123":{},"132":{},"133":{}},"component":{}}],["curv",{"_index":1315,"title":{},"name":{},"text":{"25":{},"29":{},"47":{},"49":{},"51":{},"93":{},"97":{},"115":{},"117":{},"119":{}},"component":{}}],["curvatur",{"_index":2260,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["cut",{"_index":2182,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["cutoff",{"_index":598,"title":{},"name":{},"text":{"4":{},"8":{},"23":{},"30":{},"35":{},"72":{},"76":{},"91":{},"98":{},"103":{}},"component":{}}],["cutoff(frequ",{"_index":1454,"title":{},"name":{},"text":{"30":{},"35":{},"98":{},"103":{}},"component":{}}],["cv",{"_index":2261,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["cval",{"_index":2352,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["cw",{"_index":2270,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["cyc",{"_index":2494,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["cycfi",{"_index":535,"title":{},"name":{},"text":{"3":{},"5":{},"71":{},"73":{}},"component":{}}],["cycfi::q",{"_index":138,"title":{},"name":{},"text":{"2":{},"37":{},"40":{},"70":{},"105":{},"108":{}},"component":{}}],["cycfi::q::concept",{"_index":1055,"title":{},"name":{},"text":{"10":{},"11":{},"43":{},"45":{},"78":{},"79":{},"111":{},"113":{}},"component":{}}],["cycfi::q::concepts::midi_1_0",{"_index":2070,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["cycfi::q::liter",{"_index":2424,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"127":{},"128":{},"129":{}},"component":{}}],["cycfi::q::midi_1_0",{"_index":1849,"title":{},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["cycl",{"_index":188,"title":{},"name":{},"text":{"2":{},"27":{},"29":{},"39":{},"61":{},"63":{},"64":{},"65":{},"70":{},"95":{},"97":{},"107":{},"129":{},"131":{},"132":{},"133":{}},"component":{}}],["cycle’",{"_index":1436,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["d",{"_index":1168,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"31":{},"33":{},"38":{},"59":{},"60":{},"61":{},"63":{},"64":{},"67":{},"68":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"99":{},"101":{},"106":{},"127":{},"128":{},"129":{},"131":{},"132":{},"135":{},"136":{}},"component":{}}],["d(i",{"_index":1510,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d(val",{"_index":1511,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type",{"_index":1500,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type(d",{"_index":1509,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type(max_delay",{"_index":1508,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type::index_typ",{"_index":1502,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type::interpolation_typ",{"_index":1506,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type::storage_typ",{"_index":1505,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["d_type::value_typ",{"_index":1501,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["dac",{"_index":74,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["dark",{"_index":1324,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["data",{"_index":7,"title":{"2-5":{},"9-2":{},"70-5":{},"77-2":{}},"name":{},"text":{"2":{},"9":{},"11":{},"32":{},"33":{},"38":{},"41":{},"43":{},"44":{},"45":{},"56":{},"64":{},"67":{},"68":{},"70":{},"77":{},"79":{},"100":{},"101":{},"106":{},"109":{},"111":{},"112":{},"113":{},"124":{},"132":{},"135":{},"136":{}},"component":{}}],["data[1",{"_index":1895,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data[s",{"_index":1854,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data_dec",{"_index":2022,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data_entri",{"_index":1906,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data_entry_lsb",{"_index":1937,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["data_inc",{"_index":2020,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["daw",{"_index":81,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["db",{"_index":209,"title":{},"name":{},"text":{"2":{},"11":{},"13":{},"22":{},"23":{},"24":{},"28":{},"36":{},"59":{},"70":{},"79":{},"81":{},"90":{},"91":{},"92":{},"96":{},"104":{},"127":{}},"component":{}}],["db_gain",{"_index":1188,"title":{},"name":{},"text":{"16":{},"18":{},"20":{},"84":{},"86":{},"88":{}},"component":{}}],["dc",{"_index":496,"title":{"30":{},"98":{}},"name":{},"text":{"3":{},"30":{},"71":{},"98":{}},"component":{}}],["dc_block",{"_index":1446,"title":{},"name":{"30":{},"98":{}},"text":{"30":{},"98":{}},"component":{}}],["dc_block(b",{"_index":1457,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["dc_block(f",{"_index":1456,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["dc_block(frequ",{"_index":1453,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["de",{"_index":413,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["deal",{"_index":759,"title":{},"name":{},"text":{"4":{},"8":{},"72":{},"76":{}},"component":{}}],["decay",{"_index":801,"title":{},"name":{},"text":{"4":{},"10":{},"25":{},"27":{},"29":{},"48":{},"72":{},"78":{},"93":{},"95":{},"97":{},"116":{}},"component":{}}],["decay_r",{"_index":2217,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["decay_rate(dur",{"_index":2226,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["decibel",{"_index":13,"title":{"59":{},"127":{},"2-10":{},"70-10":{}},"name":{"59":{},"127":{}},"text":{"2":{},"3":{},"7":{},"11":{},"16":{},"18":{},"20":{},"21":{},"22":{},"23":{},"24":{},"28":{},"34":{},"36":{},"48":{},"59":{},"70":{},"71":{},"75":{},"79":{},"84":{},"86":{},"88":{},"89":{},"90":{},"91":{},"92":{},"96":{},"102":{},"104":{},"116":{},"127":{}},"component":{}}],["decibel(env",{"_index":382,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["decibel_unit",{"_index":2392,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["decibel{6.0",{"_index":2399,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["declar",{"_index":334,"title":{"6-4":{},"10-3":{},"10-9":{},"10-14":{},"10-19":{},"10-25":{},"12-3":{},"13-3":{},"14-3":{},"15-3":{},"16-3":{},"17-3":{},"18-3":{},"19-3":{},"20-3":{},"21-3":{},"22-3":{},"23-3":{},"24-3":{},"25-4":{},"26-4":{},"27-6":{},"28-4":{},"29-5":{},"30-3":{},"31-3":{},"32-3":{},"33-3":{},"34-3":{},"35-3":{},"36-3":{},"37-3":{},"38-4":{},"38-10":{},"38-17":{},"39-3":{},"40-3":{},"41-3":{},"42-3":{},"43-4":{},"43-6":{},"43-8":{},"45-4":{},"46-4":{},"47-3":{},"47-9":{},"48-5":{},"48-14":{},"48-22":{},"49-3":{},"50-3":{},"51-3":{},"51-9":{},"52-3":{},"53-3":{},"54-3":{},"55-3":{},"56-3":{},"57-3":{},"58-3":{},"59-3":{},"60-3":{},"61-3":{},"62-3":{},"63-3":{},"64-3":{},"65-3":{},"66-3":{},"67-3":{},"68-3":{},"74-4":{},"78-3":{},"78-9":{},"78-14":{},"78-19":{},"78-25":{},"80-3":{},"81-3":{},"82-3":{},"83-3":{},"84-3":{},"85-3":{},"86-3":{},"87-3":{},"88-3":{},"89-3":{},"90-3":{},"91-3":{},"92-3":{},"93-4":{},"94-4":{},"95-6":{},"96-4":{},"97-5":{},"98-3":{},"99-3":{},"100-3":{},"101-3":{},"102-3":{},"103-3":{},"104-3":{},"105-3":{},"106-4":{},"106-10":{},"106-17":{},"107-3":{},"108-3":{},"109-3":{},"110-3":{},"111-4":{},"111-6":{},"111-8":{},"113-4":{},"114-4":{},"115-3":{},"115-9":{},"116-5":{},"116-14":{},"116-22":{},"117-3":{},"118-3":{},"119-3":{},"119-9":{},"120-3":{},"121-3":{},"122-3":{},"123-3":{},"124-3":{},"125-3":{},"126-3":{},"127-3":{},"128-3":{},"129-3":{},"130-3":{},"131-3":{},"132-3":{},"133-3":{},"134-3":{},"135-3":{},"136-3":{}},"name":{},"text":{"2":{},"11":{},"31":{},"32":{},"33":{},"38":{},"39":{},"70":{},"79":{},"99":{},"100":{},"101":{},"106":{},"107":{}},"component":{}}],["decltype(a.ref",{"_index":1159,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["decltype(g(pi",{"_index":1094,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["decltype(o(ph",{"_index":1074,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["decltype(o(pi",{"_index":1066,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["decoupl",{"_index":1477,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["decreas",{"_index":1212,"title":{},"name":{},"text":{"21":{},"23":{},"59":{},"89":{},"91":{},"127":{}},"component":{}}],["decrement",{"_index":2024,"title":{},"name":{},"text":{"44":{},"65":{},"112":{},"133":{}},"component":{}}],["dedic",{"_index":2089,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["default",{"_index":882,"title":{"41-7":{},"109-7":{}},"name":{},"text":{"5":{},"6":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"33":{},"37":{},"38":{},"39":{},"41":{},"42":{},"44":{},"45":{},"48":{},"49":{},"64":{},"65":{},"66":{},"68":{},"73":{},"74":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"101":{},"105":{},"106":{},"107":{},"109":{},"110":{},"112":{},"113":{},"116":{},"117":{},"132":{},"133":{},"134":{},"136":{}},"component":{}}],["default_sample_r",{"_index":1632,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["defautl",{"_index":2242,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["defin",{"_index":31,"title":{},"name":{},"text":{"2":{},"4":{},"11":{},"39":{},"41":{},"45":{},"48":{},"70":{},"72":{},"79":{},"107":{},"109":{},"113":{},"116":{}},"component":{}}],["definit",{"_index":312,"title":{"11-6":{},"46-7":{},"79-6":{},"114-7":{}},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["delay",{"_index":491,"title":{"31":{},"99":{}},"name":{"31":{},"99":{}},"text":{"3":{},"4":{},"31":{},"32":{},"39":{},"48":{},"71":{},"72":{},"99":{},"100":{},"107":{},"116":{}},"component":{}}],["delet",{"_index":1659,"title":{"66-9":{},"134-9":{}},"name":{},"text":{"38":{},"59":{},"66":{},"106":{},"127":{},"134":{}},"component":{}}],["delta",{"_index":1087,"title":{},"name":{},"text":{"10":{},"36":{},"78":{},"104":{}},"component":{}}],["demand",{"_index":995,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["demo",{"_index":650,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["demonstr",{"_index":107,"title":{},"name":{},"text":{"2":{},"27":{},"70":{},"95":{}},"component":{}}],["depend",{"_index":3,"title":{"2-2":{},"70-2":{}},"name":{},"text":{"2":{},"5":{},"23":{},"25":{},"27":{},"29":{},"42":{},"64":{},"70":{},"73":{},"91":{},"93":{},"95":{},"97":{},"110":{},"132":{}},"component":{}}],["depict",{"_index":1010,"title":{},"name":{},"text":{"9":{},"25":{},"29":{},"48":{},"77":{},"93":{},"97":{},"116":{}},"component":{}}],["depth",{"_index":2009,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["deriv",{"_index":890,"title":{"6-9":{},"74-9":{}},"name":{},"text":{"7":{},"21":{},"38":{},"39":{},"42":{},"45":{},"55":{},"58":{},"75":{},"89":{},"106":{},"107":{},"110":{},"113":{},"123":{},"126":{}},"component":{}}],["describ",{"_index":431,"title":{},"name":{},"text":{"3":{},"47":{},"71":{},"115":{}},"component":{}}],["design",{"_index":435,"title":{},"name":{},"text":{"3":{},"7":{},"10":{},"34":{},"46":{},"71":{},"75":{},"78":{},"102":{},"114":{}},"component":{}}],["desir",{"_index":588,"title":{},"name":{},"text":{"4":{},"5":{},"22":{},"23":{},"24":{},"39":{},"64":{},"72":{},"73":{},"90":{},"91":{},"92":{},"107":{},"132":{}},"component":{}}],["destruct",{"_index":2602,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["detail",{"_index":717,"title":{},"name":{},"text":{"4":{},"6":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"72":{},"74":{},"89":{},"90":{},"91":{},"92":{},"93":{},"95":{}},"component":{}}],["detect",{"_index":130,"title":{},"name":{},"text":{"2":{},"5":{},"8":{},"25":{},"26":{},"27":{},"28":{},"29":{},"70":{},"73":{},"76":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["detector",{"_index":1330,"title":{},"name":{},"text":{"25":{},"27":{},"28":{},"93":{},"95":{},"96":{}},"component":{}}],["determin",{"_index":53,"title":{},"name":{},"text":{"2":{},"8":{},"49":{},"65":{},"66":{},"70":{},"76":{},"117":{},"133":{},"134":{}},"component":{}}],["detun",{"_index":2016,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["dev",{"_index":866,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["develop",{"_index":458,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["devic",{"_index":517,"title":{"41-7":{},"109-7":{}},"name":{},"text":{"3":{},"4":{},"5":{},"9":{},"37":{},"39":{},"40":{},"41":{},"45":{},"71":{},"72":{},"73":{},"77":{},"105":{},"107":{},"108":{},"109":{},"113":{}},"component":{}}],["device.id",{"_index":1649,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["device.input_channel",{"_index":1653,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["device.nam",{"_index":1652,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["device.num_input",{"_index":1764,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["device.num_output",{"_index":1765,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["device.output_channel",{"_index":1654,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["device_id",{"_index":671,"title":{},"name":{},"text":{"4":{},"37":{},"72":{},"105":{}},"component":{}}],["device_list",{"_index":1625,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["device’",{"_index":1716,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["diagram",{"_index":959,"title":{},"name":{},"text":{"7":{},"9":{},"48":{},"75":{},"77":{},"116":{}},"component":{}}],["differ",{"_index":216,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"8":{},"11":{},"21":{},"22":{},"23":{},"24":{},"36":{},"59":{},"70":{},"72":{},"75":{},"76":{},"79":{},"89":{},"90":{},"91":{},"92":{},"104":{},"127":{}},"component":{}}],["differnt",{"_index":1140,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["digit",{"_index":82,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"30":{},"46":{},"47":{},"55":{},"70":{},"71":{},"77":{},"98":{},"114":{},"115":{},"123":{}},"component":{}}],["dimens",{"_index":2095,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["dimension",{"_index":2094,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["dimensionless",{"_index":429,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["din",{"_index":637,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["diod",{"_index":1308,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["direct",{"_index":71,"title":{},"name":{},"text":{"2":{},"11":{},"59":{},"60":{},"61":{},"65":{},"70":{},"79":{},"127":{},"128":{},"129":{},"133":{}},"component":{}}],["directli",{"_index":873,"title":{},"name":{},"text":{"5":{},"7":{},"34":{},"42":{},"46":{},"73":{},"75":{},"102":{},"110":{},"114":{}},"component":{}}],["directori",{"_index":89,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"70":{},"72":{},"73":{}},"component":{}}],["disastr",{"_index":218,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["discharg",{"_index":1314,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["discherg",{"_index":2262,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["discontinu",{"_index":737,"title":{},"name":{},"text":{"4":{},"10":{},"47":{},"53":{},"54":{},"57":{},"58":{},"65":{},"72":{},"78":{},"115":{},"121":{},"122":{},"125":{},"126":{},"133":{}},"component":{}}],["dispatch",{"_index":1767,"title":{"45-9":{},"113-9":{}},"name":{},"text":{"41":{},"45":{},"109":{},"113":{}},"component":{}}],["dispatch(raw_messag",{"_index":2084,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["disregard",{"_index":2174,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["disrupt",{"_index":2403,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["distanc",{"_index":2457,"title":{},"name":{},"text":{"62":{},"66":{},"130":{},"134":{}},"component":{}}],["distinct",{"_index":996,"title":{},"name":{},"text":{"8":{},"48":{},"76":{},"116":{}},"component":{}}],["distinguish",{"_index":1139,"title":{},"name":{},"text":{"11":{},"13":{},"14":{},"19":{},"20":{},"45":{},"79":{},"81":{},"82":{},"87":{},"88":{},"113":{}},"component":{}}],["distort",{"_index":526,"title":{},"name":{},"text":{"3":{},"26":{},"29":{},"71":{},"94":{},"97":{}},"component":{}}],["distribut",{"_index":417,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["div",{"_index":1365,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["divid",{"_index":1153,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["divis",{"_index":1154,"title":{},"name":{},"text":{"11":{},"28":{},"79":{},"96":{}},"component":{}}],["doc",{"_index":90,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["document",{"_index":101,"title":{},"name":{},"text":{"2":{},"9":{},"11":{},"30":{},"70":{},"77":{},"79":{},"98":{}},"component":{}}],["domain",{"_index":163,"title":{},"name":{},"text":{"2":{},"7":{},"11":{},"21":{},"22":{},"23":{},"24":{},"26":{},"28":{},"32":{},"59":{},"70":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"94":{},"96":{},"100":{},"127":{}},"component":{}}],["done",{"_index":946,"title":{},"name":{},"text":{"7":{},"21":{},"22":{},"23":{},"24":{},"75":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["doubl",{"_index":185,"title":{},"name":{},"text":{"2":{},"4":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"31":{},"37":{},"39":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"70":{},"72":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"99":{},"105":{},"107":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{}},"component":{}}],["down",{"_index":707,"title":{},"name":{},"text":{"4":{},"23":{},"48":{},"58":{},"72":{},"91":{},"116":{},"126":{}},"component":{}}],["downsiz",{"_index":1578,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["downward",{"_index":1098,"title":{},"name":{},"text":{"10":{},"23":{},"29":{},"47":{},"51":{},"78":{},"91":{},"97":{},"115":{},"119":{}},"component":{}}],["dpkg",{"_index":859,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["drag",{"_index":829,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["dread",{"_index":1521,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["drift",{"_index":2345,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["driver",{"_index":657,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["drop",{"_index":1304,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["dsp",{"_index":19,"title":{"3":{},"71":{},"4-2":{},"72-2":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"10":{},"11":{},"22":{},"24":{},"31":{},"32":{},"43":{},"44":{},"45":{},"47":{},"49":{},"50":{},"51":{},"52":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"78":{},"79":{},"90":{},"92":{},"99":{},"100":{},"111":{},"112":{},"113":{},"115":{},"117":{},"118":{},"119":{},"120":{}},"component":{}}],["dt",{"_index":731,"title":{},"name":{},"text":{"4":{},"10":{},"53":{},"54":{},"57":{},"58":{},"72":{},"78":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["due",{"_index":1354,"title":{},"name":{},"text":{"26":{},"32":{},"35":{},"55":{},"94":{},"100":{},"103":{},"123":{}},"component":{}}],["durat",{"_index":12,"title":{"60":{},"128":{},"2-9":{},"70-9":{}},"name":{"60":{},"128":{}},"text":{"2":{},"3":{},"4":{},"10":{},"11":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"33":{},"36":{},"39":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"60":{},"63":{},"70":{},"71":{},"72":{},"78":{},"79":{},"93":{},"94":{},"95":{},"96":{},"97":{},"99":{},"101":{},"104":{},"107":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"128":{},"131":{}},"component":{}}],["duration::dur",{"_index":2482,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["duration_unit",{"_index":2425,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["dure",{"_index":1299,"title":{},"name":{},"text":{"25":{},"29":{},"48":{},"93":{},"97":{},"116":{}},"component":{}}],["dynam",{"_index":164,"title":{"7":{},"75":{}},"name":{"7":{},"75":{}},"text":{"2":{},"3":{},"7":{},"8":{},"11":{},"21":{},"22":{},"23":{},"24":{},"28":{},"29":{},"31":{},"34":{},"59":{},"70":{},"71":{},"75":{},"76":{},"79":{},"89":{},"90":{},"91":{},"92":{},"96":{},"97":{},"99":{},"102":{},"127":{}},"component":{}}],["dynamic_smooth",{"_index":397,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["e",{"_index":1319,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"43":{},"93":{},"95":{},"97":{},"111":{}},"component":{}}],["e.g",{"_index":249,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"21":{},"22":{},"23":{},"24":{},"31":{},"32":{},"33":{},"48":{},"59":{},"67":{},"68":{},"70":{},"72":{},"73":{},"89":{},"90":{},"91":{},"92":{},"99":{},"100":{},"101":{},"116":{},"127":{},"135":{},"136":{}},"component":{}}],["each",{"_index":986,"title":{},"name":{},"text":{"8":{},"9":{},"11":{},"25":{},"27":{},"33":{},"37":{},"40":{},"46":{},"48":{},"64":{},"65":{},"66":{},"76":{},"77":{},"79":{},"93":{},"95":{},"101":{},"105":{},"108":{},"114":{},"116":{},"132":{},"133":{},"134":{}},"component":{}}],["eas",{"_index":614,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["easi",{"_index":64,"title":{},"name":{},"text":{"2":{},"4":{},"28":{},"70":{},"72":{},"96":{}},"component":{}}],["easier",{"_index":957,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["easili",{"_index":77,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["echo",{"_index":1466,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["edg",{"_index":1361,"title":{},"name":{},"text":{"26":{},"47":{},"50":{},"94":{},"115":{},"118":{}},"component":{}}],["editor",{"_index":639,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["efer",{"_index":967,"title":{},"name":{},"text":{"8":{}},"component":{}}],["effect",{"_index":128,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"22":{},"23":{},"24":{},"26":{},"28":{},"30":{},"31":{},"42":{},"44":{},"53":{},"54":{},"56":{},"57":{},"58":{},"70":{},"71":{},"72":{},"74":{},"75":{},"90":{},"91":{},"92":{},"94":{},"96":{},"98":{},"99":{},"110":{},"112":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["effect_1",{"_index":1915,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effect_1_lsb",{"_index":1947,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effect_2",{"_index":1917,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effect_2_lsb",{"_index":1949,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_1_depth",{"_index":2002,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_2_depth",{"_index":2006,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_3_depth",{"_index":2010,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_4_depth",{"_index":2013,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effects_5_depth",{"_index":2017,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["effici",{"_index":440,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"32":{},"33":{},"35":{},"46":{},"56":{},"58":{},"68":{},"71":{},"72":{},"74":{},"75":{},"100":{},"101":{},"103":{},"114":{},"124":{},"126":{},"136":{}},"component":{}}],["effort",{"_index":552,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["elabor",{"_index":605,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["electron",{"_index":308,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["eleg",{"_index":437,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["element",{"_index":656,"title":{},"name":{},"text":{"4":{},"8":{},"31":{},"32":{},"33":{},"38":{},"43":{},"46":{},"67":{},"68":{},"72":{},"76":{},"99":{},"100":{},"101":{},"106":{},"111":{},"114":{},"135":{},"136":{}},"component":{}}],["elimin",{"_index":933,"title":{},"name":{},"text":{"7":{},"28":{},"30":{},"34":{},"64":{},"75":{},"96":{},"98":{},"102":{},"132":{}},"component":{}}],["ellips",{"_index":2492,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["embodi",{"_index":1163,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"28":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"96":{}},"component":{}}],["emphas",{"_index":975,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["emphasi",{"_index":704,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["employ",{"_index":1283,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["enabl",{"_index":1038,"title":{},"name":{},"text":{"10":{},"25":{},"27":{},"29":{},"78":{},"93":{},"95":{},"97":{}},"component":{}}],["encapsul",{"_index":352,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"40":{},"44":{},"70":{},"72":{},"77":{},"108":{},"112":{}},"component":{}}],["encod",{"_index":1862,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["end",{"_index":1824,"title":{},"name":{},"text":{"43":{},"48":{},"51":{},"64":{},"65":{},"111":{},"116":{},"119":{},"132":{},"133":{}},"component":{}}],["endian",{"_index":1864,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["endl",{"_index":1651,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["endpoint",{"_index":2273,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["enforc",{"_index":1116,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["engag",{"_index":1034,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["engin",{"_index":534,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["enhanc",{"_index":932,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["enjoy",{"_index":524,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["enough",{"_index":263,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["ensur",{"_index":1079,"title":{},"name":{},"text":{"10":{},"22":{},"32":{},"33":{},"78":{},"90":{},"100":{},"101":{}},"component":{}}],["enter",{"_index":811,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["entir",{"_index":1009,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["entiti",{"_index":136,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["enum",{"_index":1871,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["enumer",{"_index":1870,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["env",{"_index":374,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"34":{},"36":{},"70":{},"72":{},"75":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"102":{},"104":{}},"component":{}}],["env(",{"_index":1346,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["env(env_cfg",{"_index":673,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["env.attack(atk",{"_index":1348,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["env.config(atk",{"_index":1347,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["env.release(rel",{"_index":1349,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["env_",{"_index":683,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["env_cfg",{"_index":670,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["env_db",{"_index":381,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["env_gen",{"_index":2240,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["env_t",{"_index":1378,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"component":{}}],["env_t(env",{"_index":1380,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"component":{}}],["env_t(hold",{"_index":1379,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"component":{}}],["envelop",{"_index":158,"title":{"8":{},"25":{},"26":{},"27":{},"28":{},"29":{},"48":{},"76":{},"93":{},"94":{},"95":{},"96":{},"97":{},"116":{},"29-3":{},"48-3":{},"48-12":{},"48-20":{},"97-3":{},"116-3":{},"116-12":{},"116-20":{}},"name":{"8":{},"76":{}},"text":{"2":{},"3":{},"4":{},"7":{},"8":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"34":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"59":{},"70":{},"71":{},"72":{},"75":{},"76":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"102":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"127":{}},"component":{}}],["envelope::config",{"_index":793,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["envelope_follow",{"_index":404,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["envelope_gen",{"_index":2155,"title":{},"name":{"48":{},"116":{}},"text":{"48":{},"116":{}},"component":{}}],["envelope_gen(t",{"_index":2197,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope_gen::reset",{"_index":2205,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope_seg",{"_index":2184,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope_segment(",{"_index":2191,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope_segment(envelope_seg",{"_index":2185,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["envelope’",{"_index":765,"title":{},"name":{},"text":{"4":{},"26":{},"36":{},"72":{},"94":{},"104":{}},"component":{}}],["eq",{"_index":904,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["equal",{"_index":1147,"title":{},"name":{},"text":{"11":{},"26":{},"27":{},"62":{},"66":{},"79":{},"94":{},"95":{},"130":{},"134":{}},"component":{}}],["equival",{"_index":258,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"10":{},"54":{},"55":{},"56":{},"57":{},"58":{},"64":{},"70":{},"72":{},"75":{},"78":{},"122":{},"123":{},"124":{},"125":{},"126":{},"132":{}},"component":{}}],["erron",{"_index":1124,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["error",{"_index":1120,"title":{},"name":{},"text":{"11":{},"32":{},"33":{},"39":{},"55":{},"59":{},"79":{},"100":{},"101":{},"107":{},"123":{},"127":{}},"component":{}}],["especi",{"_index":447,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["essenti",{"_index":958,"title":{},"name":{},"text":{"7":{},"8":{},"10":{},"26":{},"28":{},"31":{},"43":{},"44":{},"45":{},"46":{},"52":{},"64":{},"75":{},"76":{},"78":{},"94":{},"96":{},"99":{},"111":{},"112":{},"113":{},"114":{},"120":{},"132":{}},"component":{}}],["etc",{"_index":195,"title":{},"name":{},"text":{"2":{},"48":{},"70":{},"116":{}},"component":{}}],["evalu",{"_index":1000,"title":{},"name":{},"text":{"8":{},"38":{},"76":{},"106":{}},"component":{}}],["even",{"_index":728,"title":{},"name":{},"text":{"4":{},"7":{},"10":{},"72":{},"75":{},"78":{}},"component":{}}],["event",{"_index":758,"title":{},"name":{},"text":{"4":{},"61":{},"63":{},"72":{},"129":{},"131":{}},"component":{}}],["everyth",{"_index":519,"title":{},"name":{},"text":{"3":{},"5":{},"71":{},"73":{}},"component":{}}],["everywher",{"_index":139,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["evolv",{"_index":460,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["exact",{"_index":1480,"title":{},"name":{},"text":{"31":{},"62":{},"99":{},"130":{}},"component":{}}],["exact_interv",{"_index":2471,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["exactli",{"_index":1532,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["exampl",{"_index":10,"title":{"2-7":{},"7-2":{},"31-7":{},"37-9":{},"39-9":{},"40-9":{},"41-10":{},"48-10":{},"67-7":{},"68-7":{},"70-7":{},"75-2":{},"99-7":{},"105-9":{},"107-9":{},"108-9":{},"109-10":{},"116-10":{},"135-7":{},"136-7":{}},"name":{},"text":{"2":{},"4":{},"5":{},"7":{},"8":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"32":{},"36":{},"42":{},"44":{},"45":{},"46":{},"48":{},"59":{},"60":{},"61":{},"70":{},"72":{},"73":{},"75":{},"76":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"97":{},"100":{},"104":{},"110":{},"112":{},"113":{},"114":{},"116":{},"127":{},"128":{},"129":{}},"component":{}}],["example/delay.cpp",{"_index":559,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["example/square_synth.cpp",{"_index":615,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["exce",{"_index":943,"title":{},"name":{},"text":{"7":{},"22":{},"33":{},"36":{},"64":{},"65":{},"75":{},"90":{},"101":{},"104":{},"132":{},"133":{}},"component":{}}],["exceed",{"_index":1234,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["except",{"_index":84,"title":{},"name":{},"text":{"2":{},"6":{},"70":{},"74":{}},"component":{}}],["execut",{"_index":872,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["exemplifi",{"_index":721,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["exhibit",{"_index":2344,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["exist",{"_index":2404,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["exit",{"_index":812,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["exp",{"_index":1268,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp(env",{"_index":1276,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp.ratio",{"_index":1281,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp.ratio(r",{"_index":1279,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp.threshold",{"_index":1280,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp.threshold(t",{"_index":1278,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["exp_downward_ramp_gen",{"_index":2162,"title":{},"name":{},"text":{"48":{},"49":{},"116":{},"117":{}},"component":{}}],["exp_downward_ramp_gen(w",{"_index":2271,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["exp_upward_ramp_gen",{"_index":2243,"title":{},"name":{},"text":{"48":{},"49":{},"116":{},"117":{}},"component":{}}],["exp_upward_ramp_gen(dur",{"_index":2263,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["exp_upward_ramp_gen(w",{"_index":2269,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["exp_upward_ramp_gen::exp_upward_ramp_gen",{"_index":2265,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["expand",{"_index":166,"title":{"23":{},"91":{}},"name":{"23":{},"91":{}},"text":{"2":{},"3":{},"7":{},"11":{},"23":{},"28":{},"70":{},"71":{},"75":{},"79":{},"91":{},"96":{}},"component":{}}],["expander(decibel",{"_index":1267,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["expander(exp",{"_index":1271,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["expander(t",{"_index":1269,"title":{},"name":{},"text":{"23":{},"91":{}},"component":{}}],["expans",{"_index":930,"title":{},"name":{},"text":{"7":{},"23":{},"75":{},"91":{}},"component":{}}],["expens",{"_index":1440,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["experiment",{"_index":452,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["explanatori",{"_index":2246,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["explicit",{"_index":1661,"title":{},"name":{},"text":{"38":{},"62":{},"66":{},"68":{},"106":{},"130":{},"134":{},"136":{}},"component":{}}],["explicitli",{"_index":1115,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["explor",{"_index":665,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["exponenti",{"_index":510,"title":{"49":{},"117":{}},"name":{},"text":{"3":{},"25":{},"29":{},"48":{},"49":{},"71":{},"93":{},"97":{},"116":{},"117":{}},"component":{}}],["exponential_gen",{"_index":2163,"title":{},"name":{"49":{},"117":{}},"text":{"48":{},"116":{}},"component":{}}],["express",{"_index":269,"title":{"6-5":{},"10-4":{},"10-10":{},"10-15":{},"10-20":{},"10-26":{},"11-3":{},"12-4":{},"13-4":{},"14-4":{},"15-4":{},"16-4":{},"17-4":{},"18-4":{},"19-4":{},"20-4":{},"21-4":{},"22-4":{},"23-4":{},"24-4":{},"25-5":{},"26-5":{},"27-7":{},"28-5":{},"29-6":{},"30-4":{},"31-4":{},"32-4":{},"33-4":{},"34-4":{},"35-4":{},"36-4":{},"37-4":{},"38-5":{},"38-11":{},"38-18":{},"39-4":{},"40-4":{},"41-4":{},"45-5":{},"46-5":{},"47-4":{},"47-10":{},"48-6":{},"48-15":{},"49-4":{},"50-4":{},"51-4":{},"51-10":{},"52-4":{},"53-4":{},"54-4":{},"55-4":{},"56-4":{},"57-4":{},"58-4":{},"59-4":{},"60-4":{},"61-4":{},"62-5":{},"63-4":{},"64-4":{},"65-4":{},"66-4":{},"67-4":{},"68-4":{},"74-5":{},"78-4":{},"78-10":{},"78-15":{},"78-20":{},"78-26":{},"79-3":{},"80-4":{},"81-4":{},"82-4":{},"83-4":{},"84-4":{},"85-4":{},"86-4":{},"87-4":{},"88-4":{},"89-4":{},"90-4":{},"91-4":{},"92-4":{},"93-5":{},"94-5":{},"95-7":{},"96-5":{},"97-6":{},"98-4":{},"99-4":{},"100-4":{},"101-4":{},"102-4":{},"103-4":{},"104-4":{},"105-4":{},"106-5":{},"106-11":{},"106-18":{},"107-4":{},"108-4":{},"109-4":{},"113-5":{},"114-5":{},"115-4":{},"115-10":{},"116-6":{},"116-15":{},"117-4":{},"118-4":{},"119-4":{},"119-10":{},"120-4":{},"121-4":{},"122-4":{},"123-4":{},"124-4":{},"125-4":{},"126-4":{},"127-4":{},"128-4":{},"129-4":{},"130-5":{},"131-4":{},"132-4":{},"133-4":{},"134-4":{},"135-4":{},"136-4":{}},"name":{},"text":{"2":{},"6":{},"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":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["expression_lsb",{"_index":1945,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["extend",{"_index":1076,"title":{},"name":{},"text":{"10":{},"46":{},"78":{},"114":{}},"component":{}}],["extern",{"_index":94,"title":{},"name":{},"text":{"2":{},"21":{},"22":{},"23":{},"24":{},"70":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["extract",{"_index":966,"title":{},"name":{},"text":{"8":{},"35":{},"41":{},"45":{},"76":{},"103":{},"109":{},"113":{}},"component":{}}],["extractor",{"_index":992,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["extrem",{"_index":751,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["f",{"_index":338,"title":{},"name":{},"text":{"2":{},"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"30":{},"35":{},"38":{},"55":{},"61":{},"63":{},"66":{},"70":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"98":{},"103":{},"106":{},"123":{},"129":{},"131":{},"134":{}},"component":{}}],["f#0",{"_index":2545,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["f(",{"_index":345,"title":{},"name":{},"text":{"2":{},"6":{},"70":{},"74":{}},"component":{}}],["f.period",{"_index":2446,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["f_x",{"_index":336,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["facil",{"_index":132,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"48":{},"70":{},"71":{},"72":{},"116":{}},"component":{}}],["facilit",{"_index":1024,"title":{},"name":{},"text":{"9":{},"41":{},"77":{},"109":{}},"component":{}}],["factor",{"_index":428,"title":{},"name":{},"text":{"3":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"71":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["factori",{"_index":2154,"title":{"48-9":{},"116-9":{}},"name":{},"text":{},"component":{}}],["fair",{"_index":2277,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["fall",{"_index":739,"title":{},"name":{},"text":{"4":{},"10":{},"21":{},"23":{},"25":{},"29":{},"33":{},"47":{},"51":{},"72":{},"78":{},"89":{},"91":{},"93":{},"97":{},"101":{},"115":{},"119":{}},"component":{}}],["fals",{"_index":816,"title":{},"name":{},"text":{"4":{},"33":{},"34":{},"38":{},"39":{},"72":{},"101":{},"102":{},"106":{},"107":{}},"component":{}}],["famili",{"_index":2289,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["far",{"_index":1004,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["fashion",{"_index":1391,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["fast",{"_index":125,"title":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"name":{},"text":{"2":{},"3":{},"8":{},"22":{},"26":{},"27":{},"28":{},"29":{},"59":{},"66":{},"70":{},"71":{},"76":{},"90":{},"94":{},"95":{},"96":{},"97":{},"127":{},"134":{}},"component":{}}],["fast_ave_envelope_follow",{"_index":1350,"title":{},"name":{"26":{},"94":{}},"text":{"26":{},"94":{}},"component":{}}],["fast_envelope_follow",{"_index":399,"title":{},"name":{"27":{},"95":{}},"text":{"2":{},"27":{},"70":{},"95":{}},"component":{}}],["fast_rms_envelope_follow",{"_index":1411,"title":{},"name":{"28":{},"96":{}},"text":{"28":{},"96":{}},"component":{}}],["fast_rms_envelope_follower(dur",{"_index":1425,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["fast_rms_envelope_follower::fast_rms_envelope_follow",{"_index":1426,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["fast_rms_envelope_follower_db",{"_index":1414,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["faster",{"_index":1432,"title":{},"name":{},"text":{"29":{},"32":{},"33":{},"59":{},"97":{},"100":{},"101":{},"127":{}},"component":{}}],["featur",{"_index":25,"title":{},"name":{},"text":{"2":{},"8":{},"27":{},"50":{},"70":{},"76":{},"95":{},"118":{}},"component":{}}],["feed",{"_index":583,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["feedback",{"_index":591,"title":{},"name":{},"text":{"4":{},"21":{},"31":{},"72":{},"89":{},"99":{}},"component":{}}],["feedforward",{"_index":1216,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["feel",{"_index":663,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["few",{"_index":931,"title":{},"name":{},"text":{"7":{},"8":{},"48":{},"75":{},"76":{},"116":{}},"component":{}}],["fft",{"_index":119,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["fg_x",{"_index":353,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["figur",{"_index":982,"title":{},"name":{},"text":{"8":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"32":{},"33":{},"44":{},"46":{},"76":{},"93":{},"94":{},"95":{},"96":{},"97":{},"99":{},"100":{},"101":{},"112":{},"114":{}},"component":{}}],["file",{"_index":4,"title":{"2-3":{},"70-3":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"9":{},"38":{},"59":{},"60":{},"61":{},"70":{},"71":{},"72":{},"73":{},"77":{},"106":{},"127":{},"128":{},"129":{}},"component":{}}],["filenam",{"_index":1694,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["filepath",{"_index":1672,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["file’",{"_index":1666,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["fill",{"_index":1577,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["fill(t",{"_index":1560,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["film",{"_index":1041,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["filter",{"_index":477,"title":{"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"name":{},"text":{"3":{},"4":{},"6":{},"8":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"35":{},"55":{},"71":{},"72":{},"74":{},"76":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"103":{},"123":{}},"component":{}}],["filter(0.5",{"_index":675,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["filter.cutoff(env_",{"_index":684,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["final",{"_index":572,"title":{},"name":{},"text":{"4":{},"49":{},"72":{},"117":{}},"component":{}}],["fine",{"_index":357,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"70":{},"71":{},"72":{}},"component":{}}],["finer",{"_index":1374,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["fir",{"_index":1517,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["first",{"_index":520,"title":{},"name":{},"text":{"3":{},"32":{},"33":{},"37":{},"40":{},"42":{},"45":{},"46":{},"47":{},"51":{},"58":{},"65":{},"71":{},"100":{},"101":{},"105":{},"108":{},"110":{},"113":{},"114":{},"115":{},"119":{},"126":{},"133":{}},"component":{}}],["five",{"_index":2248,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["fix",{"_index":198,"title":{},"name":{},"text":{"2":{},"55":{},"64":{},"68":{},"70":{},"123":{},"132":{},"136":{}},"component":{}}],["flag",{"_index":815,"title":{},"name":{},"text":{"4":{},"34":{},"72":{},"102":{}},"component":{}}],["flanger",{"_index":1473,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["flash",{"_index":2366,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["flatter",{"_index":2268,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["flavor",{"_index":1586,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["flexibl",{"_index":953,"title":{},"name":{},"text":{"7":{},"10":{},"25":{},"27":{},"29":{},"34":{},"75":{},"78":{},"93":{},"95":{},"97":{},"102":{}},"component":{}}],["float",{"_index":147,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"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":{},"38":{},"39":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"106":{},"107":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["float(msg.veloc",{"_index":782,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["floor",{"_index":961,"title":{},"name":{},"text":{"7":{},"23":{},"62":{},"75":{},"91":{},"130":{}},"component":{}}],["floor(basic_interv",{"_index":2470,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["floor(i",{"_index":2479,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["floor(p",{"_index":2568,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["floor(pitch",{"_index":2558,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["flow",{"_index":1007,"title":{"9-2":{},"77-2":{}},"name":{},"text":{},"component":{}}],["fluctuat",{"_index":1428,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["folder",{"_index":878,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["follow",{"_index":483,"title":{"25":{},"26":{},"27":{},"28":{},"29":{},"93":{},"94":{},"95":{},"96":{},"97":{}},"name":{},"text":{"3":{},"4":{},"5":{},"7":{},"8":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"34":{},"41":{},"44":{},"45":{},"46":{},"48":{},"71":{},"72":{},"73":{},"75":{},"76":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"102":{},"109":{},"112":{},"113":{},"114":{},"116":{}},"component":{}}],["follower'",{"_index":1424,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["follower’",{"_index":1358,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"29":{},"94":{},"95":{},"96":{},"97":{}},"component":{}}],["foot",{"_index":1902,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["foot_lsb",{"_index":1933,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["forev",{"_index":2339,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["form",{"_index":329,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"10":{},"51":{},"70":{},"72":{},"74":{},"78":{},"119":{}},"component":{}}],["format",{"_index":200,"title":{},"name":{},"text":{"2":{},"9":{},"38":{},"46":{},"64":{},"70":{},"77":{},"106":{},"114":{},"132":{}},"component":{}}],["formula",{"_index":2136,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"115":{},"118":{},"119":{}},"component":{}}],["forward",{"_index":2202,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["found",{"_index":407,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"58":{},"70":{},"72":{},"73":{},"126":{}},"component":{}}],["four",{"_index":2166,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["fourier",{"_index":126,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["fr",{"_index":1717,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["frac",{"_index":2507,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_double(p",{"_index":2513,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_double(phas",{"_index":2508,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_float(p",{"_index":2512,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_float(phas",{"_index":2509,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_to_phase(frac",{"_index":2515,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["frac_to_phase(std::floating_point",{"_index":2506,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["fraction",{"_index":203,"title":{"67":{},"135":{}},"name":{},"text":{"2":{},"3":{},"4":{},"31":{},"62":{},"64":{},"66":{},"67":{},"70":{},"71":{},"72":{},"99":{},"130":{},"132":{},"134":{},"135":{}},"component":{}}],["fractional_ring_buff",{"_index":1485,"title":{},"name":{"67":{},"135":{}},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["frame",{"_index":681,"title":{},"name":{},"text":{"4":{},"39":{},"46":{},"72":{},"107":{},"114":{}},"component":{}}],["frames_view",{"_index":2117,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["free",{"_index":664,"title":{},"name":{},"text":{"4":{},"48":{},"55":{},"59":{},"60":{},"61":{},"62":{},"64":{},"66":{},"72":{},"116":{},"123":{},"127":{},"128":{},"129":{},"130":{},"132":{},"134":{}},"component":{}}],["freq",{"_index":776,"title":{},"name":{},"text":{"4":{},"64":{},"65":{},"72":{},"132":{},"133":{}},"component":{}}],["frequenc",{"_index":11,"title":{"61":{},"129":{},"2-8":{},"70-8":{}},"name":{"61":{},"129":{}},"text":{"2":{},"3":{},"4":{},"8":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"27":{},"30":{},"31":{},"32":{},"35":{},"39":{},"42":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"61":{},"63":{},"64":{},"65":{},"66":{},"70":{},"71":{},"72":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"94":{},"95":{},"98":{},"99":{},"100":{},"103":{},"107":{},"110":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"129":{},"131":{},"132":{},"133":{},"134":{}},"component":{}}],["frequency_unit",{"_index":2440,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["frequency{8.1757989156437",{"_index":2549,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["frill",{"_index":50,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["front",{"_index":2594,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["fulfil",{"_index":463,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["full",{"_index":558,"title":{},"name":{},"text":{"4":{},"7":{},"48":{},"63":{},"64":{},"72":{},"75":{},"116":{},"131":{},"132":{}},"component":{}}],["fulli",{"_index":606,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["function",{"_index":15,"title":{"2-12":{},"4-8":{},"6-8":{},"10-7":{},"10-12":{},"10-17":{},"10-23":{},"21-7":{},"22-7":{},"23-7":{},"24-7":{},"25-8":{},"26-8":{},"27-10":{},"28-8":{},"29-9":{},"31-10":{},"32-7":{},"33-9":{},"34-7":{},"45-7":{},"48-17":{},"55-7":{},"62-8":{},"66-8":{},"66-9":{},"70-12":{},"72-8":{},"74-8":{},"78-7":{},"78-12":{},"78-17":{},"78-23":{},"89-7":{},"90-7":{},"91-7":{},"92-7":{},"93-8":{},"94-8":{},"95-10":{},"96-8":{},"97-9":{},"99-10":{},"100-7":{},"101-9":{},"102-7":{},"113-7":{},"116-17":{},"123-7":{},"130-8":{},"134-8":{},"134-9":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"9":{},"10":{},"21":{},"22":{},"23":{},"24":{},"28":{},"32":{},"36":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"47":{},"48":{},"50":{},"51":{},"53":{},"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"70":{},"71":{},"72":{},"74":{},"75":{},"77":{},"78":{},"89":{},"90":{},"91":{},"92":{},"96":{},"100":{},"104":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"115":{},"116":{},"118":{},"119":{},"121":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{},"135":{}},"component":{}}],["fundament",{"_index":17,"title":{"2":{},"70":{}},"name":{"2":{},"70":{}},"text":{"2":{},"3":{},"9":{},"11":{},"56":{},"70":{},"71":{},"77":{},"79":{},"124":{}},"component":{}}],["further",{"_index":1215,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"27":{},"29":{},"59":{},"64":{},"89":{},"90":{},"91":{},"92":{},"95":{},"97":{},"127":{},"132":{}},"component":{}}],["futur",{"_index":2073,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["fx",{"_index":120,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["g",{"_index":339,"title":{},"name":{},"text":{"2":{},"5":{},"10":{},"16":{},"18":{},"20":{},"21":{},"34":{},"44":{},"47":{},"48":{},"49":{},"50":{},"51":{},"55":{},"70":{},"73":{},"78":{},"84":{},"86":{},"88":{},"89":{},"102":{},"112":{},"115":{},"116":{},"117":{},"118":{},"119":{},"123":{}},"component":{}}],["g\"codeblock",{"_index":867,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["g\"visual",{"_index":856,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["g\"xcode",{"_index":855,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["g().first",{"_index":2355,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g().second",{"_index":2356,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g(env",{"_index":1226,"title":{},"name":{},"text":{"21":{},"34":{},"89":{},"102":{}},"component":{}}],["g(f(",{"_index":351,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["g.attack",{"_index":2203,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.config(f",{"_index":2357,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g.config(w",{"_index":2147,"title":{},"name":{},"text":{"47":{},"49":{},"50":{},"51":{},"115":{},"117":{},"118":{},"119":{}},"component":{}}],["g.current",{"_index":2207,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.in_attack_phas",{"_index":2209,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.in_idle_phas",{"_index":2208,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.in_release_phas",{"_index":2210,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.index",{"_index":2211,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.max",{"_index":1230,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["g.max(max",{"_index":1229,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["g.midpoint",{"_index":2149,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"55":{},"115":{},"118":{},"119":{},"123":{}},"component":{}}],["g.onset_threshold",{"_index":1605,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["g.onset_threshold(ot",{"_index":1603,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["g.releas",{"_index":2204,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["g.release_threshold",{"_index":1606,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["g.release_threshold(rt",{"_index":1604,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["g.reset",{"_index":2148,"title":{},"name":{},"text":{"47":{},"48":{},"50":{},"51":{},"55":{},"115":{},"116":{},"118":{},"119":{},"123":{}},"component":{}}],["g.reset(0.0f",{"_index":2359,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g.reset(sv",{"_index":2358,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["g9",{"_index":2067,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["g_x",{"_index":337,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["gain",{"_index":170,"title":{"13":{},"14":{},"81":{},"82":{}},"name":{},"text":{"2":{},"3":{},"4":{},"13":{},"14":{},"16":{},"18":{},"20":{},"21":{},"22":{},"23":{},"24":{},"59":{},"70":{},"71":{},"72":{},"81":{},"82":{},"84":{},"86":{},"88":{},"89":{},"90":{},"91":{},"92":{},"127":{}},"component":{}}],["game",{"_index":1042,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["gate",{"_index":377,"title":{"34":{},"36":{},"102":{},"104":{}},"name":{},"text":{"2":{},"3":{},"7":{},"23":{},"34":{},"36":{},"70":{},"71":{},"75":{},"91":{},"102":{},"104":{}},"component":{}}],["gcc",{"_index":839,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["gen",{"_index":2164,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["gener",{"_index":318,"title":{"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"5-5":{},"10-18":{},"44-4":{},"47-8":{},"48-12":{},"48-20":{},"51-8":{},"73-5":{},"78-18":{},"112-4":{},"115-8":{},"116-12":{},"116-20":{},"119-8":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"7":{},"10":{},"26":{},"27":{},"44":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"64":{},"70":{},"71":{},"72":{},"73":{},"75":{},"78":{},"94":{},"95":{},"112":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"132":{}},"component":{}}],["general_1",{"_index":1919,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_1_lsb",{"_index":1951,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_2",{"_index":1921,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_2_lsb",{"_index":1953,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_3",{"_index":1923,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_3_lsb",{"_index":1955,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_4",{"_index":1925,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_4_lsb",{"_index":1957,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_5",{"_index":1992,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_6",{"_index":1994,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_7",{"_index":1996,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["general_8",{"_index":1998,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["generator(g",{"_index":1093,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["get(id",{"_index":1634,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["get(int",{"_index":1628,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["git",{"_index":823,"title":{"5-3":{},"73-3":{}},"name":{},"text":{"5":{},"73":{}},"component":{}}],["give",{"_index":805,"title":{},"name":{},"text":{"4":{},"25":{},"72":{},"93":{}},"component":{}}],["given",{"_index":705,"title":{},"name":{},"text":{"4":{},"10":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"35":{},"36":{},"37":{},"38":{},"39":{},"41":{},"44":{},"47":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"63":{},"65":{},"67":{},"68":{},"72":{},"78":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"103":{},"104":{},"105":{},"106":{},"107":{},"109":{},"112":{},"115":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"131":{},"133":{},"135":{},"136":{}},"component":{}}],["global",{"_index":2324,"title":{},"name":{},"text":{"54":{},"56":{},"57":{},"58":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["go",{"_index":702,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["goe",{"_index":1003,"title":{},"name":{},"text":{"8":{},"21":{},"34":{},"76":{},"89":{},"102":{}},"component":{}}],["good",{"_index":611,"title":{},"name":{},"text":{"4":{},"7":{},"72":{},"75":{}},"component":{}}],["gradual",{"_index":1266,"title":{},"name":{},"text":{"23":{},"24":{},"25":{},"29":{},"47":{},"91":{},"92":{},"93":{},"97":{},"115":{}},"component":{}}],["grain",{"_index":358,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"70":{},"71":{},"72":{}},"component":{}}],["granular",{"_index":1375,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["graph",{"_index":965,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["greater",{"_index":723,"title":{},"name":{},"text":{"4":{},"11":{},"22":{},"26":{},"27":{},"49":{},"62":{},"66":{},"68":{},"72":{},"79":{},"90":{},"94":{},"95":{},"117":{},"130":{},"134":{},"136":{}},"component":{}}],["green",{"_index":1421,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["gui",{"_index":652,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["guitar",{"_index":523,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["guitar’",{"_index":1318,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["guzman",{"_index":414,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["hal",{"_index":2327,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["half",{"_index":1078,"title":{},"name":{},"text":{"10":{},"47":{},"51":{},"59":{},"78":{},"115":{},"119":{},"127":{}},"component":{}}],["ham",{"_index":507,"title":{"50":{},"118":{}},"name":{},"text":{"3":{},"50":{},"51":{},"71":{},"118":{},"119":{}},"component":{}}],["hamming_gen",{"_index":2272,"title":{},"name":{"50":{},"118":{}},"text":{"50":{},"118":{}},"component":{}}],["hamming_gen(dur",{"_index":2281,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["hamming_gen(w",{"_index":2282,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["hand",{"_index":322,"title":{},"name":{},"text":{"2":{},"9":{},"32":{},"70":{},"77":{},"100":{}},"component":{}}],["handl",{"_index":316,"title":{},"name":{},"text":{"2":{},"9":{},"37":{},"40":{},"45":{},"59":{},"64":{},"70":{},"77":{},"105":{},"108":{},"113":{},"127":{},"132":{}},"component":{}}],["hann",{"_index":506,"title":{"51":{},"119":{}},"name":{},"text":{"3":{},"48":{},"51":{},"71":{},"116":{},"119":{}},"component":{}}],["hann_downward_ramp_gen",{"_index":2297,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_downward_ramp_gen(dur",{"_index":2298,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_gen",{"_index":2283,"title":{},"name":{"51":{},"119":{}},"text":{"51":{},"119":{}},"component":{}}],["hann_gen(dur",{"_index":2293,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_gen(w",{"_index":2294,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_upward_ramp_gen",{"_index":2295,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["hann_upward_ramp_gen(dur",{"_index":2296,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["happen",{"_index":220,"title":{},"name":{},"text":{"2":{},"48":{},"70":{},"116":{}},"component":{}}],["hard",{"_index":941,"title":{},"name":{},"text":{"7":{},"10":{},"22":{},"23":{},"24":{},"26":{},"59":{},"75":{},"78":{},"90":{},"91":{},"92":{},"94":{},"127":{}},"component":{}}],["hardwar",{"_index":72,"title":{},"name":{},"text":{"2":{},"4":{},"27":{},"70":{},"72":{},"95":{}},"component":{}}],["harmon",{"_index":238,"title":{},"name":{},"text":{"2":{},"10":{},"44":{},"56":{},"70":{},"78":{},"112":{},"124":{}},"component":{}}],["harmoni",{"_index":2460,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["harri",{"_index":1385,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["have",{"_index":1332,"title":{},"name":{},"text":{"25":{},"56":{},"93":{},"124":{}},"component":{}}],["haven’t",{"_index":790,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["header",{"_index":52,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["headroom",{"_index":187,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["heard",{"_index":573,"title":{},"name":{},"text":{"4":{},"29":{},"72":{},"97":{}},"component":{}}],["held",{"_index":1345,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"46":{},"93":{},"94":{},"95":{},"96":{},"97":{},"114":{}},"component":{}}],["hello",{"_index":553,"title":{"4-1":{},"4-4":{},"72-1":{},"72-4":{}},"name":{},"text":{"4":{},"72":{}},"component":{}}],["here",{"_index":117,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"39":{},"43":{},"44":{},"59":{},"70":{},"72":{},"73":{},"107":{},"111":{},"112":{},"127":{}},"component":{}}],["here’",{"_index":285,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"70":{},"72":{},"75":{}},"component":{}}],["hertz",{"_index":1131,"title":{},"name":{},"text":{"11":{},"61":{},"66":{},"79":{},"129":{},"134":{}},"component":{}}],["hide",{"_index":909,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["high",{"_index":367,"title":{"15":{},"16":{},"83":{},"84":{}},"name":{},"text":{"2":{},"3":{},"6":{},"7":{},"15":{},"16":{},"22":{},"23":{},"24":{},"30":{},"53":{},"54":{},"57":{},"70":{},"71":{},"74":{},"75":{},"83":{},"84":{},"90":{},"91":{},"92":{},"98":{},"121":{},"122":{},"125":{}},"component":{}}],["higher",{"_index":362,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"26":{},"27":{},"70":{},"72":{},"73":{},"94":{},"95":{}},"component":{}}],["highest",{"_index":1393,"title":{},"name":{},"text":{"27":{},"42":{},"95":{},"110":{}},"component":{}}],["highli",{"_index":541,"title":{},"name":{},"text":{"3":{},"48":{},"71":{},"116":{}},"component":{}}],["highlight",{"_index":557,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["highpass",{"_index":395,"title":{},"name":{"15":{},"83":{}},"text":{"2":{},"6":{},"15":{},"70":{},"74":{},"83":{}},"component":{}}],["highpass(f",{"_index":1183,"title":{},"name":{},"text":{"15":{},"83":{}},"component":{}}],["highpass(frequ",{"_index":1181,"title":{},"name":{},"text":{"15":{},"83":{}},"component":{}}],["highshelf",{"_index":922,"title":{},"name":{"16":{},"84":{}},"text":{"6":{},"16":{},"74":{},"84":{}},"component":{}}],["highshelf(doubl",{"_index":1187,"title":{},"name":{},"text":{"16":{},"84":{}},"component":{}}],["highshelf(g",{"_index":1191,"title":{},"name":{},"text":{"16":{},"84":{}},"component":{}}],["hoist",{"_index":264,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["hold",{"_index":1052,"title":{},"name":{},"text":{"10":{},"26":{},"27":{},"28":{},"44":{},"46":{},"48":{},"65":{},"78":{},"94":{},"95":{},"96":{},"112":{},"114":{},"116":{},"133":{}},"component":{}}],["hold_2",{"_index":1968,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["hold_line_gen",{"_index":2159,"title":{},"name":{},"text":{"48":{},"52":{},"116":{},"120":{}},"component":{}}],["hold_line_gen(dur",{"_index":2305,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["home",{"_index":530,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["hook",{"_index":2085,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["horizont",{"_index":2302,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["host",{"_index":40,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"37":{},"70":{},"71":{},"77":{},"105":{}},"component":{}}],["hp",{"_index":1182,"title":{},"name":{},"text":{"15":{},"83":{}},"component":{}}],["hp.config(f",{"_index":1184,"title":{},"name":{},"text":{"15":{},"83":{}},"component":{}}],["hs",{"_index":1190,"title":{},"name":{},"text":{"16":{},"84":{}},"component":{}}],["hs.config(g",{"_index":1192,"title":{},"name":{},"text":{"16":{},"84":{}},"component":{}}],["https://en.wikipedia.org/wiki/angular_unit",{"_index":2500,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["https://github.com/cycfi/q.git",{"_index":845,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["hum",{"_index":1585,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["human",{"_index":1734,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["hypothet",{"_index":335,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["hz",{"_index":191,"title":{},"name":{},"text":{"2":{},"5":{},"8":{},"11":{},"26":{},"27":{},"61":{},"66":{},"70":{},"73":{},"76":{},"79":{},"94":{},"95":{},"129":{},"134":{}},"component":{}}],["i+1",{"_index":1514,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["i.",{"_index":2535,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i._incr",{"_index":742,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["i._phas",{"_index":2540,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i._step",{"_index":2541,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.begin",{"_index":2537,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.end",{"_index":2538,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.first",{"_index":2533,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.last",{"_index":2536,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i.middl",{"_index":2539,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["i/o",{"_index":37,"title":{"9":{},"77":{}},"name":{},"text":{"2":{},"3":{},"5":{},"9":{},"42":{},"45":{},"70":{},"71":{},"73":{},"77":{},"110":{},"113":{}},"component":{}}],["ic",{"_index":1713,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["id",{"_index":630,"title":{},"name":{},"text":{"4":{},"5":{},"37":{},"40":{},"41":{},"72":{},"73":{},"105":{},"108":{},"109":{}},"component":{}}],["ideal",{"_index":1307,"title":{},"name":{},"text":{"25":{},"29":{},"46":{},"93":{},"97":{},"114":{}},"component":{}}],["identifi",{"_index":1014,"title":{},"name":{},"text":{"9":{},"37":{},"40":{},"77":{},"105":{},"108":{}},"component":{}}],["idl",{"_index":2167,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["ieee",{"_index":2337,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["ignor",{"_index":118,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["iir",{"_index":893,"title":{},"name":{},"text":{"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"55":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"123":{}},"component":{}}],["imag",{"_index":1439,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["immedi",{"_index":747,"title":{},"name":{},"text":{"4":{},"24":{},"27":{},"48":{},"72":{},"92":{},"95":{},"116":{}},"component":{}}],["implement",{"_index":176,"title":{"48-23":{},"116-23":{}},"name":{},"text":{"2":{},"6":{},"7":{},"21":{},"22":{},"23":{},"24":{},"27":{},"30":{},"31":{},"33":{},"34":{},"39":{},"41":{},"44":{},"45":{},"46":{},"47":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"70":{},"74":{},"75":{},"89":{},"90":{},"91":{},"92":{},"95":{},"98":{},"99":{},"101":{},"102":{},"107":{},"109":{},"112":{},"113":{},"114":{},"115":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{}},"component":{}}],["import",{"_index":720,"title":{},"name":{},"text":{"4":{},"8":{},"31":{},"35":{},"72":{},"76":{},"99":{},"103":{}},"component":{}}],["imposs",{"_index":1046,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["improv",{"_index":1530,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["impuls",{"_index":895,"title":{},"name":{},"text":{"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["in[0",{"_index":1750,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["in_attack_phas",{"_index":2200,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["in_channel",{"_index":1804,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["in_idle_phas",{"_index":2199,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["in_release_phas",{"_index":2201,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["includ",{"_index":26,"title":{"6-3":{},"12-2":{},"13-2":{},"14-2":{},"15-2":{},"16-2":{},"17-2":{},"18-2":{},"19-2":{},"20-2":{},"21-2":{},"22-2":{},"23-2":{},"24-2":{},"25-3":{},"26-3":{},"27-5":{},"28-3":{},"29-4":{},"30-2":{},"31-2":{},"32-2":{},"33-2":{},"34-2":{},"35-2":{},"36-2":{},"37-2":{},"38-2":{},"39-2":{},"40-2":{},"41-2":{},"42-2":{},"43-2":{},"44-2":{},"45-2":{},"46-3":{},"47-2":{},"48-4":{},"48-13":{},"48-21":{},"49-2":{},"50-2":{},"51-2":{},"52-2":{},"53-2":{},"54-2":{},"55-2":{},"56-2":{},"57-2":{},"58-2":{},"59-2":{},"60-2":{},"61-2":{},"62-2":{},"63-2":{},"64-2":{},"65-2":{},"66-2":{},"67-2":{},"68-2":{},"74-3":{},"80-2":{},"81-2":{},"82-2":{},"83-2":{},"84-2":{},"85-2":{},"86-2":{},"87-2":{},"88-2":{},"89-2":{},"90-2":{},"91-2":{},"92-2":{},"93-3":{},"94-3":{},"95-5":{},"96-3":{},"97-4":{},"98-2":{},"99-2":{},"100-2":{},"101-2":{},"102-2":{},"103-2":{},"104-2":{},"105-2":{},"106-2":{},"107-2":{},"108-2":{},"109-2":{},"110-2":{},"111-2":{},"112-2":{},"113-2":{},"114-3":{},"115-2":{},"116-4":{},"116-13":{},"116-21":{},"117-2":{},"118-2":{},"119-2":{},"120-2":{},"121-2":{},"122-2":{},"123-2":{},"124-2":{},"125-2":{},"126-2":{},"127-2":{},"128-2":{},"129-2":{},"130-2":{},"131-2":{},"132-2":{},"133-2":{},"134-2":{},"135-2":{},"136-2":{}},"name":{},"text":{"2":{},"6":{},"8":{},"9":{},"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":{},"67":{},"68":{},"70":{},"74":{},"76":{},"77":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["incom",{"_index":580,"title":{},"name":{},"text":{"4":{},"32":{},"33":{},"41":{},"45":{},"48":{},"72":{},"100":{},"101":{},"109":{},"113":{},"116":{}},"component":{}}],["increas",{"_index":1211,"title":{},"name":{},"text":{"21":{},"23":{},"24":{},"25":{},"32":{},"39":{},"49":{},"52":{},"59":{},"89":{},"91":{},"92":{},"93":{},"100":{},"107":{},"117":{},"120":{},"127":{}},"component":{}}],["increment",{"_index":1668,"title":{},"name":{},"text":{"38":{},"44":{},"65":{},"106":{},"112":{},"133":{}},"component":{}}],["index",{"_index":425,"title":{"46-9":{},"114-9":{}},"name":{"3":{},"71":{}},"text":{"31":{},"32":{},"33":{},"43":{},"46":{},"48":{},"67":{},"68":{},"99":{},"100":{},"101":{},"111":{},"114":{},"116":{},"135":{},"136":{}},"component":{}}],["index_iter",{"_index":2121,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["index_typ",{"_index":1491,"title":{},"name":{},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["indexablecontain",{"_index":1683,"title":{"43-5":{},"111-5":{}},"name":{},"text":{"38":{},"43":{},"46":{},"106":{},"111":{},"114":{}},"component":{}}],["indic",{"_index":1328,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"32":{},"33":{},"39":{},"44":{},"46":{},"48":{},"93":{},"95":{},"97":{},"100":{},"101":{},"107":{},"112":{},"114":{},"116":{}},"component":{}}],["indirectli",{"_index":2414,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["indistinguish",{"_index":1423,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["individu",{"_index":1012,"title":{},"name":{},"text":{"9":{},"31":{},"37":{},"46":{},"77":{},"99":{},"105":{},"114":{}},"component":{}}],["infinit",{"_index":894,"title":{},"name":{},"text":{"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"41":{},"52":{},"55":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"109":{},"120":{},"123":{}},"component":{}}],["influenc",{"_index":1471,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["info",{"_index":1752,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["inform",{"_index":211,"title":{},"name":{},"text":{"2":{},"9":{},"27":{},"35":{},"40":{},"41":{},"42":{},"45":{},"46":{},"64":{},"65":{},"70":{},"77":{},"95":{},"103":{},"108":{},"109":{},"110":{},"113":{},"114":{},"132":{},"133":{}},"component":{}}],["infra",{"_index":831,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["infrastructur",{"_index":899,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["inher",{"_index":1070,"title":{},"name":{},"text":{"10":{},"64":{},"65":{},"78":{},"132":{},"133":{}},"component":{}}],["inherit",{"_index":1483,"title":{},"name":{},"text":{"31":{},"32":{},"36":{},"39":{},"48":{},"63":{},"67":{},"99":{},"100":{},"104":{},"107":{},"116":{},"131":{},"135":{}},"component":{}}],["initi",{"_index":764,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"38":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"63":{},"64":{},"65":{},"66":{},"68":{},"72":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"106":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"131":{},"132":{},"133":{},"134":{},"136":{}},"component":{}}],["inlin",{"_index":365,"title":{},"name":{},"text":{"2":{},"48":{},"59":{},"60":{},"61":{},"70":{},"116":{},"127":{},"128":{},"129":{}},"component":{}}],["input",{"_index":149,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"42":{},"44":{},"59":{},"70":{},"72":{},"74":{},"75":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"102":{},"103":{},"105":{},"106":{},"107":{},"108":{},"110":{},"112":{},"127":{}},"component":{}}],["input_channel",{"_index":1630,"title":{},"name":{},"text":{"37":{},"39":{},"105":{},"107":{}},"component":{}}],["input_lat",{"_index":1711,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["inputs/output",{"_index":631,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["insert",{"_index":602,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["insid",{"_index":356,"title":{},"name":{},"text":{"2":{},"4":{},"45":{},"70":{},"72":{},"113":{}},"component":{}}],["instabl",{"_index":2340,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["instal",{"_index":469,"title":{"5":{},"73":{}},"name":{},"text":{"3":{},"4":{},"5":{},"71":{},"72":{},"73":{}},"component":{}}],["instanc",{"_index":157,"title":{},"name":{},"text":{"2":{},"7":{},"10":{},"11":{},"43":{},"45":{},"46":{},"48":{},"54":{},"56":{},"57":{},"58":{},"59":{},"70":{},"75":{},"78":{},"79":{},"111":{},"113":{},"114":{},"116":{},"122":{},"124":{},"125":{},"126":{},"127":{}},"component":{}}],["instantan",{"_index":1237,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["instanti",{"_index":332,"title":{"37-7":{},"40-7":{},"62-4":{},"105-7":{},"108-7":{},"130-4":{}},"name":{},"text":{"2":{},"4":{},"26":{},"27":{},"28":{},"31":{},"32":{},"33":{},"41":{},"42":{},"46":{},"48":{},"62":{},"67":{},"68":{},"70":{},"72":{},"94":{},"95":{},"96":{},"99":{},"100":{},"101":{},"109":{},"110":{},"114":{},"116":{},"130":{},"135":{},"136":{}},"component":{}}],["instead",{"_index":246,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"28":{},"33":{},"34":{},"37":{},"40":{},"46":{},"59":{},"60":{},"68":{},"70":{},"72":{},"75":{},"96":{},"101":{},"102":{},"105":{},"108":{},"114":{},"127":{},"128":{},"136":{}},"component":{}}],["int",{"_index":292,"title":{},"name":{},"text":{"2":{},"4":{},"11":{},"37":{},"39":{},"40":{},"44":{},"59":{},"60":{},"61":{},"62":{},"65":{},"70":{},"72":{},"79":{},"105":{},"107":{},"108":{},"112":{},"127":{},"128":{},"129":{},"130":{},"133":{}},"component":{}}],["int(msg.channel",{"_index":1786,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.control",{"_index":1795,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.key",{"_index":1787,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.preset",{"_index":1799,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.pressur",{"_index":1793,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.valu",{"_index":1796,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["int(msg.veloc",{"_index":1788,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["intact",{"_index":1357,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["integ",{"_index":1481,"title":{},"name":{},"text":{"31":{},"32":{},"33":{},"37":{},"38":{},"40":{},"41":{},"59":{},"60":{},"61":{},"99":{},"100":{},"101":{},"105":{},"106":{},"108":{},"109":{},"127":{},"128":{},"129":{}},"component":{}}],["intend",{"_index":871,"title":{},"name":{},"text":{"5":{},"9":{},"45":{},"73":{},"77":{},"113":{}},"component":{}}],["intent",{"_index":713,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["interchang",{"_index":1123,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["interest",{"_index":760,"title":{},"name":{},"text":{"4":{},"30":{},"41":{},"45":{},"48":{},"72":{},"98":{},"109":{},"113":{},"116":{}},"component":{}}],["interfac",{"_index":1013,"title":{"42-4":{},"110-4":{}},"name":{},"text":{"9":{},"37":{},"38":{},"39":{},"40":{},"42":{},"77":{},"105":{},"106":{},"107":{},"108":{},"110":{}},"component":{}}],["interleav",{"_index":2088,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["intermedi",{"_index":2170,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["intermediari",{"_index":1030,"title":{},"name":{},"text":{"9":{},"41":{},"45":{},"77":{},"109":{},"113":{}},"component":{}}],["intermmedi",{"_index":2178,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["intern",{"_index":1552,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["interpol",{"_index":1507,"title":{},"name":{},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["interpolation_typ",{"_index":1493,"title":{},"name":{},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["interpret",{"_index":1768,"title":{},"name":{},"text":{"41":{},"45":{},"109":{},"113":{}},"component":{}}],["interv",{"_index":474,"title":{"62":{},"130":{}},"name":{"62":{},"130":{}},"text":{"3":{},"11":{},"31":{},"39":{},"42":{},"62":{},"66":{},"71":{},"79":{},"99":{},"107":{},"110":{},"130":{},"134":{}},"component":{}}],["interval_unit",{"_index":2463,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["introduc",{"_index":1461,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["introduct",{"_index":421,"title":{"3-1":{},"71-1":{}},"name":{},"text":{"30":{},"98":{}},"component":{}}],["intuit",{"_index":256,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"9":{},"38":{},"70":{},"72":{},"75":{},"77":{},"106":{}},"component":{}}],["invalid",{"_index":1723,"title":{},"name":{},"text":{"39":{},"41":{},"44":{},"66":{},"107":{},"109":{},"112":{},"134":{}},"component":{}}],["invers",{"_index":197,"title":{},"name":{},"text":{"2":{},"23":{},"49":{},"52":{},"70":{},"91":{},"117":{},"120":{}},"component":{}}],["invoc",{"_index":342,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["invok",{"_index":854,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["involv",{"_index":988,"title":{},"name":{},"text":{"8":{},"10":{},"33":{},"76":{},"78":{},"101":{}},"component":{}}],["is_valid",{"_index":1709,"title":{},"name":{},"text":{"39":{},"41":{},"107":{},"109":{}},"component":{}}],["item",{"_index":2245,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["iter",{"_index":690,"title":{"65-7":{},"133-7":{}},"name":{},"text":{"4":{},"10":{},"43":{},"46":{},"65":{},"72":{},"78":{},"111":{},"114":{},"133":{}},"component":{}}],["iterat",{"_index":1823,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["iterator_rang",{"_index":2116,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["jag",{"_index":1399,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["joel",{"_index":412,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["johnson’",{"_index":903,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["jr",{"_index":1387,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["judici",{"_index":748,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["juliu",{"_index":1451,"title":{},"name":{},"text":{"30":{},"51":{},"98":{},"119":{}},"component":{}}],["keep",{"_index":653,"title":{},"name":{},"text":{"4":{},"26":{},"33":{},"64":{},"65":{},"72":{},"94":{},"101":{},"132":{},"133":{}},"component":{}}],["kept",{"_index":613,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["key",{"_index":923,"title":{"7-3":{},"75-3":{}},"name":{},"text":{"41":{},"44":{},"48":{},"109":{},"112":{},"116":{}},"component":{}}],["keyboard",{"_index":618,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["khz",{"_index":597,"title":{},"name":{},"text":{"4":{},"61":{},"72":{},"129":{}},"component":{}}],["knee",{"_index":488,"title":{"24":{},"92":{}},"name":{},"text":{"3":{},"7":{},"22":{},"24":{},"71":{},"75":{},"90":{},"92":{}},"component":{}}],["know",{"_index":1640,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["known",{"_index":945,"title":{},"name":{},"text":{"7":{},"10":{},"22":{},"24":{},"51":{},"75":{},"78":{},"90":{},"92":{},"119":{}},"component":{}}],["l",{"_index":2190,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["laden",{"_index":527,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["larger",{"_index":1162,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["largest",{"_index":2480,"title":{},"name":{},"text":{"62":{},"66":{},"130":{},"134":{}},"component":{}}],["last",{"_index":1551,"title":{},"name":{},"text":{"33":{},"48":{},"60":{},"65":{},"101":{},"116":{},"128":{},"133":{}},"component":{}}],["latenc",{"_index":1736,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["later",{"_index":724,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["latest",{"_index":840,"title":{},"name":{},"text":{"5":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"35":{},"48":{},"67":{},"68":{},"73":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"103":{},"116":{},"135":{},"136":{}},"component":{}}],["layer",{"_index":2,"title":{"2-1":{},"70-1":{}},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["layout",{"_index":2092,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["lead",{"_index":1125,"title":{},"name":{},"text":{"11":{},"49":{},"79":{},"117":{}},"component":{}}],["leakag",{"_index":2132,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["leav",{"_index":1231,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["left",{"_index":564,"title":{},"name":{},"text":{"4":{},"39":{},"46":{},"72":{},"107":{},"114":{}},"component":{}}],["left[fram",{"_index":688,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["left[i",{"_index":2108,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["left_out",{"_index":1255,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["left_sign",{"_index":1256,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["legato",{"_index":1966,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["len",{"_index":1681,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["length",{"_index":1675,"title":{},"name":{},"text":{"38":{},"60":{},"106":{},"128":{}},"component":{}}],["less",{"_index":143,"title":{},"name":{},"text":{"2":{},"4":{},"26":{},"49":{},"59":{},"62":{},"66":{},"70":{},"72":{},"94":{},"117":{},"127":{},"130":{},"134":{}},"component":{}}],["letter",{"_index":2066,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["level",{"_index":363,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"7":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"29":{},"42":{},"45":{},"47":{},"48":{},"59":{},"70":{},"72":{},"73":{},"75":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"97":{},"110":{},"113":{},"115":{},"116":{},"127":{}},"component":{}}],["level(float",{"_index":2187,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["leverag",{"_index":444,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["lfo",{"_index":1475,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["libasound",{"_index":865,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["liber",{"_index":467,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["librari",{"_index":20,"title":{"3":{},"71":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"7":{},"8":{},"9":{},"10":{},"11":{},"22":{},"24":{},"43":{},"44":{},"45":{},"47":{},"49":{},"50":{},"51":{},"52":{},"59":{},"70":{},"71":{},"72":{},"73":{},"75":{},"76":{},"77":{},"78":{},"79":{},"90":{},"92":{},"111":{},"112":{},"113":{},"115":{},"117":{},"118":{},"119":{},"120":{},"127":{}},"component":{}}],["library’",{"_index":907,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["licens",{"_index":420,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["lightweight",{"_index":51,"title":{},"name":{},"text":{"2":{},"9":{},"37":{},"38":{},"40":{},"46":{},"70":{},"77":{},"105":{},"106":{},"108":{},"114":{}},"component":{}}],["likewis",{"_index":963,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["limit",{"_index":155,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"10":{},"22":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"70":{},"72":{},"75":{},"78":{},"90":{},"121":{},"122":{},"123":{},"125":{},"126":{},"127":{}},"component":{}}],["lin_doubl",{"_index":2418,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_double(d",{"_index":2410,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_double(decibel",{"_index":2395,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_downward_ramp_gen",{"_index":2161,"title":{},"name":{},"text":{"48":{},"52":{},"116":{},"120":{}},"component":{}}],["lin_downward_ramp_gen(dur",{"_index":2304,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["lin_float",{"_index":2417,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_float(config_.sustain_level",{"_index":2234,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["lin_float(d",{"_index":2409,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_float(decibel",{"_index":2396,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_to_db",{"_index":2413,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_to_db(2.0",{"_index":2415,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_to_db(doubl",{"_index":2398,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_to_db(v",{"_index":2411,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["lin_upward_ramp_gen",{"_index":2299,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["lin_upward_ramp_gen(dur",{"_index":2303,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["line",{"_index":875,"title":{},"name":{},"text":{"5":{},"31":{},"52":{},"73":{},"99":{},"120":{}},"component":{}}],["linear",{"_index":508,"title":{"52":{},"120":{}},"name":{},"text":{"3":{},"7":{},"26":{},"28":{},"48":{},"49":{},"52":{},"59":{},"71":{},"75":{},"94":{},"96":{},"116":{},"117":{},"120":{},"127":{}},"component":{}}],["linear_gen",{"_index":2160,"title":{},"name":{"52":{},"120":{}},"text":{"48":{},"116":{}},"component":{}}],["linearli",{"_index":2300,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["linux",{"_index":825,"title":{"5-8":{},"73-8":{}},"name":{},"text":{"5":{},"73":{}},"component":{}}],["list",{"_index":116,"title":{},"name":{},"text":{"2":{},"4":{},"37":{},"40":{},"70":{},"72":{},"105":{},"108":{}},"component":{}}],["list_devices.cpp",{"_index":885,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["liter",{"_index":9,"title":{"2-6":{},"59-8":{},"60-7":{},"61-8":{},"70-6":{},"127-8":{},"128-7":{},"129-8":{}},"name":{},"text":{"2":{},"4":{},"59":{},"60":{},"61":{},"70":{},"72":{},"127":{},"128":{},"129":{}},"component":{}}],["literals.hpp",{"_index":265,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["littl",{"_index":1863,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["load",{"_index":560,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["lobe",{"_index":2134,"title":{},"name":{},"text":{"47":{},"50":{},"115":{},"118":{}},"component":{}}],["local",{"_index":2036,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["locat",{"_index":1537,"title":{},"name":{},"text":{"32":{},"33":{},"46":{},"100":{},"101":{},"114":{}},"component":{}}],["log10(out/in",{"_index":2383,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["log2",{"_index":2546,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["logarithm",{"_index":162,"title":{},"name":{},"text":{"2":{},"7":{},"11":{},"21":{},"22":{},"23":{},"24":{},"59":{},"70":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"127":{}},"component":{}}],["logic",{"_index":1534,"title":{},"name":{},"text":{"32":{},"33":{},"64":{},"100":{},"101":{},"132":{}},"component":{}}],["long",{"_index":291,"title":{},"name":{},"text":{"2":{},"33":{},"48":{},"59":{},"60":{},"61":{},"68":{},"70":{},"101":{},"116":{},"127":{},"128":{},"129":{},"136":{}},"component":{}}],["longer",{"_index":1302,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"31":{},"66":{},"93":{},"94":{},"95":{},"99":{},"134":{}},"component":{}}],["look",{"_index":1422,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["lookup",{"_index":2363,"title":{},"name":{},"text":{"56":{},"59":{},"124":{},"127":{}},"component":{}}],["loop",{"_index":586,"title":{},"name":{},"text":{"4":{},"41":{},"43":{},"46":{},"72":{},"109":{},"111":{},"114":{}},"component":{}}],["loos",{"_index":59,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["lot",{"_index":701,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["loud",{"_index":973,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["loudest",{"_index":928,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["love",{"_index":521,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["low",{"_index":476,"title":{"17":{},"18":{},"35":{},"85":{},"86":{},"103":{}},"name":{},"text":{"3":{},"4":{},"6":{},"17":{},"18":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"31":{},"32":{},"35":{},"45":{},"55":{},"56":{},"71":{},"72":{},"74":{},"85":{},"86":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"97":{},"99":{},"100":{},"103":{},"113":{},"123":{},"124":{}},"component":{}}],["lower",{"_index":1869,"title":{},"name":{},"text":{"44":{},"47":{},"49":{},"112":{},"115":{},"117":{}},"component":{}}],["lowest",{"_index":1369,"title":{},"name":{},"text":{"26":{},"27":{},"30":{},"94":{},"95":{},"98":{}},"component":{}}],["lowpass",{"_index":917,"title":{},"name":{"17":{},"85":{}},"text":{"6":{},"17":{},"74":{},"85":{}},"component":{}}],["lowpass(f",{"_index":1195,"title":{},"name":{},"text":{"17":{},"85":{}},"component":{}}],["lowpass(frequ",{"_index":1193,"title":{},"name":{},"text":{"17":{},"85":{}},"component":{}}],["lowshelf",{"_index":921,"title":{},"name":{"18":{},"86":{}},"text":{"6":{},"18":{},"74":{},"86":{}},"component":{}}],["lowshelf(doubl",{"_index":1197,"title":{},"name":{},"text":{"18":{},"86":{}},"component":{}}],["lowshelf(g",{"_index":1199,"title":{},"name":{},"text":{"18":{},"86":{}},"component":{}}],["lp",{"_index":1194,"title":{},"name":{},"text":{"17":{},"35":{},"85":{},"103":{}},"component":{}}],["lp(",{"_index":231,"title":{},"name":{},"text":{"2":{},"35":{},"70":{},"103":{}},"component":{}}],["lp.config(f",{"_index":1196,"title":{},"name":{},"text":{"17":{},"85":{}},"component":{}}],["lp.cutoff(f",{"_index":1617,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["ls",{"_index":1198,"title":{},"name":{},"text":{"18":{},"86":{}},"component":{}}],["ls.config(g",{"_index":1200,"title":{},"name":{},"text":{"18":{},"86":{}},"component":{}}],["lsb",{"_index":2053,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["ma",{"_index":1545,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["ma(",{"_index":1547,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["ma_type::value_typ",{"_index":1546,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["mac",{"_index":832,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["macbook",{"_index":644,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["mackie/hui",{"_index":638,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["maco",{"_index":623,"title":{"5-6":{},"73-6":{}},"name":{},"text":{"4":{},"5":{},"72":{},"73":{}},"component":{}}],["made",{"_index":1044,"title":{},"name":{},"text":{"10":{},"65":{},"78":{},"133":{}},"component":{}}],["magenta",{"_index":1321,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["main",{"_index":555,"title":{"4-8":{},"72-8":{}},"name":{},"text":{"4":{},"6":{},"37":{},"40":{},"47":{},"72":{},"74":{},"105":{},"108":{},"115":{}},"component":{}}],["maintain",{"_index":711,"title":{},"name":{},"text":{"4":{},"7":{},"21":{},"39":{},"68":{},"72":{},"75":{},"89":{},"107":{},"136":{}},"component":{}}],["major",{"_index":910,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["make",{"_index":141,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"7":{},"10":{},"21":{},"22":{},"23":{},"24":{},"28":{},"35":{},"39":{},"48":{},"58":{},"59":{},"66":{},"70":{},"72":{},"73":{},"75":{},"78":{},"89":{},"90":{},"91":{},"92":{},"96":{},"103":{},"107":{},"116":{},"126":{},"127":{},"134":{}},"component":{}}],["make_envelope_seg",{"_index":2183,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["make_envelope_segment(10_m",{"_index":2192,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["make_envelope_segment(dur",{"_index":2189,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["makefil",{"_index":869,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["makeup",{"_index":380,"title":{},"name":{},"text":{"2":{},"22":{},"24":{},"70":{},"90":{},"92":{}},"component":{}}],["manag",{"_index":709,"title":{},"name":{},"text":{"4":{},"31":{},"72":{},"99":{}},"component":{}}],["mani",{"_index":1611,"title":{},"name":{},"text":{"35":{},"51":{},"103":{},"119":{}},"component":{}}],["manipul",{"_index":925,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["mark",{"_index":2406,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["math",{"_index":2390,"title":{},"name":{},"text":{"59":{},"66":{},"127":{},"134":{}},"component":{}}],["mathemat",{"_index":2498,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["max",{"_index":1218,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["max(decibel",{"_index":1220,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["max_",{"_index":1221,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["max_delay",{"_index":1496,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["max_siz",{"_index":1554,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["maximum",{"_index":1223,"title":{},"name":{},"text":{"21":{},"27":{},"29":{},"31":{},"37":{},"39":{},"46":{},"48":{},"64":{},"89":{},"95":{},"97":{},"99":{},"105":{},"107":{},"114":{},"116":{},"132":{}},"component":{}}],["mb",{"_index":2122,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb.channel",{"_index":2100,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb.frame",{"_index":2101,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb.size",{"_index":2097,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::buffer_view",{"_index":2124,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::channel_view",{"_index":2125,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::channels_view",{"_index":2128,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::frames_view",{"_index":2126,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb::sample_typ",{"_index":2123,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[0",{"_index":2105,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[1",{"_index":2106,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[ch",{"_index":2109,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[ch].size",{"_index":2098,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[ch][i",{"_index":2096,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mb[i",{"_index":2127,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mcu",{"_index":2364,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["md",{"_index":1755,"title":{},"name":{},"text":{"40":{},"41":{},"108":{},"109":{}},"component":{}}],["md.id",{"_index":1759,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["md.name",{"_index":1760,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["md.num_input",{"_index":1761,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["md.num_output",{"_index":1762,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["mean",{"_index":752,"title":{},"name":{},"text":{"4":{},"11":{},"26":{},"28":{},"65":{},"72":{},"79":{},"94":{},"96":{},"133":{}},"component":{}}],["meaning",{"_index":1844,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["meant",{"_index":1806,"title":{},"name":{},"text":{"42":{},"46":{},"110":{},"114":{}},"component":{}}],["measur",{"_index":2380,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"62":{},"64":{},"66":{},"127":{},"128":{},"129":{},"130":{},"132":{},"134":{}},"component":{}}],["mechan",{"_index":79,"title":{},"name":{},"text":{"2":{},"8":{},"9":{},"38":{},"70":{},"76":{},"77":{},"106":{}},"component":{}}],["melodi",{"_index":2459,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["member",{"_index":392,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"26":{},"28":{},"32":{},"36":{},"39":{},"42":{},"43":{},"46":{},"48":{},"63":{},"65":{},"67":{},"70":{},"72":{},"78":{},"94":{},"96":{},"100":{},"104":{},"107":{},"110":{},"111":{},"114":{},"116":{},"131":{},"133":{},"135":{}},"component":{}}],["memori",{"_index":756,"title":{},"name":{},"text":{"4":{},"46":{},"56":{},"72":{},"114":{},"124":{}},"component":{}}],["messag",{"_index":515,"title":{"44":{},"112":{},"44-4":{},"44-5":{},"44-7":{},"112-4":{},"112-5":{},"112-7":{}},"name":{},"text":{"3":{},"4":{},"9":{},"39":{},"41":{},"44":{},"45":{},"71":{},"72":{},"77":{},"107":{},"109":{},"112":{},"113":{}},"component":{}}],["message1",{"_index":1855,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message1(raw_messag",{"_index":1856,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message1::message1",{"_index":2059,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message2",{"_index":1857,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message2(raw_messag",{"_index":1858,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message2::message2",{"_index":2048,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message3",{"_index":1859,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message3(raw_messag",{"_index":1860,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message3::message3",{"_index":1892,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["message_bas",{"_index":1852,"title":{},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["meteorologist",{"_index":2286,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["meter",{"_index":1812,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["method",{"_index":984,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["mhz",{"_index":2452,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["microconrrol",{"_index":2365,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["microcontrol",{"_index":443,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["microphon",{"_index":646,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["microsecond",{"_index":2434,"title":{},"name":{},"text":{"60":{},"128":{}},"component":{}}],["microton",{"_index":2472,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["middl",{"_index":732,"title":{},"name":{},"text":{"4":{},"47":{},"50":{},"51":{},"64":{},"65":{},"72":{},"115":{},"118":{},"119":{},"132":{},"133":{}},"component":{}}],["midi",{"_index":36,"title":{"9":{},"44":{},"45":{},"77":{},"112":{},"113":{},"4-7":{},"41-7":{},"41-9":{},"44-4":{},"44-5":{},"44-6":{},"44-7":{},"72-7":{},"109-7":{},"109-9":{},"112-4":{},"112-5":{},"112-6":{},"112-7":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"9":{},"40":{},"41":{},"44":{},"45":{},"66":{},"70":{},"71":{},"72":{},"73":{},"77":{},"108":{},"109":{},"112":{},"113":{},"134":{}},"component":{}}],["midi::note_frequency(_key",{"_index":777,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["midi::processor",{"_index":767,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["midi::processor::oper",{"_index":768,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["midi_1_0",{"_index":1850,"title":{},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["midi_devic",{"_index":1022,"title":{"40":{},"108":{}},"name":{"40":{},"108":{}},"text":{"9":{},"40":{},"41":{},"77":{},"108":{},"109":{}},"component":{}}],["midi_device(",{"_index":1757,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["midi_device(b",{"_index":1756,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["midi_device::list",{"_index":1758,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["midi_input_stream",{"_index":807,"title":{"41":{},"109":{}},"name":{},"text":{"4":{},"9":{},"41":{},"72":{},"77":{},"109":{}},"component":{}}],["midi_input_stream(md",{"_index":1776,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["midi_input_stream(midi_devic",{"_index":1771,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["midi_messag",{"_index":1843,"title":{},"name":{"44":{},"112":{}},"text":{},"component":{}}],["midi_processor",{"_index":757,"title":{},"name":{"45":{},"113":{}},"text":{"4":{},"41":{},"72":{},"109":{}},"component":{}}],["midi_stream",{"_index":1766,"title":{},"name":{"41":{},"109":{}},"text":{},"component":{}}],["midikey",{"_index":622,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["midpoint",{"_index":2145,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"55":{},"115":{},"118":{},"119":{},"123":{}},"component":{}}],["millisecond",{"_index":194,"title":{},"name":{},"text":{"2":{},"25":{},"45":{},"60":{},"70":{},"93":{},"113":{},"128":{}},"component":{}}],["minim",{"_index":56,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"9":{},"50":{},"70":{},"72":{},"75":{},"77":{},"118":{}},"component":{}}],["minimum",{"_index":1366,"title":{},"name":{},"text":{"26":{},"27":{},"64":{},"68":{},"94":{},"95":{},"132":{},"136":{}},"component":{}}],["misc",{"_index":2439,"title":{"61-7":{},"129-7":{}},"name":{},"text":{},"component":{}}],["miscellan",{"_index":490,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["mismatch",{"_index":215,"title":{},"name":{},"text":{"2":{},"4":{},"11":{},"70":{},"72":{},"79":{}},"component":{}}],["mistak",{"_index":219,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["mistakenli",{"_index":1122,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["mit",{"_index":419,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["mix",{"_index":579,"title":{},"name":{},"text":{"4":{},"11":{},"46":{},"50":{},"72":{},"79":{},"114":{},"118":{}},"component":{}}],["mixer",{"_index":2112,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["mkdir",{"_index":852,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["model",{"_index":1112,"title":{"11-13":{},"79-13":{}},"name":{},"text":{"25":{},"29":{},"43":{},"46":{},"47":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"61":{},"62":{},"63":{},"64":{},"93":{},"97":{},"111":{},"114":{},"115":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"129":{},"130":{},"131":{},"132":{}},"component":{}}],["moder",{"_index":2274,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["modern",{"_index":445,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"71":{},"72":{},"74":{}},"component":{}}],["modifi",{"_index":2247,"title":{"65-9":{},"133-9":{}},"name":{},"text":{"48":{},"65":{},"116":{},"133":{}},"component":{}}],["modul",{"_index":111,"title":{},"name":{},"text":{"2":{},"8":{},"10":{},"22":{},"23":{},"24":{},"27":{},"29":{},"31":{},"44":{},"47":{},"50":{},"51":{},"56":{},"70":{},"76":{},"78":{},"90":{},"91":{},"92":{},"95":{},"97":{},"99":{},"112":{},"115":{},"118":{},"119":{},"124":{}},"component":{}}],["modulation_lsb",{"_index":1929,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["mold",{"_index":1036,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["moment",{"_index":971,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["monitor",{"_index":1783,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["mono",{"_index":1743,"title":{},"name":{},"text":{"39":{},"44":{},"46":{},"107":{},"112":{},"114":{}},"component":{}}],["mono_in",{"_index":1749,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["mono_in[fram",{"_index":1751,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["monophon",{"_index":659,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["monoton",{"_index":1726,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["more",{"_index":210,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"7":{},"8":{},"9":{},"10":{},"24":{},"27":{},"30":{},"37":{},"38":{},"39":{},"44":{},"49":{},"70":{},"71":{},"72":{},"75":{},"76":{},"77":{},"78":{},"92":{},"95":{},"98":{},"105":{},"106":{},"107":{},"112":{},"117":{}},"component":{}}],["moreov",{"_index":1069,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["move",{"_index":492,"title":{"32":{},"33":{},"100":{},"101":{}},"name":{},"text":{"3":{},"4":{},"26":{},"28":{},"32":{},"33":{},"36":{},"38":{},"48":{},"71":{},"72":{},"94":{},"96":{},"100":{},"101":{},"104":{},"106":{},"116":{}},"component":{}}],["movement",{"_index":2491,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["moving_averag",{"_index":1516,"title":{},"name":{"32":{},"100":{}},"text":{"32":{},"100":{}},"component":{}}],["moving_sum",{"_index":1539,"title":{},"name":{"33":{},"101":{}},"text":{"32":{},"33":{},"100":{},"101":{}},"component":{}}],["ms",{"_index":1372,"title":{},"name":{},"text":{"26":{},"27":{},"33":{},"41":{},"48":{},"94":{},"95":{},"101":{},"109":{},"116":{}},"component":{}}],["ms(",{"_index":1566,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.clear",{"_index":1575,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.fill(val",{"_index":1576,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.is_valid",{"_index":1779,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["ms.process(proc",{"_index":1780,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["ms.resize(d",{"_index":1574,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.resize(s",{"_index":1569,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.size",{"_index":1568,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms.sum",{"_index":1567,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type",{"_index":1561,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type(d",{"_index":1564,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type(m",{"_index":1565,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type(s",{"_index":1563,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ms_type::value_typ",{"_index":1562,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["msb",{"_index":2054,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["msg",{"_index":772,"title":{},"name":{},"text":{"4":{},"41":{},"44":{},"45":{},"72":{},"109":{},"112":{},"113":{}},"component":{}}],["msg.key",{"_index":775,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["much",{"_index":567,"title":{},"name":{},"text":{"4":{},"29":{},"72":{},"97":{}},"component":{}}],["multi",{"_index":512,"title":{"46":{},"114":{}},"name":{},"text":{"3":{},"7":{},"31":{},"42":{},"46":{},"48":{},"71":{},"75":{},"99":{},"110":{},"114":{},"116":{}},"component":{}}],["multi_buff",{"_index":1805,"title":{},"name":{"46":{},"114":{}},"text":{"42":{},"46":{},"110":{},"114":{}},"component":{}}],["multichannel",{"_index":1703,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["multipl",{"_index":390,"title":{},"name":{},"text":{"2":{},"5":{},"7":{},"11":{},"31":{},"48":{},"70":{},"73":{},"75":{},"79":{},"99":{},"116":{}},"component":{}}],["multipli",{"_index":948,"title":{},"name":{},"text":{"7":{},"11":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{}},"component":{}}],["music",{"_index":309,"title":{},"name":{},"text":{"2":{},"3":{},"8":{},"10":{},"44":{},"62":{},"70":{},"71":{},"76":{},"78":{},"112":{},"130":{}},"component":{}}],["mutat",{"_index":1033,"title":{"10-29":{},"12-7":{},"13-7":{},"14-7":{},"15-7":{},"16-7":{},"17-7":{},"18-7":{},"19-7":{},"20-7":{},"21-8":{},"22-8":{},"23-8":{},"24-8":{},"25-9":{},"29-10":{},"30-8":{},"33-11":{},"34-8":{},"35-8":{},"38-14":{},"38-21":{},"39-8":{},"47-7":{},"48-11":{},"48-25":{},"49-7":{},"50-7":{},"51-7":{},"53-7":{},"55-8":{},"65-8":{},"68-10":{},"78-29":{},"80-7":{},"81-7":{},"82-7":{},"83-7":{},"84-7":{},"85-7":{},"86-7":{},"87-7":{},"88-7":{},"89-8":{},"90-8":{},"91-8":{},"92-8":{},"93-9":{},"97-10":{},"98-8":{},"101-11":{},"102-8":{},"103-8":{},"106-14":{},"106-21":{},"107-8":{},"115-7":{},"116-11":{},"116-25":{},"117-7":{},"118-7":{},"119-7":{},"121-7":{},"123-8":{},"133-8":{},"136-10":{}},"name":{},"text":{},"component":{}}],["mute",{"_index":1583,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["my_delay_type1",{"_index":1503,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["my_delay_type2",{"_index":1504,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["my_env_t",{"_index":1382,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["my_midi_processor",{"_index":766,"title":{},"name":{},"text":{"4":{},"45":{},"72":{},"113":{}},"component":{}}],["my_midi_processor(my_square_synth",{"_index":769,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["my_processor",{"_index":1745,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["my_square_synth",{"_index":667,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["my_square_synth(q::adsr_envelope_gen::config",{"_index":669,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["my_square_synth’",{"_index":761,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["n",{"_index":1251,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"27":{},"32":{},"39":{},"42":{},"46":{},"66":{},"90":{},"91":{},"92":{},"95":{},"100":{},"107":{},"110":{},"114":{},"134":{}},"component":{}}],["n:1",{"_index":1244,"title":{},"name":{},"text":{"22":{},"24":{},"90":{},"92":{}},"component":{}}],["n=16",{"_index":1529,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["name",{"_index":427,"title":{"44-24":{},"112-24":{}},"name":{},"text":{"3":{},"4":{},"8":{},"9":{},"21":{},"22":{},"23":{},"24":{},"37":{},"40":{},"47":{},"50":{},"51":{},"71":{},"72":{},"76":{},"77":{},"89":{},"90":{},"91":{},"92":{},"105":{},"108":{},"115":{},"118":{},"119":{}},"component":{}}],["namespac",{"_index":6,"title":{"2-4":{},"44-3":{},"45-3":{},"70-4":{},"112-3":{},"113-3":{}},"name":{},"text":{"2":{},"10":{},"11":{},"37":{},"40":{},"43":{},"44":{},"45":{},"59":{},"60":{},"61":{},"70":{},"78":{},"79":{},"105":{},"108":{},"111":{},"112":{},"113":{},"127":{},"128":{},"129":{}},"component":{}}],["natur",{"_index":1287,"title":{},"name":{},"text":{"24":{},"48":{},"92":{},"116":{}},"component":{}}],["nearest",{"_index":2276,"title":{},"name":{},"text":{"50":{},"62":{},"66":{},"118":{},"130":{},"134":{}},"component":{}}],["necessari",{"_index":462,"title":{},"name":{},"text":{"3":{},"25":{},"27":{},"29":{},"46":{},"71":{},"93":{},"95":{},"97":{},"114":{}},"component":{}}],["need",{"_index":268,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"22":{},"25":{},"26":{},"27":{},"29":{},"31":{},"37":{},"40":{},"46":{},"54":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"64":{},"70":{},"72":{},"73":{},"90":{},"93":{},"94":{},"95":{},"97":{},"99":{},"105":{},"108":{},"114":{},"122":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"132":{}},"component":{}}],["neg",{"_index":1151,"title":{},"name":{},"text":{"11":{},"25":{},"27":{},"29":{},"79":{},"93":{},"95":{},"97":{}},"component":{}}],["new",{"_index":1513,"title":{},"name":{},"text":{"31":{},"32":{},"33":{},"48":{},"65":{},"68":{},"99":{},"100":{},"101":{},"116":{},"133":{},"136":{}},"component":{}}],["newest",{"_index":1535,"title":{},"name":{},"text":{"32":{},"33":{},"100":{},"101":{}},"component":{}}],["next",{"_index":1437,"title":{},"name":{},"text":{"29":{},"39":{},"48":{},"64":{},"65":{},"68":{},"97":{},"107":{},"116":{},"132":{},"133":{},"136":{}},"component":{}}],["nf",{"_index":1202,"title":{},"name":{},"text":{"19":{},"87":{}},"component":{}}],["nf.config(f",{"_index":1204,"title":{},"name":{},"text":{"19":{},"87":{}},"component":{}}],["nf_delay",{"_index":1499,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["nibbl",{"_index":1866,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["nois",{"_index":376,"title":{"34":{},"102":{}},"name":{},"text":{"2":{},"3":{},"7":{},"8":{},"23":{},"29":{},"32":{},"34":{},"35":{},"50":{},"70":{},"71":{},"75":{},"76":{},"91":{},"97":{},"100":{},"102":{},"103":{},"118":{}},"component":{}}],["noise_g",{"_index":1582,"title":{},"name":{"34":{},"102":{}},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["noise_gate(b",{"_index":1601,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["noise_gate(decibel",{"_index":1590,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["noise_gate(ot",{"_index":1600,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["noise_gate(rt",{"_index":1599,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["noise_gate::oper",{"_index":1622,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["non",{"_index":255,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"10":{},"11":{},"31":{},"35":{},"38":{},"39":{},"41":{},"46":{},"50":{},"59":{},"62":{},"66":{},"70":{},"72":{},"75":{},"78":{},"79":{},"99":{},"103":{},"106":{},"107":{},"109":{},"114":{},"118":{},"127":{},"130":{},"134":{}},"component":{}}],["non_copy",{"_index":1770,"title":{},"name":{},"text":{"41":{},"42":{},"109":{},"110":{}},"component":{}}],["nonintuit",{"_index":2402,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["nonrpn_lsb",{"_index":2025,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["nonrpn_msb",{"_index":2027,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["normal",{"_index":151,"title":{},"name":{},"text":{"2":{},"4":{},"22":{},"23":{},"24":{},"48":{},"70":{},"72":{},"90":{},"91":{},"92":{},"116":{}},"component":{}}],["notat",{"_index":887,"title":{"6-6":{},"10-5":{},"10-11":{},"10-16":{},"10-21":{},"10-27":{},"11-4":{},"12-5":{},"13-5":{},"14-5":{},"15-5":{},"16-5":{},"17-5":{},"18-5":{},"19-5":{},"20-5":{},"21-5":{},"22-5":{},"23-5":{},"24-5":{},"25-6":{},"26-6":{},"27-8":{},"28-6":{},"29-7":{},"30-5":{},"31-5":{},"32-5":{},"33-5":{},"34-5":{},"35-5":{},"36-5":{},"37-5":{},"38-6":{},"38-12":{},"38-19":{},"39-5":{},"40-5":{},"41-5":{},"45-6":{},"46-6":{},"47-5":{},"48-7":{},"48-16":{},"49-5":{},"50-5":{},"51-5":{},"53-5":{},"55-5":{},"59-5":{},"60-5":{},"61-5":{},"62-6":{},"63-5":{},"64-5":{},"65-5":{},"66-5":{},"67-5":{},"68-5":{},"74-6":{},"78-5":{},"78-11":{},"78-16":{},"78-21":{},"78-27":{},"79-4":{},"80-5":{},"81-5":{},"82-5":{},"83-5":{},"84-5":{},"85-5":{},"86-5":{},"87-5":{},"88-5":{},"89-5":{},"90-5":{},"91-5":{},"92-5":{},"93-6":{},"94-6":{},"95-8":{},"96-6":{},"97-7":{},"98-5":{},"99-5":{},"100-5":{},"101-5":{},"102-5":{},"103-5":{},"104-5":{},"105-5":{},"106-6":{},"106-12":{},"106-19":{},"107-5":{},"108-5":{},"109-5":{},"113-6":{},"114-6":{},"115-5":{},"116-7":{},"116-16":{},"117-5":{},"118-5":{},"119-5":{},"121-5":{},"123-5":{},"127-5":{},"128-5":{},"129-5":{},"130-6":{},"131-5":{},"132-5":{},"133-5":{},"134-5":{},"135-5":{},"136-5":{}},"name":{},"text":{"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"90":{},"91":{},"92":{},"94":{},"95":{},"96":{}},"component":{}}],["notch",{"_index":481,"title":{"19":{},"87":{}},"name":{"19":{},"87":{}},"text":{"3":{},"6":{},"19":{},"71":{},"74":{},"87":{}},"component":{}}],["notch(f",{"_index":1203,"title":{},"name":{},"text":{"19":{},"87":{}},"component":{}}],["notch(frequ",{"_index":1201,"title":{},"name":{},"text":{"19":{},"87":{}},"component":{}}],["note",{"_index":389,"title":{"4-3":{},"44-24":{},"44-25":{},"72-3":{},"112-24":{},"112-25":{}},"name":{},"text":{"2":{},"4":{},"8":{},"25":{},"27":{},"29":{},"34":{},"39":{},"41":{},"44":{},"45":{},"46":{},"48":{},"59":{},"60":{},"61":{},"66":{},"70":{},"72":{},"76":{},"93":{},"95":{},"97":{},"102":{},"107":{},"109":{},"112":{},"113":{},"114":{},"116":{},"127":{},"128":{},"129":{},"134":{}},"component":{}}],["note_nam",{"_index":2060,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_name(60",{"_index":2062,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_name(std::uint8_t",{"_index":2061,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_numb",{"_index":2064,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_number(\"c4",{"_index":2068,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_number(std::string_view",{"_index":2065,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_off",{"_index":1830,"title":{"44-8":{},"112-8":{}},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["note_off(std::uint8_t",{"_index":1893,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["note_on",{"_index":1831,"title":{"44-9":{},"112-9":{}},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["note_on(std::uint8_t",{"_index":1894,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["noth",{"_index":2077,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["notic",{"_index":703,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["now",{"_index":715,"title":{},"name":{},"text":{"4":{},"10":{},"72":{},"78":{}},"component":{}}],["num_channel",{"_index":1662,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["num_input",{"_index":1753,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["num_output",{"_index":1754,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["number",{"_index":540,"title":{"44-25":{},"112-25":{}},"name":{},"text":{"3":{},"9":{},"27":{},"31":{},"33":{},"35":{},"37":{},"38":{},"39":{},"40":{},"44":{},"46":{},"59":{},"60":{},"61":{},"62":{},"64":{},"71":{},"77":{},"95":{},"99":{},"101":{},"103":{},"105":{},"106":{},"107":{},"108":{},"112":{},"114":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["numer",{"_index":2419,"title":{},"name":{},"text":{"59":{},"60":{},"61":{},"66":{},"127":{},"128":{},"129":{},"134":{}},"component":{}}],["nyquist",{"_index":1077,"title":{},"name":{},"text":{"10":{},"53":{},"54":{},"57":{},"58":{},"78":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["n−1)/2",{"_index":1533,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["o",{"_index":1061,"title":{},"name":{},"text":{"10":{},"30":{},"78":{},"98":{}},"component":{}}],["o(ph",{"_index":1072,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["o(pi",{"_index":1063,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["object",{"_index":16,"title":{"2-12":{},"70-12":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"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":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"71":{},"72":{},"74":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["obtain",{"_index":1228,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"29":{},"37":{},"45":{},"46":{},"89":{},"90":{},"91":{},"92":{},"93":{},"95":{},"97":{},"105":{},"113":{},"114":{}},"component":{}}],["oc",{"_index":1714,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["occur",{"_index":2181,"title":{},"name":{},"text":{"48":{},"53":{},"54":{},"57":{},"58":{},"116":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["octav",{"_index":1172,"title":{},"name":{},"text":{"13":{},"14":{},"19":{},"20":{},"66":{},"81":{},"82":{},"87":{},"88":{},"134":{}},"component":{}}],["offer",{"_index":1021,"title":{},"name":{},"text":{"9":{},"10":{},"38":{},"48":{},"77":{},"78":{},"106":{},"116":{}},"component":{}}],["offset",{"_index":1448,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["offshoot",{"_index":1006,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["ok",{"_index":879,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["older",{"_index":1580,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["oldest",{"_index":1536,"title":{},"name":{},"text":{"32":{},"33":{},"67":{},"68":{},"100":{},"101":{},"135":{},"136":{}},"component":{}}],["omni_off",{"_index":2040,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["omni_on",{"_index":2042,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["on",{"_index":207,"title":{"35":{},"103":{}},"name":{},"text":{"2":{},"3":{},"4":{},"9":{},"10":{},"25":{},"26":{},"27":{},"32":{},"33":{},"35":{},"37":{},"38":{},"40":{},"42":{},"44":{},"48":{},"51":{},"56":{},"59":{},"63":{},"70":{},"71":{},"72":{},"77":{},"78":{},"93":{},"94":{},"95":{},"100":{},"101":{},"103":{},"105":{},"106":{},"108":{},"110":{},"112":{},"116":{},"119":{},"124":{},"127":{},"131":{}},"component":{}}],["onc",{"_index":1778,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["one_pole_lowpass",{"_index":1607,"title":{},"name":{"35":{},"103":{}},"text":{"35":{},"103":{}},"component":{}}],["one_pole_lowpass(b",{"_index":1616,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["one_pole_lowpass(f",{"_index":1615,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["one_pole_lowpass(frequ",{"_index":1613,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["onscreen",{"_index":621,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["onset",{"_index":494,"title":{"36":{},"104":{}},"name":{},"text":{"3":{},"8":{},"34":{},"36":{},"71":{},"76":{},"102":{},"104":{}},"component":{}}],["onset_g",{"_index":402,"title":{},"name":{"36":{},"104":{}},"text":{"2":{},"36":{},"70":{},"104":{}},"component":{}}],["onset_gate(ot",{"_index":1624,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["onset_threshold",{"_index":1591,"title":{},"name":{},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["onset_threshold(decibel",{"_index":1593,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["onset_threshold(float",{"_index":1594,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["op",{"_index":2079,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["open",{"_index":465,"title":{},"name":{},"text":{"3":{},"9":{},"34":{},"39":{},"71":{},"77":{},"102":{},"107":{}},"component":{}}],["oper",{"_index":67,"title":{"48-18":{},"116-18":{}},"name":{},"text":{"2":{},"6":{},"7":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"38":{},"39":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"59":{},"60":{},"61":{},"65":{},"66":{},"67":{},"68":{},"70":{},"74":{},"75":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"106":{},"107":{},"109":{},"111":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"127":{},"128":{},"129":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["operand",{"_index":1161,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["operator()(decibel",{"_index":1219,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["operator()(float",{"_index":354,"title":{},"name":{},"text":{"2":{},"6":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"36":{},"70":{},"74":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"102":{},"103":{},"104":{}},"component":{}}],["operator()(index_typ",{"_index":1497,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["operator()(message_bas",{"_index":2078,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["operator()(midi::channel_aftertouch",{"_index":1800,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(midi::control_chang",{"_index":1794,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(midi::note_off",{"_index":784,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["operator()(midi::note_on",{"_index":771,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["operator()(midi::pitch_bend",{"_index":1801,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(midi::poly_aftertouch",{"_index":1789,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(midi::program_chang",{"_index":1797,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["operator()(phas",{"_index":729,"title":{},"name":{},"text":{"4":{},"53":{},"54":{},"56":{},"57":{},"58":{},"72":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["operator()(phase_iter",{"_index":740,"title":{},"name":{},"text":{"4":{},"53":{},"54":{},"56":{},"57":{},"58":{},"72":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["operator()(t",{"_index":1543,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["operator()(value_typ",{"_index":1498,"title":{},"name":{},"text":{"31":{},"33":{},"99":{},"101":{}},"component":{}}],["operator+(pitch",{"_index":2559,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["operator++(int",{"_index":2521,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["operator+=(pitch",{"_index":2552,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["operator=(bool",{"_index":1614,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["operator=(envelope_seg",{"_index":2186,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["operator=(float",{"_index":1334,"title":{},"name":{},"text":{"25":{},"29":{},"30":{},"93":{},"97":{},"98":{}},"component":{}}],["operator=(phas",{"_index":2522,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["operator=(phase_iter",{"_index":2524,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["operator=(ring_buff",{"_index":2592,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["operator=(wav_bas",{"_index":1660,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["operator[](index",{"_index":2571,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["operator[](std::size_t",{"_index":2119,"title":{},"name":{},"text":{"46":{},"68":{},"114":{},"136":{}},"component":{}}],["optim",{"_index":1417,"title":{},"name":{},"text":{"28":{},"32":{},"39":{},"50":{},"55":{},"56":{},"96":{},"100":{},"107":{},"118":{},"123":{},"124":{}},"component":{}}],["option",{"_index":45,"title":{},"name":{},"text":{"2":{},"9":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"33":{},"39":{},"44":{},"49":{},"67":{},"68":{},"70":{},"77":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"101":{},"107":{},"112":{},"117":{},"135":{},"136":{}},"component":{}}],["orang",{"_index":1430,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["order",{"_index":616,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"59":{},"68":{},"72":{},"73":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"127":{},"136":{}},"component":{}}],["organ",{"_index":87,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["origin",{"_index":1463,"title":{},"name":{},"text":{"31":{},"33":{},"39":{},"99":{},"101":{},"107":{}},"component":{}}],["oscal",{"_index":2338,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["oscil",{"_index":180,"title":{"10":{},"53":{},"54":{},"56":{},"57":{},"58":{},"78":{},"121":{},"122":{},"124":{},"125":{},"126":{},"4-6":{},"10-2":{},"72-6":{},"78-2":{}},"name":{},"text":{"2":{},"3":{},"4":{},"10":{},"31":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"61":{},"63":{},"64":{},"70":{},"71":{},"72":{},"78":{},"99":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"129":{},"131":{},"132":{}},"component":{}}],["oscillator(o",{"_index":1065,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["oscillator,sin_cos_gen",{"_index":2343,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["ot",{"_index":1597,"title":{},"name":{},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["otherwis",{"_index":1581,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["ought",{"_index":2401,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["out",{"_index":43,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"7":{},"21":{},"23":{},"26":{},"32":{},"33":{},"36":{},"39":{},"42":{},"59":{},"70":{},"72":{},"73":{},"75":{},"89":{},"91":{},"94":{},"100":{},"101":{},"104":{},"107":{},"110":{},"127":{}},"component":{}}],["out.fram",{"_index":682,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["out[0",{"_index":679,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["out[1",{"_index":680,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["out_channel",{"_index":1748,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["output",{"_index":169,"title":{"27-3":{},"95-3":{}},"name":{},"text":{"2":{},"4":{},"7":{},"8":{},"9":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"37":{},"38":{},"39":{},"40":{},"42":{},"48":{},"59":{},"70":{},"72":{},"75":{},"76":{},"77":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"105":{},"106":{},"107":{},"108":{},"110":{},"116":{},"127":{}},"component":{}}],["output_channel",{"_index":1631,"title":{},"name":{},"text":{"37":{},"39":{},"105":{},"107":{}},"component":{}}],["output_lat",{"_index":1712,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["outsid",{"_index":950,"title":{},"name":{},"text":{"7":{},"31":{},"48":{},"75":{},"99":{},"116":{}},"component":{}}],["over",{"_index":454,"title":{},"name":{},"text":{"3":{},"4":{},"10":{},"26":{},"28":{},"36":{},"48":{},"49":{},"55":{},"65":{},"71":{},"72":{},"78":{},"94":{},"96":{},"104":{},"116":{},"117":{},"123":{},"133":{}},"component":{}}],["overlap",{"_index":313,"title":{},"name":{},"text":{"2":{},"7":{},"70":{},"75":{}},"component":{}}],["overload",{"_index":2081,"title":{},"name":{},"text":{"45":{},"67":{},"113":{},"135":{}},"component":{}}],["overrid",{"_index":1809,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["overton",{"_index":2362,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["overview",{"_index":23,"title":{"6-1":{},"7-1":{},"9-1":{},"10-1":{},"11-1":{},"12-1":{},"13-1":{},"14-1":{},"15-1":{},"16-1":{},"17-1":{},"18-1":{},"19-1":{},"20-1":{},"21-1":{},"22-1":{},"23-1":{},"24-1":{},"25-1":{},"26-1":{},"27-1":{},"28-1":{},"29-1":{},"30-1":{},"31-1":{},"32-1":{},"33-1":{},"34-1":{},"35-1":{},"36-1":{},"37-1":{},"38-1":{},"39-1":{},"40-1":{},"41-1":{},"42-1":{},"43-1":{},"44-1":{},"45-1":{},"46-1":{},"47-1":{},"48-1":{},"49-1":{},"50-1":{},"51-1":{},"52-1":{},"53-1":{},"54-1":{},"55-1":{},"56-1":{},"57-1":{},"58-1":{},"59-1":{},"60-1":{},"61-1":{},"62-1":{},"63-1":{},"64-1":{},"65-1":{},"66-1":{},"67-1":{},"68-1":{},"74-1":{},"75-1":{},"77-1":{},"78-1":{},"79-1":{},"80-1":{},"81-1":{},"82-1":{},"83-1":{},"84-1":{},"85-1":{},"86-1":{},"87-1":{},"88-1":{},"89-1":{},"90-1":{},"91-1":{},"92-1":{},"93-1":{},"94-1":{},"95-1":{},"96-1":{},"97-1":{},"98-1":{},"99-1":{},"100-1":{},"101-1":{},"102-1":{},"103-1":{},"104-1":{},"105-1":{},"106-1":{},"107-1":{},"108-1":{},"109-1":{},"110-1":{},"111-1":{},"112-1":{},"113-1":{},"114-1":{},"115-1":{},"116-1":{},"117-1":{},"118-1":{},"119-1":{},"120-1":{},"121-1":{},"122-1":{},"123-1":{},"124-1":{},"125-1":{},"126-1":{},"127-1":{},"128-1":{},"129-1":{},"130-1":{},"131-1":{},"132-1":{},"133-1":{},"134-1":{},"135-1":{},"136-1":{}},"name":{},"text":{"2":{},"70":{}},"component":{}}],["overwrit",{"_index":2588,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["p",{"_index":730,"title":{},"name":{},"text":{"4":{},"38":{},"45":{},"53":{},"54":{},"56":{},"57":{},"58":{},"63":{},"64":{},"65":{},"66":{},"72":{},"106":{},"113":{},"121":{},"122":{},"124":{},"125":{},"126":{},"131":{},"132":{},"133":{},"134":{}},"component":{}}],["p.rep",{"_index":2561,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["p.valid",{"_index":2565,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["packag",{"_index":860,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["pan",{"_index":1912,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["pan_lsb",{"_index":1943,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["parallel",{"_index":1429,"title":{},"name":{},"text":{"29":{},"46":{},"97":{},"114":{}},"component":{}}],["paramet",{"_index":430,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"8":{},"9":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"31":{},"32":{},"33":{},"34":{},"36":{},"44":{},"46":{},"48":{},"49":{},"52":{},"56":{},"71":{},"72":{},"74":{},"76":{},"77":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{},"99":{},"100":{},"101":{},"102":{},"104":{},"112":{},"114":{},"116":{},"117":{},"120":{},"124":{}},"component":{}}],["parameter",{"_index":1364,"title":{},"name":{},"text":{"26":{},"27":{},"62":{},"68":{},"94":{},"95":{},"130":{},"136":{}},"component":{}}],["paramnet",{"_index":2237,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["paratemet",{"_index":2120,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["part",{"_index":456,"title":{},"name":{},"text":{"3":{},"10":{},"71":{},"78":{}},"component":{}}],["parti",{"_index":110,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["particular",{"_index":976,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["particularli",{"_index":897,"title":{},"name":{},"text":{"6":{},"8":{},"74":{},"76":{}},"component":{}}],["pass",{"_index":350,"title":{"12":{},"13":{},"14":{},"15":{},"17":{},"35":{},"80":{},"81":{},"82":{},"83":{},"85":{},"103":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"12":{},"13":{},"14":{},"15":{},"17":{},"23":{},"26":{},"29":{},"30":{},"32":{},"35":{},"36":{},"37":{},"40":{},"46":{},"48":{},"70":{},"71":{},"72":{},"74":{},"75":{},"80":{},"81":{},"82":{},"83":{},"85":{},"91":{},"94":{},"97":{},"98":{},"100":{},"103":{},"104":{},"105":{},"108":{},"114":{},"116":{}},"component":{}}],["passag",{"_index":1728,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["path",{"_index":1412,"title":{},"name":{},"text":{"28":{},"38":{},"96":{},"106":{}},"component":{}}],["peak",{"_index":480,"title":{"13":{},"20":{},"29":{},"81":{},"88":{},"97":{}},"name":{"20":{},"88":{}},"text":{"3":{},"6":{},"8":{},"13":{},"14":{},"20":{},"22":{},"25":{},"27":{},"29":{},"48":{},"49":{},"71":{},"74":{},"76":{},"81":{},"82":{},"88":{},"90":{},"93":{},"95":{},"97":{},"116":{},"117":{}},"component":{}}],["peak_envelope_follow",{"_index":1427,"title":{},"name":{"29":{},"97":{}},"text":{"29":{},"97":{}},"component":{}}],["peak_envelope_follower(dur",{"_index":1442,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["peak_envelope_follower(env",{"_index":1445,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["peak_envelope_follower(rel",{"_index":1444,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["peaking(doubl",{"_index":1205,"title":{},"name":{},"text":{"20":{},"88":{}},"component":{}}],["peaking(g",{"_index":1206,"title":{},"name":{},"text":{"20":{},"88":{}},"component":{}}],["peer",{"_index":549,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["per",{"_index":189,"title":{},"name":{},"text":{"2":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"36":{},"38":{},"39":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"61":{},"64":{},"65":{},"70":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"103":{},"104":{},"106":{},"107":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"129":{},"132":{},"133":{}},"component":{}}],["perceiv",{"_index":972,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["perfectli",{"_index":2389,"title":{},"name":{},"text":{"59":{},"64":{},"127":{},"132":{}},"component":{}}],["perform",{"_index":177,"title":{},"name":{},"text":{"2":{},"7":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"29":{},"32":{},"38":{},"44":{},"46":{},"56":{},"59":{},"70":{},"75":{},"89":{},"90":{},"91":{},"92":{},"93":{},"95":{},"97":{},"100":{},"106":{},"112":{},"114":{},"124":{},"127":{}},"component":{}}],["perhap",{"_index":753,"title":{},"name":{},"text":{"4":{},"25":{},"27":{},"29":{},"72":{},"93":{},"95":{},"97":{}},"component":{}}],["period",{"_index":196,"title":{"63":{},"131":{}},"name":{"63":{},"131":{}},"text":{"2":{},"3":{},"10":{},"11":{},"25":{},"26":{},"27":{},"28":{},"31":{},"36":{},"55":{},"61":{},"63":{},"64":{},"70":{},"71":{},"78":{},"79":{},"93":{},"94":{},"95":{},"96":{},"99":{},"104":{},"123":{},"129":{},"131":{},"132":{}},"component":{}}],["period(dur",{"_index":2483,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["period(frequ",{"_index":2484,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["permit",{"_index":2173,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["ph",{"_index":1071,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["phase",{"_index":182,"title":{"64":{},"132":{},"48-2":{},"116-2":{}},"name":{"64":{},"132":{}},"text":{"2":{},"3":{},"4":{},"8":{},"10":{},"11":{},"25":{},"26":{},"29":{},"47":{},"48":{},"50":{},"51":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"64":{},"65":{},"70":{},"71":{},"72":{},"76":{},"78":{},"79":{},"93":{},"94":{},"97":{},"115":{},"116":{},"118":{},"119":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"132":{},"133":{}},"component":{}}],["phase(0",{"_index":2510,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase(d",{"_index":2485,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["phase(f",{"_index":2486,"title":{},"name":{},"text":{"63":{},"131":{}},"component":{}}],["phase(freq",{"_index":2511,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase(frequ",{"_index":2505,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase::begin",{"_index":2516,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase::end",{"_index":2517,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phase::middl",{"_index":733,"title":{},"name":{},"text":{"4":{},"64":{},"72":{},"132":{}},"component":{}}],["phase_iter",{"_index":473,"title":{"65":{},"133":{}},"name":{"65":{},"133":{}},"text":{"3":{},"4":{},"10":{},"64":{},"65":{},"71":{},"72":{},"78":{},"132":{},"133":{}},"component":{}}],["phase_iterator(freq",{"_index":2527,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["phase_iterator(frequ",{"_index":2520,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["phase_iterator(i",{"_index":2528,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["phase_unit",{"_index":2504,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["phaser",{"_index":2019,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["phase’",{"_index":2179,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["physic",{"_index":620,"title":{},"name":{},"text":{"4":{},"11":{},"32":{},"33":{},"72":{},"79":{},"100":{},"101":{}},"component":{}}],["pi",{"_index":14,"title":{"2-11":{},"70-11":{}},"name":{},"text":{"2":{},"10":{},"70":{},"78":{}},"component":{}}],["pick",{"_index":1317,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["pink",{"_index":1359,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["pitch",{"_index":121,"title":{"66":{},"134":{}},"name":{"66":{},"134":{}},"text":{"2":{},"3":{},"8":{},"41":{},"44":{},"62":{},"66":{},"70":{},"71":{},"76":{},"109":{},"112":{},"130":{},"134":{}},"component":{}}],["pitch(f",{"_index":2560,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["pitch(frequ",{"_index":2550,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["pitch_bend",{"_index":1836,"title":{"44-14":{},"112-14":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["pitch_bend(std::uint8_t",{"_index":2051,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["place",{"_index":137,"title":{},"name":{},"text":{"2":{},"4":{},"41":{},"45":{},"54":{},"56":{},"57":{},"58":{},"70":{},"72":{},"109":{},"113":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["plain",{"_index":1360,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["platform",{"_index":39,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"9":{},"37":{},"70":{},"71":{},"73":{},"77":{},"105":{}},"component":{}}],["play",{"_index":525,"title":{},"name":{},"text":{"3":{},"4":{},"5":{},"71":{},"72":{},"73":{}},"component":{}}],["playabl",{"_index":658,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["plot",{"_index":1316,"title":{},"name":{},"text":{"25":{},"26":{},"27":{},"28":{},"29":{},"48":{},"93":{},"94":{},"95":{},"96":{},"97":{},"116":{}},"component":{}}],["plugin",{"_index":70,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["point",{"_index":148,"title":{"7-3":{},"75-3":{}},"name":{},"text":{"2":{},"4":{},"7":{},"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":{},"38":{},"39":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"60":{},"61":{},"62":{},"64":{},"65":{},"70":{},"72":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"106":{},"107":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"128":{},"129":{},"130":{},"132":{},"133":{}},"component":{}}],["pointer",{"_index":1685,"title":{},"name":{},"text":{"38":{},"46":{},"106":{},"114":{}},"component":{}}],["pole",{"_index":495,"title":{"35":{},"103":{}},"name":{},"text":{"3":{},"35":{},"71":{},"103":{}},"component":{}}],["poli",{"_index":2045,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["poly_aftertouch",{"_index":1832,"title":{"44-10":{},"112-10":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["poly_blep",{"_index":714,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["poly_blep(p",{"_index":738,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["polyblamp",{"_index":2372,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["polyblep",{"_index":2309,"title":{},"name":{},"text":{"53":{},"54":{},"57":{},"121":{},"122":{},"125":{}},"component":{}}],["polynomi",{"_index":2378,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["polyphon",{"_index":1790,"title":{},"name":{},"text":{"41":{},"48":{},"109":{},"116":{}},"component":{}}],["poorli",{"_index":1407,"title":{},"name":{},"text":{"27":{},"32":{},"95":{},"100":{}},"component":{}}],["pop",{"_index":2601,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["pop_front",{"_index":2595,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["port",{"_index":66,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["portamento",{"_index":1960,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["portamento_control",{"_index":2000,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["portamento_tim",{"_index":1904,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["portamento_time_lsb",{"_index":1935,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["portaudio",{"_index":57,"title":{},"name":{},"text":{"2":{},"5":{},"70":{},"73":{}},"component":{}}],["portmidi",{"_index":58,"title":{},"name":{},"text":{"2":{},"5":{},"70":{},"73":{}},"component":{}}],["posit",{"_index":1150,"title":{},"name":{},"text":{"11":{},"25":{},"27":{},"29":{},"32":{},"33":{},"38":{},"44":{},"66":{},"79":{},"93":{},"95":{},"97":{},"100":{},"101":{},"106":{},"112":{},"134":{}},"component":{}}],["possibl",{"_index":569,"title":{},"name":{},"text":{"4":{},"11":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"39":{},"48":{},"68":{},"72":{},"79":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{},"107":{},"116":{},"136":{}},"component":{}}],["post",{"_index":2529,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["potenti",{"_index":217,"title":{},"name":{},"text":{"2":{},"11":{},"70":{},"79":{}},"component":{}}],["pow2",{"_index":2547,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["power",{"_index":361,"title":{},"name":{},"text":{"2":{},"3":{},"7":{},"10":{},"51":{},"59":{},"68":{},"70":{},"71":{},"75":{},"78":{},"119":{},"127":{},"136":{}},"component":{}}],["practic",{"_index":2212,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["pre",{"_index":369,"title":{},"name":{},"text":{"2":{},"4":{},"31":{},"32":{},"33":{},"65":{},"70":{},"72":{},"99":{},"100":{},"101":{},"133":{}},"component":{}}],["precalcul",{"_index":2310,"title":{},"name":{},"text":{"53":{},"54":{},"57":{},"121":{},"122":{},"125":{}},"component":{}}],["precis",{"_index":993,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["preferr",{"_index":617,"title":{},"name":{},"text":{"4":{},"59":{},"60":{},"61":{},"72":{},"127":{},"128":{},"129":{}},"component":{}}],["preprocess",{"_index":1329,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["prerequisit",{"_index":1803,"title":{},"name":{},"text":{"42":{},"45":{},"46":{},"65":{},"110":{},"113":{},"114":{},"133":{}},"component":{}}],["present",{"_index":624,"title":{},"name":{},"text":{"4":{},"39":{},"42":{},"46":{},"55":{},"72":{},"107":{},"110":{},"114":{},"123":{}},"component":{}}],["preset",{"_index":1798,"title":{},"name":{},"text":{"41":{},"44":{},"109":{},"112":{}},"component":{}}],["press",{"_index":813,"title":{},"name":{},"text":{"4":{},"48":{},"72":{},"116":{}},"component":{}}],["pressur",{"_index":1792,"title":{},"name":{},"text":{"41":{},"44":{},"109":{},"112":{}},"component":{}}],["pretti",{"_index":566,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["prevent",{"_index":1081,"title":{},"name":{},"text":{"10":{},"22":{},"36":{},"65":{},"78":{},"90":{},"104":{},"133":{}},"component":{}}],["previou",{"_index":1435,"title":{},"name":{},"text":{"29":{},"46":{},"48":{},"59":{},"65":{},"97":{},"114":{},"116":{},"127":{},"133":{}},"component":{}}],["previous",{"_index":1045,"title":{},"name":{},"text":{"10":{},"21":{},"44":{},"78":{},"89":{},"112":{}},"component":{}}],["primarili",{"_index":315,"title":{},"name":{},"text":{"2":{},"9":{},"32":{},"70":{},"77":{},"100":{}},"component":{}}],["princip",{"_index":532,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["print",{"_index":886,"title":{},"name":{},"text":{"5":{},"44":{},"73":{},"112":{}},"component":{}}],["prior",{"_index":2530,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["privat",{"_index":393,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["proc",{"_index":810,"title":{},"name":{},"text":{"4":{},"41":{},"45":{},"72":{},"109":{},"113":{}},"component":{}}],["proc(msg",{"_index":2072,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["procedur",{"_index":846,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["process",{"_index":161,"title":{"4-7":{},"41-9":{},"72-7":{},"109-9":{}},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"39":{},"41":{},"42":{},"45":{},"46":{},"47":{},"59":{},"64":{},"70":{},"71":{},"72":{},"74":{},"75":{},"76":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"102":{},"103":{},"107":{},"109":{},"110":{},"113":{},"114":{},"115":{},"127":{},"132":{}},"component":{}}],["process(in_channel",{"_index":1747,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["process(out_channel",{"_index":678,"title":{},"name":{},"text":{"4":{},"42":{},"72":{},"110":{}},"component":{}}],["process(processor",{"_index":1773,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["processor",{"_index":129,"title":{"45":{},"113":{},"45-8":{},"113-8":{}},"name":{},"text":{"2":{},"3":{},"4":{},"7":{},"9":{},"11":{},"21":{},"22":{},"23":{},"24":{},"34":{},"39":{},"41":{},"42":{},"45":{},"70":{},"71":{},"72":{},"75":{},"77":{},"79":{},"89":{},"90":{},"91":{},"92":{},"102":{},"107":{},"109":{},"110":{},"113":{}},"component":{}}],["produc",{"_index":529,"title":{},"name":{},"text":{"3":{},"24":{},"31":{},"49":{},"54":{},"55":{},"71":{},"92":{},"99":{},"117":{},"122":{},"123":{}},"component":{}}],["product",{"_index":1040,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["program",{"_index":106,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"41":{},"44":{},"45":{},"70":{},"71":{},"72":{},"73":{},"109":{},"112":{},"113":{}},"component":{}}],["program_chang",{"_index":1834,"title":{"44-12":{},"112-12":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["program_change(std::uint8_t",{"_index":2049,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["programm",{"_index":746,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["programmat",{"_index":2307,"title":{},"name":{},"text":{"53":{},"54":{},"57":{},"58":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["progress",{"_index":710,"title":{},"name":{},"text":{"4":{},"25":{},"72":{},"93":{}},"component":{}}],["project",{"_index":464,"title":{"5-5":{},"73-5":{}},"name":{},"text":{"3":{},"5":{},"71":{},"73":{}},"component":{}}],["promot",{"_index":1111,"title":{"11-12":{},"79-12":{}},"name":{},"text":{"11":{},"79":{}},"component":{}}],["prone",{"_index":1538,"title":{},"name":{},"text":{"32":{},"33":{},"100":{},"101":{}},"component":{}}],["pronounc",{"_index":2267,"title":{},"name":{},"text":{"49":{},"117":{}},"component":{}}],["properti",{"_index":978,"title":{},"name":{},"text":{"8":{},"9":{},"31":{},"40":{},"76":{},"77":{},"99":{},"108":{}},"component":{}}],["protocol",{"_index":1846,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["prototyp",{"_index":2213,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["provid",{"_index":21,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"10":{},"11":{},"31":{},"41":{},"42":{},"45":{},"48":{},"59":{},"67":{},"70":{},"72":{},"77":{},"78":{},"79":{},"99":{},"109":{},"110":{},"113":{},"116":{},"127":{},"135":{}},"component":{}}],["provis",{"_index":1479,"title":{},"name":{},"text":{"31":{},"33":{},"36":{},"99":{},"101":{},"104":{}},"component":{}}],["ps",{"_index":2315,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["ps.width(w",{"_index":2318,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["public",{"_index":1486,"title":{},"name":{},"text":{"31":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"46":{},"63":{},"67":{},"68":{},"99":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"114":{},"131":{},"135":{},"136":{}},"component":{}}],["publicli",{"_index":1544,"title":{},"name":{},"text":{"32":{},"36":{},"39":{},"48":{},"63":{},"67":{},"100":{},"104":{},"107":{},"116":{},"131":{},"135":{}},"component":{}}],["puls",{"_index":501,"title":{"53":{},"121":{}},"name":{},"text":{"3":{},"10":{},"53":{},"57":{},"71":{},"78":{},"121":{},"125":{}},"component":{}}],["pulse_osc",{"_index":2306,"title":{},"name":{"53":{},"121":{}},"text":{"53":{},"121":{}},"component":{}}],["pulse_osc(float",{"_index":2314,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["pulse_osc(w",{"_index":2317,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["pure",{"_index":2333,"title":{},"name":{},"text":{"55":{},"56":{},"123":{},"124":{}},"component":{}}],["purpos",{"_index":1769,"title":{},"name":{},"text":{"41":{},"42":{},"45":{},"48":{},"64":{},"109":{},"110":{},"113":{},"116":{},"132":{}},"component":{}}],["push",{"_index":1512,"title":{},"name":{},"text":{"31":{},"32":{},"33":{},"68":{},"99":{},"100":{},"101":{},"136":{}},"component":{}}],["push(t",{"_index":2593,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["q",{"_index":1,"title":{"3":{},"71":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"24":{},"34":{},"37":{},"40":{},"43":{},"44":{},"45":{},"47":{},"49":{},"50":{},"51":{},"52":{},"55":{},"59":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"90":{},"92":{},"102":{},"105":{},"108":{},"111":{},"112":{},"113":{},"115":{},"117":{},"118":{},"119":{},"120":{},"123":{},"127":{}},"component":{"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":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}}}],["q/build",{"_index":853,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["q::adsr_envelope_gen",{"_index":691,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::adsr_envelope_gen::config",{"_index":2238,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["q::adsr_envelope_gen{env_cfg",{"_index":2241,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["q::audio_device::list",{"_index":1648,"title":{},"name":{},"text":{"37":{},"105":{}},"component":{}}],["q::audio_stream",{"_index":668,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["q::delay",{"_index":576,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::envelope::config",{"_index":800,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::liter",{"_index":261,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["q::lowpass",{"_index":600,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::midi_1_0::message_bas",{"_index":2071,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["q::midi_device::list",{"_index":1763,"title":{},"name":{},"text":{"40":{},"108":{}},"component":{}}],["q::midi_input_stream",{"_index":809,"title":{},"name":{},"text":{"4":{},"41":{},"72":{},"109":{}},"component":{}}],["q::period",{"_index":2441,"title":{},"name":{},"text":{"61":{},"129":{}},"component":{}}],["q::phase_iter",{"_index":689,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::reso_filt",{"_index":692,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::soft_clip",{"_index":693,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q::square(phas",{"_index":685,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["q_io",{"_index":34,"title":{},"name":{"9":{},"77":{}},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["q_lib",{"_index":46,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["qualiti",{"_index":432,"title":{},"name":{},"text":{"3":{},"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"71":{},"75":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{}},"component":{}}],["quantifi",{"_index":1130,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["quantum",{"_index":632,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["quasi",{"_index":2377,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["quick",{"_index":470,"title":{"4":{},"72":{}},"name":{},"text":{"3":{},"4":{},"71":{},"72":{}},"component":{}}],["quick_start",{"_index":556,"title":{},"name":{"4":{},"72":{}},"text":{},"component":{}}],["quickli",{"_index":1434,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["quietest",{"_index":929,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["q’",{"_index":1587,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["r",{"_index":344,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"22":{},"23":{},"24":{},"38":{},"50":{},"70":{},"72":{},"78":{},"90":{},"91":{},"92":{},"106":{},"118":{}},"component":{}}],["r.length",{"_index":1691,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.posit",{"_index":1692,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.read(b",{"_index":1690,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.read(d",{"_index":1689,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.reset",{"_index":1107,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["r.restart",{"_index":1687,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["r.seek(p",{"_index":1688,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["rad",{"_index":2534,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["radian",{"_index":2499,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["rais",{"_index":949,"title":{},"name":{},"text":{"7":{},"51":{},"75":{},"119":{}},"component":{}}],["ramp",{"_index":509,"title":{"49":{},"52":{},"117":{},"120":{},"10-24":{},"47-8":{},"51-8":{},"78-24":{},"115-8":{},"119-8":{}},"name":{},"text":{"3":{},"10":{},"26":{},"47":{},"48":{},"49":{},"51":{},"52":{},"58":{},"71":{},"78":{},"94":{},"115":{},"116":{},"117":{},"119":{},"120":{},"126":{}},"component":{}}],["ramp(",{"_index":1095,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["ramp(w",{"_index":1106,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["ramp`",{"_index":1099,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["random",{"_index":1524,"title":{},"name":{},"text":{"32":{},"43":{},"46":{},"100":{},"111":{},"114":{}},"component":{}}],["randomaccessiterat",{"_index":1814,"title":{"43-7":{},"111-7":{}},"name":{},"text":{"43":{},"46":{},"111":{},"114":{}},"component":{}}],["rang",{"_index":153,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"10":{},"11":{},"23":{},"28":{},"43":{},"44":{},"46":{},"49":{},"70":{},"75":{},"76":{},"78":{},"79":{},"91":{},"96":{},"111":{},"112":{},"114":{},"117":{}},"component":{}}],["rate",{"_index":589,"title":{},"name":{},"text":{"4":{},"9":{},"10":{},"33":{},"37":{},"38":{},"39":{},"48":{},"50":{},"64":{},"65":{},"72":{},"77":{},"78":{},"101":{},"105":{},"106":{},"107":{},"116":{},"118":{},"132":{},"133":{}},"component":{}}],["ratio",{"_index":206,"title":{},"name":{},"text":{"2":{},"7":{},"22":{},"23":{},"24":{},"59":{},"70":{},"75":{},"90":{},"91":{},"92":{},"127":{}},"component":{}}],["ratio(float",{"_index":1241,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["rational",{"_index":2104,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["raw",{"_index":174,"title":{"44-5":{},"112-5":{}},"name":{},"text":{"2":{},"4":{},"11":{},"38":{},"44":{},"45":{},"70":{},"72":{},"79":{},"106":{},"112":{},"113":{}},"component":{}}],["raw_messag",{"_index":1861,"title":{},"name":{},"text":{"44":{},"45":{},"112":{},"113":{}},"component":{}}],["rb",{"_index":2573,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb.back",{"_index":2605,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.clear",{"_index":2599,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.front",{"_index":2604,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.pop_front",{"_index":2600,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.push(val",{"_index":2598,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb.size",{"_index":2586,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb.store",{"_index":2606,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb[0",{"_index":2583,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb[2.5",{"_index":2585,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb[i",{"_index":2582,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb[rb.size",{"_index":2584,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type",{"_index":2572,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type(",{"_index":2596,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb_type(rb",{"_index":2597,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["rb_type1",{"_index":2574,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type2",{"_index":2575,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type3",{"_index":2576,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb_type4",{"_index":2577,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb_type::index_typ",{"_index":2580,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb_type::interpolation_typ",{"_index":2581,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rb_type::storage_typ",{"_index":2579,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["rb_type::value_typ",{"_index":2578,"title":{},"name":{},"text":{"67":{},"68":{},"135":{},"136":{}},"component":{}}],["read",{"_index":755,"title":{},"name":{},"text":{"4":{},"9":{},"38":{},"42":{},"45":{},"46":{},"65":{},"72":{},"77":{},"106":{},"110":{},"113":{},"114":{},"133":{}},"component":{}}],["read(concepts::indexablecontain",{"_index":1682,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["read(float",{"_index":1679,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["readabl",{"_index":260,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"39":{},"70":{},"71":{},"72":{},"107":{}},"component":{}}],["reader",{"_index":726,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["readi",{"_index":883,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["real",{"_index":1732,"title":{},"name":{},"text":{"39":{},"56":{},"107":{},"124":{}},"component":{}}],["realm",{"_index":307,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["reason",{"_index":222,"title":{},"name":{},"text":{"2":{},"4":{},"39":{},"70":{},"72":{},"107":{}},"component":{}}],["recalcul",{"_index":1572,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["receiv",{"_index":317,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"41":{},"45":{},"48":{},"70":{},"72":{},"75":{},"109":{},"113":{},"116":{}},"component":{}}],["reciproc",{"_index":2447,"title":{},"name":{},"text":{"61":{},"63":{},"129":{},"131":{}},"component":{}}],["recommend",{"_index":1404,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["record",{"_index":561,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["recurs",{"_index":844,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["red",{"_index":1398,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["reduc",{"_index":974,"title":{},"name":{},"text":{"8":{},"22":{},"23":{},"24":{},"29":{},"32":{},"34":{},"47":{},"53":{},"54":{},"55":{},"57":{},"58":{},"76":{},"90":{},"91":{},"92":{},"97":{},"100":{},"102":{},"115":{},"121":{},"122":{},"123":{},"125":{},"126":{}},"component":{}}],["reduct",{"_index":1260,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"35":{},"50":{},"90":{},"91":{},"92":{},"103":{},"118":{}},"component":{}}],["ref",{"_index":1210,"title":{},"name":{},"text":{"21":{},"89":{}},"component":{}}],["refer",{"_index":472,"title":{},"name":{},"text":{"3":{},"4":{},"7":{},"21":{},"33":{},"64":{},"65":{},"67":{},"68":{},"71":{},"72":{},"75":{},"76":{},"89":{},"101":{},"132":{},"133":{},"135":{},"136":{}},"component":{}}],["refin",{"_index":1067,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["regard",{"_index":2587,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["region",{"_index":962,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["regular",{"_index":1705,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["rel",{"_index":1342,"title":{},"name":{},"text":{"25":{},"29":{},"48":{},"59":{},"64":{},"93":{},"97":{},"116":{},"127":{},"132":{}},"component":{}}],["relat",{"_index":131,"title":{},"name":{},"text":{"2":{},"3":{},"8":{},"70":{},"71":{},"76":{}},"component":{}}],["relationship",{"_index":2381,"title":{},"name":{},"text":{"59":{},"64":{},"127":{},"132":{}},"component":{}}],["releas",{"_index":466,"title":{},"name":{},"text":{"3":{},"4":{},"10":{},"25":{},"29":{},"34":{},"36":{},"44":{},"48":{},"71":{},"72":{},"78":{},"93":{},"97":{},"102":{},"104":{},"112":{},"116":{}},"component":{}}],["release(dur",{"_index":1443,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["release(float",{"_index":1339,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["release_",{"_index":1340,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["release_r",{"_index":2223,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["release_rate(dur",{"_index":2229,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["release_threshold",{"_index":1592,"title":{},"name":{},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["release_threshold(decibel",{"_index":1595,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["release_threshold(float",{"_index":1596,"title":{},"name":{},"text":{"34":{},"102":{}},"component":{}}],["relev",{"_index":1609,"title":{},"name":{},"text":{"35":{},"41":{},"45":{},"64":{},"103":{},"109":{},"113":{},"132":{}},"component":{}}],["remain",{"_index":2244,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["remov",{"_index":1459,"title":{},"name":{},"text":{"30":{},"48":{},"53":{},"54":{},"57":{},"58":{},"98":{},"116":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["repeat",{"_index":1470,"title":{},"name":{},"text":{"31":{},"66":{},"99":{},"134":{}},"component":{}}],["repetit",{"_index":1462,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["replac",{"_index":78,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["repres",{"_index":160,"title":{},"name":{},"text":{"2":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"62":{},"64":{},"65":{},"66":{},"70":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"130":{},"132":{},"133":{},"134":{}},"component":{}}],["represent",{"_index":1054,"title":{},"name":{},"text":{"10":{},"11":{},"46":{},"60":{},"61":{},"63":{},"64":{},"78":{},"79":{},"114":{},"128":{},"129":{},"131":{},"132":{}},"component":{}}],["request",{"_index":1715,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["requir",{"_index":791,"title":{"5-1":{},"73-1":{}},"name":{},"text":{"4":{},"5":{},"8":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"26":{},"27":{},"31":{},"33":{},"36":{},"41":{},"45":{},"55":{},"62":{},"67":{},"68":{},"72":{},"73":{},"76":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"94":{},"95":{},"99":{},"101":{},"104":{},"109":{},"113":{},"123":{},"130":{},"135":{},"136":{}},"component":{}}],["requires(t",{"_index":1060,"title":{},"name":{},"text":{"10":{},"43":{},"45":{},"78":{},"111":{},"113":{}},"component":{}}],["research",{"_index":457,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["reserv",{"_index":416,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["reset",{"_index":1104,"title":{"44-23":{},"112-23":{}},"name":{},"text":{"10":{},"25":{},"27":{},"29":{},"38":{},"44":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"78":{},"93":{},"95":{},"97":{},"106":{},"112":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{}},"component":{}}],["reset(float",{"_index":2348,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["resid",{"_index":102,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["resistor",{"_index":1305,"title":{},"name":{},"text":{"25":{},"29":{},"49":{},"93":{},"97":{},"117":{}},"component":{}}],["resiz",{"_index":1570,"title":{},"name":{},"text":{"33":{},"68":{},"101":{},"136":{}},"component":{}}],["resize(dur",{"_index":1558,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["resize(std::size_t",{"_index":1556,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["resolut",{"_index":2278,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["reson",{"_index":433,"title":{},"name":{},"text":{"3":{},"4":{},"71":{},"72":{}},"component":{}}],["respect",{"_index":548,"title":{},"name":{},"text":{"3":{},"34":{},"36":{},"55":{},"59":{},"71":{},"102":{},"104":{},"123":{},"127":{}},"component":{}}],["respond",{"_index":660,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["respons",{"_index":896,"title":{"25-2":{},"26-2":{},"27-2":{},"27-4":{},"28-2":{},"29-2":{},"93-2":{},"94-2":{},"95-2":{},"95-4":{},"96-2":{},"97-2":{}},"name":{},"text":{"6":{},"7":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"32":{},"39":{},"42":{},"74":{},"75":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"100":{},"107":{},"110":{}},"component":{}}],["rest",{"_index":1008,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["restart",{"_index":1676,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["restrict",{"_index":1113,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["resul",{"_index":1156,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["result",{"_index":346,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"11":{},"21":{},"22":{},"23":{},"24":{},"27":{},"28":{},"30":{},"31":{},"35":{},"54":{},"55":{},"59":{},"66":{},"70":{},"72":{},"74":{},"75":{},"79":{},"89":{},"90":{},"91":{},"92":{},"95":{},"96":{},"98":{},"99":{},"103":{},"122":{},"123":{},"127":{},"134":{}},"component":{}}],["retain",{"_index":1525,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["retrigger",{"_index":2172,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["return",{"_index":168,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{},"48":{},"55":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"74":{},"75":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"105":{},"106":{},"107":{},"108":{},"109":{},"111":{},"112":{},"113":{},"114":{},"116":{},"123":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["reusabl",{"_index":359,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["rev",{"_index":2495,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["reveal",{"_index":1433,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["reverb",{"_index":2004,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["review",{"_index":550,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["revolut",{"_index":2488,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["rewrap",{"_index":2502,"title":{},"name":{},"text":{"64":{},"65":{},"132":{},"133":{}},"component":{}}],["rh",{"_index":2523,"title":{},"name":{},"text":{"65":{},"68":{},"133":{},"136":{}},"component":{}}],["rich",{"_index":29,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["right",{"_index":415,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"7":{},"8":{},"29":{},"39":{},"46":{},"70":{},"71":{},"72":{},"73":{},"75":{},"76":{},"97":{},"107":{},"114":{}},"component":{}}],["right[fram",{"_index":687,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["right[i",{"_index":2107,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["right_out",{"_index":1257,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["right_sign",{"_index":1258,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["ring",{"_index":516,"title":{"67":{},"68":{},"135":{},"136":{}},"name":{},"text":{"3":{},"31":{},"33":{},"67":{},"68":{},"71":{},"99":{},"101":{},"135":{},"136":{}},"component":{}}],["ring_buff",{"_index":1484,"title":{},"name":{"68":{},"136":{}},"text":{"31":{},"33":{},"67":{},"68":{},"99":{},"101":{},"135":{},"136":{}},"component":{}}],["ring_buffer(ring_buff",{"_index":2591,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["ring_buffer(std::size_t",{"_index":2590,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["ring_buffer::ring_buff",{"_index":2570,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["rippl",{"_index":1333,"title":{"29-3":{},"97-3":{}},"name":{},"text":{"25":{},"26":{},"27":{},"29":{},"93":{},"94":{},"95":{},"97":{}},"component":{}}],["rise",{"_index":736,"title":{},"name":{},"text":{"4":{},"22":{},"24":{},"47":{},"51":{},"72":{},"90":{},"92":{},"115":{},"119":{}},"component":{}}],["rm",{"_index":486,"title":{"28":{},"96":{}},"name":{},"text":{"3":{},"8":{},"28":{},"71":{},"76":{},"96":{}},"component":{}}],["robert",{"_index":901,"title":{},"name":{},"text":{"6":{},"47":{},"74":{},"115":{}},"component":{}}],["robin",{"_index":1390,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["rock",{"_index":528,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["roll",{"_index":1520,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["rolloff",{"_index":2275,"title":{},"name":{},"text":{"50":{},"118":{}},"component":{}}],["root",{"_index":1413,"title":{},"name":{},"text":{"28":{},"32":{},"59":{},"96":{},"100":{},"127":{}},"component":{}}],["rot",{"_index":2496,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["rotat",{"_index":2489,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["roughli",{"_index":2330,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["round",{"_index":1389,"title":{},"name":{},"text":{"27":{},"32":{},"33":{},"62":{},"66":{},"95":{},"100":{},"101":{},"130":{},"134":{}},"component":{}}],["round(basic_interv",{"_index":2468,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["round(i",{"_index":2476,"title":{},"name":{},"text":{"62":{},"130":{}},"component":{}}],["round(p",{"_index":2566,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["round(pitch",{"_index":2556,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["rout",{"_index":1744,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["rpn_lsb",{"_index":2029,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["rpn_msb",{"_index":2031,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["rt",{"_index":1598,"title":{},"name":{},"text":{"34":{},"36":{},"102":{},"104":{}},"component":{}}],["run",{"_index":441,"title":{},"name":{},"text":{"3":{},"4":{},"5":{},"55":{},"64":{},"71":{},"72":{},"73":{},"123":{},"132":{}},"component":{}}],["s",{"_index":230,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"35":{},"36":{},"38":{},"39":{},"46":{},"48":{},"67":{},"68":{},"70":{},"72":{},"74":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"100":{},"101":{},"103":{},"104":{},"106":{},"107":{},"114":{},"116":{},"135":{},"136":{}},"component":{}}],["s.config(l",{"_index":2195,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["s.config(w",{"_index":2194,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["s.level(l",{"_index":2193,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["s1",{"_index":2157,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["s5",{"_index":2158,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sacrif",{"_index":451,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["safe",{"_index":245,"title":{},"name":{},"text":{"2":{},"4":{},"59":{},"60":{},"61":{},"63":{},"64":{},"70":{},"72":{},"127":{},"128":{},"129":{},"131":{},"132":{}},"component":{}}],["sake",{"_index":794,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["same",{"_index":876,"title":{},"name":{},"text":{"5":{},"7":{},"11":{},"26":{},"28":{},"64":{},"65":{},"73":{},"75":{},"79":{},"94":{},"96":{},"132":{},"133":{}},"component":{}}],["sameunit",{"_index":1108,"title":{"11-7":{},"79-7":{}},"name":{},"text":{"11":{},"79":{}},"component":{}}],["sampl",{"_index":150,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"64":{},"65":{},"67":{},"70":{},"72":{},"74":{},"75":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"110":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"132":{},"133":{},"135":{}},"component":{}}],["sample_interpolation::linear",{"_index":2569,"title":{},"name":{},"text":{"67":{},"135":{}},"component":{}}],["sample_typ",{"_index":2114,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["sampling_r",{"_index":674,"title":{},"name":{},"text":{"4":{},"39":{},"72":{},"107":{}},"component":{}}],["satisfi",{"_index":826,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["savvi",{"_index":745,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["saw",{"_index":499,"title":{"54":{},"122":{}},"name":{},"text":{"3":{},"10":{},"54":{},"71":{},"78":{},"122":{}},"component":{}}],["saw_osc",{"_index":2319,"title":{},"name":{"54":{},"122":{}},"text":{"54":{},"122":{}},"component":{}}],["sawtooth",{"_index":1075,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["scalar",{"_index":2391,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["scale",{"_index":208,"title":{},"name":{},"text":{"2":{},"49":{},"59":{},"62":{},"66":{},"70":{},"117":{},"127":{},"130":{},"134":{}},"component":{}}],["scene",{"_index":699,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["scheme",{"_index":987,"title":{},"name":{},"text":{"8":{},"21":{},"22":{},"23":{},"24":{},"33":{},"76":{},"89":{},"90":{},"91":{},"92":{},"101":{}},"component":{}}],["scope",{"_index":267,"title":{},"name":{},"text":{"2":{},"59":{},"60":{},"61":{},"70":{},"127":{},"128":{},"129":{}},"component":{}}],["scratch",{"_index":324,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["sculpt",{"_index":1051,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["second",{"_index":190,"title":{},"name":{},"text":{"2":{},"5":{},"6":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"36":{},"38":{},"39":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"60":{},"63":{},"64":{},"65":{},"70":{},"73":{},"74":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"103":{},"104":{},"106":{},"107":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"128":{},"131":{},"132":{},"133":{}},"component":{}}],["section",{"_index":18,"title":{},"name":{},"text":{"2":{},"8":{},"9":{},"70":{},"76":{},"77":{}},"component":{}}],["see",{"_index":212,"title":{},"name":{},"text":{"2":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"31":{},"37":{},"39":{},"40":{},"41":{},"48":{},"64":{},"65":{},"70":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"95":{},"99":{},"105":{},"107":{},"108":{},"109":{},"116":{},"132":{},"133":{}},"component":{}}],["seek(std::uint64_t",{"_index":1677,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["segment",{"_index":1096,"title":{"48-3":{},"116-3":{}},"name":{},"text":{"10":{},"48":{},"78":{},"116":{}},"component":{}}],["select",{"_index":571,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["self",{"_index":103,"title":{},"name":{},"text":{"2":{},"4":{},"48":{},"70":{},"72":{},"116":{}},"component":{}}],["semant",{"_index":913,"title":{},"name":{},"text":{"6":{},"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":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"74":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["semiton",{"_index":2458,"title":{},"name":{},"text":{"62":{},"66":{},"130":{},"134":{}},"component":{}}],["send",{"_index":2005,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sens",{"_index":2551,"title":{},"name":{},"text":{"66":{},"134":{}},"component":{}}],["sent",{"_index":2177,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["separ",{"_index":951,"title":{},"name":{},"text":{"7":{},"34":{},"41":{},"46":{},"75":{},"102":{},"109":{},"114":{}},"component":{}}],["sequenc",{"_index":1549,"title":{},"name":{},"text":{"33":{},"48":{},"101":{},"116":{}},"component":{}}],["sequenti",{"_index":2090,"title":{},"name":{},"text":{"46":{},"68":{},"114":{},"136":{}},"component":{}}],["seri",{"_index":1306,"title":{},"name":{},"text":{"25":{},"29":{},"49":{},"93":{},"97":{},"117":{}},"component":{}}],["serv",{"_index":906,"title":{},"name":{},"text":{"6":{},"11":{},"35":{},"48":{},"74":{},"79":{},"103":{},"116":{}},"component":{}}],["set",{"_index":114,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"7":{},"9":{},"10":{},"21":{},"22":{},"23":{},"24":{},"25":{},"29":{},"30":{},"34":{},"35":{},"38":{},"39":{},"41":{},"42":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"64":{},"65":{},"70":{},"72":{},"73":{},"75":{},"77":{},"78":{},"89":{},"90":{},"91":{},"92":{},"93":{},"97":{},"98":{},"102":{},"103":{},"106":{},"107":{},"109":{},"110":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"132":{},"133":{}},"component":{}}],["set(freq",{"_index":2531,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["set(frequ",{"_index":2525,"title":{},"name":{},"text":{"65":{},"133":{}},"component":{}}],["set_default_devic",{"_index":1775,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["set_default_device(id",{"_index":1777,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["set_default_device(int",{"_index":1774,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["setup",{"_index":468,"title":{"5":{},"73":{}},"name":{"5":{},"73":{}},"text":{"3":{},"4":{},"71":{},"72":{}},"component":{}}],["shape",{"_index":969,"title":{},"name":{},"text":{"8":{},"10":{},"26":{},"29":{},"31":{},"47":{},"48":{},"51":{},"76":{},"78":{},"94":{},"97":{},"99":{},"115":{},"116":{},"119":{}},"component":{}}],["sharp",{"_index":1526,"title":{},"name":{},"text":{"32":{},"53":{},"54":{},"57":{},"58":{},"100":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["shelf",{"_index":482,"title":{"16":{},"18":{},"84":{},"86":{}},"name":{},"text":{"3":{},"6":{},"16":{},"18":{},"71":{},"74":{},"84":{},"86":{}},"component":{}}],["shelv",{"_index":1185,"title":{},"name":{},"text":{"16":{},"18":{},"84":{},"86":{}},"component":{}}],["shift",{"_index":1355,"title":{},"name":{},"text":{"26":{},"32":{},"33":{},"94":{},"100":{},"101":{}},"component":{}}],["short",{"_index":625,"title":{},"name":{},"text":{"4":{},"25":{},"48":{},"72":{},"93":{},"116":{}},"component":{}}],["shortcut",{"_index":1381,"title":{},"name":{},"text":{"26":{},"27":{},"28":{},"94":{},"95":{},"96":{}},"component":{}}],["shorter",{"_index":1469,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["show",{"_index":387,"title":{},"name":{},"text":{"2":{},"3":{},"26":{},"27":{},"28":{},"46":{},"70":{},"71":{},"94":{},"95":{},"96":{},"114":{}},"component":{}}],["shown",{"_index":1438,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["side",{"_index":1327,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"47":{},"50":{},"93":{},"95":{},"97":{},"115":{},"118":{}},"component":{}}],["signal",{"_index":156,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"7":{},"8":{},"10":{},"11":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"46":{},"47":{},"48":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"64":{},"70":{},"71":{},"72":{},"75":{},"76":{},"78":{},"79":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"102":{},"103":{},"104":{},"114":{},"115":{},"116":{},"118":{},"119":{},"121":{},"122":{},"123":{},"125":{},"126":{},"127":{},"132":{}},"component":{}}],["signal_conditioner.hpp",{"_index":408,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["signal_conditioner::operator()(float",{"_index":366,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["signal’",{"_index":926,"title":{},"name":{},"text":{"7":{},"26":{},"30":{},"75":{},"94":{},"98":{}},"component":{}}],["signatur",{"_index":1848,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["similar",{"_index":1298,"title":{},"name":{},"text":{"25":{},"49":{},"93":{},"117":{}},"component":{}}],["simpl",{"_index":436,"title":{},"name":{},"text":{"3":{},"4":{},"8":{},"26":{},"28":{},"56":{},"71":{},"72":{},"76":{},"94":{},"96":{},"124":{}},"component":{}}],["simpler",{"_index":956,"title":{},"name":{},"text":{"7":{},"75":{}},"component":{}}],["simplest",{"_index":1515,"title":{},"name":{},"text":{"31":{},"32":{},"99":{},"100":{}},"component":{}}],["simpli",{"_index":327,"title":{},"name":{},"text":{"2":{},"4":{},"21":{},"22":{},"23":{},"24":{},"46":{},"70":{},"72":{},"89":{},"90":{},"91":{},"92":{},"114":{}},"component":{}}],["simplic",{"_index":438,"title":{},"name":{},"text":{"3":{},"4":{},"6":{},"32":{},"35":{},"71":{},"72":{},"74":{},"100":{},"103":{}},"component":{}}],["simplifi",{"_index":88,"title":{},"name":{},"text":{"2":{},"3":{},"70":{},"71":{}},"component":{}}],["simultan",{"_index":1388,"title":{},"name":{},"text":{"27":{},"55":{},"95":{},"123":{}},"component":{}}],["sin",{"_index":2349,"title":{},"name":{},"text":{"55":{},"56":{},"123":{},"124":{}},"component":{}}],["sin(phas",{"_index":184,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["sin/co",{"_index":2354,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["sin_cos_gen",{"_index":2326,"title":{},"name":{"55":{},"123":{}},"text":{"55":{},"123":{}},"component":{}}],["sin_cos_gen(f",{"_index":2353,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["sin_cos_gen(frequ",{"_index":2346,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["sin_osc",{"_index":2360,"title":{},"name":{"56":{},"124":{}},"text":{"56":{},"124":{}},"component":{}}],["sin_osc.cpp",{"_index":880,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["sine",{"_index":497,"title":{"55":{},"56":{},"123":{},"124":{}},"name":{},"text":{"3":{},"5":{},"10":{},"51":{},"55":{},"56":{},"71":{},"73":{},"78":{},"119":{},"123":{},"124":{}},"component":{}}],["singl",{"_index":343,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"31":{},"35":{},"48":{},"56":{},"70":{},"74":{},"75":{},"99":{},"103":{},"116":{},"124":{}},"component":{}}],["sit",{"_index":2168,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["size",{"_index":1017,"title":{},"name":{},"text":{"9":{},"32":{},"33":{},"38":{},"39":{},"42":{},"43":{},"44":{},"46":{},"65":{},"68":{},"77":{},"100":{},"101":{},"106":{},"107":{},"110":{},"111":{},"112":{},"114":{},"133":{},"136":{}},"component":{}}],["size_",{"_index":1853,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["skew",{"_index":2334,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["skim",{"_index":716,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["skirt",{"_index":479,"title":{"14":{},"82":{}},"name":{},"text":{"3":{},"14":{},"71":{},"82":{}},"component":{}}],["slightli",{"_index":1367,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["slope",{"_index":1431,"title":{},"name":{},"text":{"29":{},"35":{},"36":{},"97":{},"103":{},"104":{}},"component":{}}],["slope’",{"_index":1619,"title":{},"name":{},"text":{"36":{},"104":{}},"component":{}}],["slow",{"_index":1519,"title":{},"name":{},"text":{"32":{},"36":{},"100":{},"104":{}},"component":{}}],["small",{"_index":442,"title":{},"name":{},"text":{"3":{},"4":{},"9":{},"38":{},"56":{},"71":{},"72":{},"77":{},"106":{},"124":{}},"component":{}}],["smaller",{"_index":708,"title":{},"name":{},"text":{"4":{},"62":{},"72":{},"130":{}},"component":{}}],["smallest",{"_index":2478,"title":{},"name":{},"text":{"62":{},"66":{},"130":{},"134":{}},"component":{}}],["smear",{"_index":1441,"title":{},"name":{},"text":{"29":{},"97":{}},"component":{}}],["smith’",{"_index":1452,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["smooth",{"_index":1352,"title":{},"name":{},"text":{"26":{},"35":{},"47":{},"51":{},"94":{},"103":{},"115":{},"119":{}},"component":{}}],["smoother",{"_index":372,"title":{},"name":{},"text":{"2":{},"24":{},"70":{},"92":{}},"component":{}}],["snr",{"_index":1528,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["soft",{"_index":487,"title":{"24":{},"92":{}},"name":{},"text":{"3":{},"4":{},"7":{},"22":{},"23":{},"24":{},"26":{},"71":{},"72":{},"75":{},"90":{},"91":{},"92":{},"94":{}},"component":{}}],["soft_knee_compressor",{"_index":1282,"title":{},"name":{"24":{},"92":{}},"text":{"24":{},"92":{}},"component":{}}],["soft_knee_compressor(comp",{"_index":1293,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["soft_knee_compressor(decibel",{"_index":1290,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["soft_knee_compressor(t",{"_index":1292,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["soft_ped",{"_index":1964,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["softer",{"_index":1303,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["softwar",{"_index":536,"title":{},"name":{},"text":{"3":{},"27":{},"71":{},"95":{}},"component":{}}],["solut",{"_index":858,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["someth",{"_index":2099,"title":{},"name":{},"text":{"46":{},"60":{},"114":{},"128":{}},"component":{}}],["sometim",{"_index":981,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["somewhat",{"_index":314,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["somewher",{"_index":266,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["song_numb",{"_index":2058,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_posit",{"_index":1837,"title":{"44-15":{},"112-15":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_position(std::uint16_t",{"_index":2055,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_position(std::uint8_t",{"_index":2056,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_select",{"_index":1838,"title":{"44-16":{},"112-16":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["song_select(std::uint8_t",{"_index":2057,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["soon",{"_index":2171,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sostenuto",{"_index":1962,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound",{"_index":323,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"8":{},"10":{},"24":{},"44":{},"70":{},"72":{},"75":{},"76":{},"78":{},"92":{},"112":{}},"component":{}}],["sound_controller_1",{"_index":1970,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_10",{"_index":1990,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_2",{"_index":1972,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_3",{"_index":1975,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_4",{"_index":1977,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_5",{"_index":1979,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_6",{"_index":1982,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_7",{"_index":1984,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_8",{"_index":1986,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sound_controller_9",{"_index":1988,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["soundscap",{"_index":1465,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["sourc",{"_index":112,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"48":{},"55":{},"70":{},"71":{},"72":{},"116":{},"123":{}},"component":{}}],["sp",{"_index":1101,"title":{},"name":{},"text":{"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"36":{},"38":{},"39":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"55":{},"64":{},"65":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"103":{},"104":{},"106":{},"107":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"123":{},"132":{},"133":{}},"component":{}}],["spaciou",{"_index":1464,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["span",{"_index":193,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["spars",{"_index":262,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["speaker",{"_index":647,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["special",{"_index":537,"title":{},"name":{},"text":{"3":{},"36":{},"47":{},"48":{},"51":{},"71":{},"104":{},"115":{},"116":{},"119":{}},"component":{}}],["specif",{"_index":320,"title":{"44-7":{},"112-7":{}},"name":{},"text":{"2":{},"7":{},"8":{},"9":{},"11":{},"37":{},"41":{},"44":{},"45":{},"48":{},"66":{},"70":{},"75":{},"76":{},"77":{},"79":{},"105":{},"109":{},"112":{},"113":{},"116":{},"134":{}},"component":{}}],["specifi",{"_index":1018,"title":{},"name":{},"text":{"9":{},"16":{},"18":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"33":{},"34":{},"35":{},"36":{},"48":{},"49":{},"52":{},"53":{},"65":{},"68":{},"77":{},"84":{},"86":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"97":{},"98":{},"101":{},"102":{},"103":{},"104":{},"116":{},"117":{},"120":{},"121":{},"133":{},"136":{}},"component":{}}],["spectral",{"_index":1085,"title":{},"name":{},"text":{"10":{},"47":{},"50":{},"78":{},"115":{},"118":{}},"component":{}}],["spectrum",{"_index":1813,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["sqrt",{"_index":1418,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["squar",{"_index":500,"title":{"57":{},"125":{}},"name":{},"text":{"3":{},"4":{},"10":{},"25":{},"27":{},"28":{},"29":{},"32":{},"57":{},"71":{},"72":{},"78":{},"93":{},"95":{},"96":{},"97":{},"100":{},"125":{}},"component":{}}],["square_osc",{"_index":727,"title":{},"name":{"57":{},"125":{}},"text":{"4":{},"57":{},"72":{},"125":{}},"component":{}}],["squash",{"_index":1235,"title":{},"name":{},"text":{"22":{},"90":{}},"component":{}}],["src",{"_index":97,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["stabil",{"_index":2329,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["stage",{"_index":1450,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["staircas",{"_index":1353,"title":{"27-3":{},"95-3":{}},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["stamp",{"_index":2074,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["stand",{"_index":1297,"title":{},"name":{},"text":{"25":{},"59":{},"60":{},"61":{},"93":{},"127":{},"128":{},"129":{}},"component":{}}],["standard",{"_index":85,"title":{},"name":{},"text":{"2":{},"26":{},"43":{},"44":{},"70":{},"94":{},"111":{},"112":{}},"component":{}}],["start",{"_index":471,"title":{"4":{},"72":{},"44-19":{},"112-19":{}},"name":{},"text":{"3":{},"4":{},"8":{},"10":{},"38":{},"39":{},"44":{},"45":{},"47":{},"48":{},"50":{},"51":{},"64":{},"65":{},"71":{},"72":{},"76":{},"78":{},"106":{},"107":{},"112":{},"113":{},"115":{},"116":{},"118":{},"119":{},"132":{},"133":{}},"component":{}}],["startup",{"_index":627,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["state",{"_index":449,"title":{"65-9":{},"133-9":{}},"name":{},"text":{"3":{},"4":{},"9":{},"11":{},"21":{},"34":{},"39":{},"45":{},"48":{},"55":{},"65":{},"71":{},"72":{},"77":{},"79":{},"89":{},"102":{},"107":{},"113":{},"116":{},"123":{},"133":{}},"component":{}}],["stateless",{"_index":448,"title":{},"name":{},"text":{"3":{},"54":{},"56":{},"57":{},"58":{},"71":{},"122":{},"124":{},"125":{},"126":{}},"component":{}}],["static",{"_index":1627,"title":{},"name":{},"text":{"37":{},"40":{},"41":{},"44":{},"64":{},"66":{},"105":{},"108":{},"109":{},"112":{},"132":{},"134":{}},"component":{}}],["static_assert(div",{"_index":1409,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["statu",{"_index":1829,"title":{"44-6":{},"112-6":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["std",{"_index":1650,"title":{},"name":{},"text":{"37":{},"40":{},"105":{},"108":{}},"component":{}}],["std::array",{"_index":2589,"title":{},"name":{},"text":{"68":{},"136":{}},"component":{}}],["std::assignable_from",{"_index":1058,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["std::convertible_to",{"_index":1819,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["std::copy_construct",{"_index":1057,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["std::cout",{"_index":1646,"title":{},"name":{},"text":{"37":{},"40":{},"41":{},"44":{},"105":{},"108":{},"109":{},"112":{}},"component":{}}],["std::default_initializ",{"_index":1059,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["std::endl",{"_index":1647,"title":{},"name":{},"text":{"37":{},"40":{},"41":{},"44":{},"105":{},"108":{},"109":{},"112":{}},"component":{}}],["std::floating_point",{"_index":1136,"title":{},"name":{},"text":{"11":{},"43":{},"46":{},"62":{},"79":{},"111":{},"114":{},"130":{}},"component":{}}],["std::integr",{"_index":1135,"title":{},"name":{},"text":{"11":{},"43":{},"79":{},"111":{}},"component":{}}],["std::pair",{"_index":2347,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["std::random_access_iter",{"_index":1825,"title":{},"name":{},"text":{"43":{},"46":{},"111":{},"114":{}},"component":{}}],["std::same_a",{"_index":1143,"title":{},"name":{},"text":{"11":{},"43":{},"79":{},"111":{}},"component":{}}],["std::size_t",{"_index":773,"title":{},"name":{},"text":{"4":{},"33":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{},"48":{},"68":{},"72":{},"101":{},"105":{},"106":{},"107":{},"108":{},"109":{},"111":{},"113":{},"114":{},"116":{},"136":{}},"component":{}}],["std::string",{"_index":1629,"title":{},"name":{},"text":{"37":{},"38":{},"40":{},"105":{},"106":{},"108":{}},"component":{}}],["std::uint16_t",{"_index":2052,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["std::uint32_t",{"_index":1680,"title":{},"name":{},"text":{"38":{},"40":{},"44":{},"106":{},"108":{},"112":{}},"component":{}}],["std::uint64_t",{"_index":1674,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["std::uint8_t",{"_index":786,"title":{},"name":{},"text":{"4":{},"44":{},"72":{},"112":{}},"component":{}}],["std::vector",{"_index":1626,"title":{},"name":{},"text":{"37":{},"40":{},"48":{},"67":{},"68":{},"105":{},"108":{},"116":{},"135":{},"136":{}},"component":{}}],["step",{"_index":1527,"title":{},"name":{},"text":{"32":{},"33":{},"65":{},"100":{},"101":{},"133":{}},"component":{}}],["stereo",{"_index":697,"title":{},"name":{},"text":{"4":{},"22":{},"23":{},"24":{},"39":{},"46":{},"72":{},"90":{},"91":{},"92":{},"107":{},"114":{}},"component":{}}],["still",{"_index":1392,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["stock",{"_index":861,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["stop",{"_index":1708,"title":{"44-21":{},"112-21":{}},"name":{},"text":{"39":{},"44":{},"107":{},"112":{}},"component":{}}],["stopband",{"_index":1522,"title":{},"name":{},"text":{"32":{},"100":{}},"component":{}}],["storag",{"_index":1482,"title":{},"name":{},"text":{"31":{},"67":{},"68":{},"99":{},"135":{},"136":{}},"component":{}}],["storage_typ",{"_index":1489,"title":{},"name":{},"text":{"31":{},"67":{},"68":{},"99":{},"135":{},"136":{}},"component":{}}],["store",{"_index":347,"title":{},"name":{},"text":{"2":{},"4":{},"32":{},"33":{},"48":{},"55":{},"56":{},"68":{},"70":{},"72":{},"100":{},"101":{},"116":{},"123":{},"124":{},"136":{}},"component":{}}],["straight",{"_index":42,"title":{},"name":{},"text":{"2":{},"52":{},"70":{},"120":{}},"component":{}}],["straightforward",{"_index":568,"title":{},"name":{},"text":{"4":{},"9":{},"38":{},"72":{},"77":{},"106":{}},"component":{}}],["stream",{"_index":514,"title":{"42":{},"110":{}},"name":{},"text":{"3":{},"4":{},"9":{},"39":{},"41":{},"71":{},"72":{},"77":{},"107":{},"109":{}},"component":{}}],["stream.is_valid",{"_index":1784,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["stream.process(midi_processor",{"_index":1785,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["stream.process(proc",{"_index":820,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["stream’",{"_index":1725,"title":{},"name":{},"text":{"39":{},"107":{}},"component":{}}],["strength",{"_index":997,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["string",{"_index":1320,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"44":{},"93":{},"95":{},"97":{},"112":{}},"component":{}}],["struct",{"_index":333,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"39":{},"41":{},"44":{},"45":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"70":{},"72":{},"74":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"100":{},"101":{},"102":{},"103":{},"104":{},"107":{},"109":{},"112":{},"113":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{}},"component":{}}],["structur",{"_index":5,"title":{"2-3":{},"70-3":{}},"name":{},"text":{"2":{},"70":{}},"component":{}}],["studio",{"_index":531,"title":{},"name":{},"text":{"3":{},"5":{},"71":{},"73":{}},"component":{}}],["styliz",{"_index":2165,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sub",{"_index":115,"title":{},"name":{},"text":{"2":{},"31":{},"67":{},"70":{},"99":{},"135":{}},"component":{}}],["subclass",{"_index":694,"title":{},"name":{},"text":{"4":{},"32":{},"36":{},"39":{},"42":{},"44":{},"47":{},"48":{},"51":{},"63":{},"67":{},"72":{},"100":{},"104":{},"107":{},"110":{},"112":{},"115":{},"116":{},"119":{},"131":{},"135":{}},"component":{}}],["submodul",{"_index":830,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["subscript",{"_index":1816,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["subsequ",{"_index":1449,"title":{},"name":{},"text":{"30":{},"98":{}},"component":{}}],["substanti",{"_index":1356,"title":{},"name":{},"text":{"26":{},"94":{}},"component":{}}],["subtl",{"_index":1289,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["subtract",{"_index":1152,"title":{},"name":{},"text":{"11":{},"33":{},"53":{},"54":{},"57":{},"79":{},"101":{},"121":{},"122":{},"125":{}},"component":{}}],["success",{"_index":542,"title":{},"name":{},"text":{"3":{},"5":{},"64":{},"71":{},"73":{},"132":{}},"component":{}}],["such",{"_index":69,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"7":{},"9":{},"10":{},"11":{},"27":{},"29":{},"31":{},"38":{},"40":{},"48":{},"56":{},"59":{},"64":{},"68":{},"70":{},"71":{},"72":{},"75":{},"77":{},"78":{},"79":{},"95":{},"97":{},"99":{},"106":{},"108":{},"116":{},"124":{},"127":{},"132":{},"136":{}},"component":{}}],["sudden",{"_index":990,"title":{},"name":{},"text":{"8":{},"23":{},"29":{},"76":{},"91":{},"97":{}},"component":{}}],["sudo",{"_index":863,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["suggest",{"_index":439,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["suitabl",{"_index":205,"title":{},"name":{},"text":{"2":{},"10":{},"27":{},"35":{},"37":{},"40":{},"55":{},"59":{},"64":{},"70":{},"78":{},"95":{},"103":{},"105":{},"108":{},"123":{},"127":{},"132":{}},"component":{}}],["sum",{"_index":493,"title":{"33":{},"101":{}},"name":{},"text":{"3":{},"32":{},"33":{},"46":{},"51":{},"71":{},"100":{},"101":{},"114":{},"119":{}},"component":{}}],["superior",{"_index":1394,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["suppli",{"_index":1214,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"89":{},"90":{},"91":{},"92":{}},"component":{}}],["support",{"_index":122,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"22":{},"24":{},"37":{},"44":{},"45":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"77":{},"90":{},"92":{},"105":{},"112":{},"113":{}},"component":{}}],["sure",{"_index":619,"title":{},"name":{},"text":{"4":{},"5":{},"72":{},"73":{}},"component":{}}],["suscept",{"_index":1331,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["sustain",{"_index":802,"title":{},"name":{},"text":{"4":{},"10":{},"44":{},"48":{},"72":{},"78":{},"112":{},"116":{}},"component":{}}],["sustain_level",{"_index":2219,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sustain_level(decibel",{"_index":2227,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sustain_r",{"_index":2221,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sustain_rate(dur",{"_index":2228,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["sval",{"_index":2351,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["switch",{"_index":1286,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["symbol",{"_index":2497,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["symmetri",{"_index":2332,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["synchron",{"_index":2342,"title":{},"name":{},"text":{"55":{},"123":{}},"component":{}}],["syntact",{"_index":340,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["syntax",{"_index":1828,"title":{},"name":{},"text":{"43":{},"44":{},"46":{},"111":{},"112":{},"114":{}},"component":{}}],["synth",{"_index":123,"title":{},"name":{"10":{},"78":{}},"text":{"2":{},"3":{},"4":{},"70":{},"71":{},"72":{}},"component":{}}],["synth.start",{"_index":819,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["synth.stop",{"_index":821,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["synthes",{"_index":310,"title":{"4-5":{},"72-5":{}},"name":{},"text":{"2":{},"3":{},"4":{},"10":{},"42":{},"56":{},"70":{},"71":{},"72":{},"78":{},"110":{},"124":{}},"component":{}}],["synthesi",{"_index":2361,"title":{},"name":{},"text":{"56":{},"124":{}},"component":{}}],["synthesis",{"_index":133,"title":{},"name":{},"text":{"2":{},"10":{},"70":{},"78":{}},"component":{}}],["sysex",{"_index":1879,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["sysex_end",{"_index":1884,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["system",{"_index":68,"title":{},"name":{},"text":{"2":{},"4":{},"5":{},"9":{},"42":{},"45":{},"66":{},"70":{},"72":{},"73":{},"77":{},"110":{},"113":{},"134":{}},"component":{}}],["system’",{"_index":881,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["t",{"_index":1062,"title":{},"name":{},"text":{"10":{},"11":{},"22":{},"23":{},"24":{},"32":{},"33":{},"46":{},"48":{},"62":{},"67":{},"68":{},"78":{},"79":{},"90":{},"91":{},"92":{},"100":{},"101":{},"114":{},"116":{},"130":{},"135":{},"136":{}},"component":{}}],["t(o",{"_index":1092,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["t(w",{"_index":1102,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["tabl",{"_index":422,"title":{"3-2":{},"71-2":{}},"name":{},"text":{"3":{},"56":{},"59":{},"71":{},"124":{},"127":{}},"component":{}}],["tag",{"_index":575,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["take",{"_index":243,"title":{},"name":{},"text":{"2":{},"4":{},"10":{},"39":{},"41":{},"45":{},"46":{},"48":{},"59":{},"60":{},"61":{},"63":{},"70":{},"72":{},"78":{},"107":{},"109":{},"113":{},"114":{},"116":{},"127":{},"128":{},"129":{},"131":{}},"component":{}}],["taken",{"_index":654,"title":{},"name":{},"text":{"4":{},"27":{},"72":{},"95":{}},"component":{}}],["talk",{"_index":1845,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["tap",{"_index":1478,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["taper",{"_index":1090,"title":{},"name":{},"text":{"10":{},"47":{},"50":{},"51":{},"78":{},"115":{},"118":{},"119":{}},"component":{}}],["target",{"_index":1678,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["task",{"_index":450,"title":{},"name":{},"text":{"3":{},"4":{},"8":{},"71":{},"72":{},"76":{}},"component":{}}],["technic",{"_index":1518,"title":{},"name":{},"text":{"32":{},"55":{},"100":{},"123":{}},"component":{}}],["techniqu",{"_index":446,"title":{},"name":{},"text":{"3":{},"53":{},"54":{},"57":{},"58":{},"71":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["technolog",{"_index":1043,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["templat",{"_index":1056,"title":{"62-4":{},"130-4":{}},"name":{},"text":{"10":{},"11":{},"26":{},"27":{},"28":{},"31":{},"32":{},"33":{},"41":{},"43":{},"44":{},"45":{},"46":{},"48":{},"62":{},"67":{},"68":{},"78":{},"79":{},"94":{},"95":{},"96":{},"99":{},"100":{},"101":{},"109":{},"111":{},"112":{},"113":{},"114":{},"116":{},"130":{},"135":{},"136":{}},"component":{}}],["tempo",{"_index":1847,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["ten",{"_index":2385,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["tenth",{"_index":2388,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["term",{"_index":970,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["test",{"_index":76,"title":{"5-9":{},"73-9":{}},"name":{},"text":{"2":{},"5":{},"9":{},"70":{},"73":{},"77":{}},"component":{}}],["that’",{"_index":744,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["therebi",{"_index":1246,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["therefor",{"_index":1720,"title":{},"name":{},"text":{"39":{},"66":{},"107":{},"134":{}},"component":{}}],["there’",{"_index":700,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["thin",{"_index":62,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["thing",{"_index":719,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["this)(i._phas",{"_index":741,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["this)[0].config(r",{"_index":2251,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["this)[1].config(r",{"_index":2253,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["this)[2].config(r",{"_index":2257,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["this)[2].level(lin_float(level",{"_index":2255,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["this)[3].config(r",{"_index":2259,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["those",{"_index":696,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["thread",{"_index":1782,"title":{},"name":{},"text":{"41":{},"109":{}},"component":{}}],["three",{"_index":1810,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["threshold",{"_index":944,"title":{},"name":{},"text":{"7":{},"22":{},"23":{},"24":{},"34":{},"36":{},"75":{},"90":{},"91":{},"92":{},"102":{},"104":{}},"component":{}}],["threshold(decibel",{"_index":1240,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["through",{"_index":1265,"title":{},"name":{},"text":{"23":{},"25":{},"29":{},"33":{},"46":{},"49":{},"91":{},"93":{},"97":{},"101":{},"114":{},"117":{}},"component":{}}],["throughout",{"_index":749,"title":{},"name":{},"text":{"4":{},"11":{},"72":{},"79":{}},"component":{}}],["thu",{"_index":2080,"title":{},"name":{},"text":{"45":{},"113":{}},"component":{}}],["ti",{"_index":1310,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["tightli",{"_index":1400,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["timbr",{"_index":1974,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["time",{"_index":192,"title":{},"name":{},"text":{"2":{},"4":{},"8":{},"22":{},"26":{},"27":{},"29":{},"31":{},"32":{},"33":{},"36":{},"39":{},"41":{},"44":{},"45":{},"49":{},"55":{},"56":{},"59":{},"60":{},"61":{},"63":{},"64":{},"70":{},"72":{},"76":{},"90":{},"94":{},"95":{},"97":{},"99":{},"100":{},"101":{},"104":{},"107":{},"109":{},"112":{},"113":{},"117":{},"123":{},"124":{},"127":{},"128":{},"129":{},"131":{},"132":{}},"component":{}}],["timing_tick",{"_index":1840,"title":{"44-18":{},"112-18":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["titl",{"_index":1384,"title":{},"name":{},"text":{"27":{},"95":{}},"component":{}}],["togeth",{"_index":1311,"title":{},"name":{},"text":{"25":{},"93":{}},"component":{}}],["tonal",{"_index":1472,"title":{},"name":{},"text":{"31":{},"99":{}},"component":{}}],["tool",{"_index":892,"title":{},"name":{},"text":{"6":{},"34":{},"74":{},"102":{}},"component":{}}],["tooth",{"_index":1050,"title":{"54":{},"122":{}},"name":{},"text":{"10":{},"54":{},"78":{},"122":{}},"component":{}}],["total",{"_index":1550,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["total_dur",{"_index":234,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["touch",{"_index":2290,"title":{},"name":{},"text":{"51":{},"65":{},"119":{},"133":{}},"component":{}}],["toward",{"_index":2130,"title":{},"name":{},"text":{"47":{},"50":{},"115":{},"118":{}},"component":{}}],["track",{"_index":1213,"title":{},"name":{},"text":{"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"29":{},"64":{},"65":{},"89":{},"90":{},"91":{},"92":{},"94":{},"95":{},"97":{},"132":{},"133":{}},"component":{}}],["tradeoff",{"_index":999,"title":{},"name":{},"text":{"8":{},"76":{}},"component":{}}],["tradit",{"_index":1048,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["transfer",{"_index":964,"title":{},"name":{},"text":{"7":{},"9":{},"75":{},"77":{}},"component":{}}],["transform",{"_index":127,"title":{},"name":{},"text":{"2":{},"26":{},"28":{},"70":{},"94":{},"96":{}},"component":{}}],["transient",{"_index":1238,"title":{"27-4":{},"95-4":{}},"name":{},"text":{"22":{},"27":{},"29":{},"90":{},"95":{},"97":{}},"component":{}}],["transit",{"_index":1284,"title":{"48-2":{},"116-2":{}},"name":{},"text":{"24":{},"48":{},"53":{},"54":{},"57":{},"92":{},"116":{},"121":{},"122":{},"125":{}},"component":{}}],["transmiss",{"_index":1026,"title":{},"name":{},"text":{"9":{},"41":{},"77":{},"109":{}},"component":{}}],["transmit",{"_index":1019,"title":{},"name":{},"text":{"9":{},"77":{}},"component":{}}],["transpar",{"_index":1288,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["transplant",{"_index":65,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["treat",{"_index":2376,"title":{},"name":{},"text":{"58":{},"126":{}},"component":{}}],["tremolo",{"_index":2008,"title":{},"name":{},"text":{"44":{},"112":{}},"component":{}}],["tri",{"_index":870,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["triangl",{"_index":502,"title":{"58":{},"126":{}},"name":{},"text":{"3":{},"10":{},"58":{},"71":{},"78":{},"126":{}},"component":{}}],["triangle_osc",{"_index":2370,"title":{},"name":{"58":{},"126":{}},"text":{"58":{},"126":{}},"component":{}}],["trigger",{"_index":762,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["true",{"_index":1406,"title":{},"name":{},"text":{"27":{},"28":{},"34":{},"38":{},"41":{},"48":{},"65":{},"66":{},"95":{},"96":{},"102":{},"106":{},"109":{},"116":{},"133":{},"134":{}},"component":{}}],["tune_request",{"_index":1839,"title":{"44-17":{},"112-17":{}},"name":{},"text":{"44":{},"112":{}},"component":{}}],["turn",{"_index":1589,"title":{},"name":{},"text":{"34":{},"64":{},"102":{},"132":{}},"component":{}}],["tutori",{"_index":662,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["two",{"_index":33,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"10":{},"25":{},"34":{},"39":{},"46":{},"47":{},"51":{},"59":{},"62":{},"65":{},"70":{},"72":{},"75":{},"78":{},"93":{},"102":{},"107":{},"114":{},"115":{},"119":{},"127":{},"130":{},"133":{}},"component":{}}],["type",{"_index":8,"title":{"2-5":{},"11-6":{},"31-6":{},"31-8":{},"32-6":{},"33-6":{},"33-7":{},"46-7":{},"67-6":{},"67-8":{},"68-6":{},"68-8":{},"70-5":{},"79-6":{},"99-6":{},"99-8":{},"100-6":{},"101-6":{},"101-7":{},"114-7":{},"135-6":{},"135-8":{},"136-6":{},"136-8":{}},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"8":{},"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":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"74":{},"75":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["typenam",{"_index":1487,"title":{},"name":{},"text":{"31":{},"67":{},"99":{},"135":{}},"component":{}}],["typesaf",{"_index":214,"title":{},"name":{},"text":{"2":{},"11":{},"70":{},"79":{}},"component":{}}],["typic",{"_index":145,"title":{},"name":{},"text":{"2":{},"4":{},"8":{},"9":{},"10":{},"11":{},"22":{},"23":{},"24":{},"32":{},"33":{},"34":{},"37":{},"38":{},"39":{},"46":{},"48":{},"70":{},"72":{},"76":{},"77":{},"78":{},"79":{},"90":{},"91":{},"92":{},"100":{},"101":{},"102":{},"105":{},"106":{},"107":{},"114":{},"116":{}},"component":{}}],["u",{"_index":1132,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["u(b",{"_index":1145,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["u(v",{"_index":1144,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["u::unit_typ",{"_index":1138,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["u::value_typ",{"_index":1137,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["ubuntu",{"_index":849,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["unchang",{"_index":1232,"title":{},"name":{},"text":{"22":{},"23":{},"24":{},"90":{},"91":{},"92":{}},"component":{}}],["undefin",{"_index":1126,"title":{},"name":{},"text":{"11":{},"39":{},"41":{},"45":{},"67":{},"68":{},"79":{},"107":{},"109":{},"113":{},"135":{},"136":{}},"component":{}}],["under",{"_index":418,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"8":{},"70":{},"71":{},"72":{},"73":{},"76":{}},"component":{}}],["underli",{"_index":1133,"title":{},"name":{},"text":{"11":{},"31":{},"33":{},"62":{},"64":{},"67":{},"68":{},"79":{},"99":{},"101":{},"130":{},"132":{},"135":{},"136":{}},"component":{}}],["understand",{"_index":105,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"70":{},"72":{},"75":{}},"component":{}}],["uniqu",{"_index":935,"title":{},"name":{},"text":{"7":{},"10":{},"11":{},"27":{},"37":{},"40":{},"41":{},"75":{},"78":{},"79":{},"95":{},"105":{},"108":{},"109":{}},"component":{}}],["unit",{"_index":213,"title":{"11":{},"79":{},"11-2":{},"11-12":{},"79-2":{},"79-12":{}},"name":{"11":{},"79":{}},"text":{"2":{},"3":{},"4":{},"11":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"70":{},"71":{},"72":{},"79":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{}},"component":{}}],["unit_typ",{"_index":1134,"title":{},"name":{},"text":{"11":{},"59":{},"60":{},"61":{},"62":{},"64":{},"79":{},"127":{},"128":{},"129":{},"130":{},"132":{}},"component":{}}],["univers",{"_index":554,"title":{"4-4":{},"72-4":{}},"name":{},"text":{},"component":{}}],["unix",{"_index":868,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["unless",{"_index":1373,"title":{},"name":{},"text":{"26":{},"27":{},"59":{},"60":{},"61":{},"94":{},"95":{},"127":{},"128":{},"129":{}},"component":{}}],["unlik",{"_index":1588,"title":{},"name":{},"text":{"34":{},"51":{},"102":{},"119":{}},"component":{}}],["unorthodox",{"_index":2102,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["unsaf",{"_index":248,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["unspecifi",{"_index":1141,"title":{},"name":{},"text":{"11":{},"39":{},"46":{},"48":{},"79":{},"107":{},"114":{},"116":{}},"component":{}}],["unwant",{"_index":1084,"title":{},"name":{},"text":{"10":{},"29":{},"34":{},"78":{},"97":{},"102":{}},"component":{}}],["up",{"_index":695,"title":{},"name":{},"text":{"4":{},"5":{},"11":{},"34":{},"39":{},"42":{},"48":{},"49":{},"58":{},"65":{},"68":{},"72":{},"73":{},"79":{},"102":{},"107":{},"110":{},"116":{},"117":{},"126":{},"133":{},"136":{}},"component":{}}],["updat",{"_index":1557,"title":{},"name":{},"text":{"33":{},"65":{},"101":{},"133":{}},"component":{}}],["update=fals",{"_index":1573,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["update=tru",{"_index":1571,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["upgrad",{"_index":2408,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["upon",{"_index":2180,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["upper",{"_index":1867,"title":{},"name":{},"text":{"44":{},"55":{},"112":{},"123":{}},"component":{}}],["upsiz",{"_index":1579,"title":{},"name":{},"text":{"33":{},"101":{}},"component":{}}],["upward",{"_index":1097,"title":{},"name":{},"text":{"10":{},"47":{},"49":{},"51":{},"52":{},"78":{},"115":{},"117":{},"119":{},"120":{}},"component":{}}],["us",{"_index":75,"title":{"5-5":{},"73-5":{}},"name":{},"text":{"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":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{}},"component":{}}],["usabl",{"_index":47,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["usag",{"_index":2086,"title":{"46-2":{},"114-2":{}},"name":{},"text":{"59":{},"60":{},"61":{},"127":{},"128":{},"129":{}},"component":{}}],["usb",{"_index":636,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["user",{"_index":30,"title":{},"name":{},"text":{"2":{},"4":{},"9":{},"10":{},"37":{},"39":{},"40":{},"41":{},"45":{},"46":{},"48":{},"59":{},"70":{},"72":{},"77":{},"78":{},"105":{},"107":{},"108":{},"109":{},"113":{},"114":{},"116":{},"127":{}},"component":{}}],["user’",{"_index":1704,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["usual",{"_index":247,"title":{},"name":{},"text":{"2":{},"4":{},"64":{},"65":{},"70":{},"72":{},"132":{},"133":{}},"component":{}}],["util",{"_index":124,"title":{},"name":{},"text":{"2":{},"3":{},"6":{},"11":{},"13":{},"14":{},"19":{},"20":{},"22":{},"23":{},"27":{},"35":{},"44":{},"45":{},"47":{},"49":{},"50":{},"51":{},"52":{},"55":{},"66":{},"70":{},"71":{},"74":{},"79":{},"81":{},"82":{},"87":{},"88":{},"90":{},"91":{},"95":{},"103":{},"112":{},"113":{},"115":{},"117":{},"118":{},"119":{},"120":{},"123":{},"134":{}},"component":{}}],["v",{"_index":1091,"title":{},"name":{},"text":{"10":{},"11":{},"59":{},"78":{},"79":{},"127":{}},"component":{}}],["v.config(w",{"_index":1105,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["v.reset",{"_index":1103,"title":{},"name":{},"text":{"10":{},"78":{}},"component":{}}],["val",{"_index":289,"title":{},"name":{},"text":{"2":{},"4":{},"13":{},"14":{},"19":{},"20":{},"22":{},"23":{},"24":{},"31":{},"33":{},"59":{},"60":{},"61":{},"62":{},"64":{},"68":{},"70":{},"72":{},"81":{},"82":{},"87":{},"88":{},"90":{},"91":{},"92":{},"99":{},"101":{},"127":{},"128":{},"129":{},"130":{},"132":{},"136":{}},"component":{}}],["valid",{"_index":1073,"title":{},"name":{},"text":{"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"31":{},"32":{},"36":{},"38":{},"39":{},"41":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"66":{},"67":{},"78":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"99":{},"100":{},"104":{},"106":{},"107":{},"109":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"134":{},"135":{}},"component":{}}],["valu",{"_index":154,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"55":{},"59":{},"64":{},"65":{},"66":{},"70":{},"72":{},"74":{},"75":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{},"123":{},"127":{},"132":{},"133":{},"134":{}},"component":{}}],["value_typ",{"_index":1158,"title":{},"name":{},"text":{"11":{},"31":{},"32":{},"33":{},"46":{},"67":{},"68":{},"79":{},"99":{},"100":{},"101":{},"114":{},"135":{},"136":{}},"component":{}}],["vari",{"_index":968,"title":{},"name":{},"text":{"8":{},"39":{},"48":{},"76":{},"107":{},"116":{}},"component":{}}],["variabl",{"_index":348,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"32":{},"36":{},"39":{},"46":{},"48":{},"55":{},"63":{},"67":{},"70":{},"72":{},"75":{},"100":{},"104":{},"107":{},"114":{},"116":{},"123":{},"131":{},"135":{}},"component":{}}],["variant",{"_index":1415,"title":{},"name":{},"text":{"28":{},"96":{}},"component":{}}],["variat",{"_index":1351,"title":{},"name":{},"text":{"26":{},"28":{},"44":{},"94":{},"96":{},"112":{}},"component":{}}],["varieti",{"_index":898,"title":{},"name":{},"text":{"6":{},"8":{},"10":{},"74":{},"76":{},"78":{}},"component":{}}],["variou",{"_index":108,"title":{},"name":{},"text":{"2":{},"3":{},"6":{},"7":{},"9":{},"10":{},"11":{},"27":{},"31":{},"34":{},"56":{},"70":{},"71":{},"74":{},"75":{},"77":{},"78":{},"79":{},"95":{},"99":{},"102":{},"124":{}},"component":{}}],["vast",{"_index":1608,"title":{},"name":{},"text":{"35":{},"103":{}},"component":{}}],["vector",{"_index":2249,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["veloc",{"_index":661,"title":{},"name":{},"text":{"4":{},"41":{},"44":{},"72":{},"109":{},"112":{}},"component":{}}],["verbos",{"_index":144,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["veri",{"_index":55,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"9":{},"32":{},"48":{},"55":{},"70":{},"71":{},"72":{},"77":{},"100":{},"116":{},"123":{}},"component":{}}],["versatil",{"_index":891,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["version",{"_index":841,"title":{},"name":{},"text":{"5":{},"59":{},"73":{},"127":{}},"component":{}}],["via",{"_index":61,"title":{},"name":{},"text":{"2":{},"9":{},"31":{},"37":{},"40":{},"70":{},"77":{},"99":{},"105":{},"108":{}},"component":{}}],["video",{"_index":626,"title":{},"name":{},"text":{"4":{},"10":{},"72":{},"78":{}},"component":{}}],["view",{"_index":1402,"title":{},"name":{},"text":{"27":{},"43":{},"46":{},"95":{},"111":{},"114":{}},"component":{}}],["virtual",{"_index":1707,"title":{},"name":{},"text":{"39":{},"42":{},"107":{},"110":{}},"component":{}}],["visual",{"_index":836,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["voic",{"_index":2175,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["void",{"_index":677,"title":{},"name":{},"text":{"4":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"29":{},"30":{},"33":{},"34":{},"35":{},"39":{},"41":{},"42":{},"45":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"55":{},"65":{},"68":{},"72":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"97":{},"98":{},"101":{},"102":{},"103":{},"107":{},"109":{},"110":{},"113":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"123":{},"133":{},"136":{}},"component":{}}],["voltag",{"_index":1309,"title":{},"name":{},"text":{"25":{},"29":{},"93":{},"97":{}},"component":{}}],["volum",{"_index":251,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["von",{"_index":2287,"title":{},"name":{},"text":{"51":{},"119":{}},"component":{}}],["vs",{"_index":250,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["vu",{"_index":1811,"title":{},"name":{},"text":{"42":{},"110":{}},"component":{}}],["w",{"_index":1100,"title":{},"name":{},"text":{"10":{},"23":{},"24":{},"38":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"78":{},"91":{},"92":{},"106":{},"115":{},"116":{},"117":{},"118":{},"119":{},"121":{}},"component":{}}],["w(n",{"_index":2137,"title":{},"name":{},"text":{"47":{},"50":{},"51":{},"115":{},"118":{},"119":{}},"component":{}}],["w.num_channel",{"_index":1667,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["w.sp",{"_index":1665,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["w.write(b",{"_index":1701,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["w.write(d",{"_index":1699,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wait",{"_index":2169,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["want",{"_index":596,"title":{},"name":{},"text":{"4":{},"5":{},"7":{},"26":{},"27":{},"46":{},"72":{},"73":{},"75":{},"94":{},"95":{},"114":{}},"component":{}}],["warn",{"_index":2405,"title":{},"name":{},"text":{"59":{},"127":{}},"component":{}}],["wav",{"_index":562,"title":{},"name":{},"text":{"4":{},"9":{},"38":{},"72":{},"77":{},"106":{}},"component":{}}],["wav_bas",{"_index":1655,"title":{"38-3":{},"106-3":{}},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_base(wav_bas",{"_index":1658,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_read",{"_index":1656,"title":{"38-9":{},"106-9":{}},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_reader(char",{"_index":1673,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_reader(f",{"_index":1686,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_reader(std::str",{"_index":1671,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_writ",{"_index":1657,"title":{"38-16":{},"106-16":{}},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wav_writer(f",{"_index":1698,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["wave",{"_index":498,"title":{"53":{},"54":{},"56":{},"57":{},"58":{},"121":{},"122":{},"124":{},"125":{},"126":{}},"name":{},"text":{"3":{},"4":{},"5":{},"10":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"71":{},"72":{},"73":{},"78":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{}},"component":{}}],["waveform",{"_index":936,"title":{},"name":{},"text":{"7":{},"9":{},"10":{},"25":{},"27":{},"29":{},"34":{},"38":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"64":{},"65":{},"75":{},"77":{},"78":{},"93":{},"95":{},"97":{},"102":{},"106":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"132":{},"133":{}},"component":{}}],["waveform’",{"_index":2311,"title":{},"name":{},"text":{"53":{},"54":{},"57":{},"58":{},"121":{},"122":{},"125":{},"126":{}},"component":{}}],["wavet",{"_index":754,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["way",{"_index":847,"title":{},"name":{},"text":{"5":{},"44":{},"46":{},"73":{},"112":{},"114":{}},"component":{}}],["wealth",{"_index":241,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["well",{"_index":547,"title":{},"name":{},"text":{"3":{},"10":{},"32":{},"44":{},"48":{},"62":{},"66":{},"71":{},"78":{},"100":{},"112":{},"116":{},"130":{},"134":{}},"component":{}}],["we’ll",{"_index":806,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["we’r",{"_index":386,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["whenev",{"_index":2206,"title":{},"name":{},"text":{"48":{},"116":{}},"component":{}}],["wherea",{"_index":1468,"title":{},"name":{},"text":{"31":{},"59":{},"99":{},"127":{}},"component":{}}],["whichev",{"_index":1157,"title":{},"name":{},"text":{"11":{},"79":{}},"component":{}}],["whole",{"_index":2110,"title":{},"name":{},"text":{"46":{},"62":{},"114":{},"130":{}},"component":{}}],["whose",{"_index":311,"title":{},"name":{},"text":{"2":{},"31":{},"70":{},"99":{}},"component":{}}],["wide",{"_index":2301,"title":{},"name":{},"text":{"52":{},"120":{}},"component":{}}],["wider",{"_index":2133,"title":{},"name":{},"text":{"47":{},"115":{}},"component":{}}],["width",{"_index":1270,"title":{},"name":{},"text":{"23":{},"24":{},"36":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"57":{},"91":{},"92":{},"104":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"125":{}},"component":{}}],["width(decibel",{"_index":1291,"title":{},"name":{},"text":{"24":{},"92":{}},"component":{}}],["width(float",{"_index":2313,"title":{},"name":{},"text":{"53":{},"121":{}},"component":{}}],["window",{"_index":505,"title":{"47":{},"50":{},"51":{},"115":{},"118":{},"119":{},"5-7":{},"73-7":{}},"name":{},"text":{"3":{},"5":{},"10":{},"32":{},"33":{},"47":{},"50":{},"51":{},"71":{},"73":{},"78":{},"100":{},"101":{},"115":{},"118":{},"119":{}},"component":{}}],["window’",{"_index":2131,"title":{},"name":{},"text":{"47":{},"51":{},"115":{},"119":{}},"component":{}}],["wish",{"_index":1370,"title":{},"name":{},"text":{"26":{},"27":{},"94":{},"95":{}},"component":{}}],["within",{"_index":1080,"title":{},"name":{},"text":{"10":{},"33":{},"46":{},"65":{},"78":{},"101":{},"114":{},"133":{}},"component":{}}],["without",{"_index":48,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"46":{},"48":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"70":{},"71":{},"77":{},"114":{},"116":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{}},"component":{}}],["work",{"_index":146,"title":{},"name":{},"text":{"2":{},"7":{},"9":{},"28":{},"38":{},"53":{},"54":{},"57":{},"70":{},"75":{},"77":{},"96":{},"106":{},"121":{},"122":{},"125":{}},"component":{}}],["workstat",{"_index":83,"title":{},"name":{},"text":{"2":{},"9":{},"70":{},"77":{}},"component":{}}],["world",{"_index":325,"title":{"4-1":{},"72-1":{}},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["worri",{"_index":2111,"title":{},"name":{},"text":{"46":{},"114":{}},"component":{}}],["wors",{"_index":254,"title":{},"name":{},"text":{"2":{},"4":{},"70":{},"72":{}},"component":{}}],["worth",{"_index":1325,"title":{},"name":{},"text":{"25":{},"27":{},"29":{},"93":{},"95":{},"97":{}},"component":{}}],["wraparound",{"_index":2503,"title":{},"name":{},"text":{"64":{},"132":{}},"component":{}}],["wrapper",{"_index":63,"title":{},"name":{},"text":{"2":{},"70":{}},"component":{}}],["write",{"_index":795,"title":{},"name":{},"text":{"4":{},"9":{},"38":{},"42":{},"48":{},"72":{},"77":{},"106":{},"110":{},"116":{}},"component":{}}],["write(concepts::indexablecontain",{"_index":1696,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["write(float",{"_index":1695,"title":{},"name":{},"text":{"38":{},"106":{}},"component":{}}],["written",{"_index":1700,"title":{},"name":{},"text":{"38":{},"68":{},"106":{},"136":{}},"component":{}}],["x",{"_index":1817,"title":{},"name":{},"text":{"43":{},"46":{},"67":{},"111":{},"114":{},"135":{}},"component":{}}],["x.size",{"_index":1820,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["x[i",{"_index":1818,"title":{},"name":{},"text":{"43":{},"111":{}},"component":{}}],["xcode",{"_index":833,"title":{},"name":{},"text":{"5":{},"73":{}},"component":{}}],["y",{"_index":1335,"title":{},"name":{},"text":{"25":{},"29":{},"30":{},"35":{},"46":{},"93":{},"97":{},"98":{},"103":{},"114":{}},"component":{}}],["yeah",{"_index":743,"title":{},"name":{},"text":{"4":{},"72":{}},"component":{}}],["year",{"_index":455,"title":{},"name":{},"text":{"3":{},"71":{}},"component":{}}],["zero",{"_index":331,"title":{},"name":{},"text":{"2":{},"23":{},"27":{},"33":{},"48":{},"50":{},"51":{},"54":{},"70":{},"91":{},"95":{},"101":{},"116":{},"118":{},"119":{},"122":{}},"component":{}}]],"pipeline":["stemmer"]},"store":{"documents":{"1":{"id":1,"text":"","title":"","component":"q","version":"develop","name":"common","url":"/q/develop/common.html","titles":[]},"2":{"id":2,"text":"The Fundamentals section of the Q DSP library provides a brief overview of the basic features of the library, including layering and dependencies, file structure, namespace, function objects as fundamental building blocks, rich data types, and user-defined literals. The Q library comprises of two layers: q_io: Audio and MIDI I/O layer. The q_io layer provides cross-platform audio and MIDI host connectivity straight out of the box. The q_io layer is optional. The q_lib layer is usable without it. q_lib: The core DSP library, q_lib is a no-frills, lightweight, header-only library. The dependencies are determined by the arrows. q_io has very minimal dependencies (portaudio and portmidi) with very loose coupling via thin wrappers that are easy to transplant and port to a host, with or without an operating system, such as an audio plugin or direct to hardware ADC and DAC. q_io is used in the tests and examples, but can be easily replaced by other mechanisms in an application. Plugin libraries for DAWs (digital audio workstations), for example, have their own audio and MIDI I/O mechanisms. q_lib has no dependencies except the standard c++ library. The library is organized with this simplified directory structure: docs (1) example (2) q_io ├─ external (3) ├─ include (4) └─ src (5) q_lib └─ include (6) test (7) 1 Where this documentation resides. 2 Self-contained and easy to understand c++ programs that demonstrate various features of the library. 3 3rd party libraries used by the q_io module. 4 q_io header files. 5 q_io source files. 6 Header-only core q_lib DSP library. 7 A comprehensive set of c++ files for testing the library. Other sub-directories not listed here can be ignored. The q_lib module, header-only core, has this simplified directory structure: q_lib └─ include └─ q ├─ fft (1) ├─ fx (2) ├─ pitch (3) ├─ support (4) ├─ synth (5) └─ utility (6) 1 Fast fourier transform. 2 Various \"effects\" processor building blocks. 3 Pitch detection related facilities. 4 Fundamental support facilities. 5 Various synthesisers. 6 Auxiliary utility functions and classes. Other sub-directories not listed here can be ignored. All entities in the Q library are placed in namespace cycfi::q. Everywhere in this documentation, we will be using a namespace alias to make the code less verbose: namespace q = cycfi::q; Typical audio processors in the Q DSP library work on floating point input samples with the normal -1.0 to 1.0 range. However, values are not limited to sampled signals. For instance, signal envelopes are best represented as decibels that are processed in the logarithmic domain, so dynamic-range processors such as compressors and expanders accept decibel as input and return decibel as output. For example: decibel gain = comp(env); comp is a compressor. The compressor above, however, processes signal envelopes rather than raw samples, in contrast to the typical implementation of DSP compressors. The compressor above accepts an envelope represented by decibel, performs computation in the logarithmic domain, and returns a compressed envelope also represented by decibel. Oscillators, as another example, operate on phase-angle inputs and return output samples: float out = sin(phase++); The Q DSP library has a rich set of such types: float and double Typical sample data type -1.0 to 1.0 (or beyond for some computational headroom). frequency Cycles per second (Hz). duration A time span (seconds, milliseconds, etc.) period The inverse of frequency. phase Fixed point 1.31 format where 31 bits are fractional. phase. represents 0 to 2π phase values suitable for oscillators. decibel Ratio of one value to another on a logarithmic scale (dB). For more information, see Units. The Q DSP library is typeful and typesafe. You can not mismatch values of different types such as frequency and decibel, for example. Such potentially disastrous mistakes can happen if all values are just raw floating point types. There are conversions to and from these data types where it is reasonable to do so. decibel can, for example, be converted to 'float' or 'double' using the as_float or as_double conversion functions. Example: float gain = as_float(12_dB); Relational operations are allowed. For example: if (gain > 3_dB) // 3_dB is a decibel literal (see below) s = lp(s); Arithmetic operations are allowed. For example: auto total_duration = 3_ms + 5_ms; // 3_ms and 5_ms are duration literals Where appropriate, arithmetic with raw types are allowed. For example: auto harmonic = 440_Hz * 4; // 440_Hz is a frequency literal To augment the wealth of value types, the Q DSP library makes abundant use of user-defined literals. We take advantage of C++ type safe user-defined literals, instead of the usual float or double which can be unsafe when values of different units (e.g. frequency vs. duration) are mismatched. The Q DSP library makes abundant use of user-defined literals for units such as time, frequency and volume. For example, we use 24_dB, instead of a unit-less 24 or worse, a non-intuitive, unit-less 15.8 —the gain equivalent of 24_dB. Such constants also make the code very readable, another objective of this library. Q Literals are placed in the namespace q::literals. The namespace is sparse enough to be hoisted into your namespace using using namespace: To use these literals, include the literals.hpp header: #include then use the literals namespace somewhere in a scope where you need it: using namespace q::literals; Here are some example expressions: 82.4069_Hz 440_Hz 1.5_KHz 1.5_kHz 1_kHz 0.5_MHz 3_MHz 10.3_s 1_s 20.5_ms 1_ms 10.5_us 500_us -3.5_dB 10_dB 2_pi 0.5_pi Here’s the list of available literals: // frequency constexpr frequency operator \"\" _Hz(long double val); constexpr frequency operator \"\" _Hz(unsigned long long int val); constexpr frequency operator \"\" _KHz(long double val); constexpr frequency operator \"\" _KHz(unsigned long long int val); constexpr frequency operator \"\" _kHz(long double val); constexpr frequency operator \"\" _kHz(unsigned long long int val); constexpr frequency operator \"\" _MHz(long double val); constexpr frequency operator \"\" _MHz(unsigned long long int val); // duration constexpr duration operator \"\" _s(long double val); constexpr duration operator \"\" _s(unsigned long long int val); constexpr duration operator \"\" _ms(long double val); constexpr duration operator \"\" _ms(unsigned long long int val); constexpr duration operator \"\" _us(long double val); constexpr duration operator \"\" _us(unsigned long long int val); // decibel constexpr decibel operator \"\" _dB(unsigned long long int val); constexpr decibel operator \"\" _dB(long double val); // pi constexpr long double operator \"\" _pi(long double val); constexpr long double operator \"\" _pi(unsigned long long int val) In the realm of electronic music, there are processors and synthesizers, whose definitions overlap somewhat and differ primarily in how they handle input and output. The processor receives one or more input samples and generates one or more output samples according to a specific processing algorithm. A synthesizer, on the other hand, generates sound from scratch without using any samples. The C++ function object is the most basic building block. In the Q world, both processors and synthesizers are simply function objects, which can be composed to form more complex functions. A function object can accept zero or more input values and generate zero or more output values. Function objects are instantiated from struct or class declarations in the header files. In this example, we instantiate hypothetical f_x and g_x structs: auto f = f_x{}; auto g = g_x{}; Syntactically, you can use these function objects just like any other function. Here’s an example function call invocation for the single input function object, f instantiated above: float r = f(s); where s is the input value, and f(s) returns a result and stores it in the variable r. Composition by passing the result of f to g, like this: float r = g(f(s)); can be encapsulated using function composition in a class or struct: struct fg_x { float operator()(float s) const { return g(f(s)); } f_x f; g_x g; }; Here, we encapsulate f_x and g_x inside the composed function object struct fg_x. We can then instantiate a function object for fg_x just like we would above. The Q DSP library uses fine-grained and reusable function object structs or classes like this. Such reusable components are composed to form more powerful higher level composites. Here’s the code example in the library for signal conditioning: inline float signal_conditioner::operator()(float s) { // High pass s = _hp(s); (1) // Pre clip s = _clip(s); (2) // Dynamic Smoother s = _sm(s); (3) // Signal envelope auto env = _env(std::abs(s)); (4) // Noise gate auto gate = _gate(env); (5) s *= _gate_env(gate); (6) // Compressor + makeup-gain auto env_db = decibel(env); auto gain = as_float(_comp(env_db)) * _makeup_gain; (7) s = s * gain; _post_env = env * gain; return s; } We’re showing only the operator() for brevity. But take note that the code uses multiple function objects for various processing functions that correspond to these class member variables: private: clip _clip; (2) highpass _hp; (1) dynamic_smoother _sm; (3) fast_envelope_follower _env; (4) float _post_env; compressor _comp; (7) float _makeup_gain; onset_gate _gate; (5) envelope_follower _gate_env; (6) }; The complete code can be found here: signal_conditioner.hpp Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Fundamentals","component":"q","version":"develop","name":"fundamentals","url":"/q/develop/fundamentals.html","titles":[{"text":"Layers","hash":"_layers","id":1},{"text":"Dependencies","hash":"_dependencies","id":2},{"text":"File Structure","hash":"_file_structure","id":3},{"text":"Namespace","hash":"_namespace","id":4},{"text":"Data Types","hash":"_data_types","id":5},{"text":"Literals","hash":"_literals","id":6},{"text":"Examples","hash":"_examples","id":7},{"text":"Frequency","hash":"_frequency","id":8},{"text":"Duration","hash":"_duration","id":9},{"text":"Decibel","hash":"_decibel","id":10},{"text":"Pi","hash":"_pi","id":11},{"text":"Function Objects","hash":"_function_objects","id":12}]},"3":{"id":3,"text":"is a cross-platform C++ library for Audio Digital Signal Processing. Aptly named after the \"Q factor\", a dimensionless parameter that describes the quality of a resonant circuit, the Q DSP Library is designed to be simple and elegant, as the simplicity of its name suggests, and efficient enough to run on small microcontrollers. Q leverages the power of modern C++ and efficient use of functional programming techniques, especially function composition using fine-grained and reusable function objects (both stateless and stateful), to simplify complex DSP programming tasks without sacrificing readability. Q is the host of some experimental Music related DSP facilities The Author has accumulated over the years as part of research and development, and will continue to evolve to accommodate more facilities necessary for the fulfillment of various Music related projects. The library is Open Source and released under the very liberal MIT license. Show Table of Contents Setup and Installation Quick Start Fundamentals Reference Units frequency duration period phase phase_iterator decibel interval pitch Biquad Low Pass Filter High Pass Filter Band Pass Filter; Constant Skirt Gain Band Pass Filter; Constant Peak Gain All Pass Filter Notch Filter Peaking Filter Low Shelf Filter High Shelf Filter Envelope Peak Envelope Follower AR Envelope Follower Fast Envelope Follower Fast Averaging Envelope Follower Fast RMS Envelope Follower Dynamic Compressor Soft Knee Compressor Expander AGC Miscellaneous Delay Moving Sum Moving Average Noise Gate Onset Gate One Pole Low Pass DC Block Synthesizers Sine Wave Oscillator Saw Wave Oscillator Square Wave Oscillator Pulse Wave Oscillator Triangle Wave Oscillator Sine Cosine Generator Blackman Window Generator Hann Window Generator Hamming Window Generator Linear Ramp Generator Exponential Ramp Generator Envelope Generator Support Basic Concepts Multi Buffer Audio Stream MIDI Messages MIDI Processor Utility Ring Buffer Fractional Ring Buffer Audio MIDI I/O Audio Device Audio Stream Audio File MIDI Device MIDI Stream Joel got into electronics and programming in the 80s because almost everything in music, his first love, is becoming electronic and digital. Since then, he builds his own guitars, effect boxes and synths. He enjoys playing distortion-laden rock guitar, composes and produces his own music in his home studio. Joel de Guzman is the principal architect and engineer at Cycfi Research. He is a software engineer specializing in advanced C++ and an advocate of Open Source. He has authored a number of highly successful Open Source projects such as Boost.Spirit, Boost.Phoenix and Boost.Fusion. These libraries are all part of the Boost Libraries, a well respected, peer-reviewed, Open Source, collaborative development effort. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Q Audio DSP Library","component":"q","version":"develop","name":"index","url":"/q/develop/index.html","titles":[{"text":"Introduction","hash":"_introduction","id":1},{"text":"Table of Contents","hash":"_table_of_contents","id":2},{"text":"The Author","hash":"_the_author","id":3}]},"4":{"id":4,"text":"Here’s a quick \"Hello, World\" example that highlights the simplicity of the Q DSP Library: a delay effects processor. The full example can be found here: example/delay.cpp. The example loads a pre-recorded wav file and plays it back with processing. The raw audio source will be played in the left channel while the delayed signal will be played in the right channel. Pretty much as straightforward as possible. The audio will be played using the currently selected audio device. The final audio output can be heard below: Your browser does not support the audio tag. // fractional delay (1) q::delay _delay{350_ms, 44100}; // Mix the signal s, and the delayed signal (where s is the incoming sample) (2) auto _y = s + _delay(); // Feed back the result to the delay (2) _delay.push(_y * _feedback); Normally, there will be a processing loop that receives the incoming samples, s. The code above are placed: 1 Before the processing loop. 2 Inside inside the processing loop. Typically, you encapsulate the code inside a class where _delay, _y and _feedback are member variables. 44100 is the desired sampling rate. _feedback is the amount of feedback desired (anything from 0.0 to less than 1.0, e.g. 0.85). 350_ms is the delay duration. Take note of 350_ms. Here, we take advantage of C++ type safe user-defined literals, instead of the usual float or double which can be unsafe when values of different units (e.g. frequency vs. duration) are mismatched. The Q DSP library makes abundant use of user-defined literals for units such as time, frequency and volume. For example, we use 24_dB, instead of a unit-less 24 or worse, a non-intuitive, unit-less 15.8 —the gain equivalent of 24_dB. Such constants also make the code very readable, another objective of this library. Processors such as q::delay are C++ function objects that can be composed to form more complex processors. For example if you want to filter the delayed signal with a low-pass filter with a 1 kHz cutoff frequency, you apply the q::lowpass filter over the result of the delay: q::lowpass _lp{1_kHz, 44100}; then insert the filter where it is needed in the processing loop: // Add the signal s, and the delayed, low-pass filtered signal auto _y = s + _lp(_delay()); Let us move on to a more elaborate example. How about a fully functional, bandwidth limited square wave synthesizer with ADSR envelope that controls an amplifier and a resonant filter and control the note-on and note-off using MIDI? Sounds good? This example is complete and self-contained in one .cpp file, kept as simple as possible to highlight the ease-of-use. The full example can be found here: example/square_synth.cpp. In order to run this example, you will need a MIDI input device connected to your system, preferrably a keyboard. Make sure you have at least one installed. If you do not have a physical MIDI input device, you can install one of the MIDI onscreen keyboards. For example, MidiKeys is a small application for MacOS that presents a MIDI keyboard onscreen. Here’s a short video clip: After building the program, make sure you have a MIDI keyboard connected before starting the application. At startup, the app will present you with a list of available MIDI hardware and will ask you what you want to use. Example: ================================================================================ Available MIDI Devices (ID : \"Name\" inputs/outputs): 0 : \"Quantum 2626\" 1/0 1 : \"Code 61 USB MIDI\" 1/0 2 : \"Code 61 MIDI DIN\" 1/0 3 : \"Code 61 Mackie/HUI\" 1/0 4 : \"Code 61 Editor\" 1/0 5 : \"Quantum 2626\" 0/1 6 : \"Code 61 USB MIDI\" 0/1 7 : \"Code 61 MIDI DIN\" 0/1 8 : \"Code 61 Mackie/HUI\" 0/1 9 : \"Code 61 Editor\" 0/1 ================================================================================ Choose MIDI Device ID: 1 And then a list of audio devices to choose from. Example: ================================================================================ Available Audio Devices (ID : \"Name\" inputs/outputs): 1 : \"MacBook Air Microphone\" 1/0 2 : \"MacBook Air Speakers\" 0/2 3 : \"Quantum 2626\" 26/26 ================================================================================ Choose Audio Device ID: 3 Take note that the demo is a console application. The Q library does not have a GUI, for good reason! We want to keep it as simple as possible. The GUI is taken cared of by other libraries (e.g. Elements). After choosing the MIDI and Audio driver, the synth is playable. The synth is monophonic and responds to velocity only, for simplicity. There are more demo applications in the example directory. After this quick tutorial, feel free to explore. Here’s the actual synthesizer with the processing loop: struct my_square_synth : q::audio_stream { my_square_synth(q::adsr_envelope_gen::config env_cfg, int device_id) : audio_stream(q::audio_device::get(device_id), 0, 2) , env(env_cfg, this->sampling_rate()) , filter(0.5, 0.8) {} void process(out_channels const& out) { auto left = out[0]; auto right = out[1]; for (auto frame : out.frames()) { // Generate the ADSR envelope auto env_ = env() * velocity; // Set the filter frequency filter.cutoff(env_); // Synthesize the square wave auto val = q::square(phase++); // Apply the envelope (amplifier and filter) with soft clip val = clip(filter(val) * env_); // Output right[frame] = left[frame] = val; } } q::phase_iterator phase; // The phase iterator q::adsr_envelope_gen env; // The envelope generator q::reso_filter filter; // The resonant filter q::soft_clip clip; // Soft clip float velocity; // Note-on velocity }; Our synth, a subclass of q::audio_stream, sets up buffers for the input and output audio streams and presents those to our processing loop (the process function above). In this example, we setup an audio stream with the selected device, no inputs and two (stereo) outputs: audio_stream(q::audio_device::get(device_id), 0, 2) Behind the scenes, there’s a lot going on here, actually. But you will notice that emphasis is given to making the library very readable, easy to understand and follow, by breaking down complex tasks into smaller manageable tasks and using function composition at progressively higher levels, while maintaining simplicity and clarity of intent. The synthesizer above is composed of smaller building blocks: fine grained C++ function objects. For example, here’s the square wave oscillator (bandwidth limited using poly_blep). For now, we will skim over details such as the adsr_envelope_gen, phase, and phase_iterator, and this thing called poly_blep. The important point, exemplified here, is that we want to keep our building blocks as simple and minimal as possible. We will cover these in greater detail later. The astute reader may notice that our square_osc class does not even have state! struct square_osc { constexpr float operator()(phase p, phase dt) const { constexpr auto middle = phase::middle(); auto r = p < middle ? 1.0f : -1.0f; // Correct rising discontinuity r += poly_blep(p, dt); // Correct falling discontinuity r -= poly_blep(p + middle, dt); return r; } constexpr float operator()(phase_iterator i) const { return (*this)(i._phase, i._incr); } }; constexpr auto square = square_osc{}; Yeah, that’s the complete oscillator. That’s all there is to it! The modern C++ savvy programmer will immediately notice the use of constexpr, applied judiciously all throughout the library. Such modern C++ facilities allow the compiler to generate extremely efficient code, even those that are generated at compile time. That means, for this example, that one can build an oscillator at compile time if needed, perhaps with constant wavetable results stored in read-only memory. The midi_processor takes care of MIDI events. Your application will have its own MIDI processor that deals with MIDI events that you are interested in. For this simple example, we simply want to process note-on and note-off events. On note-on events, our MIDI processor sets `my_square_synth’s note frequency and velocity and triggers its envelope for attack. On note-off events, our MIDI processor initiates the envelope’s release. struct my_midi_processor : midi::processor { using midi::processor::operator(); my_midi_processor(my_square_synth& synth) : _synth(synth) {} void operator()(midi::note_on msg, std::size_t time) { _key = msg.key(); auto freq = midi::note_frequency(_key); _synth.phase.set(freq, _synth.sampling_rate()); _synth.env.attack(); _synth.velocity = float(msg.velocity()) / 128; } void operator()(midi::note_off msg, std::size_t time) { if (msg.key() == _key) _synth.env.release(); } std::uint8_t _key; my_square_synth& _synth; }; In the main function, we instantiate my_square_synth and my_midi_processor. The synth constructor, in case you haven’t noticed yet, requires an envelope configuration (envelope::config). Here, we provide our configuration. Take note that in this example, the envelope parameters are constant, for the sake of simplicity, but you can definitely have these controllable by the user by writing your own MIDI processor that deals with MIDI control change messages. Again, take note of the abundant use of user-defined literals for units such as duration (e.g. 100_ms) and level (e.g. -12_dB). auto env_cfg = q::envelope::config { 100_ms // attack rate , 1_s // decay rate , -12_dB // sustain level , 5_s // sustain rate , 1_s // release rate }; my_square_synth synth{ env_cfg }; Then, we create my_midi_processor, giving it a reference to my_square_synth. We’ll also need a midi_input_stream that receives the actual incoming MIDI messages from the chosen hardware. q::midi_input_stream stream; my_midi_processor proc{ synth }; Now we’re all set. We start the synth and enter a loop that exits when the user presses ctrl-c (in which case the running flag becomes false). In the loop, we give our MIDI processor a chance to process incoming MIDI events as they arrive from the MIDI stream: synth.start(); while (running) stream.process(proc); synth.stop(); Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Quick Start","component":"q","version":"develop","name":"quick_start","url":"/q/develop/quick_start.html","titles":[{"text":"Hello, World","hash":"_hello_world","id":1},{"text":"The DSP Code","hash":"_the_dsp_code","id":2},{"text":"Notes:","hash":"_notes","id":3},{"text":"Hello, Universe","hash":"_hello_universe","id":4},{"text":"The Synthesizer","hash":"_the_synthesizer","id":5},{"text":"The Oscillator","hash":"_the_oscillator","id":6},{"text":"Processing MIDI","hash":"_processing_midi","id":7},{"text":"The Main Function","hash":"_the_main_function","id":8}]},"5":{"id":5,"text":"Here are the basic requirements and dependencies that you need to satisfy in order to use the library: A C++20 compiler git CMake 3.5.1 or higher Additionally, the following libraries are dragged as submodules: The Cycfi infra library portaudio Audio I/O library. portmidi MIDI I/O library. Q currently supports the MacOS, Windows and Linux. In the Mac, we support both XCode. Q is tested with XCode 10 and XCode 11. In Windows, we support Windows 10 with Visual Studio 2022. In Linux, we support both Clang and gcc. Get the latest version with a C++20 compiler. The CLion IDE is supported on all platforms. Clone the Q DSP library and its submodules: git clone --recurse-submodules https://github.com/cycfi/Q.git Make sure you have CMake 3.5.1 or higher. Follow the installation procedure for your platform. There are multiple ways to generate a project file using CMake depending on your platform and desired IDE, but here are some examples for MacOS 10.14, Windows 10 and, and Ubuntu 16.04: Using XCode: CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"Xcode\" ../ If successful, cmake will generate an XCode project in the build directory. Using Visual Studio 2022 CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"Visual Studio 17 2022\" ../ If successful, cmake will generate an Visual Studio solution project in the build directory. Using dpkg packaging system, stock g++ compiler and CodeBlocks. Install portaudio dependencies: sudo apt-get install libasound-dev CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"CodeBlocks - Unix Makefiles\" ../ If successful, cmake will generate a CodeBlocks project in the build directory. Build the project generated by cmake. Try running the tests and examples. If you intend to run the executables directly from the command line, make sure to change the directory to the same level where the audio_files is (e.g. 1 folder up on XCode builds). Some tests and examples may require audio clips that are found in this folder. To make sure everything is OK, try running the sin_osc.cpp example. Make sure your system’s default audio device is set up and ready to play audio. The sin_osc.cpp program should play a 5 second 440 Hz sine wave. You might also want to try running the list_devices.cpp example that prints out all detected audio and MIDI devices. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Setup and Installation","component":"q","version":"develop","name":"setup","url":"/q/develop/setup.html","titles":[{"text":"Requirements","hash":"_requirements","id":1},{"text":"C++20","hash":"_c20","id":2},{"text":"Git","hash":"_git","id":3},{"text":"CMake","hash":"_cmake","id":4},{"text":"Generating the Project using CMake","hash":"_generating_the_project_using_cmake","id":5},{"text":"MacOS","hash":"_macos","id":6},{"text":"Windows","hash":"_windows","id":7},{"text":"Linux","hash":"_linux","id":8},{"text":"Build and Test","hash":"_build_and_test","id":9}]},"6":{"id":6,"text":"The biquad filter is a versatile and effective audio processing tool. The biquad filter is a second-order filter IIR (Infinite Impulse Response) filter, particularly useful for their simplicity and efficiency in implementation. They can be utilized for a variety of filtering operations. The biquad class and its supporting infrastructure are based on Robert Bristow Johnson’s Audio-EQ Cookbook, implemented using modern C++. The biquad serves as the base class for various forms of filters, including: Low pass filter High pass filter Band pass filter All pass filter Notch filter Peaking filter Low shelf filter High shelf filter #include The Q DSP library’s API implementation hides the majority of the details behind the main biquad struct, with the exception of the copy constructor and the function call operator, which accepts a single s (input sample) parameter and returns the processed value. struct biquad { biquad(biquad const&) = default; float operator()(float s); }; s Input sample. f, a, b Objects of type biquad. Expression Semantics biquad(f) Copy construct from f. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type f(s) Process the input sample s and return the filtered result. float lowpass highpass bandpass_csg bandpass_cpg allpass notch peaking lowshelf highshelf","title":"Biquad Filters","component":"q","version":"develop","name":"biquad","url":"/q/develop/reference/biquad.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"biquad","hash":"_biquad","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Copy Constructor and Assignment","hash":"_copy_constructor_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8},{"text":"Derived Classes","hash":"_derived_classes","id":9}]},"7":{"id":7,"text":"Audio dynamic range processing DSP refers to the manipulation of an audio signal’s dynamic range. The dynamic range of an audio signal is the difference between its loudest and quietest components. Compression, Expansion, Limiting, and Gating are a few common types of dynamic range processing used in audio DSP. Such processing can enhance sound quality, minimize or eliminate noise, and create creative effects. The dynamic range processors in the Q DSP library are unique in that they do not process audio waveform samples directly. Instead, they operate on the envelope of the audio signal, represented as decibel, perform computations in the logarithmic domain, and return a processed envelope, also represented as decibel. As an example, here’s the processing code for the compressor: decibel compressor::operator()(decibel env) const { if (env <= _threshold) return 0_dB; return _slope * (_threshold - env); } This is a hard knee compressor: a type of compressor in which the compression ratio changes abruptly when the input signal exceeds the threshold level, known as the knee point. Both hard knee and soft knee compressors are supported by the Q DSP library. The code accepts an envelope input, env, in decibels and outputs a compressed envelope also in decibels. Processing is done in the logarithmic domain, where addition of two values is equivalent to multiplying their corresponding linear values, and multiplication of two values is equivalent to raising their corresponding linear values to a power. The envelope follower, which is responsible for generating the input envelope for the compressor, is implemented outside of the compressor class. The objective is separation of concerns and the flexibility to use various envelope followers. Compared to their linear counterparts, performing computations in the logarithmic domain is simpler, more intuitive, and makes the code easier to understand while maintaining the same level of efficiency. The compressor example above and all dynamic range processors in the Q DSP library are essentially envelope processors. They receive envelopes, process envelopes, and return envelopes. Since envelope processors operate on the envelope, perform computations in the logarithmic domain, and return a processed envelope, multiple envelope processors can be cascaded. For instance, you can use a single envelope follower and apply the derived envelope to an expander and then pass the result to a compressor, like in the diagram below: A specific use-case for cascading an expander and a compressor, like in the example above, is when you want to use the expander as a noise gate, with soft, non-abrupt gating, set at a threshold just above the noise floor. Then, setting the threshold of the compressor to a high value to even out the dynamic range. The compressor and expander in this case work on different regions of the full dynamic range. But there are also useful cases where the overlap of dynamic ranges the processors are working on is advantageous. The compressor-limiter is a good example. Likewise, multiple compressors with variable thresholds and ratios are another example. By cascading multiple dynamic range processors, we can design efficient multi-function processors like the compressor-limiter with gate (transfer response graph at the right).","title":"Dynamic","component":"q","version":"develop","name":"dynamic","url":"/q/develop/reference/dynamic.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Example","hash":"_example","id":2},{"text":"Key Points","hash":"_key_points","id":3},{"text":"Cascading","hash":"_cascading","id":4}]},"8":{"id":8,"text":"This section deals with envelope extraction from signals. In audio DSP, an envelope efers to the time-varying changes of a signal. It essentially represents the \"shape\" of the signal in terms of its moment-to-moment changes. Extracting an envelope from a signal is particularly important because they can be used for a variety of processing tasks, including controlling the perceived loudness of a signal, reducing noise, emphasizing particular elements of the signal, modulating amplitude, frequency, and other sound properties, to name a few. Envelopes are typically, but not always, related to amplitude changes, although it can sometimes be related to other parameters like pitch or frequency, phase, and filter cutoff, to name a few. This section will only cover amplitude envelope extraction. Figure 1. Output behavior of different types of envelope followers. The amplitude envelope can also be used to extract dynamic features from a sound. As an example, onset detection is a method for determining the beginning of each musical note. The most basic onset detection scheme involves analyzing the amplitude envelope and detecting sudden changes in amplitude that coincide with the start of each note. [1] The Q DSP library includes a variety of envelope extractors, ranging from the most basic peak envelope follower to the more precise, but computationally demanding, fast RMS envelope follower. Each has distinct strengths, characteristics, and tradeoffs that can be evaluated based on the application’s specific requirements. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License 1. An accurate onset detection mechanism that goes far beyond the aforementioned simple onset detection scheme is included in the Hz DSP library, an offshoot of the Q DSP library.","title":"Envelope","component":"q","version":"develop","name":"envelope","url":"/q/develop/reference/envelope.html","titles":[]},"9":{"id":9,"text":"q_io is the Audio and MIDI I/O layer that provides cross-platform audio and MIDI host connectivity. As stated in the Fundamentals section, the q_io layer is optional. The rest of the q_lib layer is usable without it. q_io is primarily used in the tests and examples, but can be easily replaced by other mechanisms in an application. Plugin libraries for DAWs (digital audio workstations), for example, have their own audio and MIDI I/O mechanisms. q_io was intended to be very minimal. The entire layer is comprised of a handful of classes. The diagram below depicts the data transfer between the various components, an application, and the host operating system. audio_device audio_device represents individual audio interfaces on the host platform. There are typically one or more audio devices available. Each device has a name, device identifier, and specific capabilities, including sample rate and the number of input and output channels supported. audio_stream audio_stream handles audio input and output to and from an audio device. Parameters such as sample rate, sample format, and buffer size are specified when opening the audio stream. Audio streams can be input only, output only, or both input and output. Data is transmitted asynchronously between an open audio stream and the application. audio_file audio_file is a set of small and lightweight classes for reading and writing WAV (Waveform Audio File Format) files. It offers a straightforward and intuitive interface for working with WAV audio data. midi_device midi_device is an abstraction which encapsulates the properties and functionality of a MIDI interface. Each MIDI device includes information such as its name, device identifier, and the number of inputs and outputs available. midi_input_stream The midi_input_stream class facilitates MIDI communication and data transmission of MIDI messages between a MIDI device and an application. The application processes audio, asynchronoously, via user provided process functions as documented in the Audio Stream Client Interface. The MIDI Processor is a user provided class that acts as an intermediary between the application and the MIDI stream, facilitating communication and data transmission of MIDI messages.","title":"Audio MIDI I/O","component":"q","version":"develop","name":"q_io","url":"/q/develop/reference/q_io.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Components and Data Flow","hash":"_components_and_data_flow","id":2}]},"10":{"id":10,"text":"Synthesizers are one of the most engaging parts of any DSP library, as they involve the actual creation of sounds. What makes synthesizers so engaging is the level of control they offer over sound creation. A synthesizer allows a user to shape and mold a sound by adjusting parameters such as waveform shape, frequency, amplitude, and filter settings. This level of control enables users to create expressive and unique sounds that can be used in a variety of contexts, ranging from music production to sound design for film and video games. The advancements in DSP technology have made synthesizers even more powerful and flexible. Users can now create sounds that were previously impossible to achieve with traditional analog synthesizers. The Q DSP library provides some common synthesisers such as sine-wave, square, pulse, triangle and saw-tooth, as well as various generators for sculpting the sound envelopes with controls for attack, decay, hold sustain and release. These are designed as moduler building blocks that are combined to form more complex synthesisers. Oscillator is a concept representation of an oscillator that generates periodic waveforms. Oscillators are function objects that take in a phase_iterator: an iterator over the phase. The output is typically a floating point value. namespace cycfi::q::concepts { template concept Oscillator = std::copy_constructible && std::assignable_from && std::default_initializable && requires(T o, T a, T b, phase_iterator pi) { o(pi); // Generate a periodic waveform given `{phase_iterator}`, `pi`. }; } o, a, b Instances of types that conform to Oscillator. pi Object of type phase_iterator. Expression Semantics Oscillator() Default construct an Oscillator. Oscillator(o) Copy construct from o. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type o(pi) Generate a periodic waveform given phase_iterator, pi. decltype(o(pi)) BasicOscillator is a refinement of the Oscillator concept. BasicOscillator is not bandwidth limited. This is is suitable in certain cases. Moreover, some oscillators are inherently bandwidth limited. namespace cycfi::q::concepts { template concept BasicOscillator = Oscillator && requires(T o, phase ph) { o(ph); // Generate a periodic waveform given `{phase}`, `pi`. }; } In addition to valid expressions for Oscillator, BasicOscillator allows these expressions. o Instance of a type that conforms to BasicOscillator. ph Object of type phase. Expression Semantics Return Type o(ph) Generate a periodic waveform given phase, ph. decltype(o(ph)) Waveforms with hard discontinuities such as sawtooth and square waves can generate harmonics that extend beyond the Nyquist frequency range or half the sampling rate. Oscillators may be bandwidth limited to ensure that the harmonics generated fall within the Nyquist frequency range to prevent aliasing, which causes unwanted spectral artifacts in the signal. BandwidthLimitedOscillator is a refinement of the Oscillator concept. These oscillators are bandwidth limited. namespace cycfi::q::concepts { template concept BandwidthLimitedOscillator = Oscillator && requires(T o, phase ph, phase dt) { o(ph, dt); // Generate a periodic waveform given `{phase}`, `pi` // and another `{phase}`, `dt` representing the delta // phase between two samples of the waveform (this is // equivalent to the `_step` member function of the // `{phase_iterator}`). (ph))` }; } In addition to valid expressions for Oscillator, BandwidthLimitedOscillator allows these expressions. o Instance of a type that conforms to BasicOscillator. ph, dt Object of type phase. Expression Semantics Return Type o(ph, dt) Generate a periodic waveform given phase, ph and another phase, dt representing the delta phase between two samples of the waveform (this is equivalent to the _step member function of the phase_iterator). decltype(o(ph)) Generator is a concept representation of a generator. Generators are function objects that take no function arguments and return an output that is typically a floating point value. Generators are typically non-periodic. Generators are useful for constructing complex signals, envelopes and tapers (also known as window functions). namespace cycfi::q::concepts { template concept Generator = requires(T v, T o, T a, T b, phase_iterator pi) { T(o); // Copy construct from `o`. a = b; // Assign `b` to `a`. v(); // Generate a signal. }; } g, a, b Instances of types that conform to Generator. Expression Semantics Generator(g) Copy construct from g. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type g() Generate a signal. decltype(g(pi)) Ramp is a concept representation of a generator that generates non-periodic signals from 0.0 to 1.0 or from 1.0 to 0.0. It is a refinement of the Generator concept. Ramp(s) are suitable for generating envelopes. A Ramp represents a segment of an envelope. Essentially, an envelope comprises two or more upward and downward `Ramp`s. namespace cycfi::q::concepts { template concept Ramp = Generator && requires(T v, duration w, float sps) { T(w, sps); // Construct a Ramp given duration, w, and sps. v.reset(); // Reset the Ramp to the start. v.config(w, sps); // Configure a Ramp given duration, w, and sps. }; } In addition to valid expressions for Generator, Ramp allows these expressions. r Instance of a type that conforms to Ramp. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics Ramp(w, sps) Construct a Ramp given duration, w, and sps. C++ brace initialization may also be used. Expression Semantics r.reset() Reset the Ramp to the start. v.config(w, sps) Configure a Ramp given duration, w, and sps.","title":"Oscillators","component":"q","version":"develop","name":"synth","url":"/q/develop/reference/synth.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Oscillator","hash":"_oscillator","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"BasicOscillator","hash":"_basicoscillator","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10},{"text":"Notation","hash":"_notation_2","id":11},{"text":"Function Call","hash":"_function_call_2","id":12},{"text":"BandwidthLimitedOscillator","hash":"_bandwidthlimitedoscillator","id":13},{"text":"Declaration","hash":"_declaration_3","id":14},{"text":"Expressions","hash":"_expressions_3","id":15},{"text":"Notation","hash":"_notation_3","id":16},{"text":"Function Call","hash":"_function_call_3","id":17},{"text":"Generator","hash":"_generator","id":18},{"text":"Declaration","hash":"_declaration_4","id":19},{"text":"Expressions","hash":"_expressions_4","id":20},{"text":"Notation","hash":"_notation_4","id":21},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_2","id":22},{"text":"Function Call","hash":"_function_call_4","id":23},{"text":"Ramp","hash":"_ramp","id":24},{"text":"Declaration","hash":"_declaration_5","id":25},{"text":"Expressions","hash":"_expressions_5","id":26},{"text":"Notation","hash":"_notation_5","id":27},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_3","id":28},{"text":"Mutators","hash":"_mutators","id":29}]},"11":{"id":11,"text":"The Q DSP library processes audio signals by applying various audio processors to sample inputs. These processors typically operate with floating-point input samples in the typical -1.0 to 1.0 range. However, the values are not restricted to sampled signals. For instance, signal envelopes are best represented as decibels processed in the logarithmic domain. Consequently, dynamic-range processors such as compressors and expanders accept decibel as input and return decibel as output. The Q DSP library is typeful and typesafe, which means that each data type is explicitly defined and enforced. This is crucial because it avoids the potentially catastrophic errors that could result from mismatching values of different types. For example, if all values were just raw floating point types, it would be possible to accidentally mix up the frequency and decibel values. Mistakenly interchanging frequency and decibel values could result in erroneous processing of the audio signal and will lead to undefined results. This document aims to provide comprehensive documentation of the fundamental data types used by the Q DSP library. These basic units are utilized consistently throughout the library and serve as the basis for quantifying specific parameters, such as decibels (dB) for signal level and hertz (Hz) for frequency. Unit is a concept representation of a physical unit. U Unit type. T Underlying arithmetic value type. v Arithmetic value. a Instance of a type that conforms to Unit. b Object with the same unit_type as a. A Type of object a. B Type of object b. The arithmetic value concept is documented in Basic Concepts and declared in this C++ concept as: namespace cycfi::q::concepts { template concept Arithmetic = std::integral || std::floating_point; } Expression Semantics Type U::value_type Get the underlying arithmetic value type. T U::unit_type Get the unique unit type. Each Unit type has its own unique unit type to distinguish from differnt Unit types. unspecified Compatible unit types A and B are allowed for certain expressions as defined below. These types conform to the SameUnit concept declared below: namespace cycfi::q::concepts { template concept SameUnit = std::same_as; } Basically, the declaration states that unit types A and B are the same if they have the same unit_type. Expression Semantics U(v) Construct a Unit from an arithmetic value v. U(b) Copy construct from b. a = b Assign b, to a. C++ brace initialization may also be used. Expression Semantics Return Type a.rep Direct access to the underlying arithmetic value representation. T Expression Semantics Return Type a == b Equality. bool a == v Equality with an arithmetic value. bool v == b Equality with an arithmetic value. bool a != b Non-Equality. bool a != v Non-Equality with an arithmetic value. bool v != b Non-Equality with aan arithmetic value. bool a b Greater than. bool a > v Greater than with an arithmetic value. bool v > b Greater than with an arithmetic value. bool a >= b Greater than equal. bool a >= v Greater than equal with an arithmetic value. bool v >= b Greater than equal with an arithmetic value. bool Expression Semantics Return Type +a Positive. Unit -a Negative. Unit a += b Add assign. Unit& a += v Add assign with an arithmetic value. Unit& a -= b Subtract assign. Unit& a -= v Subtract assign with an arithmetic value. Unit& a *= v Multiply assign with an arithmetic value. Unit& a /= v Divide assign with an arithmetic value. Unit& a + b Addition. Unit a + v Addition with an arithmetic value. Unit v + b Addition with an arithmetic value. Unit a - b Subtraction. Unit a - v Subtraction with an arithmetic value. Unit v - b Subtraction with an arithmetic value. Unit a * v Multiplication with an arithmetic value. Unit v * b Multiplication with an arithmetic value. Unit a / b Division. T a / v Division with an arithmetic value. Unit On binary operations a + b and a - b, where a and b conform to the SameUnit concept (see above), the resuling type will be whichever has the value_type of decltype(a.ref + b.rep), else if both operands are promoted, then whichever has the larger value_type will be chosen. For example, if a.rep is double and b.rep is int, the result will be the unit type of a. frequency duration period phase decibel interval","title":"Units","component":"q","version":"develop","name":"units","url":"/q/develop/reference/units.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Unit","hash":"_unit","id":2},{"text":"Expressions","hash":"_expressions","id":3},{"text":"Notation","hash":"_notation","id":4},{"text":"Arithmetic Concept","hash":"_arithmetic_concept","id":5},{"text":"Type Definitions","hash":"_type_definitions","id":6},{"text":"SameUnit Concept","hash":"_sameunit_concept","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Access","hash":"_access","id":9},{"text":"Comparison","hash":"_comparison","id":10},{"text":"Arithmetic","hash":"_arithmetic","id":11},{"text":"Unit Promotion","hash":"_unit_promotion","id":12},{"text":"Models","hash":"_models","id":13}]},"12":{"id":12,"text":"All pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the allpass class. #include struct allpass : biquad { allpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, allpass allows these expressions. ap Object of type allpass. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics allpass(f, sps [, q]) Construct an allpass filter from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics ap.config(f, sps [, q]) Configure an allpass from f, sps and optional q (defaults to 0.707).","title":"All Pass Filter","component":"q","version":"develop","name":"allpass","url":"/q/develop/reference/biquad/allpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"13":{"id":13,"text":"Band pass second-order IIR (Infinite Impulse Response) filter with constant 0 dB peak gain. This filter is embodied by the allpass class. #include struct bw (1) { double val; // in octaves }; struct bandpass_cpg : biquad { bandpass_cpg(frequency f, float sps, bw _bw); bandpass_cpg(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, bandpass_cpg allows these expressions. bf Object of type bandpass_cpg. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics bandpass_cpg(f, sps [, q]) Construct a bandpass_cpg filter from f, sps and optional q (defaults to 0.707). bandpass_cpg(f, sps, bw{b}) Construct a bandpass_cpg filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(f, sps) Configure a bandpass_cpg filter from f, sps. q defaults to 0.707 bf.config(f, sps [, q]) Configure a bandpass_cpg filter from f, sps and optional q (defaults to 0.707). bf.config(f, sps, bw{b}) Configure a bandpass_cpg filter from f, sps and b (bandwidth).","title":"Band Pass Filter; Constant Peak Gain","component":"q","version":"develop","name":"bandpass_cpg","url":"/q/develop/reference/biquad/bandpass_cpg.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"14":{"id":14,"text":"Band pass second-order IIR (Infinite Impulse Response) filter with constant skirt gain, peak gain = Q. This filter is embodied by the bandpass_csg class. #include struct bw (1) { double val; // in octaves }; struct bandpass_csg : biquad { bandpass_csg(frequency f, float sps, bw _bw); bandpass_csg(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, bandpass_csg allows these expressions. bf Object of type bandpass_csg. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics bandpass_csg(f, sps [, q]) Construct a bandpass_csg filter from f, sps and optional q (defaults to 0.707). bandpass_csg(f, sps, bw{b}) Construct a bandpass_csg filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(f, sps [, q]) Configure a bandpass_csg filter from f, sps and optional q (defaults to 0.707). bf.config(f, sps, bw{b}) Configure a bandpass_csg filter from f, sps and b (bandwidth).","title":"Band Pass Filter; Constant Skirt Gain","component":"q","version":"develop","name":"bandpass_csg","url":"/q/develop/reference/biquad/bandpass_csg.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"15":{"id":15,"text":"High pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the highpass class. #include struct highpass : biquad { highpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, highpass allows these expressions. hp Object of type highpass. f Object of type frequency. sps Floating point value representing samples per second. `q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics highpass(f, sps [, q]) Construct a highpass filter from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics hp.config(f, sps [, q]) Configure a highpass from f, sps and optional q (defaults to 0.707).","title":"High Pass Filter","component":"q","version":"develop","name":"highpass","url":"/q/develop/reference/biquad/highpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"16":{"id":16,"text":"High shelf second-order IIR (Infinite Impulse Response) filter. All frequencies above the shelving frequency are either boosted or attenuated by the specified gain in decibels. This filter is embodied by the highshelf class. #include struct highshelf : biquad { highshelf(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, double q = 0.707); }; In addition to valid expressions for biquad, highshelf allows these expressions. hs Object of type highshelf. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics highshelf(g, f, sps [, q]) Construct a highshelf from g, f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics hs.config(g, f, sps [, q]) Configure a highshelf from g, f, sps and optional q (defaults to 0.707).","title":"High Shelf Filter","component":"q","version":"develop","name":"highshelf","url":"/q/develop/reference/biquad/highshelf.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"17":{"id":17,"text":"Low pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the lowpass class. #include struct lowpass : biquad { lowpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, lowpass allows these expressions. lp Object of type lowpass. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics lowpass(f, sps [, q]) Construct a lowpass from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics lp.config(f, sps [, q]) Configure a lowpass from f, sps and optional q (defaults to 0.707).","title":"Low Pass Filter","component":"q","version":"develop","name":"lowpass","url":"/q/develop/reference/biquad/lowpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"18":{"id":18,"text":"Low shelf second-order IIR (Infinite Impulse Response) filter. All frequencies below the shelving frequency are either boosted or attenuated by the specified gain in decibels. This filter is embodied by the lowshelf class. #include struct lowshelf : biquad { lowshelf(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, double q = 0.707); }; In addition to valid expressions for biquad, lowshelf allows these expressions. ls Object of type lowshelf. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics lowshelf(g, f, sps [, q]) Construct a lowshelf from g, f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics ls.config(g, f, sps [, q]) Configure a lowshelf from g, f, sps and optional q (defaults to 0.707).","title":"Low Shelf Filter","component":"q","version":"develop","name":"lowshelf","url":"/q/develop/reference/biquad/lowshelf.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"19":{"id":19,"text":"Notch second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the notch class. #include struct bw (1) { double val; // in octaves }; struct notch : biquad { notch(frequency f, float sps, bw _bw); notch(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, notch allows these expressions. nf Object of type notch. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics notch(f, sps [, q]) Construct a notch filter from f, sps and optional q (defaults to 0.707). notch(f, sps, bw{b}) Construct a notch filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics `nf.config(f, sps [, q]) Configure a notch filter from f, sps and optional q (defaults to 0.707). nf.config(f, sps, bw{b}) Configure a notch filter from f, sps and b (bandwidth).","title":"Notch Filter","component":"q","version":"develop","name":"notch","url":"/q/develop/reference/biquad/notch.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"20":{"id":20,"text":"Peaking second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the peaking class. #include struct bw (1) { double val; // in octaves }; struct peaking : biquad { peaking(double db_gain, frequency f, float sps, bw _bw); peaking(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, bw _bw); void config(double db_gain, frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, peaking allows these expressions. bf Object of type peaking. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics peaking(g, f, sps [, q]) Construct a peaking filter from g, f, sps and optional q (defaults to 0.707). peaking(g, f, sps, bw{b}) Construct a peaking filter from g, f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(g, f, sps [, q]) Configure a peaking filter from g, f, sps and optional q (defaults to 0.707). bf.config(g, f, sps, bw{b}) Configure a peaking filter from g, f, sps and b (bandwidth).","title":"Peaking Filter","component":"q","version":"develop","name":"peaking","url":"/q/develop/reference/biquad/peaking.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"21":{"id":21,"text":"The AGC, or automatic gain control, compares the envelope, env, to an external reference, ref, and increases or decreases the gain to maintain a constant output level. A class named agc implements AGC. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The agc is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. agc is a feedforward type AGC.\" In contrast to feedback AGCs, feedforward AGCs derive their control signal only from the input signal and an external reference set-point. #include struct agc { agc(decibel max); decibel operator()(decibel env, decibel ref) const; void max(decibel max_); decibel max() const; }; g, a, b Objects of type agc max, ref Objects of type decibel Expression Semantics agc(max) Construct an agc from max (maximum) gain. agc(g) Copy construct from agc g. a = b Assign b to a. C++ brace initialization may also be used. As previously stated, the agc compares the envelope, env, to an external reference, ref, and adjusts the gain accordingly to maintain a constant output level. However, there is a maximum gain that can be applied when the signal falls below the reference. The max constructor parameter specified this \"maximum\" gain. Expression Semantics Return Type g(env, ref) Process the input envelope env by increasing or decreasing the gain if env goes above, or falls below ref to maintain a constant output level. decibel The output is the adjusted gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(g(env, ref)); (1) auto out = signal * gain; (2) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by agc and converted to float. 2 The signal multiplied by gain. Expression Semantics Return Type g.max(max) Set the agc maximum gain. void Expression Semantics Return Type g.max() Get the agc maximum gain. float","title":"AGC","component":"q","version":"develop","name":"agc","url":"/q/develop/reference/dynamic/agc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"22":{"id":22,"text":"The compressor dynamically modulates the gain when the signal envelope rises above a specified threshold. The compressor reduces the level of high-level signals (signals above the threshold) while leaving low-level signals unchanged. The compressor is implemented by a class named compressor. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The compressor can be utilized as a limiter by setting its threshold to the desired limit level and the ratio to a high value (e.g. 10:1 or greater). The limiter prevents the signal from exceeding a certain threshold level. When the input signal exceeds the threshold, the compressor squashes the output level. For this to be effective, you will need to use an envelope follower with fast attack time to ensure that the limiting action is instantaneous, preventing transient peaks from exceeding the threshold level. The compressor is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. compressor is a hard knee compressor: a type of compressor in which the compression ratio changes abruptly when the input signal exceeds the threshold level, known as the knee point. Both hard knee and soft knee compressors are supported by the Q DSP library. #include struct compressor { compressor(decibel threshold, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void ratio(float ratio); decibel threshold() const; float ratio() const; }; comp, a, b Objects of type compressor t, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics compressor(t, r) Construct a compressor from t (threshold) and r (ratio). compressor(comp) Copy construct from compressor comp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"n:1\" notation for compressors, the ratio parameter is 1/n, thereby the ratio for compressors is normally from 0.0…​1.0. For example, a 4:1 compression is 1/4 or 0.25. Signal rising above the threshold is attenuated, compressing the signal. For every dB above the threshold, t, the signal is attenuated by n dB. For example, with a ratio of 4:1 (0.25), 1dB above the threshold is attenuated by 4dB. Expression Semantics Return Type comp(env) Process the input envelope env and return the compressed result. decibel The output is the compressed gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(comp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by comp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Typically, you add some makeup gain after compression to compensate for the gain reduction. Expression Semantics Return Type comp.threshold(t) Set the compressor threshold. void comp.ratio(r) Set the compressor ratio. void Expression Semantics Return Type comp.threshold() Get the compressor threshold. decibel comp.ratio() Get the compressor ratio. float","title":"Compressor","component":"q","version":"develop","name":"compressor","url":"/q/develop/reference/dynamic/compressor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"23":{"id":23,"text":"The expander is the inverse of the compressor. The expander dynamically modulates the gain when the signal falls below the threshold, attenuating the signal. The expander is used to increase the dynamic range of an audio signal by reducing the level of low-level signals (signals below the threshold) while leaving high-level signals unchanged, in contrast to a compressor, which reduces the level of high-level signals while leaving low-level signals unchanged. A certain type of expander, called the downward expander, is implemented by a class named expander. The expander can be utilized as a noise gate by setting the threshold to allow only audio signals above the noise floor to pass through. When the audio level falls below the threshold, the expander effectively gates out any low-level noise by reducing the audio signal level down to zero. The result can range from a hard and sudden cutoff to a soft and gradual reduction of signals below the threshold, depending on the desired ratio. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The expander is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. expander is a downward expander. This type of expander gradually decreases the level of the audio signal below the threshold. #include struct expander { expander(decibel threshold, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void ratio(float ratio); decibel threshold() const; float ratio() const; }; exp, a, b Objects of type expander t, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics expander(t, r) Construct a expander from t (threshold), w (width), and r (ratio). expander(exp) Copy construct from expander exp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"1:n\" notation for expanders, the ratio parameter is n, thereby the ratio for expanders is normally from 0.0…​inf. (e.g. 1:4 expansion is 4). A ratio of 1:inf is a hard gate where no signal passes below the threshold. For every dB below the threshold, the signal is attenuated by n dB. For example, with a ratio of 4:1 (4), 1dB below the threshold is attenuated by 4dB. Expression Semantics Return Type exp(env) Process the input envelope env and return the expanded result. decibel The output is the expanded gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(exp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by exp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Expression Semantics Return Type exp.threshold(t) Set the expander threshold. void exp.ratio(r) Set the expander ratio. void Expression Semantics Return Type exp.threshold() Get the expander threshold. decibel exp.ratio() Get the expander ratio. float","title":"Expander","component":"q","version":"develop","name":"expander","url":"/q/develop/reference/dynamic/expander.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"24":{"id":24,"text":"The compressor dynamically modulates the gain when the signal envelope rises above a specified threshold. The compressor reduces the level of high-level signals (signals above the threshold) while leaving low-level signals unchanged. A type of compressor known as the soft knee compressor is implemented by a class named soft_knee_compressor. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The soft_knee_compressor is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. soft_knee_compressor is a type of compressor that employs a gradual compression ratio transition. In a soft knee compressor, the compression ratio gradually increases as the input signal level approaches the threshold level, rather than immediately switching to the ratio at the threshold. This produces a smoother and more natural-sounding compression effect. Soft knee compressors are used when a transparent and subtle compression effect is desired. Both hard knee and soft knee compressors are supported by the Q DSP library. #include struct soft_knee_compressor { soft_knee_compressor(decibel threshold, decibel width, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void width(decibel val); void ratio(float ratio); decibel threshold() const; decibel width() const; float ratio() const; }; comp, a, b Objects of type soft_knee_compressor t, w, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics soft_knee_compressor(t, w, r) Construct a soft_knee_compressor from t (threshold), w (width), and r (ratio). soft_knee_compressor(comp) Copy construct from soft_knee_compressor comp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"n:1\" notation for compressors, the ratio parameter is 1/n, thereby the ratio for compressors is normally from 0.0…​1.0. For example, a 4:1 compression is 1/4 or 0.25. Signal rising above the threshold is attenuated, compressing the signal. For every dB above the threshold, t, the signal is attenuated by n dB. For example, with a ratio of 4:1 (0.25), 1dB above the threshold is attenuated by 4dB. Expression Semantics Return Type comp(env) Process the input envelope env and return the compressed result. decibel The output is the compressed gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(comp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by comp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Typically, you add some makeup gain after compression to compensate for the gain reduction. Expression Semantics Return Type comp.threshold(t) Set the soft_knee_compressor threshold. void comp.width(w) Set the soft_knee_compressor width. void comp.ratio(r) Set the soft_knee_compressor ratio. void Expression Semantics Return Type comp.threshold() Get the soft_knee_compressor threshold. decibel comp.width() Get the soft_knee_compressor width. decibel comp.ratio() Get the soft_knee_compressor ratio. float","title":"Soft Knee Compressor","component":"q","version":"develop","name":"soft_knee_compressor","url":"/q/develop/reference/dynamic/soft_knee_compressor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"25":{"id":25,"text":"AR Envelope Follower, where \"AR\" stands for Attack-Release, is similar to the Peak Envelope Follower but allows you to specify the attack duration. During the attack phase of an audio signal, the AR envelope follower attempts to follow the signal but is constrained by the attack duration. A longer attack period gives a softer response, exponentially increasing. When the signal level drops below the peak, the follower gradually releases the peak level with an exponential decay. The AR envelope follower models the behavior of two resistors, one for attack, and one for release, each connected in series with an ideal diode —with no voltage drop—, tied together and connected to a capacitor. During attacks, the capacitor charges through the attack resistor, exponentially increasing. The capacitor discharges through the release resistor as the audio signal falls below the peak charge, causing the output voltage to progressively decay with an exponential curve. Figure 1. AR envelope follower response The plot in Figure 1 depicts the response of the AR envelope follower, which was obtained by picking the guitar’s low-E string and using a 2-milliseconds attack duration and 2-second release duration (envelope: magenta, signal: blue, absolute value of the signal: dark blue). It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The AR envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. Like the Peak Envelope Follower, the AR Peak Detector is susceptible to having ripples in the envelope with the short release durations. See Envelope Ripples for details. #include struct ar_envelope_follower { ar_envelope_follower( duration attack , duration release , float sps ); float operator()(float s); float operator()() const; ar_envelope_follower& operator=(float y); void config(duration attack, duration release, float sps); void attack(float attack_, float sps); void release(float release_, float sps); }; env, a, b Objects of type ar_envelope_follower atk, rel Objects of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. y Floating point value from 0.0 to 1.0. Expression Semantics ar_envelope_follower(atk, rel, sps) Construct a ar_envelope_follower given atk (attack duration), rel (release duration) and sps (samples per second). ar_envelope_follower(env) Copy construct from ar_envelope_follower env. a = b Assign b to a. a = y Reset the latest held value of the ar_envelope_follower to y. C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the ar_envelope_follower float Expression Semantics Return Type env.config(atk, rel, sps) Set the attack duration given atk (attack duration), rel (release duration) and sps (samples per second). void env.attack(atk, sps) Set the attack duration given atk (attack duration) and sps (samples per second) void env.release(rel, sps) Set the release duration given rel (release duration) and sps (samples per second) void","title":"AR Envelope Follower","component":"q","version":"develop","name":"ar_envelope_follower","url":"/q/develop/reference/envelope/ar_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8},{"text":"Mutators","hash":"_mutators","id":9}]},"26":{"id":26,"text":"The Fast Averaging Envelope Follower is a variation of the Fast Envelope Follower. It is a simple composite class that contains a fast envelope follower member and a moving average filter member to smooth out the staircase ripples. One advantage of a moving average filter over a standard low-pass filter is that its output has less distortion of the envelope’s shape due to its linear phase response, which means it does not cause phase shifts, keeping the signal’s time-domain shape substantially intact. The plot in Figure 1 below shows the fast averaging envelope follower’s response (envelope: pink, signal: blue, absolute value of the signal: dark blue). Figure 1. Fast averaging envelope follower response The plot in Figure 2 below shows the plain and Fast averaging envelope follower’s response. The fast envelope follower’s staircase-like envelope is effectively smoothed out using a moving average filter with the same duration as the hold parameter. The moving average filter transforms the hard staircase edges into soft ramps. #include template struct basic_fast_ave_envelope_follower { basic_fast_ave_envelope_follower(duration hold, float sps); float operator()(float s); float operator()() const; }; using fast_ave_envelope_follower = basic_fast_ave_envelope_follower; basic_fast_ave_envelope_follower essentially follows the same API as Fast Envelope Follower. basic_fast_ave_envelope_follower is a template class parameterized by div, which must be >= 1. div specifies the minimum duration required for the hold parameter. The hold duration should be equal to or slightly longer than 1/div multiplied by the period of the lowest frequency of the signal we wish to track. For example, if the lowest frequency we wish to track is 440 Hz, and div = 2, then the hold parameter should be greater than 1.13 ms. fast_ave_envelope_follower is an alias for basic_fast_ave_envelope_follower. In general, this is all you need to use, unless you want finer granularity. The higher the div is, the finer the granularity possible. Again, all of these comes at the cost of additional computing complexity. env_t A basic_fast_ave_envelope_follower type. env, a, b Objects of type basic_fast_ave_envelope_follower hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_ave_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_ave_envelope_follower env. a = b Assign b to a. C++ brace initialization may also be used. env_t is just a shortcut notation for any type or alias to a template instantiation of basic_fast_ave_envelope_follower. Example: using my_env_t = basic_fast_ave_envelope_follower; Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_ave_envelope_follower float","title":"Fast Averaging Envelope Follower","component":"q","version":"develop","name":"fast_ave_envelope_follower","url":"/q/develop/reference/envelope/fast_ave_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8}]},"27":{"id":27,"text":"The Fast Envelope Follower is the software implementation of a unique envelope detector that feature fast response and low ripple. It is based on the hardware article titled Envelope Follower Combines Fast Response, Low Ripple by Harry Bissell Jr. See Figure 1 below. Basically, the result of the fast envelope follower is the maximum of N peak values taken simultaneously. Each value is the maximum of the current sample and the latest held peak value. Each of the peak values are reset to zero in a round-robin fashion. As a peak value is reset, the other peak values still hold the latest peak value. The highest peak among N peaks is then chosen as the current output. Figure 1. Fast Envelope Detector The plot in Figure 2 below shows the fast envelope follower’s response. As compared to the Peak Envelope Follower and AR Envelope Follower, the fast envelope follower’s superior performance is immediately apparent in the plot. Of course, this comes at the cost of additional computing complexity. Figure 2. Fast envelope follower response The reset cycle time is specified by the hold duration parameter. The number of peak values is specified by the div parameter. The plot was obtained by picking the guitar’s low-E string and using a hold duration of approximately 6 ms and with a div of 2 (envelope: red, signal: blue, absolute value of the signal: dark blue). See below for more information on the hold and div parameters. It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The fast envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. The output is a jagged, staircase-like envelope that tightly follows the input, including fast attacks and decays. Figure 3 below (envelope: red, signal: blue, absolute value of the signal: dark blue) is a closer view of Figure 2 above: Figure 3. Staircase-Like Output The output is suitable for signal analysis as is. If the signal is to be utilized for modulation, for example as input to a Compressor, further filtering is recommended. Fast Averaging Envelope Follower is one such example. Figure 4 demonstrates in closer detail the transient response of various envelope detectors, demonstrating how the fast envelope follower’s response closely follows the true envelope of the signal compared to the Peak Envelope Follower and AR Envelope Follower, both of which perform poorly on signal decays. Figure 4. Transient Response of Envelope Detectors #include template struct basic_fast_envelope_follower { static_assert(div >= 1, \"div must be >= 1\"); basic_fast_envelope_follower(duration hold, float sps); float operator()(float s); float operator()() const; }; using fast_envelope_follower = basic_fast_envelope_follower; basic_fast_envelope_follower is a template class parameterized by div, which must be >= 1. div specifies the minimum duration required for the hold parameter. The hold duration should be equal to or slightly longer than 1/div multiplied by the period of the lowest frequency of the signal we wish to track. For example, if the lowest frequency we wish to track is 440 Hz, and div = 2, then the hold parameter should be greater than 1.13 ms. fast_envelope_follower is an alias for basic_fast_envelope_follower. In general, this is all you need to use, unless you want finer granularity. The higher the div is, the finer the granularity possible. Again, all of these comes at the cost of additional computing complexity. env_t A basic_fast_envelope_follower type. env, a, b Objects of type basic_fast_envelope_follower hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_envelope_follower env. a = b Assign b to a. env_t is just a shortcut notation for any type or alias to a template instantiation of basic_fast_envelope_follower. Example: using my_env_t = basic_fast_envelope_follower; C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_envelope_follower float","title":"Fast Envelope Follower","component":"q","version":"develop","name":"fast_envelope_follower","url":"/q/develop/reference/envelope/fast_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Staircase Output","hash":"_staircase_output","id":3},{"text":"Transient Response","hash":"_transient_response","id":4},{"text":"Include","hash":"_include","id":5},{"text":"Declaration","hash":"_declaration","id":6},{"text":"Expressions","hash":"_expressions","id":7},{"text":"Notation","hash":"_notation","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Function Call","hash":"_function_call","id":10}]},"28":{"id":28,"text":"The Fast RMS Envelope Follower is a variation of the Fast Envelope Follower. It is a simple composite class that contains a Fast Averaging Envelope Follower member. The signal path is as follows: Square the signal. Apply the fast averaging envelope follower. The moving average filter in the fast averaging envelope follower returns the arithmetic mean of the squared values over its hold period. Return the square root the result. This is embodied in the fast_rms_envelope_follower class. Following the fast envelope follower API, the function call operator accepts a floating point sample, transforms it, and returns an envelope, also a floating point. The fast_rms_envelope_follower_db variant works in the dB domain, making it easy to use as an envelope follower for dynamic range effects (compressor, expander, and agc) that already work in the dB domain, so we eliminate a linear to decibel conversion and optimize computation by using division by 2 instead of sqrt as an added bonus. The plot in Figure 1 below shows the fast RMS envelope follower’s response (envelope: green, signal: blue, absolute value of the signal: dark blue). It may look indistinguishable from the Fast Averaging Envelope Follower's output, but this detector returns true RMS results. Figure 1. Fast RMS envelope follower response #include struct fast_rms_envelope_follower { fast_rms_envelope_follower(duration hold, float sps); float operator()(float s); }; struct fast_rms_envelope_follower_db : fast_rms_envelope_follower { using fast_rms_envelope_follower::fast_rms_envelope_follower; decibel operator()(float s); }; fast_rms_envelope_follower essentially follows the same API as Fast Envelope Follower. The fast_rms_envelope_follower_db variant works in the dB domain and returns decibel instead of float. env_t A fast_rms_envelope_follower or fast_rms_envelope_follower_db. env, a, b Objects of type fast_rms_envelope_follower or fast_rms_envelope_follower_db. hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_ave_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_ave_envelope_follower env. a = b Assign b to a. C++ brace initialization may also be used. env_t is just a shortcut notation for any type or alias to a template instantiation of fast_rms_envelope_follower or fast_rms_envelope_follower_db. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_ave_envelope_follower float","title":"Fast RMS Envelope Follower","component":"q","version":"develop","name":"fast_rms_envelope_follower","url":"/q/develop/reference/envelope/fast_rms_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8}]},"29":{"id":29,"text":"During the attack phase of an audio signal, the peak envelope follower closely tracks the maximum peak level. When the signal level drops below the peak, the follower gradually releases the peak level with an exponential decay. This allows the follower to accurately capture the dynamic changes in the audio signal while avoiding sudden downward fluctuations. The peak envelope follower models the behavior of an ideal diode —with no voltage drop— connected in series with a resistor and a capacitor connected in parallel. The ideal diode allows the positive peaks of the audio signal to pass through, charging the capacitor to the maximum. When the signal falls below the peak, the capacitor discharges through the resistor, causing the output voltage to gradually decay with an exponential curve, following the release time constant. Figure 1. Peak envelope follower response The plot in Figure 1 depicts the response of the peak envelope follower, which was obtained by picking the guitar’s low-E string and using a 2-second release duration (envelope: orange, signal: blue, absolute value of the signal: dark blue). It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The peak envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. The peak envelope follower can track fast attack transients, but cannot track downward slopes faster than the specified release duration. However, reducing the release duration too much can reveal envelope ripples. When the release duration is too fast, the peak envelope follower quickly releases the previous cycle’s peak and begins tracking the peak of the next cycle, causing ripples in the envelope follower’s output, as shown in the image on the right. Such ripples can cause unwanted modulation and can be heard as distortion or noise in the audio signal. Further low-pass filtering can reduce the ripples at the expense of smearing the attack shape. #include struct peak_envelope_follower { peak_envelope_follower(duration release, float sps); float operator()(float s); float operator()() const; peak_envelope_follower& operator=(float y); void release(duration release_, float sps); }; env, a, b Objects of type peak_envelope_follower rel Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. y Floating point value from 0.0 to 1.0. Expression Semantics peak_envelope_follower(rel, sps) Construct a peak_envelope_follower given rel (release duration) and sps (samples per second). peak_envelope_follower(env) Copy construct from peak_envelope_follower env. a = b Assign b to a. a = y Reset the latest held value of the peak_envelope_follower to y. C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the peak_envelope_follower float Expression Semantics Return Type env.release(rel, sps) Set the release duration given rel (release duration) and sps (samples per second) void","title":"Peak Envelope Follower","component":"q","version":"develop","name":"peak_envelope_follower","url":"/q/develop/reference/envelope/peak_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Envelope Ripples","hash":"_envelope_ripples","id":3},{"text":"Include","hash":"_include","id":4},{"text":"Declaration","hash":"_declaration","id":5},{"text":"Expressions","hash":"_expressions","id":6},{"text":"Notation","hash":"_notation","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Function Call","hash":"_function_call","id":9},{"text":"Mutators","hash":"_mutators","id":10}]},"30":{"id":30,"text":"A DC blocker is a high-pass filter which attenuates frequencies below the signal’s lowest frequency of interest. Eliminating the DC offset from a signal allows the signal to be analyzed or processed more effectively in subsequent stages. dc_block is an implementation of a DC blocker based on Julius O. Smith’s document Introduction to Digital Filters. #include struct dc_block { dc_block(frequency f, float sps); float operator()(float s); float operator()() const; dc_block& operator=(float y); void cutoff(frequency f, float sps); }; bk, a, b Objects of type dc_block. f Object of type frequency representing the cutoff frequency. sps Floating point value representing samples per second. s Input sample. Expression Semantics dc_block(f, sps) Construct a dc_block with specified cutoff frequency, f, and samples per second sps. dc_block(b) Copy construct a dc_block from b. a = b Assign b to a. a = s Set the latest result to s. C++ brace initialization may also be used. Expression Semantics Return Type bk() Return the latest result. float bk(s) Remove DC from the input sample s. float Expression Semantics Return Type bk.cutoff(f, sps) Set the cutoff frequency given frequency f, and samples per second sps. void","title":"DC Block","component":"q","version":"develop","name":"dc_block","url":"/q/develop/reference/misc/dc_block.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"31":{"id":31,"text":"Delays are important DSP building blocks. They introduce repetitions of the original signal, resulting in spacious soundscapes and echoes. The number of repetitions is controlled via feedback. The interval between the initial signal and the repetitions is altered by adjusting the delay time. Longer durations provide echoes, whereas shorter delays produce doubling effects. Filters can shape the repeating signals, influencing their tonal properties. Delays are also essential for modulation effects such as flangers and choruses, which are created by dynamically modulating delay times using low-frequency oscillators (LFOs). basic_delay is a basic class for delays. The actual delay duration parameter is decoupled from, and managed outside the class to allow both single and multi-tapped delays. The delay is implemented using a base ring buffer with provisions for non-fractional (exact) and fractional (sub-sample) indexing. Fractional element indexing is required for fractional delays that are not integer multiples of the sampling period. Figure 1. Delay Line basic_delay is a template class whose Base template parameter should be the ring buffer storage type it inherits from. See ring_buffer and fractional_ring_buffer. #include template class basic_delay : public Base { public: using value_type = typename Base::value_type; using storage_type = typename Base::storage_type; using index_type = typename Base::index_type; using interpolation_type = typename Base::interpolation_type; basic_delay(duration max_delay, float sps); float operator()() const; float operator()(index_type i) const; float operator()(value_type val, index_type i); }; // Fractional delay using delay = basic_delay>; // Non-fractional delay using nf_delay = basic_delay>; In addition to valid expressions for the Base class that the basic_delay inherits from (See ring_buffer and fractional_ring_buffer), basic_delay allows these expressions. Base Ring buffer storage type, e.g. ring_buffer. d_type A basic_delay type. d, a, b Objects of type basic_delay. val Object of type d_type::value_type. i Object of type d_type::index_type. max_delay Object of type duration. sps Floating point value representing samples per second. Expression Semantics basic_delay Instantiate a basic_delay type given Base ring buffer storage type. delay Pre declared fractional delay type. nf_delay Pre declared Non-fractional delay type. using my_delay_type1 = basic_delay>; using my_delay_type2 = delay; Expression Semantics d_type::value_type Get the underlying element type. d_type::storage_type Get the underlying storage type. d_type::index_type Get the underlying index type. d_type::interpolation_type Get the underlying interpolation type. Expression Semantics d_type(max_delay, sps) Construct a basic_delay with maximum duration, max_delay and samples per second, sps. d_type(d) Copy construct from d_type d. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type d() Get the delayed signal (maximum delay). d_type::value_type d(i) Get the delayed signal at index i. d_type::value_type d(val, i) Push a new signal and return the delayed signal at index i+1. This is the simplest (common) case for single delays. For multi-tapped delays, you need to access the individual delays using the indexing operator for various tap-points before pushing the latest sample. d_type::value_type","title":"Delay","component":"q","version":"develop","name":"delay","url":"/q/develop/reference/misc/delay.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Function Call","hash":"_function_call","id":10}]},"32":{"id":32,"text":"The moving_average is the simplest and most efficient FIR filter. It is also the most common filter in DSP primarily due to its simplicity. But while it is technically a low pass FIR filter, it performs poorly in the frequency domain with very slow roll-off and dreadful stopband attenuation. On the other hand, it performs admirably in the time domain. The moving average filter is optimal in reducing random noise while retaining a sharp step response. Averaging N samples (the moving average window size) increases the SNR by the square root of N. For example, N=16 improves SNR by 4 (12dB). The filter delay is exactly (N−1)/2. Figure 1. Moving Average When data is pushed into a moving average, the element indices are shifted by one position to accommodate the incoming data. This logical shifting ensures that the newest data is stored in the first index (index 0), while the oldest data is pushed out of the buffer. The physical location of data does not actually change, only the indices. The data type, T, is a template parameter, allowing both floating point as well as integer computations. Integers are typically faster than floating point and are not prone to round-off errors. moving_average is a subclass of the moving_sum. #include template struct basic_moving_average : basic_moving_sum { using basic_moving_sum::basic_moving_sum; using value_type = T; T operator()(T s); T operator()() const; }; using moving_average = basic_moving_average; As a subclass of Moving Sum, moving_average inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for Moving Sum, moving_average allows these expressions. T Element type, e.g. float. ma Object of type basic_moving_average. s Object of type ma_type::value_type. Expression Semantics basic_moving_average Instantiate a basic_moving_average type given T, the element type, e.g. float. moving_average Pre declared basic_moving_average type. Expression Semantics Return Type ma() Return the current average. ma_type::value_type ma(s) Add a new sample and calculate the current average. ma_type::value_type","title":"Moving Average","component":"q","version":"develop","name":"moving_average","url":"/q/develop/reference/misc/moving_average.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Function Call","hash":"_function_call","id":7}]},"33":{"id":33,"text":"The moving sum involves adding a specified number of values in a sequence of data points —the moving sum window. The window moves through the data one point at a time as new samples arrive, and at each step, the sum of the data points within the window is calculated. Instead of calculating the sum of all elements in the window each time, an efficient scheme keeps a continuous total and subtracts the last element that will fall off the window when a new sample arrives. Figure 1. Moving Sum When data is pushed into a moving sum, the element indices are shifted by one position to accommodate the incoming data. This logical shifting ensures that the newest data is stored in the first index (index 0), while the oldest data is pushed out of the buffer. The physical location of data does not actually change, only the indices. basic_moving_sum is a template class representing moving sums with provision for specifying the element type, T. Integers are typically faster than floating point and are not prone to round-off errors. It is implemented internally using a ring buffer. Refer to ring_buffer. #include template struct basic_moving_sum { using value_type = T; basic_moving_sum(std::size_t max_size); basic_moving_sum(duration d, float sps); value_type operator()(value_type s); value_type operator()() const; value_type sum() const; std::size_t size() const; void resize(std::size_t size, bool update = false); void resize(duration d, float sps, bool update = false); void clear(); void fill(T val); }; using moving_sum = basic_moving_sum; T Element type, e.g. float. ms_type A basic_moving_sum type. ms, a, b Objects of type basic_moving_sum. s, val Objects of type ms_type::value_type. size Object of type std::size_t. d Object of type duration. sps Floating point value representing samples per second. a [, b, c, d] Required a, optional b, c, d. Expression Semantics basic_moving_sum Instantiate a basic_moving_sum type given T, the element type, e.g. float. moving_sum Pre declared basic_moving_sum type. Expression Semantics ms_type::value_type Get the underlying element type. Expression Semantics ms_type(size) Construct a basic_moving_sum with specified window size in samples. ms_type(d, sps) Construct a basic_moving_sum with window size specified by d and sps (duration and sample rate). ms_type(ms) Copy construct from ms_type ms. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type ms() Return the current sum. ms_type::value_type ms(s) Add a new sample and calculate the current sum. ms_type::value_type Expression Semantics Return Type ms.sum() Return the current sum. ms_type::value_type ms.size() Return the window size (in samples). std::size_t Expression Semantics ms.resize(size [, update]) Resize the moving sum window to the number of samples specified by the 'size' parameter. If update=true, the sum is recalculated. if update=false, the contents are cleared. Default: update=false. ms.resize(d, sps [, update]) Resize the moving sum with window size specified by d and sps (duration and sample rate). If update=true, the sum is recalculated. if update=false, the contents are cleared. Default: update=false. ms.clear() Clear the moving window to zero. ms.fill(val) Fill the moving window with val, and update the sum accordingly. basic_moving_sum can be resized as long as the new size does not exceed the original size (at construction time). When resizing with update=true, when downsizing, the oldest elements are subtracted from the sum. When upsizing, the older elements are added to the sum, otherwise, if update=false, the contents are cleared.","title":"Moving Sum","component":"q","version":"develop","name":"moving_sum","url":"/q/develop/reference/misc/moving_sum.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Type Accessors","hash":"_type_accessors","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Function Call","hash":"_function_call","id":9},{"text":"Accessors","hash":"_accessors","id":10},{"text":"Mutators","hash":"_mutators","id":11}]},"34":{"id":34,"text":"A noise gate is an audio tool that reduces unwanted noise by muting or attenuating signals below specified thresholds. It is typically used to eliminate background noise or hum. The noise_gate class implements a Q-flavored noise gate processor following Q’s Dynamic processor design. Unlike typical noise gates, noise_gate has no parameters for attack and release and does not process audio waveform samples directly. Instead, it operates on the envelope of the audio signal. The objective is separation of concerns and the flexibility to use various envelope followers. There are two thresholds. On onsets, the noise_gate opens up if the signal envelope goes above the specified onset threshold. On note release, the noise_gate turns off if the signal goes below a specified release threshold. #include struct noise_gate { noise_gate(decibel onset_threshold, decibel release_threshold); noise_gate(decibel release_threshold); bool operator()(float env); bool operator()() const; void onset_threshold(decibel onset_threshold); void onset_threshold(float onset_threshold); void release_threshold(decibel release_threshold); void release_threshold(float release_threshold); float onset_threshold() const; float release_threshold() const; }; g, a, b Objects of type noise_gate. env Floating point value for the current envelope value. ot, rt Object of type decibel representing onset and release thresholds, respectively. Expression Semantics noise_gate(rt) Construct a noise_gate with specified release threshold, rt. noise_gate(ot, rt) Construct a noise_gate with specified onset threshold, ot and release threshold, rt. noise_gate(b) Copy construct a noise_gate from b. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type g() Get the current state. bool g(env) Process the input envelope env, compute and return the state. bool The noise_gate state is a boolean flag that is true if the noise_gate is open or false if the noise_gate is closed. Expression Semantics Return Type g.onset_threshold(ot) Set the noise_gate onset threshold. void g.release_threshold(rt) Set the noise_gate release threshold. void Expression Semantics Return Type g.onset_threshold() Get the noise_gate onset threshold. decibel g.release_threshold() Get the noise_gate release threshold. decibel","title":"Noise Gate","component":"q","version":"develop","name":"noise_gate","url":"/q/develop/reference/misc/noise_gate.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"35":{"id":35,"text":"Basic one pole low-pass filter serves as an important building block due to its utility in a vast number of applications including noise reduction, signal smoothing, and extracting relevant information from a signal. The 6dB/octave slope of the single pole filter is suitable for many non-critical use-cases and its simplicity makes it computationally efficient. #include struct one_pole_lowpass { one_pole_lowpass(frequency f, float sps); float operator()(float s); float operator()() const; one_pole_lowpass& operator=(bool y); void cutoff(frequency f, float sps); }; lp, a, b Objects of type one_pole_lowpass. f Object of type frequency representing the cutoff frequency. sps Floating point value representing samples per second. s Input sample. Expression Semantics one_pole_lowpass(f, sps) Construct a one_pole_lowpass with specified cutoff frequency, f, and samples per second sps. one_pole_lowpass(b) Copy construct a one_pole_lowpass from b. a = b Assign b to a. a = s Set the latest result to s. C++ brace initialization may also be used. Expression Semantics Return Type lp() Return the latest result. float lp(s) process the input sample, s. float Expression Semantics Return Type lp.cutoff(f, sps) Set the cutoff frequency given frequency f, and samples per second sps. void","title":"One Pole Low Pass","component":"q","version":"develop","name":"one_pole_lowpass","url":"/q/develop/reference/misc/one_pole_lowpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"36":{"id":36,"text":"onset_gate is a specialization of noise_gate with provision for gating out slow attacks. The constructor parameters attack_width and sps specify the slope’s delta time. The envelope’s slope must exceed the required onset threshold. This prevents slow moving signals to pass as valid onsets. For example, given an attack width of 500 µs and an onset threshold of -30 dB, the difference in amplitude over a period of 500 µs must exceed -30 dB to pass as a valid onset. #include struct onset_gate : noise_gate { onset_gate( decibel onset_threshold , decibel release_threshold , duration attack_width , float sps ); using noise_gate::operator(); bool operator()(float env); }; As a subclass of noise_gate, onset_gate inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for noise_gate, onset_gate allows these expressions. ot, rt Object of type decibel representing onset and release thresholds, respectively. aw Object of type duration representing attack width. sps Floating point value representing samples per second. Expression Semantics onset_gate(ot, rt, aw, sps) Construct an onset_gate with specified onset threshold, ot release threshold, rt, attack width, aw, and samples per second sps. C++ brace initialization may also be used.","title":"Onset Gate","component":"q","version":"develop","name":"onset_gate","url":"/q/develop/reference/misc/onset_gate.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6}]},"37":{"id":37,"text":"audio_device represents individual audio interfaces on the host platform. There are typically one or more audio devices available. Each device has a name, device identifier, and specific capabilities, including sample rate and the number of input and output channels supported. #include class audio_device { public: using device_list = std::vector; static device_list list(); static audio_device get(int device_id); int id() const; std::string name() const; std::size_t input_channels() const; std::size_t output_channels() const; double default_sample_rate() const; }; a, b Objects of type audio_device. ad Object of type audio_device. id A unique audio device ID (integer). Expression Semantics audio_device(b) Copy construct from audio_device b. a = b Assign b to a. There are no public constructors. Instead, see list() and get(id) below. `audio_device`s are lightweight handles that can be cheaply passed by value. Expression Semantics Return Type audio_device::list() Get the list of available audio devices. std::vector audio_device::get(id) Get the audio device with the given ID. audio_device To get an audio_device, first get list of currently available audio devices via audio_device::list(), then choose, or let the user choose, the one suitable for your needs. Alternatively, if you know the unique audio_device ID, you can use audio_device::get(id) to obtain a specific audio_device. Expression Semantics Return Type ad.id() Get the unique ID. int ad.name() Get the unique name. std::string ad.input_channels() Get the maximum number of input channels. std::size_t ad.output_channels() Get the maximum number of output channels. std::size_t ad.default_sample_rate() Get the default sample rate. double List all available audio devices: #include #include #include namespace q = cycfi::q; int main() { std::cout << \"Available Audio Devices: \" << std::endl; for (auto const& device : q::audio_device::list()) { std::cout << \"id: \" << device.id() << std:: endl << \"name: \\\"\" << device.name() << '\"' << std:: endl << \"number of input channels: \" << device.input_channels() << std:: endl << \"number of output channels: \" << device.output_channels() << std:: endl ; } return 0; }","title":"audio_device","component":"q","version":"develop","name":"audio_device","url":"/q/develop/reference/q_io/audio_device.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Instantiation","hash":"_instantiation","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"Example","hash":"_example","id":9}]},"38":{"id":38,"text":"audio_file is a set of small and lightweight classes for reading and writing WAV (Waveform Audio File Format) files. It offers a straightforward and intuitive interface for working with WAV audio data. This includes: wav_reader For reading WAV files. wav_writer For writing WAV files. #include wav_base is the base class with common functionalities for wav_reader and wav_writer. class wav_base { public: wav_base(); wav_base(wav_base const&) = delete; ~wav_base(); wav_base& operator=(wav_base const&) = delete; explicit operator bool() const; std::size_t sps() const; std::size_t num_channels() const; }; w Object of wav_base. Expression Semantics wav_base() Default construct a wav_base. wav_base is non-copyable. C++ brace initialization may also be used. Expression Semantics Return Type bool(w) Evaluates to true if wav_base is valid. Operations must only be performed on valid wav_base objects. bool w.sps() Get the WAV file’s sampling rate. float w.num_channels() Get the number of channels in the WAV file. std::size_t wav_reader is a class for reading WAV files with the typical read-only input mechanisms, such as incrementally reading a chunk of audio data from a position starting at the beginning of the file, and being able to move a certain position in the file. class wav_reader : public wav_base { public: wav_reader(std::string filepath); wav_reader(char const* filepath); std::uint64_t length() const; std::uint64_t position(); bool restart(); bool seek(std::uint64_t target); std::size_t read(float* data, std::uint32_t len); std::size_t read(concepts::IndexableContainer auto& buffer); }; The IndexableContainer concept is declared in Basic Concepts. wav_reader is derived from wav_base. In addition to valid expressions for wav_base, wav_reader allows these expressions. r Object of type wav_reader. f Object of type convertible to std::string or char const* representing a file path. d Pointer to a buffer of float elements with size len. s Size buffer of d. b Object of type that conforms to the IndexableContainer concept. p Position in the wav file (std::uint64_t). Expression Semantics wav_reader(f) Construct a wav_reader given a file path. C++ brace initialization may also be used. Expression Semantics Return Type r.restart() Reset the read position to the start. Returns false if r is not valid. bool r.seek(p) Set the read position to the p. Returns false if r is not valid. bool r.read(d, s) Read a chunk of data given a raw buffer, float*, d, with size s. Returns the actual size read. std::size_t. r.read(b) Read a chunk of data given a buffer, b. Returns the actual size read. std::size_t. Expression Semantics Return Type r.length() Get the length of the WAV file. std::uint64_t. r.position() Get the current read position. std::uint64_t. wav_writer is a class for writing WAV files with the typical write-only output mechanisms, such as incrementally writing a chunk of audio data from a position starting at the beginning of the file. wav_writer writes WAV files with one or more channels and 32-bit floating point samples. class wav_writer : public wav_base { public: wav_writer( std::string filename , std::uint32_t num_channels, float sps); wav_writer( char const* filename , std::uint32_t num_channels, float sps); std::size_t write(float const* data, std::uint32_t len); std::size_t write(concepts::IndexableContainer auto const& buffer); }; The IndexableContainer concept is declared in Basic Concepts. wav_writer is derived from wav_base. In addition to valid expressions for wav_base, wav_writer allows these expressions. w Object of type wav_writer. f Object of type convertible to std::string or char const* representing a file path. d Pointer to a buffer of float elements with size len. s Size buffer of d. b Object of type that conforms to the IndexableContainer concept. ch Integer value representing number of channels. sps Floating point value representing samples per second. Expression Semantics wav_writer(f, ch, sps) Construct a wav_writer given a file path, f, number of channels, ch, and sampling rate, sps. Expression Semantics Return Type w.write(d, s) Write a chunk of data given a raw buffer, float*, d, with size s. Returns the actual size written. std::size_t. w.write(b) Write a chunk of data given a buffer, b. Returns the actual size written. std::size_t.","title":"audio_file","component":"q","version":"develop","name":"audio_file","url":"/q/develop/reference/q_io/audio_file.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"wav_base","hash":"_wav_base","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"wav_reader","hash":"_wav_reader","id":9},{"text":"Declaration","hash":"_declaration_2","id":10},{"text":"Expressions","hash":"_expressions_2","id":11},{"text":"Notation","hash":"_notation_2","id":12},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_2","id":13},{"text":"Mutators","hash":"_mutators","id":14},{"text":"Accessors","hash":"_accessors_2","id":15},{"text":"wav_writer","hash":"_wav_writer","id":16},{"text":"Declaration","hash":"_declaration_3","id":17},{"text":"Expressions","hash":"_expressions_3","id":18},{"text":"Notation","hash":"_notation_3","id":19},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_3","id":20},{"text":"Mutators","hash":"_mutators_2","id":21}]},"39":{"id":39,"text":"audio_stream is a subclass of audio_stream_base. It is responsible for setting up multichannel input and output buffers and presenting them to the user’s processing function, which is called at regular intervals at 1/Nth of the sampling frequency, where N is the size of the buffer. #include class audio_stream : public audio_stream_base { public: audio_stream( std::size_t input_channels , std::size_t output_channels , double sps = -1 , int frames = -1 ); audio_stream( audio_device const& device , std::size_t input_channels , std::size_t output_channels , double sps = -1 , int frames = -1 ); virtual ~audio_stream(); void start(); void stop(); bool is_valid() const; duration time() const; double cpu_load() const; char const* error() const; duration input_latency() const; duration output_latency() const; double sampling_rate() const; std::size_t input_channels() const; std::size_t output_channels() const; }; As a subclass of audio_stream_base, audio_stream inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for audio_stream_base, audio_stream allows these expressions. as Object of type audio_stream. ad Object of type audio_device. ic Number of input channels. oc Number of output channels. sps Floating point value for the desired sample rate. A value of -1, the default, indicates a request to use the device’s default sampling rate. fr Number of frames --the buffer size per channel. A value of -1, the default, indicates a request for the optimal (and possibly varying) number of frames. Expression Semantics audio_stream(ic, oc, sps, fr) Construct an audio_stream using the default audio_device, given the number of input and output channels, ic and oc, optional sample rate, sps, and optional number of frames, fr. audio_stream(ad, ic, oc, sps, fr) Construct an audio_stream using the the audio_device, ad, given the number of input and output channels, ic and oc, optional sample rate, sps, and optional number of frames, fr. Take note that audio_stream_base is non-copyable, and therefore audio_stream is also non-copyable. Expression Semantics Return Type as.is_valid() Check if the audio_stream is valid. Do this before any operation on the audio_stream. Any operation on an invalid stream is undefined behavior. bool as.time() Get stream’s current time in seconds. The time values are monotonically increasing with an unspecified origin. Starting and stopping the stream does not affect the passage of time. duration as.cpu_load() Get stream’s CPU load: A floating point value, typically between 0.0 and 1.0, where 1.0 indicates that the stream is consuming the maximum number of CPU cycles possible to maintain real-time operation. double as.error() On as.is_valid() == false, this function returns a human readable error message stating the reason why an audio_stream cannot be opened. char const* as.input_latency() Get the input latency. duration as.output_latency() Get the output latency. duration as.input_channels() Get the number of input channels. std::size_t as.output_channels() Get the number of output channels. std::size_t as.default_sample_rate() Get the sampling rate. double Expression Semantics as.start() Start the audio_stream. as.stop() Stop the audio_stream. Make a delay processor with 1 input channel (mono) and two output channels (stereo). Route the mono input to both the left and right output channels. struct my_processor : q::audio_stream (1) { my_processor() : audio_stream(1, 2) (2) {} void process(in_channels const& in, out_channels const& out) (3) { auto left = out[0]; auto right = out[1]; auto mono_in = in[0]; for (auto frame : out.frames) { // Get the next input sample auto s = mono_in[frame]; // Output left[frame] = s; right[frame] = s; } } }; 1 Here we declare my_processor. A user-defined class derived from audio_stream. 2 Construct the base audio_stream with 1 input channel (mono) and two output channels (stereo) using the default audio device. 3 Implement the process member function. See Audio Stream Client Interface for more info.","title":"audio_stream","component":"q","version":"develop","name":"audio_stream","url":"/q/develop/reference/q_io/audio_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Accessors","hash":"_accessors","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Example","hash":"_example","id":9}]},"40":{"id":40,"text":"midi_device is an abstraction which encapsulates the properties and functionality of a MIDI interface. Each MIDI device includes information such as its name, device identifier, and the number of inputs and outputs available. #include class midi_device { public: using device_list = std::vector; static device_list list(); std::uint32_t id() const; std::string name() const; std::size_t num_inputs() const; std::size_t num_outputs() const; }; a, b Objects of type midi_device. md Object of type midi_device. id A unique audio device ID integer. Expression Semantics midi_device(b) Copy construct from midi_device b. a = b Assign b to a. There are no public constructors. Instead, see list() and get(id) below. midi_device(s) are lightweight handles that can be cheaply passed by value. Expression Semantics Return Type midi_device::list() Get the list of available MIDI devices. std::vector To get a midi_device, first get list of currently available MIDI devices via midi_device::list(), then choose, or let the user choose, the one suitable for your needs. Expression Semantics Return Type md.id() Get the unique ID. int md.name() Get the unique name. std::string md.num_inputs() Get the number of MIDI inputs. std::size_t md.num_outputs() Get the number of MIDI outputs. std::size_t List all available MIDI devices: #include #include #include namespace q = cycfi::q; int main() { std::cout << \"Available MIDI Devices: \" << std::endl; for (auto const& device : q::midi_device::list()) { std::cout << \"id: \" << device.id() << std:: endl << \"name: \\\"\" << device.name() << '\"' << std:: endl << \"number of inputs: \" << device.num_inputs() << std:: endl << \"number of outputs: \" << device.num_outputs() << std:: endl ; } return 0; }","title":"midi_device","component":"q","version":"develop","name":"midi_device","url":"/q/develop/reference/q_io/midi_device.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Instantiation","hash":"_instantiation","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"Example","hash":"_example","id":9}]},"41":{"id":41,"text":"The midi_input_stream class facilitates MIDI communication and data transmission of MIDI messages between a MIDI device and an application. midi_input_stream dispatches MIDI messages to a MIDI processor: a user-defined construct that follows a specific C++ concept for receiving and interpreting MIDI messages. The MIDI processor acts as an intermediary between MIDI devices and the application. Its purpose is to receive incoming MIDI messages, analyze their content, and extract relevant information. This may include extracting note data, control change values, program change commands, or any other MIDI message content that is of interest to the user. See MIDI Processor #include class midi_input_stream : non_copyable { public: midi_input_stream(); midi_input_stream(midi_device const& device); ~midi_input_stream(); bool is_valid() const; template requires concepts::midi_1_0::Processor void process(Processor&& proc); static void set_default_device(int id); }; ms Object of type midi_input_stream. md Object of type midi_device. id A unique MIDI device ID (integer). proc Object that conforms to the MIDI Processor concept. Expression Semantics midi_input_stream() Construct a default midi_input_stream. See set_default_device below. midi_input_stream(md) Construct a midi_input_stream using the the midi_device, md. Take note that midi_input_stream is non-copyable. Expression Semantics set_default_device(id) Set the default midi_device used by the default constructor above to the midi_device with the given ID. Once set, the default midi_input_stream constructor will use this midi_device. Expression Semantics Return Type ms.is_valid() Check if the midi_input_stream is valid. Do this before any operation on the midi_input_stream. Any operation on an invalid stream is undefined behavior. bool Expression Semantics ms.process(proc) Process incoming MIDI messages, given a user provided MIDI processor proc. Call this function in a loop while to process incoming MIDI messages. This function blocks. It is advisable to place this processing loop in a separate thread. Monitor incoming MIDI messages: q::midi_input_stream stream; (1) if (stream.is_valid()) (2) { while (true) (3) stream.process(midi_processor{}); (4) } 1 Instantiate a default MIDI stream. 2 Check if the MIDI stream is valid. 3 Infinite loop, processing incoming MIDI messages from the stream. 4 midi_processor is a user defined struct implemented below. struct midi_processor : midi::processor { using midi::processor::operator(); void operator()(midi::note_on msg, std::size_t time) { std::cout << \"Note On {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Velocity: \" << int(msg.velocity()) << '}' << std::endl; } void operator()(midi::note_off msg, std::size_t time) { std::cout << \"Note Off {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Velocity: \" << int(msg.velocity()) << '}' << std::endl; } void operator()(midi::poly_aftertouch msg, std::size_t time) { std::cout << \"Polyphonic Aftertouch {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Pressure: \" << int(msg.pressure()) << '}' << std::endl; } void operator()(midi::control_change msg, std::size_t time) { std::cout << \"Control Change {\" << \"Channel: \" << int(msg.channel()) << \", Controller: \" << int(msg.controller()) << \", Value: \" << int(msg.value()) << '}' << std::endl; } void operator()(midi::program_change msg, std::size_t time) { std::cout << \"Program Change {\" << \"Channel: \" << int(msg.channel()) << \", Preset: \" << int(msg.preset()) << '}' << std::endl; } void operator()(midi::channel_aftertouch msg, std::size_t time) { std::cout << \"Channel Aftertouch {\" << \"Channel: \" << int(msg.channel()) << \", Pressure: \" << int(msg.pressure()) << '}' << std::endl; } void operator()(midi::pitch_bend msg, std::size_t time) { std::cout << \"Pitch Bend {\" << \"Channel: \" << int(msg.channel()) << \", Value: \" << int(msg.value()) << '}' << std::endl; } };","title":"midi_input_stream","component":"q","version":"develop","name":"midi_stream","url":"/q/develop/reference/q_io/midi_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Default MIDI device","hash":"_default_midi_device","id":7},{"text":"Accessor","hash":"_accessor","id":8},{"text":"Process MIDI","hash":"_process_midi","id":9},{"text":"Example","hash":"_example","id":10}]},"42":{"id":42,"text":"Read Multi Buffer first for prerequisite information. audio_stream_base is the abstract base class and highest-level interface for audio processing. It is responsible for setting up multichannel input and output buffers and presenting them to the user’s processing function, which is called at regular intervals at 1/Nth of the sampling frequency, where N is the size of the buffer. #include class audio_stream_base : non_copyable { public: using in_channels = multi_buffer; using out_channels = multi_buffer; audio_stream_base() {} virtual ~audio_stream_base() = default; virtual void process(in_channels const& in) {} virtual void process(out_channels const& out) {} virtual void process(in_channels const& in, out_channels const& out) {} }; The audio_stream_base is an abstract base class not meant to be directly instantiated. Audio I/O systems are responsible for providing concrete subclasses of audio_stream_base for the client’s use. The client writes a class derived from one of these, and overrides one of the three process member functions depending on the I/O configuration and purpose. process(in_channels const& in); Audio input only. Examples: VU Meter, Spectrum Analyzer. process(out_channels const& out); Audio output only. Example: Synthesizers. process(in_channels const& in, out_channels const& out); Audio input and output. Example: Effects processors.","title":"Audio Stream","component":"q","version":"develop","name":"audio_stream","url":"/q/develop/reference/support/audio_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Client Interface","hash":"_client_interface","id":4}]},"43":{"id":43,"text":"Here are the basic C++ concepts used by the Q DSP library. #include The Arithmetic concept is a model of the std::integral OR the std::floating_point concept. namespace cycfi::q::concepts { template concept Arithmetic = std::integral || std::floating_point; } IndexableContainer is a concept that represents an indexable data type. Essentially, it must be indexable using the indexing subscript operator [] with a subscript convertable from std::size_t, and has a size() member function that returns the size of the Container or View being indexed. namespace cycfi::q::concepts { template concept IndexableContainer = requires(T& x, std::size_t i) { { x[i] } -> std::convertible_to; { x.size() } -> std::convertible_to; }; } IndexableContainer types allow standard for-loop iteration: for (auto i = 0; i != c.size() ++i) { c[i]; } Where c is an instance of IndexableContainer. RandomAccessIteratable is a concept that represents a random-access iteratable data type, which has begin() and end() member functions, and the return type of both functions is an iterator that conforms to the std::random_access_iterator concept. namespace cycfi::q::concepts { template concept RandomAccessIteratable = std::random_access_iterator && requires(T& c) { { c.begin() } -> std::same_as; { c.end() } -> std::same_as; }; } RandomAccessIteratable allows C++ range-based for loop syntax: for (auto e : c) { /**...**/ } Where c is an instance of RandomAccessIteratable and e is an element of c.","title":"Basic Concepts","component":"q","version":"develop","name":"basic_concepts","url":"/q/develop/reference/support/basic_concepts.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Arithmetic","hash":"_arithmetic","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"IndexableContainer","hash":"_indexablecontainer","id":5},{"text":"Declaration","hash":"_declaration_2","id":6},{"text":"RandomAccessIteratable","hash":"_randomaccessiteratable","id":7},{"text":"Declaration","hash":"_declaration_3","id":8}]},"44":{"id":44,"text":"MIDI is one way to control DSP parameters in a more meaningful, and musical way. Here, we talk about MIDI as a standardized messaging protocol. MIDI messages include note-on and note-off messages, control change messages, program change messages, and pitch bend messages, as well as tempo, time signature, and other performance data. #include namespace cycfi::q::midi_1_0 { /**...**/ } Currently, the Q DSP library supports MIDI 1.0, implemented in namespace midi_1_0. The MIDI 1.0 message is basically an array of std::uint8_t with sizes 1 to 3, encapsulated in a struct: struct message_base {}; // Base class for all messages template struct message : message_base { static constexpr int const size = size_; std::uint8_t data[size]; }; struct message1 : message { message1() = default; constexpr message1(raw_message msg); }; struct message2 : message { message2() = default; constexpr message2(raw_message msg); }; struct message3 : message { message3() = default; constexpr message3(raw_message msg); }; Generic MIDI messages are constructed from raw_message, which is essentially a std::uint32_t encapsulated in a struct that holds the 24-bits MIDI 1.0 message, encoded as little-endian: Figure 1. Raw MIDI Message struct raw_message { std::uint32_t data; }; The status byte indicates the type of MIDI message and includes both a status nibble (upper 4 bits) and a 16-channel number nibble (lower 4 bits). Figure 2. MIDI Status Byte Here is the MIDI status enumeration: namespace status { enum { note_off = 0x80, note_on = 0x90, poly_aftertouch = 0xA0, control_change = 0xB0, program_change = 0xC0, channel_aftertouch = 0xD0, pitch_bend = 0xE0, sysex = 0xF0, song_position = 0xF2, song_select = 0xF3, tune_request = 0xF6, sysex_end = 0xF7, timing_tick = 0xF8, start = 0xFA, continue_ = 0xFB, stop = 0xFC, active_sensing = 0xFE, reset = 0xFF }; } Specific MIDI messages are subclasses of the generic MIDI messages above. struct note_off : message3 { using message3::message3; constexpr note_off(std::uint8_t channel, std::uint8_t key, std::uint8_t velocity); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const; constexpr std::uint8_t velocity() const; }; struct note_on : message3 { using message3::message3; constexpr note_on(std::uint8_t channel, std::uint8_t key, std::uint8_t velocity); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const; constexpr std::uint8_t velocity() const; }; struct poly_aftertouch : message3 { using message3::message3; constexpr poly_aftertouch( std::uint8_t channel, std::uint8_t key, std::uint8_t pressure); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const { return data[1]; } constexpr std::uint8_t pressure() const; }; namespace cc { enum controller { bank_select = 0x00, modulation = 0x01, breath = 0x02, foot = 0x04, portamento_time = 0x05, data_entry = 0x06, channel_volume = 0x07, balance = 0x08, pan = 0x0A, expression = 0x0B, effect_1 = 0x0C, effect_2 = 0x0D, general_1 = 0x10, general_2 = 0x11, general_3 = 0x12, general_4 = 0x13, bank_select_lsb = 0x20, modulation_lsb = 0x21, breath_lsb = 0x22, foot_lsb = 0x24, portamento_time_lsb = 0x25, data_entry_lsb = 0x26, channel_volume_lsb = 0x27, balance_lsb = 0x28, pan_lsb = 0x2A, expression_lsb = 0x2B, effect_1_lsb = 0x2C, effect_2_lsb = 0x2D, general_1_lsb = 0x30, general_2_lsb = 0x31, general_3_lsb = 0x32, general_4_lsb = 0x33, sustain = 0x40, portamento = 0x41, sostenuto = 0x42, soft_pedal = 0x43, legato = 0x44, hold_2 = 0x45, sound_controller_1 = 0x46, // default: sound variation sound_controller_2 = 0x47, // default: timbre / harmonic content sound_controller_3 = 0x48, // default: release time sound_controller_4 = 0x49, // default: attack time sound_controller_5 = 0x4A, // default: brightness sound_controller_6 = 0x4B, // no default sound_controller_7 = 0x4C, // no default sound_controller_8 = 0x4D, // no default sound_controller_9 = 0x4E, // no default sound_controller_10 = 0x4F, // no default general_5 = 0x50, general_6 = 0x51, general_7 = 0x52, general_8 = 0x53, portamento_control = 0x54, effects_1_depth = 0x5B, // previously reverb send effects_2_depth = 0x5C, // previously tremolo depth effects_3_depth = 0x5D, // previously chorus depth effects_4_depth = 0x5E, // previously celeste (detune) depth effects_5_depth = 0x5F, // previously phaser effect depth data_inc = 0x60, // increment data value (+1) data_dec = 0x61, // decrement data value (-1) nonrpn_lsb = 0x62, nonrpn_msb = 0x63, rpn_lsb = 0x64, rpn_msb = 0x65, all_sounds_off = 0x78, reset = 0x79, local = 0x7A, all_notes_off = 0x7B, omni_off = 0x7C, omni_on = 0x7D, mono = 0x7E, poly = 0x7F }; } struct control_change : message3 { using message3::message3; constexpr control_change( std::uint8_t channel, cc::controller ctrl, std::uint8_t value); constexpr std::uint8_t channel() const; constexpr cc::controller controller() const; constexpr std::uint8_t value() const; }; struct program_change : message2 { using message2::message2; constexpr program_change(std::uint8_t channel, std::uint8_t preset); constexpr std::uint8_t channel() const; constexpr std::uint8_t preset() const; }; struct channel_aftertouch : message2 { using message2::message2; constexpr channel_aftertouch(std::uint8_t channel, std::uint8_t pressure); constexpr std::uint8_t channel() const; constexpr std::uint8_t pressure() const; }; struct pitch_bend : message3 { using message3::message3; constexpr pitch_bend(std::uint8_t channel, std::uint16_t value); constexpr pitch_bend(std::uint8_t channel, std::uint16_t lsb, std::uint8_t msb); constexpr std::uint8_t channel() const; constexpr std::uint16_t value() const; }; struct song_position : message3 { using message3::message3; constexpr song_position(std::uint16_t position); constexpr song_position(std::uint8_t lsb, std::uint8_t msb); constexpr std::uint16_t position() const; }; struct song_select : message2 { using message2::message2; constexpr song_select(std::uint8_t song_number); constexpr std::uint16_t song_number() const; }; struct tune_request : message1 { using message1::message1; constexpr tune_request(); }; struct timing_tick : message1 { using message1::message1; constexpr timing_tick(); }; struct start : message1 { using message1::message1; constexpr start(); }; struct continue_ : message1 { using message1::message1; constexpr continue_(); }; struct stop : message1 { using message1::message1; constexpr stop(); }; struct active_sensing : message1 { using message1::message1; constexpr active_sensing(); }; struct reset : message1 { using message1::message1; constexpr reset(); }; The note_name utility function can be used to convert a MIDI note number to a string representing the key. constexpr char const* note_name(std::uint8_t key); Example: std::cout << note_name(60) << std::endl; // Prints \"C4\" Conversely, the note_number utility function can be used to convert a string representing the key to a MIDI note number. int note_number(std::string_view note) The syntax is as follows: A letter a-g or A-G Optionally followed by # or b Followed by a number that ranges from -1 to 9 The range is from C-1 to G9. Example: std::cout << note_number(\"C4\") << std::endl; // Prints 60 The function returns -1 when given invalid input.","title":"MIDI Messages","component":"q","version":"develop","name":"midi_messages","url":"/q/develop/reference/support/midi_messages.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Namespace","hash":"_namespace","id":3},{"text":"Generic MIDI Messages","hash":"_generic_midi_messages","id":4},{"text":"Raw MIDI Messages","hash":"_raw_midi_messages","id":5},{"text":"MIDI Status","hash":"_midi_status","id":6},{"text":"Specific MIDI Messages","hash":"_specific_midi_messages","id":7},{"text":"note_off","hash":"_note_off","id":8},{"text":"note_on","hash":"_note_on","id":9},{"text":"poly_aftertouch","hash":"_poly_aftertouch","id":10},{"text":"control_change","hash":"_control_change","id":11},{"text":"program_change","hash":"_program_change","id":12},{"text":"channel_aftertouch","hash":"_channel_aftertouch","id":13},{"text":"pitch_bend","hash":"_pitch_bend","id":14},{"text":"song_position","hash":"_song_position","id":15},{"text":"song_select","hash":"_song_select","id":16},{"text":"tune_request","hash":"_tune_request","id":17},{"text":"timing_tick","hash":"_timing_tick","id":18},{"text":"start","hash":"_start","id":19},{"text":"continue_","hash":"_continue","id":20},{"text":"stop","hash":"_stop","id":21},{"text":"active_sensing","hash":"_active_sensing","id":22},{"text":"reset","hash":"_reset","id":23},{"text":"Note Name","hash":"_note_name","id":24},{"text":"Note Number","hash":"_note_number","id":25}]},"45":{"id":45,"text":"Read MIDI Messages first for prerequisite information. The MIDI processor is a user-defined construct that follows a specific C++ concept for receiving and interpreting MIDI messages. The MIDI processor acts as an intermediary between MIDI devices and the application. Its purpose is to receive incoming MIDI messages, analyze their content, and extract relevant information. This may include extracting note data, control change values, program change commands, or any other MIDI message content that is of interest to the user. #include // Concepts namespace cycfi::q::concepts::midi_1_0 { /**...**/ } // API and Implementation namespace cycfi::q::midi_1_0 { /**...**/ } Currently, the Q DSP library supports MIDI 1.0, implemented in namespace midi_1_0. namespace cycfi::q::concepts { namespace midi_1_0 { template concept Processor = requires(T&& proc, q::midi_1_0::message_base const& msg, std::size_t time) { proc(msg, time); }; } } Processor is a concept that represents a MIDI 1.0 processor. It is placed inside namespace midi_1_0 to distinguish it from future MIDI processors. Essentially, the C++ concept states that: Processor has a function call operator that accepts a MIDI 1.0 message and a time stamp. The MIDI 1.0 message, msg, is derived from message_base. The time stamp is represented as a millisecond clock with an undefined arbitrary start time. proc Instance of a type that conforms to Processor. msg Instance of a type that conforms to Message. time A std::size_t time stamp. Expression Semantics Return Type proc(msg, time) Process the MIDI message, msg at time stamp time. void processor is a basic class that conforms to the Processor concept, but does nothing by default. struct processor { void operator()(message_base const& msg, std::size_t time) {} }; This utility class provides the default no-op handling. It is intended to be derived from. Thus, the derived class can overload specific function call operators for messages it is interested with. Example: namespace midi = cycfi::q::midi_1_0; struct my_midi_processor : midi::processor { using midi::processor::operator(); void operator()(midi::note_on msg, std::size_t time); void operator()(midi::note_off msg, std::size_t time); }; In this example, my_midi_processor is interested with, and processes only note_on and note_off messages. The dispatch takes in a raw MIDI 1.0 message (raw_message), a time stamp, and a Processor. It converts the raw MIDI message to a specific MIDI message, and dispatches the message to the processor, along with the time stamp. template requires concepts::Processor void dispatch(raw_message msg, std::size_t time, P&& proc); This function is the basic low-level hook for dispatching raw MIDI messages obtained by an I/O system from MIDI devices.","title":"MIDI Processor","component":"q","version":"develop","name":"midi_processor","url":"/q/develop/reference/support/midi_processor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Namespaces","hash":"_namespaces","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"processor","hash":"_processor","id":8},{"text":"Dispatch","hash":"_dispatch","id":9}]},"46":{"id":46,"text":"Read Basic Concepts first for prerequisite information. Multi-buffer presents a multi-channel buffer arranged in a non-interleaved format where each channel has its own dedicated buffer, and the samples within each buffer are arranged sequentially in contiguous memory locations. The non-interleaved format is ideal for digital signal processing where it is necessary to perform operations on individual channels separately, often in parallel for maximum efficiency. As an example, the figure below shows the memory layout of a 4-channel non-interleaved format. Figure 1. 4 Channel Non-Interleaved Format A Multi-buffer can be conceptualized as a two-dimensional array. The first dimension in this representation corresponds to the samples (x-dimension), while the second dimension represents the channels (y-dimension). Essentially, you can access each individual sample using the two indices ch and i, where ch is the channel index and i is the sample index. mb[ch][i] Each dimension has a size which can be obtained this way: mb.size() // The number of channels mb[ch].size() // The number of frames per channel That way, you can iterate through the channels and samples this way: for (auto ch = 0; ch != mb.size() ++ch) { for (auto i = 0; i != mb[ch].size() ++i) { auto s = mb[ch][i]; // Do something with the sample `s` } } Alternately, you can iterate through the channels and samples in a channel, using C++ range-based for loop syntax, as follows: for (auto ch : mb.channels) { for (auto i : mb.frames) { auto s = mb[ch][i]; // Do something with the sample `s` } } Take note that this syntax is unorthodox in the way it uses C++ range-based for loop syntax. Instead of accessing the channels and samples directly, mb.channels and mb.frames both return a range of indices (corresponding to 0..N, where N is number of channels, for mb.channels or samples, for mb.frames). The design rationale is to always allow random access to all channels and all samples for each channel. For example, you might want to access both the left and right channels of a stereo (2-channel) multi-buffer and mix them: auto left = mb[0]; auto right = mb[1]; for (auto i : mb.frames) { auto mono = right[i] + left[i]; // Add the left and right channels // Do something with `mono` } mb[ch] returns a view of the channel. It does not copy the whole buffer. This \"view\" is lightweight and can be held and passed by value without worrying about performance. The previous example can extend to an N channel mixer this way: for (auto i : mb.frames) { auto sum = 0.0f; for (auto ch : mb.channels) sum += mb[ch][i]; // Do something with `sum` } If you simply need sequential access to the samples in a channel, you can do it this way: for (auto ch : mb.channels) { for (auto s : mb[ch]) { // Do something with the sample `s` } } #include template class multi_buffer { public: using sample_type = T; using buffer_view = iterator_range; using frames_view = iterator_range; using channels_view = iterator_range; // Unspecified constructor buffer_view operator[](std::size_t channel) const; std::size_t size() const; frames_view frames; channels_view channels; }; multi_buffer is a template class that implements the multi-buffer. The template paratemeter, T, is the sample type which is a model of the std::floating_point concept. iterator_range is a template class that holds two random access iterators. It is a model of IndexableContainer, and RandomAccessIteratable. The template parameter, I, is the iterator type. index_iterator is a model of the std::random_access_iterator concept. The value_type of the index_iterator is simply a std::size_t. multi_buffer is a model of IndexableContainer with buffer_view elements: an iterator-range containing pointers to the sample type (T*). multi_buffer has member variables frames and channels that are iterator-ranges containing index-iterators. T The sample type (typically float). MB multi_buffer type. mb Instance of multi_buffer. i Object of type std::size_t, used for indexing. Expression Semantics Type MB::sample_type Get the sample type. `T MB::buffer_view Get the iterator type. iterator_range MB::channel_view Get the channel view type. iterator_range MB::frames_view Get the frames view type. iterator_range The multi_buffer constructor is unspecified. The multi-buffer is not meant to be instantiated by the user. Expression Semantics Return Type mb[i] Index operator. MB::buffer_view mb.size() Get the number of channels. std::size_t mb.frames Get the frames view. MB::frames_view mb.channels Get the channels view. MB::channels_view","title":"Multi Buffer","component":"q","version":"develop","name":"multi_buffer","url":"/q/develop/reference/support/multi_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Usage","hash":"_usage","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Type Definitions","hash":"_type_definitions","id":7},{"text":"Constructor","hash":"_constructor","id":8},{"text":"Indexing","hash":"_indexing","id":9}]},"47":{"id":47,"text":"The Blackman taper is a type of window function that gradually tapers the amplitude of a signal towards the window’s edges. It is often used in digital signal processing to smooth a signal (smoothing discontinuities at the edges of sampled signals) or to reduce spectral leakage. The Blackman window has a wider main lobe and lower level side lobes than other windows. It is named after Robert Blackman, who first described it in 1958. The formula for the Blackman window is: w(n) = 0.42 - 0.5 * cos(2pi*n/(N-1)) + 0.08 * cos(4pi*n/(N-1)) Aside from its common use as a window function, the Q DSP library also utilizes the blackman window generator for modulating the audio signal and generating complex envelopes. #include struct blackman_gen { blackman_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; blackman_gen is a model of Generator. In addition to valid expressions for Generator, blackman_gen allows these expressions. g Object of type blackman_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics blackman_gen(w, sps) Construct blackman_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window. Two subclasses of blackman_gen are specialized for ramp generation: The Blackman upward ramp generator generates a rising curve with the shape of the first half of a Blackman window taper. The Blackman downward ramp generator generates a falling curve with the shape of the second half of a Blackman window taper. struct blackman_upward_ramp_gen : blackman_gen { blackman_upward_ramp_gen(duration width, float sps); void config(duration width, float sps); }; struct blackman_downward_ramp_gen : blackman_gen { blackman_downward_ramp_gen(duration width, float sps); void reset(); void config(duration width, float sps); }; blackman_upward_ramp_gen and struct blackman_downward_ramp_gen : blackman_gen ` are a models of `Ramp and implements all valid expressions of Ramp.","title":"Blackman Window Generator","component":"q","version":"develop","name":"blackman_gen","url":"/q/develop/reference/synth/blackman_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7},{"text":"Ramp Generators","hash":"_ramp_generators","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10}]},"48":{"id":48,"text":"envelope_gen is a highly configurable multi-segment envelope generator. Each segment is a Ramp that can be configured to have any conceivable shape. A few ramp shapes, including exponential, linear, blackman, and hann are provided. The user may add their own Ramp generator following a well defined c++ concept specification. The plot above is an example of a 5-segment envelope_gen output. The ramp segments S1 to S5 are as follows: blackman_upward_ramp_gen (see blackman_gen) hold_line_gen (see linear_gen) blackman_downward_ramp_gen (see blackman_gen) lin_downward_ramp_gen (see linear_gen) exp_downward_ramp_gen (see exponential_gen) The phases and transitions of the envelope gen are depicted in the following stylized state diagram. There are four phases of interest: Idle phase: The output sits at zero while waiting for the next attack signal Ⓐ. Attack phase: Initiated when the attack signal Ⓐ is received, e.g. when a key is pressed. Intermediate phase: Starts after the attack phase and ends before the release phase. Release phase: Initiated when the release signal Ⓡ is received, e.g when the key is released. The envelope_gen waits for an attack signal Ⓐ while in the idle phase. As soon as an attack signal Ⓐ is received, the state immediately transitions to the attack phase. The output ramps up from 0.0 to the specified attack level, over the specified attack duration. The envelope gen is not retriggerable. Attack signals Ⓐ are only permitted during the idle phase. Any attack signal Ⓐ received outside of the idle phase is disregarded. Use one envelope_gen instance per note. This is most natural with polyphonic voicing, but can also apply to monophonic voicing. For monophonic voicing, on an incoming attack signal Ⓐ, active instances are sent release signals Ⓡ, a new instance is created, and its attack phase is initiated. The output will then be the maximum of all active instances. After the attack phase, anything that comes in between the attack phase and release phase are intermmediate phases that are sequenced by the envelope_gen, one after the other. Intermmediate phases may include the decay phase, the hold phase and the sustain phase. For each intermediate phase, the output ramps up or down from the previous level to the phase’s level over the phase’s duration. Upon receiving the release signal Ⓡ, the envelope_gen immediately transitions to the release phase. This may occur at any point during the attack or intermediate phases. The current phase may be cut short when this happens, and without delay, the output ramps down to 0.0 over the specified release duration. Typically, the last intermediate segment is configured with a very long duration (e.g. for sustain), and normally a release signal Ⓡ will occur long before the last intermediate segment ends. If that is not the case, like for example if the sustain segment is a relatively short linear down ramp, it is possible to transition to the release phase before a release signal Ⓡ is received. After completion of the release phase, the envelope_gen returns back to the idle state. Each envelope segment has parameters for width (the duration of the segment), level (the end level of the segment), and of course the Ramp type. A make_envelope_segment free function, templated on the ramp type, is provided for making segments. #include struct envelope_segment { envelope_segment(envelope_segment const&); envelope_segment& operator=(envelope_segment const&); void level(float level); void config(duration width, float sps); void config(float level, duration width, float sps); /*** Unspecified member functions ***/ }; template inline envelope_segment make_envelope_segment(duration width, float level, float sps); s, a, b Objects of type envelope_segment. w Object of type duration. l Floating point value representing level (0.0 to 1.0). sps Floating point value representing samples per second. T Ramp type. Expression Semantics envelope_segment(s) Copy construct from s. a = b Assign b to a. Expression Semantics Return Type make_envelope_segment( w, l, sps) Make an envelope segment with specified Ramp type, T, level, l, width, w, and samples per second, sps. envelope_segment // Make a 10 ms exponential segment with a peak level of 1.0. auto s = make_envelope_segment(10_ms, 1.0f, sps); Expression Semantics s.level(l) Set the segment level to l. s.config(w, sps) Set the segment width, w, with samples per second, sps. s.config(l, w, sps) Set the segment level, l, width, w, with samples per second, sps. The envelope generator is basically a container (std::vector) of envelope segments. Multiple segments with distinct shape characteristics may be used to construct ADSR envelopes, AD envelopes, etc. #include struct envelope_gen : std::vector { using base_type = std::vector; template envelope_gen(T&& ...arg); void attack(); void release(); float operator()(); void reset(); float current() const; bool in_idle_phase() const; bool in_attack_phase() const; bool in_release_phase() const; std::size_t index() const; }; As a subclass of std::vector, you can use all the facilities of std::vector to compose a multi-segment envelope generator of varying complexity. Take note of the single forwarding constructor that accepts variable arguments. Its purpose is to reset envelope_gen automatically after construction. All arguments are forwarded to the base class. envelope_gen is a subclass of std::vector and inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for std::vector, envelope_gen allows these expressions. g Object of type envelope_gen. Expression Semantics Return Type g() Generate the next value. float Expression Semantics g.attack() Start the attack phase. g.release() Start the release phase. g.reset() Reset and move to the idle phase. Call envelope_gen::reset() whenever the segments change, such as when adding or removing segments from the segments container, to reset envelope_gen to the idle state. Expression Semantics Return Type g.current() Get the current level. float g.in_idle_phase() Return true if we are in the idle phase. bool g.in_attack_phase() Return true if we are in the attack phase. bool g.in_release_phase() Return true if we are in the release phase. bool g.index() Get the current index — the index of the latest active segment. std::size_t adsr_envelope_gen is a subclass of envelope_gen that offers specializations for generating envelopes of the ADSR type. This is a basic subclass that serves as a practical and prototypical envelope generator example. We will provide the full source code below, as an example of how to write an envelope generator. #include struct adsr_envelope_gen : envelope_gen { struct config { // Default settings duration attack_rate = 30_ms; duration decay_rate = 70_ms; decibel sustain_level = -6_dB; duration sustain_rate = 50_s; duration release_rate = 100_ms; }; adsr_envelope_gen(config const& config, float sps); void attack_rate(duration rate, float sps); void decay_rate(duration rate, float sps); void sustain_level(decibel level); void sustain_rate(duration rate, float sps); void release_rate(duration rate, float sps); }; inline adsr_envelope_gen::adsr_envelope_gen(config const& config_, float sps) : envelope_gen{ make_envelope_segment( config_.attack_rate, 1.0f, sps) // Attack (1) , make_envelope_segment( config_.decay_rate, lin_float(config_.sustain_level), sps) // Decay (2) , make_envelope_segment( config_.sustain_rate, 0.0f, sps) // Sustain (3) , make_envelope_segment( config_.release_rate, 0.0f, sps) // Release (4) } { } The config struct contains the constructor specifications for the ADSR paramneters, including attack_rate, decay_rate, sustain_level, sustain_rate, and release_rate. The user may specify these parameters like in this example: // Configure the adsr_envelope_gen auto env_cfg = q::adsr_envelope_gen::config { 300_ms // attack rate , 1_s // decay rate , -12_dB // sustain level , 5_s // sustain rate , 1_s // release rate }; // Instantiate an adsr_envelope_gen auto env_gen = q::adsr_envelope_gen{env_cfg, sps}; These parameters are used to construct the 4 segments comprising an ADSR envelope generator. Each of the segments are created using make_envelope_segment, passing in the Ramp type and the level, width, and samples per second. By defautl, the adsr_envelope_gen makes 4 segments with types: 1 exp_upward_ramp_gen for the attack segment, with peak level of 1.0. 2 exp_downward_ramp_gen for the decay segment, with level set to the sustain level. 3 lin_downward_ramp_gen for the sustain segment. This is a 5-second decaying linear ramp. 4 exp_downward_ramp_gen for the release segment, with level of 0.0. The remaining items are self-explanatory. These member functions permit the user to modify the five ADSR parameters following construction. The envelope segments are stored at indices 0 to 3 in the vector. // Set the attack rate inline void adsr_envelope_gen::attack_rate(duration rate, float sps) { (*this)[0].config(rate, sps); } // Set the decay rate inline void adsr_envelope_gen::decay_rate(duration rate, float sps) { (*this)[1].config(rate, sps); } // Set the sustain level inline void adsr_envelope_gen::sustain_level(decibel level) { (*this)[2].level(lin_float(level)); } // Set the sustain rate inline void adsr_envelope_gen::sustain_rate(duration rate, float sps) { (*this)[2].config(rate, sps); } // Set the release rate inline void adsr_envelope_gen::release_rate(duration rate, float sps) { (*this)[3].config(rate, sps); }","title":"Envelope Generator","component":"q","version":"develop","name":"envelope_gen","url":"/q/develop/reference/synth/envelope_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Phases and Transitions","hash":"_phases_and_transitions","id":2},{"text":"Envelope Segment","hash":"_envelope_segment","id":3},{"text":"Include","hash":"_include","id":4},{"text":"Declaration","hash":"_declaration","id":5},{"text":"Expressions","hash":"_expressions","id":6},{"text":"Notation","hash":"_notation","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Factory","hash":"_factory","id":9},{"text":"Example","hash":"_example","id":10},{"text":"Mutators","hash":"_mutators","id":11},{"text":"Envelope Generator","hash":"_envelope_generator","id":12},{"text":"Include","hash":"_include_2","id":13},{"text":"Declaration","hash":"_declaration_2","id":14},{"text":"Expressions","hash":"_expressions_2","id":15},{"text":"Notation","hash":"_notation_2","id":16},{"text":"Function Call","hash":"_function_call","id":17},{"text":"Operation","hash":"_operation","id":18},{"text":"Accessors","hash":"_accessors","id":19},{"text":"ADSR Envelope Generator","hash":"_adsr_envelope_generator","id":20},{"text":"Include","hash":"_include_3","id":21},{"text":"Declaration","hash":"_declaration_3","id":22},{"text":"Implementation","hash":"_implementation","id":23},{"text":"Constructor","hash":"_constructor","id":24},{"text":"Mutators","hash":"_mutators_2","id":25}]},"49":{"id":49,"text":"exp_upward_ramp_gen is an exponential upward ramp generator that generates an exponentially increasing amplitude from 0.0 to 1.0, similar to a capacitor charged by a series resistor over time specified by the duration (width) and samples per second (sps), and optional exponential curvature (cv) parameters. exp_downward_ramp_gen is the inverse of the exponential upward ramp generator. This is similar to a capacitor discherged through a resistor. The Q DSP library utilizes the exponential ramp generators for generating complex envelopes. #include struct exp_upward_ramp_gen { exp_upward_ramp_gen(duration width, float sps, float cv = 0.95); float operator()(); void config(duration width, float sps); void config(duration width, float sps, float cv); void reset(); }; struct exp_downward_ramp_gen : exp_upward_ramp_gen { using exp_upward_ramp_gen::exp_upward_ramp_gen; float operator()(); }; exp_upward_ramp_gen and exp_downward_ramp_gen are a models of Ramp. In addition to valid expressions for Ramp, exp_upward_ramp_gen and exp_downward_ramp_gen allow these expressions. g Object of type exp_upward_ramp_gen or exp_downward_ramp_gen. w Object of type duration. sps Floating point value representing samples per second. cv Exponential curvature. The cv constructor and config parameter determines the curvature of the exponential. Valid cv values range greater than 0.0 to anything less than 1.0. cv is the final value in the exponential curve that will be considered as the peak value that will be scaled up to 1.0. Increasing the cv value leads to more pronounced curves. Lower cv values produce flatter, more linear ramps. The default is 0.95. Expression Semantics exp_upward_ramp_gen(w, sps, cv) Construct exp_upward_ramp_gen given width, w, and samples per second, sps, and exponential curvature, cw. exp_downward_ramp_gen(w, sps, cv) Construct exp_downward_ramp_gen given width, w, and samples per second, sps, and exponential curvature, cw. C++ brace initialization may also be used. Expression Semantics g.config(w, sps, cw) Set the ramp width, w, with samples per second, sps, and exponential curvature, cw.","title":"Exponential Ramp Generator","component":"q","version":"develop","name":"exponential_gen","url":"/q/develop/reference/synth/exponential_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"50":{"id":50,"text":"The Hamming window, named for R. W. Hamming, is a window function that tapers a signal towards its edges with non-zero endpoints. The Hamming window features a moderate rolloff rate and optimized to minimize the nearest side lobe, allowing for a fair mix of spectral resolution and noise reduction. The formula for the Hamming window is: w(n) = 0.54 - 0.46 * cos(2pi*n/(N-1)) Aside from its common use as a window function, the Q DSP library also utilizes the hamming window generator for modulating the audio signal and generating complex envelopes. #include struct hamming_gen { hamming_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; hamming_gen is a model of Generator. In addition to valid expressions for Generator, hamming_gen allows these expressions. g Object of type hamming_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics hamming_gen(w, sps) Construct hamming_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window.","title":"Hamming Window Generator","component":"q","version":"develop","name":"hamming_gen","url":"/q/develop/reference/synth/hamming_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"51":{"id":51,"text":"The Hann window, also known as the Cosine Bell, is named after the Austrian meteorologist Julius von Hann. The Hann window is a taper formed with a cosine raised above zero. It is used as one of many windowing functions for smoothing values. The The Hann window taper belongs to both the cosine-sum and sine-power families. Unlike the Hamming window, the Hann window’s end points touch zero. The formula for the Hann window is: w(n) = 0.5*(1 - cos(2pin/(N-1))) Aside from its common use as a window function, the Q DSP library also utilizes the hann window generator for modulating the audio signal and generating complex envelopes. #include struct hann_gen { hann_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; hann_gen is a model of Generator. In addition to valid expressions for Generator, hann_gen allows these expressions. g Object of type hann_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics hann_gen(w, sps) Construct hann_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window. Two subclasses of hann_gen are specialized for ramp generation: The Hann upward ramp generator generates a rising curve with the shape of the first half of a Hann window taper. The Hann downward ramp generator generates a falling curve with the shape of the second half of a Hann window taper. struct hann_upward_ramp_gen : hann_gen { hann_upward_ramp_gen(duration width, float sps); void config(duration width, float sps); }; struct hann_downward_ramp_gen : hann_gen { hann_downward_ramp_gen(duration width, float sps); void reset(); void config(duration width, float sps); }; hann_upward_ramp_gen and struct hann_downward_ramp_gen : hann_gen ` are a models of `Ramp and implements all valid expressions of Ramp.","title":"Hann Window Generator","component":"q","version":"develop","name":"hann_gen","url":"/q/develop/reference/synth/hann_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7},{"text":"Ramp Generators","hash":"_ramp_generators","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10}]},"52":{"id":52,"text":"The linear upward ramp generator, lin_upward_ramp_gen generates a linearly increasing amplitude from 0.0 to 1.0 specified by the duration (width) and samples per second (sps parameters. This is essentially a basic straight ramp from 0.0 to 1.0. lin_downward_ramp_gen is the inverse of the linear upward ramp generator. This is essentially a basic straight ramp from 1.0 to 0.0. hold_line_gen is an infinitely wide straight horizontal line at 1.0. The Q DSP library utilizes the linear ramp generators for generating complex envelopes. #include struct lin_upward_ramp_gen { lin_upward_ramp_gen(duration width, float sps); float operator()(); void config(duration width, float sps); void reset(); }; struct lin_downward_ramp_gen : lin_upward_ramp_gen { lin_downward_ramp_gen(duration width, float sps); float operator()(); }; struct hold_line_gen { hold_line_gen(duration width, float sps); float operator()(); void config(duration width, float sps); void reset(); }; lin_upward_ramp_gen, lin_downward_ramp_gen and hold_line_gen are a models of Ramp and implements all valid expressions of Ramp.","title":"Linear Ramp Generator","component":"q","version":"develop","name":"linear_gen","url":"/q/develop/reference/synth/linear_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"53":{"id":53,"text":"The pulse wave oscillator programmatically generates a pulse waveform with specified pulse width. The basic_pulse_osc is not bandwidth limited, while pulse_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_pulse_osc { constexpr basic_pulse_osc(float width = 0.5); constexpr void width(float width); constexpr float operator()(phase p); constexpr float operator()(phase_iterator i); }; struct pulse_osc : basic_pulse_osc { constexpr pulse_osc(float width = 0.5); constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; basic_pulse_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. pulse_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. In addition to valid expressions for BasicOscillator and BandwidthLimitedOscillator, basic_pulse_osc and pulse_osc allow these expressions. w A floating point value from 0.0 to 1.0 representing pulse width. ps Object of type basic_pulse_osc or pulse_osc Expression Semantics basic_pulse_osc(w) Construct a basic_pulse_osc given a pulse width, w pulse_osc(w) Construct a pulse_osc given a pulse width, w C++ brace initialization may also be used. Expression Semantics ps.width(w) Set the basic_pulse_osc or pulse_osc pulse width to w.","title":"Pulse Wave Oscillator","component":"q","version":"develop","name":"pulse_osc","url":"/q/develop/reference/synth/pulse_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"54":{"id":54,"text":"The saw-tooth wave oscillator programmatically generates the waveform. The result is basically just the phase, centered around zero, producing an amplitude of ±1.0. The basic_saw_osc is not bandwidth limited, while saw_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_saw_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_saw = basic_saw_osc{}; struct saw_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto saw = saw_osc{}; basic_saw_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. saw_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_saw_osc and saw_osc are stateless. The global instances basic_saw and saw can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Saw-Tooth Wave Oscillator","component":"q","version":"develop","name":"saw_osc","url":"/q/develop/reference/synth/saw_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"55":{"id":55,"text":"sin_cos_gen is an oscillator that simultaneously generates sine and cosine waveforms. sin_cos_gen is implemented utilizing Hal Chamberlin’s state variable IIR filter, a digital derivation of the analog state variable filter optimized for infinite Q oscillation. sin_cos_gen is suitable as a low frequency sine wave oscillator. The upper frequency limit for stability is roughly 1/6 sps. At low frequencies, the waveform symmetry is very pure, but it becomes skewed as you approach the upper limit. For low frequencies, we can reduce the calculation of the coefficient to 2*Pi*freq/sps. When utilized with fixed point or IEEE floating point, the oscallator should run forever without instability. While sin_cos_gen is technically an oscillator which generates periodic waveforms, it is presented as a model of Generator because it does not conform to the Oscillator concept which requires complete control over the phase. Although sin_cos_gen is technically an oscillator that produces periodic waveforms, it is represented as a model of a Generator because it does not adhere to the Oscillator concept, which requires complete control over the phase for synchronicity. As a free-running oscillator,sin_cos_gen can exhibit phase drift over time due to accumulating floating-point errors. Source: The digital state variable filter #include struct sin_cos_gen { sin_cos_gen(frequency f, float sps); std::pair operator()(); void config(frequency f, float sps); void reset(float sin = 0.0f, float cos = 1.0f); void midpoint(); }; sin_cos_gen is a model of Generator. In addition to valid expressions for Generator, sin_cos_gen allows these expressions. g Object of type sin_cos_gen. f Object of type frequency. sps Floating point value representing samples per second. sval, cval Floating point value values. Expression Semantics sin_cos_gen(f, sps) Construct sin_cos_gen given frequency, f, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics Return Type g() Generate a sin/cos signal and get both sin and cos result. The return type is a std::pair which stores the sin and cos results. std::pair g().first Generate a sin/cos signal and get only the sin result. float g().second Generate a sin/cos signal and get only the cos result. float Expression Semantics g.config(f, sps) Set the frequency, f, with samples per second, sps. g.reset() Reset the current sin and cos to 0.0f and 1.0f, respectively. g.reset(sval, cval) Reset the current sin and cos values, respectively. g.midpoint() Equivalent to g.reset(0.0f, -1.0f).","title":"Sine Cosine Generator","component":"q","version":"develop","name":"sin_cos_gen","url":"/q/develop/reference/synth/sin_cos_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"56":{"id":56,"text":"The sine wave oscillator is one of the most fundamental building blocks in synthesis. It generates a basic, pure waveform consisting of a single frequency with no harmonics or overtones. The sine wave oscillator is often used in additive synthesis to create complex waveforms by combining simple sine waves of various frequencies, phases, and amplitudes. It is also often used as a low-frequency oscillator for modulating various audio parameters, such as frequency and amplitude. sin_osc efficiently synthesizes sine waves from a lookup table to avoid performing complex calculations in real-time. The lookup table is optimized for use in small MCUs (microconrrollers), by having the data stored as c++ constexpr array, which is effectively placed in flash memory. #include struct sin_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto sin = sin_osc{}; sin_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. sin_osc is stateless. The global instance sin can be used anywhere without needing to be placed in a class or struct. It is semantically equivalent to a global function.","title":"Sine Wave Oscillator","component":"q","version":"develop","name":"sin_osc","url":"/q/develop/reference/synth/sin_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"57":{"id":57,"text":"The square wave oscillator programmatically generates a pulse waveform with a 50% pulse width. The basic_square_osc is not bandwidth limited, while square_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_square_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_square = basic_square_osc{}; struct square_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto square = square_osc{}; basic_square_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. square_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_square_osc and square_osc are stateless. The global instances basic_square and square can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Square Wave Oscillator","component":"q","version":"develop","name":"square_osc","url":"/q/develop/reference/synth/square_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"58":{"id":58,"text":"The triangle wave oscillator programmatically generates a triangle waveform that ramps up from 0.0 to 1.0, then ramps down to -1.0, and ramps back up to 0.0. The basic_triangle_osc is not bandwidth limited, while triangle_osc is, using a technique called \"PolyBLAMP\" to reduce aliasing artifacts that can occur when generating the triangle waveform with sharp corners. PolyBLAMP uses the BLAMP (bandlimited ramp) function to treat any discontinuities found in the first derivative of a signal by quasi-bandlimiting the corners found in the waveform. The algorithm derives a polynomial approximation of the BLAMP function, making it efficient for implementation. This correction function is applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_triangle_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_triangle = basic_triangle_osc{}; struct triangle_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto triangle = triangle_osc{}; basic_triangle_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. triangle_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_triangle_osc and triangle_osc are stateless. The global instances basic_triangle and triangle can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Triangle Wave Oscillator","component":"q","version":"develop","name":"triangle_osc","url":"/q/develop/reference/synth/triangle_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"59":{"id":59,"text":"The decibel (dB) is a unit used to measure the relative signal level difference between two signals. It is a logarithmic scale that expresses the relationship between two signal root-power amplitudes or power levels. Here, we are concerned with amplitudes. For amplitudes gain, the relationship is given by: 20 log10(out/in) = dB where out represents the output amplitude, while in represents the input amplitude. The decibel scale is expressed as the base 10 logarithm of the ratio between two amplitudes. For instance, a ratio of 2:1 (two times) corresponds to a 6 dB increase, while a ratio of 10:1 (ten times) corresponds to a 20 dB increase. In contrast, a ratio of 1:2 (one half) corresponds to a -6 dB decrease, whereas a ratio of 1:10 (one tenth) corresponds to a -20 dB decrease. Decibel is non-linear and operates on the logarithmic domain. The decibel class is perfectly suitable for dynamics processing (e.g. compressors and limiters and envelopes). Q provides fast decibel computations using fast math functions and lookup tables for converting to and from scalars. #include struct decibel_unit; struct decibel : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = decibel_unit; }; // Free functions double lin_double(decibel db); constexpr float lin_float(decibel db); inline decibel approx_db(float val); decibel lin_to_db(double val); // Literals inline namespace literals { constexpr decibel operator \"\" _dB(unsigned long long int val); constexpr decibel operator \"\" _dB(long double val); } decibel is a model of Unit. In addition to valid expressions for Unit, decibel allows these expressions. d Object of type decibel. v Linear floating point value. 0.0 A floating point literal number. 0 An integer literal number. Take note that the Unit concept already has a constructor from a floating point value that handles direct construction such as: auto db = decibel{6.0}; // 6 dB This constructor was used in previous versions of the library to convert linear to decibels, which can be confusing. This version ought to have corrected this nonintuitive semantics, but this is a disruptive change that will alter the semantics of all existing code without warning. In order to avoid further confusion, we will mark this constructor as deleted for the time being, making it a hard error to alert users upgrading to this library version. C++ brace initialization may also be used. Expression Semantics Return Type lin_float(d) Convert decibel to a linear value. float lin_double(d) Convert decibel to a linear value. double lin_to_db(v) Convert a linear value v to decibel. decibel approx_db(v) Faster approximate conversion from a linear value v to decibel. decibel The free function lin_to_db can be used to indirectly construct and return a decibel object from a linear value. The lin_to_db function performs linear to decibel conversion. Example: auto db = lin_to_db(2.0); // 6 dB In addition to lin_to_db, approx_db is another free function that performs linear to decibel conversion. It is a faster, but less accurate conversion function from a linear value to decibel. lin_float and lin_double convert decibel to a linear value with float and double results, respectively. If you need to create decibel from numeric constants, it is preferrable to use decibel literals instead. Example: auto db = -6_dB; Expression Semantics 0.0_dB Returns 0.0 dB. 0_dB Returns 0.0 dB. Take note that 0.0 and 0 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _dB literal, it is generally safe to bring its namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"decibel","component":"q","version":"develop","name":"decibel","url":"/q/develop/reference/units/decibel.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Literals","hash":"_literals","id":8}]},"60":{"id":60,"text":"Type safe representation of duration: the length of time that something lasts or continues, measured in seconds. #include struct duration_unit; struct duration : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = duration_unit; }; // Free functions constexpr double as_double(duration d); constexpr float as_float(duration d); // Literals inline namespace literals { constexpr duration operator \"\" _s(long double val); constexpr duration operator \"\" _s(unsigned long long int val); constexpr duration operator \"\" _ms(long double val); constexpr duration operator \"\" _ms(unsigned long long int val); constexpr duration operator \"\" _us(long double val); constexpr duration operator \"\" _us(unsigned long long int val); } In addition to valid expressions for Unit, duration allows these expressions. d Object of type duration 1.0 A floating point literal number. 1 An integer literal number. Expression Semantics Return Type as_float(d) Convert duration to a float in seconds. float as_double(d) Convert duration to a double in seconds. double If you need to create duration from numeric constants, it is preferrable to use duration literals instead. Example: auto d = 6_ms; Expression Semantics 1.0_s Returns a duration of 1.0 seconds. 1_s Returns a duration of 1.0 seconds. 1.0_ms Returns a duration of 1.0 milliseconds. 1_ms Returns a duration of 1.0 milliseconds. 1.0_us Returns a duration of 1.0 microseconds. 1_us Returns a duration of 1.0 microseconds. Take note that 1.0 and 1 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _s, _ms, and _us literals, it is generally safe to bring their namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"duration","component":"q","version":"develop","name":"duration","url":"/q/develop/reference/units/duration.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Conversions","hash":"_conversions","id":6},{"text":"Literals","hash":"_literals","id":7}]},"61":{"id":61,"text":"Type safe representation of frequency: the number of cycles or oscillations of a periodic event per unit of time, measured in Hertz. #include struct frequency_unit; struct frequency : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = frequency_unit; constexpr q::period period() const; }; // Free functions constexpr double as_double(frequency f); constexpr float as_float(frequency f); // Literals inline namespace literals { constexpr frequency operator \"\" _Hz(long double val); constexpr frequency operator \"\" _Hz(unsigned long long int val); constexpr frequency operator \"\" _KHz(long double val); constexpr frequency operator \"\" _KHz(unsigned long long int val); constexpr frequency operator \"\" _kHz(long double val); constexpr frequency operator \"\" _kHz(unsigned long long int val); constexpr frequency operator \"\" _MHz(long double val); constexpr frequency operator \"\" _MHz(unsigned long long int val); } frequency is a model of Unit. In addition to valid expressions for Unit, frequency allows these expressions. f Object of type frequency. 1.0 A floating point literal number. 1 An integer literal number. Expression Semantics Return Type as_float(f) Convert frequency to a float. float as_double(f) Convert frequency to a double. double Expression Semantics Return Type f.period() Get the period (reciprocal of frequency). period If you need to create frequency from numeric constants, it is preferrable to use frequency literals. Example: auto d = 440_Hz; Expression Semantics 1.0_Hz Returns a frequency of 1.0 Hz. 1_Hz Returns a frequency of 1.0 Hz. 1.0_kHz Returns a frequency of 1.0 kHz. 1_kHz Returns a frequency of 1.0 kHz. 1.0_KHz Returns a frequency of 1.0 kHz. 1_KHz Returns a frequency of 1.0 kHz. 1.0_MHz Returns a frequency of 1.0 MHz. 1_MHz Returns a frequency of 1.0 MHz. Take note that 1.0 and 1 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _Hz, _kHz, and _MHz literals, it is generally safe to bring their namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"frequency","component":"q","version":"develop","name":"frequency","url":"/q/develop/reference/units/frequency.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Conversions","hash":"_conversions","id":6},{"text":"Misc","hash":"_misc","id":7},{"text":"Literals","hash":"_literals","id":8}]},"62":{"id":62,"text":"An interval is the distance between two pitches, measured in semitones. It is the basis for melody and harmony as well as all musical scales and chords. The basic_interval is a template class, parameterized by the underlying type T. #include struct interval_unit; template struct basic_interval : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = interval_unit; constexpr explicit basic_interval(concepts::Arithmetic auto val); }; // Free functions template constexpr int as_int(basic_interval i); template constexpr float as_float(basic_interval i); template constexpr double as_double(basic_interval i); template requires std::floating_point constexpr basic_interval round(basic_interval i); template requires std::floating_point constexpr basic_interval ceil(basic_interval i); template requires std::floating_point constexpr basic_interval floor(basic_interval i); There are two basic type aliases: interval and exact_interval, which are template instantiations of the basic_interval template class: interval Fractional interval. Can represent microtones —intervals smaller than a semitone. exact_interval Exact, whole number intervals. using interval = basic_interval; using exact_interval = basic_interval; basic_interval is a model of Unit. In addition to valid expressions for Unit, Intervals allow these expressions. i Object of type basic_interval. Expression Semantics Return Type as_int(i) Convert an interval to an int. int as_float(i) Convert an interval to a float. float as_double(i) Convert an interval to a double. double Expression Semantics Return Type round(i) Rounds i to the nearest non-fractional interval. basic_interval ceil(i) Returns the smallest non-fractional interval that is greater than or equal i. basic_interval floor(i) Returns the largest non-fractional interval that is less than or equal i. basic_interval The round, ceil and floor functions require T to be a floating point type.","title":"Interval","component":"q","version":"develop","name":"interval","url":"/q/develop/reference/units/interval.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Template Instantiations","hash":"_template_instantiations","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Functions","hash":"_functions","id":8}]},"63":{"id":63,"text":"Type safe representation of period: the reciprocal of frequency, or the time it takes for a periodic event to complete one full cycle or oscillation. #include period is a subclass of {duration} and inherits all its public member functions, member variables, and types. struct period : duration { using duration::duration; constexpr period(duration d); constexpr period(frequency f); }; As a subclass of duration, period inherits all the publicly accessible member functions, member variables, and types of its base class. period is a model of Unit. In addition to valid expressions for Unit, period allows these expressions. d Object of type duration f Object of type frequency p Object of type period Expression Semantics phase(d) Construct a period given a duration, d phase(f) Construct a period given a frequency, f C++ brace initialization may also be used. Expression Semantics Return Type as_float(f) Convert frequency to a float in seconds. float as_double(f) Convert frequency to a double in seconds. double","title":"period","component":"q","version":"develop","name":"period","url":"/q/develop/reference/units/period.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7}]},"64":{"id":64,"text":"Type safe representation of phase: the relationship in timing between a periodic signal relative to a reference periodic signal of the same frequency. Phase values run from 0 to 2π. The turn, also cycle, full circle, revolution, and rotation, is a complete circular movement or measure (as to return to the same point) with circle or ellipse. A turn is abbreviated τ, cyc, rev, or rot depending on the application. The symbol τ can also be used as a mathematical constant to represent 2π radians. https://en.wikipedia.org/wiki/Angular_unit phase is represented in a fixed-point 1.31 format where 31 bits are fractional. Such a format is perfectly suitable for oscillators. For that purpose, a phase accumulator can be used: essentially a counter that keeps track of the current phase value for the waveform. Initially, the accumulator is set to an arbitrary starting phase, usually 0. To generate the next sample of the waveform, we compute the phase value for the next sample based on the desired frequency and the sample rate. This value is then added to the current phase accumulator value. This process continues for each successive sample in the waveform. The advantage of using fixed point 1.31 to represent phase is that the phase accumulator inherently rewraps the value when the next phase exceeds 2π. This behavior is inherent to the fixed-point 1.31 format and eliminates the need for additional logic to handle the wraparound condition. Also, see phase_iterator for further additional relevant information. #include struct phase_unit; struct phase : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = phase_unit; constexpr phase(); constexpr phase(frequency freq, float sps); constexpr static phase begin(); constexpr static phase end(); constexpr static phase middle(); }; // Free functions constexpr phase frac_to_phase(std::floating_point auto frac); constexpr double frac_double(phase d); constexpr float frac_float(phase p); phase is a model of Unit. In addition to valid expressions for Unit, phase allows these expressions. frac A floating point number, representing a fractional number from 0.0 to 1.0 (corresponding to 0 to 2π). freq Object of type frequency. sps Floating point value representing samples per second. p Object of type phase. val The underlying data type representing phase. See Unit. Expression Semantics phase() Default construct a phase. Equivalent to phase(0). phase(freq, sps) Construct a phase from the freq and sps C++ brace initialization may also be used. Expression Semantics Return Type frac_float(p) Convert phase to a float from 0.0 to 1.0. float frac_double(p) Convert phase to a double from 0.0 to 1.0r. double frac_to_phase(frac) Convert a floating point fractional value to a phase phase Expression Semantics Return Type phase::begin() Get the minimum phase representing 0° phase phase::end() Get the maximum phase representing 360° (2π) phase phase::middle() Get the phase representing 180° (π) phase","title":"phase","component":"q","version":"develop","name":"phase","url":"/q/develop/reference/units/phase.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Accessors","hash":"_accessors","id":8}]},"65":{"id":65,"text":"Read phase first for prerequisite information. phase_iterator is a class that iterates over the phase with an iteration step size specified by the given frequency and sampling rate. phase_iterator holds two phase members, the phase accumulator and the phase step size. The phase accumulator, keeps track of the current phase value for the waveform. Initially, the accumulator is set to an arbitrary starting phase, usually 0. For each sample of the waveform, the phase step size value is added to the current phase accumulator, which inherently rewraps the value when the next phase exceeds 2π. #include struct phase_iterator { constexpr phase_iterator(); constexpr phase_iterator(frequency freq, float sps); constexpr phase_iterator operator++(int); constexpr phase_iterator& operator++(); constexpr phase_iterator operator--(int); constexpr phase_iterator& operator--(); constexpr phase_iterator& operator=(phase rhs); constexpr phase_iterator& operator=(phase_iterator const& rhs) = default; constexpr void set(frequency freq, float sps); constexpr bool first() const; constexpr bool last() const; constexpr phase_iterator begin() const; constexpr phase_iterator end() const; constexpr phase_iterator middle() const; phase _phase, _step; }; freq Object of type frequency sps Floating point value representing samples per second i, a, b Objects of type phase_iterator p Objects of type phase Expression Semantics phase_iterator() Default construct a phase_iterator. phase_iterator(freq, sps) Construct a phase_iterator from the freq and sps phase_iterator(i) Copy construct from phase_iterator i. a = b Assign phase_iterator b, to phase_iterator a. i = p Assign phase p, to phase_iterator i. See Modifying The State. C++ brace initialization may also be used. Expression Semantics Return Type i++ Post increment. Returns a copy of the iterator made prior to increment. phase_iterator ++i Pre increment. Increment and return a reference to the iterator. phase_iterator& i-- Post decrement. Returns a copy of the iterator made prior to decrement. phase_iterator --i Pre decrement. Decrement and return a reference to the iterator. phase_iterator& Expression Semantics Return Type set(freq, sps) Modify a phase_iterator given a new freq and sps. See Modifying The State. void When modifying a phase_iterator with a new frequency, freq, and sampling rate, sps, only the phase step size will be changed. To prevent discontinuities, the phase accumulator will not be touched. This means that the phase accumulator will continue to count up from its previous value, while the updated phase step size will determine the new frequency. Expression Semantics Return Type i.first() Returns true if the phase_iterator is at the start of the waveform cycle (0° or 0 rad). I.e. the phase accumulator is within 0 to phase step size. bool i.last() Returns true if the phase_iterator is at the end of the waveform cycle (360° or 2π rad). I.e. the phase accumulator is within phase step size below 2π. bool i.begin() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the start of the waveform cycle (0° or 0 rad). phase_iterator i.end() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the end of the waveform cycle (360° or 2π rad). phase_iterator i.middle() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the middle of the waveform cycle (180° or π rad) phase_iterator i._phase Direct access to the phase accumulator. phase& i._step Direct access to the phase step size. phase&","title":"phase_iterator","component":"q","version":"develop","name":"phase_iterator","url":"/q/develop/reference/units/phase_iterator.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignments","hash":"_constructors_and_assignments","id":6},{"text":"Iteration","hash":"_iteration","id":7},{"text":"Mutator","hash":"_mutator","id":8},{"text":"Modifying The State","hash":"_modifying_the_state","id":9},{"text":"Accessors","hash":"_accessors","id":10}]},"66":{"id":66,"text":"pitch is determined by its position on the chromatic scale, which is a system of 12 notes that repeat in octaves. The distance between each pitch on the chromatic scale is a semitone, and each pitch represents a specific frequency measured in hertz (Hz). pitch is an interval with a base frequency of 8.1757989156437 Hz that correspond to MIDI note 0 (which is an octave below F#0). pitch is represented by the MIDI value. Therefore, only positive values are valid. pitch includes construction from frequency as well as numeric values representing the absolute position in the chromatic scale from the base frequency. pitch also includes conversions to frequency. Conversions to and from frequency utilize fast log2 and pow2 computations using fast math functions. #include struct pitch : interval { constexpr static auto base_frequency = frequency{8.1757989156437}; constexpr pitch(); explicit pitch(frequency f); constexpr bool valid() const; // These operations do not make sense and are not allowed. pitch& operator+=(pitch) = delete; pitch& operator-=(pitch) = delete; }; // Free functions frequency as_frequency(pitch n); float as_float(pitch n); double as_double(pitch n); constexpr pitch round(pitch n); constexpr pitch ceil(pitch n); constexpr pitch floor(pitch n); // These operations do not make sense and are not allowed. pitch operator+(pitch, pitch) = delete; pitch operator-(pitch, pitch) = delete; In addition to valid expressions for interval, pitch allows these expressions. p, a, b Objects of type pitch f Object of type frequency Expression Semantics pitch(f) Construct a pitch from frequency f. pitch() Default construct a pitch. The result is an invalid pitch by default where p.rep == -1.0. C++ brace initialization may also be used. Expression Semantics Return Type as_float(p) Convert pitch to a float. float as_double(p) Convert pitch to a double. double as_frequency(p) Convert pitch to a frequency. frequency Expression Semantics Return Type p.valid() Returns true if p is valid. p is valid if p.rep >= 0.0 bool round(p) Rounds p to the nearest non-fractional pitch. pitch ceil(p) Returns the smallest non-fractional pitch that is greater than or equal i pitch floor(p) Returns the largest non-fractional pitch that is less than or equal i pitch These valid expressions for interval do not make sense for pitch and are no longer allowed. Expression a += b a -= b a + b a - b","title":"pitch","component":"q","version":"develop","name":"pitch","url":"/q/develop/reference/units/pitch.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Functions","hash":"_functions","id":8},{"text":"Deleted Functions","hash":"_deleted_functions","id":9}]},"67":{"id":67,"text":"Fractional ring buffer allows sub-sample indexing using interpolation. fractional_ring_buffer is a subclass of ring_buffer that overloads the index operator to provide sub-sample indexing. #include template , typename Index = float , typename Interpolation = sample_interpolation::linear> class fractional_ring_buffer : public ring_buffer { public: using value_type = T; using storage_type = Storage; using index_type = Index; using interpolation_type = Interpolation; using ring_buffer::ring_buffer; // get data (index can be fractional) T const operator[](Index index) const; }; As a subclass of ring_buffer, fractional_ring_buffer inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for ring_buffer, fractional_ring_buffer allows these expressions. T Element type, e.g. float. S Storage type, e.g. std::vector. I Index type, e.g. float. X Interpolation type, e.g. sample_interpolation::linear. rb_type A fractional_ring_buffer type. rb Object of type fractional_ring_buffer. i Object of type I. a [, b, c, d] Required a, optional b, c, d. Expression Semantics fractional_ring_buffer Instantiate a fractional_ring_buffer type given: Element type T Storage type S (optional) Index type I (optional) Interpolation type, X (optional) using rb_type1 = fractional_ring_buffer using rb_type2 = fractional_ring_buffer> using rb_type3 = fractional_ring_buffer, float> using rb_type4 = fractional_ring_buffer Expression Semantics rb_type::value_type Get the underlying element type. rb_type::storage_type Get the underlying storage type. rb_type::index_type Get the underlying index type. rb_type::interpolation_type Get the underlying interpolation type. Expression Semantics Return Type rb[i] Get the element at index i. rb[0] refers to the latest element. rb[rb.size()-1] refers to the oldest element. Index can be fractional (e.g. rb[2.5]). T& or T const& if rb is const. i rb.size()-1 is undefined behavior.","title":"Fractional Ring Buffer","component":"q","version":"develop","name":"fractional_ring_buffer","url":"/q/develop/reference/utility/fractional_ring_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"68":{"id":68,"text":"The ring buffer is a fixed-size buffer that is regarded as if it were circular. When data is written to the buffer, it is stored in sequential order up to its size, after which new data will overwrite the oldest data in the buffer. ring_buffer is a template class parameterized by the underlying element type, T, and the type of storage used, which defaults to std::vector, although it is also possible to use fixed sized storage such as std::array as long as the size is a powers of 2. For efficiency, the ring buffer storage will maintain a size that is the power of 2. The ring_buffer is not resizable after construction. #include template > class ring_buffer { public: using value_type = T; using storage_type = Storage; explicit ring_buffer(); explicit ring_buffer(std::size_t size); ring_buffer(ring_buffer const& rhs) = default; ring_buffer(ring_buffer&& rhs) = default; ring_buffer& operator=(ring_buffer const& rhs) = default; ring_buffer& operator=(ring_buffer&& rhs) = default; std::size_t size() const; void push(T val); T const& front() const; T& front(); T const& back() const; T& back(); T const& operator[](std::size_t index) const; T& operator[](std::size_t index); void clear(); void pop_front(); Storage& store(); const Storage& store() const; }; T Element type, e.g. float. S Storage type, e.g. std::vector. rb_type A ring_buffer type. rb, a, b Objects of type ring_buffer. val Object of type T. i Object of type std::size_t. s Object of type std::size_t. a [, b, c, d] Required a, optional b, c, d. Expression Semantics ring_buffer Instantiate a ring_buffer type given: Element type T Storage type S (optional) using rb_type1 = ring_buffer using rb_type2 = ring_buffer> Expression Semantics rb_type::value_type Get the underlying element type. rb_type::storage_type Get the underlying storage type. Expression Semantics rb_type() Default construct a ring buffer. This constructor is only applicable when a fixed sized storage is specified. rb_type(s) Construct a ring buffer with specified size, s. This constructor is only applicable when a resizable storage is specified. The actual buffer size will be the minimum power of 2 greater than size. greater than s. rb_type(rb) Copy construct from rb_type rb. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics rb.push(val) Push the latest element, overwriting the oldest element. rb.clear() Clear the ring buffer. rb.pop_front() Pop the latest element. This operation will not destruct the element, but will instead allow the ring buffer to overwrite the element on the next push. Expression Semantics Return Type rb.size() Get the ring buffer’s size. std::size_t. rb.front() Get the latest element. T& or T const& if rb is const. rb.back() Get the oldest element. T& or T const& if rb is const. rb[i] Get the element at index i. rb[0] refers to the latest element. rb[rb.size()-1] refers to the oldest element. T& or T const& if rb is const. rb.store() Get a reference to the storage. S& or S const& if rb is const. i rb.size()-1 is undefined behavior.","title":"Ring Buffer","component":"q","version":"develop","name":"ring_buffer","url":"/q/develop/reference/utility/ring_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Mutators","hash":"_mutators","id":10},{"text":"Accessors","hash":"_accessors","id":11}]},"69":{"id":69,"text":"","title":"","component":"q","version":"v1.0_beta","name":"common","url":"/q/v1.0_beta/common.html","titles":[]},"70":{"id":70,"text":"The Fundamentals section of the Q DSP library provides a brief overview of the basic features of the library, including layering and dependencies, file structure, namespace, function objects as fundamental building blocks, rich data types, and user-defined literals. The Q library comprises of two layers: q_io: Audio and MIDI I/O layer. The q_io layer provides cross-platform audio and MIDI host connectivity straight out of the box. The q_io layer is optional. The q_lib layer is usable without it. q_lib: The core DSP library, q_lib is a no-frills, lightweight, header-only library. The dependencies are determined by the arrows. q_io has very minimal dependencies (portaudio and portmidi) with very loose coupling via thin wrappers that are easy to transplant and port to a host, with or without an operating system, such as an audio plugin or direct to hardware ADC and DAC. q_io is used in the tests and examples, but can be easily replaced by other mechanisms in an application. Plugin libraries for DAWs (digital audio workstations), for example, have their own audio and MIDI I/O mechanisms. q_lib has no dependencies except the standard c++ library. The library is organized with this simplified directory structure: docs (1) example (2) q_io ├─ external (3) ├─ include (4) └─ src (5) q_lib └─ include (6) test (7) 1 Where this documentation resides. 2 Self-contained and easy to understand c++ programs that demonstrate various features of the library. 3 3rd party libraries used by the q_io module. 4 q_io header files. 5 q_io source files. 6 Header-only core q_lib DSP library. 7 A comprehensive set of c++ files for testing the library. Other sub-directories not listed here can be ignored. The q_lib module, header-only core, has this simplified directory structure: q_lib └─ include └─ q ├─ fft (1) ├─ fx (2) ├─ pitch (3) ├─ support (4) ├─ synth (5) └─ utility (6) 1 Fast fourier transform. 2 Various \"effects\" processor building blocks. 3 Pitch detection related facilities. 4 Fundamental support facilities. 5 Various synthesisers. 6 Auxiliary utility functions and classes. Other sub-directories not listed here can be ignored. All entities in the Q library are placed in namespace cycfi::q. Everywhere in this documentation, we will be using a namespace alias to make the code less verbose: namespace q = cycfi::q; Typical audio processors in the Q DSP library work on floating point input samples with the normal -1.0 to 1.0 range. However, values are not limited to sampled signals. For instance, signal envelopes are best represented as decibels that are processed in the logarithmic domain, so dynamic-range processors such as compressors and expanders accept decibel as input and return decibel as output. For example: decibel gain = comp(env); comp is a compressor. The compressor above, however, processes signal envelopes rather than raw samples, in contrast to the typical implementation of DSP compressors. The compressor above accepts an envelope represented by decibel, performs computation in the logarithmic domain, and returns a compressed envelope also represented by decibel. Oscillators, as another example, operate on phase-angle inputs and return output samples: float out = sin(phase++); The Q DSP library has a rich set of such types: float and double Typical sample data type -1.0 to 1.0 (or beyond for some computational headroom). frequency Cycles per second (Hz). duration A time span (seconds, milliseconds, etc.) period The inverse of frequency. phase Fixed point 1.31 format where 31 bits are fractional. phase. represents 0 to 2π phase values suitable for oscillators. decibel Ratio of one value to another on a logarithmic scale (dB). For more information, see Units. The Q DSP library is typeful and typesafe. You can not mismatch values of different types such as frequency and decibel, for example. Such potentially disastrous mistakes can happen if all values are just raw floating point types. There are conversions to and from these data types where it is reasonable to do so. decibel can, for example, be converted to 'float' or 'double' using the as_float or as_double conversion functions. Example: float gain = as_float(12_dB); Relational operations are allowed. For example: if (gain > 3_dB) // 3_dB is a decibel literal (see below) s = lp(s); Arithmetic operations are allowed. For example: auto total_duration = 3_ms + 5_ms; // 3_ms and 5_ms are duration literals Where appropriate, arithmetic with raw types are allowed. For example: auto harmonic = 440_Hz * 4; // 440_Hz is a frequency literal To augment the wealth of value types, the Q DSP library makes abundant use of user-defined literals. We take advantage of C++ type safe user-defined literals, instead of the usual float or double which can be unsafe when values of different units (e.g. frequency vs. duration) are mismatched. The Q DSP library makes abundant use of user-defined literals for units such as time, frequency and volume. For example, we use 24_dB, instead of a unit-less 24 or worse, a non-intuitive, unit-less 15.8 —the gain equivalent of 24_dB. Such constants also make the code very readable, another objective of this library. Q Literals are placed in the namespace q::literals. The namespace is sparse enough to be hoisted into your namespace using using namespace: To use these literals, include the literals.hpp header: #include then use the literals namespace somewhere in a scope where you need it: using namespace q::literals; Here are some example expressions: 82.4069_Hz 440_Hz 1.5_KHz 1.5_kHz 1_kHz 0.5_MHz 3_MHz 10.3_s 1_s 20.5_ms 1_ms 10.5_us 500_us -3.5_dB 10_dB 2_pi 0.5_pi Here’s the list of available literals: // frequency constexpr frequency operator \"\" _Hz(long double val); constexpr frequency operator \"\" _Hz(unsigned long long int val); constexpr frequency operator \"\" _KHz(long double val); constexpr frequency operator \"\" _KHz(unsigned long long int val); constexpr frequency operator \"\" _kHz(long double val); constexpr frequency operator \"\" _kHz(unsigned long long int val); constexpr frequency operator \"\" _MHz(long double val); constexpr frequency operator \"\" _MHz(unsigned long long int val); // duration constexpr duration operator \"\" _s(long double val); constexpr duration operator \"\" _s(unsigned long long int val); constexpr duration operator \"\" _ms(long double val); constexpr duration operator \"\" _ms(unsigned long long int val); constexpr duration operator \"\" _us(long double val); constexpr duration operator \"\" _us(unsigned long long int val); // decibel constexpr decibel operator \"\" _dB(unsigned long long int val); constexpr decibel operator \"\" _dB(long double val); // pi constexpr long double operator \"\" _pi(long double val); constexpr long double operator \"\" _pi(unsigned long long int val) In the realm of electronic music, there are processors and synthesizers, whose definitions overlap somewhat and differ primarily in how they handle input and output. The processor receives one or more input samples and generates one or more output samples according to a specific processing algorithm. A synthesizer, on the other hand, generates sound from scratch without using any samples. The C++ function object is the most basic building block. In the Q world, both processors and synthesizers are simply function objects, which can be composed to form more complex functions. A function object can accept zero or more input values and generate zero or more output values. Function objects are instantiated from struct or class declarations in the header files. In this example, we instantiate hypothetical f_x and g_x structs: auto f = f_x{}; auto g = g_x{}; Syntactically, you can use these function objects just like any other function. Here’s an example function call invocation for the single input function object, f instantiated above: float r = f(s); where s is the input value, and f(s) returns a result and stores it in the variable r. Composition by passing the result of f to g, like this: float r = g(f(s)); can be encapsulated using function composition in a class or struct: struct fg_x { float operator()(float s) const { return g(f(s)); } f_x f; g_x g; }; Here, we encapsulate f_x and g_x inside the composed function object struct fg_x. We can then instantiate a function object for fg_x just like we would above. The Q DSP library uses fine-grained and reusable function object structs or classes like this. Such reusable components are composed to form more powerful higher level composites. Here’s the code example in the library for signal conditioning: inline float signal_conditioner::operator()(float s) { // High pass s = _hp(s); (1) // Pre clip s = _clip(s); (2) // Dynamic Smoother s = _sm(s); (3) // Signal envelope auto env = _env(std::abs(s)); (4) // Noise gate auto gate = _gate(env); (5) s *= _gate_env(gate); (6) // Compressor + makeup-gain auto env_db = decibel(env); auto gain = as_float(_comp(env_db)) * _makeup_gain; (7) s = s * gain; _post_env = env * gain; return s; } We’re showing only the operator() for brevity. But take note that the code uses multiple function objects for various processing functions that correspond to these class member variables: private: clip _clip; (2) highpass _hp; (1) dynamic_smoother _sm; (3) fast_envelope_follower _env; (4) float _post_env; compressor _comp; (7) float _makeup_gain; onset_gate _gate; (5) envelope_follower _gate_env; (6) }; The complete code can be found here: signal_conditioner.hpp Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Fundamentals","component":"q","version":"v1.0_beta","name":"fundamentals","url":"/q/v1.0_beta/fundamentals.html","titles":[{"text":"Layers","hash":"_layers","id":1},{"text":"Dependencies","hash":"_dependencies","id":2},{"text":"File Structure","hash":"_file_structure","id":3},{"text":"Namespace","hash":"_namespace","id":4},{"text":"Data Types","hash":"_data_types","id":5},{"text":"Literals","hash":"_literals","id":6},{"text":"Examples","hash":"_examples","id":7},{"text":"Frequency","hash":"_frequency","id":8},{"text":"Duration","hash":"_duration","id":9},{"text":"Decibel","hash":"_decibel","id":10},{"text":"Pi","hash":"_pi","id":11},{"text":"Function Objects","hash":"_function_objects","id":12}]},"71":{"id":71,"text":"is a cross-platform C++ library for Audio Digital Signal Processing. Aptly named after the \"Q factor\", a dimensionless parameter that describes the quality of a resonant circuit, the Q DSP Library is designed to be simple and elegant, as the simplicity of its name suggests, and efficient enough to run on small microcontrollers. Q leverages the power of modern C++ and efficient use of functional programming techniques, especially function composition using fine-grained and reusable function objects (both stateless and stateful), to simplify complex DSP programming tasks without sacrificing readability. Q is the host of some experimental Music related DSP facilities The Author has accumulated over the years as part of research and development, and will continue to evolve to accommodate more facilities necessary for the fulfillment of various Music related projects. The library is Open Source and released under the very liberal MIT license. Show Table of Contents Setup and Installation Quick Start Fundamentals Reference Units frequency duration period phase phase_iterator decibel interval pitch Biquad Low Pass Filter High Pass Filter Band Pass Filter; Constant Skirt Gain Band Pass Filter; Constant Peak Gain All Pass Filter Notch Filter Peaking Filter Low Shelf Filter High Shelf Filter Envelope Peak Envelope Follower AR Envelope Follower Fast Envelope Follower Fast Averaging Envelope Follower Fast RMS Envelope Follower Dynamic Compressor Soft Knee Compressor Expander AGC Miscellaneous Delay Moving Sum Moving Average Noise Gate Onset Gate One Pole Low Pass DC Block Synthesizers Sine Wave Oscillator Saw Wave Oscillator Square Wave Oscillator Pulse Wave Oscillator Triangle Wave Oscillator Sine Cosine Generator Blackman Window Generator Hann Window Generator Hamming Window Generator Linear Ramp Generator Exponential Ramp Generator Envelope Generator Support Basic Concepts Multi Buffer Audio Stream MIDI Messages MIDI Processor Utility Ring Buffer Fractional Ring Buffer Audio MIDI I/O Audio Device Audio Stream Audio File MIDI Device MIDI Stream Joel got into electronics and programming in the 80s because almost everything in music, his first love, is becoming electronic and digital. Since then, he builds his own guitars, effect boxes and synths. He enjoys playing distortion-laden rock guitar, composes and produces his own music in his home studio. Joel de Guzman is the principal architect and engineer at Cycfi Research. He is a software engineer specializing in advanced C++ and an advocate of Open Source. He has authored a number of highly successful Open Source projects such as Boost.Spirit, Boost.Phoenix and Boost.Fusion. These libraries are all part of the Boost Libraries, a well respected, peer-reviewed, Open Source, collaborative development effort. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Q Audio DSP Library","component":"q","version":"v1.0_beta","name":"index","url":"/q/v1.0_beta/index.html","titles":[{"text":"Introduction","hash":"_introduction","id":1},{"text":"Table of Contents","hash":"_table_of_contents","id":2},{"text":"The Author","hash":"_the_author","id":3}]},"72":{"id":72,"text":"Here’s a quick \"Hello, World\" example that highlights the simplicity of the Q DSP Library: a delay effects processor. The full example can be found here: example/delay.cpp. The example loads a pre-recorded wav file and plays it back with processing. The raw audio source will be played in the left channel while the delayed signal will be played in the right channel. Pretty much as straightforward as possible. The audio will be played using the currently selected audio device. The final audio output can be heard below: Your browser does not support the audio tag. // fractional delay (1) q::delay _delay{350_ms, 44100}; // Mix the signal s, and the delayed signal (where s is the incoming sample) (2) auto _y = s + _delay(); // Feed back the result to the delay (2) _delay.push(_y * _feedback); Normally, there will be a processing loop that receives the incoming samples, s. The code above are placed: 1 Before the processing loop. 2 Inside inside the processing loop. Typically, you encapsulate the code inside a class where _delay, _y and _feedback are member variables. 44100 is the desired sampling rate. _feedback is the amount of feedback desired (anything from 0.0 to less than 1.0, e.g. 0.85). 350_ms is the delay duration. Take note of 350_ms. Here, we take advantage of C++ type safe user-defined literals, instead of the usual float or double which can be unsafe when values of different units (e.g. frequency vs. duration) are mismatched. The Q DSP library makes abundant use of user-defined literals for units such as time, frequency and volume. For example, we use 24_dB, instead of a unit-less 24 or worse, a non-intuitive, unit-less 15.8 —the gain equivalent of 24_dB. Such constants also make the code very readable, another objective of this library. Processors such as q::delay are C++ function objects that can be composed to form more complex processors. For example if you want to filter the delayed signal with a low-pass filter with a 1 kHz cutoff frequency, you apply the q::lowpass filter over the result of the delay: q::lowpass _lp{1_kHz, 44100}; then insert the filter where it is needed in the processing loop: // Add the signal s, and the delayed, low-pass filtered signal auto _y = s + _lp(_delay()); Let us move on to a more elaborate example. How about a fully functional, bandwidth limited square wave synthesizer with ADSR envelope that controls an amplifier and a resonant filter and control the note-on and note-off using MIDI? Sounds good? This example is complete and self-contained in one .cpp file, kept as simple as possible to highlight the ease-of-use. The full example can be found here: example/square_synth.cpp. In order to run this example, you will need a MIDI input device connected to your system, preferrably a keyboard. Make sure you have at least one installed. If you do not have a physical MIDI input device, you can install one of the MIDI onscreen keyboards. For example, MidiKeys is a small application for MacOS that presents a MIDI keyboard onscreen. Here’s a short video clip: After building the program, make sure you have a MIDI keyboard connected before starting the application. At startup, the app will present you with a list of available MIDI hardware and will ask you what you want to use. Example: ================================================================================ Available MIDI Devices (ID : \"Name\" inputs/outputs): 0 : \"Quantum 2626\" 1/0 1 : \"Code 61 USB MIDI\" 1/0 2 : \"Code 61 MIDI DIN\" 1/0 3 : \"Code 61 Mackie/HUI\" 1/0 4 : \"Code 61 Editor\" 1/0 5 : \"Quantum 2626\" 0/1 6 : \"Code 61 USB MIDI\" 0/1 7 : \"Code 61 MIDI DIN\" 0/1 8 : \"Code 61 Mackie/HUI\" 0/1 9 : \"Code 61 Editor\" 0/1 ================================================================================ Choose MIDI Device ID: 1 And then a list of audio devices to choose from. Example: ================================================================================ Available Audio Devices (ID : \"Name\" inputs/outputs): 1 : \"MacBook Air Microphone\" 1/0 2 : \"MacBook Air Speakers\" 0/2 3 : \"Quantum 2626\" 26/26 ================================================================================ Choose Audio Device ID: 3 Take note that the demo is a console application. The Q library does not have a GUI, for good reason! We want to keep it as simple as possible. The GUI is taken cared of by other libraries (e.g. Elements). After choosing the MIDI and Audio driver, the synth is playable. The synth is monophonic and responds to velocity only, for simplicity. There are more demo applications in the example directory. After this quick tutorial, feel free to explore. Here’s the actual synthesizer with the processing loop: struct my_square_synth : q::audio_stream { my_square_synth(q::adsr_envelope_gen::config env_cfg, int device_id) : audio_stream(q::audio_device::get(device_id), 0, 2) , env(env_cfg, this->sampling_rate()) , filter(0.5, 0.8) {} void process(out_channels const& out) { auto left = out[0]; auto right = out[1]; for (auto frame : out.frames()) { // Generate the ADSR envelope auto env_ = env() * velocity; // Set the filter frequency filter.cutoff(env_); // Synthesize the square wave auto val = q::square(phase++); // Apply the envelope (amplifier and filter) with soft clip val = clip(filter(val) * env_); // Output right[frame] = left[frame] = val; } } q::phase_iterator phase; // The phase iterator q::adsr_envelope_gen env; // The envelope generator q::reso_filter filter; // The resonant filter q::soft_clip clip; // Soft clip float velocity; // Note-on velocity }; Our synth, a subclass of q::audio_stream, sets up buffers for the input and output audio streams and presents those to our processing loop (the process function above). In this example, we setup an audio stream with the selected device, no inputs and two (stereo) outputs: audio_stream(q::audio_device::get(device_id), 0, 2) Behind the scenes, there’s a lot going on here, actually. But you will notice that emphasis is given to making the library very readable, easy to understand and follow, by breaking down complex tasks into smaller manageable tasks and using function composition at progressively higher levels, while maintaining simplicity and clarity of intent. The synthesizer above is composed of smaller building blocks: fine grained C++ function objects. For example, here’s the square wave oscillator (bandwidth limited using poly_blep). For now, we will skim over details such as the adsr_envelope_gen, phase, and phase_iterator, and this thing called poly_blep. The important point, exemplified here, is that we want to keep our building blocks as simple and minimal as possible. We will cover these in greater detail later. The astute reader may notice that our square_osc class does not even have state! struct square_osc { constexpr float operator()(phase p, phase dt) const { constexpr auto middle = phase::middle(); auto r = p < middle ? 1.0f : -1.0f; // Correct rising discontinuity r += poly_blep(p, dt); // Correct falling discontinuity r -= poly_blep(p + middle, dt); return r; } constexpr float operator()(phase_iterator i) const { return (*this)(i._phase, i._incr); } }; constexpr auto square = square_osc{}; Yeah, that’s the complete oscillator. That’s all there is to it! The modern C++ savvy programmer will immediately notice the use of constexpr, applied judiciously all throughout the library. Such modern C++ facilities allow the compiler to generate extremely efficient code, even those that are generated at compile time. That means, for this example, that one can build an oscillator at compile time if needed, perhaps with constant wavetable results stored in read-only memory. The midi_processor takes care of MIDI events. Your application will have its own MIDI processor that deals with MIDI events that you are interested in. For this simple example, we simply want to process note-on and note-off events. On note-on events, our MIDI processor sets `my_square_synth’s note frequency and velocity and triggers its envelope for attack. On note-off events, our MIDI processor initiates the envelope’s release. struct my_midi_processor : midi::processor { using midi::processor::operator(); my_midi_processor(my_square_synth& synth) : _synth(synth) {} void operator()(midi::note_on msg, std::size_t time) { _key = msg.key(); auto freq = midi::note_frequency(_key); _synth.phase.set(freq, _synth.sampling_rate()); _synth.env.attack(); _synth.velocity = float(msg.velocity()) / 128; } void operator()(midi::note_off msg, std::size_t time) { if (msg.key() == _key) _synth.env.release(); } std::uint8_t _key; my_square_synth& _synth; }; In the main function, we instantiate my_square_synth and my_midi_processor. The synth constructor, in case you haven’t noticed yet, requires an envelope configuration (envelope::config). Here, we provide our configuration. Take note that in this example, the envelope parameters are constant, for the sake of simplicity, but you can definitely have these controllable by the user by writing your own MIDI processor that deals with MIDI control change messages. Again, take note of the abundant use of user-defined literals for units such as duration (e.g. 100_ms) and level (e.g. -12_dB). auto env_cfg = q::envelope::config { 100_ms // attack rate , 1_s // decay rate , -12_dB // sustain level , 5_s // sustain rate , 1_s // release rate }; my_square_synth synth{ env_cfg }; Then, we create my_midi_processor, giving it a reference to my_square_synth. We’ll also need a midi_input_stream that receives the actual incoming MIDI messages from the chosen hardware. q::midi_input_stream stream; my_midi_processor proc{ synth }; Now we’re all set. We start the synth and enter a loop that exits when the user presses ctrl-c (in which case the running flag becomes false). In the loop, we give our MIDI processor a chance to process incoming MIDI events as they arrive from the MIDI stream: synth.start(); while (running) stream.process(proc); synth.stop(); Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Quick Start","component":"q","version":"v1.0_beta","name":"quick_start","url":"/q/v1.0_beta/quick_start.html","titles":[{"text":"Hello, World","hash":"_hello_world","id":1},{"text":"The DSP Code","hash":"_the_dsp_code","id":2},{"text":"Notes:","hash":"_notes","id":3},{"text":"Hello, Universe","hash":"_hello_universe","id":4},{"text":"The Synthesizer","hash":"_the_synthesizer","id":5},{"text":"The Oscillator","hash":"_the_oscillator","id":6},{"text":"Processing MIDI","hash":"_processing_midi","id":7},{"text":"The Main Function","hash":"_the_main_function","id":8}]},"73":{"id":73,"text":"Here are the basic requirements and dependencies that you need to satisfy in order to use the library: A C++20 compiler git CMake 3.5.1 or higher Additionally, the following libraries are dragged as submodules: The Cycfi infra library portaudio Audio I/O library. portmidi MIDI I/O library. Q currently supports the MacOS, Windows and Linux. In the Mac, we support both XCode. Q is tested with XCode 10 and XCode 11. In Windows, we support Windows 10 with Visual Studio 2022. In Linux, we support both Clang and gcc. Get the latest version with a C++20 compiler. The CLion IDE is supported on all platforms. Clone the Q DSP library and its submodules: git clone --recurse-submodules https://github.com/cycfi/Q.git Make sure you have CMake 3.5.1 or higher. Follow the installation procedure for your platform. There are multiple ways to generate a project file using CMake depending on your platform and desired IDE, but here are some examples for MacOS 10.14, Windows 10 and, and Ubuntu 16.04: Using XCode: CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"Xcode\" ../ If successful, cmake will generate an XCode project in the build directory. Using Visual Studio 2022 CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"Visual Studio 17 2022\" ../ If successful, cmake will generate an Visual Studio solution project in the build directory. Using dpkg packaging system, stock g++ compiler and CodeBlocks. Install portaudio dependencies: sudo apt-get install libasound-dev CD to the Q library: cd Q Make a build directory: 'mkdir build' CD to the the Q/build directory: cd build Invoke cmake: cmake -G\"CodeBlocks - Unix Makefiles\" ../ If successful, cmake will generate a CodeBlocks project in the build directory. Build the project generated by cmake. Try running the tests and examples. If you intend to run the executables directly from the command line, make sure to change the directory to the same level where the audio_files is (e.g. 1 folder up on XCode builds). Some tests and examples may require audio clips that are found in this folder. To make sure everything is OK, try running the sin_osc.cpp example. Make sure your system’s default audio device is set up and ready to play audio. The sin_osc.cpp program should play a 5 second 440 Hz sine wave. You might also want to try running the list_devices.cpp example that prints out all detected audio and MIDI devices. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License","title":"Setup and Installation","component":"q","version":"v1.0_beta","name":"setup","url":"/q/v1.0_beta/setup.html","titles":[{"text":"Requirements","hash":"_requirements","id":1},{"text":"C++20","hash":"_c20","id":2},{"text":"Git","hash":"_git","id":3},{"text":"CMake","hash":"_cmake","id":4},{"text":"Generating the Project using CMake","hash":"_generating_the_project_using_cmake","id":5},{"text":"MacOS","hash":"_macos","id":6},{"text":"Windows","hash":"_windows","id":7},{"text":"Linux","hash":"_linux","id":8},{"text":"Build and Test","hash":"_build_and_test","id":9}]},"74":{"id":74,"text":"The biquad filter is a versatile and effective audio processing tool. The biquad filter is a second-order filter IIR (Infinite Impulse Response) filter, particularly useful for their simplicity and efficiency in implementation. They can be utilized for a variety of filtering operations. The biquad class and its supporting infrastructure are based on Robert Bristow Johnson’s Audio-EQ Cookbook, implemented using modern C++. The biquad serves as the base class for various forms of filters, including: Low pass filter High pass filter Band pass filter All pass filter Notch filter Peaking filter Low shelf filter High shelf filter #include The Q DSP library’s API implementation hides the majority of the details behind the main biquad struct, with the exception of the copy constructor and the function call operator, which accepts a single s (input sample) parameter and returns the processed value. struct biquad { biquad(biquad const&) = default; float operator()(float s); }; s Input sample. f, a, b Objects of type biquad. Expression Semantics biquad(f) Copy construct from f. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type f(s) Process the input sample s and return the filtered result. float lowpass highpass bandpass_csg bandpass_cpg allpass notch peaking lowshelf highshelf","title":"Biquad Filters","component":"q","version":"v1.0_beta","name":"biquad","url":"/q/v1.0_beta/reference/biquad.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"biquad","hash":"_biquad","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Copy Constructor and Assignment","hash":"_copy_constructor_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8},{"text":"Derived Classes","hash":"_derived_classes","id":9}]},"75":{"id":75,"text":"Audio dynamic range processing DSP refers to the manipulation of an audio signal’s dynamic range. The dynamic range of an audio signal is the difference between its loudest and quietest components. Compression, Expansion, Limiting, and Gating are a few common types of dynamic range processing used in audio DSP. Such processing can enhance sound quality, minimize or eliminate noise, and create creative effects. The dynamic range processors in the Q DSP library are unique in that they do not process audio waveform samples directly. Instead, they operate on the envelope of the audio signal, represented as decibel, perform computations in the logarithmic domain, and return a processed envelope, also represented as decibel. As an example, here’s the processing code for the compressor: decibel compressor::operator()(decibel env) const { if (env <= _threshold) return 0_dB; return _slope * (_threshold - env); } This is a hard knee compressor: a type of compressor in which the compression ratio changes abruptly when the input signal exceeds the threshold level, known as the knee point. Both hard knee and soft knee compressors are supported by the Q DSP library. The code accepts an envelope input, env, in decibels and outputs a compressed envelope also in decibels. Processing is done in the logarithmic domain, where addition of two values is equivalent to multiplying their corresponding linear values, and multiplication of two values is equivalent to raising their corresponding linear values to a power. The envelope follower, which is responsible for generating the input envelope for the compressor, is implemented outside of the compressor class. The objective is separation of concerns and the flexibility to use various envelope followers. Compared to their linear counterparts, performing computations in the logarithmic domain is simpler, more intuitive, and makes the code easier to understand while maintaining the same level of efficiency. The compressor example above and all dynamic range processors in the Q DSP library are essentially envelope processors. They receive envelopes, process envelopes, and return envelopes. Since envelope processors operate on the envelope, perform computations in the logarithmic domain, and return a processed envelope, multiple envelope processors can be cascaded. For instance, you can use a single envelope follower and apply the derived envelope to an expander and then pass the result to a compressor, like in the diagram below: A specific use-case for cascading an expander and a compressor, like in the example above, is when you want to use the expander as a noise gate, with soft, non-abrupt gating, set at a threshold just above the noise floor. Then, setting the threshold of the compressor to a high value to even out the dynamic range. The compressor and expander in this case work on different regions of the full dynamic range. But there are also useful cases where the overlap of dynamic ranges the processors are working on is advantageous. The compressor-limiter is a good example. Likewise, multiple compressors with variable thresholds and ratios are another example. By cascading multiple dynamic range processors, we can design efficient multi-function processors like the compressor-limiter with gate (transfer response graph at the right).","title":"Dynamic","component":"q","version":"v1.0_beta","name":"dynamic","url":"/q/v1.0_beta/reference/dynamic.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Example","hash":"_example","id":2},{"text":"Key Points","hash":"_key_points","id":3},{"text":"Cascading","hash":"_cascading","id":4}]},"76":{"id":76,"text":"This section deals with envelope extraction from signals. In audio DSP, an envelope refers to the time-varying changes of a signal. It essentially represents the \"shape\" of the signal in terms of its moment-to-moment changes. Extracting an envelope from a signal is particularly important because they can be used for a variety of processing tasks, including controlling the perceived loudness of a signal, reducing noise, emphasizing particular elements of the signal, modulating amplitude, frequency, and other sound properties, to name a few. Envelopes are typically, but not always, related to amplitude changes, although it can sometimes be related to other parameters like pitch or frequency, phase, and filter cutoff, to name a few. This section will only cover amplitude envelope extraction. Figure 1. Output behavior of different types of envelope followers. The amplitude envelope can also be used to extract dynamic features from a sound. As an example, onset detection is a method for determining the beginning of each musical note. The most basic onset detection scheme involves analyzing the amplitude envelope and detecting sudden changes in amplitude that coincide with the start of each note. [1] The Q DSP library includes a variety of envelope extractors, ranging from the most basic peak envelope follower to the more precise, but computationally demanding, fast RMS envelope follower. Each has distinct strengths, characteristics, and tradeoffs that can be evaluated based on the application’s specific requirements. Copyright (c) 2014-2023 Joel de Guzman. All rights reserved. Distributed under the MIT License 1. An accurate onset detection mechanism that goes far beyond the aforementioned simple onset detection scheme is included in the Hz DSP library, an offshoot of the Q DSP library.","title":"Envelope","component":"q","version":"v1.0_beta","name":"envelope","url":"/q/v1.0_beta/reference/envelope.html","titles":[]},"77":{"id":77,"text":"q_io is the Audio and MIDI I/O layer that provides cross-platform audio and MIDI host connectivity. As stated in the Fundamentals section, the q_io layer is optional. The rest of the q_lib layer is usable without it. q_io is primarily used in the tests and examples, but can be easily replaced by other mechanisms in an application. Plugin libraries for DAWs (digital audio workstations), for example, have their own audio and MIDI I/O mechanisms. q_io was intended to be very minimal. The entire layer is comprised of a handful of classes. The diagram below depicts the data transfer between the various components, an application, and the host operating system. audio_device audio_device represents individual audio interfaces on the host platform. There are typically one or more audio devices available. Each device has a name, device identifier, and specific capabilities, including sample rate and the number of input and output channels supported. audio_stream audio_stream handles audio input and output to and from an audio device. Parameters such as sample rate, sample format, and buffer size are specified when opening the audio stream. Audio streams can be input only, output only, or both input and output. Data is transmitted asynchronously between an open audio stream and the application. audio_file audio_file is a set of small and lightweight classes for reading and writing WAV (Waveform Audio File Format) files. It offers a straightforward and intuitive interface for working with WAV audio data. midi_device midi_device is an abstraction which encapsulates the properties and functionality of a MIDI interface. Each MIDI device includes information such as its name, device identifier, and the number of inputs and outputs available. midi_input_stream The midi_input_stream class facilitates MIDI communication and data transmission of MIDI messages between a MIDI device and an application. The application processes audio, asynchronoously, via user provided process functions as documented in the Audio Stream Client Interface. The MIDI Processor is a user provided class that acts as an intermediary between the application and the MIDI stream, facilitating communication and data transmission of MIDI messages.","title":"Audio MIDI I/O","component":"q","version":"v1.0_beta","name":"q_io","url":"/q/v1.0_beta/reference/q_io.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Components and Data Flow","hash":"_components_and_data_flow","id":2}]},"78":{"id":78,"text":"Synthesizers are one of the most engaging parts of any DSP library, as they involve the actual creation of sounds. What makes synthesizers so engaging is the level of control they offer over sound creation. A synthesizer allows a user to shape and mold a sound by adjusting parameters such as waveform shape, frequency, amplitude, and filter settings. This level of control enables users to create expressive and unique sounds that can be used in a variety of contexts, ranging from music production to sound design for film and video games. The advancements in DSP technology have made synthesizers even more powerful and flexible. Users can now create sounds that were previously impossible to achieve with traditional analog synthesizers. The Q DSP library provides some common synthesisers such as sine-wave, square, pulse, triangle and saw-tooth, as well as various generators for sculpting the sound envelopes with controls for attack, decay, hold sustain and release. These are designed as moduler building blocks that are combined to form more complex synthesisers. Oscillator is a concept representation of an oscillator that generates periodic waveforms. Oscillators are function objects that take in a phase_iterator: an iterator over the phase. The output is typically a floating point value. namespace cycfi::q::concepts { template concept Oscillator = std::copy_constructible && std::assignable_from && std::default_initializable && requires(T o, T a, T b, phase_iterator pi) { o(pi); // Generate a periodic waveform given `{phase_iterator}`, `pi`. }; } o, a, b Instances of types that conform to Oscillator. pi Object of type phase_iterator. Expression Semantics Oscillator() Default construct an Oscillator. Oscillator(o) Copy construct from o. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type o(pi) Generate a periodic waveform given phase_iterator, pi. decltype(o(pi)) BasicOscillator is a refinement of the Oscillator concept. BasicOscillator is not bandwidth limited. This is is suitable in certain cases. Moreover, some oscillators are inherently bandwidth limited. namespace cycfi::q::concepts { template concept BasicOscillator = Oscillator && requires(T o, phase ph) { o(ph); // Generate a periodic waveform given `{phase}`, `pi`. }; } In addition to valid expressions for Oscillator, BasicOscillator allows these expressions. o Instance of a type that conforms to BasicOscillator. ph Object of type phase. Expression Semantics Return Type o(ph) Generate a periodic waveform given phase, ph. decltype(o(ph)) Waveforms with hard discontinuities such as sawtooth and square waves can generate harmonics that extend beyond the Nyquist frequency range or half the sampling rate. Oscillators may be bandwidth limited to ensure that the harmonics generated fall within the Nyquist frequency range to prevent aliasing, which causes unwanted spectral artifacts in the signal. BandwidthLimitedOscillator is a refinement of the Oscillator concept. These oscillators are bandwidth limited. namespace cycfi::q::concepts { template concept BandwidthLimitedOscillator = Oscillator && requires(T o, phase ph, phase dt) { o(ph, dt); // Generate a periodic waveform given `{phase}`, `pi` // and another `{phase}`, `dt` representing the delta // phase between two samples of the waveform (this is // equivalent to the `_step` member function of the // `{phase_iterator}`). (ph))` }; } In addition to valid expressions for Oscillator, BandwidthLimitedOscillator allows these expressions. o Instance of a type that conforms to BasicOscillator. ph, dt Object of type phase. Expression Semantics Return Type o(ph, dt) Generate a periodic waveform given phase, ph and another phase, dt representing the delta phase between two samples of the waveform (this is equivalent to the _step member function of the phase_iterator). decltype(o(ph)) Generator is a concept representation of a generator. Generators are function objects that take no function arguments and return an output that is typically a floating point value. Generators are typically non-periodic. Generators are useful for constructing complex signals, envelopes and tapers (also known as window functions). namespace cycfi::q::concepts { template concept Generator = requires(T v, T o, T a, T b, phase_iterator pi) { T(o); // Copy construct from `o`. a = b; // Assign `b` to `a`. v(); // Generate a signal. }; } g, a, b Instances of types that conform to Generator. Expression Semantics Generator(g) Copy construct from g. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type g() Generate a signal. decltype(g(pi)) Ramp is a concept representation of a generator that generates non-periodic signals from 0.0 to 1.0 or from 1.0 to 0.0. It is a refinement of the Generator concept. Ramp(s) are suitable for generating envelopes. A Ramp represents a segment of an envelope. Essentially, an envelope comprises two or more upward and downward `Ramp`s. namespace cycfi::q::concepts { template concept Ramp = Generator && requires(T v, duration w, float sps) { T(w, sps); // Construct a Ramp given duration, w, and sps. v.reset(); // Reset the Ramp to the start. v.config(w, sps); // Configure a Ramp given duration, w, and sps. }; } In addition to valid expressions for Generator, Ramp allows these expressions. r Instance of a type that conforms to Ramp. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics Ramp(w, sps) Construct a Ramp given duration, w, and sps. C++ brace initialization may also be used. Expression Semantics r.reset() Reset the Ramp to the start. v.config(w, sps) Configure a Ramp given duration, w, and sps.","title":"Oscillators","component":"q","version":"v1.0_beta","name":"synth","url":"/q/v1.0_beta/reference/synth.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Oscillator","hash":"_oscillator","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"BasicOscillator","hash":"_basicoscillator","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10},{"text":"Notation","hash":"_notation_2","id":11},{"text":"Function Call","hash":"_function_call_2","id":12},{"text":"BandwidthLimitedOscillator","hash":"_bandwidthlimitedoscillator","id":13},{"text":"Declaration","hash":"_declaration_3","id":14},{"text":"Expressions","hash":"_expressions_3","id":15},{"text":"Notation","hash":"_notation_3","id":16},{"text":"Function Call","hash":"_function_call_3","id":17},{"text":"Generator","hash":"_generator","id":18},{"text":"Declaration","hash":"_declaration_4","id":19},{"text":"Expressions","hash":"_expressions_4","id":20},{"text":"Notation","hash":"_notation_4","id":21},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_2","id":22},{"text":"Function Call","hash":"_function_call_4","id":23},{"text":"Ramp","hash":"_ramp","id":24},{"text":"Declaration","hash":"_declaration_5","id":25},{"text":"Expressions","hash":"_expressions_5","id":26},{"text":"Notation","hash":"_notation_5","id":27},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_3","id":28},{"text":"Mutators","hash":"_mutators","id":29}]},"79":{"id":79,"text":"The Q DSP library processes audio signals by applying various audio processors to sample inputs. These processors typically operate with floating-point input samples in the typical -1.0 to 1.0 range. However, the values are not restricted to sampled signals. For instance, signal envelopes are best represented as decibels processed in the logarithmic domain. Consequently, dynamic-range processors such as compressors and expanders accept decibel as input and return decibel as output. The Q DSP library is typeful and typesafe, which means that each data type is explicitly defined and enforced. This is crucial because it avoids the potentially catastrophic errors that could result from mismatching values of different types. For example, if all values were just raw floating point types, it would be possible to accidentally mix up the frequency and decibel values. Mistakenly interchanging frequency and decibel values could result in erroneous processing of the audio signal and will lead to undefined results. This document aims to provide comprehensive documentation of the fundamental data types used by the Q DSP library. These basic units are utilized consistently throughout the library and serve as the basis for quantifying specific parameters, such as decibels (dB) for signal level and hertz (Hz) for frequency. Unit is a concept representation of a physical unit. U Unit type. T Underlying arithmetic value type. v Arithmetic value. a Instance of a type that conforms to Unit. b Object with the same unit_type as a. A Type of object a. B Type of object b. The arithmetic value concept is documented in Basic Concepts and declared in this C++ concept as: namespace cycfi::q::concepts { template concept Arithmetic = std::integral || std::floating_point; } Expression Semantics Type U::value_type Get the underlying arithmetic value type. T U::unit_type Get the unique unit type. Each Unit type has its own unique unit type to distinguish from differnt Unit types. unspecified Compatible unit types A and B are allowed for certain expressions as defined below. These types conform to the SameUnit concept declared below: namespace cycfi::q::concepts { template concept SameUnit = std::same_as; } Basically, the declaration states that unit types A and B are the same if they have the same unit_type. Expression Semantics U(v) Construct a Unit from an arithmetic value v. U(b) Copy construct from b. a = b Assign b, to a. C++ brace initialization may also be used. Expression Semantics Return Type a.rep Direct access to the underlying arithmetic value representation. T Expression Semantics Return Type a == b Equality. bool a == v Equality with an arithmetic value. bool v == b Equality with an arithmetic value. bool a != b Non-Equality. bool a != v Non-Equality with an arithmetic value. bool v != b Non-Equality with aan arithmetic value. bool a b Greater than. bool a > v Greater than with an arithmetic value. bool v > b Greater than with an arithmetic value. bool a >= b Greater than equal. bool a >= v Greater than equal with an arithmetic value. bool v >= b Greater than equal with an arithmetic value. bool Expression Semantics Return Type +a Positive. Unit -a Negative. Unit a += b Add assign. Unit& a += v Add assign with an arithmetic value. Unit& a -= b Subtract assign. Unit& a -= v Subtract assign with an arithmetic value. Unit& a *= v Multiply assign with an arithmetic value. Unit& a /= v Divide assign with an arithmetic value. Unit& a + b Addition. Unit a + v Addition with an arithmetic value. Unit v + b Addition with an arithmetic value. Unit a - b Subtraction. Unit a - v Subtraction with an arithmetic value. Unit v - b Subtraction with an arithmetic value. Unit a * v Multiplication with an arithmetic value. Unit v * b Multiplication with an arithmetic value. Unit a / b Division. T a / v Division with an arithmetic value. Unit On binary operations a + b and a - b, where a and b conform to the SameUnit concept (see above), the resuling type will be whichever has the value_type of decltype(a.ref + b.rep), else if both operands are promoted, then whichever has the larger value_type will be chosen. For example, if a.rep is double and b.rep is int, the result will be the unit type of a. frequency duration period phase decibel interval","title":"Units","component":"q","version":"v1.0_beta","name":"units","url":"/q/v1.0_beta/reference/units.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Unit","hash":"_unit","id":2},{"text":"Expressions","hash":"_expressions","id":3},{"text":"Notation","hash":"_notation","id":4},{"text":"Arithmetic Concept","hash":"_arithmetic_concept","id":5},{"text":"Type Definitions","hash":"_type_definitions","id":6},{"text":"SameUnit Concept","hash":"_sameunit_concept","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Access","hash":"_access","id":9},{"text":"Comparison","hash":"_comparison","id":10},{"text":"Arithmetic","hash":"_arithmetic","id":11},{"text":"Unit Promotion","hash":"_unit_promotion","id":12},{"text":"Models","hash":"_models","id":13}]},"80":{"id":80,"text":"All pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the allpass class. #include struct allpass : biquad { allpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, allpass allows these expressions. ap Object of type allpass. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics allpass(f, sps [, q]) Construct an allpass filter from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics ap.config(f, sps [, q]) Configure an allpass from f, sps and optional q (defaults to 0.707).","title":"All Pass Filter","component":"q","version":"v1.0_beta","name":"allpass","url":"/q/v1.0_beta/reference/biquad/allpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"81":{"id":81,"text":"Band pass second-order IIR (Infinite Impulse Response) filter with constant 0 dB peak gain. This filter is embodied by the allpass class. #include struct bw (1) { double val; // in octaves }; struct bandpass_cpg : biquad { bandpass_cpg(frequency f, float sps, bw _bw); bandpass_cpg(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, bandpass_cpg allows these expressions. bf Object of type bandpass_cpg. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics bandpass_cpg(f, sps [, q]) Construct a bandpass_cpg filter from f, sps and optional q (defaults to 0.707). bandpass_cpg(f, sps, bw{b}) Construct a bandpass_cpg filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(f, sps) Configure a bandpass_cpg filter from f, sps. q defaults to 0.707 bf.config(f, sps [, q]) Configure a bandpass_cpg filter from f, sps and optional q (defaults to 0.707). bf.config(f, sps, bw{b}) Configure a bandpass_cpg filter from f, sps and b (bandwidth).","title":"Band Pass Filter; Constant Peak Gain","component":"q","version":"v1.0_beta","name":"bandpass_cpg","url":"/q/v1.0_beta/reference/biquad/bandpass_cpg.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"82":{"id":82,"text":"Band pass second-order IIR (Infinite Impulse Response) filter with constant skirt gain, peak gain = Q. This filter is embodied by the bandpass_csg class. #include struct bw (1) { double val; // in octaves }; struct bandpass_csg : biquad { bandpass_csg(frequency f, float sps, bw _bw); bandpass_csg(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, bandpass_csg allows these expressions. bf Object of type bandpass_csg. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics bandpass_csg(f, sps [, q]) Construct a bandpass_csg filter from f, sps and optional q (defaults to 0.707). bandpass_csg(f, sps, bw{b}) Construct a bandpass_csg filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(f, sps [, q]) Configure a bandpass_csg filter from f, sps and optional q (defaults to 0.707). bf.config(f, sps, bw{b}) Configure a bandpass_csg filter from f, sps and b (bandwidth).","title":"Band Pass Filter; Constant Skirt Gain","component":"q","version":"v1.0_beta","name":"bandpass_csg","url":"/q/v1.0_beta/reference/biquad/bandpass_csg.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"83":{"id":83,"text":"High pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the highpass class. #include struct highpass : biquad { highpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, highpass allows these expressions. hp Object of type highpass. f Object of type frequency. sps Floating point value representing samples per second. `q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics highpass(f, sps [, q]) Construct a highpass filter from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics hp.config(f, sps [, q]) Configure a highpass from f, sps and optional q (defaults to 0.707).","title":"High Pass Filter","component":"q","version":"v1.0_beta","name":"highpass","url":"/q/v1.0_beta/reference/biquad/highpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"84":{"id":84,"text":"High shelf second-order IIR (Infinite Impulse Response) filter. All frequencies above the shelving frequency are either boosted or attenuated by the specified gain in decibels. This filter is embodied by the highshelf class. #include struct highshelf : biquad { highshelf(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, double q = 0.707); }; In addition to valid expressions for biquad, highshelf allows these expressions. hs Object of type highshelf. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics highshelf(g, f, sps [, q]) Construct a highshelf from g, f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics hs.config(g, f, sps [, q]) Configure a highshelf from g, f, sps and optional q (defaults to 0.707).","title":"High Shelf Filter","component":"q","version":"v1.0_beta","name":"highshelf","url":"/q/v1.0_beta/reference/biquad/highshelf.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"85":{"id":85,"text":"Low pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the lowpass class. #include struct lowpass : biquad { lowpass(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, double q = 0.707) }; In addition to valid expressions for biquad, lowpass allows these expressions. lp Object of type lowpass. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics lowpass(f, sps [, q]) Construct a lowpass from f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics lp.config(f, sps [, q]) Configure a lowpass from f, sps and optional q (defaults to 0.707).","title":"Low Pass Filter","component":"q","version":"v1.0_beta","name":"lowpass","url":"/q/v1.0_beta/reference/biquad/lowpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"86":{"id":86,"text":"Low shelf second-order IIR (Infinite Impulse Response) filter. All frequencies below the shelving frequency are either boosted or attenuated by the specified gain in decibels. This filter is embodied by the lowshelf class. #include struct lowshelf : biquad { lowshelf(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, double q = 0.707); }; In addition to valid expressions for biquad, lowshelf allows these expressions. ls Object of type lowshelf. f Object of type frequency. sps Floating point value representing samples per second. q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics lowshelf(g, f, sps [, q]) Construct a lowshelf from g, f, sps and optional q (defaults to 0.707). C++ brace initialization may also be used. Expression Semantics ls.config(g, f, sps [, q]) Configure a lowshelf from g, f, sps and optional q (defaults to 0.707).","title":"Low Shelf Filter","component":"q","version":"v1.0_beta","name":"lowshelf","url":"/q/v1.0_beta/reference/biquad/lowshelf.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"87":{"id":87,"text":"Notch second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the notch class. #include struct bw (1) { double val; // in octaves }; struct notch : biquad { notch(frequency f, float sps, bw _bw); notch(frequency f, float sps, double q = 0.707); void config(frequency f, float sps, bw _bw); void config(frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, notch allows these expressions. nf Object of type notch. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. a [, b, c, d] Required a, optional b, c, d. Expression Semantics notch(f, sps [, q]) Construct a notch filter from f, sps and optional q (defaults to 0.707). notch(f, sps, bw{b}) Construct a notch filter from f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics `nf.config(f, sps [, q]) Configure a notch filter from f, sps and optional q (defaults to 0.707). nf.config(f, sps, bw{b}) Configure a notch filter from f, sps and b (bandwidth).","title":"Notch Filter","component":"q","version":"v1.0_beta","name":"notch","url":"/q/v1.0_beta/reference/biquad/notch.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"88":{"id":88,"text":"Peaking second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the peaking class. #include struct bw (1) { double val; // in octaves }; struct peaking : biquad { peaking(double db_gain, frequency f, float sps, bw _bw); peaking(double db_gain, frequency f, float sps, double q = 0.707); void config(double db_gain, frequency f, float sps, bw _bw); void config(double db_gain, frequency f, float sps, double q = 0.707); }; 1 Utility type to distinguish bandwidth from q which is just a double In addition to valid expressions for biquad, peaking allows these expressions. bf Object of type peaking. f Object of type frequency. sps Floating point value representing samples per second. b Bandwidth (in octaves). q Q or quality factor. g gain (in decibels). a [, b, c, d] Required a, optional b, c, d. Expression Semantics peaking(g, f, sps [, q]) Construct a peaking filter from g, f, sps and optional q (defaults to 0.707). peaking(g, f, sps, bw{b}) Construct a peaking filter from g, f, sps and b (bandwidth). C++ brace initialization may also be used. Expression Semantics bf.config(g, f, sps [, q]) Configure a peaking filter from g, f, sps and optional q (defaults to 0.707). bf.config(g, f, sps, bw{b}) Configure a peaking filter from g, f, sps and b (bandwidth).","title":"Peaking Filter","component":"q","version":"v1.0_beta","name":"peaking","url":"/q/v1.0_beta/reference/biquad/peaking.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"89":{"id":89,"text":"The AGC, or automatic gain control, compares the envelope, env, to an external reference, ref, and increases or decreases the gain to maintain a constant output level. A class named agc implements AGC. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The agc is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. agc is a feedforward type AGC.\" In contrast to feedback AGCs, feedforward AGCs derive their control signal only from the input signal and an external reference set-point. #include struct agc { agc(decibel max); decibel operator()(decibel env, decibel ref) const; void max(decibel max_); decibel max() const; }; g, a, b Objects of type agc max, ref Objects of type decibel Expression Semantics agc(max) Construct an agc from max (maximum) gain. agc(g) Copy construct from agc g. a = b Assign b to a. C++ brace initialization may also be used. As previously stated, the agc compares the envelope, env, to an external reference, ref, and adjusts the gain accordingly to maintain a constant output level. However, there is a maximum gain that can be applied when the signal falls below the reference. The max constructor parameter specified this \"maximum\" gain. Expression Semantics Return Type g(env, ref) Process the input envelope env by increasing or decreasing the gain if env goes above, or falls below ref to maintain a constant output level. decibel The output is the adjusted gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(g(env, ref)); (1) auto out = signal * gain; (2) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by agc and converted to float. 2 The signal multiplied by gain. Expression Semantics Return Type g.max(max) Set the agc maximum gain. void Expression Semantics Return Type g.max() Get the agc maximum gain. float","title":"AGC","component":"q","version":"v1.0_beta","name":"agc","url":"/q/v1.0_beta/reference/dynamic/agc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"90":{"id":90,"text":"The compressor dynamically modulates the gain when the signal envelope rises above a specified threshold. The compressor reduces the level of high-level signals (signals above the threshold) while leaving low-level signals unchanged. The compressor is implemented by a class named compressor. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The compressor can be utilized as a limiter by setting its threshold to the desired limit level and the ratio to a high value (e.g. 10:1 or greater). The limiter prevents the signal from exceeding a certain threshold level. When the input signal exceeds the threshold, the compressor squashes the output level. For this to be effective, you will need to use an envelope follower with fast attack time to ensure that the limiting action is instantaneous, preventing transient peaks from exceeding the threshold level. The compressor is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. compressor is a hard knee compressor: a type of compressor in which the compression ratio changes abruptly when the input signal exceeds the threshold level, known as the knee point. Both hard knee and soft knee compressors are supported by the Q DSP library. #include struct compressor { compressor(decibel threshold, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void ratio(float ratio); decibel threshold() const; float ratio() const; }; comp, a, b Objects of type compressor t, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics compressor(t, r) Construct a compressor from t (threshold) and r (ratio). compressor(comp) Copy construct from compressor comp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"n:1\" notation for compressors, the ratio parameter is 1/n, thereby the ratio for compressors is normally from 0.0…​1.0. For example, a 4:1 compression is 1/4 or 0.25. Signal rising above the threshold is attenuated, compressing the signal. For every dB above the threshold, t, the signal is attenuated by n dB. For example, with a ratio of 4:1 (0.25), 1dB above the threshold is attenuated by 4dB. Expression Semantics Return Type comp(env) Process the input envelope env and return the compressed result. decibel The output is the compressed gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(comp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by comp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Typically, you add some makeup gain after compression to compensate for the gain reduction. Expression Semantics Return Type comp.threshold(t) Set the compressor threshold. void comp.ratio(r) Set the compressor ratio. void Expression Semantics Return Type comp.threshold() Get the compressor threshold. decibel comp.ratio() Get the compressor ratio. float","title":"Compressor","component":"q","version":"v1.0_beta","name":"compressor","url":"/q/v1.0_beta/reference/dynamic/compressor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"91":{"id":91,"text":"The expander is the inverse of the compressor. The expander dynamically modulates the gain when the signal falls below the threshold, attenuating the signal. The expander is used to increase the dynamic range of an audio signal by reducing the level of low-level signals (signals below the threshold) while leaving high-level signals unchanged, in contrast to a compressor, which reduces the level of high-level signals while leaving low-level signals unchanged. A certain type of expander, called the downward expander, is implemented by a class named expander. The expander can be utilized as a noise gate by setting the threshold to allow only audio signals above the noise floor to pass through. When the audio level falls below the threshold, the expander effectively gates out any low-level noise by reducing the audio signal level down to zero. The result can range from a hard and sudden cutoff to a soft and gradual reduction of signals below the threshold, depending on the desired ratio. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The expander is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. expander is a downward expander. This type of expander gradually decreases the level of the audio signal below the threshold. #include struct expander { expander(decibel threshold, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void ratio(float ratio); decibel threshold() const; float ratio() const; }; exp, a, b Objects of type expander t, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics expander(t, r) Construct a expander from t (threshold), w (width), and r (ratio). expander(exp) Copy construct from expander exp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"1:n\" notation for expanders, the ratio parameter is n, thereby the ratio for expanders is normally from 0.0…​inf. (e.g. 1:4 expansion is 4). A ratio of 1:inf is a hard gate where no signal passes below the threshold. For every dB below the threshold, the signal is attenuated by n dB. For example, with a ratio of 4:1 (4), 1dB below the threshold is attenuated by 4dB. Expression Semantics Return Type exp(env) Process the input envelope env and return the expanded result. decibel The output is the expanded gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(exp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by exp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Expression Semantics Return Type exp.threshold(t) Set the expander threshold. void exp.ratio(r) Set the expander ratio. void Expression Semantics Return Type exp.threshold() Get the expander threshold. decibel exp.ratio() Get the expander ratio. float","title":"Expander","component":"q","version":"v1.0_beta","name":"expander","url":"/q/v1.0_beta/reference/dynamic/expander.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"92":{"id":92,"text":"The compressor dynamically modulates the gain when the signal envelope rises above a specified threshold. The compressor reduces the level of high-level signals (signals above the threshold) while leaving low-level signals unchanged. A type of compressor known as the soft knee compressor is implemented by a class named soft_knee_compressor. Envelope tracking is done externally using an external envelope follower to make it possible to use different types of envelope tracking schemes, the output of which is the supplied argument to the function call operator. The soft_knee_compressor is an envelope processor that operates on the envelope of the audio signal, performs computations in the logarithmic domain, and returns a processed envelope. See Dynamic for further details. soft_knee_compressor is a type of compressor that employs a gradual compression ratio transition. In a soft knee compressor, the compression ratio gradually increases as the input signal level approaches the threshold level, rather than immediately switching to the ratio at the threshold. This produces a smoother and more natural-sounding compression effect. Soft knee compressors are used when a transparent and subtle compression effect is desired. Both hard knee and soft knee compressors are supported by the Q DSP library. #include struct soft_knee_compressor { soft_knee_compressor(decibel threshold, decibel width, float ratio); decibel operator()(decibel env) const; void threshold(decibel val); void width(decibel val); void ratio(float ratio); decibel threshold() const; decibel width() const; float ratio() const; }; comp, a, b Objects of type soft_knee_compressor t, w, env Objects of type decibel r Floating point value for compression ratio. Expression Semantics soft_knee_compressor(t, w, r) Construct a soft_knee_compressor from t (threshold), w (width), and r (ratio). soft_knee_compressor(comp) Copy construct from soft_knee_compressor comp. a = b Assign b to a. C++ brace initialization may also be used. The ratio parameter, r, specifies the amount of gain applied. With the typical \"n:1\" notation for compressors, the ratio parameter is 1/n, thereby the ratio for compressors is normally from 0.0…​1.0. For example, a 4:1 compression is 1/4 or 0.25. Signal rising above the threshold is attenuated, compressing the signal. For every dB above the threshold, t, the signal is attenuated by n dB. For example, with a ratio of 4:1 (0.25), 1dB above the threshold is attenuated by 4dB. Expression Semantics Return Type comp(env) Process the input envelope env and return the compressed result. decibel The output is the compressed gain, also in decibels. Simply multiply the signal by the result converted to float using as_float (or double using as_double). For example: auto gain = as_float(comp(env)); (1) auto left_out = left_signal * gain; (2) auto right_out = right_signal * gain; (3) 1 env is the computed envelope (e.g.) using an envelope follower. gain is obtained from the env processed by comp and converted to float. 2 Stereo left_signal multiplied by gain. 3 Stereo right_signal multiplied by gain. Typically, you add some makeup gain after compression to compensate for the gain reduction. Expression Semantics Return Type comp.threshold(t) Set the soft_knee_compressor threshold. void comp.width(w) Set the soft_knee_compressor width. void comp.ratio(r) Set the soft_knee_compressor ratio. void Expression Semantics Return Type comp.threshold() Get the soft_knee_compressor threshold. decibel comp.width() Get the soft_knee_compressor width. decibel comp.ratio() Get the soft_knee_compressor ratio. float","title":"Soft Knee Compressor","component":"q","version":"v1.0_beta","name":"soft_knee_compressor","url":"/q/v1.0_beta/reference/dynamic/soft_knee_compressor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"93":{"id":93,"text":"AR Envelope Follower, where \"AR\" stands for Attack-Release, is similar to the Peak Envelope Follower but allows you to specify the attack duration. During the attack phase of an audio signal, the AR envelope follower attempts to follow the signal but is constrained by the attack duration. A longer attack period gives a softer response, exponentially increasing. When the signal level drops below the peak, the follower gradually releases the peak level with an exponential decay. The AR envelope follower models the behavior of two resistors, one for attack, and one for release, each connected in series with an ideal diode —with no voltage drop—, tied together and connected to a capacitor. During attacks, the capacitor charges through the attack resistor, exponentially increasing. The capacitor discharges through the release resistor as the audio signal falls below the peak charge, causing the output voltage to progressively decay with an exponential curve. Figure 1. AR envelope follower response The plot in Figure 1 depicts the response of the AR envelope follower, which was obtained by picking the guitar’s low-E string and using a 2-milliseconds attack duration and 2-second release duration (envelope: magenta, signal: blue, absolute value of the signal: dark blue). It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The AR envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. Like the Peak Envelope Follower, the AR Peak Detector is susceptible to having ripples in the envelope with the short release durations. See Envelope Ripples for details. #include struct ar_envelope_follower { ar_envelope_follower( duration attack , duration release , float sps ); float operator()(float s); float operator()() const; ar_envelope_follower& operator=(float y); void config(duration attack, duration release, float sps); void attack(float attack_, float sps); void release(float release_, float sps); }; env, a, b Objects of type ar_envelope_follower atk, rel Objects of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. y Floating point value from 0.0 to 1.0. Expression Semantics ar_envelope_follower(atk, rel, sps) Construct a ar_envelope_follower given atk (attack duration), rel (release duration) and sps (samples per second). ar_envelope_follower(env) Copy construct from ar_envelope_follower env. a = b Assign b to a. a = y Reset the latest held value of the ar_envelope_follower to y. C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the ar_envelope_follower float Expression Semantics Return Type env.config(atk, rel, sps) Set the attack duration given atk (attack duration), rel (release duration) and sps (samples per second). void env.attack(atk, sps) Set the attack duration given atk (attack duration) and sps (samples per second) void env.release(rel, sps) Set the release duration given rel (release duration) and sps (samples per second) void","title":"AR Envelope Follower","component":"q","version":"v1.0_beta","name":"ar_envelope_follower","url":"/q/v1.0_beta/reference/envelope/ar_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8},{"text":"Mutators","hash":"_mutators","id":9}]},"94":{"id":94,"text":"The Fast Averaging Envelope Follower is a variation of the Fast Envelope Follower. It is a simple composite class that contains a fast envelope follower member and a moving average filter member to smooth out the staircase ripples. One advantage of a moving average filter over a standard low-pass filter is that its output has less distortion of the envelope’s shape due to its linear phase response, which means it does not cause phase shifts, keeping the signal’s time-domain shape substantially intact. The plot in Figure 1 below shows the fast averaging envelope follower’s response (envelope: pink, signal: blue, absolute value of the signal: dark blue). Figure 1. Fast averaging envelope follower response The plot in Figure 2 below shows the plain and Fast averaging envelope follower’s response. The fast envelope follower’s staircase-like envelope is effectively smoothed out using a moving average filter with the same duration as the hold parameter. The moving average filter transforms the hard staircase edges into soft ramps. #include template struct basic_fast_ave_envelope_follower { basic_fast_ave_envelope_follower(duration hold, float sps); float operator()(float s); float operator()() const; }; using fast_ave_envelope_follower = basic_fast_ave_envelope_follower; basic_fast_ave_envelope_follower essentially follows the same API as Fast Envelope Follower. basic_fast_ave_envelope_follower is a template class parameterized by div, which must be >= 1. div specifies the minimum duration required for the hold parameter. The hold duration should be equal to or slightly longer than 1/div multiplied by the period of the lowest frequency of the signal we wish to track. For example, if the lowest frequency we wish to track is 440 Hz, and div = 2, then the hold parameter should be greater than 1.13 ms. fast_ave_envelope_follower is an alias for basic_fast_ave_envelope_follower. In general, this is all you need to use, unless you want finer granularity. The higher the div is, the finer the granularity possible. Again, all of these comes at the cost of additional computing complexity. env_t A basic_fast_ave_envelope_follower type. env, a, b Objects of type basic_fast_ave_envelope_follower hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_ave_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_ave_envelope_follower env. a = b Assign b to a. C++ brace initialization may also be used. env_t is just a shortcut notation for any type or alias to a template instantiation of basic_fast_ave_envelope_follower. Example: using my_env_t = basic_fast_ave_envelope_follower; Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_ave_envelope_follower float","title":"Fast Averaging Envelope Follower","component":"q","version":"v1.0_beta","name":"fast_ave_envelope_follower","url":"/q/v1.0_beta/reference/envelope/fast_ave_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8}]},"95":{"id":95,"text":"The Fast Envelope Follower is the software implementation of a unique envelope detector that feature fast response and low ripple. It is based on the hardware article titled Envelope Follower Combines Fast Response, Low Ripple by Harry Bissell Jr. See Figure 1 below. Basically, the result of the fast envelope follower is the maximum of N peak values taken simultaneously. Each value is the maximum of the current sample and the latest held peak value. Each of the peak values are reset to zero in a round-robin fashion. As a peak value is reset, the other peak values still hold the latest peak value. The highest peak among N peaks is then chosen as the current output. Figure 1. Fast Envelope Detector The plot in Figure 2 below shows the fast envelope follower’s response. As compared to the Peak Envelope Follower and AR Envelope Follower, the fast envelope follower’s superior performance is immediately apparent in the plot. Of course, this comes at the cost of additional computing complexity. Figure 2. Fast envelope follower response The reset cycle time is specified by the hold duration parameter. The number of peak values is specified by the div parameter. The plot was obtained by picking the guitar’s low-E string and using a hold duration of approximately 6 ms and with a div of 2 (envelope: red, signal: blue, absolute value of the signal: dark blue). See below for more information on the hold and div parameters. It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The fast envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. The output is a jagged, staircase-like envelope that tightly follows the input, including fast attacks and decays. Figure 3 below (envelope: red, signal: blue, absolute value of the signal: dark blue) is a closer view of Figure 2 above: Figure 3. Staircase-Like Output The output is suitable for signal analysis as is. If the signal is to be utilized for modulation, for example as input to a Compressor, further filtering is recommended. Fast Averaging Envelope Follower is one such example. Figure 4 demonstrates in closer detail the transient response of various envelope detectors, demonstrating how the fast envelope follower’s response closely follows the true envelope of the signal compared to the Peak Envelope Follower and AR Envelope Follower, both of which perform poorly on signal decays. Figure 4. Transient Response of Envelope Detectors #include template struct basic_fast_envelope_follower { static_assert(div >= 1, \"div must be >= 1\"); basic_fast_envelope_follower(duration hold, float sps); float operator()(float s); float operator()() const; }; using fast_envelope_follower = basic_fast_envelope_follower; basic_fast_envelope_follower is a template class parameterized by div, which must be >= 1. div specifies the minimum duration required for the hold parameter. The hold duration should be equal to or slightly longer than 1/div multiplied by the period of the lowest frequency of the signal we wish to track. For example, if the lowest frequency we wish to track is 440 Hz, and div = 2, then the hold parameter should be greater than 1.13 ms. fast_envelope_follower is an alias for basic_fast_envelope_follower. In general, this is all you need to use, unless you want finer granularity. The higher the div is, the finer the granularity possible. Again, all of these comes at the cost of additional computing complexity. env_t A basic_fast_envelope_follower type. env, a, b Objects of type basic_fast_envelope_follower hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_envelope_follower env. a = b Assign b to a. env_t is just a shortcut notation for any type or alias to a template instantiation of basic_fast_envelope_follower. Example: using my_env_t = basic_fast_envelope_follower; C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_envelope_follower float","title":"Fast Envelope Follower","component":"q","version":"v1.0_beta","name":"fast_envelope_follower","url":"/q/v1.0_beta/reference/envelope/fast_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Staircase Output","hash":"_staircase_output","id":3},{"text":"Transient Response","hash":"_transient_response","id":4},{"text":"Include","hash":"_include","id":5},{"text":"Declaration","hash":"_declaration","id":6},{"text":"Expressions","hash":"_expressions","id":7},{"text":"Notation","hash":"_notation","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Function Call","hash":"_function_call","id":10}]},"96":{"id":96,"text":"The Fast RMS Envelope Follower is a variation of the Fast Envelope Follower. It is a simple composite class that contains a Fast Averaging Envelope Follower member. The signal path is as follows: Square the signal. Apply the fast averaging envelope follower. The moving average filter in the fast averaging envelope follower returns the arithmetic mean of the squared values over its hold period. Return the square root the result. This is embodied in the fast_rms_envelope_follower class. Following the fast envelope follower API, the function call operator accepts a floating point sample, transforms it, and returns an envelope, also a floating point. The fast_rms_envelope_follower_db variant works in the dB domain, making it easy to use as an envelope follower for dynamic range effects (compressor, expander, and agc) that already work in the dB domain, so we eliminate a linear to decibel conversion and optimize computation by using division by 2 instead of sqrt as an added bonus. The plot in Figure 1 below shows the fast RMS envelope follower’s response (envelope: green, signal: blue, absolute value of the signal: dark blue). It may look indistinguishable from the Fast Averaging Envelope Follower's output, but this detector returns true RMS results. Figure 1. Fast RMS envelope follower response #include struct fast_rms_envelope_follower { fast_rms_envelope_follower(duration hold, float sps); float operator()(float s); }; struct fast_rms_envelope_follower_db : fast_rms_envelope_follower { using fast_rms_envelope_follower::fast_rms_envelope_follower; decibel operator()(float s); }; fast_rms_envelope_follower essentially follows the same API as Fast Envelope Follower. The fast_rms_envelope_follower_db variant works in the dB domain and returns decibel instead of float. env_t A fast_rms_envelope_follower or fast_rms_envelope_follower_db. env, a, b Objects of type fast_rms_envelope_follower or fast_rms_envelope_follower_db. hold Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. Expression Semantics env_t(hold, sps) Construct a basic_fast_ave_envelope_follower given hold (hold duration) and sps (samples per second). env_t(env) Copy construct from basic_fast_ave_envelope_follower env. a = b Assign b to a. C++ brace initialization may also be used. env_t is just a shortcut notation for any type or alias to a template instantiation of fast_rms_envelope_follower or fast_rms_envelope_follower_db. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the basic_fast_ave_envelope_follower float","title":"Fast RMS Envelope Follower","component":"q","version":"v1.0_beta","name":"fast_rms_envelope_follower","url":"/q/v1.0_beta/reference/envelope/fast_rms_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Function Call","hash":"_function_call","id":8}]},"97":{"id":97,"text":"During the attack phase of an audio signal, the peak envelope follower closely tracks the maximum peak level. When the signal level drops below the peak, the follower gradually releases the peak level with an exponential decay. This allows the follower to accurately capture the dynamic changes in the audio signal while avoiding sudden downward fluctuations. The peak envelope follower models the behavior of an ideal diode —with no voltage drop— connected in series with a resistor and a capacitor connected in parallel. The ideal diode allows the positive peaks of the audio signal to pass through, charging the capacitor to the maximum. When the signal falls below the peak, the capacitor discharges through the resistor, causing the output voltage to gradually decay with an exponential curve, following the release time constant. Figure 1. Peak envelope follower response The plot in Figure 1 depicts the response of the peak envelope follower, which was obtained by picking the guitar’s low-E string and using a 2-second release duration (envelope: orange, signal: blue, absolute value of the signal: dark blue). It is worth noting that we use the absolute value of the signal to capture both the positive and negative sides of the waveform, as indicated by the dark blue plot. The peak envelope follower does not perform this operation automatically, allowing you to perform any necessary preprocessing before computing the envelope. This flexibility enables you, for example, to capture only the positive or negative peaks, or perhaps the square of the signal, depending on your application needs. The peak envelope follower can track fast attack transients, but cannot track downward slopes faster than the specified release duration. However, reducing the release duration too much can reveal envelope ripples. When the release duration is too fast, the peak envelope follower quickly releases the previous cycle’s peak and begins tracking the peak of the next cycle, causing ripples in the envelope follower’s output, as shown in the image on the right. Such ripples can cause unwanted modulation and can be heard as distortion or noise in the audio signal. Further low-pass filtering can reduce the ripples at the expense of smearing the attack shape. #include struct peak_envelope_follower { peak_envelope_follower(duration release, float sps); float operator()(float s); float operator()() const; peak_envelope_follower& operator=(float y); void release(duration release_, float sps); }; env, a, b Objects of type peak_envelope_follower rel Object of type duration sps Floating point value for samples per second. s Floating point value for the latest input sample. y Floating point value from 0.0 to 1.0. Expression Semantics peak_envelope_follower(rel, sps) Construct a peak_envelope_follower given rel (release duration) and sps (samples per second). peak_envelope_follower(env) Copy construct from peak_envelope_follower env. a = b Assign b to a. a = y Reset the latest held value of the peak_envelope_follower to y. C++ brace initialization may also be used. Expression Semantics Return Type env(s) Process the input sample s and return the detected envelope. float env() Get the latest held value of the peak_envelope_follower float Expression Semantics Return Type env.release(rel, sps) Set the release duration given rel (release duration) and sps (samples per second) void","title":"Peak Envelope Follower","component":"q","version":"v1.0_beta","name":"peak_envelope_follower","url":"/q/v1.0_beta/reference/envelope/peak_envelope_follower.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Response","hash":"_response","id":2},{"text":"Envelope Ripples","hash":"_envelope_ripples","id":3},{"text":"Include","hash":"_include","id":4},{"text":"Declaration","hash":"_declaration","id":5},{"text":"Expressions","hash":"_expressions","id":6},{"text":"Notation","hash":"_notation","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Function Call","hash":"_function_call","id":9},{"text":"Mutators","hash":"_mutators","id":10}]},"98":{"id":98,"text":"A DC blocker is a high-pass filter which attenuates frequencies below the signal’s lowest frequency of interest. Eliminating the DC offset from a signal allows the signal to be analyzed or processed more effectively in subsequent stages. dc_block is an implementation of a DC blocker based on Julius O. Smith’s document Introduction to Digital Filters. #include struct dc_block { dc_block(frequency f, float sps); float operator()(float s); float operator()() const; dc_block& operator=(float y); void cutoff(frequency f, float sps); }; bk, a, b Objects of type dc_block. f Object of type frequency representing the cutoff frequency. sps Floating point value representing samples per second. s Input sample. Expression Semantics dc_block(f, sps) Construct a dc_block with specified cutoff frequency, f, and samples per second sps. dc_block(b) Copy construct a dc_block from b. a = b Assign b to a. a = s Set the latest result to s. C++ brace initialization may also be used. Expression Semantics Return Type bk() Return the latest result. float bk(s) Remove DC from the input sample s. float Expression Semantics Return Type bk.cutoff(f, sps) Set the cutoff frequency given frequency f, and samples per second sps. void","title":"DC Block","component":"q","version":"v1.0_beta","name":"dc_block","url":"/q/v1.0_beta/reference/misc/dc_block.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"99":{"id":99,"text":"Delays are important DSP building blocks. They introduce repetitions of the original signal, resulting in spacious soundscapes and echoes. The number of repetitions is controlled via feedback. The interval between the initial signal and the repetitions is altered by adjusting the delay time. Longer durations provide echoes, whereas shorter delays produce doubling effects. Filters can shape the repeating signals, influencing their tonal properties. Delays are also essential for modulation effects such as flangers and choruses, which are created by dynamically modulating delay times using low-frequency oscillators (LFOs). basic_delay is a basic class for delays. The actual delay duration parameter is decoupled from, and managed outside the class to allow both single and multi-tapped delays. The delay is implemented using a base ring buffer with provisions for non-fractional (exact) and fractional (sub-sample) indexing. Fractional element indexing is required for fractional delays that are not integer multiples of the sampling period. Figure 1. Delay Line basic_delay is a template class whose Base template parameter should be the ring buffer storage type it inherits from. See ring_buffer and fractional_ring_buffer. #include template class basic_delay : public Base { public: using value_type = typename Base::value_type; using storage_type = typename Base::storage_type; using index_type = typename Base::index_type; using interpolation_type = typename Base::interpolation_type; basic_delay(duration max_delay, float sps); float operator()() const; float operator()(index_type i) const; float operator()(value_type val, index_type i); }; // Fractional delay using delay = basic_delay>; // Non-fractional delay using nf_delay = basic_delay>; In addition to valid expressions for the Base class that the basic_delay inherits from (See ring_buffer and fractional_ring_buffer), basic_delay allows these expressions. Base Ring buffer storage type, e.g. ring_buffer. d_type A basic_delay type. d, a, b Objects of type basic_delay. val Object of type d_type::value_type. i Object of type d_type::index_type. max_delay Object of type duration. sps Floating point value representing samples per second. Expression Semantics basic_delay Instantiate a basic_delay type given Base ring buffer storage type. delay Pre declared fractional delay type. nf_delay Pre declared Non-fractional delay type. using my_delay_type1 = basic_delay>; using my_delay_type2 = delay; Expression Semantics d_type::value_type Get the underlying element type. d_type::storage_type Get the underlying storage type. d_type::index_type Get the underlying index type. d_type::interpolation_type Get the underlying interpolation type. Expression Semantics d_type(max_delay, sps) Construct a basic_delay with maximum duration, max_delay and samples per second, sps. d_type(d) Copy construct from d_type d. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type d() Get the delayed signal (maximum delay). d_type::value_type d(i) Get the delayed signal at index i. d_type::value_type d(val, i) Push a new signal and return the delayed signal at index i+1. This is the simplest (common) case for single delays. For multi-tapped delays, you need to access the individual delays using the indexing operator for various tap-points before pushing the latest sample. d_type::value_type","title":"Delay","component":"q","version":"v1.0_beta","name":"delay","url":"/q/v1.0_beta/reference/misc/delay.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Function Call","hash":"_function_call","id":10}]},"100":{"id":100,"text":"The moving_average is the simplest and most efficient FIR filter. It is also the most common filter in DSP primarily due to its simplicity. But while it is technically a low pass FIR filter, it performs poorly in the frequency domain with very slow roll-off and dreadful stopband attenuation. On the other hand, it performs admirably in the time domain. The moving average filter is optimal in reducing random noise while retaining a sharp step response. Averaging N samples (the moving average window size) increases the SNR by the square root of N. For example, N=16 improves SNR by 4 (12dB). The filter delay is exactly (N−1)/2. Figure 1. Moving Average When data is pushed into a moving average, the element indices are shifted by one position to accommodate the incoming data. This logical shifting ensures that the newest data is stored in the first index (index 0), while the oldest data is pushed out of the buffer. The physical location of data does not actually change, only the indices. The data type, T, is a template parameter, allowing both floating point as well as integer computations. Integers are typically faster than floating point and are not prone to round-off errors. moving_average is a subclass of the moving_sum. #include template struct basic_moving_average : basic_moving_sum { using basic_moving_sum::basic_moving_sum; using value_type = T; T operator()(T s); T operator()() const; }; using moving_average = basic_moving_average; As a subclass of Moving Sum, moving_average inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for Moving Sum, moving_average allows these expressions. T Element type, e.g. float. ma Object of type basic_moving_average. s Object of type ma_type::value_type. Expression Semantics basic_moving_average Instantiate a basic_moving_average type given T, the element type, e.g. float. moving_average Pre declared basic_moving_average type. Expression Semantics Return Type ma() Return the current average. ma_type::value_type ma(s) Add a new sample and calculate the current average. ma_type::value_type","title":"Moving Average","component":"q","version":"v1.0_beta","name":"moving_average","url":"/q/v1.0_beta/reference/misc/moving_average.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Function Call","hash":"_function_call","id":7}]},"101":{"id":101,"text":"The moving sum involves adding a specified number of values in a sequence of data points —the moving sum window. The window moves through the data one point at a time as new samples arrive, and at each step, the sum of the data points within the window is calculated. Instead of calculating the sum of all elements in the window each time, an efficient scheme keeps a continuous total and subtracts the last element that will fall off the window when a new sample arrives. Figure 1. Moving Sum When data is pushed into a moving sum, the element indices are shifted by one position to accommodate the incoming data. This logical shifting ensures that the newest data is stored in the first index (index 0), while the oldest data is pushed out of the buffer. The physical location of data does not actually change, only the indices. basic_moving_sum is a template class representing moving sums with provision for specifying the element type, T. Integers are typically faster than floating point and are not prone to round-off errors. It is implemented internally using a ring buffer. Refer to ring_buffer. #include template struct basic_moving_sum { using value_type = T; basic_moving_sum(std::size_t max_size); basic_moving_sum(duration d, float sps); value_type operator()(value_type s); value_type operator()() const; value_type sum() const; std::size_t size() const; void resize(std::size_t size, bool update = false); void resize(duration d, float sps, bool update = false); void clear(); void fill(T val); }; using moving_sum = basic_moving_sum; T Element type, e.g. float. ms_type A basic_moving_sum type. ms, a, b Objects of type basic_moving_sum. s, val Objects of type ms_type::value_type. size Object of type std::size_t. d Object of type duration. sps Floating point value representing samples per second. a [, b, c, d] Required a, optional b, c, d. Expression Semantics basic_moving_sum Instantiate a basic_moving_sum type given T, the element type, e.g. float. moving_sum Pre declared basic_moving_sum type. Expression Semantics ms_type::value_type Get the underlying element type. Expression Semantics ms_type(size) Construct a basic_moving_sum with specified window size in samples. ms_type(d, sps) Construct a basic_moving_sum with window size specified by d and sps (duration and sample rate). ms_type(ms) Copy construct from ms_type ms. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type ms() Return the current sum. ms_type::value_type ms(s) Add a new sample and calculate the current sum. ms_type::value_type Expression Semantics Return Type ms.sum() Return the current sum. ms_type::value_type ms.size() Return the window size (in samples). std::size_t Expression Semantics ms.resize(size [, update]) Resize the moving sum window to the number of samples specified by the 'size' parameter. If update=true, the sum is recalculated. if update=false, the contents are cleared. Default: update=false. ms.resize(d, sps [, update]) Resize the moving sum with window size specified by d and sps (duration and sample rate). If update=true, the sum is recalculated. if update=false, the contents are cleared. Default: update=false. ms.clear() Clear the moving window to zero. ms.fill(val) Fill the moving window with val, and update the sum accordingly. basic_moving_sum can be resized as long as the new size does not exceed the original size (at construction time). When resizing with update=true, when downsizing, the oldest elements are subtracted from the sum. When upsizing, the older elements are added to the sum, otherwise, if update=false, the contents are cleared.","title":"Moving Sum","component":"q","version":"v1.0_beta","name":"moving_sum","url":"/q/v1.0_beta/reference/misc/moving_sum.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Type Accessors","hash":"_type_accessors","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Function Call","hash":"_function_call","id":9},{"text":"Accessors","hash":"_accessors","id":10},{"text":"Mutators","hash":"_mutators","id":11}]},"102":{"id":102,"text":"A noise gate is an audio tool that reduces unwanted noise by muting or attenuating signals below specified thresholds. It is typically used to eliminate background noise or hum. The noise_gate class implements a Q-flavored noise gate processor following Q’s Dynamic processor design. Unlike typical noise gates, noise_gate has no parameters for attack and release and does not process audio waveform samples directly. Instead, it operates on the envelope of the audio signal. The objective is separation of concerns and the flexibility to use various envelope followers. There are two thresholds. On onsets, the noise_gate opens up if the signal envelope goes above the specified onset threshold. On note release, the noise_gate turns off if the signal goes below a specified release threshold. #include struct noise_gate { noise_gate(decibel onset_threshold, decibel release_threshold); noise_gate(decibel release_threshold); bool operator()(float env); bool operator()() const; void onset_threshold(decibel onset_threshold); void onset_threshold(float onset_threshold); void release_threshold(decibel release_threshold); void release_threshold(float release_threshold); float onset_threshold() const; float release_threshold() const; }; g, a, b Objects of type noise_gate. env Floating point value for the current envelope value. ot, rt Object of type decibel representing onset and release thresholds, respectively. Expression Semantics noise_gate(rt) Construct a noise_gate with specified release threshold, rt. noise_gate(ot, rt) Construct a noise_gate with specified onset threshold, ot and release threshold, rt. noise_gate(b) Copy construct a noise_gate from b. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics Return Type g() Get the current state. bool g(env) Process the input envelope env, compute and return the state. bool The noise_gate state is a boolean flag that is true if the noise_gate is open or false if the noise_gate is closed. Expression Semantics Return Type g.onset_threshold(ot) Set the noise_gate onset threshold. void g.release_threshold(rt) Set the noise_gate release threshold. void Expression Semantics Return Type g.onset_threshold() Get the noise_gate onset threshold. decibel g.release_threshold() Get the noise_gate release threshold. decibel","title":"Noise Gate","component":"q","version":"v1.0_beta","name":"noise_gate","url":"/q/v1.0_beta/reference/misc/noise_gate.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"103":{"id":103,"text":"Basic one pole low-pass filter serves as an important building block due to its utility in a vast number of applications including noise reduction, signal smoothing, and extracting relevant information from a signal. The 6dB/octave slope of the single pole filter is suitable for many non-critical use-cases and its simplicity makes it computationally efficient. #include struct one_pole_lowpass { one_pole_lowpass(frequency f, float sps); float operator()(float s); float operator()() const; one_pole_lowpass& operator=(bool y); void cutoff(frequency f, float sps); }; lp, a, b Objects of type one_pole_lowpass. f Object of type frequency representing the cutoff frequency. sps Floating point value representing samples per second. s Input sample. Expression Semantics one_pole_lowpass(f, sps) Construct a one_pole_lowpass with specified cutoff frequency, f, and samples per second sps. one_pole_lowpass(b) Copy construct a one_pole_lowpass from b. a = b Assign b to a. a = s Set the latest result to s. C++ brace initialization may also be used. Expression Semantics Return Type lp() Return the latest result. float lp(s) process the input sample, s. float Expression Semantics Return Type lp.cutoff(f, sps) Set the cutoff frequency given frequency f, and samples per second sps. void","title":"One Pole Low Pass","component":"q","version":"v1.0_beta","name":"one_pole_lowpass","url":"/q/v1.0_beta/reference/misc/one_pole_lowpass.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"104":{"id":104,"text":"onset_gate is a specialization of noise_gate with provision for gating out slow attacks. The constructor parameters attack_width and sps specify the slope’s delta time. The envelope’s slope must exceed the required onset threshold. This prevents slow moving signals to pass as valid onsets. For example, given an attack width of 500 µs and an onset threshold of -30 dB, the difference in amplitude over a period of 500 µs must exceed -30 dB to pass as a valid onset. #include struct onset_gate : noise_gate { onset_gate( decibel onset_threshold , decibel release_threshold , duration attack_width , float sps ); using noise_gate::operator(); bool operator()(float env); }; As a subclass of noise_gate, onset_gate inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for noise_gate, onset_gate allows these expressions. ot, rt Object of type decibel representing onset and release thresholds, respectively. aw Object of type duration representing attack width. sps Floating point value representing samples per second. Expression Semantics onset_gate(ot, rt, aw, sps) Construct an onset_gate with specified onset threshold, ot release threshold, rt, attack width, aw, and samples per second sps. C++ brace initialization may also be used.","title":"Onset Gate","component":"q","version":"v1.0_beta","name":"onset_gate","url":"/q/v1.0_beta/reference/misc/onset_gate.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6}]},"105":{"id":105,"text":"audio_device represents individual audio interfaces on the host platform. There are typically one or more audio devices available. Each device has a name, device identifier, and specific capabilities, including sample rate and the number of input and output channels supported. #include class audio_device { public: using device_list = std::vector; static device_list list(); static audio_device get(int device_id); int id() const; std::string name() const; std::size_t input_channels() const; std::size_t output_channels() const; double default_sample_rate() const; }; a, b Objects of type audio_device. ad Object of type audio_device. id A unique audio device ID (integer). Expression Semantics audio_device(b) Copy construct from audio_device b. a = b Assign b to a. There are no public constructors. Instead, see list() and get(id) below. `audio_device`s are lightweight handles that can be cheaply passed by value. Expression Semantics Return Type audio_device::list() Get the list of available audio devices. std::vector audio_device::get(id) Get the audio device with the given ID. audio_device To get an audio_device, first get list of currently available audio devices via audio_device::list(), then choose, or let the user choose, the one suitable for your needs. Alternatively, if you know the unique audio_device ID, you can use audio_device::get(id) to obtain a specific audio_device. Expression Semantics Return Type ad.id() Get the unique ID. int ad.name() Get the unique name. std::string ad.input_channels() Get the maximum number of input channels. std::size_t ad.output_channels() Get the maximum number of output channels. std::size_t ad.default_sample_rate() Get the default sample rate. double List all available audio devices: #include #include #include namespace q = cycfi::q; int main() { std::cout << \"Available Audio Devices: \" << std::endl; for (auto const& device : q::audio_device::list()) { std::cout << \"id: \" << device.id() << std:: endl << \"name: \\\"\" << device.name() << '\"' << std:: endl << \"number of input channels: \" << device.input_channels() << std:: endl << \"number of output channels: \" << device.output_channels() << std:: endl ; } return 0; }","title":"audio_device","component":"q","version":"v1.0_beta","name":"audio_device","url":"/q/v1.0_beta/reference/q_io/audio_device.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Instantiation","hash":"_instantiation","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"Example","hash":"_example","id":9}]},"106":{"id":106,"text":"audio_file is a set of small and lightweight classes for reading and writing WAV (Waveform Audio File Format) files. It offers a straightforward and intuitive interface for working with WAV audio data. This includes: wav_reader For reading WAV files. wav_writer For writing WAV files. #include wav_base is the base class with common functionalities for wav_reader and wav_writer. class wav_base { public: wav_base(); wav_base(wav_base const&) = delete; ~wav_base(); wav_base& operator=(wav_base const&) = delete; explicit operator bool() const; std::size_t sps() const; std::size_t num_channels() const; }; w Object of wav_base. Expression Semantics wav_base() Default construct a wav_base. wav_base is non-copyable. C++ brace initialization may also be used. Expression Semantics Return Type bool(w) Evaluates to true if wav_base is valid. Operations must only be performed on valid wav_base objects. bool w.sps() Get the WAV file’s sampling rate. float w.num_channels() Get the number of channels in the WAV file. std::size_t wav_reader is a class for reading WAV files with the typical read-only input mechanisms, such as incrementally reading a chunk of audio data from a position starting at the beginning of the file, and being able to move a certain position in the file. class wav_reader : public wav_base { public: wav_reader(std::string filepath); wav_reader(char const* filepath); std::uint64_t length() const; std::uint64_t position(); bool restart(); bool seek(std::uint64_t target); std::size_t read(float* data, std::uint32_t len); std::size_t read(concepts::IndexableContainer auto& buffer); }; The IndexableContainer concept is declared in Basic Concepts. wav_reader is derived from wav_base. In addition to valid expressions for wav_base, wav_reader allows these expressions. r Object of type wav_reader. f Object of type convertible to std::string or char const* representing a file path. d Pointer to a buffer of float elements with size len. s Size buffer of d. b Object of type that conforms to the IndexableContainer concept. p Position in the wav file (std::uint64_t). Expression Semantics wav_reader(f) Construct a wav_reader given a file path. C++ brace initialization may also be used. Expression Semantics Return Type r.restart() Reset the read position to the start. Returns false if r is not valid. bool r.seek(p) Set the read position to the p. Returns false if r is not valid. bool r.read(d, s) Read a chunk of data given a raw buffer, float*, d, with size s. Returns the actual size read. std::size_t. r.read(b) Read a chunk of data given a buffer, b. Returns the actual size read. std::size_t. Expression Semantics Return Type r.length() Get the length of the WAV file. std::uint64_t. r.position() Get the current read position. std::uint64_t. wav_writer is a class for writing WAV files with the typical write-only output mechanisms, such as incrementally writing a chunk of audio data from a position starting at the beginning of the file. wav_writer writes WAV files with one or more channels and 32-bit floating point samples. class wav_writer : public wav_base { public: wav_writer( std::string filename , std::uint32_t num_channels, float sps); wav_writer( char const* filename , std::uint32_t num_channels, float sps); std::size_t write(float const* data, std::uint32_t len); std::size_t write(concepts::IndexableContainer auto const& buffer); }; The IndexableContainer concept is declared in Basic Concepts. wav_writer is derived from wav_base. In addition to valid expressions for wav_base, wav_writer allows these expressions. w Object of type wav_writer. f Object of type convertible to std::string or char const* representing a file path. d Pointer to a buffer of float elements with size len. s Size buffer of d. b Object of type that conforms to the IndexableContainer concept. ch Integer value representing number of channels. sps Floating point value representing samples per second. Expression Semantics wav_writer(f, ch, sps) Construct a wav_writer given a file path, f, number of channels, ch, and sampling rate, sps. Expression Semantics Return Type w.write(d, s) Write a chunk of data given a raw buffer, float*, d, with size s. Returns the actual size written. std::size_t. w.write(b) Write a chunk of data given a buffer, b. Returns the actual size written. std::size_t.","title":"audio_file","component":"q","version":"v1.0_beta","name":"audio_file","url":"/q/v1.0_beta/reference/q_io/audio_file.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"wav_base","hash":"_wav_base","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"wav_reader","hash":"_wav_reader","id":9},{"text":"Declaration","hash":"_declaration_2","id":10},{"text":"Expressions","hash":"_expressions_2","id":11},{"text":"Notation","hash":"_notation_2","id":12},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_2","id":13},{"text":"Mutators","hash":"_mutators","id":14},{"text":"Accessors","hash":"_accessors_2","id":15},{"text":"wav_writer","hash":"_wav_writer","id":16},{"text":"Declaration","hash":"_declaration_3","id":17},{"text":"Expressions","hash":"_expressions_3","id":18},{"text":"Notation","hash":"_notation_3","id":19},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment_3","id":20},{"text":"Mutators","hash":"_mutators_2","id":21}]},"107":{"id":107,"text":"audio_stream is a subclass of audio_stream_base. It is responsible for setting up multichannel input and output buffers and presenting them to the user’s processing function, which is called at regular intervals at 1/Nth of the sampling frequency, where N is the size of the buffer. #include class audio_stream : public audio_stream_base { public: audio_stream( std::size_t input_channels , std::size_t output_channels , double sps = -1 , int frames = -1 ); audio_stream( audio_device const& device , std::size_t input_channels , std::size_t output_channels , double sps = -1 , int frames = -1 ); virtual ~audio_stream(); void start(); void stop(); bool is_valid() const; duration time() const; double cpu_load() const; char const* error() const; duration input_latency() const; duration output_latency() const; double sampling_rate() const; std::size_t input_channels() const; std::size_t output_channels() const; }; As a subclass of audio_stream_base, audio_stream inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for audio_stream_base, audio_stream allows these expressions. as Object of type audio_stream. ad Object of type audio_device. ic Number of input channels. oc Number of output channels. sps Floating point value for the desired sample rate. A value of -1, the default, indicates a request to use the device’s default sampling rate. fr Number of frames --the buffer size per channel. A value of -1, the default, indicates a request for the optimal (and possibly varying) number of frames. Expression Semantics audio_stream(ic, oc, sps, fr) Construct an audio_stream using the default audio_device, given the number of input and output channels, ic and oc, optional sample rate, sps, and optional number of frames, fr. audio_stream(ad, ic, oc, sps, fr) Construct an audio_stream using the the audio_device, ad, given the number of input and output channels, ic and oc, optional sample rate, sps, and optional number of frames, fr. Take note that audio_stream_base is non-copyable, and therefore audio_stream is also non-copyable. Expression Semantics Return Type as.is_valid() Check if the audio_stream is valid. Do this before any operation on the audio_stream. Any operation on an invalid stream is undefined behavior. bool as.time() Get stream’s current time in seconds. The time values are monotonically increasing with an unspecified origin. Starting and stopping the stream does not affect the passage of time. duration as.cpu_load() Get stream’s CPU load: A floating point value, typically between 0.0 and 1.0, where 1.0 indicates that the stream is consuming the maximum number of CPU cycles possible to maintain real-time operation. double as.error() On as.is_valid() == false, this function returns a human readable error message stating the reason why an audio_stream cannot be opened. char const* as.input_latency() Get the input latency. duration as.output_latency() Get the output latency. duration as.input_channels() Get the number of input channels. std::size_t as.output_channels() Get the number of output channels. std::size_t as.default_sample_rate() Get the sampling rate. double Expression Semantics as.start() Start the audio_stream. as.stop() Stop the audio_stream. Make a delay processor with 1 input channel (mono) and two output channels (stereo). Route the mono input to both the left and right output channels. struct my_processor : q::audio_stream (1) { my_processor() : audio_stream(1, 2) (2) {} void process(in_channels const& in, out_channels const& out) (3) { auto left = out[0]; auto right = out[1]; auto mono_in = in[0]; for (auto frame : out.frames) { // Get the next input sample auto s = mono_in[frame]; // Output left[frame] = s; right[frame] = s; } } }; 1 Here we declare my_processor. A user-defined class derived from audio_stream. 2 Construct the base audio_stream with 1 input channel (mono) and two output channels (stereo) using the default audio device. 3 Implement the process member function. See Audio Stream Client Interface for more info.","title":"audio_stream","component":"q","version":"v1.0_beta","name":"audio_stream","url":"/q/v1.0_beta/reference/q_io/audio_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Accessors","hash":"_accessors","id":7},{"text":"Mutators","hash":"_mutators","id":8},{"text":"Example","hash":"_example","id":9}]},"108":{"id":108,"text":"midi_device is an abstraction which encapsulates the properties and functionality of a MIDI interface. Each MIDI device includes information such as its name, device identifier, and the number of inputs and outputs available. #include class midi_device { public: using device_list = std::vector; static device_list list(); std::uint32_t id() const; std::string name() const; std::size_t num_inputs() const; std::size_t num_outputs() const; }; a, b Objects of type midi_device. md Object of type midi_device. id A unique audio device ID integer. Expression Semantics midi_device(b) Copy construct from midi_device b. a = b Assign b to a. There are no public constructors. Instead, see list() and get(id) below. midi_device(s) are lightweight handles that can be cheaply passed by value. Expression Semantics Return Type midi_device::list() Get the list of available MIDI devices. std::vector To get a midi_device, first get list of currently available MIDI devices via midi_device::list(), then choose, or let the user choose, the one suitable for your needs. Expression Semantics Return Type md.id() Get the unique ID. int md.name() Get the unique name. std::string md.num_inputs() Get the number of MIDI inputs. std::size_t md.num_outputs() Get the number of MIDI outputs. std::size_t List all available MIDI devices: #include #include #include namespace q = cycfi::q; int main() { std::cout << \"Available MIDI Devices: \" << std::endl; for (auto const& device : q::midi_device::list()) { std::cout << \"id: \" << device.id() << std:: endl << \"name: \\\"\" << device.name() << '\"' << std:: endl << \"number of inputs: \" << device.num_inputs() << std:: endl << \"number of outputs: \" << device.num_outputs() << std:: endl ; } return 0; }","title":"midi_device","component":"q","version":"v1.0_beta","name":"midi_device","url":"/q/v1.0_beta/reference/q_io/midi_device.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":6},{"text":"Instantiation","hash":"_instantiation","id":7},{"text":"Accessors","hash":"_accessors","id":8},{"text":"Example","hash":"_example","id":9}]},"109":{"id":109,"text":"The midi_input_stream class facilitates MIDI communication and data transmission of MIDI messages between a MIDI device and an application. midi_input_stream dispatches MIDI messages to a MIDI processor: a user-defined construct that follows a specific C++ concept for receiving and interpreting MIDI messages. The MIDI processor acts as an intermediary between MIDI devices and the application. Its purpose is to receive incoming MIDI messages, analyze their content, and extract relevant information. This may include extracting note data, control change values, program change commands, or any other MIDI message content that is of interest to the user. See MIDI Processor #include class midi_input_stream : non_copyable { public: midi_input_stream(); midi_input_stream(midi_device const& device); ~midi_input_stream(); bool is_valid() const; template requires concepts::midi_1_0::Processor void process(Processor&& proc); static void set_default_device(int id); }; ms Object of type midi_input_stream. md Object of type midi_device. id A unique MIDI device ID (integer). proc Object that conforms to the MIDI Processor concept. Expression Semantics midi_input_stream() Construct a default midi_input_stream. See set_default_device below. midi_input_stream(md) Construct a midi_input_stream using the the midi_device, md. Take note that midi_input_stream is non-copyable. Expression Semantics set_default_device(id) Set the default midi_device used by the default constructor above to the midi_device with the given ID. Once set, the default midi_input_stream constructor will use this midi_device. Expression Semantics Return Type ms.is_valid() Check if the midi_input_stream is valid. Do this before any operation on the midi_input_stream. Any operation on an invalid stream is undefined behavior. bool Expression Semantics ms.process(proc) Process incoming MIDI messages, given a user provided MIDI processor proc. Call this function in a loop while to process incoming MIDI messages. This function blocks. It is advisable to place this processing loop in a separate thread. Monitor incoming MIDI messages: q::midi_input_stream stream; (1) if (stream.is_valid()) (2) { while (true) (3) stream.process(midi_processor{}); (4) } 1 Instantiate a default MIDI stream. 2 Check if the MIDI stream is valid. 3 Infinite loop, processing incoming MIDI messages from the stream. 4 midi_processor is a user defined struct implemented below. struct midi_processor : midi::processor { using midi::processor::operator(); void operator()(midi::note_on msg, std::size_t time) { std::cout << \"Note On {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Velocity: \" << int(msg.velocity()) << '}' << std::endl; } void operator()(midi::note_off msg, std::size_t time) { std::cout << \"Note Off {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Velocity: \" << int(msg.velocity()) << '}' << std::endl; } void operator()(midi::poly_aftertouch msg, std::size_t time) { std::cout << \"Polyphonic Aftertouch {\" << \"Channel: \" << int(msg.channel()) << \", Key: \" << int(msg.key()) << \", Pressure: \" << int(msg.pressure()) << '}' << std::endl; } void operator()(midi::control_change msg, std::size_t time) { std::cout << \"Control Change {\" << \"Channel: \" << int(msg.channel()) << \", Controller: \" << int(msg.controller()) << \", Value: \" << int(msg.value()) << '}' << std::endl; } void operator()(midi::program_change msg, std::size_t time) { std::cout << \"Program Change {\" << \"Channel: \" << int(msg.channel()) << \", Preset: \" << int(msg.preset()) << '}' << std::endl; } void operator()(midi::channel_aftertouch msg, std::size_t time) { std::cout << \"Channel Aftertouch {\" << \"Channel: \" << int(msg.channel()) << \", Pressure: \" << int(msg.pressure()) << '}' << std::endl; } void operator()(midi::pitch_bend msg, std::size_t time) { std::cout << \"Pitch Bend {\" << \"Channel: \" << int(msg.channel()) << \", Value: \" << int(msg.value()) << '}' << std::endl; } };","title":"midi_input_stream","component":"q","version":"v1.0_beta","name":"midi_stream","url":"/q/v1.0_beta/reference/q_io/midi_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Default MIDI device","hash":"_default_midi_device","id":7},{"text":"Accessor","hash":"_accessor","id":8},{"text":"Process MIDI","hash":"_process_midi","id":9},{"text":"Example","hash":"_example","id":10}]},"110":{"id":110,"text":"Read Multi Buffer first for prerequisite information. audio_stream_base is the abstract base class and highest-level interface for audio processing. It is responsible for setting up multichannel input and output buffers and presenting them to the user’s processing function, which is called at regular intervals at 1/Nth of the sampling frequency, where N is the size of the buffer. #include class audio_stream_base : non_copyable { public: using in_channels = multi_buffer; using out_channels = multi_buffer; audio_stream_base() {} virtual ~audio_stream_base() = default; virtual void process(in_channels const& in) {} virtual void process(out_channels const& out) {} virtual void process(in_channels const& in, out_channels const& out) {} }; The audio_stream_base is an abstract base class not meant to be directly instantiated. Audio I/O systems are responsible for providing concrete subclasses of audio_stream_base for the client’s use. The client writes a class derived from one of these, and overrides one of the three process member functions depending on the I/O configuration and purpose. process(in_channels const& in); Audio input only. Examples: VU Meter, Spectrum Analyzer. process(out_channels const& out); Audio output only. Example: Synthesizers. process(in_channels const& in, out_channels const& out); Audio input and output. Example: Effects processors.","title":"Audio Stream","component":"q","version":"v1.0_beta","name":"audio_stream","url":"/q/v1.0_beta/reference/support/audio_stream.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Client Interface","hash":"_client_interface","id":4}]},"111":{"id":111,"text":"Here are the basic C++ concepts used by the Q DSP library. #include The Arithmetic concept is a model of the std::integral OR the std::floating_point concept. namespace cycfi::q::concepts { template concept Arithmetic = std::integral || std::floating_point; } IndexableContainer is a concept that represents an indexable data type. Essentially, it must be indexable using the indexing subscript operator [] with a subscript convertable from std::size_t, and has a size() member function that returns the size of the Container or View being indexed. namespace cycfi::q::concepts { template concept IndexableContainer = requires(T& x, std::size_t i) { { x[i] } -> std::convertible_to; { x.size() } -> std::convertible_to; }; } IndexableContainer types allow standard for-loop iteration: for (auto i = 0; i != c.size() ++i) { c[i]; } Where c is an instance of IndexableContainer. RandomAccessIteratable is a concept that represents a random-access iteratable data type, which has begin() and end() member functions, and the return type of both functions is an iterator that conforms to the std::random_access_iterator concept. namespace cycfi::q::concepts { template concept RandomAccessIteratable = std::random_access_iterator && requires(T& c) { { c.begin() } -> std::same_as; { c.end() } -> std::same_as; }; } RandomAccessIteratable allows C++ range-based for loop syntax: for (auto e : c) { /**...**/ } Where c is an instance of RandomAccessIteratable and e is an element of c.","title":"Basic Concepts","component":"q","version":"v1.0_beta","name":"basic_concepts","url":"/q/v1.0_beta/reference/support/basic_concepts.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Arithmetic","hash":"_arithmetic","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"IndexableContainer","hash":"_indexablecontainer","id":5},{"text":"Declaration","hash":"_declaration_2","id":6},{"text":"RandomAccessIteratable","hash":"_randomaccessiteratable","id":7},{"text":"Declaration","hash":"_declaration_3","id":8}]},"112":{"id":112,"text":"MIDI is one way to control DSP parameters in a more meaningful, and musical way. Here, we talk about MIDI as a standardized messaging protocol. MIDI messages include note-on and note-off messages, control change messages, program change messages, and pitch bend messages, as well as tempo, time signature, and other performance data. #include namespace cycfi::q::midi_1_0 { /**...**/ } Currently, the Q DSP library supports MIDI 1.0, implemented in namespace midi_1_0. The MIDI 1.0 message is basically an array of std::uint8_t with sizes 1 to 3, encapsulated in a struct: struct message_base {}; // Base class for all messages template struct message : message_base { static constexpr int const size = size_; std::uint8_t data[size]; }; struct message1 : message { message1() = default; constexpr message1(raw_message msg); }; struct message2 : message { message2() = default; constexpr message2(raw_message msg); }; struct message3 : message { message3() = default; constexpr message3(raw_message msg); }; Generic MIDI messages are constructed from raw_message, which is essentially a std::uint32_t encapsulated in a struct that holds the 24-bits MIDI 1.0 message, encoded as little-endian: Figure 1. Raw MIDI Message struct raw_message { std::uint32_t data; }; The status byte indicates the type of MIDI message and includes both a status nibble (upper 4 bits) and a 16-channel number nibble (lower 4 bits). Figure 2. MIDI Status Byte Here is the MIDI status enumeration: namespace status { enum { note_off = 0x80, note_on = 0x90, poly_aftertouch = 0xA0, control_change = 0xB0, program_change = 0xC0, channel_aftertouch = 0xD0, pitch_bend = 0xE0, sysex = 0xF0, song_position = 0xF2, song_select = 0xF3, tune_request = 0xF6, sysex_end = 0xF7, timing_tick = 0xF8, start = 0xFA, continue_ = 0xFB, stop = 0xFC, active_sensing = 0xFE, reset = 0xFF }; } Specific MIDI messages are subclasses of the generic MIDI messages above. struct note_off : message3 { using message3::message3; constexpr note_off(std::uint8_t channel, std::uint8_t key, std::uint8_t velocity); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const; constexpr std::uint8_t velocity() const; }; struct note_on : message3 { using message3::message3; constexpr note_on(std::uint8_t channel, std::uint8_t key, std::uint8_t velocity); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const; constexpr std::uint8_t velocity() const; }; struct poly_aftertouch : message3 { using message3::message3; constexpr poly_aftertouch( std::uint8_t channel, std::uint8_t key, std::uint8_t pressure); constexpr std::uint8_t channel() const; constexpr std::uint8_t key() const { return data[1]; } constexpr std::uint8_t pressure() const; }; namespace cc { enum controller { bank_select = 0x00, modulation = 0x01, breath = 0x02, foot = 0x04, portamento_time = 0x05, data_entry = 0x06, channel_volume = 0x07, balance = 0x08, pan = 0x0A, expression = 0x0B, effect_1 = 0x0C, effect_2 = 0x0D, general_1 = 0x10, general_2 = 0x11, general_3 = 0x12, general_4 = 0x13, bank_select_lsb = 0x20, modulation_lsb = 0x21, breath_lsb = 0x22, foot_lsb = 0x24, portamento_time_lsb = 0x25, data_entry_lsb = 0x26, channel_volume_lsb = 0x27, balance_lsb = 0x28, pan_lsb = 0x2A, expression_lsb = 0x2B, effect_1_lsb = 0x2C, effect_2_lsb = 0x2D, general_1_lsb = 0x30, general_2_lsb = 0x31, general_3_lsb = 0x32, general_4_lsb = 0x33, sustain = 0x40, portamento = 0x41, sostenuto = 0x42, soft_pedal = 0x43, legato = 0x44, hold_2 = 0x45, sound_controller_1 = 0x46, // default: sound variation sound_controller_2 = 0x47, // default: timbre / harmonic content sound_controller_3 = 0x48, // default: release time sound_controller_4 = 0x49, // default: attack time sound_controller_5 = 0x4A, // default: brightness sound_controller_6 = 0x4B, // no default sound_controller_7 = 0x4C, // no default sound_controller_8 = 0x4D, // no default sound_controller_9 = 0x4E, // no default sound_controller_10 = 0x4F, // no default general_5 = 0x50, general_6 = 0x51, general_7 = 0x52, general_8 = 0x53, portamento_control = 0x54, effects_1_depth = 0x5B, // previously reverb send effects_2_depth = 0x5C, // previously tremolo depth effects_3_depth = 0x5D, // previously chorus depth effects_4_depth = 0x5E, // previously celeste (detune) depth effects_5_depth = 0x5F, // previously phaser effect depth data_inc = 0x60, // increment data value (+1) data_dec = 0x61, // decrement data value (-1) nonrpn_lsb = 0x62, nonrpn_msb = 0x63, rpn_lsb = 0x64, rpn_msb = 0x65, all_sounds_off = 0x78, reset = 0x79, local = 0x7A, all_notes_off = 0x7B, omni_off = 0x7C, omni_on = 0x7D, mono = 0x7E, poly = 0x7F }; } struct control_change : message3 { using message3::message3; constexpr control_change( std::uint8_t channel, cc::controller ctrl, std::uint8_t value); constexpr std::uint8_t channel() const; constexpr cc::controller controller() const; constexpr std::uint8_t value() const; }; struct program_change : message2 { using message2::message2; constexpr program_change(std::uint8_t channel, std::uint8_t preset); constexpr std::uint8_t channel() const; constexpr std::uint8_t preset() const; }; struct channel_aftertouch : message2 { using message2::message2; constexpr channel_aftertouch(std::uint8_t channel, std::uint8_t pressure); constexpr std::uint8_t channel() const; constexpr std::uint8_t pressure() const; }; struct pitch_bend : message3 { using message3::message3; constexpr pitch_bend(std::uint8_t channel, std::uint16_t value); constexpr pitch_bend(std::uint8_t channel, std::uint16_t lsb, std::uint8_t msb); constexpr std::uint8_t channel() const; constexpr std::uint16_t value() const; }; struct song_position : message3 { using message3::message3; constexpr song_position(std::uint16_t position); constexpr song_position(std::uint8_t lsb, std::uint8_t msb); constexpr std::uint16_t position() const; }; struct song_select : message2 { using message2::message2; constexpr song_select(std::uint8_t song_number); constexpr std::uint16_t song_number() const; }; struct tune_request : message1 { using message1::message1; constexpr tune_request(); }; struct timing_tick : message1 { using message1::message1; constexpr timing_tick(); }; struct start : message1 { using message1::message1; constexpr start(); }; struct continue_ : message1 { using message1::message1; constexpr continue_(); }; struct stop : message1 { using message1::message1; constexpr stop(); }; struct active_sensing : message1 { using message1::message1; constexpr active_sensing(); }; struct reset : message1 { using message1::message1; constexpr reset(); }; The note_name utility function can be used to convert a MIDI note number to a string representing the key. constexpr char const* note_name(std::uint8_t key); Example: std::cout << note_name(60) << std::endl; // Prints \"C4\" Conversely, the note_number utility function can be used to convert a string representing the key to a MIDI note number. int note_number(std::string_view note) The syntax is as follows: A letter a-g or A-G Optionally followed by # or b Followed by a number that ranges from -1 to 9 The range is from C-1 to G9. Example: std::cout << note_number(\"C4\") << std::endl; // Prints 60 The function returns -1 when given invalid input.","title":"MIDI Messages","component":"q","version":"v1.0_beta","name":"midi_messages","url":"/q/v1.0_beta/reference/support/midi_messages.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Namespace","hash":"_namespace","id":3},{"text":"Generic MIDI Messages","hash":"_generic_midi_messages","id":4},{"text":"Raw MIDI Messages","hash":"_raw_midi_messages","id":5},{"text":"MIDI Status","hash":"_midi_status","id":6},{"text":"Specific MIDI Messages","hash":"_specific_midi_messages","id":7},{"text":"note_off","hash":"_note_off","id":8},{"text":"note_on","hash":"_note_on","id":9},{"text":"poly_aftertouch","hash":"_poly_aftertouch","id":10},{"text":"control_change","hash":"_control_change","id":11},{"text":"program_change","hash":"_program_change","id":12},{"text":"channel_aftertouch","hash":"_channel_aftertouch","id":13},{"text":"pitch_bend","hash":"_pitch_bend","id":14},{"text":"song_position","hash":"_song_position","id":15},{"text":"song_select","hash":"_song_select","id":16},{"text":"tune_request","hash":"_tune_request","id":17},{"text":"timing_tick","hash":"_timing_tick","id":18},{"text":"start","hash":"_start","id":19},{"text":"continue_","hash":"_continue","id":20},{"text":"stop","hash":"_stop","id":21},{"text":"active_sensing","hash":"_active_sensing","id":22},{"text":"reset","hash":"_reset","id":23},{"text":"Note Name","hash":"_note_name","id":24},{"text":"Note Number","hash":"_note_number","id":25}]},"113":{"id":113,"text":"Read MIDI Messages first for prerequisite information. The MIDI processor is a user-defined construct that follows a specific C++ concept for receiving and interpreting MIDI messages. The MIDI processor acts as an intermediary between MIDI devices and the application. Its purpose is to receive incoming MIDI messages, analyze their content, and extract relevant information. This may include extracting note data, control change values, program change commands, or any other MIDI message content that is of interest to the user. #include // Concepts namespace cycfi::q::concepts::midi_1_0 { /**...**/ } // API and Implementation namespace cycfi::q::midi_1_0 { /**...**/ } Currently, the Q DSP library supports MIDI 1.0, implemented in namespace midi_1_0. namespace cycfi::q::concepts { namespace midi_1_0 { template concept Processor = requires(T&& proc, q::midi_1_0::message_base const& msg, std::size_t time) { proc(msg, time); }; } } Processor is a concept that represents a MIDI 1.0 processor. It is placed inside namespace midi_1_0 to distinguish it from future MIDI processors. Essentially, the C++ concept states that: Processor has a function call operator that accepts a MIDI 1.0 message and a time stamp. The MIDI 1.0 message, msg, is derived from message_base. The time stamp is represented as a millisecond clock with an undefined arbitrary start time. proc Instance of a type that conforms to Processor. msg Instance of a type that conforms to Message. time A std::size_t time stamp. Expression Semantics Return Type proc(msg, time) Process the MIDI message, msg at time stamp time. void processor is a basic class that conforms to the Processor concept, but does nothing by default. struct processor { void operator()(message_base const& msg, std::size_t time) {} }; This utility class provides the default no-op handling. It is intended to be derived from. Thus, the derived class can overload specific function call operators for messages it is interested with. Example: namespace midi = cycfi::q::midi_1_0; struct my_midi_processor : midi::processor { using midi::processor::operator(); void operator()(midi::note_on msg, std::size_t time); void operator()(midi::note_off msg, std::size_t time); }; In this example, my_midi_processor is interested with, and processes only note_on and note_off messages. The dispatch takes in a raw MIDI 1.0 message (raw_message), a time stamp, and a Processor. It converts the raw MIDI message to a specific MIDI message, and dispatches the message to the processor, along with the time stamp. template requires concepts::Processor void dispatch(raw_message msg, std::size_t time, P&& proc); This function is the basic low-level hook for dispatching raw MIDI messages obtained by an I/O system from MIDI devices.","title":"MIDI Processor","component":"q","version":"v1.0_beta","name":"midi_processor","url":"/q/v1.0_beta/reference/support/midi_processor.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Namespaces","hash":"_namespaces","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"processor","hash":"_processor","id":8},{"text":"Dispatch","hash":"_dispatch","id":9}]},"114":{"id":114,"text":"Read Basic Concepts first for prerequisite information. Multi-buffer presents a multi-channel buffer arranged in a non-interleaved format where each channel has its own dedicated buffer, and the samples within each buffer are arranged sequentially in contiguous memory locations. The non-interleaved format is ideal for digital signal processing where it is necessary to perform operations on individual channels separately, often in parallel for maximum efficiency. As an example, the figure below shows the memory layout of a 4-channel non-interleaved format. Figure 1. 4 Channel Non-Interleaved Format A Multi-buffer can be conceptualized as a two-dimensional array. The first dimension in this representation corresponds to the samples (x-dimension), while the second dimension represents the channels (y-dimension). Essentially, you can access each individual sample using the two indices ch and i, where ch is the channel index and i is the sample index. mb[ch][i] Each dimension has a size which can be obtained this way: mb.size() // The number of channels mb[ch].size() // The number of frames per channel That way, you can iterate through the channels and samples this way: for (auto ch = 0; ch != mb.size() ++ch) { for (auto i = 0; i != mb[ch].size() ++i) { auto s = mb[ch][i]; // Do something with the sample `s` } } Alternately, you can iterate through the channels and samples in a channel, using C++ range-based for loop syntax, as follows: for (auto ch : mb.channels) { for (auto i : mb.frames) { auto s = mb[ch][i]; // Do something with the sample `s` } } Take note that this syntax is unorthodox in the way it uses C++ range-based for loop syntax. Instead of accessing the channels and samples directly, mb.channels and mb.frames both return a range of indices (corresponding to 0..N, where N is number of channels, for mb.channels or samples, for mb.frames). The design rationale is to always allow random access to all channels and all samples for each channel. For example, you might want to access both the left and right channels of a stereo (2-channel) multi-buffer and mix them: auto left = mb[0]; auto right = mb[1]; for (auto i : mb.frames) { auto mono = right[i] + left[i]; // Add the left and right channels // Do something with `mono` } mb[ch] returns a view of the channel. It does not copy the whole buffer. This \"view\" is lightweight and can be held and passed by value without worrying about performance. The previous example can extend to an N channel mixer this way: for (auto i : mb.frames) { auto sum = 0.0f; for (auto ch : mb.channels) sum += mb[ch][i]; // Do something with `sum` } If you simply need sequential access to the samples in a channel, you can do it this way: for (auto ch : mb.channels) { for (auto s : mb[ch]) { // Do something with the sample `s` } } #include template class multi_buffer { public: using sample_type = T; using buffer_view = iterator_range; using frames_view = iterator_range; using channels_view = iterator_range; // Unspecified constructor buffer_view operator[](std::size_t channel) const; std::size_t size() const; frames_view frames; channels_view channels; }; multi_buffer is a template class that implements the multi-buffer. The template paratemeter, T, is the sample type which is a model of the std::floating_point concept. iterator_range is a template class that holds two random access iterators. It is a model of IndexableContainer, and RandomAccessIteratable. The template parameter, I, is the iterator type. index_iterator is a model of the std::random_access_iterator concept. The value_type of the index_iterator is simply a std::size_t. multi_buffer is a model of IndexableContainer with buffer_view elements: an iterator-range containing pointers to the sample type (T*). multi_buffer has member variables frames and channels that are iterator-ranges containing index-iterators. T The sample type (typically float). MB multi_buffer type. mb Instance of multi_buffer. i Object of type std::size_t, used for indexing. Expression Semantics Type MB::sample_type Get the sample type. `T MB::buffer_view Get the iterator type. iterator_range MB::channel_view Get the channel view type. iterator_range MB::frames_view Get the frames view type. iterator_range The multi_buffer constructor is unspecified. The multi-buffer is not meant to be instantiated by the user. Expression Semantics Return Type mb[i] Index operator. MB::buffer_view mb.size() Get the number of channels. std::size_t mb.frames Get the frames view. MB::frames_view mb.channels Get the channels view. MB::channels_view","title":"Multi Buffer","component":"q","version":"v1.0_beta","name":"multi_buffer","url":"/q/v1.0_beta/reference/support/multi_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Usage","hash":"_usage","id":2},{"text":"Include","hash":"_include","id":3},{"text":"Declaration","hash":"_declaration","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Type Definitions","hash":"_type_definitions","id":7},{"text":"Constructor","hash":"_constructor","id":8},{"text":"Indexing","hash":"_indexing","id":9}]},"115":{"id":115,"text":"The Blackman taper is a type of window function that gradually tapers the amplitude of a signal towards the window’s edges. It is often used in digital signal processing to smooth a signal (smoothing discontinuities at the edges of sampled signals) or to reduce spectral leakage. The Blackman window has a wider main lobe and lower level side lobes than other windows. It is named after Robert Blackman, who first described it in 1958. The formula for the Blackman window is: w(n) = 0.42 - 0.5 * cos(2pi*n/(N-1)) + 0.08 * cos(4pi*n/(N-1)) Aside from its common use as a window function, the Q DSP library also utilizes the blackman window generator for modulating the audio signal and generating complex envelopes. #include struct blackman_gen { blackman_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; blackman_gen is a model of Generator. In addition to valid expressions for Generator, blackman_gen allows these expressions. g Object of type blackman_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics blackman_gen(w, sps) Construct blackman_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window. Two subclasses of blackman_gen are specialized for ramp generation: The Blackman upward ramp generator generates a rising curve with the shape of the first half of a Blackman window taper. The Blackman downward ramp generator generates a falling curve with the shape of the second half of a Blackman window taper. struct blackman_upward_ramp_gen : blackman_gen { blackman_upward_ramp_gen(duration width, float sps); void config(duration width, float sps); }; struct blackman_downward_ramp_gen : blackman_gen { blackman_downward_ramp_gen(duration width, float sps); void reset(); void config(duration width, float sps); }; blackman_upward_ramp_gen and struct blackman_downward_ramp_gen : blackman_gen ` are a models of `Ramp and implements all valid expressions of Ramp.","title":"Blackman Window Generator","component":"q","version":"v1.0_beta","name":"blackman_gen","url":"/q/v1.0_beta/reference/synth/blackman_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7},{"text":"Ramp Generators","hash":"_ramp_generators","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10}]},"116":{"id":116,"text":"envelope_gen is a highly configurable multi-segment envelope generator. Each segment is a Ramp that can be configured to have any conceivable shape. A few ramp shapes, including exponential, linear, blackman, and hann are provided. The user may add their own Ramp generator following a well defined c++ concept specification. The plot above is an example of a 5-segment envelope_gen output. The ramp segments S1 to S5 are as follows: blackman_upward_ramp_gen (see blackman_gen) hold_line_gen (see linear_gen) blackman_downward_ramp_gen (see blackman_gen) lin_downward_ramp_gen (see linear_gen) exp_downward_ramp_gen (see exponential_gen) The phases and transitions of the envelope gen are depicted in the following stylized state diagram. There are four phases of interest: Idle phase: The output sits at zero while waiting for the next attack signal Ⓐ. Attack phase: Initiated when the attack signal Ⓐ is received, e.g. when a key is pressed. Intermediate phase: Starts after the attack phase and ends before the release phase. Release phase: Initiated when the release signal Ⓡ is received, e.g when the key is released. The envelope_gen waits for an attack signal Ⓐ while in the idle phase. As soon as an attack signal Ⓐ is received, the state immediately transitions to the attack phase. The output ramps up from 0.0 to the specified attack level, over the specified attack duration. The envelope gen is not retriggerable. Attack signals Ⓐ are only permitted during the idle phase. Any attack signal Ⓐ received outside of the idle phase is disregarded. Use one envelope_gen instance per note. This is most natural with polyphonic voicing, but can also apply to monophonic voicing. For monophonic voicing, on an incoming attack signal Ⓐ, active instances are sent release signals Ⓡ, a new instance is created, and its attack phase is initiated. The output will then be the maximum of all active instances. After the attack phase, anything that comes in between the attack phase and release phase are intermmediate phases that are sequenced by the envelope_gen, one after the other. Intermmediate phases may include the decay phase, the hold phase and the sustain phase. For each intermediate phase, the output ramps up or down from the previous level to the phase’s level over the phase’s duration. Upon receiving the release signal Ⓡ, the envelope_gen immediately transitions to the release phase. This may occur at any point during the attack or intermediate phases. The current phase may be cut short when this happens, and without delay, the output ramps down to 0.0 over the specified release duration. Typically, the last intermediate segment is configured with a very long duration (e.g. for sustain), and normally a release signal Ⓡ will occur long before the last intermediate segment ends. If that is not the case, like for example if the sustain segment is a relatively short linear down ramp, it is possible to transition to the release phase before a release signal Ⓡ is received. After completion of the release phase, the envelope_gen returns back to the idle state. Each envelope segment has parameters for width (the duration of the segment), level (the end level of the segment), and of course the Ramp type. A make_envelope_segment free function, templated on the ramp type, is provided for making segments. #include struct envelope_segment { envelope_segment(envelope_segment const&); envelope_segment& operator=(envelope_segment const&); void level(float level); void config(duration width, float sps); void config(float level, duration width, float sps); /*** Unspecified member functions ***/ }; template inline envelope_segment make_envelope_segment(duration width, float level, float sps); s, a, b Objects of type envelope_segment. w Object of type duration. l Floating point value representing level (0.0 to 1.0). sps Floating point value representing samples per second. T Ramp type. Expression Semantics envelope_segment(s) Copy construct from s. a = b Assign b to a. Expression Semantics Return Type make_envelope_segment( w, l, sps) Make an envelope segment with specified Ramp type, T, level, l, width, w, and samples per second, sps. envelope_segment // Make a 10 ms exponential segment with a peak level of 1.0. auto s = make_envelope_segment(10_ms, 1.0f, sps); Expression Semantics s.level(l) Set the segment level to l. s.config(w, sps) Set the segment width, w, with samples per second, sps. s.config(l, w, sps) Set the segment level, l, width, w, with samples per second, sps. The envelope generator is basically a container (std::vector) of envelope segments. Multiple segments with distinct shape characteristics may be used to construct ADSR envelopes, AD envelopes, etc. #include struct envelope_gen : std::vector { using base_type = std::vector; template envelope_gen(T&& ...arg); void attack(); void release(); float operator()(); void reset(); float current() const; bool in_idle_phase() const; bool in_attack_phase() const; bool in_release_phase() const; std::size_t index() const; }; As a subclass of std::vector, you can use all the facilities of std::vector to compose a multi-segment envelope generator of varying complexity. Take note of the single forwarding constructor that accepts variable arguments. Its purpose is to reset envelope_gen automatically after construction. All arguments are forwarded to the base class. envelope_gen is a subclass of std::vector and inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for std::vector, envelope_gen allows these expressions. g Object of type envelope_gen. Expression Semantics Return Type g() Generate the next value. float Expression Semantics g.attack() Start the attack phase. g.release() Start the release phase. g.reset() Reset and move to the idle phase. Call envelope_gen::reset() whenever the segments change, such as when adding or removing segments from the segments container, to reset envelope_gen to the idle state. Expression Semantics Return Type g.current() Get the current level. float g.in_idle_phase() Return true if we are in the idle phase. bool g.in_attack_phase() Return true if we are in the attack phase. bool g.in_release_phase() Return true if we are in the release phase. bool g.index() Get the current index — the index of the latest active segment. std::size_t adsr_envelope_gen is a subclass of envelope_gen that offers specializations for generating envelopes of the ADSR type. This is a basic subclass that serves as a practical and prototypical envelope generator example. We will provide the full source code below, as an example of how to write an envelope generator. #include struct adsr_envelope_gen : envelope_gen { struct config { // Default settings duration attack_rate = 30_ms; duration decay_rate = 70_ms; decibel sustain_level = -6_dB; duration sustain_rate = 50_s; duration release_rate = 100_ms; }; adsr_envelope_gen(config const& config, float sps); void attack_rate(duration rate, float sps); void decay_rate(duration rate, float sps); void sustain_level(decibel level); void sustain_rate(duration rate, float sps); void release_rate(duration rate, float sps); }; inline adsr_envelope_gen::adsr_envelope_gen(config const& config_, float sps) : envelope_gen{ make_envelope_segment( config_.attack_rate, 1.0f, sps) // Attack (1) , make_envelope_segment( config_.decay_rate, lin_float(config_.sustain_level), sps) // Decay (2) , make_envelope_segment( config_.sustain_rate, 0.0f, sps) // Sustain (3) , make_envelope_segment( config_.release_rate, 0.0f, sps) // Release (4) } { } The config struct contains the constructor specifications for the ADSR paramneters, including attack_rate, decay_rate, sustain_level, sustain_rate, and release_rate. The user may specify these parameters like in this example: // Configure the adsr_envelope_gen auto env_cfg = q::adsr_envelope_gen::config { 300_ms // attack rate , 1_s // decay rate , -12_dB // sustain level , 5_s // sustain rate , 1_s // release rate }; // Instantiate an adsr_envelope_gen auto env_gen = q::adsr_envelope_gen{env_cfg, sps}; These parameters are used to construct the 4 segments comprising an ADSR envelope generator. Each of the segments are created using make_envelope_segment, passing in the Ramp type and the level, width, and samples per second. By defautl, the adsr_envelope_gen makes 4 segments with types: 1 exp_upward_ramp_gen for the attack segment, with peak level of 1.0. 2 exp_downward_ramp_gen for the decay segment, with level set to the sustain level. 3 lin_downward_ramp_gen for the sustain segment. This is a 5-second decaying linear ramp. 4 exp_downward_ramp_gen for the release segment, with level of 0.0. The remaining items are self-explanatory. These member functions permit the user to modify the five ADSR parameters following construction. The envelope segments are stored at indices 0 to 3 in the vector. // Set the attack rate inline void adsr_envelope_gen::attack_rate(duration rate, float sps) { (*this)[0].config(rate, sps); } // Set the decay rate inline void adsr_envelope_gen::decay_rate(duration rate, float sps) { (*this)[1].config(rate, sps); } // Set the sustain level inline void adsr_envelope_gen::sustain_level(decibel level) { (*this)[2].level(lin_float(level)); } // Set the sustain rate inline void adsr_envelope_gen::sustain_rate(duration rate, float sps) { (*this)[2].config(rate, sps); } // Set the release rate inline void adsr_envelope_gen::release_rate(duration rate, float sps) { (*this)[3].config(rate, sps); }","title":"Envelope Generator","component":"q","version":"v1.0_beta","name":"envelope_gen","url":"/q/v1.0_beta/reference/synth/envelope_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Phases and Transitions","hash":"_phases_and_transitions","id":2},{"text":"Envelope Segment","hash":"_envelope_segment","id":3},{"text":"Include","hash":"_include","id":4},{"text":"Declaration","hash":"_declaration","id":5},{"text":"Expressions","hash":"_expressions","id":6},{"text":"Notation","hash":"_notation","id":7},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":8},{"text":"Factory","hash":"_factory","id":9},{"text":"Example","hash":"_example","id":10},{"text":"Mutators","hash":"_mutators","id":11},{"text":"Envelope Generator","hash":"_envelope_generator","id":12},{"text":"Include","hash":"_include_2","id":13},{"text":"Declaration","hash":"_declaration_2","id":14},{"text":"Expressions","hash":"_expressions_2","id":15},{"text":"Notation","hash":"_notation_2","id":16},{"text":"Function Call","hash":"_function_call","id":17},{"text":"Operation","hash":"_operation","id":18},{"text":"Accessors","hash":"_accessors","id":19},{"text":"ADSR Envelope Generator","hash":"_adsr_envelope_generator","id":20},{"text":"Include","hash":"_include_3","id":21},{"text":"Declaration","hash":"_declaration_3","id":22},{"text":"Implementation","hash":"_implementation","id":23},{"text":"Constructor","hash":"_constructor","id":24},{"text":"Mutators","hash":"_mutators_2","id":25}]},"117":{"id":117,"text":"exp_upward_ramp_gen is an exponential upward ramp generator that generates an exponentially increasing amplitude from 0.0 to 1.0, similar to a capacitor charged by a series resistor over time specified by the duration (width) and samples per second (sps), and optional exponential curvature (cv) parameters. exp_downward_ramp_gen is the inverse of the exponential upward ramp generator. This is similar to a capacitor discherged through a resistor. The Q DSP library utilizes the exponential ramp generators for generating complex envelopes. #include struct exp_upward_ramp_gen { exp_upward_ramp_gen(duration width, float sps, float cv = 0.95); float operator()(); void config(duration width, float sps); void config(duration width, float sps, float cv); void reset(); }; struct exp_downward_ramp_gen : exp_upward_ramp_gen { using exp_upward_ramp_gen::exp_upward_ramp_gen; float operator()(); }; exp_upward_ramp_gen and exp_downward_ramp_gen are a models of Ramp. In addition to valid expressions for Ramp, exp_upward_ramp_gen and exp_downward_ramp_gen allow these expressions. g Object of type exp_upward_ramp_gen or exp_downward_ramp_gen. w Object of type duration. sps Floating point value representing samples per second. cv Exponential curvature. The cv constructor and config parameter determines the curvature of the exponential. Valid cv values range greater than 0.0 to anything less than 1.0. cv is the final value in the exponential curve that will be considered as the peak value that will be scaled up to 1.0. Increasing the cv value leads to more pronounced curves. Lower cv values produce flatter, more linear ramps. The default is 0.95. Expression Semantics exp_upward_ramp_gen(w, sps, cv) Construct exp_upward_ramp_gen given width, w, and samples per second, sps, and exponential curvature, cw. exp_downward_ramp_gen(w, sps, cv) Construct exp_downward_ramp_gen given width, w, and samples per second, sps, and exponential curvature, cw. C++ brace initialization may also be used. Expression Semantics g.config(w, sps, cw) Set the ramp width, w, with samples per second, sps, and exponential curvature, cw.","title":"Exponential Ramp Generator","component":"q","version":"v1.0_beta","name":"exponential_gen","url":"/q/v1.0_beta/reference/synth/exponential_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"118":{"id":118,"text":"The Hamming window, named for R. W. Hamming, is a window function that tapers a signal towards its edges with non-zero endpoints. The Hamming window features a moderate rolloff rate and optimized to minimize the nearest side lobe, allowing for a fair mix of spectral resolution and noise reduction. The formula for the Hamming window is: w(n) = 0.54 - 0.46 * cos(2pi*n/(N-1)) Aside from its common use as a window function, the Q DSP library also utilizes the hamming window generator for modulating the audio signal and generating complex envelopes. #include struct hamming_gen { hamming_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; hamming_gen is a model of Generator. In addition to valid expressions for Generator, hamming_gen allows these expressions. g Object of type hamming_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics hamming_gen(w, sps) Construct hamming_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window.","title":"Hamming Window Generator","component":"q","version":"v1.0_beta","name":"hamming_gen","url":"/q/v1.0_beta/reference/synth/hamming_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"119":{"id":119,"text":"The Hann window, also known as the Cosine Bell, is named after the Austrian meteorologist Julius von Hann. The Hann window is a taper formed with a cosine raised above zero. It is used as one of many windowing functions for smoothing values. The The Hann window taper belongs to both the cosine-sum and sine-power families. Unlike the Hamming window, the Hann window’s end points touch zero. The formula for the Hann window is: w(n) = 0.5*(1 - cos(2pin/(N-1))) Aside from its common use as a window function, the Q DSP library also utilizes the hann window generator for modulating the audio signal and generating complex envelopes. #include struct hann_gen { hann_gen(duration width, float sps); float operator()(); void config(duration width, float sps; void reset(); void midpoint(); }; hann_gen is a model of Generator. In addition to valid expressions for Generator, hann_gen allows these expressions. g Object of type hann_gen. w Object of type duration. sps Floating point value representing samples per second. Expression Semantics hann_gen(w, sps) Construct hann_gen given window width, w, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics g.config(w, sps) Set the window width, w, with samples per second, sps. g.reset() Set the current phase to the start of the window. g.midpoint() Set the current phase to the middle of the window. Two subclasses of hann_gen are specialized for ramp generation: The Hann upward ramp generator generates a rising curve with the shape of the first half of a Hann window taper. The Hann downward ramp generator generates a falling curve with the shape of the second half of a Hann window taper. struct hann_upward_ramp_gen : hann_gen { hann_upward_ramp_gen(duration width, float sps); void config(duration width, float sps); }; struct hann_downward_ramp_gen : hann_gen { hann_downward_ramp_gen(duration width, float sps); void reset(); void config(duration width, float sps); }; hann_upward_ramp_gen and struct hann_downward_ramp_gen : hann_gen ` are a models of `Ramp and implements all valid expressions of Ramp.","title":"Hann Window Generator","component":"q","version":"v1.0_beta","name":"hann_gen","url":"/q/v1.0_beta/reference/synth/hann_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7},{"text":"Ramp Generators","hash":"_ramp_generators","id":8},{"text":"Declaration","hash":"_declaration_2","id":9},{"text":"Expressions","hash":"_expressions_2","id":10}]},"120":{"id":120,"text":"The linear upward ramp generator, lin_upward_ramp_gen generates a linearly increasing amplitude from 0.0 to 1.0 specified by the duration (width) and samples per second (sps parameters. This is essentially a basic straight ramp from 0.0 to 1.0. lin_downward_ramp_gen is the inverse of the linear upward ramp generator. This is essentially a basic straight ramp from 1.0 to 0.0. hold_line_gen is an infinitely wide straight horizontal line at 1.0. The Q DSP library utilizes the linear ramp generators for generating complex envelopes. #include struct lin_upward_ramp_gen { lin_upward_ramp_gen(duration width, float sps); float operator()(); void config(duration width, float sps); void reset(); }; struct lin_downward_ramp_gen : lin_upward_ramp_gen { lin_downward_ramp_gen(duration width, float sps); float operator()(); }; struct hold_line_gen { hold_line_gen(duration width, float sps); float operator()(); void config(duration width, float sps); void reset(); }; lin_upward_ramp_gen, lin_downward_ramp_gen and hold_line_gen are a models of Ramp and implements all valid expressions of Ramp.","title":"Linear Ramp Generator","component":"q","version":"v1.0_beta","name":"linear_gen","url":"/q/v1.0_beta/reference/synth/linear_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"121":{"id":121,"text":"The pulse wave oscillator programmatically generates a pulse waveform with specified pulse width. The basic_pulse_osc is not bandwidth limited, while pulse_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_pulse_osc { constexpr basic_pulse_osc(float width = 0.5); constexpr void width(float width); constexpr float operator()(phase p); constexpr float operator()(phase_iterator i); }; struct pulse_osc : basic_pulse_osc { constexpr pulse_osc(float width = 0.5); constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; basic_pulse_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. pulse_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. In addition to valid expressions for BasicOscillator and BandwidthLimitedOscillator, basic_pulse_osc and pulse_osc allow these expressions. w A floating point value from 0.0 to 1.0 representing pulse width. ps Object of type basic_pulse_osc or pulse_osc Expression Semantics basic_pulse_osc(w) Construct a basic_pulse_osc given a pulse width, w pulse_osc(w) Construct a pulse_osc given a pulse width, w C++ brace initialization may also be used. Expression Semantics ps.width(w) Set the basic_pulse_osc or pulse_osc pulse width to w.","title":"Pulse Wave Oscillator","component":"q","version":"v1.0_beta","name":"pulse_osc","url":"/q/v1.0_beta/reference/synth/pulse_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Mutators","hash":"_mutators","id":7}]},"122":{"id":122,"text":"The saw-tooth wave oscillator programmatically generates the waveform. The result is basically just the phase, centered around zero, producing an amplitude of ±1.0. The basic_saw_osc is not bandwidth limited, while saw_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_saw_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_saw = basic_saw_osc{}; struct saw_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto saw = saw_osc{}; basic_saw_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. saw_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_saw_osc and saw_osc are stateless. The global instances basic_saw and saw can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Saw-Tooth Wave Oscillator","component":"q","version":"v1.0_beta","name":"saw_osc","url":"/q/v1.0_beta/reference/synth/saw_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"123":{"id":123,"text":"sin_cos_gen is an oscillator that simultaneously generates sine and cosine waveforms. sin_cos_gen is implemented utilizing Hal Chamberlin’s state variable IIR filter, a digital derivation of the analog state variable filter optimized for infinite Q oscillation. sin_cos_gen is suitable as a low frequency sine wave oscillator. The upper frequency limit for stability is roughly 1/6 sps. At low frequencies, the waveform symmetry is very pure, but it becomes skewed as you approach the upper limit. For low frequencies, we can reduce the calculation of the coefficient to 2*Pi*freq/sps. When utilized with fixed point or IEEE floating point, the oscallator should run forever without instability. While sin_cos_gen is technically an oscillator which generates periodic waveforms, it is presented as a model of Generator because it does not conform to the Oscillator concept which requires complete control over the phase. Although sin_cos_gen is technically an oscillator that produces periodic waveforms, it is represented as a model of a Generator because it does not adhere to the Oscillator concept, which requires complete control over the phase for synchronicity. As a free-running oscillator,sin_cos_gen can exhibit phase drift over time due to accumulating floating-point errors. Source: The digital state variable filter #include struct sin_cos_gen { sin_cos_gen(frequency f, float sps); std::pair operator()(); void config(frequency f, float sps); void reset(float sin = 0.0f, float cos = 1.0f); void midpoint(); }; sin_cos_gen is a model of Generator. In addition to valid expressions for Generator, sin_cos_gen allows these expressions. g Object of type sin_cos_gen. f Object of type frequency. sps Floating point value representing samples per second. sval, cval Floating point value values. Expression Semantics sin_cos_gen(f, sps) Construct sin_cos_gen given frequency, f, and samples per second, sps. C++ brace initialization may also be used. Expression Semantics Return Type g() Generate a sin/cos signal and get both sin and cos result. The return type is a std::pair which stores the sin and cos results. std::pair g().first Generate a sin/cos signal and get only the sin result. float g().second Generate a sin/cos signal and get only the cos result. float Expression Semantics g.config(f, sps) Set the frequency, f, with samples per second, sps. g.reset() Reset the current sin and cos to 0.0f and 1.0f, respectively. g.reset(sval, cval) Reset the current sin and cos values, respectively. g.midpoint() Equivalent to g.reset(0.0f, -1.0f).","title":"Sine Cosine Generator","component":"q","version":"v1.0_beta","name":"sin_cos_gen","url":"/q/v1.0_beta/reference/synth/sin_cos_gen.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Function Call","hash":"_function_call","id":7},{"text":"Mutators","hash":"_mutators","id":8}]},"124":{"id":124,"text":"The sine wave oscillator is one of the most fundamental building blocks in synthesis. It generates a basic, pure waveform consisting of a single frequency with no harmonics or overtones. The sine wave oscillator is often used in additive synthesis to create complex waveforms by combining simple sine waves of various frequencies, phases, and amplitudes. It is also often used as a low-frequency oscillator for modulating various audio parameters, such as frequency and amplitude. sin_osc efficiently synthesizes sine waves from a lookup table to avoid performing complex calculations in real-time. The lookup table is optimized for use in small MCUs (microconrrollers), by having the data stored as c++ constexpr array, which is effectively placed in flash memory. #include struct sin_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto sin = sin_osc{}; sin_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. sin_osc is stateless. The global instance sin can be used anywhere without needing to be placed in a class or struct. It is semantically equivalent to a global function.","title":"Sine Wave Oscillator","component":"q","version":"v1.0_beta","name":"sin_osc","url":"/q/v1.0_beta/reference/synth/sin_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"125":{"id":125,"text":"The square wave oscillator programmatically generates a pulse waveform with a 50% pulse width. The basic_square_osc is not bandwidth limited, while square_osc is, using a technique called \"PolyBLEP\" to reduce aliasing artifacts that can occur when generating the waveform with a sharp discontinuity as the signal transitions from -1.0 to 1.0. PolyBLEP works by precalculating a correction function that subtracts the waveform’s high-frequency components at discontinuities. This correction function is then applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_square_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_square = basic_square_osc{}; struct square_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto square = square_osc{}; basic_square_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. square_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_square_osc and square_osc are stateless. The global instances basic_square and square can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Square Wave Oscillator","component":"q","version":"v1.0_beta","name":"square_osc","url":"/q/v1.0_beta/reference/synth/square_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"126":{"id":126,"text":"The triangle wave oscillator programmatically generates a triangle waveform that ramps up from 0.0 to 1.0, then ramps down to -1.0, and ramps back up to 0.0. The basic_triangle_osc is not bandwidth limited, while triangle_osc is, using a technique called \"PolyBLAMP\" to reduce aliasing artifacts that can occur when generating the triangle waveform with sharp corners. PolyBLAMP uses the BLAMP (bandlimited ramp) function to treat any discontinuities found in the first derivative of a signal by quasi-bandlimiting the corners found in the waveform. The algorithm derives a polynomial approximation of the BLAMP function, making it efficient for implementation. This correction function is applied to the generated waveform, effectively removing frequencies above the waveform’s Nyquist frequency to avoid aliasing artifacts. #include struct basic_triangle_osc { constexpr float operator()(phase p) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto basic_triangle = basic_triangle_osc{}; struct triangle_osc { constexpr float operator()(phase p, phase dt) const; constexpr float operator()(phase_iterator i) const; }; constexpr auto triangle = triangle_osc{}; basic_triangle_osc is a model of BasicOscillator and implements all valid expressions of BasicOscillator. triangle_osc is a model of BandwidthLimitedOscillator and implements all valid expressions of BandwidthLimitedOscillator. basic_triangle_osc and triangle_osc are stateless. The global instances basic_triangle and triangle can be used anywhere without needing to be placed in a class or struct. They are semantically equivalent to global functions.","title":"Triangle Wave Oscillator","component":"q","version":"v1.0_beta","name":"triangle_osc","url":"/q/v1.0_beta/reference/synth/triangle_osc.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4}]},"127":{"id":127,"text":"The decibel (dB) is a unit used to measure the relative signal level difference between two signals. It is a logarithmic scale that expresses the relationship between two signal root-power amplitudes or power levels. Here, we are concerned with amplitudes. For amplitudes gain, the relationship is given by: 20 log10(out/in) = dB where out represents the output amplitude, while in represents the input amplitude. The decibel scale is expressed as the base 10 logarithm of the ratio between two amplitudes. For instance, a ratio of 2:1 (two times) corresponds to a 6 dB increase, while a ratio of 10:1 (ten times) corresponds to a 20 dB increase. In contrast, a ratio of 1:2 (one half) corresponds to a -6 dB decrease, whereas a ratio of 1:10 (one tenth) corresponds to a -20 dB decrease. Decibel is non-linear and operates on the logarithmic domain. The decibel class is perfectly suitable for dynamics processing (e.g. compressors and limiters and envelopes). Q provides fast decibel computations using fast math functions and lookup tables for converting to and from scalars. #include struct decibel_unit; struct decibel : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = decibel_unit; }; // Free functions double lin_double(decibel db); constexpr float lin_float(decibel db); inline decibel approx_db(float val); decibel lin_to_db(double val); // Literals inline namespace literals { constexpr decibel operator \"\" _dB(unsigned long long int val); constexpr decibel operator \"\" _dB(long double val); } decibel is a model of Unit. In addition to valid expressions for Unit, decibel allows these expressions. d Object of type decibel. v Linear floating point value. 0.0 A floating point literal number. 0 An integer literal number. Take note that the Unit concept already has a constructor from a floating point value that handles direct construction such as: auto db = decibel{6.0}; // 6 dB This constructor was used in previous versions of the library to convert linear to decibels, which can be confusing. This version ought to have corrected this nonintuitive semantics, but this is a disruptive change that will alter the semantics of all existing code without warning. In order to avoid further confusion, we will mark this constructor as deleted for the time being, making it a hard error to alert users upgrading to this library version. C++ brace initialization may also be used. Expression Semantics Return Type lin_float(d) Convert decibel to a linear value. float lin_double(d) Convert decibel to a linear value. double lin_to_db(v) Convert a linear value v to decibel. decibel approx_db(v) Faster approximate conversion from a linear value v to decibel. decibel The free function lin_to_db can be used to indirectly construct and return a decibel object from a linear value. The lin_to_db function performs linear to decibel conversion. Example: auto db = lin_to_db(2.0); // 6 dB In addition to lin_to_db, approx_db is another free function that performs linear to decibel conversion. It is a faster, but less accurate conversion function from a linear value to decibel. lin_float and lin_double convert decibel to a linear value with float and double results, respectively. If you need to create decibel from numeric constants, it is preferrable to use decibel literals instead. Example: auto db = -6_dB; Expression Semantics 0.0_dB Returns 0.0 dB. 0_dB Returns 0.0 dB. Take note that 0.0 and 0 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _dB literal, it is generally safe to bring its namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"decibel","component":"q","version":"v1.0_beta","name":"decibel","url":"/q/v1.0_beta/reference/units/decibel.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Literals","hash":"_literals","id":8}]},"128":{"id":128,"text":"Type safe representation of duration: the length of time that something lasts or continues, measured in seconds. #include struct duration_unit; struct duration : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = duration_unit; }; // Free functions constexpr double as_double(duration d); constexpr float as_float(duration d); // Literals inline namespace literals { constexpr duration operator \"\" _s(long double val); constexpr duration operator \"\" _s(unsigned long long int val); constexpr duration operator \"\" _ms(long double val); constexpr duration operator \"\" _ms(unsigned long long int val); constexpr duration operator \"\" _us(long double val); constexpr duration operator \"\" _us(unsigned long long int val); } In addition to valid expressions for Unit, duration allows these expressions. d Object of type duration 1.0 A floating point literal number. 1 An integer literal number. Expression Semantics Return Type as_float(d) Convert duration to a float in seconds. float as_double(d) Convert duration to a double in seconds. double If you need to create duration from numeric constants, it is preferrable to use duration literals instead. Example: auto d = 6_ms; Expression Semantics 1.0_s Returns a duration of 1.0 seconds. 1_s Returns a duration of 1.0 seconds. 1.0_ms Returns a duration of 1.0 milliseconds. 1_ms Returns a duration of 1.0 milliseconds. 1.0_us Returns a duration of 1.0 microseconds. 1_us Returns a duration of 1.0 microseconds. Take note that 1.0 and 1 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _s, _ms, and _us literals, it is generally safe to bring their namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"duration","component":"q","version":"v1.0_beta","name":"duration","url":"/q/v1.0_beta/reference/units/duration.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Conversions","hash":"_conversions","id":6},{"text":"Literals","hash":"_literals","id":7}]},"129":{"id":129,"text":"Type safe representation of frequency: the number of cycles or oscillations of a periodic event per unit of time, measured in Hertz. #include struct frequency_unit; struct frequency : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = frequency_unit; constexpr q::period period() const; }; // Free functions constexpr double as_double(frequency f); constexpr float as_float(frequency f); // Literals inline namespace literals { constexpr frequency operator \"\" _Hz(long double val); constexpr frequency operator \"\" _Hz(unsigned long long int val); constexpr frequency operator \"\" _KHz(long double val); constexpr frequency operator \"\" _KHz(unsigned long long int val); constexpr frequency operator \"\" _kHz(long double val); constexpr frequency operator \"\" _kHz(unsigned long long int val); constexpr frequency operator \"\" _MHz(long double val); constexpr frequency operator \"\" _MHz(unsigned long long int val); } frequency is a model of Unit. In addition to valid expressions for Unit, frequency allows these expressions. f Object of type frequency. 1.0 A floating point literal number. 1 An integer literal number. Expression Semantics Return Type as_float(f) Convert frequency to a float. float as_double(f) Convert frequency to a double. double Expression Semantics Return Type f.period() Get the period (reciprocal of frequency). period If you need to create frequency from numeric constants, it is preferrable to use frequency literals. Example: auto d = 440_Hz; Expression Semantics 1.0_Hz Returns a frequency of 1.0 Hz. 1_Hz Returns a frequency of 1.0 Hz. 1.0_kHz Returns a frequency of 1.0 kHz. 1_kHz Returns a frequency of 1.0 kHz. 1.0_KHz Returns a frequency of 1.0 kHz. 1_KHz Returns a frequency of 1.0 kHz. 1.0_MHz Returns a frequency of 1.0 MHz. 1_MHz Returns a frequency of 1.0 MHz. Take note that 1.0 and 1 stand for any floating point, and integer numeric literals. Unless you have a conflicting usage for the _Hz, _kHz, and _MHz literals, it is generally safe to bring their namespace into scope using the using namespace cycfi::q::literals directive anywhere in a cpp file.","title":"frequency","component":"q","version":"v1.0_beta","name":"frequency","url":"/q/v1.0_beta/reference/units/frequency.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Conversions","hash":"_conversions","id":6},{"text":"Misc","hash":"_misc","id":7},{"text":"Literals","hash":"_literals","id":8}]},"130":{"id":130,"text":"An interval is the distance between two pitches, measured in semitones. It is the basis for melody and harmony as well as all musical scales and chords. The basic_interval is a template class, parameterized by the underlying type T. #include struct interval_unit; template struct basic_interval : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = interval_unit; constexpr explicit basic_interval(concepts::Arithmetic auto val); }; // Free functions template constexpr int as_int(basic_interval i); template constexpr float as_float(basic_interval i); template constexpr double as_double(basic_interval i); template requires std::floating_point constexpr basic_interval round(basic_interval i); template requires std::floating_point constexpr basic_interval ceil(basic_interval i); template requires std::floating_point constexpr basic_interval floor(basic_interval i); There are two basic type aliases: interval and exact_interval, which are template instantiations of the basic_interval template class: interval Fractional interval. Can represent microtones —intervals smaller than a semitone. exact_interval Exact, whole number intervals. using interval = basic_interval; using exact_interval = basic_interval; basic_interval is a model of Unit. In addition to valid expressions for Unit, Intervals allow these expressions. i Object of type basic_interval. Expression Semantics Return Type as_int(i) Convert an interval to an int. int as_float(i) Convert an interval to a float. float as_double(i) Convert an interval to a double. double Expression Semantics Return Type round(i) Rounds i to the nearest non-fractional interval. basic_interval ceil(i) Returns the smallest non-fractional interval that is greater than or equal i. basic_interval floor(i) Returns the largest non-fractional interval that is less than or equal i. basic_interval The round, ceil and floor functions require T to be a floating point type.","title":"Interval","component":"q","version":"v1.0_beta","name":"interval","url":"/q/v1.0_beta/reference/units/interval.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Template Instantiations","hash":"_template_instantiations","id":4},{"text":"Expressions","hash":"_expressions","id":5},{"text":"Notation","hash":"_notation","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Functions","hash":"_functions","id":8}]},"131":{"id":131,"text":"Type safe representation of period: the reciprocal of frequency, or the time it takes for a periodic event to complete one full cycle or oscillation. #include period is a subclass of {duration} and inherits all its public member functions, member variables, and types. struct period : duration { using duration::duration; constexpr period(duration d); constexpr period(frequency f); }; As a subclass of duration, period inherits all the publicly accessible member functions, member variables, and types of its base class. period is a model of Unit. In addition to valid expressions for Unit, period allows these expressions. d Object of type duration f Object of type frequency p Object of type period Expression Semantics phase(d) Construct a period given a duration, d phase(f) Construct a period given a frequency, f C++ brace initialization may also be used. Expression Semantics Return Type as_float(f) Convert frequency to a float in seconds. float as_double(f) Convert frequency to a double in seconds. double","title":"period","component":"q","version":"v1.0_beta","name":"period","url":"/q/v1.0_beta/reference/units/period.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7}]},"132":{"id":132,"text":"Type safe representation of phase: the relationship in timing between a periodic signal relative to a reference periodic signal of the same frequency. Phase values run from 0 to 2π. The turn, also cycle, full circle, revolution, and rotation, is a complete circular movement or measure (as to return to the same point) with circle or ellipse. A turn is abbreviated τ, cyc, rev, or rot depending on the application. The symbol τ can also be used as a mathematical constant to represent 2π radians. https://en.wikipedia.org/wiki/Angular_unit phase is represented in a fixed-point 1.31 format where 31 bits are fractional. Such a format is perfectly suitable for oscillators. For that purpose, a phase accumulator can be used: essentially a counter that keeps track of the current phase value for the waveform. Initially, the accumulator is set to an arbitrary starting phase, usually 0. To generate the next sample of the waveform, we compute the phase value for the next sample based on the desired frequency and the sample rate. This value is then added to the current phase accumulator value. This process continues for each successive sample in the waveform. The advantage of using fixed point 1.31 to represent phase is that the phase accumulator inherently rewraps the value when the next phase exceeds 2π. This behavior is inherent to the fixed-point 1.31 format and eliminates the need for additional logic to handle the wraparound condition. Also, see phase_iterator for further additional relevant information. #include struct phase_unit; struct phase : _unspecified_base_type_ { using base_type = _unspecified_base_type_; using base_type::base_type; using unit_type = phase_unit; constexpr phase(); constexpr phase(frequency freq, float sps); constexpr static phase begin(); constexpr static phase end(); constexpr static phase middle(); }; // Free functions constexpr phase frac_to_phase(std::floating_point auto frac); constexpr double frac_double(phase d); constexpr float frac_float(phase p); phase is a model of Unit. In addition to valid expressions for Unit, phase allows these expressions. frac A floating point number, representing a fractional number from 0.0 to 1.0 (corresponding to 0 to 2π). freq Object of type frequency. sps Floating point value representing samples per second. p Object of type phase. val The underlying data type representing phase. See Unit. Expression Semantics phase() Default construct a phase. Equivalent to phase(0). phase(freq, sps) Construct a phase from the freq and sps C++ brace initialization may also be used. Expression Semantics Return Type frac_float(p) Convert phase to a float from 0.0 to 1.0. float frac_double(p) Convert phase to a double from 0.0 to 1.0r. double frac_to_phase(frac) Convert a floating point fractional value to a phase phase Expression Semantics Return Type phase::begin() Get the minimum phase representing 0° phase phase::end() Get the maximum phase representing 360° (2π) phase phase::middle() Get the phase representing 180° (π) phase","title":"phase","component":"q","version":"v1.0_beta","name":"phase","url":"/q/v1.0_beta/reference/units/phase.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructor","hash":"_constructor","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Accessors","hash":"_accessors","id":8}]},"133":{"id":133,"text":"Read phase first for prerequisite information. phase_iterator is a class that iterates over the phase with an iteration step size specified by the given frequency and sampling rate. phase_iterator holds two phase members, the phase accumulator and the phase step size. The phase accumulator, keeps track of the current phase value for the waveform. Initially, the accumulator is set to an arbitrary starting phase, usually 0. For each sample of the waveform, the phase step size value is added to the current phase accumulator, which inherently rewraps the value when the next phase exceeds 2π. #include struct phase_iterator { constexpr phase_iterator(); constexpr phase_iterator(frequency freq, float sps); constexpr phase_iterator operator++(int); constexpr phase_iterator& operator++(); constexpr phase_iterator operator--(int); constexpr phase_iterator& operator--(); constexpr phase_iterator& operator=(phase rhs); constexpr phase_iterator& operator=(phase_iterator const& rhs) = default; constexpr void set(frequency freq, float sps); constexpr bool first() const; constexpr bool last() const; constexpr phase_iterator begin() const; constexpr phase_iterator end() const; constexpr phase_iterator middle() const; phase _phase, _step; }; freq Object of type frequency sps Floating point value representing samples per second i, a, b Objects of type phase_iterator p Objects of type phase Expression Semantics phase_iterator() Default construct a phase_iterator. phase_iterator(freq, sps) Construct a phase_iterator from the freq and sps phase_iterator(i) Copy construct from phase_iterator i. a = b Assign phase_iterator b, to phase_iterator a. i = p Assign phase p, to phase_iterator i. See Modifying The State. C++ brace initialization may also be used. Expression Semantics Return Type i++ Post increment. Returns a copy of the iterator made prior to increment. phase_iterator ++i Pre increment. Increment and return a reference to the iterator. phase_iterator& i-- Post decrement. Returns a copy of the iterator made prior to decrement. phase_iterator --i Pre decrement. Decrement and return a reference to the iterator. phase_iterator& Expression Semantics Return Type set(freq, sps) Modify a phase_iterator given a new freq and sps. See Modifying The State. void When modifying a phase_iterator with a new frequency, freq, and sampling rate, sps, only the phase step size will be changed. To prevent discontinuities, the phase accumulator will not be touched. This means that the phase accumulator will continue to count up from its previous value, while the updated phase step size will determine the new frequency. Expression Semantics Return Type i.first() Returns true if the phase_iterator is at the start of the waveform cycle (0° or 0 rad). I.e. the phase accumulator is within 0 to phase step size. bool i.last() Returns true if the phase_iterator is at the end of the waveform cycle (360° or 2π rad). I.e. the phase accumulator is within phase step size below 2π. bool i.begin() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the start of the waveform cycle (0° or 0 rad). phase_iterator i.end() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the end of the waveform cycle (360° or 2π rad). phase_iterator i.middle() Return a new phase_iterator with the same frequency, but with the phase accumulator set at the middle of the waveform cycle (180° or π rad) phase_iterator i._phase Direct access to the phase accumulator. phase& i._step Direct access to the phase step size. phase&","title":"phase_iterator","component":"q","version":"v1.0_beta","name":"phase_iterator","url":"/q/v1.0_beta/reference/units/phase_iterator.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors and Assignments","hash":"_constructors_and_assignments","id":6},{"text":"Iteration","hash":"_iteration","id":7},{"text":"Mutator","hash":"_mutator","id":8},{"text":"Modifying The State","hash":"_modifying_the_state","id":9},{"text":"Accessors","hash":"_accessors","id":10}]},"134":{"id":134,"text":"pitch is determined by its position on the chromatic scale, which is a system of 12 notes that repeat in octaves. The distance between each pitch on the chromatic scale is a semitone, and each pitch represents a specific frequency measured in hertz (Hz). pitch is an interval with a base frequency of 8.1757989156437 Hz that correspond to MIDI note 0 (which is an octave below F#0). pitch is represented by the MIDI value. Therefore, only positive values are valid. pitch includes construction from frequency as well as numeric values representing the absolute position in the chromatic scale from the base frequency. pitch also includes conversions to frequency. Conversions to and from frequency utilize fast log2 and pow2 computations using fast math functions. #include struct pitch : interval { constexpr static auto base_frequency = frequency{8.1757989156437}; constexpr pitch(); explicit pitch(frequency f); constexpr bool valid() const; // These operations do not make sense and are not allowed. pitch& operator+=(pitch) = delete; pitch& operator-=(pitch) = delete; }; // Free functions frequency as_frequency(pitch n); float as_float(pitch n); double as_double(pitch n); constexpr pitch round(pitch n); constexpr pitch ceil(pitch n); constexpr pitch floor(pitch n); // These operations do not make sense and are not allowed. pitch operator+(pitch, pitch) = delete; pitch operator-(pitch, pitch) = delete; In addition to valid expressions for interval, pitch allows these expressions. p, a, b Objects of type pitch f Object of type frequency Expression Semantics pitch(f) Construct a pitch from frequency f. pitch() Default construct a pitch. The result is an invalid pitch by default where p.rep == -1.0. C++ brace initialization may also be used. Expression Semantics Return Type as_float(p) Convert pitch to a float. float as_double(p) Convert pitch to a double. double as_frequency(p) Convert pitch to a frequency. frequency Expression Semantics Return Type p.valid() Returns true if p is valid. p is valid if p.rep >= 0.0 bool round(p) Rounds p to the nearest non-fractional pitch. pitch ceil(p) Returns the smallest non-fractional pitch that is greater than or equal i pitch floor(p) Returns the largest non-fractional pitch that is less than or equal i pitch These valid expressions for interval do not make sense for pitch and are no longer allowed. Expression a += b a -= b a + b a - b","title":"pitch","component":"q","version":"v1.0_beta","name":"pitch","url":"/q/v1.0_beta/reference/units/pitch.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Constructors","hash":"_constructors","id":6},{"text":"Conversions","hash":"_conversions","id":7},{"text":"Functions","hash":"_functions","id":8},{"text":"Deleted Functions","hash":"_deleted_functions","id":9}]},"135":{"id":135,"text":"Fractional ring buffer allows sub-sample indexing using interpolation. fractional_ring_buffer is a subclass of ring_buffer that overloads the index operator to provide sub-sample indexing. #include template , typename Index = float , typename Interpolation = sample_interpolation::linear> class fractional_ring_buffer : public ring_buffer { public: using value_type = T; using storage_type = Storage; using index_type = Index; using interpolation_type = Interpolation; using ring_buffer::ring_buffer; // get data (index can be fractional) T const operator[](Index index) const; }; As a subclass of ring_buffer, fractional_ring_buffer inherits all the publicly accessible member functions, member variables, and types of its base class. In addition to valid expressions for ring_buffer, fractional_ring_buffer allows these expressions. T Element type, e.g. float. S Storage type, e.g. std::vector. I Index type, e.g. float. X Interpolation type, e.g. sample_interpolation::linear. rb_type A fractional_ring_buffer type. rb Object of type fractional_ring_buffer. i Object of type I. a [, b, c, d] Required a, optional b, c, d. Expression Semantics fractional_ring_buffer Instantiate a fractional_ring_buffer type given: Element type T Storage type S (optional) Index type I (optional) Interpolation type, X (optional) using rb_type1 = fractional_ring_buffer using rb_type2 = fractional_ring_buffer> using rb_type3 = fractional_ring_buffer, float> using rb_type4 = fractional_ring_buffer Expression Semantics rb_type::value_type Get the underlying element type. rb_type::storage_type Get the underlying storage type. rb_type::index_type Get the underlying index type. rb_type::interpolation_type Get the underlying interpolation type. Expression Semantics Return Type rb[i] Get the element at index i. rb[0] refers to the latest element. rb[rb.size()-1] refers to the oldest element. Index can be fractional (e.g. rb[2.5]). T& or T const& if rb is const. i rb.size()-1 is undefined behavior.","title":"Fractional Ring Buffer","component":"q","version":"v1.0_beta","name":"fractional_ring_buffer","url":"/q/v1.0_beta/reference/utility/fractional_ring_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Accessors","hash":"_accessors","id":9}]},"136":{"id":136,"text":"The ring buffer is a fixed-size buffer that is regarded as if it were circular. When data is written to the buffer, it is stored in sequential order up to its size, after which new data will overwrite the oldest data in the buffer. ring_buffer is a template class parameterized by the underlying element type, T, and the type of storage used, which defaults to std::vector, although it is also possible to use fixed sized storage such as std::array as long as the size is a powers of 2. For efficiency, the ring buffer storage will maintain a size that is the power of 2. The ring_buffer is not resizable after construction. #include template > class ring_buffer { public: using value_type = T; using storage_type = Storage; explicit ring_buffer(); explicit ring_buffer(std::size_t size); ring_buffer(ring_buffer const& rhs) = default; ring_buffer(ring_buffer&& rhs) = default; ring_buffer& operator=(ring_buffer const& rhs) = default; ring_buffer& operator=(ring_buffer&& rhs) = default; std::size_t size() const; void push(T val); T const& front() const; T& front(); T const& back() const; T& back(); T const& operator[](std::size_t index) const; T& operator[](std::size_t index); void clear(); void pop_front(); Storage& store(); const Storage& store() const; }; T Element type, e.g. float. S Storage type, e.g. std::vector. rb_type A ring_buffer type. rb, a, b Objects of type ring_buffer. val Object of type T. i Object of type std::size_t. s Object of type std::size_t. a [, b, c, d] Required a, optional b, c, d. Expression Semantics ring_buffer Instantiate a ring_buffer type given: Element type T Storage type S (optional) using rb_type1 = ring_buffer using rb_type2 = ring_buffer> Expression Semantics rb_type::value_type Get the underlying element type. rb_type::storage_type Get the underlying storage type. Expression Semantics rb_type() Default construct a ring buffer. This constructor is only applicable when a fixed sized storage is specified. rb_type(s) Construct a ring buffer with specified size, s. This constructor is only applicable when a resizable storage is specified. The actual buffer size will be the minimum power of 2 greater than size. greater than s. rb_type(rb) Copy construct from rb_type rb. a = b Assign b to a. C++ brace initialization may also be used. Expression Semantics rb.push(val) Push the latest element, overwriting the oldest element. rb.clear() Clear the ring buffer. rb.pop_front() Pop the latest element. This operation will not destruct the element, but will instead allow the ring buffer to overwrite the element on the next push. Expression Semantics Return Type rb.size() Get the ring buffer’s size. std::size_t. rb.front() Get the latest element. T& or T const& if rb is const. rb.back() Get the oldest element. T& or T const& if rb is const. rb[i] Get the element at index i. rb[0] refers to the latest element. rb[rb.size()-1] refers to the oldest element. T& or T const& if rb is const. rb.store() Get a reference to the storage. S& or S const& if rb is const. i rb.size()-1 is undefined behavior.","title":"Ring Buffer","component":"q","version":"v1.0_beta","name":"ring_buffer","url":"/q/v1.0_beta/reference/utility/ring_buffer.html","titles":[{"text":"Overview","hash":"_overview","id":1},{"text":"Include","hash":"_include","id":2},{"text":"Declaration","hash":"_declaration","id":3},{"text":"Expressions","hash":"_expressions","id":4},{"text":"Notation","hash":"_notation","id":5},{"text":"Type Construction","hash":"_type_construction","id":6},{"text":"Examples:","hash":"_examples","id":7},{"text":"Type Accessors","hash":"_type_accessors","id":8},{"text":"Constructors and Assignment","hash":"_constructors_and_assignment","id":9},{"text":"Mutators","hash":"_mutators","id":10},{"text":"Accessors","hash":"_accessors","id":11}]}},"components":{},"componentVersions":{"q/develop":{"displayVersion":"develop","title":"Q Audio DSP Library","version":"develop","name":"q","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Q Docs","site-url":"https://www.cycfi.com/","source-language":"asciidoc@","table-caption":false},"sourcemap":false},"url":"/q/develop/index.html","navigation":[{"items":[{"content":"Setup and Installation","url":"/q/develop/setup.html","urlType":"internal"},{"content":"Quick Start","url":"/q/develop/quick_start.html","urlType":"internal"},{"content":"Fundamentals","url":"/q/develop/fundamentals.html","urlType":"internal"},{"content":"Reference","items":[{"content":"Units","url":"/q/develop/reference/units.html","urlType":"internal","items":[{"content":"frequency","url":"/q/develop/reference/units/frequency.html","urlType":"internal"},{"content":"duration","url":"/q/develop/reference/units/duration.html","urlType":"internal"},{"content":"period","url":"/q/develop/reference/units/period.html","urlType":"internal"},{"content":"phase","url":"/q/develop/reference/units/phase.html","urlType":"internal","items":[{"content":"phase_iterator","url":"/q/develop/reference/units/phase_iterator.html","urlType":"internal"}]},{"content":"decibel","url":"/q/develop/reference/units/decibel.html","urlType":"internal"},{"content":"interval","url":"/q/develop/reference/units/interval.html","urlType":"internal","items":[{"content":"pitch","url":"/q/develop/reference/units/pitch.html","urlType":"internal"}]}]},{"content":"Biquad","url":"/q/develop/reference/biquad.html","urlType":"internal","items":[{"content":"Low Pass Filter","url":"/q/develop/reference/biquad/lowpass.html","urlType":"internal"},{"content":"High Pass Filter","url":"/q/develop/reference/biquad/highpass.html","urlType":"internal"},{"content":"Band Pass Filter; Constant Skirt Gain","url":"/q/develop/reference/biquad/bandpass_csg.html","urlType":"internal"},{"content":"Band Pass Filter; Constant Peak Gain","url":"/q/develop/reference/biquad/bandpass_cpg.html","urlType":"internal"},{"content":"All Pass Filter","url":"/q/develop/reference/biquad/allpass.html","urlType":"internal"},{"content":"Notch Filter","url":"/q/develop/reference/biquad/notch.html","urlType":"internal"},{"content":"Peaking Filter","url":"/q/develop/reference/biquad/peaking.html","urlType":"internal"},{"content":"Low Shelf Filter","url":"/q/develop/reference/biquad/lowshelf.html","urlType":"internal"},{"content":"High Shelf Filter","url":"/q/develop/reference/biquad/highshelf.html","urlType":"internal"}]},{"content":"Envelope","url":"/q/develop/reference/envelope.html","urlType":"internal","items":[{"content":"Peak Envelope Follower","url":"/q/develop/reference/envelope/peak_envelope_follower.html","urlType":"internal"},{"content":"AR Envelope Follower","url":"/q/develop/reference/envelope/ar_envelope_follower.html","urlType":"internal"},{"content":"Fast Envelope Follower","url":"/q/develop/reference/envelope/fast_envelope_follower.html","urlType":"internal"},{"content":"Fast Averaging Envelope Follower","url":"/q/develop/reference/envelope/fast_ave_envelope_follower.html","urlType":"internal"},{"content":"Fast RMS Envelope Follower","url":"/q/develop/reference/envelope/fast_rms_envelope_follower.html","urlType":"internal"}]},{"content":"Dynamic","url":"/q/develop/reference/dynamic.html","urlType":"internal","items":[{"content":"Compressor","url":"/q/develop/reference/dynamic/compressor.html","urlType":"internal"},{"content":"Soft Knee Compressor","url":"/q/develop/reference/dynamic/soft_knee_compressor.html","urlType":"internal"},{"content":"Expander","url":"/q/develop/reference/dynamic/expander.html","urlType":"internal"},{"content":"AGC","url":"/q/develop/reference/dynamic/agc.html","urlType":"internal"}]},{"content":"Miscellaneous","items":[{"content":"Delay","url":"/q/develop/reference/misc/delay.html","urlType":"internal"},{"content":"Moving Sum","url":"/q/develop/reference/misc/moving_sum.html","urlType":"internal"},{"content":"Moving Average","url":"/q/develop/reference/misc/moving_average.html","urlType":"internal"},{"content":"Noise Gate","url":"/q/develop/reference/misc/noise_gate.html","urlType":"internal"},{"content":"Onset Gate","url":"/q/develop/reference/misc/onset_gate.html","urlType":"internal"},{"content":"One Pole Low Pass","url":"/q/develop/reference/misc/one_pole_lowpass.html","urlType":"internal"},{"content":"DC Block","url":"/q/develop/reference/misc/dc_block.html","urlType":"internal"}]},{"content":"Synthesizers","url":"/q/develop/reference/synth.html","urlType":"internal","items":[{"content":"Sine Wave Oscillator","url":"/q/develop/reference/synth/sin_osc.html","urlType":"internal"},{"content":"Saw Wave Oscillator","url":"/q/develop/reference/synth/saw_osc.html","urlType":"internal"},{"content":"Square Wave Oscillator","url":"/q/develop/reference/synth/square_osc.html","urlType":"internal"},{"content":"Pulse Wave Oscillator","url":"/q/develop/reference/synth/pulse_osc.html","urlType":"internal"},{"content":"Triangle Wave Oscillator","url":"/q/develop/reference/synth/triangle_osc.html","urlType":"internal"},{"content":"Sine Cosine Generator","url":"/q/develop/reference/synth/sin_cos_gen.html","urlType":"internal"},{"content":"Blackman Window Generator","url":"/q/develop/reference/synth/blackman_gen.html","urlType":"internal"},{"content":"Hann Window Generator","url":"/q/develop/reference/synth/hann_gen.html","urlType":"internal"},{"content":"Hamming Window Generator","url":"/q/develop/reference/synth/hamming_gen.html","urlType":"internal"},{"content":"Linear Ramp Generator","url":"/q/develop/reference/synth/linear_gen.html","urlType":"internal"},{"content":"Exponential Ramp Generator","url":"/q/develop/reference/synth/exponential_gen.html","urlType":"internal"},{"content":"Envelope Generator","url":"/q/develop/reference/synth/envelope_gen.html","urlType":"internal"}]},{"content":"Support","items":[{"content":"Basic Concepts","url":"/q/develop/reference/support/basic_concepts.html","urlType":"internal"},{"content":"Multi Buffer","url":"/q/develop/reference/support/multi_buffer.html","urlType":"internal"},{"content":"Audio Stream","url":"/q/develop/reference/support/audio_stream.html","urlType":"internal"},{"content":"MIDI Messages","url":"/q/develop/reference/support/midi_messages.html","urlType":"internal"},{"content":"MIDI Processor","url":"/q/develop/reference/support/midi_processor.html","urlType":"internal"}]},{"content":"Utility","items":[{"content":"Ring Buffer","url":"/q/develop/reference/utility/ring_buffer.html","urlType":"internal"},{"content":"Fractional Ring Buffer","url":"/q/develop/reference/utility/fractional_ring_buffer.html","urlType":"internal"}]},{"content":"Audio MIDI I/O","url":"/q/develop/reference/q_io.html","urlType":"internal","items":[{"content":"Audio Device","url":"/q/develop/reference/q_io/audio_device.html","urlType":"internal"},{"content":"Audio Stream","url":"/q/develop/reference/q_io/audio_stream.html","urlType":"internal"},{"content":"Audio File","url":"/q/develop/reference/q_io/audio_file.html","urlType":"internal"},{"content":"MIDI Device","url":"/q/develop/reference/q_io/midi_device.html","urlType":"internal"},{"content":"MIDI Stream","url":"/q/develop/reference/q_io/midi_stream.html","urlType":"internal"}]}]}],"root":true,"order":0}]},"q/v1.0_beta":{"displayVersion":"v1.0_beta","title":"Q Audio DSP Library","version":"v1.0_beta","name":"q","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Q Docs","site-url":"https://www.cycfi.com/","source-language":"asciidoc@","table-caption":false},"sourcemap":false},"url":"/q/v1.0_beta/index.html","navigation":[{"items":[{"content":"Setup and Installation","url":"/q/v1.0_beta/setup.html","urlType":"internal"},{"content":"Quick Start","url":"/q/v1.0_beta/quick_start.html","urlType":"internal"},{"content":"Fundamentals","url":"/q/v1.0_beta/fundamentals.html","urlType":"internal"},{"content":"Reference","items":[{"content":"Units","url":"/q/v1.0_beta/reference/units.html","urlType":"internal","items":[{"content":"frequency","url":"/q/v1.0_beta/reference/units/frequency.html","urlType":"internal"},{"content":"duration","url":"/q/v1.0_beta/reference/units/duration.html","urlType":"internal"},{"content":"period","url":"/q/v1.0_beta/reference/units/period.html","urlType":"internal"},{"content":"phase","url":"/q/v1.0_beta/reference/units/phase.html","urlType":"internal","items":[{"content":"phase_iterator","url":"/q/v1.0_beta/reference/units/phase_iterator.html","urlType":"internal"}]},{"content":"decibel","url":"/q/v1.0_beta/reference/units/decibel.html","urlType":"internal"},{"content":"interval","url":"/q/v1.0_beta/reference/units/interval.html","urlType":"internal","items":[{"content":"pitch","url":"/q/v1.0_beta/reference/units/pitch.html","urlType":"internal"}]}]},{"content":"Biquad","url":"/q/v1.0_beta/reference/biquad.html","urlType":"internal","items":[{"content":"Low Pass Filter","url":"/q/v1.0_beta/reference/biquad/lowpass.html","urlType":"internal"},{"content":"High Pass Filter","url":"/q/v1.0_beta/reference/biquad/highpass.html","urlType":"internal"},{"content":"Band Pass Filter; Constant Skirt Gain","url":"/q/v1.0_beta/reference/biquad/bandpass_csg.html","urlType":"internal"},{"content":"Band Pass Filter; Constant Peak Gain","url":"/q/v1.0_beta/reference/biquad/bandpass_cpg.html","urlType":"internal"},{"content":"All Pass Filter","url":"/q/v1.0_beta/reference/biquad/allpass.html","urlType":"internal"},{"content":"Notch Filter","url":"/q/v1.0_beta/reference/biquad/notch.html","urlType":"internal"},{"content":"Peaking Filter","url":"/q/v1.0_beta/reference/biquad/peaking.html","urlType":"internal"},{"content":"Low Shelf Filter","url":"/q/v1.0_beta/reference/biquad/lowshelf.html","urlType":"internal"},{"content":"High Shelf Filter","url":"/q/v1.0_beta/reference/biquad/highshelf.html","urlType":"internal"}]},{"content":"Envelope","url":"/q/v1.0_beta/reference/envelope.html","urlType":"internal","items":[{"content":"Peak Envelope Follower","url":"/q/v1.0_beta/reference/envelope/peak_envelope_follower.html","urlType":"internal"},{"content":"AR Envelope Follower","url":"/q/v1.0_beta/reference/envelope/ar_envelope_follower.html","urlType":"internal"},{"content":"Fast Envelope Follower","url":"/q/v1.0_beta/reference/envelope/fast_envelope_follower.html","urlType":"internal"},{"content":"Fast Averaging Envelope Follower","url":"/q/v1.0_beta/reference/envelope/fast_ave_envelope_follower.html","urlType":"internal"},{"content":"Fast RMS Envelope Follower","url":"/q/v1.0_beta/reference/envelope/fast_rms_envelope_follower.html","urlType":"internal"}]},{"content":"Dynamic","url":"/q/v1.0_beta/reference/dynamic.html","urlType":"internal","items":[{"content":"Compressor","url":"/q/v1.0_beta/reference/dynamic/compressor.html","urlType":"internal"},{"content":"Soft Knee Compressor","url":"/q/v1.0_beta/reference/dynamic/soft_knee_compressor.html","urlType":"internal"},{"content":"Expander","url":"/q/v1.0_beta/reference/dynamic/expander.html","urlType":"internal"},{"content":"AGC","url":"/q/v1.0_beta/reference/dynamic/agc.html","urlType":"internal"}]},{"content":"Miscellaneous","items":[{"content":"Delay","url":"/q/v1.0_beta/reference/misc/delay.html","urlType":"internal"},{"content":"Moving Sum","url":"/q/v1.0_beta/reference/misc/moving_sum.html","urlType":"internal"},{"content":"Moving Average","url":"/q/v1.0_beta/reference/misc/moving_average.html","urlType":"internal"},{"content":"Noise Gate","url":"/q/v1.0_beta/reference/misc/noise_gate.html","urlType":"internal"},{"content":"Onset Gate","url":"/q/v1.0_beta/reference/misc/onset_gate.html","urlType":"internal"},{"content":"One Pole Low Pass","url":"/q/v1.0_beta/reference/misc/one_pole_lowpass.html","urlType":"internal"},{"content":"DC Block","url":"/q/v1.0_beta/reference/misc/dc_block.html","urlType":"internal"}]},{"content":"Synthesizers","url":"/q/v1.0_beta/reference/synth.html","urlType":"internal","items":[{"content":"Sine Wave Oscillator","url":"/q/v1.0_beta/reference/synth/sin_osc.html","urlType":"internal"},{"content":"Saw Wave Oscillator","url":"/q/v1.0_beta/reference/synth/saw_osc.html","urlType":"internal"},{"content":"Square Wave Oscillator","url":"/q/v1.0_beta/reference/synth/square_osc.html","urlType":"internal"},{"content":"Pulse Wave Oscillator","url":"/q/v1.0_beta/reference/synth/pulse_osc.html","urlType":"internal"},{"content":"Triangle Wave Oscillator","url":"/q/v1.0_beta/reference/synth/triangle_osc.html","urlType":"internal"},{"content":"Sine Cosine Generator","url":"/q/v1.0_beta/reference/synth/sin_cos_gen.html","urlType":"internal"},{"content":"Blackman Window Generator","url":"/q/v1.0_beta/reference/synth/blackman_gen.html","urlType":"internal"},{"content":"Hann Window Generator","url":"/q/v1.0_beta/reference/synth/hann_gen.html","urlType":"internal"},{"content":"Hamming Window Generator","url":"/q/v1.0_beta/reference/synth/hamming_gen.html","urlType":"internal"},{"content":"Linear Ramp Generator","url":"/q/v1.0_beta/reference/synth/linear_gen.html","urlType":"internal"},{"content":"Exponential Ramp Generator","url":"/q/v1.0_beta/reference/synth/exponential_gen.html","urlType":"internal"},{"content":"Envelope Generator","url":"/q/v1.0_beta/reference/synth/envelope_gen.html","urlType":"internal"}]},{"content":"Support","items":[{"content":"Basic Concepts","url":"/q/v1.0_beta/reference/support/basic_concepts.html","urlType":"internal"},{"content":"Multi Buffer","url":"/q/v1.0_beta/reference/support/multi_buffer.html","urlType":"internal"},{"content":"Audio Stream","url":"/q/v1.0_beta/reference/support/audio_stream.html","urlType":"internal"},{"content":"MIDI Messages","url":"/q/v1.0_beta/reference/support/midi_messages.html","urlType":"internal"},{"content":"MIDI Processor","url":"/q/v1.0_beta/reference/support/midi_processor.html","urlType":"internal"}]},{"content":"Utility","items":[{"content":"Ring Buffer","url":"/q/v1.0_beta/reference/utility/ring_buffer.html","urlType":"internal"},{"content":"Fractional Ring Buffer","url":"/q/v1.0_beta/reference/utility/fractional_ring_buffer.html","urlType":"internal"}]},{"content":"Audio MIDI I/O","url":"/q/v1.0_beta/reference/q_io.html","urlType":"internal","items":[{"content":"Audio Device","url":"/q/v1.0_beta/reference/q_io/audio_device.html","urlType":"internal"},{"content":"Audio Stream","url":"/q/v1.0_beta/reference/q_io/audio_stream.html","urlType":"internal"},{"content":"Audio File","url":"/q/v1.0_beta/reference/q_io/audio_file.html","urlType":"internal"},{"content":"MIDI Device","url":"/q/v1.0_beta/reference/q_io/midi_device.html","urlType":"internal"},{"content":"MIDI Stream","url":"/q/v1.0_beta/reference/q_io/midi_stream.html","urlType":"internal"}]}]}],"root":true,"order":0}]}}}}) \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 71ae3863..bca97229 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,546 +2,546 @@ https://www.cycfi.com/q/develop/common.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/fundamentals.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/index.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/quick_start.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/allpass.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/bandpass_cpg.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/bandpass_csg.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/highpass.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/highshelf.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/lowpass.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/lowshelf.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/notch.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/biquad/peaking.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/dynamic.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/dynamic/agc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/dynamic/compressor.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/dynamic/expander.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/dynamic/soft_knee_compressor.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/envelope.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/envelope/ar_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/envelope/fast_ave_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/envelope/fast_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/envelope/fast_rms_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/envelope/peak_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/misc/dc_block.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/misc/delay.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/misc/moving_average.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/misc/moving_sum.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/misc/noise_gate.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/misc/one_pole_lowpass.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/misc/onset_gate.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/q_io.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/q_io/audio_device.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/q_io/audio_file.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/q_io/audio_stream.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/q_io/midi_device.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/q_io/midi_stream.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/support/audio_stream.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/support/basic_concepts.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/support/midi_messages.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/support/midi_processor.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/support/multi_buffer.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/blackman_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/envelope_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/exponential_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/hamming_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/hann_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/linear_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/pulse_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/saw_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/sin_cos_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/sin_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/square_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/synth/triangle_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units/decibel.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units/duration.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units/frequency.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units/interval.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units/period.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units/phase_iterator.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units/phase.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/units/pitch.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/utility/fractional_ring_buffer.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/reference/utility/ring_buffer.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/develop/setup.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/common.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/fundamentals.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/index.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/quick_start.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/allpass.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/bandpass_cpg.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/bandpass_csg.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/highpass.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/highshelf.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/lowpass.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/lowshelf.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/notch.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/biquad/peaking.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/dynamic.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/dynamic/agc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/dynamic/compressor.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/dynamic/expander.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/dynamic/soft_knee_compressor.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/envelope.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/envelope/ar_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/envelope/fast_ave_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/envelope/fast_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/envelope/fast_rms_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/envelope/peak_envelope_follower.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/misc/dc_block.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/misc/delay.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/misc/moving_average.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/misc/moving_sum.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/misc/noise_gate.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/misc/one_pole_lowpass.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/misc/onset_gate.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/q_io.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/q_io/audio_device.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/q_io/audio_file.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/q_io/audio_stream.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/q_io/midi_device.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/q_io/midi_stream.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/support/audio_stream.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/support/basic_concepts.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/support/midi_messages.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/support/midi_processor.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/support/multi_buffer.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/blackman_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/envelope_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/exponential_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/hamming_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/hann_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/linear_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/pulse_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/saw_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/sin_cos_gen.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/sin_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/square_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/synth/triangle_osc.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units/decibel.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units/duration.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units/frequency.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units/interval.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units/period.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units/phase_iterator.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units/phase.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/units/pitch.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/utility/fractional_ring_buffer.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/reference/utility/ring_buffer.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z https://www.cycfi.com/q/v1.0_beta/setup.html -2023-09-18T07:50:14.078Z +2023-09-27T12:42:42.581Z