[Proposal] rbpitch: Rhythmbox Plugin

Sean McNamara smcnam at gmail.com
Tue Jul 6 02:48:41 BST 2010


Hello list,

I have been working on a new plugin for Rhythmbox in my spare time for
several months. The plugin allows the user to change the pitch, tempo,
and speed of the music currently playing (each of these elements can
be changed independently of each other).

Since I am an Ubuntu user and fan, I have reached out to the Ubuntu
(power-)user community to solicit feedback. They have provided many
useful suggestions that I have incorporated into the design, ranging
from bugfixes to new features. Interest in the plugin has been
luke-warm according to the opinion of "the average user", but with
very high interest by audiophiles and musicians.

I once attempted to get the plugin integrated into Rhythmbox itself,
so that anyone building Rhythmbox would automatically build this
plugin if their system met the dependencies. However, here is the
response to that question when I posed it to the maintainer of
Rhythmbox (upstream):
http://www.mail-archive.com/rhythmbox-devel@gnome.org/msg06285.html

I have been in continual correspondence with Jonathan since that time,
and it seems he still thinks that having yet another non-essential
plugin in the Rhythmbox tree is just bad software design -- most
programs ship their plugins separately, by definition. And I agree
with him.

But just because my plugin is not included by default in Rhythmbox, is
no reason to exclude it from distributions, right? :)

Here is the community response to my plugin, along with build
instructions from me: http://ubuntuforums.org/showthread.php?t=1303297

I have also blogged about it periodically throughout development, with
screenshots and various other reflection:
http://tiyukquellmalz.org/blogs/blog7.php

Anyway, a feature of Rhythmbox is emerging[1] that will make it much
easier to build rbpitch and maintain it in a distribution as an
out-of-tree plugin. The way out-of-tree Rhythmbox plugins are
currently structured in Ubuntu, each one gets its own package. Observe
the trend:

rhythmbox-plugin-coherence
rhythmbox-plugin-cdrecorder
rhythmbox-plugin-rbpitch [hypothetical]

What I propose is to include this package in Maverick. This will
alleviate the complicated build instructions and the need for users to
install development packages. Enabling it by default would be
flattering, but definitely not a requirement. Having it included in
the distribution would make me very proud, and would make the users of
rbpitch very happy. It would also greatly increase the user exposure
to this plugin.

I have never built a new package for Ubuntu before, but my main
confusion is that I don't know what the political / organizational
process is for seeing this through. I can technically figure out how
to create the Debian package scripts; but once I have that, what's the
next step to get it included in Ubuntu+1? That is why I am posting
here, the history of rbpitch and its current status: I would like
someone to help mentor me through the process of getting this new
package into Maverick. Presumably it will need to be evaluated on its
merits before inclusion as well, but I have no idea who to petition
for evaluating it in such a way.

[1] --> I say "emerging" because it's not 100% there yet. Rhythmbox
0.13.0 has provided support for building Rhythmbox plugins written in
C in an "out-of-tree" fashion. That means you can build them without
integrating them into the Rhythmbox source code and build system.
Contrast this with the status quo in Rhythmbox version 0.12.x and
earlier, where you had to build C plugins "in-tree". The problem is
that rbpitch is written in Vala. Vala plugins have the same
requirements as C, except it also needs a little bit of a push beyond
that: it needs (compile time only) language bindings. These bindings
are not in place as of Rhythmbox 0.13.0, but there is a very good
patch on Bugzilla that (hopefully) will get integrated into the next
release of Rhythmbox, which will enable this. See
https://bugzilla.gnome.org/show_bug.cgi?id=621246


Thanks,

Sean



More information about the ubuntu-desktop mailing list