int key_go() { if (key_shifts & KB_CTRL_FLAG || index_false_control==1) { do_go_back_function(); int banger_back_is=Banger_Memoire[position_preset]-1; do_go_back_bang(banger_back_is); } else if (key_shifts & KB_SHIFT_FLAG || index_false_shift==1) { do_double_go_function(); do_send_bang(); } else { do_go_function(); do_send_bang(); } return(0); }
int arduino_do_digital_in_whitecat() { int vfader=0; for(int p=0;p<=arduino_max_digital;p++) { if(arduino_digital_type[p]==1 && digital_data_from_arduino[p]!= previous_digital_data_from_arduino[p] )//si l'affectation est type INPUT //et qu il y a une différence d'état { switch(arduino_digital_function_input[p][0]) { case 0://desafected break; case 1: //fader up if(digital_data_from_arduino[p]==1) { vfader=(arduino_digital_function_input[p][1]-1); start_time_for_delays[vfader]=actual_time; if(lfo_mode_is[vfader]!=1)//up { lfo_mode_is[vfader]=1; faders_in_float[vfader]=Fader[vfader]; if(index_midi_mute_on_lfo==1){is_raccrochage_midi_remote[vfader]=1;} } else {lfo_mode_is[vfader]=0;} lfo_cycle_is_on[vfader]=0; previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 2://fader down if(digital_data_from_arduino[p]==1) { vfader=(arduino_digital_function_input[p][1]-1); start_time_for_delays[vfader]=actual_time; if(lfo_mode_is[vfader]!=2)//down { lfo_mode_is[vfader]=2; faders_in_float[vfader]=Fader[vfader]; if(index_midi_mute_on_lfo==1){is_raccrochage_midi_remote[vfader]=1;} } else {lfo_mode_is[vfader]=0;} lfo_cycle_is_on[vfader]=0; previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 3://Fader saw if(digital_data_from_arduino[p]==1) { vfader=(arduino_digital_function_input[p][1]-1); start_time_for_delays[vfader]=actual_time; faders_in_float[vfader]=Fader[vfader]; if(lfo_cycle_is_on[vfader]==0)// { lfo_cycle_is_on[vfader]=1; lfo_mode_is[vfader]=0; lfo_running_is_upward[vfader]=1; if(index_midi_mute_on_lfo==1){is_raccrochage_midi_remote[vfader]=1;} } else if(lfo_cycle_is_on[vfader]==1) { lfo_cycle_is_on[vfader]=0; } previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 4://Fader: ToPREVDock if(digital_data_from_arduino[p]==1) { vfader=(arduino_digital_function_input[p][1]-1); if (lfo_do_next_step[vfader][0]==0) {lfo_do_next_step[vfader][0]=1;lfo_do_next_step[vfader][1]=0;} else if (lfo_do_next_step[vfader][0]==1) {lfo_do_next_step[vfader][0]=0; } previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 5://Fader: ToNEXTDock if(digital_data_from_arduino[p]==1) { vfader=(arduino_digital_function_input[p][1]-1); if (lfo_do_next_step[vfader][1]==0) {lfo_do_next_step[vfader][1]=1;lfo_do_next_step[vfader][0]=0; ;} else if (lfo_do_next_step[vfader][1]==1) {lfo_do_next_step[vfader][1]=0; } previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 6://Fader: Up/Down if(digital_data_from_arduino[p]==1) { vfader=(arduino_digital_function_input[p][1]-1); lfo_cycle_steps[vfader]= toggle(lfo_cycle_steps[vfader]); previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 7://Fader: LOCK if(digital_data_from_arduino[p]==1) //si appuyé { vfader=(arduino_digital_function_input[p][1]-1); switch(FaderLocked[vfader]) { case 0: FaderLocked[vfader]=1; StateOfFaderBeforeLock[vfader]=Fader[vfader]; if(StateOfFaderBeforeLock[vfader]==255){LockFader_is_FullLevel[vfader]=1;} else if(StateOfFaderBeforeLock[vfader]<255){LockFader_is_FullLevel[vfader]=0;} sprintf(string_Last_Order,">> LOCKED Fader %d",vfader+1); if(LockFader_is_FullLevel[vfader]==0)//quand mis en lock et pas full level rajout 0.7.6 { lfo_mode_is[vfader]=0; lfo_cycle_is_on[vfader]=0; } break; case 1: FaderLocked[vfader]=0; //remise à plat du niveau Fader[vfader]=(unsigned char)((((float)(StateOfFaderBeforeLock[vfader]))/255)*locklevel); midi_levels[vfader]=(int)(((float)Fader[vfader])/2); sprintf(string_Last_Order,">> UNLOCKED Fader %d",vfader+1); break; } previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 8://FLASH vfader=(arduino_digital_function_input[p][1]-1); FaderIsFlash[vfader]=digital_data_from_arduino[p]; break; case 9://Fader: All at 0 if(digital_data_from_arduino[p]==1) //si appuyé { vfader=(arduino_digital_function_input[p][1]-1); Fader[vfader]=0; midi_levels[vfader]=0; index_send_midi_out[vfader]=1; lfo_speed[vfader]=64; midi_levels[196+p]=64; index_send_midi_out[196+p]=1; FaderLocked[vfader]=0; lfo_mode_is[vfader]=0;//no lfo lfo_cycle_is_on[vfader]=0;//saw lfo_cycle_steps[vfader]=0; lfo_do_next_step[vfader][0]=0; lfo_do_next_step[vfader][1]=0; for(int d=0;d<6;d++) { is_dock_for_lfo_selected[vfader][d]=0; } previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 10://Fader: L/Unloop dock if(digital_data_from_arduino[p]==1) //si appuyé { vfader=(arduino_digital_function_input[p][1]-1); is_dock_for_lfo_selected[vfader][(dock_used_by_fader_is[vfader])]=toggle(is_dock_for_lfo_selected[vfader][(dock_used_by_fader_is[vfader])]); } digital_data_from_arduino[p]=toggle(digital_data_from_arduino[p]); break; case 11://Fader: L/Unloop all if(digital_data_from_arduino[p]==1) //si appuyé { vfader=(arduino_digital_function_input[p][1]-1); for(int d=0;d<6;d++) { is_dock_for_lfo_selected[vfader][d]=toggle(is_dock_for_lfo_selected[vfader][d]); } previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 12://Seq: GO if(digital_data_from_arduino[p]==1) //si appuyé { do_go_function(); do_send_bang(); previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]);//pour ne pas faire un flicker sur le go/pause/go } break; case 13://Seq: GO BACK if(digital_data_from_arduino[p]==1) //si appuyé { do_go_back_function(); int banger_back_is=Banger_Memoire[position_preset]-1; do_go_back_bang(banger_back_is); previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]); } break; case 14://Seq: JUMP if(digital_data_from_arduino[p]==1) //si appuyé { do_double_go_function(); do_send_bang(); previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]); } break; case 15://Seq: SHIFT-W if(digital_data_from_arduino[p]==1) //si appuyé { index_go=0;index_pause=0; index_go_back=0; detect_mem_preset_previous(); refresh_mem_onpreset(position_preset); niveauX2=0; previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]); someone_changed_in_sequences=1;//icat } break; case 16://Seq: SHIFT-X if(digital_data_from_arduino[p]==1) //si appuyé { index_go=0;index_pause=0; index_go_back=0; detect_next_preset(); refresh_mem_onpreset(position_preset); niveauX2=0; previous_digital_data_from_arduino[p]=toggle(previous_digital_data_from_arduino[p]); someone_changed_in_sequences=1;//icat } break; case 17:////As Key-On CH0 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,0,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,0,arduino_digital_function_input[p][1],0); } break; case 18:////As Key-On CH1 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,1,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,1,arduino_digital_function_input[p][1],0); } break; case 19:////As Key-On CH2 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,2,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,3,arduino_digital_function_input[p][1],0); } break; case 20:////As Key-On CH3 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,3,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,4,arduino_digital_function_input[p][1],0); } break; case 21:////As Key-On CH4 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,4,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,4,arduino_digital_function_input[p][1],0); } break; case 22:////As Key-On CH5 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,5,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,5,arduino_digital_function_input[p][1],0); } break; case 23:////As Key-On CH6 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,6,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,6,arduino_digital_function_input[p][1],0); } break; case 24:////As Key-On CH7 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,7,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,7,arduino_digital_function_input[p][1],0); } break; case 25:////As Key-On CH8 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,8,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,8,arduino_digital_function_input[p][1],0); } break; case 26:////As Key-On CH9 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,9,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,9,arduino_digital_function_input[p][1],0); } break; case 27:////As Key-On CH10 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,10,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,10,arduino_digital_function_input[p][1],0); } break; case 28:////As Key-On CH11 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,11,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,11,arduino_digital_function_input[p][1],0); } break; case 29:////As Key-On CH12 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,12,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,12,arduino_digital_function_input[p][1],0); } break; case 30:////As Key-On CH13 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,13,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,13,arduino_digital_function_input[p][1],0); } break; case 31:////As Key-On CH14 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,14,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,14,arduino_digital_function_input[p][1],0); } break; case 32:////As Key-On CH15 P: if(digital_data_from_arduino[p]==1) //si appuyé { simulate_midi(1,15,arduino_digital_function_input[p][1],127); sprintf (my_midi_string, "Arduino Chan:%-2d Pitch:%-2d Vel:%-2d Typ: %s", ischan,ispitch,isvel, "Key-On"); simulate_midi(2,15,arduino_digital_function_input[p][1],0); } break; default: break; } } } return(0); }
int do_logical_x1_x2(int x_seq,int y_seq) { /////////////////////////////////////CROSSFADE MANUEL///////////////////////////// if(mouse_y>=y_seq+60 && mouse_y<=y_seq+100+255)//-20 +20 { ///////////////////X/////////////////////////////////////////////////////////// if(mouse_x> x_seq+480 && mouse_x< x_seq+480+45) { switch(miditable[0][491]) { //midi report case 0: sprintf(thetypinfo,"Note"); break; case 1: sprintf(thetypinfo,"Key On"); break; case 2: sprintf(thetypinfo,"Key Off"); break; case 4: sprintf(thetypinfo,"Ctrl Change"); break; } sprintf(string_last_midi_id,"STAGE Fader is Ch: %d Pitch: %d Typ: %s" , miditable[1][491],miditable[2][491],thetypinfo); if( Midi_Faders_Affectation_Type!=0)//config midi { attribute_midi_solo_affectation(491,Midi_Faders_Affectation_Mode); mouse_released=1; } else { set_mouse_range(x_seq+480, y_seq+60, x_seq+480+45, y_seq+100+255);//pour pas deborder index_go=0; index_go_back=0; index_pause=0; niveauX1=(y_seq+80+255)-mouse_y; if(niveauX1<0){niveauX1=0;} if(niveauX1>255){niveauX1=255;} if(midi_send_out[491]==1){index_send_midi_out[491]=1;} if(index_x1_x2_together==1) { if(((255.0-ratio_X1X2_together)/255)==1.0){niveauX2=(255-niveauX1);} else {niveauX2=remapX2[(255-niveauX1)];} if(niveauX2<0){niveauX2=0;} if(niveauX2>255){niveauX2=255;} if(midi_send_out[492]==1){index_send_midi_out[492]=1;} } } } ////////////////////X2//////////////////////////////////////////////////////////////// if(mouse_x> x_seq+580 && mouse_x< x_seq+580+45) { //midi report switch(miditable[0][492]) { //midi report case 0: sprintf(thetypinfo,"Note"); break; case 1: sprintf(thetypinfo,"Key On"); break; case 2: sprintf(thetypinfo,"Key Off"); break; case 4: sprintf(thetypinfo,"Ctrl Change"); break; } sprintf(string_last_midi_id,"Preset Fader is Ch: %d Pitch: %d Typ: %s" , miditable[1][492],miditable[2][492],thetypinfo); if( Midi_Faders_Affectation_Type!=0)//config midi { attribute_midi_solo_affectation(492,Midi_Faders_Affectation_Mode); mouse_released=1; } else { set_mouse_range(x_seq+580, y_seq+60, x_seq+580+45, y_seq+100+255);//pour pas deborder index_go=0; index_go_back=0; index_pause=0; niveauX2=(-1)*(mouse_y-(y_seq+80+255)); if(niveauX2<0){niveauX2=0;} if(niveauX2>255){niveauX2=255;} if(midi_send_out[492]==1){index_send_midi_out[492]=1;} if(index_x1_x2_together==1) { if(((255.0-ratio_X1X2_together)/255)==1.0){niveauX1=(255-niveauX2);} else { niveauX1=255-remapX1[niveauX2]; } if(niveauX1<0){niveauX1=0;} if(niveauX1>255){niveauX1=255;} if (niveauX2==255){niveauX1=0;}//report à zero if(midi_send_out[491]==1){index_send_midi_out[491]=1;} } } } if(niveauX1==0 && niveauX2==255) { index_go=0; index_go_back=0; index_pause=0; next_mem_crossfade_finished(position_preset); index_x1_x2_together=1; mouse_released=1; } } raccrochage_midi_logical_vertical_dmx ( x_seq+480, (y_seq+80), 491, 45, 255);//X1 raccrochage_midi_logical_vertical_dmx ( x_seq+580, (y_seq+80), 492, 45, 255);//X2 séparés car inversés pour l'affichage etc //TOGETHER if(mouse_x> x_seq+535 && mouse_x< x_seq+535+40 && mouse_y>=y_seq+80 && mouse_y<=y_seq+80+255) { ratio_X1X2_together=(int)((mouse_y)-(y_seq+80+255)); float fract_remplaX1=(255.0-ratio_X1X2_together)/255; float remapis=255.0; float fract_remplaX2=(255.0-ratio_X1X2_together)/255; for(int mop=255;mop>=0;mop--) { remapis-=fract_remplaX1; if (remapis>255){remapX1[mop]=255;} else if(remapis<0){remapX1[mop]=0;} else { remapX1[mop]=(int)(remapis); } } for(int mop=0;mop<256;mop++) { remapis+=fract_remplaX2; if (remapis>255){remapX2[mop]=255;} else if(remapis<0){remapX2[mop]=0;} else {remapX2[mop]=(int)(remapis); } } } if(mouse_x> x_seq+540 && mouse_x< x_seq+540+50 && mouse_y>y_seq+50 && mouse_y<y_seq+50+20) { if(index_x1_x2_together==0){index_x1_x2_together=1;} else {index_x1_x2_together=0;} mouse_released=1; } if(mouse_x>x_seq+540+14-20 && mouse_x<x_seq+540+14+20 && mouse_y>y_seq+80+255+40-20 && mouse_y<y_seq+80+255+40+20) { //midi report switch(miditable[0][495]) { //midi report case 0: sprintf(thetypinfo,"Note"); break; case 1: sprintf(thetypinfo,"Key On"); break; case 2: sprintf(thetypinfo,"Key Off"); break; case 4: sprintf(thetypinfo,"Ctrl Change"); break; } sprintf(string_last_midi_id,"GO is Ch: %d Pitch: %d Typ: %s" , miditable[1][495],miditable[2][495],thetypinfo); if(Midi_Faders_Affectation_Type!=0)//config midi { attribute_midi_solo_affectation(495,Midi_Faders_Affectation_Mode); mouse_released=1; } else { do_go_function(); if(index_go==1 && index_pause==0) { do_send_bang(); } mouse_released=1; } } //////////////go back if(mouse_x>x_seq+490+14-20 && mouse_x<x_seq+490+14+20 && mouse_y>y_seq+80+255+40-20 && mouse_y<y_seq+80+255+40+20) { //midi report switch(miditable[0][494]) { //midi report case 0: sprintf(thetypinfo,"Note"); break; case 1: sprintf(thetypinfo,"Key On"); break; case 2: sprintf(thetypinfo,"Key Off"); break; case 4: sprintf(thetypinfo,"Ctrl Change"); break; } sprintf(string_last_midi_id,"GO BACK is Ch: %d Pitch: %d Typ: %s" , miditable[1][494],miditable[2][494],thetypinfo); if( Midi_Faders_Affectation_Type!=0)//config midi { attribute_midi_solo_affectation(494,Midi_Faders_Affectation_Mode); mouse_released=1; } else { do_go_back_function(); int banger_back_is=Banger_Memoire[position_preset]-1; do_go_back_bang(banger_back_is); mouse_released=1; } } //////////////double go if(mouse_x>x_seq+590+14-20 && mouse_x<x_seq+590+14+20 && mouse_y>y_seq+80+255+40-20 && mouse_y<y_seq+80+255+40+20) { //midi report switch(miditable[0][496]) { //midi report case 0: sprintf(thetypinfo,"Note"); break; case 1: sprintf(thetypinfo,"Key On"); break; case 2: sprintf(thetypinfo,"Key Off"); break; case 4: sprintf(thetypinfo,"Ctrl Change"); break; } sprintf(string_last_midi_id,"GO BACK is Ch: %d Pitch: %d Typ: %s" , miditable[1][496],miditable[2][496],thetypinfo); if( Midi_Faders_Affectation_Type!=0)//config midi { attribute_midi_solo_affectation(496,Midi_Faders_Affectation_Mode); mouse_released=1; } else { do_double_go_function(); if(index_go==1 && index_pause==0) { do_send_bang(); } mouse_released=1; } } /////////////////////ACCELEROMETRE if(mouse_x>=x_seq+490 && mouse_x<=x_seq+490+127 && mouse_y>y_seq+405 && mouse_y<y_seq+405+(45/2)) { switch(miditable[0][493]) { //midi report case 0: sprintf(thetypinfo,"Note"); break; case 1: sprintf(thetypinfo,"Key On"); break; case 2: sprintf(thetypinfo,"Key Off"); break; case 4: sprintf(thetypinfo,"Ctrl Change"); break; } sprintf(string_last_midi_id,"SpeedFader is Ch: %d Pitch: %d Typ: %s" , miditable[1][493],miditable[2][493],thetypinfo); if(Midi_Faders_Affectation_Type!=0)//config midi { attribute_midi_solo_affectation(493,Midi_Faders_Affectation_Mode); mouse_released=1; } else { set_mouse_range(x_seq+490, y_seq+405, x_seq+490+127, y_seq+405+(45/2));//pour pas deborder crossfade_speed=mouse_x-(x_seq+490); if(crossfade_speed<0){crossfade_speed=0;} if(crossfade_speed>127){crossfade_speed=127;} //integration gridplayer 1 if(index_link_speed_crossfade_to_gpl1==1) { grid_crossfade_speed[0]=crossfade_speed; midi_levels[1508]=crossfade_speed; gridder_prepare_cross(0,index_grider_selected[0],index_grider_step_is[0]); } if(midi_send_out[493]==1){index_send_midi_out[493]=1;} prepare_crossfade(); //ventilation_temps_vers_char();//icat someone_changed_in_time_sequences=1;//icat } } //midi out des x1 et x2 if(mouse_x> x_seq+655-10 && mouse_x< x_seq+655+10 && mouse_y>y_seq+340-10 && mouse_y<y_seq+340+10) { if(midi_send_out[491]==0){midi_send_out[491]=1; } else if(midi_send_out[491]==1){midi_send_out[491]=0; } //report pour x2 et speed crossfade midi_send_out[492]=midi_send_out[491]; mouse_released=1; } //MIDI OUT DU SPEED if(mouse_x> x_seq+655-10 && mouse_x< x_seq+655+10 && mouse_y>y_seq+340-10+85 && mouse_y<y_seq+340+10+85) { if(midi_send_out[493]==0){midi_send_out[493]=1; } else if(midi_send_out[493]==1){midi_send_out[493]=0; } mouse_released=1; } raccrochage_midi_logical_horizontal ( x_seq+490, y_seq+405, 493,127,13); //auto reset on link if(mouse_x> x_seq+548 && mouse_x< x_seq+548+15 && mouse_y>y_seq+435 && mouse_y<y_seq+435+15) { if( Midi_Faders_Affectation_Type!=0) { attribute_midi_solo_affectation(1591,Midi_Faders_Affectation_Mode); } else { auto_reset_crossfade_speed_on_link=toggle(auto_reset_crossfade_speed_on_link); } mouse_released=1; } return(0); }