Monthly Archives: July 2007

Ella Waltz 06032007

This post is a recording of the composition Ella Waltz by D.E. Jannon, which was published in 1854.

MP3: Lucas Gonze — Ella Waltz

Ogg Vorbis: Lucas Gonze — Ella Waltz

It is the third of a set of three waltzes by D.E. Jannon. I have also blogged recordings of Amy Waltz and Carrie Waltz. I don’t consider the series finished because I want to redo the Amy one, but who knows whether I’ll really come up with a better version in the end. It takes a ton of practice and a lot of trial and error with the arrangement to make one of these recordings, and I have other tunes that I want to move on to.

As I was learning the 3 waltzes I made up a back story for them. In my imagination they are named after D.E. Jannon’s three daughters. They are ordered from oldest to youngest. Amy is a teenager, Ella is a little kid, Carrie is in-between. Amy is going through a phase where she is hustling all the time and in a hurry to get away from her parents. Ella has been falling down, dropping things, running into stuff, and generally being accident prone. Carrie is moderate in all things.

The original writing on this tune had dead spots, places where the writing was thin or weak and needed fixing, so I rewrote many of the parts. My version isn’t as simple as the original, which is a loss, but it sounds better.

By the way, I got the name of this tune slightly wrong while I was working, and even though I corrected it in the end some of the metadata and file names are wrong. Right: Ella. Wrong: Emma.

http://memory.loc.gov/cgi-bin/ampage?collId=mussm&fileName=sm2/sm1854/732000/732150/mussm732150.db&recNum=3&itemLink=D?mussm:2:./temp/~ammem_7r3O::&linkText=0

These recordings are released under the terms of the Creative Commons Attribution-ShareAlike 3.0 license per my boilerplate licensing statement.

Scratch post for working out song posting process

This post contains my notes and scratch materials while I’m working on the song publishing process. It has to be public because I need to see the final public URI as part of the work. Keeping notes like this puts me in a position to write a program which automates the whole thing. It is vital that you only read the rest if you are an obsessive-compulsive open media software developer.

Licensing Steps

First, I’m need a stable URI for a blog entry before I publish it, which I need for Creative Commons metadata in a song file. I did that by setting the “post slug” in the WordPress blog entry editor. A final public URI can be gotten by appending that slug (e.g. “testingfixeduri”) to the blog URI root (e.g. “http://blog.gonze.com”). The final result in this case is http://blog.gonze.com/testingfixeduri.

Second, I need to set up the song file metadata in Audacity before I export to MP3 and Ogg. I plug in the above post URI to the fields WOAF and CONTACT, and plug in the URI of the license I am using (http://creativecommons.org/licenses/by-sa/3.0/) in the fields WCOP and LICENSE. Here’s what the metadata editor looked like when things were all ready:

Audacity Metadata Tags

It’s not clear to me that all of those tags made sense in context, though, since some were for MP3 and some were for Ogg, and there was no way to distinguish MP3 and Ogg tags in the editor.

Third, I export from Audacity to MP3 and Ogg.

Fourth, I need content-derived identifiers to publish as “verification metadata.” The way I do that from the shell on my iBook is like this:

lucas-gonzes-ibook-g4:~/Music/release/emmawaltz-06jun2007 lucas$ md5sum *
05387f19c7e084d324a92f8a7031a35d  EllaWaltz_06032007_final.ogg
6426f327e71665272c263cd42607b210  lucasgonze_EllaWaltz_06032007.mp3

According to the instructions on the Creative Commons wiki, I turn that into HTML by using this template code:

   <span about="urn:sha1:MSMBC5VEUDLTC26UT5W7GZBAKZHCY2MD">
        Example_Song.mp3 is licensed under
        <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>
    </span>

Given that I’m using the MD5 hash algorithm instead of SHA1, and that my own songs have their own hashes and licenses, I believe this is what I end up with:

   <span about="urn:md5:6426f327e71665272c263cd42607b210">
        lucasgonze_EllaWaltz_06032007.mp3 is licensed under
        <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY 3.0</a>
    </span>
   <span about="urn:md5:05387f19c7e084d324a92f8a7031a35d">
        EllaWaltz_06032007_final.ogg is licensed under
        <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY 3.0</a>
    </span>

On a practical level, though, this is gibberish, because I made up the md5 URN type and because I know of no consumers for this verification metadata. I am pretty sure that search engines and other bots will interpret this to mean that the embedding web page is under a Creative Commons Sharealike license, which is true only by accident and not relevant to the license on my song files. And that’s in the best case situation where I managed to correctly interpret the instructions from Creative Commons.

Note to crypto-weenies: I used MD5 instead of SHA1 because I happen to have a program to compute md5 hashes on this computer and I don’t happen to have a program to compute sha1 hashes. Please don’t carp at me — MD5 is secure enough for this application.

The last thing I need to be done with copyright is a textual explanation for the benefit of human readers, which is probably the only aspect of this rigamarole that will ever be used in practice. This is it:

These recordings are released under the terms of the <a href=”http://creativecommons.org/licenses/by-sa/3.0/”>Creative Commons Attribution-ShareAlike 3.0</a> license per <a href=”http://blog.gonze.com/2007/04/11/license-on-my-own-music/”>my boilerplate licensing statement</a>.

All together, this licensing jazz is a royal pain in the ass and most of it is not productive.

Gather media files

I make a new directory to hold all the files. This feels similar to packaging up open source software.

In Audacity I export to MP3 and Ogg Vorbis. I don’t export to a lossless format like Ogg FLAC in order to preserve the ability to sell lossless files for commercial uses.

I grab an image file of the sheet music.

I take a picture in the mirror to use as album art, then connect my camera to my laptop, import the picture into iPhoto, and export from iPhoto as PNG.

I grab a copy of the original sheet music from the Library of Congress web site. (I have previously checked the LOC copyright claims to confirm that this is OK).

Lastly, I upload these files and save the final public URL for each.

Create blog entry HTML

This is what I’ll need in the HTML:

   1. Composition metadata:
         1. Song title
         2. Song composer
         3. Publication date
   2. Links to all media files
   3. Link to source web site for composition
   4. Media player to render the song in-place
   5. Annotation about the music or recording
   6. Inline image for sheet music, linked to source web site

Here’s a template to fill in with all that, using square brackets ‘[‘ and ‘]’ to mark where I need to fill in items:

    <h1>[song title] [recording date]</h1>    <p>This post is a recording of the composition <q><a href="[Link to source web site for composition]">[song title]</a></q> by [song composer], which was published [publication date].</p>
<p>[Annotation about the music or recording]</p>
<p><a href="[Link to source web site for composition]"><img src="[Inline image for sheet music]" alt="[Link to source web site for composition]" /></a></p>
<div>
      <p>MP3: <a href="[]" title="[song title]" ><img src="[album art]" alt="" />Lucas Gonze -- [song title]</a></p>
      <p>Ogg Vorbis: <a href="[]" title="[song title]" >Lucas Gonze -- [song title]</a></p>
      <p>[Media player to render the song in-place]</p>
    </div>

Update July 11:

Here is PHP code for filling out the template HTML.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
$songtitle = "Ella Waltz";
$recordingdate = "July 3, 2007";
$linktosourcewebsiteforcomposition = "http://memory.loc.gov/cgi-bin/ampage?collId=mussm&fileName=sm2/sm1854/732000/732150/mussm732150.db&recNum=3&itemLink=D?mussm:2:./temp/~ammem_7r3O::&linkText=0";
$songcomposer = "D.E. Jannon";
$publicationdate = "in 1854";
$inlineimageforsheetmusic = "http://gonze.com/blog/wp-content/uploads/2007/07/emmawaltz.gif";
$linktoogg = "http://gonze.com/blog/wp-content/uploads/2007/07/ellawaltz_06032007_final1.ogg";
$linktomp3 = "http://gonze.com/blog/wp-content/uploads/2007/07/lucasgonze_ellawaltz_06032007.mp3";
$inlineimageforsheetmusic = "http://gonze.com/blog/wp-content/uploads/2007/07/emmawaltz.gif";
$albumart = "http://gonze.com/blog/wp-content/uploads/2007/07/lucasgonze_ellawaltz_06032007.jpg";

$annotationaboutthemusicorrecording =<<<END
<p>It is the third of a set of three waltzes by D.E. Jannon, though I don't consider the series finished because I want to redo the first one.</p>

<p>When I play this I imagine that the 3 waltzes are named after the composer's daughters.  In my imagination I think of this third one as being for the youngest, who is going through a phase where she falls down a lot, drops things, and otherwise has a lot of accidents.  I usually make up little stories along these lines about songs.</p>

<p>By the way, I got the name slightly wrong while I was working, and even though I corrected it in the end some of the metadata and file names are wrong.  The wrong name is "Emma Waltz."  The right name is "Ella Waltz."</p>

END;

print <<<END
<h1>${songtitle} ${recordingdate}</h1>
<p>This post is a recording of the composition <q><a href="${linktosourcewebsiteforcomposition}">${songtitle}</a></q> by ${songcomposer}, which was published ${publicationdate}.</p>
<div>
<p></p>
<p>MP3: <a href="${linktomp3}" title="${songtitle}" ><img src="$albumart" alt="" width="200" />Lucas Gonze -- ${songtitle}</a></p>
<p>Ogg Vorbis: <a href="$linktoogg" titl!e="${songtitle}" >Lucas Gonze -- ${songtitle}</a></p>
</div>
<p>${annotationaboutthemusicorrecording}</p>
<p><a href="${linktosourcewebsiteforcomposition}"><img src="${inlineimageforsheetmusic}" alt="${linktosourcewebsiteforcomposition}" /></a></p>
<p>These recordings are released under the terms of the <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0</a> license per <a href="http://blog.gonze.com/2007/04/11/license-on-my-own-music/">my boilerplate licensing statement</a>.</p>
END;
?>

digital locker progress report

On June 26 I blogged that I was checking out the MP3tunes locker service, and that it felt like there was something worthwhile there.

What I liked was being able to access the music files I keep on my home PC from work, as well as having a backup. I could hack together my own solution to enable this, but it would be a fair amount of hassle and potential expense to come up with enough disk space.

The down side became apparent pretty quickly, though — disk allocation is all or nothing.

MP3tunes had a 1GB cap on the size of my locker unless I bought their premium services. I wasn’t going to pay, and 1GB is too small a portion of my personal cache to be useful. I fiddled around with what little music that was, but it just made no sense. I do maintain a 4GB subset of the total for listening on my portable, but I’m not going to do that for an even smaller 1 gig subset that I don’t care about much in the first place.

So I didn’t come back to MP3tunes after the first couple days.

The most recent development is that I got this email:

Congratulations! Your 1 GB Oboe music locker has been upgraded to UNLIMITED STORAGE.

Yes, we said unlimited storage for all of your music – FREE! (no catch, no credit card, completely free)

That’s clearly the right thing for me, so I’m now going to go back and upload the rest of my cache.


The deal with whether you get unlimited storage or not is a little whacky. At sign-up time you are in a lottery to see whether you will get unlimited or limited storage:

PLEASE NOTE

Unlimited Storage is available for a select number of sign-ups each day. Sign up for Oboe Free and start syncing to be first in line. Or get unlimited space now – sign up now for Oboe Premium.

And now I have learned that after you accept a limited size locker you automatically get upgraded to unlimited, meaning that there is no size limit as long as you can wait and are willing to put up with initial inconvenience.

I don’t think they care about the disk space, I think that they care about price discrimination. If they can get somebody to be a premium customer, that’s clearly more profitable than an ad-supported customer, so they put on the screws. But the underlying product is almost exactly the same thing.

What I read from this is that the business is not so great at selling ads at this point. They’re probably generating little or no profit on the ad-supported business. Otherwise they would remove all limits on locker size. This would maximize the number of users and make their business model more scalable.

Checklist for a blogged song

Publishing your own music on the web is an unrealistically big job. It’s easy if you just want to dump an MP3 somewhere, but good luck if you want to do a solid job on SEO, viral uptake, and the conventions of open media. And because it’s so time consuming, almost nobody does it. You wouldn’t have time left over for the music.

So I’m looking for ways to streamline the process, and to begin with I have compiled a checklist of work items and features. This list is an ideal; I have never done all of these for any one song. Even though I had most of this in my head it still took quite a while to compile and tidy up the list, so I figured it would be useful to others if I published it. I’d appreciate comments, corrections and improvements.

Files

  1. Image file for sheet music
  2. Media files
    1. types
      1. MP3
      2. Ogg FLAC
      3. Ogg Vorbis
      4. A zip file of source materials for remixing, such as Audacity files and any samples
    2. tags
      1. Author name
      2. Recording year
      3. Song title
      4. Work metadata URL
        1. In MP3: use WOAF tag
        2. In Ogg: use CONTACT tag
      5. License URL
        1. In MP3: use WCOP tag
        2. In Ogg: use LICENSE tag

Blog entry

  1. Composition metadata:
    1. Song title
    2. Song composer
    3. Publication date
  2. Links to all media files
  3. Link to source web site for composition
  4. Media player to render the song in-place
  5. Annotation about the music or recording
  6. Inline image for sheet music, linked to source web site

Viral spread

  1. Code to copy and paste for embedding a badged version of the media in a third party page like a Myspace profile.
  2. A direct URL for the media file.
  3. A statement that direct linking or embedding is fine.
  4. Buttons to add to del.icio.us, Digg This, etc.

License statements

  1. Unstructured textual license statement for humans to read on the web.
  2. SEO: search-engine friendly license statement in the HTML. Spiders have to be able to recognize that a song file is under a Creative Commons license.
    1. Identify search engines that track Creative Commons music.
    2. Document what methods they use to determine whether a file is under a Creative Commons license.
  3. Creative Commons requirements
    1. Web page where the work metadata, including verification information, may be found.Verification metadata is currently defined in principle but probably not used in practice. Verification metadata means :
      A content-derived identifier (e.g. SHA1 hash) or other independently verifiable identifier.
      A SHA1 hash of the media file would have to be applied to the final file, with all tags exactly as they will be at final publication. Given that the URL of the web page containing work metadata, including the content-derived identifier, has to be created and embedded in the media file before the media file can be finalized, the publication process must be:

      1. Create stub web page for work metadata. Get a stable public URL for this.
      2. Embed link to work metadata page in media file.
      3. Compute SHA1 or other content-derived identifier for media file.
      4. Embed content-derived identifier in work metadata page.
    2. License URL. For example, http://creativecommons.org/licenses/by/2.

    Creative Commons reference:

    1. Non-web license tagging overview
    2. MP3 CC tagging
    3. Ogg CC tagging