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.

Wednesday, April 28, 2010

This blog has moved


This blog is now located at http://blog.igetitmusic.com/.
You will be automatically redirected in 30 seconds, or you may click here.

For feed subscribers, please update your feed subscriptions to
http://blog.igetitmusic.com/feeds/posts/default.

Monday, April 26, 2010

Flex 4's layouts, animations, and interpolators

Below is an applet that demonstrates three new Flex features:
1. Custom layouts
2. Generalized animations
3. Custom interpolators

The applet, called AngleTest (source code here), shows the notes of the diatonic scale (Do, Re, Mi, etc.) placed around a circle:


Re is at the top to make the symmetry of the diatonic scale more obvious (because horizonal or vertical symmetry is much easier for human brains to recognize than symmetry along any other axis).

Initially, the scale is in Do-mode ("major," or "Ionian"). You can tell, because degree number 1—in green, to make it stand out—is next to Do.

If you click the "Next Mode" button (in the upper-left corner of the applet), the degree numbers change to reflect their positions in Re-mode ("Dorian"). Degree 1, in green, is now next to Re.

I don't know about you, but I find that sudden change of numbers, in place, to be almost impossible to follow. What changed, exactly, and how?

So, I added an "Animate" checkbox, also towards the upper-left corner. Click it, so that a checkmark appears in its check box, thereby enabling animation. Now, click the "Next Mode" button again.

Cool! The degrre numbers slide smoothly from one note-name to another, showing—with much greater clarity—the relationships of the modes to the underlying scale. That's due to the interaction of two new Flex features: (a) Flex's new custom layout feature, which my code uses to place each degree label at the angle specified by its "angle" property, and (b) Flex's new generalized Animation effect, which smoothly animates the angle property between values.

Er, hmmm, but...there's a problem. One of the degree numbers rotates in the wrong direction! Whichever degree label is on Mi goes all the way around the circle counter-clockwise to Fa, instead of going clockwise a short ways to Fa. WTF?

The problem is fairly simple, actually: Mi's angle is 330 degrees, and Fa's is 0 degrees. The natural way to interpolate the numbers between 330 and 0 is downward, through 300, 200, 100, and so on down to 0...and that's exactly what the Animation effect's default interpolator does. That's the only interval on the circle in which a degree label is moving from a large starting angle to a small ending angle, so it's the only interval for which the degree label goes the wrong way.

What we need here is a custom interpolator -- an *angle* interpolator -- which recognizes that angles fall on a circular continuum, rather than a linear continuum.

In the "Interpolator" panel, just below the "Animate" checkbox, are two radio buttons that let you select whether to use Animate's default "Number" interpolator or my custom "Angle" interpolator.

The "Angle" interpolator keeps all of the degree labels moving clockwise.

It isn't commercial-grade, though. I'm pretty sure that the increment and decrement methods aren't right, but my code doesn't need those functions so I haven't tested or revised them accordingly. (You've been warned!)

The layout of the note-names is a little off, too. I'm not sure why. I think that it's because the bounding boxes of the labels reserve space for descenders -- the bits of letters like 'y' and 'p' that stick down below the rest of the text. Not sure, and for now, don't care -- it's good enough for Version 1.0.

When I look at other people's sample Flex code, I am frequently stunned by the amazing effects they are able to get out of a tiny bit of code. My code's not like that. I seem to have to write reams of the stuff.

For example, the arcs that show the widths of the seconds around the circle—the red and blue arrows—are, well, *arcs*, and Flex's new FXG graphics code does not support arcs. Theoretically, one can program them using cubic Bezier curves, but I seem to have missed that post-graduate mathematics course. Instead, I kludged them up in Adobe Illustrator, ran Illustrator's output through Adobe's Flash Catalyst, and pasted the result into my app. The result looks fine, but involved reams of impenetrably-complex MXML/FXG that's almost certainly longer than necessary. But...hey!  It works, and that counts for a lot.

Labels: , ,

Tuesday, April 6, 2010

Progressive Complexity

In response to this comment on my post describing Lesson 005.1...


-----------------------


All of your criticisms above make perfectly valid points. I have what I *think* are good reasons for structuring JiMS the way I am, but in the absence of hard scientific evidence as to the efficacy of one structure vs. another, there is very ample room for differences of opinion. I value, very highly, such critical feedback, because it forces me to revisit my assumptions and see if they have any rational basis. That said...Many of the concepts that I'm teaching in JiMS with specifics, could be taught with greater generality. Here's why I'm starting with narrow, concrete specifics, such as the assumption of the syntonic temperament in 12-TET tuning. I could design JiMS such that it did not assume the syntonic temperament (i.e., alpha = P8, beta = tempered "perfect" fifth, with first comma tempered to unison) or 12-TET tuning (i.e., P8=1200 cents and P5=700 cents). Instead, I could teach that alpha and beta could be any interval. This would be a temperament-neutral approach. So, why am I basing JiMS firmly on the syntonic temperament...and with a fixed octave, to boot? Firstly, because JiMS is based on the philosophy of "progressive complexity," which states that "the simplest approximations of the truth should be presented first, with increasingly complex approximations added later, only as necessary." (I'm quoting myself here, but some prominent educator somewhere must have said something similar.) So, JiMS starts with the diatonic scale in the syntonic scale, in 12-TET tuning, and will progress through the chromatic scale also in 12-TET. It's only when JiMS needs to introduce the enharmonic scale -- which I've decided to do WAY later -- that the concept of "tuning" needs to be introduced. After that, JiMS can introduce Dynamic Tonality. Somewhere right before the introduction of Dynamic Tonality, I'll introduce the notion that the octave's width can be tempered in the syntonic temperament, too. After Dynamic Tonality, I can introduce non-syntonic temperaments. Remember the immediate goal of JiMS: to dramatically increase the efficiency with which non-musicians gain sufficient musical knowledge to write their own pop/rock music. To achieve this goal, students do not need to learn about non-syntonic temperaments. That being said, JiMS' *ultimate* goal is to establish a new universal paradigm of music which expands the frontiers of tonality. I believe that this ultimate goal cannot be achieved without first achieving JiMS immediate goal. Therefore, the immediate goal must take precedence in all of JiMS' design decisions. Specifically, I can't allow JiMS early lessons to be made more complex in order to facilitate the later introduction of non-syntonic temperaments. My recent re-writing of Lessons 4 and 5 is a manifestation of this design trade-off. I have a tendency to want to introduce non-12-TET and non-syntonic ideas sooner than necessary, because I think that JiMS' ability to support those concepts distinguishes it from traditional approaches, and because I think that these concepts are WAY COOL. However, it's simply not efficient to introduce those concepts too early. Secondly, the musical invariances on which JiMS is based -- transpositional invariance, tuning invariance, and cardinality invariance -- are all invariant only within a single given temperament. None of them are invariant across temperaments. I can't teach these invariances in the abstract; I can only teach them in the concrete context of a given temperament. Combined with the doctrine of progressive complexity, the temperament-dependency of musical invariances requires me to teach them within a given temperament (and tuning) first, and only then to generalize those teachings across (tunings and) temperaments. For example, consider the syntonic and schismatic temperaments. Both have the same generators -- P8 and P5 -- so they can share the same note-names, note-layouts, and staff notation. However, their comma sequence differs, and hence so does their mapping of partials to notes. For example, from a fundamental on Do, the syntonic temperament maps the fifth partial to Mi, while the schismatic maps it to Fe. As a result, the "shape" of the major triad (for example) is different, on JiMS keyboard and the JiMS staff, even across temperaments as closely-related as the syntonic and the schismatic. Combined with the doctrine of progressive complexity, this variance-across-temperaments requires JiMS to start by assuming the use of a single (tuning and) temperament, introducing other (tunings and) temperaments only when necessary (and it isn't necessary until after Dynamic Tonality has been introduced, using the syntonic temperament). Thirdly, the music of human cultures in the real world seems to be strongly biased towards temperaments generated by the P8 and P5, including the syntonic and schismatic. The syntonic temperament's tuning continuum includes nearly all of the tunings ever used by human cultures; the exceptions are arguably schismatic, such as Turkish and arguably some Indian music. This bias may arise from the human ear/brain/mind's apparent use, for the detection and tracking of tonal relationships, of a "map of the regions" generated by P8's and P5's (as exposed by Petr Janata's brain-scans). Such a map of the regions is the dual graph of the Wicki/JiMS note-layout, and hence is topologically identical to it. Combined with the doctrine of progressive complexity, this human cultural bias towards the syntonic temperament leads me to choose it as the basis of JiMS, with the added complexity of other temperaments being added to JiMS only much later in the lesson sequence. Please note that all of this is "just talk," however. I don't have any scientific evidence that proves that these design choices lead to the most efficient and accurate acquisition of musical knowledge by musical novices, or that graduates of such an educational program are able to advance the state of the art faster and/or more creatively. But then, no contrary evidence exists to refute these claims, either. The efficacy of alternative paradigms in achieving such objectives is an under-studied area. I hope that, as JiMS becomes available, such rigorous studies can be carried out. In the meantime, you're not wrong, and I'm not right. We just disagree as to when, in the sequence of ideas, non-12-TET tunings and non-syntonic temperaments should be introduced. On the other hand, we agree that these concepts SHOULD be introduced as soon as possible -- an agreement that differentiates us from the vast majority of music educators and music theorists, who neither understand nor care about these concepts. I hope that you will find this response to be in the cooperative, exploratory spirit of give-and-take in which it is intended.

Labels:

Monday, April 5, 2010

Invitation to address UNT's Composition faculty

On April 15th, I'll be addressing the faculty of the Division of Composition in the College of Music at the University of North Texas, just up the road in Denton (which is slightly north of Dallas; I'm in Mesquite, which is slightly south-east of Dallas).

UNT's Composition faculty is a computer-literate bunch; I look forward to meeting them.

This presentation is the result of my (a) emailing a number of the division's faculty members with information on how my work could facilitate theirs, and (b) a follow-up meeting with the division's Chair, Joseph Klein. That was a "flake filter" meeting; apparently, I passed was not filtered out.

My pitch to Dr. Klein was as follows:
  • If everyone were 100% certain that Idea X was about to emerge as their domain's new ruling paradigm, then every university in that domain would be racing to lead that emergence, in order to attract the best students, professors, research grants, etc., and to avoid obsolescence.
  • But by then, it would probably be too late to catch up with Idea X's early proponents.
  • The trick, then, is to identify ideas with high paradigm-shifting potential before it's too late to gain leadership.
  • There is a significant chance that the peer-reviewed findings of the Isomorphic Conspiracy could indeed lead to the emergence of a new paradigm in music, spanning the gamut of theory, composition, performance, education, technology, etc.
  • If UNT were to lead the way in establishing this new paradigm, then its leadership (all else being equal) would make it the top music school in the world. Just as Silicon Valley dominates computing tech, Detroit dominated auto manufacture (for a century, which ain't bad), and Vienna dominanted psychiatry, UNT could dominate the gamut of music under this new, far-reaching paradigm.
  • What if the Isomorphic Conspiracy's ideas don't pan out? To academics, it hardly matters. Consider the history of serialism. Within academia, serialism ruled for decades. One could hardly get one's foot in the door, let alone get tenure, without first establishing one's serialist bona fides. People based excellent, successful, and productive careers on serialism, despite its complete failure to make even the slightest impact on "real world" music-making. In short, even a failed attempt attempt to establish a new paradigm can be extremely successful for those who lead it.
  • But, again, if an attempted paradigm shift did prove to be successful, then the professors who led it would be like Watson and Crick in biology -- able to write their own tickets to any university in the world, now and forever.
  • ...and here are our ideas; here's why they have the potential to establish a new paradigm in music; here's where UNT can add value; and here's how we can turn these ideas into a gold-mine of research funding.
UNT is very well-positioned to exploit this opportunity.
  • It has a high concentration of computer-savvy composers in its faculty.
  • It has two research programs that seem well-suited to explore and exploit it: CEMI and iARTA.
  • It is in a large metropolitan area (the Dallas-Fort Worth Metroplex, the fourth-largest economic region in the USA, with strong tech & finance industries), with a history of innovation and philanthropy.
My attempt to make a similar pitch to UT/Austin failed, in large part due to its music school's strangely backward-looking, technophobic culture.

So -- no pressure! -- if I am able to deliver a compelling presentation, this could be a milestone for both the Isomorphic Conspiracy and for UNT.

Lesson 005.1

My latest lesson is Lesson 005.1 (source code here), which replaces Lesson 005:


Same crummy state-controlling button-bar at the bottom, for now. I really must fix that.

This lesson defines "scale" and "diatonic scale," and introduces JiMS keyboard -- i.e., the mapping of the Wicki/Thummer note-layout to the computer keyboard.

My lessons are starting to look a lot like PowerPoint presentations, except that their "graphics" are often interactive (e.g., JiMS keyboard).  I've always liked PowerPoint, so the similarity is fine with me.

Although I was very strongly tempted to introduce other scales and even tunings at this point in the lessons. However, there is absolutely no advantage to the student in introducing those concepts now; they would just be a confusing distraction -- and the student's advantage must win all such design trade-offs. Hence, my decision to re-write Lessons 4 and 5, to provide a leaner, cleaner sequence of concepts.

I expect the next lesson (6) to introduce the term "mode," and discuss the modes of the diatonic scale. I think that I've got the components I need for that, but some of them haven't been used in a lesson before, and so will probably need to be tweaked...so don;t hold your breath for the next lesson.  ;-)

Labels: ,

Friday, April 2, 2010

The Plamondon Files

In a former life, I was a Technical Evangelist (TE) for Microsoft, where (among other things) I taught all of Microsoft's newly-hired TE's the ropes.  The first such training seminar I gave was videotaped and transcribed. Snippets of the transcription were cited in a number of anti-trust cases against Microsoft.

In late 2008, I started a blog on Windows Live! documenting some thought I had on Technology Evangelism, and posted the relevant documents there. But Live! is so hard to deal with that I'm re-posting the documents here.

Below, please find an blog post -- copied from the original Live! blog -- that describes and links to the relevant documents.

[start of old blog post]-------------------------------------------------
The Plamondon Files
On January 16th, 1996, a group of Microsoft's Technology Evangelists (TEs) from its overseas subsidiaries gathered at its Redmond headquarters to receive training on the strategy and tactics of Technology Evangelism as practiced by Microsoft's top Redmond-based TEs. Microsoft had no TE formal training program at the time; everyone else just "learned by doing."

At this event, called the "DRG Summit," I gave three presentations, "Evangelism is WAR!," "Evangelism Strategy," and "Power Evangelism." Marshall Goldberg gave a presentation on "Relationship Evangelism." As I recall, the DRG Summit was organized by Avery Bishop, and Ken Fowles also gave a presentation, although I came in late and missed it, so I don't recall what it was about. The training presentations were videotaped, and I arranged to have my and Marshall's presentations transcribed. These presentations were also attended by some of Microsoft's Redmond-based TEs. Many of them stated afterwards that they wished that they had received similar training.

The Director of Microsoft's Developer Relations Group (DRG), Doug Henrich, agreed that such training should be available to Microsoft's Redmond-based TEs. He (a) assigned me to develop materials for use in training Microsoft's newly-hired TEs, (b) required all newly-hired TEs to attend such seminars, and (c) encouraged all experienced TEs to both attend these seminars and to contribute to them. My performance in leading such training seminars became, thereafter, an objective on which I was formally reviewed for raises, bonuses, and stock options.

I augmented the above-mentioned training materials with two white papers, "Effective Evangelism" and the "Generalized Evangelism Timeline." I also wrote "Making the Most of the PDC" (Professional Developer's Conference), which was used as a preface to Microsoft's official PDC staff guide for at least three successive PDCs.

I continued leading such seminars once each six months until I left DRG in 1998 for a TE role in Microsoft Research's University Relations Group. I received excellent performance reviews during this period. In January 2000, Darryn Dieken, another Microsoft TE, received copies of these materials for use in training a new group of TEs. I recall sending copies of these documents to other TE groups during the 1998-2000 period, during which DRG's function was dispersed among Microsoft's product groups, but I can't prove it.

These training materials embodied Microsoft's policies, practices, and preferences with regard to Technology Evangelism. The Director-level declaration that attendance at these seminars was mandatory for newly-hired TEs makes them "policy" by definition.

The only substantial difference between the DRG Summit's transcripts and the later training seminar presentations was my use of a "one night stand" analogy at the DRG Summit (see the top of page 2 in this transcript). In this analogy, I stated that it was OK to lie to ISVs to get them to support Microsoft's technologies. This implication that "lying to ISVs (or to anyone else) was OK" was a mistake, for which I alone am responsible, and which I deeply regret. No similar analogy, statement, or implication was included, in any form, in DRG's mandatory seminars. This analogy was made only verbally, and did not appearing in the presentation's slides. Indeed, the presentation's slides clearly stated that TEs could stress those aspects of the truth that were advantageous, but should never, ever lie. This latter view was emphasized in DRG's mandatory training seminars.

The above documents have been entered into the public record in a series of anti-trust actions against Microsoft. They have become known, collectively, as "The Plamondon Files."

It has been expedient for Microsoft to deny that these documents accurately reflected Microsoft's practices at the time, to disavow any authority I might have had to define Microsoft's policy (neglecting to mention that the training materials were sanctioned by DRG's Director), and to discredit me in various ways. Yet the the public record contains (a) a description of me as "an uber-evangelist" (by Darryn Dieken), (a) a description of me as DRG's "theoretician" (Marshall Goldberg), and (c) the statement that "everything James says [in the DRG Summit presentations] is true" (also Marshall Goldberg). The record also shows that Marshall was also a very senior evangelist, meeting regularly with Bill Gates, so his comments cannot credibly be dismissed.

Does Microsoft still utilize the TE techniques described in the Plamondon Files? Many in the Free and Open Source Software (FOSS) community believe that Microsoft does.

[end of old blog post]-----------------------------------------

On the other hand, it's actually relatively easy to do evangelism in an ethical manner, mostly by emphasizing transparency. If it would look bad if featured on Google News, don't do it. Secrecy isn't inherently wrong -- Apple develops its products in near-total secrecy, for example, and there's nothing wrong with that. Likewise, there's nothing wrong with Microsoft developing APIs and ISV support for them in secret. The problem is when actions are taken that are only effective when they remain secret forever. Cloak-and-dagger stuff.

If you're attempting to establish a technology platform as a de facto standard in the face of competition and network effects, then you MUST engage in Technology Evangelism, or you will lose.  It's that simple. The pressure to win can lead individual TE's, or the entire TE group, or an entire company over the edge into unethical TE practices is they're not careful and aware (Microsoft was neither).

The trick, therefore, is to win the battle without losing your soul.

Microsoft's dirty tricks, and the reputation it built for them, has cost it dearly. In industry after industry, firms have avoided partnering with Microsoft, fearing that they, too, would be taken to the cleaners. Apple has been left as technology's "honest broker," putting together industry-wide deals (music publishing, cell phone app publishing, magazine publishing on the iPad, etc.) that could otherwise have been Microsoft's.

Woulda, coulda, shoulda.

Labels:

Thursday, April 1, 2010

Lesson 004.1

My latest lesson is Lesson 004.1 (source code here):


Same crummy state-controlling button-bar at the bottom, for now. I really must fix that.

This lesson introduces a number of new terms. Each is clearly defined, and each definition is followed by a question to help cement understanding of the definition.

I now expect to revise Lesson 5 to focus on defining the term "scale." This may require introducing the notion of "tuning," but I don't want to go there yet, so I'll avoid it if I can.

Once the notion of "scale" is defined, then we can dive right into the Diatonic Scale, including its modes, intervals, chords, etc.

Labels: ,