here's a improved version of the byte-array-sound function which is probably easier to understand. based upon a real mathematical formula.
(defn byte-array-sound-2 [frequency sample-rate nb-frame] (let [sample-array (make-array (. Byte TYPE) (* nb-frame 2)) sample-interval (/ 1 (double sample-rate)) limit (alength sample-array)] (loop [sample-index 0 t (double 0)] (let [sample (short (* (int Short/MAX_VALUE) (Math/sin (* (* t 2.0) (* Math/PI frequency)))))] (aset-byte sample-array sample-index (byte (bit-shift-right sample 8))) (aset-byte sample-array (+ sample-index 1) (byte (bit-and (int sample) (int 255))))) (if (< (+ sample-index 2) limit) (recur (inc (inc sample-index)) (double (+ t sample-interval))) sample-array)))) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---