rlm@523: (ns com.aurellem.run.sound rlm@523: (:use (com.aurellem.gb saves gb-driver util constants rlm@523: items vbm characters money rlm@523: rlm-assembly)) rlm@523: (:use (com.aurellem.run util music title save-corruption rlm@523: bootstrap-0 bootstrap-1)) rlm@523: (:require clojure.string) rlm@523: (:import [com.aurellem.gb.gb_driver SaveState]) rlm@523: (:import java.awt.image.BufferedImage) rlm@525: (:import java.io.File) rlm@525: (:import com.aurellem.gb.WaveWriter)) rlm@523: rlm@523: (defn sound-test [] rlm@523: (step (mid-game)) rlm@526: (println (frequencies (sound-bytes))) rlm@523: (run-moves @current-state (repeat 10 [])) rlm@526: (println (frequencies (sound-bytes)))) rlm@523: rlm@526: (defn record-sound! rlm@526: ([^File target-file state n] rlm@526: (set-state! state) rlm@526: (let [writer (WaveWriter. target-file)] rlm@526: (dorun rlm@526: (for [y (range n)] rlm@526: (do (step) rlm@526: (.process writer rlm@526: (sound-bytes) rlm@526: gb-sound-format)))) rlm@526: (.cleanup writer) rlm@526: (Thread/sleep 1000) rlm@526: (clojure.java.shell/sh rlm@526: "aplay" rlm@526: (.getCanonicalPath target-file)))) rlm@526: ([n] (record-sound! rlm@526: (File. "/home/r/proj/vba-clojure/sounds/test-sound.wav") rlm@526: (play-midi pony-csv) n))) rlm@524: rlm@526: (defn gen-pony! [] rlm@526: (record-sound! rlm@526: (File. user-home "proj/vba-clojure/sounds/pony.wav") rlm@526: (play-midi pony-csv) rlm@526: 1800)) rlm@525: rlm@526: (defn gen-regret! [] rlm@526: (record-sound! rlm@526: (File. user-home "proj/vba-clojure/sounds/regret.wav") rlm@526: (play-midi regret-csv) rlm@526: 3380)) rlm@525: rlm@526: (defn gen-mother! [] rlm@526: (record-sound! rlm@526: (File. user-home "proj/vba-clojure/sounds/mother.wav") rlm@526: (play-midi mother-csv) rlm@526: 2200)) rlm@525: rlm@526: