<?xml version="1.0"?>
<Denemo>
  <merge>
    <title>A Denemo Keymap</title>
    <author>AT, JRR, RTS</author>
    <map>
      <row>
        <action>AngryDelete</action>
        <scheme>;;; Angry Delete filter
(let ((midi 0)
      (command 0)
      (note 0)
      (velocity 0)
      (loop 0))
     (d-InputFilterNames "Angry Delete MIDI Filter")
     (d-SetMidiCapture #t)
     (set! loop  (lambda ()
		(begin		  
		  (set! midi (d-GetMidi))
		  (set! velocity (bit-extract midi 16 24))
		  (set! command (bit-extract midi 0 8))
		  
		  (if (and (= command #x90)(&gt; velocity 80))
		       (begin (d-PlayMidiKey #xF06001)
                              (d-DeletePreviousObject)))
		  (d-PutMidi midi)
		  (if (= command 0)
		      (display "Filter stopping")
		      (loop)))))
     (loop))
(d-SetMidiCapture #f)
</scheme>
        <label>Angry Delete</label>
        <tooltip>MIDI notes struck loudly delete the previous note before taking effect.</tooltip>
      </row>
    </map>
  </merge>
</Denemo>
