08.28.07

Update: More Chaos.

Posted in Jamendo, La vie sous la mer at 9:58 pm by bmccosar

I am trying very hard to make progress on my third Jamendo album, but when school started back, my days became one mad rush.

I wake up at 5:30, get to school by 7:15, teach from 8 to 3:30, get to the gym at 4:00, get home around 5:00, finish the neverending stream of chores (or work I had to take home to finish) at 6:00, and maybe, barely, provided everything else went right, have time to get in some music in those magic hours from 6 to 9.

Subtract out time for my other obligations — this Thursday, there’s an open house at my school, for instance, right in the 6:00 block. That day, I will have no life of my own.

Progress is slow. So far I have finished two tunes, and have another six in various stages of completion. The good news is that the music I’ve made is worlds apart from anything I’ve done before. I can hear the difference clearly. I like it so much that I gave my wife instructions for publishing what I have in case something happens to me — an accident on the way to work, perhaps. A grim thought, but at this stage, I’ve invested so much of me in the music that I can’t stand the idea that it might be lost, somehow.

08.19.07

pcsets-2.0.2

Posted in music theory, pcsets, python at 3:12 pm by bmccosar

OK, somehow in the middle of all this chaos, bit by bit, I managed to put together a small upgrade for the pcsets package.  Version 2.0.2 features the beginnings of a tutorial (up to Chapter 2, at least) and some new abilities for pcsets.tonerow: contour() and randomrow().

08.16.07

Update: Chaos.

Posted in Jamendo, La vie sous la mer, local traffic, music theory at 9:04 pm by bmccosar

Well, it seems my blog is getting a lot of hits these days — looks like the music theory articles have been indexed somewhere.  Interesting.  Music theory folks, if my work has been of help to you, let me know — I’d appreciate some feedback.

Just a word about what’s going on with me, so you regular readers [all five of you ;-) ] don’t feel abandoned:

  • The new school year is about to start.  I went back for pre-planning last Monday; the school year starts up officially next Monday — my birthday.  So my days are full.
  • I’m still recording.  My music time is scrunched into a fairly small chunk of hours in the late afternoon and early evening.  I’m making slow but steady progress toward my third Jamendo album.  I think I’m changing the title to The Long Twilight Struggle.  Maybe.  I still like the flow of syllables in La vie sous la mer.
  • And, in the off chance I get an extra bit of time, I work on the tutorial for pcsets.

Whew!  So that’s why I’ve been scarce for the past few weeks.  When things settle down, the situation should improve.

08.07.07

pcsets-2.0.1 . . . and an oops

Posted in music theory, python at 8:13 am by bmccosar

Yesterday I released pcsets-2.0.1, featuring a new (experimental) module, pcsets.tonerow.  A ToneRow is an ordered set of all 12 pitch classes.  To a PcSet, a ToneRow is just another chomatic scale — PcSets are unordered.  But in a ToneRow, order is everything.

Now, about the boo boo.

I’m using subversion to manage the project.  At one point, way back in the evolution of the module, all the functions that now make up the pcset and pcops module were in one huge package.  I called this the “Monolith” branch.  I already had a skeleton of the README file in the trunk.

One day, I must have edited the versioning information in the branch (when I decided on a procedure) and thought I was working in the trunk.  At any rate, yesterday, I updated the README, sent the file out, then paged down to glance at the versioning info to see if I was on track.  What a surprise . . . the outdated system from the original incarnation of the module was staring me in the face.

It took a bit of detective work with the logs, but I finally found what I thought I had written; and there it was, in the Monolith branch.

So, yes, subversion is cool, but it can’t keep you from being a knucklehead ;-)

At any rate, the next version will have the updated system.  Basically, if there’s a version number 2.x.y, experimental modules may enter through a ‘y’, but only become core through an ‘x’.  So, I introduced ToneRows in 2.0.1; there’s no way for them to become core until they are proven, through use.  The earliest opportunity would be the 2.1 series — if at all.

Why did I plan so far ahead?  Because I’ve seen too many things fail because of short sightedness.  I like to build for the future.

What’s Next?

I’m still working on another major module series, which integrates pitch class set theory with the traditional chord-scale theory.  I’d like to solve a long-standing problem: how do you easily interpret a group of notes and find a chord name?

It’s an easy problem for C Eb G Bb, which is just Cm7.  But when you get to the types of chords I like, such as F/Ab (spelled Ab Eb F C), it’s a little bit of a reach to see how it sounds like Ab13b9 [where's the 7th?] and functions so well with the A diminished scale.  On the other hand, from the pcset standpoint, it’s obvious it can — let me demonstrate using my module:

>>> from pcsets.pcops import *
>>> from pcsets.noteops import *
>>> chord = pcfor("Ab Eb F C")
>>> print chord
8350
>>> Ab13b9 = pcfor("Ab A B C D Eb F Gb") # all the possibilities
>>> print Ab13b9
89B02356
>>> subset_of(Ab13b9,chord)
True
>>> generic13b9 = Ab13b9.prime()
>>> print generic13b9
0134679A
>>> subset_of(generic13b9,chord)
False
>>> prime_subset_of(generic13b9,chord)
True

First I define our chord, then show its pcset representation — 8350, expanded into conventional notation, [8, 3, 5, 0].

Next I define the Ab13b9 chord.  It’s sort of obvious the chord is a subset, even without the function: you can clearly see 8, 3, 5, and 0 in the returned set.

However, no one wants to store every possible 13b9 chord in memory.  Instead, we might just want to remember the prime form — the set from which any other in the family can be generated.  The chord is not a strict subset of the generic form.  However, you can see it is a prime subset — meaning, there exists some transformation Tn or TnI that will make the chord into a direct subset.

08.02.07

That universe where it’s just like here, except everyone’s evil, and Spock has a beard.

Posted in Creative Commons, Jamendo, La vie sous la mer, evolution, music theory, python at 7:19 pm by bmccosar

Winning the prize today for longest title for a blog entry . . . .

No, I did not fall into some alternate dimension.  It took all summer for the fates to hand me a few duty-free weeks to actually write, compose, practice, perfect, and record music for my third Jamendo album.  I’m making the most of my time.  I’ve ramped the schedule up to a block from 9 am to 9 pm.

I only have 7 days left, and my summer will be over.

Between traveling, dealing with high blood pressure / sleep apnea, and emergency room visits (for both my wife and my mom), I haven’t really had much of a vacation.   And I haven’t even mentioned the trips to the dentist or the eye doctor.

Supposedly one of the benefits of being a teacher is all the free time in the summer.

Pfah!  Game Over.

The name for my third Jamendo album I’d been working with was La vie sous la mer (”Life Under the Sea”).  If you want to know why I chose a French title, well, try saying “Life Under the Sea” to yourself, then try the French phrase — in English you’d say “la-vee-soo-la-merr“.

Apples and Oranges, eh?  It’s all about consonance.

Anyway, after all that I’ve been through, I was thinking of changing the name to The Long, Twilight Struggle (appropriate, considering the sleep apnea problem).

OK, the meaning of my extremely long blog title

I have changed.  The music I’m making now is more mature but . . . wild.  I never know where the music really comes from.  I start playing it, I develop a theme, and then, one day, bam, I hear the whole thing sort of talking to me, guiding me.  I learn what it’s about.  The song becomes a story, and the story practically tells itself.

Well, today, I finally perfected one of my tunes.  I’ve only recorded the bass and an elementary drum track, but it sounds done — I can hear the organ part, the guitar part, the whole thing, without it actually having been played yet.

It’s like nothing I’ve ever played before.  I’m still sort of stunned by it.

Somehow, in my long journey this summer, I advanced in some fundamental way.  Maybe it was all the time I spent in “the Woodshed” this Spring.  Maybe it was learning so much music theory — getting into pitch class sets so much that I even wrote them up as a Python module (pcsets-2.0).

But the funny thing is –

Now, when I listen to my old albums, I hear the songs telling their stories in a different way.

Which brings up an interesting idea.  I’ve never been one for covers, but . . . what if I covered my own songs, the way I hear them now?

Just an idea.  But it ran through my mind all day today while I was playing bass — and yes, that was all day.

Remember that Star Trek episode where the transporter ended up sending Kirk & crew to that other universe, where . . . well, read the title of this entry again.

I thought:  What there was an alternate universe version of my first Jamendo album, evolution.  As in, somehow, this album came to our Earth by transporter accident, traveling through shadows, or a misfiring interociter.

I made up the track list today.  It doesn’t really exist, but, hey — my music is licensed under Creative Commons, so . . . maybe some day, in the fullness of time, someone else could even try to make it real.

Here we go.  The track listing for  the first album from Me-From-Another-Universe:  Natural Selection.  (If you don’t get the obscure references, try reading these articles.)

  1. Rough and Ragged
  2. Bermuda Triangle
  3. All I Ever Was
  4. On the Road
  5. Sly Dog
  6. Science
  7. Finding You (Song for Nora)
  8. First Class Seat
  9. Lucy’s Tune
  10. Restaurant and Reservation
  11. The Dousing
  12. Billie Recounts