yoyolicoris commited on
Commit
7c9157c
·
1 Parent(s): 0e6b4b2

refactor: define common steps into one function

Browse files
Files changed (1) hide show
  1. app.py +21 -17
app.py CHANGED
@@ -722,16 +722,19 @@ with gr.Blocks() as demo:
722
 
723
  return fx
724
 
725
- common_steps = chain_functions(
 
 
 
 
726
  lambda x, *all_s: assign_fx_params(vec2fx(x), *all_s),
727
- lambda fx: (fx2x(fx), fx),
728
- lambda x, fx: (x2z(x), x, fx),
729
  )
730
 
731
  for s in peq_sliders:
732
  s.input(
733
  chain_functions(
734
- lambda x, i, *args: common_steps(x, *args) + (i,),
735
  lambda z, x, fx, extra_pc_idx: [z, x]
736
  + [model2json(fx), plot_eq(fx)]
737
  + update_pc(z, extra_pc_idx),
@@ -743,7 +746,7 @@ with gr.Blocks() as demo:
743
  for s, update_plot in zip(cmp_sliders, cmp_update_plot_flag):
744
  s.input(
745
  chain_functions(
746
- lambda x, i, *args: common_steps(x, *args) + (i,),
747
  lambda z, x, fx, e_pc_i, update_plot=update_plot: [z, x]
748
  + [model2json(fx)]
749
  + ([plot_comp(fx)] if update_plot else [])
@@ -758,7 +761,7 @@ with gr.Blocks() as demo:
758
  for s, update_plot in zip(delay_sliders, delay_update_plot_flag):
759
  s.input(
760
  chain_functions(
761
- lambda x, i, *args: common_steps(x, *args) + (i,),
762
  lambda z, x, fx, e_pc_i, update_plot=update_plot: (
763
  [z, x]
764
  + [model2json(fx)]
@@ -775,7 +778,7 @@ with gr.Blocks() as demo:
775
 
776
  reverb_send.input(
777
  chain_functions(
778
- lambda x, i, *args: common_steps(x, *args) + (i,),
779
  lambda z, x, fx, e_pc_i: [z, x] + [model2json(fx)] + update_pc(z, e_pc_i),
780
  ),
781
  inputs=[fx_params, extra_pc_dropdown] + all_effect_sliders,
@@ -889,11 +892,16 @@ with gr.Blocks() as demo:
889
  update_pc_outputs + update_fx_outputs + update_plots_outputs + [json_output]
890
  )
891
 
 
 
 
 
892
  random_button.click(
893
  chain_functions(
894
- lambda i: (torch.randn_like(mean).clip(SLIDER_MIN, SLIDER_MAX), i),
895
- lambda z, i: (z, z2x(z), i),
896
- lambda z, x, i: (z, x, vec2fx(x), i),
 
897
  lambda z, x, fx, i: [z, x] + update_all(z, fx, i),
898
  ),
899
  inputs=extra_pc_dropdown,
@@ -901,9 +909,7 @@ with gr.Blocks() as demo:
901
  )
902
  reset_button.click(
903
  chain_functions(
904
- lambda: torch.zeros_like(mean),
905
- lambda z: (z, z2x(z)),
906
- lambda z, x: (z, x, vec2fx(x)),
907
  lambda z, x, fx: [z, x] + update_all(z, fx, NUMBER_OF_PCS),
908
  ),
909
  outputs=[z, fx_params] + update_all_outputs,
@@ -917,8 +923,7 @@ with gr.Blocks() as demo:
917
  slider.input(
918
  chain_functions(
919
  lambda z, s, i=i: update_z(z, s, i),
920
- lambda z: (z, z2x(z)),
921
- lambda z, x: (z, x, vec2fx(x)),
922
  lambda z, x, fx: [z, x, model2json(fx)]
923
  + update_fx(fx)
924
  + update_plots(fx),
@@ -931,8 +936,7 @@ with gr.Blocks() as demo:
931
  extra_slider.input(
932
  chain_functions(
933
  lambda z, s, i: update_z(z, s, i - 1),
934
- lambda z: (z, z2x(z)),
935
- lambda z, x: (z, x, vec2fx(x)),
936
  lambda z, x, fx: [z, x, model2json(fx)] + update_fx(fx) + update_plots(fx),
937
  ),
938
  inputs=[z, extra_slider, extra_pc_dropdown],
 
722
 
723
  return fx
724
 
725
+ accum_func_results = lambda init, *fs: reduce(
726
+ lambda x, f: (f(x[0]), *x), fs, (init,)
727
+ )
728
+
729
+ x2z_common_steps = chain_functions(
730
  lambda x, *all_s: assign_fx_params(vec2fx(x), *all_s),
731
+ lambda fx: accum_func_results(fx, fx2x, x2z),
 
732
  )
733
 
734
  for s in peq_sliders:
735
  s.input(
736
  chain_functions(
737
+ lambda x, i, *args: x2z_common_steps(x, *args) + (i,),
738
  lambda z, x, fx, extra_pc_idx: [z, x]
739
  + [model2json(fx), plot_eq(fx)]
740
  + update_pc(z, extra_pc_idx),
 
746
  for s, update_plot in zip(cmp_sliders, cmp_update_plot_flag):
747
  s.input(
748
  chain_functions(
749
+ lambda x, i, *args: x2z_common_steps(x, *args) + (i,),
750
  lambda z, x, fx, e_pc_i, update_plot=update_plot: [z, x]
751
  + [model2json(fx)]
752
  + ([plot_comp(fx)] if update_plot else [])
 
761
  for s, update_plot in zip(delay_sliders, delay_update_plot_flag):
762
  s.input(
763
  chain_functions(
764
+ lambda x, i, *args: x2z_common_steps(x, *args) + (i,),
765
  lambda z, x, fx, e_pc_i, update_plot=update_plot: (
766
  [z, x]
767
  + [model2json(fx)]
 
778
 
779
  reverb_send.input(
780
  chain_functions(
781
+ lambda x, i, *args: x2z_common_steps(x, *args) + (i,),
782
  lambda z, x, fx, e_pc_i: [z, x] + [model2json(fx)] + update_pc(z, e_pc_i),
783
  ),
784
  inputs=[fx_params, extra_pc_dropdown] + all_effect_sliders,
 
892
  update_pc_outputs + update_fx_outputs + update_plots_outputs + [json_output]
893
  )
894
 
895
+ z2x_common_steps = chain_functions(
896
+ lambda z: accum_func_results(z, z2x, vec2fx),
897
+ lambda fx, x, z: (z, x, fx),
898
+ )
899
  random_button.click(
900
  chain_functions(
901
+ lambda i: (
902
+ *z2x_common_steps(torch.randn_like(mean).clip(SLIDER_MIN, SLIDER_MAX)),
903
+ i,
904
+ ),
905
  lambda z, x, fx, i: [z, x] + update_all(z, fx, i),
906
  ),
907
  inputs=extra_pc_dropdown,
 
909
  )
910
  reset_button.click(
911
  chain_functions(
912
+ lambda: z2x_common_steps(torch.zeros_like(mean)),
 
 
913
  lambda z, x, fx: [z, x] + update_all(z, fx, NUMBER_OF_PCS),
914
  ),
915
  outputs=[z, fx_params] + update_all_outputs,
 
923
  slider.input(
924
  chain_functions(
925
  lambda z, s, i=i: update_z(z, s, i),
926
+ z2x_common_steps,
 
927
  lambda z, x, fx: [z, x, model2json(fx)]
928
  + update_fx(fx)
929
  + update_plots(fx),
 
936
  extra_slider.input(
937
  chain_functions(
938
  lambda z, s, i: update_z(z, s, i - 1),
939
+ z2x_common_steps,
 
940
  lambda z, x, fx: [z, x, model2json(fx)] + update_fx(fx) + update_plots(fx),
941
  ),
942
  inputs=[z, extra_slider, extra_pc_dropdown],