(bind-func clear_sample_data_
  (lambda (inst:[SAMPLE,SAMPLE,i64,i64,SAMPLE*]* index:i64 bank:i32)
    (let ((samples:|20,|128,SAMPLE*||* (inst.samples))
          (samples_channels:|20,|128,i64||* (inst.samples_channels))
          (samples_length:|20,|128,i64||* (inst.samples_length))
          (olddat (if (<> 0 (aref (aref-ptr samples_length bank) index))
                      (bitcast (aref (aref-ptr samples bank) index) i8*)
                      null)))
      (aset! (aref-ptr samples_length bank) index 0)
      (aset! (aref-ptr samples_channels bank) index 0)
      (aset! (aref-ptr samples bank) index null)
      (if (null? olddat) 0
          (begin (free olddat)
                 1)))))