GSoC project: Waveform generation element
ensonic at hora-obscura.de
Wed Mar 28 03:48:08 PDT 2012
On 03/27/2012 03:07 PM, pecisk at gmail.com wrote:
> Hi everyone!
> My this summer project idea is to create waveform generation element
> in C. I have few rudimentary ideas how this could happen and if anyone
> has anything to add to this, please do so.
> Currently when it's done in Jokosher it's just playing back file to
> fakesink and then listening for level element messages. Also Pitivi
> has it's own method of reading and storing waveforms. And buzztard as
> I understands decode the audio in array using fdsink and mmap.
Gnome audio recorder could also use this.
> My idea is to create one unified Gstreamer element who would read
> levels in C and who could be used by all three (and potentially other)
> applications. It could have several optional features, like changeable
> frequency of level reads and caching.
The level element already has a changeable frequency. Of course if you
want to get the waveform at a higher precission, you need to re-run the
pipeline right now.
> One crazy idea is do the drawing
> in C Cairo too, but that's probably overkill (and would require nice
> set of features for developers to modify it according to their need).
To me this sounds more like we want a wave-form gtk widget, which could
have a model-view split. One model could use gst with the level element
to build the waveform data, another one could peek at a waveform in
memory, yet another one could build a sophisticated multi-zoom level
structure (which hardly pays off these days anymore).
The view would do the drawing using cairo and could have a couple of
options to customize the appearance. Be careful as here it gets
complicated. Applications will most likely want to overlay this with:
- loop markers (section markers)
- controller curves
> Currently I keep going trough materials provided by Jeff Fortin.
Do you have a link?
> Also I will try to understand what could be beneficial for Jokosher in this
> Suggestions, cheers, criticism and pure denials welcome!
More information about the gstreamer-devel