title: Using a metronome in a recursive function in clojure/overtone
body: <p>Regarding the <code>metronome</code> function from the Clojure Overtone library, all the examples I've studied seem to use it like this: (Example taken from <a href="https://github.com/overtone/overtone/wiki/Live-coding" rel="nofollow">https://github.com/overtone/overtone/wiki/Live-coding</a>)</p>
  
  <pre><code>(defn player [beat]
    (at (metro beat) (kick))
    (at (metro (+ 0.5 beat)) (c-hat))
    (apply-by (metro (inc beat)) #'player (inc beat) []))
  
  (player (metro))
  </code></pre>
  
  <p>(for context: metro is a metronome instance; kick and c-hat play sounds)
  As you can see, the recursion is handled by the function calling itself. Apart from articles on overtone, most other Clojure articles recommend against this type of recursion, and advise using the recur function for better efficiency. So my question is: is there a better way of writing the above function? </p>
  
  <p>Thank you, Niall</p>