Blog

Welcome to the blog

I’ve moved from Blogger to WordPress to do a better job of integrating the process-creation style of blogging with the pages containing finished works.

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

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

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

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

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

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: