00001 /*************************************************************************** 00002 * Copyright (C) 2010 by Luigi Negretti Lanner * 00003 * luigi.negrettilanner@gmail.com * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU General Public License as published by * 00007 * the Free Software Foundation; either version 2 of the License, or * 00008 * (at your option) any later version. * 00009 * * 00010 * This program is distributed in the hope that it will be useful, * 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00013 * GNU General Public License for more details. * 00014 * * 00015 * You should have received a copy of the GNU General Public License * 00016 * along with this program; if not, write to the * 00017 * Free Software Foundation, Inc., * 00018 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 00019 ***************************************************************************/ 00020 void ini_act() 00021 { 00022 init_act[0] = act_1->value(); 00023 init_act[1] = act_2->value(); 00024 init_act[2] = act_3->value(); 00025 init_act[3] = act_4->value(); 00026 init_act[4] = act_5->value(); 00027 init_act[5] = act_6->value(); 00028 init_act[6] = act_7->value(); 00029 init_act[7] = act_8->value(); 00030 init_act[8] = act_9->value(); 00031 init_act[9] = act_10->value(); 00032 init_act[10] = act_11->value(); 00033 init_act[11] = act_12->value(); 00034 } 00035 00036 00037 void contrappunto::act_lim_input() 00038 { 00039 act_min_ = (int)min_act->value(); 00040 act_max_ = (int)max_act->value(); 00041 } 00042 00043 void contrappunto::subset_act() 00044 { 00045 formula formula; 00046 act_lim_input(); 00047 //////////INITIALIZE ACT SUBSET///// 00048 int sub_tact_size = (int)act_max_ - (int)act_min_; 00049 float *sub_tact = new float[sub_tact_size]; 00050 00051 init_params(); 00052 int indice = (int)act_min_; 00053 int i; 00054 for (i = 0; i < sub_tact_size; i++) 00055 { 00056 sub_tact[i] = tact[indice]; 00057 indice++; 00058 } 00059 /////////////////////////////////////////////////////////// 00060 if (logic_a->value() == 1) 00061 { 00062 formula.trp_seq_tact(); 00063 init_params(); 00064 act_1->value(sub_tact[formula.j_act1]); 00065 { 00066 select_val(); //this function is in counterpointFunc.h 00067 act_1->value(act_1->value() + o); 00068 } 00069 } 00070 00071 else if (logic_a->value() == 2) 00072 { 00073 formula.trp_seq_tact(); 00074 init_params(); 00075 00076 act_1->value(sub_tact[formula.j_act1]); 00077 act_2->value(sub_tact[formula.j_act2]); 00078 { 00079 select_val(); //this function is in counterpointFunc.h 00080 act_1->value(act_1->value() + o); 00081 act_2->value(act_2->value() + o); 00082 } 00083 } 00084 00085 else if (logic_a->value() == 3) 00086 { 00087 formula.trp_seq_tact(); 00088 init_params(); 00089 00090 act_1->value(sub_tact[formula.j_act1]); 00091 act_2->value(sub_tact[formula.j_act2]); 00092 act_3->value(sub_tact[formula.j_act3]); 00093 { 00094 select_val(); //this function is in counterpointFunc.h 00095 act_1->value(act_1->value() + o); 00096 act_2->value(act_2->value() + o); 00097 act_3->value(act_3->value() + o); 00098 } 00099 } 00100 00101 else if (logic_a->value() == 4) 00102 { 00103 formula.trp_seq_tact(); 00104 init_params(); 00105 00106 act_1->value(sub_tact[formula.j_act1]); 00107 act_2->value(sub_tact[formula.j_act2]); 00108 act_3->value(sub_tact[formula.j_act3]); 00109 act_4->value(sub_tact[formula.j_act4]); 00110 { 00111 select_val(); //this function is in counterpointFunc.h 00112 act_1->value(act_1->value() + o); 00113 act_2->value(act_2->value() + o); 00114 act_3->value(act_3->value() + o); 00115 act_4->value(act_4->value() + o); 00116 } 00117 } 00118 00119 else if (logic_a->value() == 5) 00120 { 00121 formula.trp_seq_tact(); 00122 init_params(); 00123 00124 act_1->value(sub_tact[formula.j_act1]); 00125 act_2->value(sub_tact[formula.j_act2]); 00126 act_3->value(sub_tact[formula.j_act3]); 00127 act_4->value(sub_tact[formula.j_act4]); 00128 act_5->value(sub_tact[formula.j_act5]); 00129 { 00130 select_val(); //this function is in counterpointFunc.h 00131 act_1->value(act_1->value() + o); 00132 act_2->value(act_2->value() + o); 00133 act_3->value(act_3->value() + o); 00134 act_4->value(act_4->value() + o); 00135 act_5->value(act_5->value() + o); 00136 } 00137 } 00138 00139 else if (logic_a->value() == 6) 00140 { 00141 formula.trp_seq_tact(); 00142 init_params(); 00143 00144 act_1->value(sub_tact[formula.j_act1]); 00145 act_2->value(sub_tact[formula.j_act2]); 00146 act_3->value(sub_tact[formula.j_act3]); 00147 act_4->value(sub_tact[formula.j_act4]); 00148 act_5->value(sub_tact[formula.j_act5]); 00149 act_6->value(sub_tact[formula.j_act6]); 00150 { 00151 select_val(); //this function is in counterpointFunc.h 00152 act_1->value(act_1->value() + o); 00153 act_2->value(act_2->value() + o); 00154 act_3->value(act_3->value() + o); 00155 act_4->value(act_4->value() + o); 00156 act_5->value(act_5->value() + o); 00157 act_6->value(act_6->value() + o); 00158 } 00159 } 00160 00161 else if (logic_a->value() == 7) 00162 { 00163 formula.trp_seq_tact(); 00164 init_params(); 00165 00166 act_1->value(sub_tact[formula.j_act1]); 00167 act_2->value(sub_tact[formula.j_act2]); 00168 act_3->value(sub_tact[formula.j_act3]); 00169 act_4->value(sub_tact[formula.j_act4]); 00170 act_5->value(sub_tact[formula.j_act5]); 00171 act_6->value(sub_tact[formula.j_act6]); 00172 act_7->value(sub_tact[formula.j_act7]); 00173 { 00174 select_val(); //this function is in counterpointFunc.h 00175 act_1->value(act_1->value() + o); 00176 act_2->value(act_2->value() + o); 00177 act_3->value(act_3->value() + o); 00178 act_4->value(act_4->value() + o); 00179 act_5->value(act_5->value() + o); 00180 act_6->value(act_6->value() + o); 00181 act_7->value(act_7->value() + o); 00182 } 00183 } 00184 00185 else if (logic_a->value() == 8) 00186 { 00187 formula.trp_seq_tact(); 00188 init_params(); 00189 00190 act_1->value(sub_tact[formula.j_act1]); 00191 act_2->value(sub_tact[formula.j_act2]); 00192 act_3->value(sub_tact[formula.j_act3]); 00193 act_4->value(sub_tact[formula.j_act4]); 00194 act_5->value(sub_tact[formula.j_act5]); 00195 act_6->value(sub_tact[formula.j_act6]); 00196 act_7->value(sub_tact[formula.j_act7]); 00197 act_8->value(sub_tact[formula.j_act8]); 00198 { 00199 select_val(); //this function is in counterpointFunc.h 00200 act_1->value(act_1->value() + o); 00201 act_2->value(act_2->value() + o); 00202 act_3->value(act_3->value() + o); 00203 act_4->value(act_4->value() + o); 00204 act_5->value(act_5->value() + o); 00205 act_6->value(act_6->value() + o); 00206 act_7->value(act_7->value() + o); 00207 act_8->value(act_8->value() + o); 00208 } 00209 } 00210 00211 else if (logic_a->value() == 9) 00212 { 00213 formula.trp_seq_tact(); 00214 init_params(); 00215 00216 act_1->value(sub_tact[formula.j_act1]); 00217 act_2->value(sub_tact[formula.j_act2]); 00218 act_3->value(sub_tact[formula.j_act3]); 00219 act_4->value(sub_tact[formula.j_act4]); 00220 act_5->value(sub_tact[formula.j_act5]); 00221 act_6->value(sub_tact[formula.j_act6]); 00222 act_7->value(sub_tact[formula.j_act7]); 00223 act_8->value(sub_tact[formula.j_act8]); 00224 act_9->value(sub_tact[formula.j_act9]); 00225 { 00226 select_val(); //this function is in counterpointFunc.h 00227 act_1->value(act_1->value() + o); 00228 act_2->value(act_2->value() + o); 00229 act_3->value(act_3->value() + o); 00230 act_4->value(act_4->value() + o); 00231 act_5->value(act_5->value() + o); 00232 act_6->value(act_6->value() + o); 00233 act_7->value(act_7->value() + o); 00234 act_8->value(act_8->value() + o); 00235 act_9->value(act_9->value() + o); 00236 } 00237 } 00238 00239 else if (logic_a->value() == 10) 00240 { 00241 formula.trp_seq_tact(); 00242 init_params(); 00243 00244 act_1->value(sub_tact[formula.j_act1]); 00245 act_2->value(sub_tact[formula.j_act2]); 00246 act_3->value(sub_tact[formula.j_act3]); 00247 act_4->value(sub_tact[formula.j_act4]); 00248 act_5->value(sub_tact[formula.j_act5]); 00249 act_6->value(sub_tact[formula.j_act6]); 00250 00251 act_7->value(sub_tact[formula.j_act7]); 00252 act_8->value(sub_tact[formula.j_act8]); 00253 act_9->value(sub_tact[formula.j_act9]); 00254 act_10->value(sub_tact[formula.j_act10]); 00255 { 00256 select_val(); //this function is in counterpointFunc.h 00257 act_1->value(act_1->value() + o); 00258 act_2->value(act_2->value() + o); 00259 act_3->value(act_3->value() + o); 00260 act_4->value(act_4->value() + o); 00261 act_5->value(act_5->value() + o); 00262 act_6->value(act_6->value() + o); 00263 act_7->value(act_7->value() + o); 00264 act_8->value(act_8->value() + o); 00265 act_9->value(act_9->value() + o); 00266 act_10->value(act_10->value() + o); 00267 } 00268 } 00269 00270 else if (logic_a->value() == 11) 00271 { 00272 formula.trp_seq_tact(); 00273 init_params(); 00274 00275 act_1->value(sub_tact[formula.j_act1]); 00276 act_2->value(sub_tact[formula.j_act2]); 00277 act_3->value(sub_tact[formula.j_act3]); 00278 act_4->value(sub_tact[formula.j_act4]); 00279 act_5->value(sub_tact[formula.j_act5]); 00280 act_6->value(sub_tact[formula.j_act6]); 00281 act_7->value(sub_tact[formula.j_act7]); 00282 act_8->value(sub_tact[formula.j_act8]); 00283 act_9->value(sub_tact[formula.j_act9]); 00284 act_10->value(sub_tact[formula.j_act10]); 00285 act_11->value(sub_tact[formula.j_act11]); 00286 { 00287 select_val(); //this function is in counterpointFunc.h 00288 act_1->value(act_1->value() + o); 00289 act_2->value(act_2->value() + o); 00290 act_3->value(act_3->value() + o); 00291 act_4->value(act_4->value() + o); 00292 act_5->value(act_5->value() + o); 00293 act_6->value(act_6->value() + o); 00294 act_7->value(act_7->value() + o); 00295 act_8->value(act_8->value() + o); 00296 act_9->value(act_9->value() + o); 00297 act_10->value(act_10->value() + o); 00298 act_11->value(act_11->value() + o); 00299 } 00300 } 00301 00302 else if (logic_a->value() == 12) 00303 { 00304 formula.trp_seq_tact(); 00305 init_params(); 00306 00307 act_1->value(sub_tact[formula.j_act1]); 00308 act_2->value(sub_tact[formula.j_act2]); 00309 act_3->value(sub_tact[formula.j_act3]); 00310 act_4->value(sub_tact[formula.j_act4]); 00311 act_5->value(sub_tact[formula.j_act5]); 00312 act_6->value(sub_tact[formula.j_act6]); 00313 act_7->value(sub_tact[formula.j_act7]); 00314 act_8->value(sub_tact[formula.j_act8]); 00315 act_9->value(sub_tact[formula.j_act9]); 00316 act_10->value(sub_tact[formula.j_act10]); 00317 act_11->value(sub_tact[formula.j_act11]); 00318 act_12->value(sub_tact[formula.j_act12]); 00319 { 00320 select_val(); //this function is in counterpointFunc.h 00321 act_1->value(act_1->value() + o); 00322 act_2->value(act_2->value() + o); 00323 act_3->value(act_3->value() + o); 00324 act_4->value(act_4->value() + o); 00325 act_5->value(act_5->value() + o); 00326 act_6->value(act_6->value() + o); 00327 act_7->value(act_7->value() + o); 00328 act_8->value(act_8->value() + o); 00329 act_9->value(act_9->value() + o); 00330 act_10->value(act_10->value() + o); 00331 act_11->value(act_11->value() + o); 00332 act_12->value(act_12->value() + o); 00333 } 00334 } 00335 delete [] sub_tact; 00336 } 00337 00338 void contrappunto::init_act_serie() 00339 { 00340 if (bt_calc_act->value() == 1) 00341 { 00342 if (bt_enable_act->value() == 1) 00343 { 00344 subset_act(); 00345 } 00346 } 00347 int i; 00348 ini_act(); 00349 for (i = 0; i < 12; i++) 00350 { 00351 serie_act[i] = init_act[i]; 00352 } 00353 } 00354 00355 //INITIALIZE SERIES<<<<<<<<< 00356 00357 //RETROGRADO>>>>>>>> 00358 00359 void contrappunto::retroact() 00360 { 00361 if (bt_enable_act->value() == 1) 00362 { 00363 subset_act(); 00364 } 00365 init_act_serie(); 00366 00367 int i; 00368 int s = 11; 00369 00370 for (i=0;i<12;i++) 00371 { 00372 serie_manip[i] = serie_act[s]; 00373 s--; 00374 } 00375 } 00376 00377 00378 void retro_act() 00379 { 00380 contrappunto ob; 00381 ob.retroact(); 00382 act_1->value(ob.serie_manip[0]); 00383 act_2->value(ob.serie_manip[1]); 00384 act_3->value(ob.serie_manip[2]); 00385 act_4->value(ob.serie_manip[3]); 00386 act_5->value(ob.serie_manip[4]); 00387 act_6->value(ob.serie_manip[5]); 00388 act_7->value(ob.serie_manip[6]); 00389 act_8->value(ob.serie_manip[7]); 00390 act_9->value(ob.serie_manip[8]); 00391 act_10->value(ob.serie_manip[9]); 00392 act_11->value(ob.serie_manip[10]); 00393 act_12->value(ob.serie_manip[11]); 00394 } 00395 00396 void retroact_cb(Fl_Widget*,void*) 00397 { 00398 retro_act(); 00399 } 00400 00401 //RETROGRADO<<<<< 00402 00403 //CROCE<<<<<<<<<<< 00404 00405 00406 void contrappunto::croceact() 00407 { 00408 init_act_serie(); 00409 serie_manip[0] = serie_act[11]; 00410 serie_manip[1] = serie_act[0]; 00411 serie_manip[2] = serie_act[10]; 00412 serie_manip[3] = serie_act[1]; 00413 serie_manip[4] = serie_act[9]; 00414 serie_manip[5] = serie_act[2]; 00415 serie_manip[6] = serie_act[8]; 00416 serie_manip[7] = serie_act[3]; 00417 serie_manip[8] = serie_act[7]; 00418 serie_manip[9] = serie_act[4]; 00419 serie_manip[10] = serie_act[6]; 00420 serie_manip[11] = serie_act[5]; 00421 } 00422 00423 00424 void croce_act() 00425 { 00426 contrappunto ob; 00427 ob.croceact(); 00428 act_1->value(ob.serie_manip[0]); 00429 act_2->value(ob.serie_manip[1]); 00430 act_3->value(ob.serie_manip[2]); 00431 act_4->value(ob.serie_manip[3]); 00432 act_5->value(ob.serie_manip[4]); 00433 act_6->value(ob.serie_manip[5]); 00434 act_7->value(ob.serie_manip[6]); 00435 act_8->value(ob.serie_manip[7]); 00436 act_9->value(ob.serie_manip[8]); 00437 act_10->value(ob.serie_manip[9]); 00438 act_11->value(ob.serie_manip[10]); 00439 act_12->value(ob.serie_manip[11]); 00440 } 00441 00442 void croceact_cb(Fl_Widget*,void*) 00443 { 00444 croce_act(); 00445 } 00446 00447 //CROCE<<<<<<<<<<<<<< 00448 00449 //SLIDE>>>>>>>>>>>>>> 00450 00451 void contrappunto::slideact() 00452 { 00453 init_act_serie(); 00454 int i, s; 00455 i = 0; 00456 s = 1; 00457 for (i=0;i<11;i++) 00458 { 00459 serie_manip[i] = serie_act[s]; 00460 s++; 00461 } 00462 serie_manip[11] = serie_act[0]; 00463 } 00464 00465 void slide_act() 00466 { 00467 contrappunto ob; 00468 ob.slideact(); 00469 act_1->value(ob.serie_manip[0]); 00470 act_2->value(ob.serie_manip[1]); 00471 act_3->value(ob.serie_manip[2]); 00472 act_4->value(ob.serie_manip[3]); 00473 act_5->value(ob.serie_manip[4]); 00474 act_6->value(ob.serie_manip[5]); 00475 act_7->value(ob.serie_manip[6]); 00476 act_8->value(ob.serie_manip[7]); 00477 act_9->value(ob.serie_manip[8]); 00478 act_10->value(ob.serie_manip[9]); 00479 act_11->value(ob.serie_manip[10]); 00480 act_12->value(ob.serie_manip[11]); 00481 } 00482 00483 void slideact_cb(Fl_Widget*,void*) 00484 { 00485 slide_act(); 00486 } 00487 00488 /////////////JUMP1 00489 00490 void contrappunto::jump_oneact() 00491 { 00492 init_act_serie(); 00493 serie_manip[0] = serie_act[1]; 00494 serie_manip[1] = serie_act[3]; 00495 serie_manip[2] = serie_act[5]; 00496 serie_manip[3] = serie_act[7]; 00497 serie_manip[4] = serie_act[9]; 00498 serie_manip[5] = serie_act[11]; 00499 serie_manip[6] = serie_act[0]; 00500 serie_manip[7] = serie_act[2]; 00501 serie_manip[8] = serie_act[4]; 00502 serie_manip[9] = serie_act[6]; 00503 serie_manip[10] = serie_act[8]; 00504 serie_manip[11] = serie_act[10]; 00505 } 00506 00507 00508 void jumpone_act() 00509 { 00510 contrappunto ob; 00511 ob.jump_oneact(); 00512 act_1->value(ob.serie_manip[0]); 00513 act_2->value(ob.serie_manip[1]); 00514 act_3->value(ob.serie_manip[2]); 00515 act_4->value(ob.serie_manip[3]); 00516 act_5->value(ob.serie_manip[4]); 00517 act_6->value(ob.serie_manip[5]); 00518 act_7->value(ob.serie_manip[6]); 00519 act_8->value(ob.serie_manip[7]); 00520 act_9->value(ob.serie_manip[8]); 00521 act_10->value(ob.serie_manip[9]); 00522 act_11->value(ob.serie_manip[10]); 00523 act_12->value(ob.serie_manip[11]); 00524 00525 } 00526 00527 void jumpOneact_cb(Fl_Widget*,void*) 00528 { 00529 jumpone_act(); 00530 } 00531 00532 ///////////JUMP1 00533