Mercurial > vba-clojure
comparison clojure/com/aurellem/run/sound.clj @ 526:2620d6318e8d
sound recording complete.
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sun, 24 Jun 2012 13:34:15 -0500 |
parents | fa7676dbf6f2 |
children | 8d3177d19d5f |
comparison
equal
deleted
inserted
replaced
525:fa7676dbf6f2 | 526:2620d6318e8d |
---|---|
6 bootstrap-0 bootstrap-1)) | 6 bootstrap-0 bootstrap-1)) |
7 (:require clojure.string) | 7 (:require clojure.string) |
8 (:import [com.aurellem.gb.gb_driver SaveState]) | 8 (:import [com.aurellem.gb.gb_driver SaveState]) |
9 (:import java.awt.image.BufferedImage) | 9 (:import java.awt.image.BufferedImage) |
10 (:import java.io.File) | 10 (:import java.io.File) |
11 (:import javax.sound.sampled.AudioFormat) | 11 |
12 (:import com.aurellem.gb.WaveWriter)) | 12 (:import com.aurellem.gb.WaveWriter)) |
13 | 13 |
14 (defn sound-test [] | 14 (defn sound-test [] |
15 (step (mid-game)) | 15 (step (mid-game)) |
16 (println (frequencies (sound-data))) | 16 (println (frequencies (sound-bytes))) |
17 (run-moves @current-state (repeat 10 [])) | 17 (run-moves @current-state (repeat 10 [])) |
18 (println (frequencies (sound-data)))) | 18 (println (frequencies (sound-bytes)))) |
19 | 19 |
20 (def probable-format (AudioFormat. 44100 16 2 true false)) | 20 (defn record-sound! |
21 ([^File target-file state n] | |
22 (set-state! state) | |
23 (let [writer (WaveWriter. target-file)] | |
24 (dorun | |
25 (for [y (range n)] | |
26 (do (step) | |
27 (.process writer | |
28 (sound-bytes) | |
29 gb-sound-format)))) | |
30 (.cleanup writer) | |
31 (Thread/sleep 1000) | |
32 (clojure.java.shell/sh | |
33 "aplay" | |
34 (.getCanonicalPath target-file)))) | |
35 ([n] (record-sound! | |
36 (File. "/home/r/proj/vba-clojure/sounds/test-sound.wav") | |
37 (play-midi pony-csv) n))) | |
21 | 38 |
22 (defn test-writing-file! [n] | 39 (defn gen-pony! [] |
23 (set-state! (play-midi pony-csv)) | 40 (record-sound! |
24 (let [target-file | 41 (File. user-home "proj/vba-clojure/sounds/pony.wav") |
25 (File. "/home/r/proj/vba-clojure/test-sound.wav") | 42 (play-midi pony-csv) |
26 writer (WaveWriter. target-file)] | 43 1800)) |
27 (dorun | 44 |
28 (for [y (range n)] | 45 (defn gen-regret! [] |
29 (do | 46 (record-sound! |
30 (let [quanta 1] | 47 (File. user-home "proj/vba-clojure/sounds/regret.wav") |
31 (run-moves @current-state (repeat quanta [])) | 48 (play-midi regret-csv) |
32 (let [ | 49 3380)) |
33 | 50 |
34 data (sound-data) | 51 (defn gen-mother! [] |
35 bytes (* 2 (com.aurellem.gb.Gb/getSoundFrameWritten)) | 52 (record-sound! |
36 step-section | 53 (File. user-home "proj/vba-clojure/sounds/mother.wav") |
37 (byte-array | 54 (play-midi mother-csv) |
38 (take (* bytes quanta) data)) | 55 2200)) |
39 | 56 |
40 | 57 |
41 ] | |
42 (com.aurellem.gb.Gb/setSoundFrameWritten 0) | |
43 (.process writer | |
44 ;;data | |
45 step-section | |
46 probable-format)))))) | |
47 (.cleanup writer) | |
48 (Thread/sleep 1000) | |
49 (clojure.java.shell/sh | |
50 "aplay" | |
51 (.getCanonicalPath target-file)))) | |
52 |