Two Weeks to Go!

After my previous, rather lengthy post, I think I’ll keep this one short.

There are just under two weeks until the final completion deadline for Fedora Summer Coding 2010, and I’m very pleased that the conversion of the Musicians’ Guide to DocBook XML is going more quickly than I anticipated.  Mind you, I’m starting with the easy chapters, and not really revising them along the way – but it’s still faster than the seven-days-per-chapter rate of last week!

The biggest challenge ahead will be to re-read every part of every chapter, trying to establish a consistent style.

Finally for today, I would like to thank the members of the Fedora community (and elsewhere!) that have stepped up recently to lend a hand with revision.  That you have helped me to take care of little issues, and a few larger ones, is definitely saving me time!

First Draft Complete (Almost)!

The Musicians’ Guide has reached a significant milestone: all of the originally-planned chapters have now been completed to the “first draft” stage!  A lot of work still remains before the document reaches a coherently usable form, but for now I’m going to take a (ten-hour) break.  To sleep.

As I look back on my original plans and how development has been progressing until now, one thing sticks out more than anything else: this is a HUGE project.

Another thought: if I had been subjected to a regular job interview during the application process, I don’t think I would have been allowed to do this.  It’s a tribute to the Fedora Project not only that this project was approved, but that I have been able to take it to this stage.  The support that I receive daily from my colleagues within Fedora, from the Docs team, on the #fedora-selinux IRC channel, within the Audio Creation SIG, and from viewers like you on Planet Fedora has already played a significant role in my ability to “just keep writing.”  Thank you.

Yet another thought: had my head been screwed on correctly during the application process, I would not in a million years have included SuperCollider.  It’s going to be a highlight of the Guide for sure (at least for me… the “stars” are Ardour, LilyPond, and SuperCollider), but SC has already put me seven days behind schedule, and just fifteen minutes ago I realized that I hadn’t, in fact, finished everything.  Yeah that’s right – SEVEN DAYS BEHIND SCHEDULE.  Why?  There’s actually a small textbook in that chapter.  Go look for yourself.

So what’s on the schedule for this week?  First is to finish writing all of the sections that I realized needed to be added while doing the original writing.  Second is to make drafts of the diagrams, illustrations, and infographics that the Guide will need.  Third is to revise.

You can help!  You don’t have to know anything about audio or music – just English.  This is a colossal project, and as such, it’s going to take a long time to weed out simple spelling and grammatical errors.  I would greatly appreciate any time that somebody can dedicate to any part of any chapter.  Please feel free to edit the wiki pages directly – no need to mark what you’ve done, since the wiki will automatically show me.  If you have longer suggestions or comments, please feel free to use the Talk: page, to send me an email, or to contact me on IRC (my nick is “crantila,” and I frequent Freenode’s #fedora-audio, #fedora-summer-coding, #fedora-docs, and other channels).

https://fedoraproject.org/wiki/User:Crantila/FSC/Drafts

I Thought I Signed up to Write about Music

Yesterday, I finished the Ardour chapter for the Musicians’ Guide – finally!  It took days longer than I thought it would, and Ardour has definitely been the second most stressful chapter to write… second only to SuperCollider, which I started today (after pushing out Rosegarden).

And that brings us to today’s title: I thought I signed up to write about music, yet here I am writing a computer science textbook for the chapter about SuperCollider.  For those of you who don’t know (which is probably most of you reading at this point), SuperCollider is an audio programming language.  There are a few out there, but SC is by far my favourite, and it allows flexibility and choices like nobody’s business.

What impresses me most is that it doesn’t feel like a half-complete language, useful for making sound but little else; there’s no reason that SC can’t be used for everyday programming tasks.  Well there is a reason: the library and all the add-on libraries are basically targeted for making sound.  My point is that, if you were so inclined, you could write libraries to do anything, because the language is so flexible.

Every time I turn to a new section of the programming portion, something new pops out as being new and exciting.  Here’s a language where I finally feel at home.

Now just in case somebody wants to blame me of being overly positive in every post, here’s some bad news for you: the Guide is behind schedule by a day so far, and probably by three before the end of the week.  I’m very thankful now for having created such a detailed outline for the project during the application process to Summer Coding.

Every day seems so frantic – there’s so much to do, and people keep sending me comments (which are terrific, by the way, so thank you) but there’s no time to make real changes… ever mind the changes that I want to make myself.  Worst of all, I don’t really have a strong sense of what remains to be done, because I’ve been leaving myself notes surrounded in !! marks through all the documents, rather than writing them down in a centralized location.  On the one hand, when I return to a document, I know exactly what needs to be done, and where.  On the other hand, I have to return to the document to know.  Should have made a centralized list of things to do.

At Least I’m Learning about Ardour

Progress on the Musicians’ Guide is slow-going, but, well… at least I’m learning about Ardour.  It’s not an easy program to use, but it’s one of the more powerful ones – ah, who am I kidding – all of these programs are powerful!  Even so, Ardour is a somewhat-hidden gem of the open-source world.  It’s not widely renowned among musicians, but it really should be.  Ardour doesn’t even require a change of approach, like LilyPond might.  Ardour works exactly as its commercially-available counterparts, but it’s available for free, for you to use and modify.  This is what open-source is about!

With that in mind, the Ardour tutorial has been causing me a great deal more pain than I thought it would.  Trying to sort out all of the audio clips that I got, and then assemble them into a cohesive song is actually quite trying.  Never mind trying to mix and master the recording, setting volumes for each track and finding the right balances – I have a whole new respect for audio engineers.  And also a whole new lack of faith in the fidelity possible from recordings.  No matter how hard the audio engineer tries to emulate a real performance, there are simply too many variables, many of them in the recording process itself.

Status Report II

Over the past few days, I feel like the progress of the Musicians’ Guide has been leaping ahead.  Not only have the Qtractor and Solfege chapters been completed, but my thinking about the final layout has been clarified, and several important suggestions were offered by members of Fedora’s Audio Creation SIG, and my mentors.

It’s always an interesting process to see a large project work from its initial stages into a completed form, and a particular joy for me.  One of the things that I await most eagerly when embarking on a new project – be it writing a new or mastering an existing musical composition, or working on a research project – is the moments of realization, when you either know for sure that a previous decision was the right one, or when you know for sure that it must be reversed and another solution put in place.  Some people call this “the joy of discovery.”  Maybe.  It’s probably just learning.

To-Write This Week:
-Ardour Chapter
-Rosegarden Chapter
-SuperCollider Book
-FluidSynth/QSynth Chapter (possibly finished today)
-“Which DAW to Choose?” Section

It’s going to be a long and arduous (haha!) week.

A Win and a Loss, but the End Is in Sight.

A friend of mine, Esther Wheaton, released her first album a few months ago.  I was lucky enough to play a (minor) role in the album, so I was very excited to listen to it.  Tracks from the album have been featured on CBC Radio 3, and you can download the entire thing from the purpose-built blog she set up for the album.  Also check out her “About Me” page – you can download samples of many peices that she’s written, including a tuba-and-piano solo written for (and performed by) me!  This is what today’s classical music compositions sound like!  A particular favourite of mine is “Internet,” which should sound familiar to anybody who’s ever used a dial-up modem.

You must be wondering, “Why are you posting this on Planet Fedora, Christopher?”  I’ll tell you why: I just received her permission to use the raw materials from her song featured on CBC Radio 3 in the Ardour tutorial of the upcoming Fedora Musicians’ Guide – readers will be able to learn Ardour by mixing and mastering their own copy of “Here Is How,” from the source recordings used to create the album itself!

This is an immeasurably beneficial addition to the Musicians’ Guide, and on behalf of all the future users of the document, I am sincerely grateful for it.

On the other hand, it seems as though I’ve hit my first serious delay, and there’s no way that I’ll be able to make this Sunday’s target for completion of all first-draft material.  This shouldn’t affect my ability to finish by the targeted project completion date of August 16th.

Here’s an overview of what’s scheduled:
1.  (5 – 11 July):
* Finish writing documents on the Fedora Wiki:
* Begin target-audience testing with previous week’s material.
* Find Docs editor.
2. (12 – 18 July): Midterm
* Continue target-audience testing.
* Revise documents to incorporate target-audience comments.
3. (19 – 25 July):
* Finish target-audience testing.
* Finish revising documents to incorporate comments of target-audience tests.
4. (26 July – 1 August):
* Convert document to DocBook XML
5. (2 – 8 August):
* Finish converting to DocBook XML
6. (9 August): Project Completion.
* Write final report, due 16 August.
* Create “snapshot” of all documents, due 16 August.
* Write evaluation, due 16 August.

So where do I stand with this?  Firstly, finding an editor is trivial, and I just set an arbitrary date for it.  Secondly, the optional things are certainly not going to get done.  Personally, I very much want to see some sort of kernel optimization included in the Guide, so I’ll probably write it after the project completion date.  After all, there will be at least a few days after Summer Coding ends, but before the branch for Fedora 14.

The two things that concern me the most are these: the “Basic Audio Programming” section of the SuperCollider chapter, and the “Preparing a Session” section of the Ardour chapter.  These both represent a significant amount of work remaining to be completed, and the SuperCollider chapter in particular is taking a lot longer than expected.  That particular chapter alone will take at least three more days.

There are other, relatively trivial, things that are not on any to-do list, but which must be done before the Guide is released.  They mostly have to do with exportation and preparation of companion audio files and project files, to help readers understand by doing.

Things are progressing, so I can’t complain.

LilyPond + Frescobaldi = Wow

I’ve known about the power of the open-source music notation program, LilyPond for years.  I have used it on school assignments, to re-write messy or deteriorating sheet music, and to notate my own compositions.  But it’s only been over the past week that I’ve realized the program’s true power, and how easy it is to use.

If you’ve ever tried to use the program, you might be thinking, “Easy to use?  Who’s he trying to fool?!”  A year ago, I might have agreed, but as I learn more about the program (and about Scheme), I am starting to realize the logic and consistency of things that used to baffle me.

More than that, a specific application has made it way faster to create and edit scores with LilyPond: the Frescobaldi text editor, designed specifically for use with LilyPond files.  Frescobaldi is built with KParts (I think… not entirely sure how this works), so it consists mostly of components that I already know how to use.  What really puts Frescobaldi over the top, however, is the little additional features offered by the program.  For example:
-when you click on something in the score preview, the text editing cursor will automatically be moved to that object;
-the score setup window provides all the options you will normally use, and some extras, too; this tool really helps with the aspect of LilyPond that is the hardest for me: knowing how to set up your score properly in the first place;
-integration with MIDI players, so that you can play LilyPond’s MIDI output without breaking out a terminal window;
-colour-coding in the text editor, so you can visually verify that everything was inputted in the correct order; big mistakes (probably typos!) are automatically highlighted and underlined in red.

The opportunity to write about these programs in Fedora’s upcoming Musicians’ Guide has made me a strong believer in the power and capability of currently-available open-source music and audio software.  LilyPond in particular is a stable and mature application, and it produces output that is easily more visually appealing than the leading solutions, Finale and Sibelius.  Rarely does LilyPond place an object in the wrong spot.  Most of the time I spend editing LilyPond files is consumed by inputting the notes.  Most of the time I spend editing Sibelius files is consumed by aligning objects.  LilyPond allows me to focus on the content of the score, not its appearance.

Sometimes, open-source software solutions don’t work as well as proprietary solutions.  LilyPond is a leading example that this needn’t be the case – the output produced by Finale and Sibelius is easily put to shame by LilyPond.  If you want a flashy, graphical interface that will compose half your music for you, then you’d better choose one of the (very expensive!) commercial “music notation” programs.  If you want something to make an attractive score for you, allowing you to focus on the musical tasks for yourself, there is no better choice than LilyPond – a true “music engraving” solution.

The Fedora Musicians’ Guide is being written for release with Fedora 14 (see this page for release dates).  If you would like to help with editing, revising, and testing of the Guide, please visit the Testing Page, which is updated regularly with new tasks.