Tuesday Feb 09, 2010

Installing and running Fluidsynth on OpenSolaris

I'm a sucker for a good multimedia package.  I love playing with software that does movie playback on encoding, audio playback, transcoding...you name it, I love playing with it.  So naturally I was pretty psyched to see that somebody has contributed the Fluidsynth software synthesizer package to OpenSolaris.  Here is what I did to install it and run it in order to prove that the package actually works.  (here's a spoiler for you: it does work.)

Fluidsynth was put into the OpenSolaris "pending" repository, the idea being that people will check it out and if it's deemed to be of reasonable quality, it'll get voted into the contributed software repository.  The "contrib" repo is where good packages go after they've been testing in the "pending" repo staging area.  We haven't voted on Fluidsynth yet as of the time I write this; I'm hoping that will change after people read what I've done here.

(note: for my testing, I am running OpenSolaris build snv_111b)

First things first: set up OpenSolaris to find packages from the Source Juicer "pending" repository with these two steps:
  1. type "pfexec pkg set-publisher -O http://jucr.opensolaris.org/pending jucr-pending"
  2. type "pfexec pkg refresh"
Next, I launched the Package Manager application and chose the "jucr-pending" repository from the pop-up menu on the right side of that application's user interface.  After Package Manager thought about its new catalog of apps for a moment, I saw a list of hundreds of packages available to me.  I used the search field to type "fluid", and found the "fluidsynth" package.  Selected that, saw that it lists several other packages as dependencies (i.e., those other packages had better be installed for Fluidsynth to work correctly), then I installed it.  Nicely, the Package Manager installed Fluidsynth and its dependent packages for me.

At this point I ran into a little snag, which is not the fault of OpenSolaris: I'm testing this within OpenSolaris, but OpenSolaris is running as a VirtualBox guest on my Mac Book Pro.  Turns out that audio support in OpenSolaris under VirtualBox needs a little bit of work to get going.  It's easy enough, though, and took less than five minutes to get it working.  The instructions on how to make it work are in this blog post, which is clearly written.  And I had fewer problems than were mentioned; I didn't have to reboot or uninstall the "SUNWaudiohd" package.  Good times!

At this point, my big challenge was where to find two files to test Fluidsynth: a sound font (basically, a description of instruments that Fluidsynth uses to play music), and some music (a MIDI file).  I did a Google search to find a nice Yamaha DX-7 electric piano sound font (I happened to find it here), and it was easy to find any number of .mid files to play.

To test, I typed "fluidsynth <name-of-sound-font.SF> <name-of-MIDI-file.mid>".  That worked just fine: I heard the music loud and clear, although Fluidsynth complained that there is no /dev/midi.  I believe it is expecting me to connect a MIDI keyboard to the computer and start playing, which is not necessary for this test.  Also, Fluidsynth had to re-map some of the MIDI file's preferred instruments to what was available in the sound font's instrument library.  Not a problem, though.

Just for fun, I tried turning off the built-in chorus and reverb effects, and I boosted the amplitude to see if these features worked:

"fluidsynth --chorus no --reverb no --gain 0.8 <name-of-sound-font.SF> <name-of-MIDI-file.mid>".  I also tried changing these parameters individually to isolate the effects.  Again, this worked fine.

As far as I can tell, Fluidsynth works perfectly well on OpenSolaris.  It should make a fine addition to the contrib repo.

Powered by ScribeFire.

Wednesday Dec 16, 2009

Movable Type Finally Makes It To The "contrib" Repository

Okay, so that title probably needs a little bit of explaining, if you're not following the saga of the OpenSolaris Source Juicer on a daily basis as I am.  I'll get back to the good news about Movable Type 4.31 in a bit; meanwhile, here's the deal with the "finally" part of this entry's title:

Sun's ISV Engineering group has been working for a while to get a pile of open source applications into the OpenSolaris "contrib" repository, which is to say, a place where you can look to find extra stuff that doesn't come with the stock OpenSolaris release.  "contrib" is by no means the only repository of cool extras -- check out the multimedia repo for example -- but it's a good place to put apps in general.  So we do.

We use this thing called the "Source Juicer"; it's a robot that builds software packages from source code, if you give the robot some instructions on where to grab the source from the web, what other software the app depends on, and how to build the app.  Once built, you ask people to test the app and vote on whether it's good-to-go or not.

Every once in a while, the Source Juicer people decide to look at the list of apps that have been favorably voted on, and they promote these apps from a repository called "pending" to the "contrib" repo.  If you look at this list of apps that have been so promoted, what you'll notice is that for the past almost-a-month, the only guy who's gotten his apps promoted are some dude named "Roboporter"; that's not a nickname, that's a clever mechanism the Source Juicer folks use to get a whole big batch of packages into a repo if it looks like the rules for building those apps are really straightforward, or really similar to other apps they've set up for the roboporter.  The roboporter is another 'bot.


We've had Movable Type in the "pending" repo for a while now, and we've had it tested and ready to go for over a month.  (here's proof)  Finally, Eric Reid tells me that the app got promoted into the contrib repo.

Bottom line: if you like the Movable Type blogging engine, you've now got a simple way to create a blog site, protect its data, or to do development and test snapshots of sites you create with Movable Type.  Just install it on OpenSolaris and ZFS will make your data nice and safe.

Check it out, let us know what you think.

Powered by ScribeFire.


The views expressed on this blog are my own and do not necessarily reflect the views of Oracle. What more do you need to know, really?


« July 2016