1schema_version: 0.3
2type: filter
3identifier: dance
4title: Dance
5version: 1
6copyright: Meltytech, LLC
7creator: Brian Matherly <code@brianmatherly.com>
8license: LGPLv2.1
9language: en
10tags:
11  - Video
12description: >
13  An audio visualization filter that moves the image around proportional to the
14  magnitude of the audio spectrum.
15
16parameters:
17  - identifier: frequency_low
18    title: Low Frequency
19    type: integer
20    description: >
21      The low end of the frequency range to be used to influence the image
22      motion.
23    mutable: yes
24    readonly: no
25    default: 20
26    unit: Hz
27
28  - identifier: frequency_high
29    title: High Frequency
30    type: integer
31    description: >
32      The high end of the frequency range to be used to influence the image
33      motion.
34    mutable: yes
35    readonly: no
36    default: 20000
37    unit: Hz
38
39  - identifier: threshold
40    title: Level Threshold
41    type: float
42    description: >
43      The minimum amplitude of sound that must occur within the frequency range
44      to cause the image to move.
45      motion.
46    mutable: yes
47    readonly: no
48    default: -30
49    minimum: -100
50    maximum: 0
51    unit: dB
52
53  - identifier: osc
54    title: Oscillation
55    type: float
56    description: >
57      Oscillation can be useful to make the image move back and forth during
58      long periods of sound.
59      A value of 0 specifies no oscillation.
60    mutable: yes
61    readonly: no
62    default: 5
63    minimum: 0
64    unit: Hz
65
66  - identifier: initial_zoom
67    title: Initial Zoom
68    type: float
69    description: |
70      The amount to zoom the image before any motion occurs. This can be used to
71      avoid black on the sides of the image when it moves.
72        100% = no zoom
73      < 100% = zoom out (make the image smaller)
74      > 100% = zoom in (make the image larger)
75    mutable: yes
76    readonly: no
77    default: 100
78    minimum: 0
79    maximum: 5000
80    unit: '%'
81
82  - identifier: zoom
83    title: Zoom
84    type: float
85    description: |
86      The amount that the audio affects the zoom of the image.
87      < 0% = Image will zoom out (get smaller) with more sound
88        0% = no zoom
89      > 0% = Image will zoom in (get larger) with more sound
90    mutable: yes
91    readonly: no
92    default: 0
93    minimum: -100
94    maximum: 100
95    unit: '%'
96
97  - identifier: left
98    title: Left
99    type: float
100    description: |
101      The amount that the audio affects the left offset of the image.
102        0% = no left offset
103      > 0% = Image will move left with more sound
104    mutable: yes
105    readonly: no
106    default: 0
107    minimum: 0
108    maximum: 100
109    unit: '%'
110
111  - identifier: right
112    title: Right
113    type: float
114    description: |
115      The amount that the audio affects the right offset of the image.
116        0% = no right offset
117      > 0% = Image will move right with more sound
118    mutable: yes
119    readonly: no
120    default: 0
121    minimum: 0
122    maximum: 100
123    unit: '%'
124
125  - identifier: up
126    title: Up
127    type: float
128    description: |
129      The amount that the audio affects the upward offset of the image.
130        0% = no upward offset
131      > 0% = Image will move up with more sound
132    mutable: yes
133    readonly: no
134    default: 0
135    minimum: 0
136    maximum: 100
137    unit: '%'
138
139  - identifier: down
140    title: Down
141    type: float
142    description: |
143      The amount that the audio affects the downward offset of the image.
144        0% = no downward offset
145      > 0% = Image will move down with more sound
146    mutable: yes
147    readonly: no
148    default: 0
149    minimum: 0
150    maximum: 100
151    unit: '%'
152
153  - identifier: clockwise
154    title: Clockwise
155    type: float
156    description: |
157      The amount that the audio affects the clockwise rotation of the image.
158        0% = no clockwise rotation
159      > 0% = Image will rotate clockwise with more sound
160    mutable: yes
161    readonly: no
162    default: 0
163    minimum: 0
164    maximum: 360
165    unit: degrees
166
167  - identifier: counterclockwise
168    title: Counterclockwise
169    type: float
170    description: |
171      The amount that the audio affects the counterclockwise rotation of the image.
172        0% = no counterclockwise rotation
173      > 0% = Image will rotate counterclockwise with more sound
174    mutable: yes
175    readonly: no
176    default: 0
177    minimum: 0
178    maximum: 360
179    unit: degrees
180
181  - identifier: window_size
182    title: Window Size
183    type: integer
184    description: >
185      The number of samples that the FFT will be performed on. If
186      window_size is less than the number of samples in a frame, extra samples
187      will be ignored. If window_size is more than the number of samples in a
188      frame, samples will be buffered from previous frames to fill the window.
189      The buffering is performed as a sliding window so that the most recent
190      samples are always transformed.
191    mutable: no
192    readonly: no
193    default: 2048
194