Saturday, May 7, 2011

Installing Self-contained Executables in Ubuntu

Since I started using Ubuntu/Linux about 5 years ago, I've enjoyed an array of open-source programs available to me for free download. Many of the programs I make daily use of like office suites, web authoring interfaces, browsers, media players and system tools. This development has allowed me to largely abandon Windows as a platform except for the rare instance when I must use it for client work.
 
But there are several programs I use that are not available in the Ubuntu repositories. They're programs that are not supported or recommended by Canonical, or are specialty, proprietary programs for which a GNU/Linux version is available, but not packaged for a particular distribution by the developer. These programs are usually provided in the form of a self-contained binary that, once extracted from its compressed archive, will run directly from the location of the extracted directory on the system. This poses a small challenge for someone who likes a tidy filesystem. If you extract the folder to your home directory, it's only available to you from the user account you originally installed it on. If you extract it to your Desktop, well, that's just not very orderly.
 
In this post, I'll show you how to download an archive with a self-contained executable program and extract it in a central location available to you from any user account (or multiple users on a shared system). You'll also learn how to link the program command to a common folder in your $PATH and how to create a menu shortcut to easily access the program for all time (or until you scrap your partition and install a fresh OS). This demonstration will be performed with Ubuntu 11.04 (classic GNOME). Older versions of Ubuntu will most likely be identical for the purpose of this tutorial. We'll also be using the command line. Let's get started.
 
Download and install the program
 
Follow this link to the download page for Mozilla Sunbird, a standalone calendar program (Sunbird is no longer in development and is not in the Ubuntu repositories for 11.04). Download the archive for “Linux x86, English” to your Desktop (or “Linux x86-64, English” if you're running a 64-bit version of Ubuntu). At this point, open up a Terminal window and switch your working directory to the Desktop: cd Desktop
 
Now, you'll need to move the archive to a more central location where the program will eventually run from. I like to use the /usr/local directory. Also, since you're working in a system directory, you'll need to make use of the “Super User” command or “sudo”: sudo mv sunbird-1.0b1.tar.bz2 /usr/local/ (to avoid typing lenghty file names, you can type the first few letters and hit “tab” to let Bash auto-complete the file name for you). Type in your password when prompted. Now, change your working directory to “/usr/local/” by typing cd /usr/local/
 
Type the command ls to list the contents of /usr/local/ You can see that the compressed archive was successfully moved. Now we must extract the program files and directories from the archive: sudo tar -xjf sunbird-1.0b1.tar.bz2
 
At this point, let's open a file manager window and see what we've done. Open your home folder, type ctrl.+L and type /usr/local/sunbird/ into the address bar. See all the files you've put in the /usr/local/ folder? If you double-click on the file named “sunbird” it will launch the Sunbird Calendar (click the “Run” button when Ubuntu asks about whether to run the executable file or display its contents). From here on out, Ctrl.+click any images to view them at full size in a separate browser tab or window.
 

Place a link to the program in your $PATH
 
Now that Sunbird is successfully installed, let's place a convenient link to the program in your $PATH. Your $PATH is a list of directories your system looks in when you issue a command, to launch a program for example. If a command is not in your $PATH, Ubuntu will complain to you that the command you requested doesn't exist. /usr/local isn't in your $PATH, so we're going to create a link to Sunbird in a directory that is. This will save you from having to type /usr/local/sunbird/sunbird to launch the program. Instead, you can just tell Ubuntu, sunbird and Ubuntu will dutifully oblige. To learn which directories are in your $PATH, type echo $PATH in a command terminal.
 
The directory /usr/local/bin/ is a subdirectory of /usr/local/ (where the sunbird directory is now located), so that's an obvious choice. Create a link in that directory by typing sudo ln -s /usr/local/sunbird/sunbird /usr/local/bin
 
Go back to your file manager and click through to /usr/local/bin. Now you can see that there is a link named “sunbird” Double-clicking this link will launch the program. The Sunbird Calendar program is now installed, and a link is now conveniently located in your $PATH.

Cleaning House


Now that Sunbird has been successfully installed, we can get rid of the downloaded archive. Back in the terminal window, type in sudo rm sunbird-1.0b1.tar.bz2 Listing the contents of /usr/local/ by typing ls will reveal that the archive has been deleted.


Create a menu shortcut

You've now installed Sunbird globally on your system and can launch it from a terminal by simply typing sunbird But how 'bout a menu launcher? Ubuntu makes it easy. First, right-click on the menu icon in the top-left panel and select “Edit Menus.” That will open a new dialog.
 

In the left pane, choose the “Office” category. Then, in the right pane, click the “New Item” button.
 

In the “Create Launcher” dialog, give the program the name “Sunbird.” Type in "sunbird" (without the quotes) for the command and then write a brief description. Finally, click on the launcher icon button to the left.
 

In the window that opens, browse to the best icon for Sunbird (/usr/local/sunbird/icons/mozicon128.png) and select it. Then click “Open,” and then click “OK” back in the “Create Launcher” dialog.
 

Now, close the “Main Menu” dialog to quit editing the menus. Click on the main menu icon in the top left panel, highlight “Office” and then “Sunbird” and then click “Sunbird.” Sunbird now opens.
 

Congratulations! You've just globally installed a self-contained executable, created a shortcut in your $PATH and added a custom launcher to your main GNOME menu. Isn't GNU/Linux great?

Sunday, May 1, 2011

A blog post using GNOME-Blogger

This blog post is being written using an applet called GNOME-Blogger. There are others I'd like to try out as well. I don't know if anything will beat OpenOffice.org or LibreOffice with the Sun Weblog Publisher because of the fine control I have over appearance and formatting, but we'll see.

Saturday, December 11, 2010

More Slick Desktops

Several months ago, I posted some shots of GNU/Linux desktops I'm using to demonstrate open-source music software for my writing project. At the time, I promised some shots of Linux Mint and Ubuntu Studio. Here are some shots of Linux Mint.


Linux Mint 9 Isadora with the Avant Window Navigator dock along the top and the Faenza Mint icon set.


With a terminal window open.


Linux Mint 9 Isadora with the Ambiance Mint theme, Faenza Mint icon set and DockbarX (a Windows 7-like dockbar).


With a terminal window open.

It's my hope that by cobbling together and presenting some really beautiful GNU/Linux desktops, some readers who are Mac and Windows users may be inspired to give Linux a go.

I'll post some images of Ubuntu Studio when I can. 

Copyright © 2010 Stocker Enterprises, Inc.

Wednesday, August 25, 2010

Working with videos in Transcribe!

In this post, I'll show you how to set up Transcribe! with Apple's Quick Time and use it to transcribe music from video found on the web (under Microsoft Windows). All of this information is available in the Transcribe! documentation, but it took me a little digging, so I'm doing a step-by-step here.

Requirements:
  • Microsoft Windows XP/Vista/7 (this procedure was tested on Windows XP)
  • Transcribe! from Seventh String Software
  • Quick Time from Apple
  • Mozilla Firefox web browser (for downloading video from “tube” sites).
First, download and install the latest Quick Time from Apple. If you have iTunes, then you probably have Quick Time installed on your computer already. Next, download and install the latest version of Transcribe! from Seventh String Software. Now, get the latest Firefox from Mozilla, if you don't already have it. Finally, get the Video Downloader from ffpimp.com: While viewing this post in Firefox, click this link to go to the download page. Click on the green “Add to Firefox” button. In the resulting dialog, click the “Install Now” button to install the Video Downloader.(Ctrl.+click images to view them at larger resolution in a new tab or window.)
Firefox will prompt you that it needs to be restarted to finish the installation. Go ahead and click the “Restart Now” button to restart Firefox (your session will be saved and any pages you were browsing will reappear when Firefox is finished restarting).

Now we're ready to go to YouTube and get a music video to work on. Point Firefox to YouTube and search for a music video.

Now, YouTube shows videos using the Adobe Flash plugin. But for Transcribe!+Quick Time, we need video that's in Quick Time format. Fortunately, most of the videos on YouTube are available in Quick Time format as an alternate. To get the alternate format, you have to alter the url in the address bar by adding "&fmt=18" (without the quotes) to the very end and pressing “Enter” on your keyboard. The browser window will now refresh, loading the Quick Time version of the video.
Now that we have the right format, download a copy of the video using the Video Downloader. On a toolbar above your browser tab, notice the colored “filmstrip” icon with the words “Save Video” to the right. Click this icon. If you're given a choice among different titles, choose the one that matches the title of the desired video and also has the extension *.mp4, which is the extension for Apple Quick Time format.
Choose a convenient location to save the file. If Firefox downloads it to a default location, and you don't know where that is, open the “Downloads” window (Tools: Downloads or Ctrl.+J), right click on the file from the list and choose “Open Containing Folder.”

Now you can close Firefox and open Transcribe! Once Transcribe! is up, click the “Open” icon and browse to the location you saved the video file. Select the file and click “Open.” Transcribe! opens, along with a Transcribe! video window. You can now listen to and view the video, and harness the tuning and speed control features of Transcribe!

Monday, July 19, 2010

Open-Source Applications for Music Education - Launching

Update: In the wake of Examiner.com's ill-fated "upgrade" to Drupal 7 (and subsequent loss of essential publishing features), I've migrated my work in this area to it's own self-contained blog on Blogger.

In the coming weeks I will begin writing tutorial articles for Examiner.com on open-source programs of use to Music Educators. My goal is to raise awareness of open-source solutions among educators generally and Music Educators specifically. Especially as educational institutions begin trending back toward open-source technology (and away from expensive licenses), I'm anticipating a vacuum of sorts for music teachers in particular. Many of the free alternatives to software music teachers (and musicians generally) rely upon are almost unknown to them. I hope to use Examiner to gain visibility for these applications and maybe generate some buzz about my own work in this area.

As I've set out to start this task, I've set some limitations and guidelines for myself and for the project:
  • Software demonstrated must be available on all three popular platforms: Windows®, Mac OS and GNU/Linux
  • Each concise article will demonstrate a specific application's features and their use for a specific purpose. Each article will be a self-contained project that will be immediately useful to music teachers.
  • New or derivative works created for the purpose of demonstrating the applications (a new work for strings, for example) will be licensed under a Creative Commons license.
  • Articles will be accessible to those with basic computer skills (that is, they don't have to be computer whizzes). To achieve this, I'm going to include helpful screenshots that are pertinent to the procedures outlined in the articles, interleaved with the text.

Bearing in mind that any screenshots of programs running under a GNU/Linux platform are a tacit advertisement for open-source operating systems, I've set about cobbling together some desktop art and interfaces on which to demonstrate the software. I spent some time searching the web for some really top-notch desktop wallpapers and GNOME themes to make the desktops as efficient and attractive as possible. I set out to make these desktop environments as clean and inviting as I could, so I'll leave you with shots of those desktops, with captions detailing a little of what's under the hood. Throughout the post, you can click on images to view them at larger resolution.


Ubuntu 10.04 LTS with the “Ambiance” theme and Avant Window Navigator (the dock). An Emacs buffer is open and I'm using the “Slick Workspace Switcher” applet to view the available virtual desktops.


With a Terminal window open.


Ubuntu 10.04 LTS with the “Human” them and DockbarX along the bottom.


With a Terminal window open.


Ubuntu 10.04 LTS with the “Human” theme and Avant Window Navigator. I'm using the AWN Main Menu applet to view the different categories of applications and utilities.


Using the “Slick Workspace Switcher.”

In the coming days, I plan to post some more shots of desktops in Linux Mint, Ubuntu Studio and maybe the new OpenSUSE. Stay tuned...

Copyright © 2010 by Stocker Enterprises, Inc. 

Wednesday, March 3, 2010

Sun Microsystems WebLog Publisher extension for OpenOffice.org


Look what the Sun WebLog Publisher extension for OpenOffice.org can do. I can format my text the way I want to, and the formatting carries over when I publish my post—all without ever even opening a web browser to edit my post. It can even do this:


\version "2.13.13"

\include "english.ly"

\score {
\new Staff = "Guitar" {
\clef "treble_8"
\key a \minor
\time 4/4
\numericTimeSignature
<<
\new Voice = "notes" {
\relative c {
<c a'>8 <b gs'> <c a'> <d b'>
<e c'> <f d'> <e c'>4
}
}
>>
}
}

A whole block of text in monospace, just like it would appear in my text editor when I'm working on source files. That Rocks!!


Hyperlinks are easier to deal with too, since I can specify the target frame in an OO.o dialog instead of having to manipulate the html code in Blogger's browser interface. Nice!


Next, I'll give it a go with pictures and graphics. We'll see how Blogger handles it.


Sunday, February 28, 2010

LilyPond: abusing \glissando to indicate scale runs on parallel strings


Fingering indications are ubiquitous in most written music, and this is especially true for Guitar music. There are seldom fewer than two or three solutions for a given passage of music and with all the editorial markings in common usage, Guitar music can quickly become cluttered. The job of the engraver is to creatively use a minimum of editorial markings to convey the maximum amount of information. For example, in the case of a scale run in thirds or sixths, it's more useful to indicate the strings the notes are played on rather than print each individual fingering for each individual note. Marking the strings intended for the scale run rather than the fingers used eliminates clutter on the page and concisely shows the composer's or arranger's intent. In this post, I'll demonstrate how to notate scale runs on parallel strings in Guitar music by using the \glissando command in invisible voices, along with \tweak and some other LilyPond magic.


First, open your favorite text editor and create your new LilyPond input file. Save it to a convenient location with the name “string_run.ly” For this demonstration, I use GNU Emacs, which has good LilyPond syntax highlighting. Syntax highlighting is useful for quickly spotting mistakes in the code. (Ctrl+click on images to display them in a separate window at full size.)
Go ahead and set up your input file by first typing a version statement, and setting up the basic structure of the file. In the examples, pay close attention to the comments (text following a %), as they tell you how each of the elements in the input file affects the output. Take a look at Example 1, and see the what the structure of the input file is like. Example 2 shows in more detail what each of the commands and and context indicators does in LilyPond.

Example 1


Example 2


Now, let's set up our staff for Guitar by putting in the clef, key signature and time signature commands in the Staff context. I'm writing the example in A Minor with a meter of 4/4. Next, it's time to add our scale run. Type in a run in thirds or sixths. I've chosen a short run in sixths. Let's compile the example and take a look (from here on out, Ctrl.+click on the images of music to view the source code in a separate tab or window).

That's beautiful isn't it? Now, let's get to work on the string indicators. For that, we're going to add a voice above and a voice below. Eventually, these voices will be invisible, leaving only a string number indication, and a long glissando line for each voice. To position the glissando line and set its angle, we'll set the notes strategically. The glissando line should be parallel to the overall trajectory of the line of music. You'll arrive at your own solutions through experimentation. Take a look.

Let's move the string number so that it appears right on the notehead, using the \tweak command. Put the command between the note and string number. This \tweak will affect the extra-offset of the string number, which is expressed as a pair of values—one each for the horizontal and vertical placement relative to the mark's normal default position. View the source code to see how this is done.

So far, so good. Now let's add the lower string indicator in the same manner. Since the string number's default placement is above the note, even when the note is below the staff, we'll need to specify a different default placement for it in LilyPond. I've told LilyPond to put the string number below the note for this voice, so that it will appear below the staff. This is done with \set stringNumberOrientations before the string number is called.

Great. Now let's clean it up. You'll notice that LilyPond shifts voices left or right to avoid collisions in multi-voice textures. This is usually the desired behavior. However, here we want the voices to all align vertically, so we'll add an \override to the first voice to tell LilyPond to ignore the note collisions. Also, in the “glissando” voices, add the \hideNotes command before the notes. And there you have it.