Document blind-coordinate-field, blind-*-gradient, and blind-*-wave (sinc still… | |
git clone git://git.suckless.org/blind | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 56ed14063c8b2c82d5ea0652028f47f76cb710f0 | |
parent d967cd0ef2e9d510f2c2588d47a9e811ebff7fda | |
Author: Mattias Andrée <[email protected]> | |
Date: Mon, 3 Jul 2017 14:30:44 +0200 | |
Document blind-coordinate-field, blind-*-gradient, and blind-*-wave (sinc still… | |
Signed-off-by: Mattias Andrée <[email protected]> | |
Diffstat: | |
M Makefile | 4 ++-- | |
M README | 53 +++++++++++++++++++++++++++--… | |
M TODO | 1 + | |
A man/blind-cone-gradient.1 | 63 +++++++++++++++++++++++++++++… | |
A man/blind-coordinate-field.1 | 50 +++++++++++++++++++++++++++++… | |
A man/blind-double-sine-wave.1 | 34 +++++++++++++++++++++++++++++… | |
A man/blind-linear-gradient.1 | 59 +++++++++++++++++++++++++++++… | |
A man/blind-radial-gradient.1 | 79 +++++++++++++++++++++++++++++… | |
A man/blind-round-wave.1 | 34 +++++++++++++++++++++++++++++… | |
A man/blind-sawtooth-wave.1 | 35 +++++++++++++++++++++++++++++… | |
A man/blind-sine-wave.1 | 34 +++++++++++++++++++++++++++++… | |
A man/blind-spiral-gradient.1 | 123 +++++++++++++++++++++++++++++… | |
A man/blind-square-gradient.1 | 63 +++++++++++++++++++++++++++++… | |
A man/blind-triangular-wave.1 | 38 +++++++++++++++++++++++++++++… | |
M man/blind.7 | 55 ++++++++++++++++++++++++++---… | |
R src/blind-double-sinus-wave.c -> s… | 0 | |
R src/blind-sinus-wave.c -> src/blin… | 0 | |
17 files changed, 709 insertions(+), 16 deletions(-) | |
--- | |
diff --git a/Makefile b/Makefile | |
@@ -19,7 +19,7 @@ BIN =\ | |
blind-disperse\ | |
blind-dissolve\ | |
blind-dot-product\ | |
- blind-double-sinus-wave\ | |
+ blind-double-sine-wave\ | |
blind-extend\ | |
blind-find-rectangle\ | |
blind-flip\ | |
@@ -50,7 +50,7 @@ BIN =\ | |
blind-set-saturation\ | |
blind-single-colour\ | |
blind-sinc-wave\ | |
- blind-sinus-wave\ | |
+ blind-sine-wave\ | |
blind-skip-pattern\ | |
blind-spiral-gradient\ | |
blind-split\ | |
diff --git a/README b/README | |
@@ -30,26 +30,35 @@ UTILITIES | |
blind-concat(1) | |
Concatenate videos | |
+ blind-cone-gradient(1) | |
+ Generate a video with a cone gradient | |
+ | |
blind-convert(1) | |
Change pixel format of a video | |
- blind-cross-product(1) | |
- Calculate the cross product of colours in a video | |
+ blind-coordinate-field(1) | |
+ Generate a video where each pixel indicate their position | |
blind-crop(1) | |
Extract subframes for all frames | |
+ blind-cross-product(1) | |
+ Calculate the cross product of colours in a video | |
+ | |
blind-cut(1) | |
Retain consecutive frames | |
- blind-dot-product(1) | |
- Calculate the dot product of colours in a video | |
+ blind-disperse(1) | |
+ Framewise split a video into multiple videos | |
blind-dissolve(1) | |
Fade a video by chaning it's alpha channel | |
- blind-disperse(1) | |
- Framewise split a video into multiple videos | |
+ blind-dot-product(1) | |
+ Calculate the dot product of colours in a video | |
+ | |
+ blind-double-sine-wave(1) | |
+ Apply double-sine-wave repetition to gradient | |
blind-extend(1) | |
Add margins to a video | |
@@ -90,6 +99,9 @@ UTILITIES | |
blind-make-kernel(1) | |
Create a custom convolution matrix | |
+ blind-linear-gradient(1) | |
+ Generate a video with a linear gradient | |
+ | |
blind-next-frame(1) | |
Extracts the next frame from a video | |
@@ -102,6 +114,9 @@ UTILITIES | |
blind-quaternion-product(1) | |
Calculate the quaternion product of colours in a video | |
+ blind-radial-gradient(1) | |
+ Generate a video with a radial gradient | |
+ | |
blind-read-head(1) | |
Reads the head from a video | |
@@ -123,6 +138,12 @@ UTILITIES | |
blind-rotate-270(1) | |
Rotate a video 270 degrees clockwise | |
+ blind-round-wave(1) | |
+ Apply round wave repetition to gradient | |
+ | |
+ blind-sawtooth-wave(1) | |
+ Apply sawtooth-wave repetition to gradient | |
+ | |
blind-set-alpha(1) | |
Multiply the alpha channel of a video | |
@@ -132,12 +153,26 @@ UTILITIES | |
blind-set-saturation(1) | |
Multiply the saturation of a video | |
+ blind-sine-wave(1) | |
+ Apply sine-wave repetition to gradient | |
+ | |
+TODO blind-sinc-wave | |
+ | |
+ blind-sinc-wave(1) | |
+ Apply cardinal sine-wave repetition to gradient | |
+ | |
blind-single-colour(1) | |
Generate a single-colour video | |
+ blind-sine-wave(1) | |
+ Apply sine-wave repetition to gradient | |
+ | |
blind-skip-pattern(1) | |
Skips frames in a video according to pattern | |
+ blind-spiral-gradient(1) | |
+ Generate a video with a spiral gradient | |
+ | |
blind-split(1) | |
Split a video, by frame, into multiple videos | |
@@ -147,6 +182,9 @@ UTILITIES | |
blind-split-rows(1) | |
Split a video horizontally into multiple videos | |
+ blind-square-gradient(1) | |
+ Generate a video with a square gradient | |
+ | |
blind-stack(1) | |
Overlay videos | |
@@ -177,6 +215,9 @@ UTILITIES | |
blind-transpose(1) | |
Transpose a video | |
+ blind-triangular-wave(1) | |
+ Apply triangular wave repetition to gradient | |
+ | |
blind-unpremultiply(1) | |
Unpremultiply the alpha channel of a video | |
diff --git a/TODO b/TODO | |
@@ -70,6 +70,7 @@ UNTESTED: | |
blind-cross-product | |
blind-quaternion-product | |
blind-vector-projection | |
+ blind-coordinate-field | |
HELP REQUIRED: | |
diff --git a/man/blind-cone-gradient.1 b/man/blind-cone-gradient.1 | |
@@ -0,0 +1,63 @@ | |
+.TH BLIND-CONE-GRADIENT 1 blind | |
+.SH NAME | |
+blind-cone-gradient - Generate a video with a cone gradient | |
+.SH SYNOPSIS | |
+.B blind-cone-gradient | |
+[-a | -s] | |
+-w | |
+.I width | |
+-h | |
+.I height | |
+.SH DESCRIPTION | |
+.B blind-cone-gradient | |
+prints a video with a cone gradient to stdout, | |
+parameters for each from is read from each frame | |
+in stdin. The gradient is stored in all channels | |
+of the video. | |
+.P | |
+The video in stdin must contain exactly 2 or 3 | |
+pixels per frame. The first pixel shall point to | |
+the beginning of the gradient (where the value is | |
+0) and the second pixel shall point to the end of | |
+the gradient (where the value is 1). In these | |
+pixels, the value of the first channel specifies | |
+the X-position and the value of the second | |
+channel specifies Y-position, the other channels | |
+are ignored. | |
+.P | |
+If there is a third pixel, in frames in stdin, all | |
+values in the gradient are multipled by the value | |
+in the second channel (the Y channel) of the third | |
+pixel in stdin; the rest of the channels in this | |
+pixel is ignored. | |
+.SH OPTIONS | |
+.TP | |
+.B -a | |
+Make the gradient increase anticlockwise | |
+instead of clockwise. | |
+.TP | |
+.B -s | |
+Make the gradient increase symmetrically | |
+instead of clockwise. | |
+.TP | |
+.BR -w " "\fIwidth\fP | |
+The width of the video, in pixels. | |
+.TP | |
+.BR -h " "\fIheight\fP | |
+The height of the video, in pixels. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-from-text (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-spiral-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-coordinate-field.1 b/man/blind-coordinate-field.1 | |
@@ -0,0 +1,50 @@ | |
+.TH BLIND-COORDINATE-FIELD 1 blind | |
+.SH NAME | |
+blind-coordinate-field - Generate a video where each pixel indicate their posi… | |
+.SH SYNOPSIS | |
+.B blind-coordinate-field | |
+[-f | |
+.I frames | |
+| -f | |
+.RB ' inf '] | |
+[-F | |
+.IR pixel-format ] | |
+-w | |
+.I width | |
+-h | |
+.I height | |
+.SH DESCRIPTION | |
+.B blind-coordinate-field | |
+prints a video to stdout. | |
+The values in first channel will be the X-position | |
+for each pixel, and the first channel will be the | |
+Y-position for each pixel. The values in the other | |
+channels will be zero. | |
+.SH OPTIONS | |
+.TP | |
+.BR -f " "\fIframes\fP | |
+The number of frames in the video. If | |
+.I frames | |
+is | |
+.RB ' inf ', | |
+the number of frames will be specified as 0 in the output's | |
+head (works fine with most | |
+.B blind | |
+tools) but the video will be printed to stdout until there are | |
+no processes with an open read end to this process's stdout. | |
+.TP | |
+.BR -F " "\fIpixel-format\fP | |
+Select pixel format, see | |
+.BR blind-convert (1) | |
+for more information. | |
+.TP | |
+.BR -w " "\fIwidth\fP | |
+The width of the video, in pixels. | |
+.TP | |
+.BR -h " "\fIheight\fP | |
+The height of the video, in pixels. | |
+.SH SEE ALSO | |
+.BR blind (7) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-double-sine-wave.1 b/man/blind-double-sine-wave.1 | |
@@ -0,0 +1,34 @@ | |
+.TH BLIND-DOUBLE-SINE-WAVE 1 blind | |
+.SH NAME | |
+blind-double-sine-wave - Apply double-sine-wave repetition to gradient | |
+.SH SYNOPSIS | |
+.B blind-double-sine-wave | |
+[-e] | |
+.SH DESCRIPTION | |
+.B blind-double-sine-wave | |
+reads a video from stdin, applies a filter to | |
+each channel to it, and prints the result to | |
+stdout. The filter is designed for applying | |
+repetition to a gradient, and thus assumes the | |
+range of visible values is [0, 1]. The applied | |
+filter creates a double-sine-wave. | |
+.SH OPTIONS | |
+.TP | |
+.B -e | |
+Apply optimisation that assumes all channels | |
+are identical. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-spiral-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-linear-gradient.1 b/man/blind-linear-gradient.1 | |
@@ -0,0 +1,59 @@ | |
+.TH BLIND-LINEAR-GRADIENT 1 blind | |
+.SH NAME | |
+blind-linear-gradient - Generate a video with a linear gradient | |
+.SH SYNOPSIS | |
+.B blind-linear-gradient | |
+[-b] | |
+-w | |
+.I width | |
+-h | |
+.I height | |
+.SH DESCRIPTION | |
+.B blind-linear-gradient | |
+prints a video with a linear gradient to stdout, | |
+parameters for each from is read from each frame | |
+in stdin. The gradient is stored in all channels | |
+of the video. | |
+.P | |
+The video in stdin must contain exactly 2 pixels | |
+per frame. The first pixel shall point to the | |
+beginning of the gradient (where the value is 0) | |
+and the second pixel shall point to the end of | |
+the gradient (where the value is 1). In these | |
+pixels, the value of the first channel specifies | |
+the X-position and the value of the second | |
+channel specifies Y-position, the other channels | |
+are ignored. | |
+.SH NOTES | |
+Pixels before the beginning of the gradient have | |
+negative values, and pixels after the end of the | |
+gradient have values larger than 1. | |
+.BR blind-*-wave (1) | |
+commands can be used to put all values between | |
+0 and 1. | |
+.SH OPTIONS | |
+.TP | |
+.B -b | |
+Create a bilinear gradient. | |
+.TP | |
+.BR -w " "\fIwidth\fP | |
+The width of the video, in pixels. | |
+.TP | |
+.BR -h " "\fIheight\fP | |
+The height of the video, in pixels. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-from-text (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-spiral-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-radial-gradient.1 b/man/blind-radial-gradient.1 | |
@@ -0,0 +1,79 @@ | |
+.TH BLIND-RADIAL-GRADIENT 1 blind | |
+.SH NAME | |
+blind-radial-gradient - Generate a video with a radial gradient | |
+.SH SYNOPSIS | |
+.B blind-radial-gradient | |
+-w | |
+.I width | |
+-h | |
+.I height | |
+.SH DESCRIPTION | |
+.B blind-radial-gradient | |
+prints a video with a radial gradient to stdout, | |
+parameters for each from is read from each frame | |
+in stdin. The gradient is stored in all channels | |
+of the video. | |
+.P | |
+The video in stdin must contain exactly 2 or 3 | |
+pixels per frame. The first pixel shall point to | |
+the beginning of the gradient (where the value is | |
+0) and the second pixel shall point to the end of | |
+the gradient (where the value is 1). In these | |
+pixels, the value of the first channel specifies | |
+the X-position and the value of the second | |
+channel specifies Y-position, the other channels | |
+are ignored. | |
+.P | |
+If there is a third pixel, in frames in stdin, it | |
+specified parameters to make the gradient elliptic | |
+or superelliptic. For a completely circular | |
+gradient its values should be 2, 2, and 1 for the | |
+first, second, and third channels, respectively; | |
+the fourth channel (the alpha channel) is ignored. | |
+If we name these values, | |
+.IR a , | |
+.IR b , | |
+and | |
+.IR m , | |
+their is an imaginary superelliptic, on which the | |
+values of the gradient is 1, determined by the | |
+equation | |
+.RI || p ||^ a +|| r / m ||^ b =1, | |
+where | |
+.I p | |
+and | |
+.I r | |
+is the projection and rejection, respectively, | |
+of the normalised vector from beginning of the | |
+gradient to a pixel onto the vector from the | |
+beginning of the gradient to the end of the | |
+gradient. | |
+.SH NOTES | |
+Pixels after the end of the gradient have values | |
+larger than 1. | |
+.BR blind-*-wave (1) | |
+commands can be used to put all values between | |
+0 and 1. | |
+.SH OPTIONS | |
+.TP | |
+.BR -w " "\fIwidth\fP | |
+The width of the video, in pixels. | |
+.TP | |
+.BR -h " "\fIheight\fP | |
+The height of the video, in pixels. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-from-text (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-spiral-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-round-wave.1 b/man/blind-round-wave.1 | |
@@ -0,0 +1,34 @@ | |
+.TH BLIND-ROUND-WAVE 1 blind | |
+.SH NAME | |
+blind-round-wave - Apply round-wave repetition to gradient | |
+.SH SYNOPSIS | |
+.B blind-round-wave | |
+[-e] | |
+.SH DESCRIPTION | |
+.B blind-round-wave | |
+reads a video from stdin, applies a filter to | |
+each channel to it, and prints the result to | |
+stdout. The filter is designed for applying | |
+repetition to a gradient, and thus assumes the | |
+range of visible values is [0, 1]. The applied | |
+filter creates a round wave. | |
+.SH OPTIONS | |
+.TP | |
+.B -e | |
+Apply optimisation that assumes all channels | |
+are identical. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-spiral-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-sawtooth-wave.1 b/man/blind-sawtooth-wave.1 | |
@@ -0,0 +1,35 @@ | |
+.TH BLIND-SAWTOOTH-WAVE 1 blind | |
+.SH NAME | |
+blind-sawtooth-wave - Apply sawtooth-wave repetition to gradient | |
+.SH SYNOPSIS | |
+.B blind-sawtooth-wave | |
+[-e] | |
+.SH DESCRIPTION | |
+.B blind-sawtooth-wave | |
+reads a video from stdin, applies a filter to | |
+each channel to it, and prints the result to | |
+stdout. The filter is designed for applying | |
+repetition to a gradient, and thus assumes the | |
+range of visible values is [0, 1]. The applied | |
+filter creates a sawtooth-wave. | |
+.SH OPTIONS | |
+.TP | |
+.B -e | |
+Apply optimisation that assumes all channels | |
+are identical. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-spiral-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-sine-wave.1 b/man/blind-sine-wave.1 | |
@@ -0,0 +1,34 @@ | |
+.TH BLIND-SINE-WAVE 1 blind | |
+.SH NAME | |
+blind-sine-wave - Apply sine-wave repetition to gradient | |
+.SH SYNOPSIS | |
+.B blind-sine-wave | |
+[-e] | |
+.SH DESCRIPTION | |
+.B blind-sine-wave | |
+reads a video from stdin, applies a filter to | |
+each channel to it, and prints the result to | |
+stdout. The filter is designed for applying | |
+repetition to a gradient, and thus assumes the | |
+range of visible values is [0, 1]. The applied | |
+filter creates a sine-wave. | |
+.SH OPTIONS | |
+.TP | |
+.B -e | |
+Apply optimisation that assumes all channels | |
+are identical. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-spiral-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-spiral-gradient.1 b/man/blind-spiral-gradient.1 | |
@@ -0,0 +1,123 @@ | |
+.TH BLIND-SPIRAL-GRADIENT 1 blind | |
+.SH NAME | |
+blind-spiral-gradient - Generate a video with a spiral gradient | |
+.SH SYNOPSIS | |
+.B blind-spiral-gradient | |
+[-al] | |
+-w | |
+.I width | |
+-h | |
+.I height | |
+.SH DESCRIPTION | |
+.B blind-spiral-gradient | |
+prints a video with a spiral gradient to stdout, | |
+parameters for each from is read from each frame | |
+in stdin. The gradient is stored in all channels | |
+of the video. | |
+.P | |
+The video in stdin must contain 2 to 5 pixels per | |
+frame (inclusively). The first pixel shall point | |
+to the beginning of the gradient (where the value | |
+is 0) and the second pixel shall point to the end | |
+of the gradient (where the value is 1). In these | |
+pixels, the value of the first channel specifies | |
+the X-position and the value of the second | |
+channel specifies Y-position, the other channels | |
+are ignored. The angle of the vector between these | |
+two pixels determine the angle of the spiral. | |
+.P | |
+If there are four or five pixel in each frame in | |
+stdin, the third and fourth pixels are used to | |
+modify the shape of the spiral so that it is | |
+based on a superellipse instead of a circle. | |
+The first and second channel of third pixel creates | |
+a vector that is normalised. This vector and its | |
+normal creates the basis an imaginary coordinate | |
+system with its origo at the beginning of the spiral. | |
+The superellipse defined by the equation | |
+.RI | x |^ a +| y / m |^ b =1, | |
+where | |
+.I x | |
+is the distance from origo along the vector, | |
+.I y | |
+is the distance from origo along the vector's normal, | |
+.IR a , | |
+.IR b , | |
+and | |
+.I m | |
+are the values of the first, second, and third | |
+channels, respectively, in the fourth pixel. and has | |
+the distance 1 from origo at all points on it. If | |
+.IR a , | |
+.IR b , | |
+and | |
+.I m | |
+have the values 2, 2, and 1, respectively, these | |
+pixels have no effect on the spiral's shape. | |
+The third and fourth channels in the third pixel | |
+and the fourth channel in the fourth pixel are | |
+ignored. | |
+.P | |
+If there are three or five pixels, the channels, | |
+in order, in the last pixel, specifies the value | |
+.IR a , | |
+.IR e , | |
+.IR p , | |
+and | |
+.IR k , | |
+whose default values are 0, 1, 1, and 1, respectively. | |
+.I k | |
+is ignored unless | |
+.B -l | |
+is used. If | |
+.B -l | |
+is not used, the spiral is defined by the equation | |
+.IR r = a +( b /( 2\fBpi\fP )^ e ) v ^( ep ). | |
+If | |
+.B -l | |
+is used, the spiral is defined by the equation | |
+.RI log( r / k )= a +(log( b )/( 2\fBpi\fP )^ e ) v ^( ep ). | |
+.I r | |
+is defined as the distance from the center of the | |
+spiral, | |
+.I b | |
+is defined as the distance between the points | |
+specified in the first and second pixel from stdin, | |
+and | |
+.I v | |
+is defined as the angle. | |
+.SH NOTES | |
+Pixels after the end of the gradient have values | |
+larger than 1. | |
+.BR blind-*-wave (1) | |
+commands can be used to put all values between | |
+0 and 1. | |
+.SH OPTIONS | |
+.TP | |
+.B -a | |
+Create a spiral that gones anticlockwise. | |
+.TP | |
+.B -l | |
+Create a logarithmic spiral. | |
+.TP | |
+.BR -w " "\fIwidth\fP | |
+The width of the video, in pixels. | |
+.TP | |
+.BR -h " "\fIheight\fP | |
+The height of the video, in pixels. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-from-text (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-square-gradient.1 b/man/blind-square-gradient.1 | |
@@ -0,0 +1,63 @@ | |
+.TH BLIND-SQUARE-GRADIENT 1 blind | |
+.SH NAME | |
+blind-square-gradient - Generate a video with a square gradient | |
+.SH SYNOPSIS | |
+.B blind-square-gradient | |
+[-b] | |
+-w | |
+.I width | |
+-h | |
+.I height | |
+.SH DESCRIPTION | |
+.B blind-square-gradient | |
+prints a video with a square gradient to stdout, | |
+parameters for each from is read from each frame | |
+in stdin. The gradient is stored in all channels | |
+of the video. | |
+.P | |
+The video in stdin must contain exactly 2 or 3 | |
+pixels per frame. The first pixel shall point to | |
+the beginning of the gradient (where the value is | |
+0) and the second pixel shall point to the end of | |
+the gradient (where the value is 1). In these | |
+pixels, the value of the first channel specifies | |
+the X-position and the value of the second | |
+channel specifies Y-position, the other channels | |
+are ignored. | |
+.P | |
+If there is a third pixel, in frames in stdin, | |
+the value of the second channel (the Y channel) | |
+is used to modify the shape of the square, making | |
+it rectangular; the other channels are ignored. | |
+The axis perpendicular to the vector between | |
+the beginning and end of the gradient is divided | |
+by this value. | |
+.SH NOTES | |
+Pixels after the end of the gradient have values | |
+larger than 1. | |
+.BR blind-*-wave (1) | |
+commands can be used to put all values between | |
+0 and 1. | |
+.SH OPTIONS | |
+.TP | |
+.BR -w " "\fIwidth\fP | |
+The width of the video, in pixels. | |
+.TP | |
+.BR -h " "\fIheight\fP | |
+The height of the video, in pixels. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-from-text (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-triangular-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-spiral-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind-triangular-wave.1 b/man/blind-triangular-wave.1 | |
@@ -0,0 +1,38 @@ | |
+.TH BLIND-TRIANGULAR-WAVE 1 blind | |
+.SH NAME | |
+blind-triangular-wave - Apply triangular-wave repetition to gradient | |
+.SH SYNOPSIS | |
+.B blind-triangular-wave | |
+[-es] | |
+.SH DESCRIPTION | |
+.B blind-triangular-wave | |
+reads a video from stdin, applies a filter to | |
+each channel to it, and prints the result to | |
+stdout. The filter is designed for applying | |
+repetition to a gradient, and thus assumes the | |
+range of visible values is [0, 1]. The applied | |
+filter creates a triangular wave. | |
+.SH OPTIONS | |
+.TP | |
+.B -e | |
+Apply optimisation that assumes all channels | |
+are identical. | |
+.TP | |
+.B -s | |
+Apply a variation of the filter that is | |
+more appropriate for spiral gradient. | |
+.SH SEE ALSO | |
+.BR blind (7), | |
+.BR blind-double-sine-wave (1), | |
+.BR blind-round-wave (1), | |
+.BR blind-sawtooth-wave (1), | |
+.BR blind-sinc-wave (1), | |
+.BR blind-sine-wave (1), | |
+.BR blind-cone-gradient (1), | |
+.BR blind-linear-gradient (1), | |
+.BR blind-radial-gradient (1), | |
+.BR blind-spiral-gradient (1), | |
+.BR blind-square-gradient (1) | |
+.SH AUTHORS | |
+Mattias Andrée | |
+.RI < [email protected] > | |
diff --git a/man/blind.7 b/man/blind.7 | |
@@ -29,10 +29,12 @@ Place videos side by side | |
Stack videos vertically | |
.TP | |
.BR blind-colour-ciexyz (1) | |
-Convert CIE XYZ for use with blind-single-colour(1) | |
+Convert CIE XYZ for use with | |
+.BR blind-single-colour (1) | |
.TP | |
.BR blind-colour-srgb (1) | |
-Convert sRGB for use with blind-single-colour(1) | |
+Convert sRGB for use with | |
+.BR blind-single-colour (1) | |
.TP | |
.BR blind-compress (1) | |
Compress a video for network transmission | |
@@ -40,30 +42,40 @@ Compress a video for network transmission | |
.BR blind-concat (1) | |
Concatenate videos | |
.TP | |
+.BR blind-cone-gradient (1) | |
+Generate a video with a cone gradient | |
+.TP | |
.BR blind-convert (1) | |
Change pixel format of a video | |
.TP | |
-.BR blind-cross-product (1) | |
-Calculate the cross product of colours in a video | |
+.BR blind-coordinate-field (1) | |
+Generate a video where each pixel indicate their position | |
.TP | |
.BR blind-crop (1) | |
Extract subframes for all frames | |
.TP | |
+.BR blind-cross-product (1) | |
+Calculate the cross product of colours in a video | |
+.TP | |
.BR blind-cut (1) | |
Retain consecutive frames | |
.TP | |
.BR blind-decompress (1) | |
-Decompress a video compressed by blind-compress(1) | |
-.TP | |
-.BR blind-dissolve (1) | |
-Fade a video by chaning it's alpha channel | |
+Decompress a video compressed by | |
+.BR blind-compress (1) | |
.TP | |
.BR blind-disperse (1) | |
Framewise split a video into multiple videos | |
.TP | |
+.BR blind-dissolve (1) | |
+Fade a video by chaning it's alpha channel | |
+.TP | |
.BR blind-dot-product (1) | |
Calculate the dot product of colours in a video | |
.TP | |
+.BR blind-double-sine-wave (1) | |
+Apply double-sine-wave repetition to gradient | |
+.TP | |
.BR blind-extend (1) | |
Add margins to a video | |
.TP | |
@@ -100,6 +112,9 @@ Framewise interleave videos | |
.BR blind-invert-luma (1) | |
Invert the luminosity of a video | |
.TP | |
+.BR blind-linear-gradient (1) | |
+Generate a video with a linear gradient | |
+.TP | |
.BR blind-make-kernel (1) | |
Create a custom convolution matrix | |
.TP | |
@@ -115,6 +130,9 @@ Premultiply the alpha channel of a video | |
.BR blind-quaternion-product (1) | |
Calculate the quaternion product of colours in a video | |
.TP | |
+.BR blind-radial-gradient (1) | |
+Generate a video with a radial gradient | |
+.TP | |
.BR blind-read-head (1) | |
Reads the head from a video | |
.TP | |
@@ -136,6 +154,12 @@ Rotate a video 180 degrees | |
.BR blind-rotate-270 (1) | |
Rotate a video 270 degrees clockwise | |
.TP | |
+.BR blind-round-wave (1) | |
+Apply round wave repetition to gradient | |
+.TP | |
+.BR blind-sawtooth-wave (1) | |
+Apply sawtooth-wave repetition to gradient | |
+.TP | |
.BR blind-set-alpha (1) | |
Multiply the alpha channel of a video | |
.TP | |
@@ -145,12 +169,21 @@ Multiply the luminosity of a video | |
.BR blind-set-saturation (1) | |
Multiply the saturation of a video | |
.TP | |
+.BR blind-sinc-wave (1) | |
+Apply cardinal sine-wave repetition to gradient | |
+.TP | |
.BR blind-single-colour (1) | |
Generate a single-colour video | |
.TP | |
+.BR blind-sine-wave (1) | |
+Apply sine-wave repetition to gradient | |
+.TP | |
.BR blind-skip-pattern (1) | |
Skips frames in a video according to pattern | |
.TP | |
+.BR blind-spiral-gradient (1) | |
+Generate a video with a spiral gradient | |
+.TP | |
.BR blind-split (1) | |
Split a video, by frame, into multiple videos | |
.TP | |
@@ -160,6 +193,9 @@ Split a video vertically into multiple videos | |
.BR blind-split-rows (1) | |
Split a video horizontally into multiple videos | |
.TP | |
+.BR blind-square-gradient (1) | |
+Generate a video with a square gradient | |
+.TP | |
.BR blind-stack (1) | |
Overlay videos | |
.TP | |
@@ -192,6 +228,9 @@ Perform framewise translation of a video | |
.BR blind-transpose (1) | |
Transpose a video | |
.TP | |
+.BR blind-triangular-wave (1) | |
+Apply triangular wave repetition to gradient | |
+.TP | |
.BR blind-unpremultiply (1) | |
Unpremultiply the alpha channel of a video | |
.TP | |
diff --git a/src/blind-double-sinus-wave.c b/src/blind-double-sine-wave.c | |
diff --git a/src/blind-sinus-wave.c b/src/blind-sine-wave.c |