Sabbatical: Week 6 Update

It has been quite a productive week. I was able to record 17 phrases on pedal steel guitar. I recorded two each for A300, 727, DC-10, DC-9, & 747. I recorded three phrases for DC-8 and 707. I also recorded a phrase for the center section of 737. On Saturday I booked Alumni Hall to record some piano tracks on the Yamaha C7 grand in that space. All in all I managed to record 10 phrases, two each for TriStar, 737, A300, 727, and DC-10.

Last week I explained some of the basics of how a pedal steel guitar works. This week I’ll go into a little more detail. The second movement of Rotate, 737, is nominally in F major. In the center section of the piece I decided to use 3 seventh chords: an F major seventh, a D minor seventh, and an A dominant seventh. Let’s investigate how you can do this on a pedal steel guitar. This will allow us to review what we learned about tuning and the foot pedals from last week.

Above, we see the open strings of an E9 pedal steel guitar. Playing a major seventh chord in this tuning is simple, you simply play strings 2-6 simultaneously (with the low B on the left being string 10). In order to get an F major seventh, then we’d simply play those strings with the steel over where the first fret would be.

There several ways to get a minor seventh chord. Last week I went over how you could use the first two pedals of the instrument to get a chord built on scale degree four or six. Remember that the first pedal changes all of your B strings to C#, and the middle pedal changes all of your G# strings to A. When we press just the first pedal, the E major chord we get from strings 3-6 is now a C# minor chords. Likewise, when we press the first two pedals at the same time, our E major chord is now an A major chord. We are going to use these two pedals to create a D minor seventh chord.

Let’s think about that chord in the context of C major. We could also think of that chord as being an F major chord (a IV chord) with an additional D (scale degree two). We can get a IV chord by using the first two foot pedal. The additional scale degree two we can get from string 7 (F# is scale degree two in E major). Since we are thinking in C major for this chord, we would have to strum strings 3-7 with the first two pedals down, and our steel positioned over where the 8th fret would be (C is 8 half steps above E).

How about our A dominant seventh chord? We found that major seventh chords on a pedal steel guitar are easy. Here’s where the knee levers come into play. Again, there is no standard for how many knee levers a pedal steel guitar has, nor is there a standard configuration. My instrument has three knee levers. They would be labelled LKL, LKR, and RKR. Those abbreviations stand for left knee left, left knee right, and right knee right. Thus, I have two knee levers for my left leg, and one for my right.

While there are no standards, there is some logic used in setups. For instance LKL and LKR on my instrument both affect the E strings. This makes sense because you’d never want to use both levers at the same time, which is important as it is pretty much impossible to move your knee to left and to the right at the same time. On my instrument LKL raises the E strings to F, while LKR lowers the E strings to D#. The final knee lever, RKR, lowers the D string to C# and the D# string to D. Thus, it is this knee lever that allows me to lower the D# to D, which when combined with strings 3-6 gives a dominant seventh chord. So, in order to get an A dominant seventh chord, I would string strings 2-6 with RKR engaged with the steel positioned over where the fifth fret would be (A is 5 half steps above E).

Pure Data: Scale Sequencer

Inspired by the book Learning Music Theory With Logic, Max, And Finale by Geoffrey Kidde, I have decided to revise my curriculum in my entry level theory course. However, rather than use Max, I’ve opted to teach Pure Data, due to its low price ($0). Pure Data is just different enough from Max that you can’t really use teaching materials for the two programs interchangeably. Thus, teaching Pure Data is forcing me to learn it, which is something I’ve wanted to do for quite a while. I hope to put up occasional posts that share Pure Data patches that I have developed for my teaching.

The first of these is a patch that plays major scales in three different octaves, at three different speeds.

Let’s look at this patch in a little detail. For those who are new to Pure Data, loadbang is used to run part of your patch when that patch is loaded. This loadbang routine sets up a table called scale, and defines the scale. Note that I’m using numbers of half steps to define a major scale (0 2 4 5 7 9 11 12). Notice as well that there is seemingly an extra 0 at the beginning. However, that first 0 indicates where in the table you begin loading material, so if we were to write this as text, we’d say begin at position 0 (the start of the table), and load in 0, 2, 4, 5, 7, 9, 11, and 12. This table data is included in a message object, and starts with a semicolon followed by a return character.  We would change the data in this message to change the mode or type of scale desired. If you want to update the patch after adding or changing information in the message that defines the scale, all you have to do is click on the message object when not in edit mode.

The following segment of the patch translates a tempo, measured in beats per minute to a time per beat measured in milliseconds. The equation expr (60/$f1)*1000 casts the number in the inlet (120) to a float. It divides 60 by that number, resulting in half a second. Multiplying that by 1000 translates that time per beat to milliseconds.

Directly beneath this segment there are three segments that instantiate metronomes at the quarter, eighth, and sixteenth note levels respectively. The quarter note metronome is passed the outlet of the time per beat. For the eighth notes, that same output is halved using expr (.5*$f1). Likewise, the sixteenth note durations result by multiplying by 1/4, using expr (.25*$f). In each case, a duration is also sent (dur1dur2dur3).

Below the metronomes are counters. The top two objects are very commonly used in Pure Data. The object on the left creates and stores a floating point number (a number with a decimal). To the right, we have an object that increments that number by adding one. This is accomplished by feeding the outlet of the float to the inlet of “+ 1”, and feeding the outlet of “+ 1” into the right inlet sets a new value for the float.

Since a scale has eight notes, any number higher than this is fairly useless for generating a scale. Thus, the outlet of float also feeds to “% 8”. The percentage sign means mod (modulus mathematics). Technically speaking, what is happening here is the number being fed to “% 8” is divided by eight, but the remainder of that division (the number that is left over in whole number division) is then sent to the outlet. This will result in a number between zero and seven.

This number is then used to generate both a pitch and a velocity. It is used as an index to select a value out of the the scale table, which is then added to a base pitch to determine the pitch range. The quarter notes use note number 36 as the base pitch. Since middle C (C4) in MIDI (Musical Instrument Digital Interface) is 60, 36 would be two octaves beneath middle C, otherwise known as C2, or Cello C. The eighth notes use middle C (60) as its base, and the sixteenth notes use two octaves above middle C (C6 or 84) as its base pitch. The pitch is then sent via the send command (s for short) using the variables note1, note2, and note3 for the quarters, eighths, and sixteenths respectively.

Key velocity in MIDI is a measurement of how quickly a key is pressed down. Traditionally it is used to indicate how loud a note is. That is a key that is pressed quickly will be louder than a key that is depressed slowly. MIDI is largely a seven bit system, so velocity values run between zero (which also can be used to turn a note off), and 127 (which is the loudest a note can be played). The equation expr (($f1*10)+50) results in having the notes get louder as the pitch of the scale goes up. For instance, when the index is zero, the velocity will be 50, and when the index is seven, the velocity will be 120.

These values, the notes (note1, note2, note3) and the velocities (vel1, vel2, vel3), are then sent to the output stage. The object makenote receives in its inlets (left to right) MIDI note number, velocity (0-127), and duration (in milliseconds). The outlets of makenote then feed the two leftmost inlets of noteout. The rightmost inlet of noteout receives a MIDI channel. The original specifications for MIDI, which was released in 1983, allow for 16 MIDI channels. Here, the notes are being sent on the first channel. Three different instances of makenote are being used here to allow different velocities and durations to be happening simultaneously.

You may check out this patch in action below using a piano sampler from Apple’s LogicPro to realize the sound.