2011-06-04 17:41:49 +00:00
|
|
|
A basclass for audiovisualizers. Takes care of re-fitting the audio-rate to
|
|
|
|
video-rate. It receives audio-data at the sampling-rate. It needs to render
|
|
|
|
video-frames at frame-rate. The rendering needs n audio samples (depends on
|
|
|
|
subclass). The baseclass takes care of that.
|
|
|
|
|
2011-11-24 18:03:23 +00:00
|
|
|
Some effects could be enhanced by running geometrictransform elements
|
|
|
|
afterwards. A blur and/or videozoom element would be great (vertigotv looks
|
|
|
|
great but has some negotiation issues).
|
|
|
|
|
2011-06-04 17:41:49 +00:00
|
|
|
= Feedback =
|
|
|
|
* put 'Audio' to klass as well ?
|
|
|
|
|
|
|
|
= API =
|
|
|
|
|
2011-11-23 10:31:44 +00:00
|
|
|
* we have a couple of drawing helpers in gstdrawhelpers.h
|
|
|
|
(would be nice if we could use cairo)
|
2011-06-04 17:41:49 +00:00
|
|
|
draw_point (x,y,color);
|
2011-11-23 10:31:44 +00:00
|
|
|
draw_line (x1,x2,y1,y2,color);
|
|
|
|
* some more we could add:
|
2011-06-04 17:41:49 +00:00
|
|
|
draw_hline (x1,x2,y,color);
|
|
|
|
draw_vline (x,y1,y2,color);
|
|
|
|
draw_rect (x1,x2,y1,y2,color);
|
|
|
|
draw_box (x1,x2,y1,y2,color); // filled
|
|
|
|
* shading effects
|
|
|
|
- would be nice to use a generic 3x3 matrix operation, we don't run inplace
|
|
|
|
anyway
|
|
|
|
- this way we could also blur the background
|
|
|
|
|
|
|
|
= Elements to port =
|
|
|
|
gst-plugin-ugly/gst/synaestesia -> synaescope
|
2011-11-23 10:31:44 +00:00
|
|
|
gst-plugin-bad/gst/smoothwave -> wavescope
|
2011-06-04 17:41:49 +00:00
|
|
|
gst-plugin-good/gst/monoscope -> blend into what we have in wavescope
|
|
|
|
|
|
|
|
= Elements to add =
|
|
|
|
spectrascope - done
|
|
|
|
spacescope - stereo wavescope
|
|
|
|
- left->x, right->y - done
|
|
|
|
- polar mapping
|
2011-11-24 18:03:23 +00:00
|
|
|
multiscope :
|
|
|
|
- like wave/space scope, but run the signal through two filters to split it into
|
|
|
|
bass, mid and high (200 Hz, 2000 Hz)
|
|
|
|
- draw 3 wave-scopes into red/gree/blue
|
|
|
|
- when drawing only draw that component to mix colors
|
|
|
|
- eventually use the spacescope-position to rotate/shift the wave
|
2011-06-04 17:41:49 +00:00
|
|
|
|
|
|
|
= TODO =
|
|
|
|
- element maker template
|
|
|
|
- test for baseclass
|
|
|
|
|
|
|
|
= Test it =
|
|
|
|
|
|
|
|
GST_DEBUG="*:2,*scope*:4"
|
|
|
|
|
|
|
|
GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-inspect scopes
|
|
|
|
|
|
|
|
GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch audiotestsrc ! audioconvert ! wavescope ! colorspace ! ximagesink
|
2011-11-23 10:31:44 +00:00
|
|
|
GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! wavescope ! colorspace ! ximagesink
|
2011-06-04 17:41:49 +00:00
|
|
|
|
2011-11-23 10:31:44 +00:00
|
|
|
GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! spacescope style=lines shade-amount=0x00080402 ! ximagesink
|
2011-11-24 18:03:23 +00:00
|
|
|
GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! spacescope style=lines shade-amount=0x00080402 ! vertigotv ! ximagesink
|
2011-06-04 17:41:49 +00:00
|
|
|
|
2011-11-23 10:31:44 +00:00
|
|
|
GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! spectrascope ! colorspace ! ximagesink
|
|
|
|
GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! audioconvert ! spectrascope shader=fade-and-move-up shade-amount=0x00040302 ! colorspace ! ximagesink
|
|
|
|
|
|
|
|
GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-launch filesrc location=$HOME/Music/1.mp3 ! decodebin2 ! tee name=t ! queue ! audioconvert ! synaesthesia ! ximagesink t. ! queue ! synaescope shade-amount=0x00040404 ! colorspace ! ximagesink
|
2011-06-04 17:41:49 +00:00
|
|
|
|