[mythtv] New Music Visualization : Need to process signal between frames
Martin Andrews
mythtv-dev at platformedia.com
Fri Dec 16 06:24:07 UTC 2011
I'm building a 'Piano' spectrum visualization, where the pitches detected
directly correspond to piano key pitches.
At the moment, the standard fps=20 means that I'm only seeing a fraction of
the data in my .process(), since (at the moment) the
MainVisual::timeout<http://code.mythtv.org/doxygen/classMainVisual.html#a0f7532480cfb1706438af7c1bf02f11c>
is
discarding 'between the frame' nodes of audio data, choosing to only call
.process() when it wants to .draw() the visualization.
However, for low notes on the piano, I need longer periods of audio data to
get good recognition, so I'd like to run some kind of .process() even for
non-displayed chunks of audio.
Since this feature doesn't seem to be present, what is the MythTV preferred
way to implement this :
(a) Add an additional parameter to .process(node) : i.e. .process(node,
will_be_displayed=true). But the downside of this is that other
visualizations will have an extra 'ignore this one' choice to make; OR
(b) Add an additional virtual function to
VisualBase<http://code.mythtv.org/doxygen/classVisualBase.html> :
i.e. .process_between_displayed_frames(node), which no-one else will be
hooking into, but I'll be able to use to analyze the whole audio stream.
Downside is VisualBase<http://code.mythtv.org/doxygen/classVisualBase.html>
gets
a little hairier; OR
(c) Some method I haven't thought of.
Each will need a little something added into the loop of
MainVisual::timeout<http://code.mythtv.org/doxygen/classMainVisual.html#a0f7532480cfb1706438af7c1bf02f11c>()
which is discarding node data.
An alternative (funky) workaround is to set fps high enough that I catch
all the data. But that's pretty inefficient, since there's no need to
refresh the screen at ~90fps (44100/512 looks like it would be chunk
frequency).
Could someone with an opinion please weigh in? I'll submit a patch vs SVN
once it's looking classy...
Thanks
Martin
:-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.mythtv.org/pipermail/mythtv-dev/attachments/20111216/c2fccaba/attachment.html
More information about the mythtv-dev
mailing list