📄 tables.c
字号:
freq_table_user[p][i + 12][l] = f * 1000 + 0.5; freq_table_user[p][i + 24][l] = f * 1000 + 0.5; freq_table_user[p][i + 36][l] = f * 1000 + 0.5; } }}/* v=2.^((x/127-1) * 6) */FLOAT_T def_vol_table[1024];void init_def_vol_table(void){ int i; for (i = 0; i < 1024; i++) def_vol_table[i] = pow(2.0f,((double)i / 1023.0 - 1) * 6);}/* v=2.^((x/127-1) * 8) */FLOAT_T gs_vol_table[1024];void init_gs_vol_table(void){ int i; for (i = 0; i < 1024; i++) gs_vol_table[i] = pow(2.0f,((double)i / 1023.0 - 1) * 8);}FLOAT_T *xg_vol_table = gs_vol_table;FLOAT_T *vol_table = def_vol_table;FLOAT_T bend_fine[256];FLOAT_T bend_coarse[128];void init_bend_fine(void){ int i; for (i = 0; i < 256; i++) bend_fine[i] = pow(2.0, i / 12.0 / 256);}void init_bend_coarse(void){ int i; for (i = 0; i < 128; i++) bend_coarse[i] = pow(2.0, i / 12.0);}/* * midi_time_table(x + 16y) = midi_time_table(x) * (2^y) * midi_time_table(64) = 1 * then, * midi_time_table(x) := (2^(x/16))/16 */FLOAT_T midi_time_table[128] ={ 0.06250, 0.06527, 0.06816, 0.07117, 0.07433, 0.07762, 0.08105, 0.08464, 0.08839, 0.09230, 0.09639, 0.10066, 0.10511, 0.10977, 0.11463, 0.11970, 0.12500, 0.13053, 0.13631, 0.14235, 0.14865, 0.15523, 0.16210, 0.16928, 0.17678, 0.18460, 0.19278, 0.20131, 0.21022, 0.21953, 0.22925, 0.23940, 0.25000, 0.26107, 0.27263, 0.28470, 0.29730, 0.31046, 0.32421, 0.33856, 0.35355, 0.36921, 0.38555, 0.40262, 0.42045, 0.43906, 0.45850, 0.47880, 0.50000, 0.52214, 0.54525, 0.56939, 0.59460, 0.62093, 0.64842, 0.67713, 0.70711, 0.73841, 0.77111, 0.80525, 0.84090, 0.87813, 0.91700, 0.95760, 1.00000, 1.04427, 1.09051, 1.13879, 1.18921, 1.24186, 1.29684, 1.35426, 1.41421, 1.47683, 1.54221, 1.61049, 1.68179, 1.75625, 1.83401, 1.91521, 2.00000, 2.08855, 2.18102, 2.27758, 2.37841, 2.48372, 2.59368, 2.70851, 2.82843, 2.95365, 3.08442, 3.22098, 3.36359, 3.51250, 3.66802, 3.83041, 4.00000, 4.17710, 4.36203, 4.55515, 4.75683, 4.96743, 5.18736, 5.41702, 5.65685, 5.90730, 6.16884, 6.44196, 6.72717, 7.02501, 7.33603, 7.66083, 8.00000, 8.35419, 8.72406, 9.11031, 9.51366, 9.93486,10.37472,10.83404, 11.31371,11.81461,12.33769,12.88392,13.45434,14.05002,14.67206,15.32165};/* * midi_time_table2(x) := 2^(x/16/128) (for lsb tunning) */FLOAT_T midi_time_table2[128] ={ 1.00000, 1.00034, 1.00068, 1.00102, 1.00135, 1.00169, 1.00203, 1.00237, 1.00271, 1.00305, 1.00339, 1.00373, 1.00407, 1.00441, 1.00475, 1.00509, 1.00543, 1.00577, 1.00611, 1.00645, 1.00679, 1.00713, 1.00747, 1.00781, 1.00816, 1.00850, 1.00884, 1.00918, 1.00952, 1.00986, 1.01021, 1.01055, 1.01089, 1.01123, 1.01157, 1.01192, 1.01226, 1.01260, 1.01294, 1.01329, 1.01363, 1.01397, 1.01432, 1.01466, 1.01500, 1.01535, 1.01569, 1.01603, 1.01638, 1.01672, 1.01707, 1.01741, 1.01776, 1.01810, 1.01844, 1.01879, 1.01913, 1.01948, 1.01982, 1.02017, 1.02051, 1.02086, 1.02121, 1.02155, 1.02190, 1.02224, 1.02259, 1.02294, 1.02328, 1.02363, 1.02397, 1.02432, 1.02467, 1.02501, 1.02536, 1.02571, 1.02606, 1.02640, 1.02675, 1.02710, 1.02745, 1.02779, 1.02814, 1.02849, 1.02884, 1.02919, 1.02953, 1.02988, 1.03023, 1.03058, 1.03093, 1.03128, 1.03163, 1.03198, 1.03233, 1.03268, 1.03302, 1.03337, 1.03372, 1.03407, 1.03442, 1.03477, 1.03512, 1.03548, 1.03583, 1.03618, 1.03653, 1.03688, 1.03723, 1.03758, 1.03793, 1.03828, 1.03863, 1.03899, 1.03934, 1.03969, 1.04004, 1.04039, 1.04075, 1.04110, 1.04145, 1.04180, 1.04216, 1.04251, 1.04286, 1.04321, 1.04357, 1.04392};#ifdef LOOKUP_SINEstatic FLOAT_T sine_table[257]={ 0.0, 0.0061358846491544753, 0.012271538285719925, 0.01840672990580482, 0.024541228522912288, 0.030674803176636626, 0.036807222941358832, 0.04293825693494082, 0.049067674327418015, 0.055195244349689934, 0.061320736302208578, 0.067443919563664051, 0.073564563599667426, 0.079682437971430126, 0.085797312344439894, 0.091908956497132724, 0.098017140329560604, 0.10412163387205459, 0.11022220729388306, 0.11631863091190475, 0.1224106751992162, 0.12849811079379317, 0.13458070850712617, 0.14065823933284921, 0.14673047445536175, 0.15279718525844344, 0.15885814333386145, 0.16491312048996989, 0.17096188876030122, 0.17700422041214875, 0.18303988795514095, 0.18906866414980619, 0.19509032201612825, 0.2011046348420919, 0.20711137619221856, 0.21311031991609136, 0.2191012401568698, 0.22508391135979283, 0.23105810828067111, 0.2370236059943672, 0.24298017990326387, 0.24892760574572015, 0.25486565960451457, 0.26079411791527551, 0.26671275747489837, 0.27262135544994898, 0.27851968938505306, 0.28440753721127188, 0.29028467725446233, 0.29615088824362379, 0.30200594931922808, 0.30784964004153487, 0.31368174039889152, 0.31950203081601569, 0.32531029216226293, 0.33110630575987643, 0.33688985339222005, 0.34266071731199438, 0.34841868024943456, 0.35416352542049034, 0.35989503653498811, 0.36561299780477385, 0.37131719395183754, 0.37700741021641826, 0.38268343236508978, 0.38834504669882625, 0.3939920400610481, 0.39962419984564679, 0.40524131400498986, 0.41084317105790391, 0.41642956009763715, 0.42200027079979968, 0.42755509343028208, 0.43309381885315196, 0.43861623853852766, 0.4441221445704292, 0.44961132965460654, 0.45508358712634384, 0.46053871095824001, 0.46597649576796618, 0.47139673682599764, 0.47679923006332209, 0.48218377207912272, 0.487550160148436, 0.49289819222978404, 0.49822766697278187, 0.50353838372571758, 0.50883014254310699, 0.51410274419322166, 0.51935599016558964, 0.52458968267846895, 0.52980362468629461, 0.53499761988709715, 0.54017147272989285, 0.54532498842204646, 0.55045797293660481, 0.55557023301960218, 0.56066157619733603, 0.56573181078361312, 0.57078074588696726, 0.57580819141784534, 0.58081395809576453, 0.58579785745643886, 0.59075970185887416, 0.59569930449243336, 0.60061647938386897, 0.60551104140432555, 0.61038280627630948, 0.61523159058062682, 0.6200572117632891, 0.62485948814238634, 0.62963823891492698, 0.63439328416364549, 0.63912444486377573, 0.64383154288979139, 0.64851440102211244, 0.65317284295377676, 0.65780669329707864, 0.66241577759017178, 0.66699992230363747, 0.67155895484701833, 0.67609270357531592, 0.68060099779545302, 0.68508366777270036, 0.68954054473706683, 0.693971460889654, 0.69837624940897292, 0.7027547444572253, 0.70710678118654746, 0.71143219574521643, 0.71573082528381859, 0.72000250796138165, 0.72424708295146689, 0.7284643904482252, 0.73265427167241282, 0.73681656887736979, 0.74095112535495911, 0.74505778544146595, 0.74913639452345926, 0.75318679904361241, 0.75720884650648446, 0.76120238548426178, 0.76516726562245896, 0.76910333764557959, 0.77301045336273699, 0.77688846567323244, 0.78073722857209438, 0.78455659715557524, 0.78834642762660623, 0.79210657730021239, 0.79583690460888346, 0.79953726910790501, 0.80320753148064483, 0.80684755354379922, 0.81045719825259477, 0.8140363297059483, 0.81758481315158371, 0.82110251499110465, 0.82458930278502529, 0.8280450452577558, 0.83146961230254524, 0.83486287498638001, 0.83822470555483797, 0.84155497743689833, 0.84485356524970701, 0.84812034480329712, 0.8513551931052652, 0.85455798836540053, 0.85772861000027212, 0.86086693863776731, 0.8639728561215867, 0.86704624551569265, 0.87008699110871135, 0.87309497841829009, 0.8760700941954066, 0.87901222642863341, 0.88192126434835494, 0.88479709843093779, 0.88763962040285393, 0.89044872324475788, 0.89322430119551532, 0.89596624975618511, 0.89867446569395382, 0.90134884704602203, 0.90398929312344334, 0.90659570451491533, 0.90916798309052227, 0.91170603200542988, 0.91420975570353069, 0.9166790599210427, 0.91911385169005777, 0.9215140393420419, 0.92387953251128674, 0.92621024213831127, 0.92850608047321548, 0.93076696107898371, 0.93299279883473885, 0.9351835099389475, 0.93733901191257496, 0.93945922360218992, 0.94154406518302081, 0.94359345816196039, 0.94560732538052128, 0.94758559101774109, 0.94952818059303667, 0.95143502096900834, 0.95330604035419375, 0.95514116830577067, 0.95694033573220894, 0.9587034748958716, 0.96043051941556579, 0.96212140426904158, 0.96377606579543984, 0.9653944416976894, 0.96697647104485207, 0.96852209427441727, 0.97003125319454397, 0.97150389098625178, 0.97293995220556007, 0.97433938278557586, 0.97570213003852857, 0.97702814265775439, 0.97831737071962765, 0.97956976568544052, 0.98078528040323043, 0.98196386910955524, 0.98310548743121629, 0.98421009238692903, 0.98527764238894122, 0.98630809724459867, 0.98730141815785843, 0.98825756773074946, 0.98917650996478101, 0.99005821026229712, 0.99090263542778001, 0.99170975366909953, 0.99247953459870997, 0.9932119492347945, 0.99390697000235606, 0.99456457073425542, 0.99518472667219682, 0.99576741446765982, 0.996312612182778, 0.99682029929116567, 0.99729045667869021, 0.99772306664419164, 0.99811811290014918, 0.99847558057329477, 0.99879545620517241, 0.99907772775264536, 0.99932238458834954, 0.99952941750109314, 0.99969881869620425, 0.9998305817958234, 0.9999247018391445, 0.99998117528260111, 1.0};/* looks up sin(2 * Pi * x / 1024)*/FLOAT_T lookup_sine(int x){ int xx = x & 0xFF; switch ((x>>8) & 0x03) { default: /* just to shut gcc up. */ case 0: return sine_table[xx]; case 1: return sine_table[0x100 - xx]; case 2: return -sine_table[xx]; case 3: return -sine_table[0x100 - xx]; }}#endif /* LOOKUP_SINE */static FLOAT_T triangular_table[257];void init_triangular_table(void){ int i; unsigned long init[4]={0x123, 0x234, 0x345, 0x456}, length=4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -