sound stuff
This commit is contained in:
parent
309c47e0a7
commit
ae03b61dca
22 changed files with 487 additions and 105 deletions
|
|
@ -238,3 +238,26 @@
|
|||
"and nothing else is renumbered")
|
||||
(is (:refused (nest/restack c :main [:a] [a-uuid :inner] true))
|
||||
"only among the things it is beside")))
|
||||
|
||||
(deftest a-sound-dropped-in-a-placed-symbol-is-heard-where-the-placement-puts-it
|
||||
(let [u #uuid "00000000-0000-4000-8000-0000000000a1"
|
||||
c (-> (nested)
|
||||
(clip/place-sound :inner {:sound "tone"} "tone.mp3" 40 1 2 u))
|
||||
sound (get-in c [:symbols :inner :nodes u])
|
||||
[heard] (nest/audio-tracks c :outer)]
|
||||
(is (empty? (node/problems sound)) "a sound needs no transform")
|
||||
(is (= {:sound "tone"} (:source sound)))
|
||||
(is (= #{[:audio :gain] [:audio :pan] [:audio :rate]} (set (keys (node/channels sound)))))
|
||||
(is (= [0 8] (:span heard))
|
||||
"own frames 0-8: it starts on inner's 2 and inner ends on 10")
|
||||
(is (= [7 15] (node/placed-span heard)) "inner starts on 5 of outer")
|
||||
(is (empty? ((clip/resolver c nil pal/index-of :inner) 3))
|
||||
"and it draws nothing")
|
||||
(is (= c (clip/place-sound c :inner {:sound "tone"} "tone.mp3" 40 1 10 (random-uuid)))
|
||||
"nor lands past the end of its symbol")
|
||||
(testing "a video's own sound keeps its length at another rate"
|
||||
(let [v (-> (nested)
|
||||
(clip/place-sound :outer {:footage "f"} "take" 90 2.5 0 u)
|
||||
(get-in [:symbols :outer :nodes u]))]
|
||||
(is (empty? (node/problems v)))
|
||||
(is (= [0 36] (node/placed-span v)) "90 frames at 30 are 36 at 12")))))
|
||||
|
|
|
|||
|
|
@ -157,8 +157,8 @@
|
|||
(deftest skew-and-anchor-are-in-the-shape-although-nothing-drives-them
|
||||
;; A decomposition is not extensible after the fact: adding a component later
|
||||
;; means migrating every stored transform. So both are present from the start,
|
||||
;; on every kind.
|
||||
(doseq [k node/implemented-kinds]
|
||||
;; on every kind that is in the picture.
|
||||
(doseq [k (disj node/implemented-kinds :audio)]
|
||||
(is (contains? (get node/valid-paths k) [:xform :skew]) (str k))
|
||||
(is (contains? (get node/valid-paths k) [:xform :anchor]) (str k))))
|
||||
|
||||
|
|
@ -168,7 +168,13 @@
|
|||
(is (contains? (:disc node/valid-paths) [:geom :radius]))
|
||||
(is (contains? (:rect node/valid-paths) [:geom :size]))
|
||||
(is (not (contains? (:group node/valid-paths) [:geom :pts]))
|
||||
"a group is a pure transform node"))
|
||||
"a group is a pure transform node")
|
||||
(is (= #{[:audio :gain] [:audio :pan] [:audio :rate]} (:audio node/valid-paths))
|
||||
"a sound has no transform"))
|
||||
|
||||
(deftest a-sound-defaults-to-its-own-channels
|
||||
(is (= (set (keys node/audio-defaults))
|
||||
(set (keys (node/channels {:id :s :kind :audio}))))))
|
||||
|
||||
(deftest problems-names-the-ways-a-node-is-malformed
|
||||
(is (empty? (node/problems {:id :x :kind :group :z "a1"})))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue