Guest User

Untitled

a guest
Jul 31st, 2012
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. (ns onelouder.core
  2. (:import [org.jaudiotagger.audio AudioFileIO]
  3. [org.jaudiotagger.tag FieldKey]))
  4.  
  5. (defn tags [file]
  6. (let [fields (apply conj {} (map (fn [n] [(keyword (. (. n toString) toLowerCase)) n]) (. FieldKey values)))
  7. tag (. file (getTag))]
  8. (apply conj {}
  9. (filter (fn [[name val]] (and val (not (empty? val))))
  10. (map (fn [[name val]]
  11. [name (seq (map #(. % getContent) (. tag (getFields val))))])
  12. fields)))))
  13.  
  14. (defn audioheader [file]
  15. (bean (. file (getAudioHeader))))
  16.  
  17. (defn metadata [filename]
  18. (let [file (AudioFileIO/read (new java.io.File filename))]
  19. {:tags (tags file)
  20. :audioheader (audioheader file)}))
Advertisement
Add Comment
Please, Sign In to add comment