@@ -3,7 +3,7 @@ open Llama_interactive
33open Llama.Midi
44open Dsl
55
6- let midi_signal (data : Llama_midi.Data.t ) =
6+ let midi_signal (data : Llama_midi.Data.t ) ~ mouse_x ~ mouse_y =
77 let clock = clock_of_frequency_hz (const 1000.0 ) in
88 let track = List. hd data.tracks in
99 let midi_event_signal = track_signal track clock in
@@ -33,8 +33,9 @@ let midi_signal (data : Llama_midi.Data.t) =
3333 |> exp_01 1.0
3434 in
3535 let filtered_osc =
36- chebyshev_low_pass_filter osc ~resonance: (const 4.0 )
37- ~cutoff_hz: (sum [ const 100.0 ; filter_env |> scale 12000.0 ])
36+ chebyshev_low_pass_filter osc ~resonance: mouse_y
37+ ~cutoff_hz:
38+ (sum [ const 100.0 ; filter_env *. . mouse_x |> scale 12000.0 ])
3839 in
3940 filtered_osc
4041 |> lazy_amplifier
@@ -48,11 +49,7 @@ let mouse_filter = butterworth_low_pass_filter ~cutoff_hz:(const 10.0)
4849let midi_signal_with_effects (input : (_, _) Input.t ) data =
4950 let mouse_x = mouse_filter input.mouse.mouse_x in
5051 let mouse_y = mouse_filter input.mouse.mouse_y in
51- midi_signal data
52- |> chebyshev_low_pass_filter ~resonance: (const 2.0 )
53- ~cutoff_hz: (mouse_x |> exp_01 4.0 |> scale 10000.0 |> offset 100.0 )
54- |> chebyshev_high_pass_filter ~resonance: (const 4.0 )
55- ~cutoff_hz: (mouse_y |> exp_01 4.0 |> scale 2000.0 |> offset 100.0 )
52+ midi_signal data ~mouse_x ~mouse_y
5653
5754module Args = struct
5855 type t = { midi_file_path : string }
8481let () =
8582 let { Args. midi_file_path } = Args. parse () in
8683 with_visualization_window ~background_rgba_01: (0.0 , 0.0 , 0.2 , 1.0 )
87- ~stable: false ~stride: 4 ~pixel_scale: 6 ~sample_scale: 0.2
84+ ~stable: false ~stride: 1 ~pixel_scale: 1 ~sample_scale: 1.
8885 ~sample_to_rgba_01: (Fun. const (0.6 , 0.5 , 0.2 , 1.0 ))
8986 (fun window ->
9087 let reader = Llama_midi.File_reader. of_path midi_file_path in
9188 let data = Llama_midi.File_reader. read reader in
92- midi_signal_with_effects (Window. input_signals window) data)
89+ midi_signal_with_effects (Window. input_signals window) data |> scale 0.1 )
0 commit comments