counterpointFunc_instr.h

Go to the documentation of this file.
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_instr()
00021 {
00022   init_instr[0] = instr_1->value();
00023   init_instr[1] = instr_2->value();
00024   init_instr[2] = instr_3->value();
00025   init_instr[3] = instr_4->value();
00026   init_instr[4] = instr_5->value();
00027   init_instr[5] = instr_6->value();
00028   init_instr[6] = instr_7->value();
00029   init_instr[7] = instr_8->value();
00030   init_instr[8] = instr_9->value();
00031   init_instr[9] = instr_10->value();
00032   init_instr[10] = instr_11->value();
00033   init_instr[11] = instr_12->value();
00034 }
00035 
00036 void contrappunto::instr_lim_input()
00037 {
00038     instr_min_ = (int)min_instr->value();
00039     instr_max_ = (int)max_instr->value();
00040 }
00041 
00042 void contrappunto::subset_instr()
00043 {
00044   formula formula;
00045   instr_lim_input();
00046   //////////INITIALIZE INSTR SUBSET/////
00047     int sub_tInstr_size = (int)instr_max_ - (int)instr_min_;
00048     float *sub_tInstr = new float[sub_tInstr_size];
00049 
00050     init_params();
00051     int indice = (int)instr_min_;
00052     int i;
00053     for (i = 0; i < sub_tInstr_size; i++)
00054     {
00055         sub_tInstr[i] = tInstr[indice];
00056         indice++;
00057     }
00058   ///////////////////////////////////////////////////////////
00059 
00060   if (logic_a->value() == 1)
00061     {
00062       formula.trp_seq_tinstr();
00063       init_params();
00064       instr_1->value(sub_tInstr[formula.j_i1]);
00065     }
00066 
00067   else if (logic_a->value() == 2)
00068     {
00069       formula.trp_seq_tinstr();
00070       init_params();
00071 
00072       instr_1->value(sub_tInstr[formula.j_i1]);
00073       instr_2->value(sub_tInstr[formula.j_i2]);
00074     }
00075 
00076   else if (logic_a->value() == 3)
00077     {
00078       formula.trp_seq_tinstr();
00079       init_params();
00080 
00081       instr_1->value(sub_tInstr[formula.j_i1]);
00082       instr_2->value(sub_tInstr[formula.j_i2]);
00083       instr_3->value(sub_tInstr[formula.j_i3]);
00084     }
00085 
00086     else if (logic_a->value() == 4)
00087     {
00088       formula.trp_seq_tinstr();
00089       init_params();
00090 
00091       instr_1->value(sub_tInstr[formula.j_i1]);
00092       instr_2->value(sub_tInstr[formula.j_i2]);
00093       instr_3->value(sub_tInstr[formula.j_i3]);
00094       instr_4->value(sub_tInstr[formula.j_i4]);
00095     }
00096 
00097   else if (logic_a->value() == 5)
00098     {
00099       formula.trp_seq_tinstr();
00100       init_params();
00101 
00102       instr_1->value(sub_tInstr[formula.j_i1]);
00103       instr_2->value(sub_tInstr[formula.j_i2]);
00104       instr_3->value(sub_tInstr[formula.j_i3]);
00105       instr_4->value(sub_tInstr[formula.j_i4]);
00106       instr_5->value(sub_tInstr[formula.j_i5]);
00107     }
00108 
00109     else if (logic_a->value() == 6)
00110     {
00111       formula.trp_seq_tinstr();
00112       init_params();
00113 
00114       instr_1->value(sub_tInstr[formula.j_i1]);
00115       instr_2->value(sub_tInstr[formula.j_i2]);
00116       instr_3->value(sub_tInstr[formula.j_i3]);
00117       instr_4->value(sub_tInstr[formula.j_i4]);
00118       instr_5->value(sub_tInstr[formula.j_i5]);
00119       instr_6->value(sub_tInstr[formula.j_i6]);
00120     }
00121 
00122   else if (logic_a->value() == 7)
00123     {
00124       formula.trp_seq_tinstr();
00125       init_params();
00126 
00127       instr_1->value(sub_tInstr[formula.j_i1]);
00128       instr_2->value(sub_tInstr[formula.j_i2]);
00129       instr_3->value(sub_tInstr[formula.j_i3]);
00130       instr_4->value(sub_tInstr[formula.j_i4]);
00131       instr_5->value(sub_tInstr[formula.j_i5]);
00132       instr_6->value(sub_tInstr[formula.j_i6]);
00133       instr_7->value(sub_tInstr[formula.j_i7]);
00134     }
00135 
00136   else if (logic_a->value() == 8)
00137     {
00138       formula.trp_seq_tinstr();
00139       init_params();
00140 
00141       instr_1->value(sub_tInstr[formula.j_i1]);
00142       instr_2->value(sub_tInstr[formula.j_i2]);
00143       instr_3->value(sub_tInstr[formula.j_i3]);
00144       instr_4->value(sub_tInstr[formula.j_i4]);
00145       instr_5->value(sub_tInstr[formula.j_i5]);
00146       instr_6->value(sub_tInstr[formula.j_i6]);
00147       instr_7->value(sub_tInstr[formula.j_i7]);
00148       instr_8->value(sub_tInstr[formula.j_i8]);
00149     }
00150 
00151   else if (logic_a->value() == 9)
00152     {
00153       formula.trp_seq_tinstr();
00154       init_params();
00155 
00156       instr_1->value(sub_tInstr[formula.j_i1]);
00157       instr_2->value(sub_tInstr[formula.j_i2]);
00158       instr_3->value(sub_tInstr[formula.j_i3]);
00159       instr_4->value(sub_tInstr[formula.j_i4]);
00160       instr_5->value(sub_tInstr[formula.j_i5]);
00161       instr_6->value(sub_tInstr[formula.j_i6]);
00162       instr_7->value(sub_tInstr[formula.j_i7]);
00163       instr_8->value(sub_tInstr[formula.j_i8]);
00164       instr_9->value(sub_tInstr[formula.j_i9]);
00165     }
00166 
00167   else if (logic_a->value() == 10)
00168     {
00169       formula.trp_seq_tinstr();
00170       init_params();
00171 
00172       instr_1->value(sub_tInstr[formula.j_i1]);
00173       instr_2->value(sub_tInstr[formula.j_i2]);
00174       instr_3->value(sub_tInstr[formula.j_i3]);
00175       instr_4->value(sub_tInstr[formula.j_i4]);
00176       instr_5->value(sub_tInstr[formula.j_i5]);
00177       instr_6->value(sub_tInstr[formula.j_i6]);
00178       instr_7->value(sub_tInstr[formula.j_i7]);
00179       instr_8->value(sub_tInstr[formula.j_i8]);
00180       instr_9->value(sub_tInstr[formula.j_i9]);
00181       instr_10->value(sub_tInstr[formula.j_i10]);
00182     }
00183 
00184   else if (logic_a->value() == 11)
00185     {
00186       formula.trp_seq_tinstr();
00187       init_params();
00188 
00189       instr_1->value(sub_tInstr[formula.j_i1]);
00190       instr_2->value(sub_tInstr[formula.j_i2]);
00191       instr_3->value(sub_tInstr[formula.j_i3]);
00192       instr_4->value(sub_tInstr[formula.j_i4]);
00193       instr_5->value(sub_tInstr[formula.j_i5]);
00194       instr_6->value(sub_tInstr[formula.j_i6]);
00195       instr_7->value(sub_tInstr[formula.j_i7]);
00196       instr_8->value(sub_tInstr[formula.j_i8]);
00197       instr_9->value(sub_tInstr[formula.j_i9]);
00198       instr_10->value(sub_tInstr[formula.j_i10]);
00199       instr_11->value(sub_tInstr[formula.j_i11]);
00200     }
00201 
00202   else if (logic_a->value() == 12)
00203     {
00204       formula.trp_seq_tinstr();
00205       init_params();
00206 
00207       instr_1->value(tInstr[formula.j_i1]);
00208       instr_2->value(tInstr[formula.j_i2]);
00209       instr_3->value(tInstr[formula.j_i3]);
00210       instr_4->value(tInstr[formula.j_i4]);
00211       instr_5->value(tInstr[formula.j_i5]);
00212       instr_6->value(tInstr[formula.j_i6]);
00213       instr_7->value(tInstr[formula.j_i7]);
00214       instr_8->value(tInstr[formula.j_i8]);
00215       instr_9->value(tInstr[formula.j_i9]);
00216       instr_10->value(tInstr[formula.j_i10]);
00217       instr_11->value(tInstr[formula.j_i11]);
00218       instr_12->value(tInstr[formula.j_i12]);
00219     }
00220     delete [] sub_tInstr;
00221 }
00222 
00223 void contrappunto::init_instr_serie()
00224 {
00225     int i;
00226     if (bt_enable_instr->value() == 1)
00227     {
00228     subset_instr();
00229     }
00230     ini_instr();
00231     for (i = 0; i < 12; i++)
00232     {
00233       serie_instr[i] = init_instr[i];
00234     }
00235 }
00236 
00237 void contrappunto::retroInstr()
00238 {
00239   init_instr_serie();
00240 
00241   int i;
00242   int s = 11;
00243 
00244   for (i=0;i<12;i++)
00245   {
00246     serie_manip[i] = serie_instr[s];
00247     s--;
00248   }
00249 }
00250 
00251 void retro_instr()
00252 {
00253   contrappunto ob;
00254   ob.retroInstr();
00255   instr_1->value(ob.serie_manip[0]);
00256   instr_2->value(ob.serie_manip[1]);
00257   instr_3->value(ob.serie_manip[2]);
00258   instr_4->value(ob.serie_manip[3]);
00259   instr_5->value(ob.serie_manip[4]);
00260   instr_6->value(ob.serie_manip[5]);
00261   instr_7->value(ob.serie_manip[6]);
00262   instr_8->value(ob.serie_manip[7]);
00263   instr_9->value(ob.serie_manip[8]);
00264   instr_10->value(ob.serie_manip[9]);
00265   instr_11->value(ob.serie_manip[10]);
00266   instr_12->value(ob.serie_manip[11]);
00267 }
00268 
00269 void retroInstr_cb(Fl_Widget*,void*)
00270 {
00271   retro_instr();
00272   counterpointPitch->value(0);
00273 }
00274 
00275 void contrappunto::croceInstr()
00276 {
00277   init_instr_serie();
00278   serie_manip[0] = serie_instr[11];
00279   serie_manip[1] = serie_instr[0];
00280   serie_manip[2] = serie_instr[10];
00281   serie_manip[3] = serie_instr[1];
00282   serie_manip[4] = serie_instr[9];
00283   serie_manip[5] = serie_instr[2];
00284   serie_manip[6] = serie_instr[8];
00285   serie_manip[7] = serie_instr[3];
00286   serie_manip[8] = serie_instr[7];
00287   serie_manip[9] = serie_instr[4];
00288   serie_manip[10] = serie_instr[6];
00289   serie_manip[11] = serie_instr[5];
00290 }
00291 
00292 void croce_instr()
00293 {
00294   contrappunto ob;
00295   ob.croceInstr();
00296   instr_1->value(ob.serie_manip[0]);
00297   instr_2->value(ob.serie_manip[1]);
00298   instr_3->value(ob.serie_manip[2]);
00299   instr_4->value(ob.serie_manip[3]);
00300   instr_5->value(ob.serie_manip[4]);
00301   instr_6->value(ob.serie_manip[5]);
00302   instr_7->value(ob.serie_manip[6]);
00303   instr_8->value(ob.serie_manip[7]);
00304   instr_9->value(ob.serie_manip[8]);
00305   instr_10->value(ob.serie_manip[9]);
00306   instr_11->value(ob.serie_manip[10]);
00307   instr_12->value(ob.serie_manip[11]);
00308 }
00309 
00310 void croceInstr_cb(Fl_Widget*,void*)
00311 {
00312   croce_instr();
00313 }
00314 
00315 void contrappunto::slideInstr()
00316 {
00317   init_instr_serie();
00318   int i, s;
00319   i = 0;
00320   s = 1;
00321   for (i=0;i<11;i++)
00322   {
00323     serie_manip[i] = serie_instr[s];
00324     s++;
00325   }
00326     serie_manip[11] = serie_instr[0];
00327 }
00328 
00329 void slide_instr()
00330 {
00331   contrappunto ob;
00332   ob.slideInstr();
00333   instr_1->value(ob.serie_manip[0]);
00334   instr_2->value(ob.serie_manip[1]);
00335   instr_3->value(ob.serie_manip[2]);
00336   instr_4->value(ob.serie_manip[3]);
00337   instr_5->value(ob.serie_manip[4]);
00338   instr_6->value(ob.serie_manip[5]);
00339   instr_7->value(ob.serie_manip[6]);
00340   instr_8->value(ob.serie_manip[7]);
00341   instr_9->value(ob.serie_manip[8]);
00342   instr_10->value(ob.serie_manip[9]);
00343   instr_11->value(ob.serie_manip[10]);
00344   instr_12->value(ob.serie_manip[11]);
00345 }
00346 
00347 void slideInstr_cb(Fl_Widget*,void*)
00348 {
00349   slide_instr();
00350 }
00351 
00352 void contrappunto::jump_oneInstr()
00353 {
00354   init_instr_serie();
00355   serie_manip[0] = serie_instr[1];
00356   serie_manip[1] = serie_instr[3];
00357   serie_manip[2] = serie_instr[5];
00358   serie_manip[3] = serie_instr[7];
00359   serie_manip[4] = serie_instr[9];
00360   serie_manip[5] = serie_instr[11];
00361   serie_manip[6] = serie_instr[0];
00362   serie_manip[7] = serie_instr[2];
00363   serie_manip[8] = serie_instr[4];
00364   serie_manip[9] = serie_instr[6];
00365   serie_manip[10] = serie_instr[8];
00366   serie_manip[11] = serie_instr[10];
00367 }
00368 
00369 void jumpone_instr()
00370 {
00371   contrappunto ob;
00372   ob.jump_oneInstr();
00373   instr_1->value(ob.serie_manip[0]);
00374   instr_2->value(ob.serie_manip[1]);
00375   instr_3->value(ob.serie_manip[2]);
00376   instr_4->value(ob.serie_manip[3]);
00377   instr_5->value(ob.serie_manip[4]);
00378   instr_6->value(ob.serie_manip[5]);
00379   instr_7->value(ob.serie_manip[6]);
00380   instr_8->value(ob.serie_manip[7]);
00381   instr_9->value(ob.serie_manip[8]);
00382   instr_10->value(ob.serie_manip[9]);
00383   instr_11->value(ob.serie_manip[10]);
00384   instr_12->value(ob.serie_manip[11]);
00385 
00386 }
00387 
00388 void jumpOneInstr_cb(Fl_Widget*,void*)
00389 {
00390   jumpone_instr();
00391 }
00392 

Generated on Sun Jul 1 20:29:36 2012 for Csmusgen by  doxygen 1.4.7