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