def defile_simple_block(): t_tot = duration/len(blocks) t_center = t_tot/2 t_in = t_tot/4 t_out = t_tot/4 grid.set_margin(20) grid.set_num_box(5) y0=1/8 size = 2/3 x =1/6 x0= 1 x1=-2.1/3 for block in blocks : if(isinstance(block, Te) or isinstance(block, L_inverse)): y =y0-size/3 else : y=y0 block.prop_move(y,x0,size) block.prop_move(y,x,size, t_in) incr_clock(t_in+ t_center) block.prop_move(y, x1, size, t_out) incr_clock(t_out) nous = Line([Camille_trombone, Srevol_tuba_recadre]) nous.inside(grid).prop_move(-1/3,1/6,2/3) nous.prop_move(1/8,1/6,2/3,t_in)
def move_down(self): grid = self.get_top_grid() min_distance = grid.num_box_line max_line = 0 for child in self.children: child_abs_line, child_abs_col, child_abs_size = grid.to_line_and_cols( *child.get_absolute_coordinates()) max_line = max(max_line, child_abs_line) for player in get_current_resource().players_registry.values(): if (player.parent != self and not player.hidden): player_line, player_col, player_size = grid.to_line_and_cols( *player.get_absolute_coordinates()) if (player_col == child_abs_col and player_line > child_abs_line): min_distance = min( min_distance, player_line - (child_abs_line + child_abs_size)) if (min_distance == grid.num_box_line): min_distance = grid.num_box_line - (max_line) self_abs_x, self_abs_y, self_abs_size = self.get_absolute_coordinates() move_down_time = min_distance / MOVE_SPEED abs_distance = min_distance / grid.num_box_line self.inside(grid).prop_move(self_abs_y + abs_distance, self_abs_x, self_abs_size, move_down_time) incr_clock(move_down_time)
def check_lines(grid): first_full_line = 0 lines_to_remove = [] for line_index in range(grid.num_box_line): line = grid.get_line(line_index + 1) if (len(line.children) == grid.num_box_col): if (first_full_line == 0): first_full_line = line_index + 1 lines_to_remove.append(line) if (len(lines_to_remove) > 0): incr_clock(1) for line in lines_to_remove: line.hide() incr_clock(0.5) for line in lines_to_remove: line.show() incr_clock(0.5) for line in lines_to_remove: line.hide() incr_clock(0.1) box = grid.get_box(1, 1, first_full_line, grid.num_box_col) t_move = len(lines_to_remove) / MOVE_SPEED box.goto(1 + len(lines_to_remove), 1, t_move) incr_clock(t_move)
def beat3(self, ratio, freq, duration): nb_beats = int(freq * duration) period = 1 / freq beat_index = 0 while (beat_index < nb_beats): self.expand(ratio, expand_children=False, duration=period / 3) incr_clock(period / 2) self.expand(1 / ratio, expand_children=False, duration=period / 3) incr_clock(period / 2) beat_index += 1
def rotate(container, iteration_par_second, duration): iteration_num = iteration_par_second * duration iteration_duration = duration / iteration_num col_size = container.num_box_line - 1 line_size = container.num_box_col - 1 for _ in range(iteration_num): col_gauche = container.get_box(1, 1, col_size, 1) ligne_bas = container.get_box(col_size + 1, 1, 1, line_size) col_droite = container.get_box(2, line_size + 1, col_size, 1) ligne_haut = container.get_box(1, 2, 1, line_size) col_gauche.goto(2, 1, iteration_duration) ligne_bas.goto(col_size + 1, 2, iteration_duration) col_droite.goto(1, line_size + 1, iteration_duration) ligne_haut.goto(1, 1, iteration_duration) incr_clock(iteration_duration)
def play(self, moves): previous_line, previous_col, switch = moves[0] self.inside(self.get_top_grid()).goto(previous_line, previous_col) if (len(moves) > 1): for line, col, switch in moves[1:]: distance = math.sqrt((line - previous_line)**2 + (col - previous_col)**2) self.goto(line, col, distance / MOVE_SPEED) incr_clock(distance / (MOVE_SPEED)) print(self.parent) if (switch): self.switch() previous_line = line self.move_down() print(self.parent)
def spectrum(columns, lines, rate, duration): cols = [] mus = get_current_resource().players_registry grid = get_current_resource().grid remaining_players = list(mus.values()) for col_num in range(columns): col = SepctrumCol([], lines) remaining_players = col.fill(remaining_players) col.inside(grid).goto(2, col_num + 1) cols.append(col) col.inside(grid).goto(3, col_num + 1) audio_data = get_audio_data(columns, rate, duration) #print(audio_data.shape) #print(grid) for index in range(audio_data.shape[0]): print(audio_data[index, :]) for col_index in range(columns): cols[col_index].set_level(audio_data[index, col_index]) incr_clock(rate)
def defile_3_blocks(): minus_1 = None one = None center = None two = None plus_1 = None size = len(blocks) for index in range (size+4) : if (index < size): minus_1 = blocks[index] else : minus_1 = None if (index >0 and index < size+1): one = blocks[index-1] else : one = None if (index >1 and index < size+2): center = blocks[index-2] else: center = None if (index >2 and index < size +3): two = blocks[index-3] else : two = None if (index >3): plus_1 = blocks[index-4] else : plus_1 =None if (minus_1 is not None): minus_1.inside(grid).prop_move(*get_cell_position(0.6,4)) if (one is not None): one.inside(grid).prop_move(*get_cell_position(0.6,3),shift_duration) if (center is not None ): center.inside(grid).prop_move(*get_cell_position(1.2,2),shift_duration) #center.expand(1/0.6, shift_duration) if (two is not None): two.inside(grid).prop_move(*get_cell_position(0.6,1),shift_duration) if (plus_1 is not None): plus_1.inside(grid).prop_move(*get_cell_position(0.6,0),shift_duration) if (index > 0): incr_clock(2*shift_duration) else : incr_clock(shift_duration) # if (one is not None): # one.switch() # if (center is not None): # center.switch() # if (two is not None): # two.switch() print(grid)
def i_love_emgb(grid): clock(start_time_string) grid.set_num_box(15) grid.set_margin(20) Camille_bonus_recadre.hide() nb_mesure = 12 duration = (end_time-start_time).total_seconds() #deux mesures par image image_duration = 2*duration /nb_mesure temps_duration = duration/(4*nb_mesure) clock(start_time_string) ######### I ################# i = I() i_players = get_all_players() i.inside(grid).move(2,6,4) remaing_players =i.fill(i_players, temps_duration) hide_all(remaing_players) print(grid) incr_clock(image_duration) grid.set_margin(0) coeur_players = get_all_players() random.shuffle(coeur_players) coeur = Coeur() coeur.inside(grid).prop_move(0.495,0.495, 0.01) remaing_players=coeur.fill(coeur_players) coeur.inside(grid).prop_move(1/15,1/15+(13-9.1)/(2*13), 9.1/15,temps_duration) hide_all(remaing_players) print(grid) incr_clock(image_duration) grid.set_margin(20) e = E() e_players = get_all_players() random.shuffle(e_players) e.inside(grid).move(2,6,5 ) remaing_players = e.fill(e_players, temps_duration) hide_all(remaing_players) incr_clock(image_duration) #hide_all(remaing_players) print(grid) m_players = get_all_players() random.shuffle(e_players) m = M() m.inside(grid).move(2,4,9) remaing_players=m.fill(m_players, temps_duration) hide_all(remaing_players) incr_clock(image_duration) print(grid) g_players = get_all_players() random.shuffle(g_players) g =G() g.inside(grid).move(2,4.5,6) remaing_players=g.fill(g_players, temps_duration) hide_all(remaing_players) incr_clock(image_duration) print(grid) b_players = get_all_players() random.shuffle(b_players) #g_players.extend(m.get_players()) b =B() b.inside(grid).move(2,4.5,6) remaing_players=b.fill(b_players, temps_duration) hide_all(remaing_players) incr_clock(image_duration) print(grid) grid.set_margin(0) grid.set_num_box(7) players = get_all_players() players.remove(Natacha_clarinette) random.Random(6).shuffle(players) col_gauche = Box([],5,2) col_gauche.inside(grid).move(1,1,2) ligne_bas = Box([],2,5) ligne_bas.inside(grid).move(6,1, 5) col_droite = Box([],5,2) col_droite.inside(grid).move(3,6, 2) ligne_haut= Box([],2,5) ligne_haut.inside(grid).move(1,3, 5) players = col_gauche.fill(players,0.2) players = ligne_bas.fill(players,0.2) players = col_droite.fill(players,0.2) players = ligne_haut.fill(players,0.2) Natacha_clarinette.inside(grid).move(3,3,3, 0.2) hide_all(players) JeanJacques_chef.hide() JeanJacques_chef_lacheprise.hide() print(grid) clock("00:02:18:70") current_time = get_time_from_user_string(get_clock()) fin_tour = get_time_from_user_string("00:02:21:06") duration = ((fin_tour-current_time) - get_frame_duration()).total_seconds() col_gauche.inside(grid).goto(-5,1,duration) ligne_bas.inside(grid).goto(6,-5,duration) col_droite.inside(grid).goto(9,6,duration) ligne_haut.inside(grid).goto(1,9,duration)
def play_tetris(grid): start_time_string = "00:02:21:16" end_time_string = "00:03:14:00" start_time = get_time_from_user_string(start_time_string) end_time = get_time_from_user_string(end_time_string) grid.set_margin(20) clock(start_time_string) hide_all() grid.set_num_box(7) grid.set_margin(20) players = get_all_players() players.remove(Serge_trompette) init_pos = (-3,3,False) te = Te() remaining_players = te.fill(players) te.play( [init_pos, (2,3, True), (4,1, True) ]) z = Z() remaining_players = z.fill(remaining_players) z.play( [init_pos, (4,3, False), ]) s= S() remaining_players = s.fill(remaining_players) s.play( [init_pos, (3,4, True), ]) carre = Carre() remaining_players = carre.fill(remaining_players) carre.play( [init_pos, (3,6, False) ]) barre = Barre() remaining_players = barre.fill(remaining_players) barre.play( [init_pos, (1,1, True) ]) l = L() remaining_players = l.fill(remaining_players) l.play( [init_pos, (0,1, True), ]) z= Z() remaining_players = z.fill(remaining_players) z.play( [init_pos, (3,5, False) ]) te = Te() remaining_players = te.fill(remaining_players) te.play( [init_pos, (0,5, True), (1,6, False) ]) l = L() remaining_players = l.fill(remaining_players) l.play( [(-3,3,True), (-3,3,True), (-3,3,True) ]) barre = Barre() remaining_players = barre.fill(remaining_players) barre.play( [init_pos, (0,1, False) ]) print('----------------------------') print('Fin Tetris') print(grid) clock("00:02:51:79") last = Line([],2) remaining_players = last.fill(remaining_players) last.inside(grid).goto(0,5) last.goto(2,5,2.87) incr_clock(2.87) grid.tag('fin tetris') print(grid) players = get_all_players() players.remove(Serge_trompette) random.Random(4).shuffle(players) grid.set_num_box(7) grid.set_margin(0) col_gauche = Box([],5,2) col_gauche.inside(grid).goto(1,1) ligne_bas = Box([],2,5) ligne_bas.inside(grid).goto(6,1) col_droite = Box([],5,2) col_droite.inside(grid).goto(3,6) ligne_haut= Box([],2,5) ligne_haut.inside(grid).goto(1,3) hide_all() remaining_players= col_gauche.fill(players, 0.5) remaining_players= ligne_bas.fill(remaining_players, 0.5) remaining_players= col_droite.fill(remaining_players, 0.5) remaining_players= ligne_haut.fill(remaining_players, 0.5) Laurence_flute.swap( Chloe_saxophone) # @UndefinedVariable Chloe_saxophone.inside(grid).move(3,3,3) # @UndefinedVariable box_chloe = grid.get_box(1,1,7,7) #box_chloe.expand(0.5, expand_children = True) #box_chloe.expand(2, expand_children = False) Chloe_saxophone.inside(grid).move(3,3,3) # @UndefinedVariable sub_box = grid.get_box(2,2,5,5) time= get_clock() rotate(grid, 0.3,7.5) clock(time) rotate_clock(sub_box,0.3,7.5 ) grid.set_margin(0) clarinettes = clar.all.copy() clarinettes.remove(Cecile_clarinette) flute_et_hb = fl.all flute_et_hb.extend(hb.all) grid.set_num_box(8) clock("00:03:03:30") hide_all() box_clar = Box(clarinettes) box_clar.auto_layout() box_clar.inside(grid).move(1,1,4) clock("00:03:04:20") box_clar.hide() box_flute_hb = Box(flute_et_hb) box_flute_hb.auto_layout() box_flute_hb.inside(grid).move(5,5,4) clock("00:03:04:70") box_all = Box([],4,4) clarinettes.extend(flute_et_hb) box_all.inside(grid).move(1,1,8) remaining_players=box_all.fill(clarinettes) hide_all(remaining_players) clock("00:03:05:20") box_all.hide() grid.set_num_box(2) Serge_baryton.inside(grid).move(1,1,1) # @UndefinedVariable Cecile_clarinette.inside(grid).move(2,2,1) # @UndefinedVariable Svoisine_tuba.inside(grid).move(1,2,1) # @UndefinedVariable Srevol_tuba_recadre.inside(grid).move(2,1,1) # @UndefinedVariable grid.set_num_box(9) previous_player = None line_num =1 col_num =1 start_time_string = "00:03:07:00" start_time = get_time_from_user_string(start_time_string) end_time_string = "00:03:13:00" end_time = get_time_from_user_string(end_time_string) duration = (end_time-start_time).total_seconds() #deux mesures par image image_duration = duration/42 clock(start_time_string) grid.to_tag('fin tetris') box1 = grid.get_box(2,1, 7,7) new_box = Box([], 6,7) for line in range(6) : for col in range (7): player = box1.get_player(line+1, col+1) player.inside(new_box).move(line+1, col+1, 1) #grid.tag('fin tetris') box1=new_box grid.set_num_box(9) box1.inside(grid).move(1.5,2, 7, 0.2 ) incr_clock(0.2) print(len(box1.children)) ratio = 1+2/7 box1.expand(ratio, expand_children = False) rel_x, rel_y,rel_size = box1.get_absolute_coordinates() rel_x=rel_x-(rel_size/2)*(1-ratio)/8 box1.prop_move(rel_y, rel_x, rel_size) next_player = box1.get_player(line_num, col_num) next_player.expand(1+1/7 ,0.5) incr_clock(image_duration) line_num, col_num = get_next_player_index(box1, line_num, col_num) while (line_num is not None): previous_player = next_player; next_player = box1.get_player(line_num, col_num) previous_player.expand(1/(1+2/7), image_duration) next_player.expand(1+2/7, image_duration) incr_clock(image_duration) line_num, col_num = get_next_player_index(box1, line_num, col_num) clock("00:03:13:20") JeanJacques_chef_lacheprise.inside(grid).move(4,4,3,0.4) # @UndefinedVariable grid.set_num_box(15) grid.set_margin(0) box1.expand(10, expand_children = False, duration=1) incr_clock(1.7) JeanJacques_chef_lacheprise.hide() # @UndefinedVariable JeanJacques_chef.hide() # @UndefinedVariable coeur_players = get_all_players() coeur_players.remove(Serge_trompette) coeur_players.remove(Bidou_euphonium) random.Random(1).shuffle(coeur_players) coeur = Coeur() coeur.inside(grid).prop_move(0.495,0.495, 0.01) remaing_players=coeur.fill(coeur_players) coeur.get_player(4,4).swap(Veronique_hautbois) coeur.inside(grid).prop_move(1/15,1/20+(13-9.1)/(2*13), 9.1/15,1) clock("00:03:26:22") players.remove(Veronique_hautbois) grid.set_num_box(3) Veronique_hautbois.inside(grid).move(2,2,1,2) # @UndefinedVariable JeanSeb_percu.hide() # @UndefinedVariable incr_clock(0.5) Benoit_flute.hide() # @UndefinedVariable incr_clock(0.5) Serge_euphonium.hide() # @UndefinedVariable incr_clock(0.5) Serge_baryton.hide() # @UndefinedVariable