iGetIt! Music

Online music education courseware for non-musicians who want to learn how to write their own rock songs.

My Photo
Name: Jim Plamondon
Location: Austin, Texas, United States

This blog documents the development of JIMS iGetIt! Music System (JIMS). JIMS' goal is to help you Understand Music in 24 Hours™, if you are (a) a non-musician (b) who wants to learn how to write your own rock songs. Requiring no instrument other than your own computer, and without using traditional notation, JIMS is being designed to deliver a deep understanding of tonal structure...in just 24 hours.

Thursday, February 4, 2010

Lesson 004.0

Here's my first draft of Lesson 4 (source code here):


It uses the same crummy state-controlling button-bar at the bottom, for now. I'm going to write a new control for progressing-through-the-lesson-control soon, probably this weekend.

Moodle
I spent some time earlier this week looking at Moodle, the open-source learning management system. I'd like to package my lessons in a Moodle wrapper, because it has excellent support for all sorts of things (like gradebook databases) that I don't want to have to think about. Unfortunately, Moodle's Flash/Flex support is seriously deficient. Fortunately, an effort appears to be underway to address this deficiency. Therefore, I will proceed as if Moodle will have excellent support for Flash within the near-enough future.

I met the Moodle guys when I was living near their home base in Perth, Western Australia. I knew at the time that they had a good chance of beating their commerical competition. The signs were there, even then. Moodle hasn't been gaining market share as rapidly as I had expected, though. It needs some professional help with its evangelism, I suspect, to accelerate its rate of growth. If Moodle doesn't pick up the pace, it could be the next MySpace. It's "do or die" time.

Music & Pedagogy
Lesson 4 is the first lesson to introduce JIMS keyboard. The keyboard is introduced by deriving the pentatonic scale from an octave-reduced stack of (tempered) (major) fifths.  Notice that the lesson never qualifies the term "fifth" -- that is, it doesn't call it a "perfect" fifth or a "major" fifth. I don't want to, or need to, open that can of worms quite yet.  All in good time.

The next lesson, Lesson 5, will state that JIMS' unique approach gives its students the power and flexibility to understand and describe the music of many cultures. It will suppor this statement by extending the Stack of Fifths to produce the diatonic, chromatic, and enharmonic scales, and by showing that -- using a tuning slider -- the student can change the tuning to match that of many different non-Western cultures and Western eras, while retaining the simplicity and consistency of JIMS' keyboard's pattern.

I think that it's important to make this point early on, because immediately after making it, the lessons will shift their focus to the diatonic scale, and spend a LOT of time in the diatonic world thereafter. If the flexibility of the JIMS keyboard isn't demonstrated early on, a knowledgeable music teacher, reviewing JIMS' early lessons, might reasonably conclude that JIMS teaches concepts that are applicable only to the diatonic scale.  I need to plant the seed of JIMS' power early on, even if I don't water it until much later.

Programming
I'm becoming more comfortable with the architecture that I'm using for these lessons, in which the lesson's content is implemented in the transitions between Flex's application states. If I choose the states wisely, then the architecture works well -- even if this architecture is, as I suspect, an unanticipated application of Flex's "state" feature.

Flex's 4 Beta 2's implementation of stateGroups seems to be a bit buggy (as one might expect from a new feature in a beta-version framework).  It seems to clobber properties that aren't set by the relevant states. For example, you'll notice that in Lesson 4 above, the note's octave numbers disappear partway through the lesson. That appears to be a manifestation of the stateGroup bug.  I spent a couple of hours trying to work around it, before deciding that the lack of octave numbers, in those states, was not a big enough bug to worry about. Also, don't use stateGroups to affect the setting of the properties of a slider, because the max/min/value will be set to NaN under conditions that I haven't spent the time to rigorously quantify.

Now, if I were a really serious beta-tester, I'd dig into Adobe's online bug reports and open-source nightly builds of Flex, to track down the bug and try to identify a fix. However, I'm confident that the bug is severe enough that others will have done this work, so it will be fixed in the release version. Although my use of the state feature in my application's architecture is, as I've suggested above, likely to be unusual, the use of stateGroups is not, so other people should be encountering this bug.  If it persists in the next release, I will become more actively concerned.

Schedule
I've decided to try to post a new lesson each week. That would give me fifty lessons in a year. Assuming that I'll make the first dozen free, on a "try before you buy" basis, then those who subscribe to the paid lessons will get an additional 38 lessons (because 50 - 12 = 38). Thirty-eight is more than three dozen, and hence is three times the number of free lessons -- which ought to make the paying customer feel like they are getting enough to make the $29.95 purchase worthwhile. Of course, I'll be adding new lessons constantly thereafter, but with 50, I ought to have enough to "go live" and start selling subscriptions.

I'll have to pause my output while writing a "notation" component, but since JIMS' sequencer-like notation is so much simpler than traditional notation, it shouldn't slow me down by too much.

Lookin' good.  ;-)

Labels: , , , ,

Tuesday, October 2, 2007

ThumMusic & IT’s MIS Bridge

Later today, I have my first meeting with a team of students from UT/Austin’s McCombs School of Business’ MIS Bridge. They will be working to define the technical infrastructure of the ThumMusic System’s online courseware. My objective for this first meeting is to scope out what they can reasonably be expected to do within the time they have available, given their existing knowledge and skills.

The general idea is for them to identify and specify the reusable software objects that must be developed in order for Web-based ThumMusic courseware to be developed and deployed using open source methods, such that the resulting courseware is highly interactive.

For example, the courseware should be able to use the computer keyboard as a musical keyboard; display any arbitrary piece of MusicXML in ThumLine staff notation, preferably in an interactive manner (for example, illuminating notes as when they should be played and/or when they are played); show animations of chord progressions, key modulations, etc. on the tonnetz in a manner similar to Mathieu’s excellent use of the tonnetz in his book Harmonic Experience, but interactively, and again driven by any arbitrary MusicXML file; and so on. The goal is not to have the students implement these software objects, necessarily, but rather for them to identify and specify them all so that they can be implemented by others. If the students can also implement some or all of the software objects, then all the better, if only to help them hone their specification skills.

I have suggested that the project be based on Moodle – a free, open source course management system (CMS) that appears to have attained critical mass. Using a free CMS will facilitate having the lessons themselves be free, and also facilitate having others contribute lessons for free.

Free, free, free. I love free. It’s my favorite price – and yours too, I bet. The freer the ThumMusic System is, the more rapidly and widely awareness of its benefits will spread, and ultimately the more Thummers I’ll sell. Thus does the Invisible Hand of economics direct our private actions to the public good.

Labels: , , , ,