Tag Archives: Music

Relaunch of Yingwen’s website

I finally got around to finishing the upgrades on Yingwen’s piano teaching website last Sunday. Talk about taking one’s time…

Anyway it looks fabulous. Used the Piano Black theme by mono-lab, and hacked it up good at Open Web Camp for the mobile audience. Try it on iPhone or Android.

Yingwen has quite a growing studio. With her better students now winning competitions, she’s building up quite a demand for piano lessons. Most of her piano students come from Danville and San Ramon, particularly from the Blackhawk and Windemere areas, but some drive an hour or more for lessons now. Crazy… Check her out at yingwenlewis.com

Metronome practice tips

In response to @HansOngchua regarding how to best use a metronome for efficient practicing, I came up with this list, which was too long to fit into a Twitter message:


  1. Plan your practice session. Organize which sections of which pieces you need to work on. Figure out how much time it is going to work on each section and to play through an entire piece if that’s part of your plan.
  2. Practice in chunks. Don’t just set the metronome and plow through your music. Mark off the sections that need attention and deal with them separately – working out the kinks – before you try to play the piece all the way through.
  3. Start your metronome at a tempo where you can play the section absolutely flawlessly – everything is in place: technique, rhythm, notes, phrasing, tone, etc. No compromises. Starting anywhere faster and you’re going to be practicing making mistakes.
  4. Take the above tempo and lets assume it takes 4 minutes to get through it at an 8th-note tempo of 60 bpm. Up to the target speed, it takes 1 minute at 120 bpm. If you’ve set aside 10 minutes of your practice schedule to work on this passage, then you should set the metronome for ♪=60, ♪=80, ♪=100, ♪=120.
  5. Don’t set the metronome for faster than you can play it. If the above scenario is unplayable at ♪=120, try a lower target and compress the in-between metronome markings to fit proportionally.
  6. Subdivide. I indicated eighth notes above, but these could just as easily turn into quarter notes, half notes, or whatever. It is not uncommon to start in eighth note subdivisions and wind up later on in quarter note subdivisions.
  7. Make sure the metronome is loud enough. Plug it into speakers or headphones if necessary.
  8. I almost never use a metronome when playing a piece all the way through. The exceptions to this are when I’m learning notes and want to build technique for a work up to a certain point. But after a while, I break it out into separate sections to work on, so that I can keep certain parts open for rubato, phrasing, and pauses.
  9. But the key question @HansOngchua asked was of course how to keep tempo during a performance. Unless the piece is some robotic vivacissimo etude, I think the tempo is likely going to fluctuate a bit based on human interpretation regardless. But in general, I try to keep an internal sense of tempo. When I’m performing a work, I go back to that internal sense of tempo from time to time to get things back on track. I think this has less of a chance of being “off” when the performer is confident and not distracted by nerves.

Why hosting LilyPond music projects as open source Git repositories is good

For those of you unacquainted, LilyPond is music notation software. Unlike other programs such as Sibelius or Finale, which are both great in their own right, LilyPond deals with sheet music creation as source code in text files using a simple language. You run the files in a compiler, and out come beautiful PDFs of your music. It also can create MIDI files so you can hear a quick gist of what you’re working on too.

Erbarme dich, mein Gott

From a coder’s point of view, it is great to be able to work in your favorite text editor and work in a largely similar way that one would when working on software: code, compile, test, publish. But it’s not as hard as it sounds – beginners can get started producing sheet music scores very quickly by just going through a quick tutorial. Might not work for everyone – some of us need to be able to drag and drop the notes on the staff, or that extra abstraction layer to source code may be just one bridge too far. But the price is right, and it’s worth a try.

For those of you musicians out there who use LilyPond, you understand how useful and powerful the software is. Your music source is in simple text files, easily displayed on the web, ported, and shared. Sharing is a foundation of LilyPond engravers, and there are tons of places to find free and open scores – most notably the Mutopia project.

But creating large projects, especially transcriptions, can sometimes be daunting tasks for one individual. Manually uploading corrections to a site might be tedious, and version control might not even exist.

Git is an excellent solution for version control. And GitHub is a free and excellent destination to host your Git LilyPond projects.

Now imagine people are hosting their LilyPond works on GitHub. Say it’s a transcription of some Baroque-period composition by an obscure composer, and photographic plates are available to view. You want to get it ready for your orchestra, but imagine hammering out all those notes alone. Enter open source: A team of volunteers can grab copies of the project, work on it, and merge code back in. Git handles this process elegantly, and everyone can work together on the same code base. The project is done in record time, and you can spit out parts just in time for the first rehearsal.

But wait, there’s more. Say the band director wants to try this out on the wind ensemble. Rather than starting from scratch, they can fork the project and leverage the existing code. Another person wants to grab the melodic fragments and arrange the same work for baritone sax and synthesizer – another fork. Check out code that is freely available, and rework it ad infinitum.

This might even apply to my stewing idea of crowd-developed open-source composition. I wonder what a symphonic work would look like developed by a team of composers? If we can put together things like Linux and Firefox using the open source model, why not a piece of music?

Create the change you want to see in the world, one environment at a time

Today I came across this article from Peter Bregman on the HarvardBusiness.org site, titled: The Easiest Way to Change People’s Behavior. It’s an excellent read and highly recommended.

What Peter discusses in this article is that one of the most important motivational factors in our lives is environment. If you put the right things in front of you, you’ll tend to use them more. Move them away, and they’ll get used less.

This goes for good things as well as bad things. On the positive side, consider proximity of the things that are beneficial: The gym is only a block away, so you go regularly. If the gym is far, you don’t go. Some examples based on the article:

  • Use a bigger spoon or plate, and you eat more. Use smaller ones and you eat less.
  • Live near a liquor store or a Burger King and people tend to drink more and eat more junk food. Place yourselves farther away from those and you tend not to indulge in such sins.
  • For musicians, keep your instrument and music in an area where you’ll most likely use it. Designate a practice area and have your instrument either out of it’s case or put the case in an easily accessible area. Music on the stand. Metronome on the desk. Ready to go. (I personally have found having a tuner (iStrobeSoft) and metronome (Dr Betotte TC) on my iPhone to be one of the biggest music practice productivity boosts yet. No searching for gadgets…)
  • Want kids to do their homework? Give them a clean, organized place to do it and make sure the homework is there and not floating around the house in some random place. (I know this from experience…)

In a Web 2.0 context, this equates to the usability of your software. Make it easy for your users to get things done, and they’ll do it without a hitch. Throw up roadblocks, and they’ll get stuck. It doesn’t matter how small the roadblock is or whether or not the construct was well intentioned or not – if it impedes usability, then it will impede usability. 😉

In a greater sense, there’s a lesson for the nation or the world: If you want people to change the way they are doing things, make them want to do it. Make it easy for them. Remove any and all barriers to getting things done. You want people to vote? Put voting booths in more neighborhoods or promote the option to vote by mail. Need people to get immunized? Set up neighborhood clinics. Want your employees to be more productive? Find out what is it about your office environment that is getting in the way or not helping promote the results you want to see. For kids, for employees, for citizens, provide the right environment and make it a place they want to be.

Using JEdit with LilyPond on Mac OS X

LilyPond is a wonderful way to write simple code that generates beautiful sheet music. I use TextMate for nearly all my coding. It’s a great editor for the web and I have it fully customized to write code for everything I do including CSS, HTML, XML, XSL, Ruby on Rails, and PHP. There is a decent start at a TextMate bundle for LilyPond, and it does color code my LilyPond markup and let me run the compile command straight from the text editor, but the code coloring seems to break down when I get too detailed in the code formatting. Additionally, the feature that lets you point and click on a notehead which brings me back to the editor and position the cursor exactly where the relevant code is for where I clicked seems to be difficult—if not impossible—to get configured. Without this feature, editing complex scores can be a royal pain. There has to be a better way.

Now the basic functionality for LilyPond on Mac was to have it’s own text editor built in, and although primitive, it worked fine for the point and click feature. One could use a system shortcut to open the code in TextMate and all was good, so no big deal there. Unfortunately Mac OS X 10.5 seems to break LilyPond, and it’s a small enough project that no-one has stepped up yet to fix this. I’ll give it a stab sometime, but for now I need to edit some Hindemith bass parts ASAP!

After some research, I discovered there is a path forward in JEdit and a plugin called LilyPondTool. I found basic instructions at this website (which has several alternative paths available,) but there’s just a couple of specific things to mind when going the JEdit route. Here’s how to get it working on Mac OS X:

First, install LilyPond. Get the latest Mac OS X 10.4 build. Note that if a real, bona-fide, working binary appears at that link for 10.5 or 10.6, these instructions become obsolete (and your life is now easier.)

Next, install JEdit. Be sure to get the latest Mac OS X JEdit 4.3pre package and not one of the older ‘stable’ 4.2 builds.

Launch JEDit and choose Plugins > Plugin Manager. In the Plugin Manager, click on the Install tab and find LilyPondTool in the list. Click the checkbox next to LilyPondTool, click Install, and close the window when the thing finishes installing.

Now you have the LilyPondTool installed in JEdit, but it is set up probably for a Windows file system. There should now be a LilyPond > button on the JEdit toolbar that will appear. This button houses a menu for many excellent LilyPond shortcuts. Click on this menu and choose Development > Lilytool Options. This will open the Plugin editor for JEdit, and likely will miss opening the LilyPondTool options section of this panel. Easy enough to fix – just click on the LilyPondTool item in the left tray and select General from the list. Now you need to configure the application paths. These should be (unless you installed these things in weird places):

For the path to the LilyPond binary: /Applications/LilyPond.app/Contents/Resources/bin/

For the path to the external PDF viewer: /Applications/Preview.app

That should get you up and running. You should now have a Run LilyPond and a Preview Output (PDF) button on the JEdit toolbar that compiles and opens your score and lets you point and click on noteheads to instantly return the position of the relevant code. You also now have a nice IDE for LilyPond, with toolbar buttons and menu items to help you along, including a new document wizard and menu items for all the little bits of code I forget (such as ottavia brackets, thumb marks, tuplets, etc.) And the built-in MIDI player is a nice touch.

Update 2009-07-03: As you will see from the comments below, the developer has kindly set the Mac OS X default paths accordingly. Thanks!!