Tuesday, November 27, 2012

I've moved my blog to Wordpress. You can follow it here. RSS feeds should automatically switch over to the new site.

Friday, August 10, 2012

Csound is back on the Mainframe after a 40 year absence

Here's one that took a while to make. I was able to build Csound v5 under Linux on an IBM mainframe Integrated Facility for Linux (IFL), thanks to an IBM developer program. Csound is back on the mainframe after not seeing such an architecture for probably 40 years. It runs pretty fast, but that's not the reason to build it on the platform. I just wanted to understand the challenges of moving to the s390x architecture, since I sell mainframes for a living, and most of my customers have Linux today.

Today's version of June Gloom was converted from my source code to Csound input on my PC under Free Pascal, shipped to the mainframe as drum12.csd, then processed by Csound on the mainframe to create a .wav file. I brought that back to my PC to create an MP3 file and posted here.

Download or Play it here.

Subscribe here: to this RSS feed

Thursday, August 02, 2012

June Gloom #20 - processed by Linux

Here's a version made on a Linux implementation on Amazon's Web Services. Now that my preprocessor has been ported to open source Free Pascal, it was a snap to compile it on an Ubuntu Linux instance. Csound only needed a simple install. It's my first try at Linux. Next stop: RedHat under z/VM on an IBM IFL at their developer sandbox. Unfortunately, there's no port of Free Pascal that supports the z architecture or instruction set, and I'll have to build Csound myself. I think the latter will be easier than the former. I can do the preprocessor work on my desktop and ship the Csound source to the cloud for processing.

Download or Play it here.

Subscribe here: to this RSS feed

Sunday, July 22, 2012

June Gloom #14

Here is the last version of June Gloom I will post. Today's run through the algorithm is a milepost of sorts. I finally was able to generate the whole thing without having to run either the preprocessor or Csound in that dreadful XP box on my Windows 7 laptop. Today I finished the port of the preprocessor to Free Pascal from Turbo Pascal. Most of the problems along the way were due to failing to check for Nil pointers and out of bounds arrays. Apparently Turbo Pascal circa 1989 let me do some bad things. I fixed those and the program compiled. After earlier porting the Csound code to a version of Csound that runs in Windows 7, I'm now free of the XP box. Today's post is the result. Nothing is substantively different, except it's another round through the algorithm, so everything has changed.

Download or Play it here.

Subscribe here: to this RSS feed

Thursday, July 12, 2012

Here is one more version of the June Gloom piece I've been working on.

For the past eight years I've used an older version of Csound (4.19 from 2005) that only runs on Windows XP. I moved to a new version of Windows, and the old version stopped running. So I obtained a current version, Csound version (5.17.11 from May 2012). To my delight it worked with all my old opcodes with only minor problems with the install. This version of the piece was made with the Windows 7 version of Csound 5.17.11.

My preprocessor, written in Turbo Pascal (filedate 1989), is another story. Turbo Pascal won't work in the current version of Windows 7. I had to create a virtual machine running XP, and that is working, but poorly. All things considered, my $90 investment in Turbo Pascal was worth it, since I have been able to use it for 23 years.

My next task is to try to port the Turbo Pascal to Free Pascal. My first attempts resulted in code that compiles with minor changes, but fails at run time reporting memory issues. That conversion will take much longer.

Download or Play it here.

Subscribe here: to this RSS feed

Source code

  • Input to the Csound: drum12
  • Second stage for volume control: drum12a
  • Third stage for convolution: convolv

Sunday, July 01, 2012

June Gloom #11

This is another final version. The eleventh time through the track shows off the idea of several different instruments playing the melody, and each one can choose to trill, slide up, slide down, play only one note instead of all three, and many other variations. The conflict between the instruments makes for an interesting sound.

Download or Play it here.

Subscribe here: to this RSS feed

Saturday, June 30, 2012

June Gloom #9

This is a final version of the piece I've been working on lately. As with several recent works, this one takes six notes at a time out of a 10-note scale based on the undertone series. Here is a small chart that shows the pitches and ratios used and the order of the changes. The accidentals are in the Sagittal font.
The six notes chosen are two triads. The first one in the first row is a just B flat major, played at the same time as a just C minor. This is a very consonant combinations, almost too sweet. The instruments play a melody and chords based on those two triads. The rhythm is 9/8 then 4.5/8, which is what makes the tempo sort of bouncy. After playing in the first key (Bb major, C minor), it moves to the next one in the series, a just G minor combined with sort of an A flat neutral with a messed up 5th. It gets worse from there. Eventually it comes back to the beginning, and then repeats the cycle two more times. It's the same basic melody and harmony in each chord, but the notes change with each change of key. Sometimes it sounds sweet, other times more challenging to the ear. Here is the full ten note scale, as I approximate it in 72-EDO:
The instruments are trumpet, trombone, french horn, cello, and tuba playing the melody, and bassoon, clarinet, oboe, and flute on the harmony, with a rhythm section composed of balloon and tube drums.

Download or Play it here.

Subscribe here: to this RSS feed

Source code:

Thursday, June 28, 2012

June Gloom - more variety

This is a work in progress. Today I modified the amplitude, octaves, tempos, and added a cello and tuba to the mix.

The point of my recent music is choosing from several six note combinations from a ten note undertone scale. Some are very easy on the ears, and some are challenging. See if you can tell which is which.

Download or Play it here.

Subscribe here: to this RSS feed

Wednesday, June 27, 2012

Saturday, June 23, 2012

More June Gloom

This is a work in progress. Adding a few more options for the melody. Now he can either trill, slide up, slide down, or play stacatto. More to come. And a few more keys.

Download or Play it here.

Subscribe here: to this RSS feed

Friday, June 22, 2012

June Gloom

This is a work in progress. Just the woodwinds for now. The title is what Seattle is like this time of year.


Play it here

Friday, June 08, 2012

This is a work in progress. I'm working on some ways to have each instrument play the melody slightly differently. They all have the general concept, but each is different in different ways. This is the first attempt. It's very rough, but a good start beats no start, every day.
Play it here

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

Monday, April 30, 2012

Blue Sky/Black Crow

This is a work in progress. Today's installment includes many more types of chords. Very slippery notes. The chord changes are derived from the undertone scale I've been working with lately.

Play it here

or download this link

Subscribe here: to this RSS feed

Saturday, April 28, 2012

This is a work in progress. Today's installment is my first attempt at a 60 second piece for the 60x60 untwelve mix. It's scored for six guitars tuned to 72 EDO playing the a set of chords based on the undertone series. I'm just over 60 seconds at this point.
Play it here

or download this link
Subscribe here: to this RSS feed

Tuesday, April 24, 2012

Black Crow-Blue Sky

This is a work in progress. I'm playing with the bridge changes. After a vamp on G minor to Ab major we have the following:
  • Eb major
  • Bb major
  • F minor
  • C minor
  • B supermajor
  • Bf major
Then back to the G minor to Ab major. Of course they are not really those keys. They are taken from the scale pictured here:
The title is taken from a picture I took Sunday evening on the deck looking up at the wonderful blue spring sky. It's been hidden above the clouds since about September of last fall, and the clouds parted for a nice weekend, before returning this morning. Note the stick in the crow's beak. They've been building a nest in the trees furiously.
Play it here
or download this link
Subscribe here: to this RSS feed

Sunday, April 22, 2012

Working Title slides

This is a work in progress. Just a set of up and down triads of two chords, gliding from one to the other. I'm using the Ernie Ball Super Slinky guitar string samples. Play it here

or download this link

Subscribe here: to this RSS feed

Saturday, April 14, 2012

Working Title

This is a work in progress. Just some strings for now.

Play it here

or download this link

Subscribe here: to this RSS feed

Wednesday, April 11, 2012

Sleeping Wolve's Dance #16

I made a few more changes to the guitar and horn parts. Nothing major. I spent the past few days chasing a bug that would cause the pre-processor to request a sample that did not exist. I fixed it so that it no longer does that. Now I have much more freedom to allow a randomizer to pick a higher or lower sample than normal. This results in new timbres as it picks different samples at different times. It's a way to force "munchkinization", named after the Munchkin voices in The Wizard of Oz. In this case, it just makes some of the guitar parts a slight bit less harsh at times, and more harsh at other times.

Play it here

or download this link

Subscribe here: to this RSS feed

Saturday, April 07, 2012

Sleeping Wolve's Dance #14

This one is final for now. It's the 14th take through the algorithm.

It uses the subharmonic series to the 15 limit, plus one more (36:19) beyond the 15-limit, and an additional note (27:20) which I added to be harmonious with the 9:5.

18:18 18:16 18:15 18:14 27:20 18:13 18:12 18:11 18:10 36:19 36:18

which can also be written as:

1:1 9:8 6:5 9:7 27:20 18:13 3:2 18:11 9:5 36:19 2:1

From that ten note scale, I pull six notes out at a time and play a set of chords and melodies. Or rather the computer picks out some chords and melodies from an array of choices. There are nine 6-note combinations chosen for this piece, each takes about a minute or two, and then it moves to the next one. Some are sweet, some are sour, some harsh, and a few just plain weird. The subharmonic series has always played tricks on me. The weird ones can be thought of as the sleeping wolves of the undertones. In this piece, they get up and dance.

The instruments are the Ernie Ball Super Slinky Guitar String sample set I made earlier this year, finger pianos, balloon drums, tube drums, trombones, and trumpets.

There are lots of slides and trills. Csound provides for function tables that can be multiplied by a note to make it go up or down at a specific rate to a specific pitch. I generated tables for all the possible combinations of the ratios in the scale, and then through some programming with Excel, the right f table is applied to each note to move to the right next pitch for each of the modes. That's the feature that can be heard as the slides and shakes of the instruments. Imagine a guitar player sliding up a note and giving it some vibrato when he hits the higher or lower note. Except it can be done for finger piano, trumpet, and strings, not just guitar.

The rhythm is in nine, with stress on the 2 + 3 + 4 beats. The tempo moves around a bit as the algorithm can decide to speed up or slow down by around 15/16ths at random times, slowing way down at the end.


Play it here



or download this link

Subscribe here: to this RSS feed

Friday, April 06, 2012

Sleeping Wolve's Dance #11

This is the first of the evaluation copies. I generally make a few copies then go for a walk and listen to them. This is one. I may change some things before it goes final.

It's scored for Ernie Ball Super Slinky String samples, finger pianos, trumpets, trombones, tube drums, and balloon drums.

The scale is based on modes derived from the following undertone + one scale:

I take six notes at a time from the ten notes in the scale.

The order of the modes may change, but for now it's like this:

  1. 792 581
  2. 925 137
  3. 137 258
  4. 8A3 492
  5. 813695
  6. 925 813
  7. 792 481
  8. 147 A69
  9. 792 483
  10. 925 137

Those are the triads that I stress in each 1-2 minute section, then I move to the next one. As usual, there is lots of randomness in this one, so I may have to make more changes to get something satisfactory.

Play it here

or download this link

Subscribe here: to this RSS feed

Monday, April 02, 2012

Sleeping Wolve's Dance - some modes

This is a work in progress.

I added some new modes in the scale. Some are more "challenging". The piece steps through nine modes of the 10 available notes in the a scale derived principally from the undertone series with numerators over the demoninator 18. Plus one more note at 27:20 as a 3:2 above the 9:5 (Bb).

The whole scale is shown on the following chart:

The modes take six notes from those ten and make a subset scale. For example, the first one is this:

The 3rd notes is a very pleasant 6:5 minor above the root, and the 7th step is a 3:2 above the root. With the addition of the 27/20 (F), we have a very nice major chord on the 8th note (Bb) with the 2nd note (D) at 5:4 above the 9th, and the 5th note (F), a 3:2 above the 8th note. So this mode has a major chord and a minor chord. All very sweet and restful. Things get more challenging with other modes. I stay in each mode for about a minute or two, then move up to the next one.

One example of a challenging mode is the 5th one:

8 1 3
6 9 5



The 8th, 1st, and 3rd make a weird subminor chord, with the 1st note (C) an 11:9 above the root at 18:11 (Ab). And instead of a nice solid 3:2, we have a 22:15. Then the other triad is at the 6th, 9th, 5th. The 9th is a 13:10 above the root at 18:13, and the 5th note is a 33:20. Close to a 3:2, but not quite. That's the sleeping wolf dancing.

As we step through the nine modes, just think of yourself at a sushi bar, with the chef bringing out some unusual dishes. Every once in a while you get something "challenging". As they say in Japan, trust the chef ("Omakase").






Play it here

or download this link

Subscribe here: to this RSS feed

Sunday, April 01, 2012

Sleeping Wolve's Dance - some melodies

This is a work in progress. I added a few melodies for the strings and horns. More work to do. Play it here

or download this link

Subscribe here: to this RSS feed

Friday, March 30, 2012

Sleeping Wolve's Dance - some drums

This is a work in progress. Too complex now, but I have a plan. All will become clear when I reduce the randomness by a factor. Play it here

or download this link

Subscribe here: to this RSS feed

Thursday, March 29, 2012

Sleeping Wolve's Dance - some brass

This is a work in progress. I added some trumpet & trombone. This one is not coming together like the previous ones. I may have to go back to the finger piano alone, or switch to woodwinds. And I have't decided on the strings. More later.Play it here

or download this link

Subscribe here: to this RSS feed

Wednesday, March 21, 2012

Sleeping Wolve's Dance - more trills

This is a work in progress. As the heading says, I added more trills. They had been dummied before, defaulting to no movement. I finally calculated the new distance and the appropriate Csound table for the new trills. Here's what one looks like in Csound:

f 568 0 256 -7 1 16 1 0 1.14428343 16 1.14428343 0 1 16 1 0 1.14428343 16 1.14428343 0 1 192 1

and here's what it looks like in graphic form:

Note that it goes up and down, up and down, then stays down. Not really a trill, more of an ornamental. I have real trills too, but these are different. They sound kind of like moving your fingers over the holds on a real thumb piano to get vibrato. But they modulate the pitch instead of the amplitude.

Play it here

or download this link

Subscribe here: to this RSS feed

Tuesday, March 20, 2012

Sleeping Wolve's Dance


This is a work in progress.
I saw a very nice thumb piano at the Goodwill Store in Seattle, and played it for a minute or two. It was terribly out of tune, but it had a nice sound. I went home and wrote this song and used a more carefully selected tuning system and finger piano samples. Play it here

or download this link

Subscribe here: to this RSS feed

Saturday, March 17, 2012

Ernie's Shuffle on Ten #6

This is a work in progress. I tracked down that stack overflow bug, but not before spending several hours trying to figure out what was causing it. Then I found it:

@ here's your stack overflow. fool.
.fin1-42-a01 &fin1-42-a01*.
.bdr1-42-a01 &bdr1-42-a01*.
.bdr2-42-a01 &bdr2-42-a01*.
.bdr3-42-a01 &bdr3-42-a01*.
.bdr4-42-a01 &bdr4-42-a01*.
.bdr5-42-a01 &bdr5-42-a01*.

Of course every time I asked for a resolution of &fin1-42-a01*. it would return &fin1-42-a01*. until the stack overflowed. Amazing. I'm back on track now.
Play it here

or download this link

Subscribe here: to this RSS feed

Friday, March 16, 2012

Ernie's Shuffle on Ten - more keys

This is a work in progress. And the progress has been slowed by a bug in my pre-possessor where Turbo Pascal posts a run time error indicating a stack overflow. It works find as long as the randomizer is limited to very random, and fails when I ask for less random choices. Weird. Ernie is not happy.Play it here

or download this link

Subscribe here: to this RSS feed

Wednesday, March 14, 2012

Ernie's Shuffle on Ten - Over the Toutle River Brige

This is a work in progress. I am working on the distant modes in the scale. Some are quite challenging. I worked on this as the Amtrak train was heading south from Portland to Seattle, and as we passed over the Toutle River Bridge where that sad mad was killed by a freight train yesterday.
  1. scale degrees - bass note - character of the mode
  2. 482615 1 harsh
  3. 594826 6 harsh
  4. 615948 1 harsh
  5. 716A58 1 weird
  6. 826149 8 sweet
  7. 948269 9 sweet
  8. A59482 5 challenge

Play it here

or download this link

Subscribe here: to this RSS feed

Sunday, March 11, 2012

Ernie's Shuffle on Ten - added the melody

This is a work in progress. Added a melody and variations using multi-octave unison oboe, bassoon, and french horn samples. It's all based on the single six note chord on scale degrees 1 6 9 4 8 & 2 out of the ten note pallette. Modulation to other six note scales come next.Play it here

or download this link

Subscribe here: to this RSS feed

Friday, March 09, 2012

Ernie's Shuffle on Ten

This is a work in progress. I made some samples of a set of Ernie Ball Super Slinky guitar strings and used them in this piece. The scale is based on the overtones in the tonality diamond starting on the 8:5, but with the 1:1 in the bass. So that makes the following ratios:

1:1 21:20 11:10 6:5 13:10 7:5 3:2 8:5 9:5 28:15 2:1

Then I derive some six note scales from that scale. The first one I tried uses scale degrees 1 6 9 4 8 2, which is two fourth chords stacked up. The ratios are:

1:1 7:5 9:5 6:5 8:5 21:20.

Here's the whole matrix of the ten notes from which the six at a time are chosen.


There are nine other 6 note chords to go, but I started with this one because it has so many low numbered ratios. And it sounded sweet on my keyboard with an electric piano sound. With these close mic'ed string sounds, the character is quite different.

I've scored the piece so far for the Ernie Ball Super Slinky strings, finger piano, balloon drums and tube drums. I will have to add a melody instrument at some point. Consider this the vamp for now, waiting for the lead singer to start. It has a kind of Devo vibe to it now.

The rhythm is combinations of 2 & 3 to make seven. For example: 2 + 2 + 3 or 2 + 3 + 2 or 3 + 2 + 2. These measures are combined into groups to make a five measure unit. I change the randomization for each of those units from highly repetitive to not repetitive. Kind of like: repeat a phrase 5 times, then go crazy, then repeat a phrase 5 times, then go crazy.

Lots more to do, but it sounded good enough for now to post.

Play it here

or download this link

Subscribe here: to this RSS feed