« rbpitch Needs Testing!PulseAudio 0.9.13 on DamnSmallLinux (Not) »

rbpitch Is Here!

10/28/09 | by Tiyuk Quellmalz | Categories: Uncategorized

rbpitch is a new plugin for Rhythmbox that provides pitch, tempo, and speed shifting during music playback. It is in an early beta stage; I am trying to solicit user feedback, determine whether people are interested in this, and generally build a case for including it as an official plugin in the vanilla Rhythmbox source tree. Failing that, I’d like to get it contributed to distros as a patch set.

So far I’ve started a few IRC discussions about it, a mailing list post on rhythmbox-devel, and a forum thread on ubuntuforums. I’m open to both technical and non-technical discussion about this plugin. This has been occupying quite a bit of my time.

I have begun wondering why I spend so much time on this at all. Does anyone really care? Will anyone actually use it? Will the Rhythmbox maintainers ever pick up this plugin? Will distros ever include it by default?

As these questions race through my mind, I begin to question whether I should bother to promote this project further. I guess I will give it a few weeks in the hopes that people will pick up on my various outreach attempts and reply. If I really get zilch in response after a month or so, I’ll probably give up my pursuit of fame and mass deployment and just use it locally for my own purposes. Either way, it is an interesting success story of the Vala programming language; it took me less than 400 lines of Vala to implement the plugin, and it is fairly robust. About 100 lines of that are just comments, and another 100 lines of whitespace. So the program itself is really quite simple, especially if you discard all the checks I perform, some of which may be logically impossible to trigger the failure mode of. Although the program is short, concise, elegant and well-documented, it’s not a masterpiece of engineering: it’s almost too simple to be considered a meritorious software contribution.

But the experiences I gain from working on rbpitch will serve me well in the future, as will the plugin itself. So I am ultimately satisfied with my efforts on this project, even if it goes no further than it already has by my own doing.

Obligatory screenshots:

7 comments

Comment from: Michal Pěnka [Visitor] · http://michal.penka.name
This is exactly what I've been looking for for many years!

I wish you the best with the plugin. Rhythmbox rulezz then ;)

Thanks for your effort!
11/02/09 @ 15:57
Comment from: Jiří Zárevúcky [Visitor]
One thing bothers me. How many people actually need this functionality in an audio player?

It's definitely a nice addition, that's for certain. But I think very few people will use it. Adjusting tempo, speed and pitch - that's an audio editor thing, not something an ordinary music consumer will ever need.
02/10/10 @ 14:31
Comment from: Tiyuk Quellmalz [Member]
It's 1998. I'm Joe Hacker using a primarily console-based GNU/Linux environment. My editor of choice is vi.

Then someone submits a patch to vi that adds syntax highlighting for C.

Being the traditionalist I am, I reply to the patch saying "One thing bothers me. How many people actually need this functionality in a text editor? It's definitely a nice addition, that's for certain. But I think very few people will use it. Coloring text for code syntax -- that's an IDE thing, not something an ordinary text editor user will ever need."

And now you can hardly find any text editor that *doesn't* have syntax highlighting.

Do you see my point?

It may not be immediately obvious why cool new features are desirable or needed. But once people start using them, they expect them to just be there. It takes a while for any given feature to get a household name, but most features that are purely additive (i.e. which don't detract from anything or make the program worse / slower / etc) acquire this status after a time.

In my readme.txt file here ( http://tiyukquellmalz.org/cgit/rbpitch/tree/plugins/rbpitch/README.txt ) you can find some actual, practical uses for this where an audio editor is much too inconvenient for this simple change. Besides, I don't know of any audio editor for Linux that can do this *in real time* as conveniently as rbpitch. Audacity can do it, but you have to go through a popup dialog and wait for it to process the entire file (which takes quite a while) each time you want to do it. If you want to change the semitone shift from 0.1 to 0.2, guess what, you have to go through the dialog yet again, not just continuously drag the slider as you listen.

Practical uses aside, think about the "toy" aspect of it. Isn't it kind of neat to listen to a song in a different key? Have you never, ever wondered what it would be like if your singer were just a bit older and had a lower tone of voice, or perhaps even shift it up so that a male singer sounds more like a female? All of this and more is possible with rbpitch.

Maybe you don't think it's neat, but apparently some people do: http://discussions.apple.com/thread.jspa?threadID=1858576 http://www.digitalhomethoughts.com/news/show/27496/pitch-shift-songs-with-chronotron.html http://xltronic.com/mb/72721/winamp-pitch-shift (and the list goes on).

Every other platform has solutions for easy pitch shifting in real time, so why not the Free Desktop? Hence rbpitch was born.

You're welcome to still think that this feature is totally useless and not needed, but if every feature that anyone thought was useless was not included or ignored because of that fact, then there would ever be exactly zero features for all programs ;)
02/10/10 @ 16:09
Comment from: Tiyuk Quellmalz [Member]
BTW, here is a short list of features that may seem superfluous at first, but which have acquired a "must-have" status for me, after I got acclimated to them:

*Online bookmark sync in the web browser (del.icio.us, xmarks, google bookmark sync, etc)
*"Recent files" menu item in programs that operate on files (gedit, GIMP, etc)
*Performing a search via the address bar, a la Google Chrome
*Ad blocking in the web browser (adblock, adblock plus, privoxy, etc)
*Locking the screen so a password is required to continue operating the computer
*Suspend to RAM

Sure, we can not have all of these features and the software will continue to work as it is, but we would lose the convenience, productivity, or cool factor of these features. And that's called stagnation. We already have a healthy dose of *that* in the GNOME world; I thought it might be nice to stir up the waters around Rhythmbox a little bit. But don't worry, now that I've written a plugin, I'm going to naturally resist changing the Rhythmbox APIs, so I will soon join the legion of stagnation when some upstart tries to rewrite Rhythmbox ;)
02/10/10 @ 16:32
Comment from: Jiří Zárevúcky [Visitor]
Ok, aside from the fact you've chosen very bad examples (can you honestly believe adjusting pitch for music has half the value of any of the things you mentioned?), I agree it has some uses. I'm just saying many people, like me, will probably never use it. I listen to music the way it's recorded and I don't need to practice singing it or dancing with it. That's what I mean by "ordinary music consumer". I think you just utterly misunderstood my point and that's probably the reason I had to read your essay on completely unrelated topic. :) Anyway, keep at it. For many other people, it will be a nice useful feature.
02/11/10 @ 15:11
Comment from: Tiyuk Quellmalz [Member]
I think the "value" of software is relative to what a person does with their computer -- to some people (e.g. musicians), the lack of pitch/tempo shifting could be a rather major hole in the Free Desktop. And then they have to run some proprietary software package under wine in hopes of getting equivalent features. Or they just go back to Mac or Windows.

You can also rate the "value" of software based on utilitarian principle, i.e., how many people it helps, and to what extent. Maybe by that definition, rbpitch is not such a significant advance. But if you think about the amount of enjoyment / convenience it can provide to the few individuals who find it useful, I think that meeting the needs of that target audience (no matter how small) legitimizes this plugin as something that is worthy of going in rhythmbox master.

Once the code is cleaned up, bugs are fixed, etc., I will submit a pull request. But I would be totally fine if the Rhythmbox maintainers want to disable it by default to reduce bloat. You already have to run ./configure with --enable-vala flag to build the plugin at all, and rbpitch is currently the only Vala plugin for Rhythmbox that I know of, besides the sample plugin which does nothing.

I would simply like the software to be widely available. Whether it's widely in use is not of concern to me. In binary form, the entire plugin directory consumes 100776 bytes on amd64, with debugging symbols stripped. Those bytes might matter on crammed Live CDs, and they certainly matter on embedded (who installs Rhythmbox on embedded?), but they have no significance in an installed system with any degree of modern mass storage hardware.

I know you weren't trying to start a flame war, so I see no point in precipitating it. So I have just stated a few facts here that describe why it wouldn't hurt to include rbpitch.

And I hope you don't take my comments on the value of software out of context -- I am acknowledging that there are (at least!) two ways to measure the value of a piece of software, and depending on which method you choose, the software will seem to have a different value. I find both methods useful depending on the circumstances :)
02/11/10 @ 17:15
Comment from: Thomas Edwards [Visitor]
I play guitar and this is exactly what I've been looking for. Now I don't need to retune my guitar to play songs that are in non-standard tuning, I can just adjust the pitch slightly. Also the tempo feature is very useful for practising songs on guitar.

I think anyone who plays guitar and uses linux will find good use for this plugin.

Thanks for developing this plugin :)
06/25/10 @ 07:11

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
July 2010
Sun Mon Tue Wed Thu Fri Sat
 << <   > >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Search

XML Feeds

multiblog platform