So..

when are you going to write our equalizer?  Sounds like you got some of the
basics already? :)

sri

On Tue, Oct 27, 2009 at 7:42 AM, Sean McNamara <smc...@gmail.com> wrote:

> Hello,
>
> I have started work on a new plugin for Rhythmbox. I have written it
> in Vala, and developed it on / tested it against a Fedora 12 Beta
> x86_64 system with Rhythmbox 0.12.5 and Vala 0.7.7.
>
> The current project status is that it works on my system, and the
> primary features I wanted are implemented and functional. There is no
> tarball release; instead, use git:
> http://tiyukquellmalz.org/cgit/rbpitch <--- CGit web ui.
> git clone git://tiyukquellmalz.org/rbpitch <--- git command to check
> out the source.
>
> First, pictures are worth a thousand words. Here are some screenshots
> -- I couldn't get window borders to show up, but each screenshot is of
> a toplevel window.
>
> Addition to Rhythmbox Shell is visible in a red box (the box is not
> rendered in the GUI): http://tiyukquellmalz.org/rbpitch-icon.png
>
> Clicking the icon in the rb shell pops up this window. First, with the
> sliders in the default position:
> http://tiyukquellmalz.org/rbpitch-ui-1.png
> Second, with the sliders moved around a bit:
> http://tiyukquellmalz.org/rbpitch-ui-2.png
>
> Addition to Rhythmbox Plugin configuration page:
> http://tiyukquellmalz.org/rbpitch-configure.png
>
> ***I am soliciting community feedback on this plugin!*** I personally
> find it very useful, but eventually I'd like to have it become part of
> Rhythmbox proper, as an official plugin bundled with the stable
> release. This greatly simplifies the installation procedure, and
> increases the chance that distros will pick it up. If any of the
> Rhythmbox maintainers read this message, please carefully consider the
> next two paragraphs before deciding whether to pick this up as an
> official plugin.
>
> Now that I am happy with the functionality of the plugin, my new goal
> is to help it reach the largest audience possible. I have chosen the
> most favorable license possible by using the same one as the Rhythmbox
> core, and I offer my help and perpetual maintainership of this plugin.
> The RB maintainers can choose to help me reach the largest audience
> possible, or not -- either way, I am still happy using the plugin
> myself. I do believe it is of some general use, and there is precedent
> for other media players including this functionality by default.
>
> As a completely separate issue, I observe that there is currently no
> way to build an out-of-tree Rhythmbox plugin written in C or Vala. Has
> anyone thought about making a rhythmbox-devel package (which, for the
> rb sources, entails writing a pkgconfig file and shipping headers into
> /usr/include/rhythmbox) so that plugins can be developed out-of-tree?
> I know that API/ABI stability is not guaranteed, but this would
> greatly simplify integration for plugins for which it is decided that
> it will _not_ be bundled as an official plugin. In the case that the
> RB maintainers evaluate my plugin and decide they definitely do not
> want it in the official plugin set, I will have a need for an
> out-of-tree plugin SDK (but I'll still have to work with individual
> distros to get them to adopt my plugin and stick it in a separate
> package, grr). If no one else has plans to make one, I may choose to
> investigate doing it myself. The short term result would be the
> aforementioned files installed when you `make install'; the long term
> result would be a librhythmboxcore-dev or rhythmbox-devel package
> becoming available in distros' package managers. I might work on this
> external SDK even if my plugin is accepted as an official in-tree
> plugin (hint: save me some effort and I might do you a favor in return
> ;))
>
> Now I'm copying and pasting the readme file into this message, which
> should answer any more questions you have:
>
> rbpitch v0.1
> Readme/FAQ Document
> Last Modified: October 27, 2009
> Sean McNamara <smc...@gmail.com>
>
> Q: Describe rbpitch in one sentence!
> A: rbpitch is a plugin for Rhythmbox that lets you change the pitch, tempo,
> and
> speed in real-time while playing a song.
>
> Q: What are the main features of rbpitch?
> A:
> *Change the pitch and tempo of your music independently of each other.
> *Change the "speed", which is pitch+tempo scaled together without aliasing.
>
> Q: Are there other programs like rbpitch?
> A: Yes, rbpitch closely resembles PaceMaker: http://surina.net/pacemaker/
> J. River Media Jukebox 12 also contains similar functionality.
> I am currently not familiar with any Free Software programs like rbpitch.
>
> Q: What are the possible uses of rbpitch?
> A: Borrowed from http://surina.net/pacemaker by Olli Parviainen (no
> infringement intended):
> *Slower music tempo eases practicing music
> *Change the music key to match the singer's voice (karaoke, singing
> practice)
> *Dancers can change the music tempo suitable for dancing
> *Adjust music key instead of retuning instrument for each song
> *Listen 78 RPM vinyl singles with a usual 33/45 RPM disc player
> *Transcribe tunes
> *Write down dictations
>
> These are the uses of PaceMaker according to Olli Parviainen. However,
> since
> rbpitch is almost identical in functionality and feature, I claim the same
> uses
> apply to rbpitch.
>
> Q: What are rbpitch's dependencies?
> A:
> For compiling:
> *A Rhythmbox 0.12.5 or later source tree (links against librhythmboxcore)
> *Gtk 2.16 or later
> *Gstreamer core 0.10 or later
> *Gstreamer-plugins-bad 0.10.4 or later with the optional `pitch' plugin
> enabled
> *As a clarification of the above:
> $(libdir)/gstreamer-0.10/libgstsoundtouch.so must exist.
>
> Q: How do I compile rbpitch?
> A: Almost like you do any other rhythmbox plugin written in C: in-tree. See
> http://live.gnome.org/RhythmboxPlugins/WritingGuide
>
> However, this is not an officially bundled plugin. For that reason, I have
> some
> temporary measures available to assist the compilation and installation
> process.
>
> I have included a helper script, local-install, that does the following
> things:
> 1. Builds the plugin.
> 2. Copies the required dist files to the system plugins folder, using the
> root
> account. TODO: Change this to sudo on Debian systems.
>
> Please edit the script and change the OUTDIR variable to correspond to your
> libdir. For instance, you may want to change /usr/lib64 to /usr/lib.
>
> Please also make sure that your rbpitch distribution is in the
> plugins/ directory
> of the Rhythmbox source tree. For example, if rhythmbox is unpacked to
> "/tmp/rhythmbox-0.12.5", rbpitch is in
> "/tmp/rhythmbox-0.12.5/plugins/rbpitch".
>
> Once you've done that, run this sequence of commands from the base
> directory of
> a Rhythmbox 0.12.5 or later source tree:
> ./autogen.sh
> ./configure --prefix=/usr --enable-vala --enable-uninstalled-build
> make -j2
> cd plugins/rbpitch
> ./local-install
>
> Q: What is the future / TODO for rbpitch?
> A: In no particular order (some of these are external changes that would
> benefit
> rbpitch immensely, so I may do them myself):
> *Do what's necessary to get it integrated as an official Rhythmbox plugin.
> *Refactor to use the (not-yet-existing) rhythmbox-devel out-of-tree plugin
> devel
> headers.
> *Improve the vala-rhythmbox bindings a lot more.
> *Create a pkg-config file for rhythmbox.
> *Include patches to configure.ac and plugins/Makefile.am so the plugin
> will
> build using ./configure directly.
> *Continue to maintain the program when Rhythmbox, Gtk or Gstreamer APIs
> change.
> *Solicit user feedback to fix bugs and implement missing features.
>
> Q: What is rbpitch's license?
> A: All files in the rbpitch distribution are under the GNU GPL v2 or later,
> with
> the Rhythmbox Exception. For details on what that means, open up a source
> file,
> or read the file named COPYING that should be included in the
> documentation.
> _______________________________________________
> rhythmbox-devel mailing list
> rhythmbox-devel@gnome.org
> http://mail.gnome.org/mailman/listinfo/rhythmbox-devel
>
_______________________________________________
rhythmbox-devel mailing list
rhythmbox-devel@gnome.org
http://mail.gnome.org/mailman/listinfo/rhythmbox-devel

Reply via email to