Wednesday, May 02, 2012

Blue Sky/Black Crow #4

Play it here
Here's a final version of the piece I've been working on lately. It's scored for bass finger piano and lots of Ernie Ball Super Slinky Guitar string samples. The tuning is taken from a mostly utonal scale, but only six notes at a time. Here's the 10 notes in the scale, from which six note modes are pulled. The numbers across the top are the scale degrees out of the 10 available (actually only 10 in this case), and the next row is the 72-EDO note numbers.
And here are the six note chords that are used. The numbers to the left are the scale degrees out of the 10 available:


Notice that some of the ratios are conventional just major and minor triads. Others are much more xenharmonic. The Bb major and C minor are in the former category, sounding very consonant and easy on the ears. The B neutral and C supermajor are more challenging. When they come around, you know that something unusual is at work.

The piece steps through the chords in a progression twice, in the following order. Sometimes the chords are taken two at a time, sometimes only one. And sometimes they move from one to another in a slide.

One of the most attractive parts of this scale is the wide range of consonance to dissonance, from 12-tone-equal sound to xenharminoc. All from only 10 unique pitches.

The format of the piece is that I only change the six notes that are input to the process, and the randomizer picks the notes to play. For example, it can chose a chord that slides from the first chord to the second, in one of a number of inversions, or trills, or straight chords, or many other combinations. For example, the piece might call for the strings to play a chord, and slide to the next one:

.chox-0-b01a &pre-&n5..&slivd-&n5.-&n4.. &preu-&n5.-&n1..&slivd-&n1.-&n6.. &preu-&n1.-&n3..&slivd-&n3.-&n2.. .chox-0-b01b &pre-&n4..&slivu-&n4.-&n5.. &preu-&n4.-&n6..&slivu-&n6.-&n1.. &preu-&n6.-&n2..&slivu-&n2.-&n3.. .chox-0-b01c &pre-&n5..&slivu-&n5.-&n6.. &preu-&n5.-&n1..&slivu-&n1.-&n2.. &preu-&n1.-&n3..&slivu-&n3.-&n4.. .chox-0-b01d &pre-&n6..&slivd-&n6.-&n5.. &preu-&n6.-&n2..&slivd-&n2.-&n1.. &preu-&n2.-&n4..&slivd-&n4.-&n3.. .chox-0-b01e &pre-&n5..&slivd-&n5.-&n4.. &pred-&n5.-&n3..&slivd-&n3.-&n2.. &pred-&n3.-&n1..&slivd-&n1.-&n6..

This is called from the string section:

.strx-16-a01a d4r0 &str1-ran*.d4h5z0e1&chox-0-a*. .strx-16-a01b d2h9z0e1v-3&chox-0-a*.d12 .strx-16-a01c d0h32e13v-5&chox-0-b*.d16

Which in turn is called by the individual string parts:

.all-72-a02 &vel.d72r0 &str1.&strx-72-a01*. &str2.&strx-72-a01*. &str3.d72r0 &str4.d72r0 .all-72-a04 &vel.d72r0 &str1.&strx-72-a01*. &str2.&strx-72-a01*. &str3.&strx-72-a01*. &str4.d72r0 .all-72-a03 &vel.d72r0 &str1.&strx-72-a01*. &str2.&strx-72-a01*. &str3.&strx-72-a01*. &str4.&strx-72-a01*.

And I start it all off by calling

&all-72-a0*.

I set the notes to specific 72 EDO tones here:

.Bb-maj1 .n1 2x .Bb-maj2 .n2 3x .Bb-maj3 .n3 5x .Bb-maj4 .n4 7x .Bb-maj5 .n5 9x .Bb-maj6 .n6 1x .Bb-majb1 .bass1 9x .Bb-majb2 .bass2 5x .Bb-majn1 .nn1 7x .Bb-majn2 .nn2 8x .Bb-majn3 .nn3 9x .Bb-majn4 .nn4 Ax .Bb-majn5 .nn5 3x .Bb-majn6 .nn6 4x .Bb-majbn1 .bassn1 3x .Bb-majbn2 .bassn2 9x .Bb-maj &Bb-maj1.&Bb-maj2.&Bb-maj3.&Bb-maj4.&Bb-maj5.&Bb-maj6.&Bb-majb1.&Bb-majb2.&Bb-majn1.&Bb-majn2.&Bb-majn3.&Bb-majn4.&Bb-majn5.&Bb-majn6.&Bb-majbn1.&Bb-majbn2.

I do that for all the keys. Then I just have to call the macro to set them all to the right notes.

&Bb-maj.

That sets &n1. to 2, &n2. to 3, &n4. to 7, and so forth. When it goes through the preprocessor, it resolves all that code into Csound input files. Full source code here:

Input to preprocessor.

input to Csound, output from preprocessor