title: arity mismatch using Racket
body: <p>I'm studying scheme for my degree and written this code using racket 6.10:</p>
  
  <pre><code>(require rsound)
  (define (arpeggio n fs q) (if(eq? 0 n) (stop)
  ((signal-play (mysound fs))(sleep q)(stop)(arpeggio (- n 1) (+ fs 100) q))))
  </code></pre>
  
  <p>where fs is the starting frequency updated in the recursive pass, q is the time offset and n is the number of sounds played.
  mysound is defined as:</p>
  
  <pre><code>(define mysound (network ()
          [a &lt;= sine-wave 500]
          [out = a])
  </code></pre>
  
  <p>code works well, but at the end of the playing I get the following error:</p>
  
  <pre><code>; stream-time: arity mismatch;
  ;  the expected number of arguments does not match the given number
  ;   expected: 0
  ;   given: 3
  ; [,bt for context]
  </code></pre>
  
  <p>and even if I've tried ,bt for context as it says I genuinely don't get where's the error. The error accours whether the (stop) procedure is called or not in the else clause.</p>
  
  <p>sample call is (arpeggio 10 500 0.1)</p>
  
  <p>what's going on?</p>