Block-level merge midi defaults

with_merged_midi_defaults  

Specify opt values to be used by any following call to the midi_* fns within the specified do/end block. Merges the specified values with any previous midi defaults, rather than replacing them. After the do/end block has completed, previous defaults (if any) are restored.

Introduced in v3.0

Example

# Example 1

midi_note_on :e1
use_midi_defaults channel: 3, port: "foo"
midi_note_on :e3
with_merged_midi_defaults channel: 1 do
  midi_note_on :e2
                  
                  
end
midi_note_on :e2
                
                



# Sends MIDI :e1 note_on with default opts
 
# Sends MIDI :e3 note_on to channel 3 on port "foo"
 
# Sends MIDI :e2 note_on to channel 1 on port "foo".
# This is because the call to use_merged_midi_defaults overrode the
# channel but not the port which got merged in.
 
# Sends MIDI :e2 note_on to channel 3 on port "foo".
# This is because the previous defaults were restored after
# the call to with_merged_midi_defaults.