GNOME Bugzilla – Bug 349983
New plugin: fftw-based Fourier transform + toys
Last modified: 2006-08-21 09:49:57 UTC
This is a patch to the CVS HEAD of gst-plugins-bad. It adds a new plugin, "fftwspectrum", with four elements: * fftwspectrum: use fftw to convert a raw audio signal into a frequency spectrum (in chunks) using a discrete Fourier transform * fftwunspectrum: the inverse of fftwspectrum * spectrumeq: a multi-band equalizer that operates on frequency spectra directly * moodbar: a toy analysis element based on Gav Wood's Moodbar code for Amarok The main reason I wrote this plugin in the first place was to revive the moodbar code in Amarok, as the Exscalibar library on which it used to be based is now unmaintained.
Created attachment 70226 [details] [review] Patch that changes the already-existing files in the CVS repository Patch for gst-plugins-bad that implements the feature request.
Created attachment 70227 [details] [review] Patch for the already-existing files in the repository This patches the already-existing files in the repository. The next attachment contains the plugin directory. Please ignore the previous attachment; I forgot to do a recursive diff.
Created attachment 70228 [details] New files for this plugin This tarball contains the new files for the plugin: ext/fftwspectrum/*
Withdrawn, I'm going to distribute on my own for the moment; email me if you decide you want to include.
Sorry, we've been quite slack about replying to you on this bug. The plugin certainly sounds interesting. I'm trying to download it at the moment and try it out, but bugzilla's being a bitch. How's the licensing for the code? LGPL would be best, as it's a requirement for boosting the code up into gst-plugins-good
The FFTW library is GPL, so I don't think this plugin could move beyond Ugly. As I mentioned above, I'm maintaining the fftwspectrum plugin (now just called "moodbar") in a separate package as a dependency for the Amarok project, under a GPL license (as Amarok is GPL'd). You can download that package at http://amarok.kde.org/wiki/Moodbar . I think it's best that I maintain these plugins in the separate package, at least for the moment -- it's easier for me to maintain as I SVN write access on its current SVN repository, and the Amarok people would be unhappy to make CVS gst-plugins-bad a dependency for their next release. (By the way, the version of the moodbar plugin I submitted on this page has a nasty memory leak.) There are a couple more elements I plan on writing anyway (speed up/slow down playback without altering pitch, or alter pitch without changing playback speed; maybe a beats-per-minute analyzer). Feel free to put a link to the moodbar package on the gstreamer homepage. You can also talk to me on irc.freenode.org under the nick QBob; I hang out in #amarok usually. Thanks for taking a look at my code!
Cool. Thanks for the explanation. You might find the 'speed' element interesting - it's a libsoundtouch based element that can do pitch-preserving speed changes and speed-preserving pitch shifts. It's still in gst-plugins-bad because it needs a patch or 2 for handling seeks correctly iirr, and needs to go through the other points of the plugin checklist to move to gst-plugins-good.