An Electronic Filkbook

With the recent announcement of Apple’s iPad, I’m once again thinking about the fact that many people in the filk community use a laptop computer as a songbook. This appears to work fairly well for those who don’t play an instrument (or who have a third hand to look after scrolling and page-turning while the song is in progress). Others might like to make the transition to an electronic book and sometimes mention the idea of a foot-operated device that would be used to page through material while playing. For most songs on most devices, showing everything at once isn’t feasible in a readable font.

Being a programmer, I think, “Can I do something about this in software?

Here’s what I see as basic requirements. Feel free to add other suggestions in comments. The purpose of the program is to display a song file in such a way that the correct portion of its content is viewable as appropriate to the length of the song, the elapsed time since the song started, and the size of the application window.

  • the user will specify the song’s file, its length in minutes and seconds, and scrolling options
  • the program will automatically scroll the song display proportional to elapsed time
  • assuming a reasonable size of application window, the program should be well-behaved for approximate song lengths
  • supported file formats should be at least plain text and RTF
  • user control changes (e.g. manual scrolling) will override automatic functioning
  • the program will save the meta-information related to each song file and use it by default in subsequent performances
  • the program will support the concept of a Set List, which references a number of songs
  • songs in a Set List will be activated by manual use of a ‘next’ control

I realize that there is software available to turn a computer into a teleprompter, but what I’ve seen of it makes display assumptions and doesn’t take into account the repeat use of content in different contexts.

, ,

  1. #1 by Chris O'Shea on February 2, 2010 - 12:06 pm

    Even if you don’t have the sheet music to sing from, a BPM option (e.g. 120BPM) and some indication of how many bars long each line is, might be a useful thing.

    (Sheet music display would also be great!)

    I’d also like highlighting of Guitar chords (perhaps from an ABC file input? Used for many traditional folk tunes/websites)
    Guitar chord transposition would be excellent also.

    The “current line” will be underlined or shown in bold so that the performer can see where they are in the song.

    Chorus repeats can be expanded from the line “Chorus:” to show again the words and chords from the first occasion.

    Manual updates can be added on screen for breathing, dynamics (e.g. ‘pause after “moon” then speed up on second repeat’) etc. and different versions saved for different performers or for different performances (solo, duo, choir)

    Electronic pitch pipes with the ability to save the starting pitch for a song (again, different pitches for different performances, or tied to guitar transposition)

    If I think of anything else, I’ll

  2. #2 by Creede Lambard on February 2, 2010 - 12:14 pm

    The first thing that comes to mind is that the software needs to be cognizant of the concept of a “measure.” Everything in music goes in measures rather than lines of text, so even if the text is broken up into lines you want to be able to keep, for instance, the chord names or diagrams for a measure synchronized with the words.

    The next thing I can think of is that the software should be flexible. Musicians are particular about how their music is laid out, and a performer who likes their chords up above the words will probably not be as happy at words that are off to the side, and vice versa. It would also be nice to make provision for staff music and chord diagrams for those who want them; the problem there of course is that for anyone who plays the mandolin, ukulele, banjo or other non-guitar instrument, guitar chords are going to be meaningless even though they are going to be the most useful for the greatest number of people.

    The last item is that enough laptops have cameras built in these days, and the easiest way I can think of to control a piece of music software when your hands are full would be to do it through some kind of gesture that the laptop interprets. Problem is of course that if your hands are full you limit the range of gestures that are available to things you can do with your head. It might be difficult to create a head-based set of gestures to mean things like “page down” or “scroll to the right” that can’t also be interpreted as “I’m having a good time and moving around a bunch.”

    Well anyway there you go, my ideas at 8 AM my time before the brain is fully in gear.

  3. #3 by Moshe Zadka on February 2, 2010 - 12:47 pm

    Sounds good!

    Several ideas:
    * How awesome would it to make it web-based? That way, you could even *borrow some random person’s laptop* and it would work. The JavaScript needed to scroll and measure time is trivial anyway, and this will solve the pesky software issues (as well as bypassing iPad’s SDK costs neatly)
    * Creede’s ideas all sound useful but I would go for a “useful first version” first. Just chords set on the lines of text the way *you* like them (the classic trick of satisfying one customer), and a rough measure of time (after all, most devices can display a single verse or a single chorus at a time, so as long as you’re correct on the how long the entire verse and entire chorus are, you’re golden). Adding notes, various ways of setting the chords, subtle timing hints and gestures can be considered for the next version :)

    Bottom line: awesome idea!!

  4. #4 by yam on February 2, 2010 - 1:57 pm

    Kathy was describing to me the idea of a foot pedal for page up and page down, which seems like it would eliminate a lot of the fussing around with tempo and such – and it seems to me would be less distracting – I’d worry with auto-scrolling that I’d lose my place on the screen and get flustered. Well depends if you like fiddling with code or fiddling with micro-controllers more, I suppose. :)


  5. #5 by Rafe Culpin on February 2, 2010 - 2:16 pm

    I’ve just set up my laptop for reading lyrics (I don’t play an instrument).

    It’s very much a first pass at the moment.

    I set up a local domain name in Apache pointing to the root directory of where I stored all the lyrics, there’s then various subdirectories. I left directory listing switched on, so I can browse to the required file and then load it – some are text files, some html.

    I’ve also done a full text index so I can search the whole lot, using Sphider

    It would be fairly easy to add JavaScript to scroll the files, with the parameters being Ajaxed from an on-board database. Various other functions could be programmed in as needed. For instance font size, again on a per-file basis and tweakable in the database.

    This would all of course be in a single external JavaScript file which could be loaded by each lyrics file (and passed to other filkers for improvements).

    Layout would of course be CSS and skinable as needed.

    I can’t see any point in a non-web version – you’d have to bung in so much stuff that’s already available in browsers.

    What kind of peripherals exist that can feed to a browser and work like e.g. a foot switch?

    You might of course want to mandate standards compliant browsers to avoid having to spend ages making it work in IE.

  6. #6 by Heather Borean on February 2, 2010 - 2:35 pm

    First off, I think it’s a brilliant idea, I’m less than 7 hours from flying to england and my filk book is still an awful mess, it will stay that way because I don’t have the patience to oraganise it right now. If I had it on the computer? Woow. I could orint up at set list, I could do all sorts of cool things, I’m not savy enough on the programming side to know much but here my 2 cents

    It should accept most files types, I assume you’ve covered this RTF comes to mind as a nice standard.

    A history of changes to songs? for the compser? Or where it’s gone to so they can see the spread of the song.

    Variable text size, or did you already cover that?

    If I’m repeating you I’m sorry I’m even more brain dead than usual , flying to england is my excuse for today and I’m sticking to it.

    It is BTW a terrific idea!

  7. #7 by Mark Bernstein on February 2, 2010 - 3:43 pm

    This is more oriented toward sheet music than the lyrics-and-chords format a lot of filkers use, but you might want to take a look at this:

    I particularly like all the various options for page turning (foot pedals would be great for guitarists), the ability to import music from various formats, and the database for managing music and creating playlists.

    And I never even heard of it until I Googled “electronic music stand” just now. :)

  8. #8 by Peter Ellis on February 2, 2010 - 5:14 pm

    What file formats will you be supporting?

    Most of the lyric sheets on my computer are Word docs, but there are a couple of PDFs and I know that Rennie uses WordPerfect for her lyrics

  9. #9 by Phillip Mills on February 2, 2010 - 7:21 pm

    Taken from a comment on LJ by ‘archiver_tim’ and reproduced here to keep things together:

    “The font on your comments part of the page is hard to me to read, so I’ll mention the idea of a visual metrognome that could be a way to also control page advancement/scrolling. Of course, breaking for off-beat/narrative and such need to be thought of at the same time. I once seen this as a two-file type system, where the native file would be the easily printed version (.txt, .doc, .pdf, music score) ‘wrapped’ within a control file for scrolling.”

  10. #10 by Gary Ehrlich on February 2, 2010 - 8:40 pm

    I’m fairly decent at keeping track of chords placed just over the first verse/chorus and the rest of the words on the page. So scrolling isn’t quite as necessary for me, unless the song is getting long.

    Currently I format my lyrics/chords in Word (12pt Times New Roman for lyrics, 12pt Arial Italics for chords) and use the Reading Pane to generate a two-page view. This works for songs not longer than about 1-1/3 pages long. The biggest annoyance, other than the overall length issue, is that I can’t control the margin widths in the Reading Pane. This means if I have a song with long verses, they’ll tend to wrap a line in the Reading Pane view. Which means I run into the maximum-length-of-song limit sooner.

    Hmm…wonder if you could have one smaller window with the chord sequence, and the main window with the lyrics. Then you don’t have to worry about the chords scrolling out of the way.

  11. #11 by Ben Newman on February 2, 2010 - 9:25 pm

    It’s not too difficult to write a first-order automatic scroller in JavaScript without knowing all that much about the document — all you need to know is the duration, the height of the document in pixels, and the height of the window in pixels (and the latter two can be discovered by JavaScript). I’ve written a bookmarklet that does this (although it’s not currently in a distributable form). This assumes that the appropriate scroll speed profile is uniform over the length of the document, which is not always the case.

    For direct control (for, say, a guitarist, like me) you do need something that can be operated hands-free. That would seem to suggest new hardware, but let’s consider the options:

    1. New hardware (say, a pressure-sensitive foot pedal) — the hardware may even exist, but most people don’t have one, aren’t going to get one, and aren’t going to carry it to a convention.

    2. New software — a dedicated application could work around the lack of a physical interface device in several ways, either by explicitly directing the timing of the performance (a karaoke application) or, conversely and somewhat speculatively, matching the performer’s speed by fitting sound input from a microphone to a stored sound profile of the performance. This requires a dedicated piece of software which needs to be implemented (or purchased), and it requires more metadata about each song.

    3. Kluge it — if you can rig it so that a mouse click will scroll your document, either by positioning the cursor over a scrollbar or adding some JavaScript that handles the click and scrolls the window, or whatever, you can put a mouse on the floor and use it as a foot pedal. If you take off your shoe, you can even use both buttons of a 2-button mouse with relative ease. Voila, cheap foot pedal control!

  12. #12 by Algeh on February 3, 2010 - 12:24 am

    What I’d like to see is some easy way to share content between devices. I believe that there is some app for the iphone that allows you to touch two phones together to exchange contact information. I’d love to see something like that for sharing lyrics, ideally with two settings, one for “copy” that would put a permanent copy in the other person’s filkbook and replace the need for a photocopier run and the other setting for a temporary non-saved copy to aid in a singalong or last-minute-accompanist situation (like how you can download demos to a Nintento DS but they’re only on the device until power off).

    Note that I don’t have any kind of istuff or plan to buy it anytime soon (I run linux and apple doesn’t seem to give linux any love or drivers), so this is all from an outsider’s perspective.

  13. #13 by Ariel Cinii on February 3, 2010 - 12:34 pm

    We’re all thinking in the same direction. When this concept hit me the other year, iPad was just a developmental rumour. Now that I see it, I’d like an RC interface and/or a pre-set autoscroll feature to present rolling lyrics, and definitely something to grow font-sizes. If it can also be set to coordinate with a background track this would allow someone like Rob Balder to sing to his music and read his lyrics. I’m presuming a speaker interface comes with the iPad. A soundboard pick-up would be helpful hardware if it doesn’t already exist.

  14. #14 by Peggi on February 3, 2010 - 1:09 pm

    Just for interest sake, check out CampFire Guitar – it’s what I use for collecting my songs, and the bonus is that the chords, when included, are displayed at the top of the page. It strikes me that the iPad would be perfect for this sort of thing, by the way (or my HP tablet PC, which I really have to get set up).

  15. #15 by Steve Savitzky on February 6, 2010 - 2:14 am

    I tend to use location on the page to keep my place, so scrolling isn’t a good option for me; I’d rather have foot-pedal page turning. (With accelerometers, you could probably get away with just kicking the music stand.)

    Being page-oriented, what comes to mind is PDF or page images on a portrait-mode display; I’ve written code to crop PDF down to its smallest bounding box, render it into images, and rotate them 90 degrees to fit a laptop propped on its side.

    Oddly enough, this is a subject in which I have a professional interest.

  16. #16 by Ben Miller-Jacobson on February 15, 2010 - 2:06 pm

    I don’t know if you meant to suggest that this would be for the iPad or if you were just saying that inspired you, but I would strongly suggest that this not be confined to small Apple products. I would personally want to run this on a laptop running GNU/Linux, and I suspect that in the filk community as a whole there would be a limited potential user base if it only ran on the iPad.

    Other than that, I think a means of “taging” songs with topics or themes and then searching based on those might be cool. It could be a good way to quickly find a good follower if you have a large song book.

(will not be published)