Moving vans…

Teaching Music is moving, but not that far.

Actually, it’s returning to its old domain of teachingmusic.keithkothman.com, but I’m no longer using wordpress.com to host the site. All of the old posts are there (and here), and nothing new will be posted here.

So:


(pianoPed) Notes about Web Site Projects

It seems kind of weird for me to be adding a piano pedagogy category, but I think it is good to post online all the teaching info that I can, and it might be of use to others.

I want to summarize a few tips I went over in class, and provide a few helpful hints as you’re working on your web projects (projects 1 and 2).

Project 1: WYSIWYG Web Page Development

For project 1, building a standard web site with a WYSIWYG editor, the goal is to gain understanding about basic HTML, formatting a page, linking content, and adding some simple graphics. More specifically, you want to understand the need for using tables to assist in page formatting, and to understand the difference between linking to other pages on your site versus linking to other pages on the Web (outside of your site).

When you link to pages within your site (creating a link to your bio from your home page, for example), the link address is relative to the current page location. If all of your pages are in one folder, then the filename is the address (bio.html) without any http prefix or domain information. If the page is on an external site you need to specify the full address, starting with the http (http://www.bsu.edu/music).

For a standard web page, tables are pretty much the only way to specify page margins and multiple columns. Otherwise, your only alignment options are left, center, or right.

Project 2: WordPress

For your WordPress project, WordPress is being used as a Content Management System (CMS). You choose a layout that applies to all of your pages, and then focus on entering content. Based on your layout choice and decision to use a pages widget in one of your sidebars, WordPress will automatically creates links to all pages to your site and make them available on every page. Most of the links that you add to your content will be external links with the full address listed.

Explore the dashboard for your WordPress site. The sidebar on the left has all the available commands and settings options grouped into categories. Arrows to the right of any category will expand or collapse that pane. The best way to learn how to use the dashboard and WordPress is to go through those links on the left and see what controls each one offers.

In the page and post editors, the default toolbar only shows one row of tool icons. The icon on the far right of the first row shows/hides the second row of tool icons.

You should also experiment with different themes (under the Appearance heading). Themes that offer custom header options are the best for creating your own personal look, since they let you upload your own graphics or pictures to use as a page header. While it seemed like three-column layouts were visually busy in class, you have to keep in mind that my projection settings are for a much smaller screen size than the vast majority of computer users. On a 17″ monitor, your web window will usually be much wider, which might make a three-column setup easier on the eye. You just need to see what you like.

There are two additional settings for each post and page that I didn’t really go over in class. Categories are keywords that you create and can use to organize links and blog posts into topic groups. I use categories on my teaching site to correspond to class names, with sub-categories to distinguish notes from assignments for a given class. I use link categories to sort my links for display on my sidebar. If you use a links widget in your sidebar, links will appear sorted with their category name as a section header. You can see how this works on this page: ilocker, BSU, Keith Kothman, and Music Blogs are all post categories.

Post Tags are additional keywords that you can assign to any blog post. They are not stored as categories, but consistent use can be a big help to people searching your blog. For example, I have used the tags “web design” and “wordpress” as tags for this post. The search function first looks through post tags before searching the text of individual posts. Tags won’t come into play for your basic site design for this assignment.

Domains

Domains on the web refer to the hierarchy web addresses. Top-level domains are .com, .edu, .gov, .net, .org, and various country domains. Top-level domains are the first sorting criteria for web addresses. An individual user or company cannot create a top-level domain. There is an external organization that determines top-level domains. As an individual or business, you can register a host name. Most users conflate the meaning of the different domain distinctions as one domain, such as keithkothman.com as a domain name. Really, keithkothman is a host name and .com is a top-level domain, but you should understand the usage. keithkothman.com is really a Uniform Resource Locator, or URL. Web address and URL can be used interchangeably.

(compMus3) Gain slider, delay line intro

2/24/10 patchers are in iLocker.

(It can be easier to grab multiple files using Fetch, available for free from UCS, or some other Windows/Mac FTP program. The server is ilocker.bsu.edu, and the directory is /users/kkothman/BSU_SHARED/242/examplePatchers.)

New patchers:

  • MSPBasic1f – a different way of sending target value and ramp time to line~
  • MSPBasic2b – gain~ slider, also including the scale object to map incoming MIDI CC to different ranges of values.
  • MSPBasic3a – adc~ and ezadc~ in an audio monitoring patcher. In class, soundflower was used as my Mac Core Audio driver, iTunes radio was playing, and the adc~/ezadc~ used soundflower as its input (set in the DSP status window)
  • MSPBasic3b – tapin~/tapout~ for delay lines. Very simple intro.

(musTh2) Sequences and recent work

I’m in the process of catching up.

The handouts from Dr. Oravitz should be the most helpful thing you have on the topic of sequences. I’ve posted them in my iLocker 112 folder (Common harmonic sequences, sequence repertoire) if you need to get another copy.

A few words about sequences to reinforce some key points.

Know the common sequence types by root movements.

  • descending fifth
  • Pachebel (descending fourth, ascending second, resulting in an overall descending third)
  • 5 -6 exchange
  • descending second 6 – 3

The descending second with 6 – 3 chords is the only sequence that is usually comprised of a one-harmony segment.

The Pachebel sequence is obviously a two-harmony segment, since the driving movement of the sequence is to descend by thirds. The third descent is why I refer to it as a descending fourth/ascending second sequence, rather than an ascending fifth/ascending second. The root movement is the same, but the latter way of describing it suggests the sequence ascends by sixths.

The descending fifth sequence is less obviously a two-harmony segment, but usually the melodic segment will traverse two harmonies to emphasize a descending second movement. For example, starting on i in c minor will give root movements of C – F, Bb – Eb, Ab – D, most likely moving to G (V) and breaking the sequence. Notice the descent comprising the first root of each pair of harmonies: C – Bb – Ab, followed by G. Creating a two-harmony segment allows for a melodic sequence with each segment a second below the previous one.

A descending fifth sequence using all seventh chords requires an alternation between complete and incomplete seventh chords. Upper voices move either by common tone or step-wise descent, with the root doubled in the incomplete seventh chords.

Inversions are always possible in a sequence. Using inversions doesn’t change the basic sequence type (classified by root movement, not bass movement), but it may change the voice leading. With descending fifth progressions of seventh chords, alternating between a root position seventh and a second inversion seventh (4 – 3 chord) allows for every chord to be complete AND have EVERY voice move either by common tone or descending second.

(compMus3) MSP reading and tutorial assignment 1

The documentation and tutorial text is online at:

http://cycling74.com/docs/max5/vignettes/intro/docintro.html

You can read online without having the application.

Read the following sections of the documentation for MSP:

  • MSP Introduction
  • How MSP Works
  • Audio I/O

Go through MSP Tutorials 1 – 5.

These tutorials do not require you to modify anything, but I want you make a list of concepts and objects covered as a study guide for yourself. Turn in the study guide to me via email by 3/1/10.

(compMus3) MSP basic demo patchers

Demo patchers from yesterday’s lecture are in iLocker. Look for patchers MSPBasic1[a – e].maxpat.

Outline of topics covered:

  • Digital Audio basics relating to how computers generate audio samples (in blocks, or vectors). The larger the vector sample size, the less strain on the computer, more latency.
  • Audio Rate and Control Rate, pertaining to patch cord connections and the rate at which they are computed.
  • ~ denotes audio objects (tilde looks like a sine wave)
  • dac~ and EZdac~ (and their related messages: start, startwindow, and stop)
  • basic objects: cycle~, *~ (gain).
  • The reliance on floating point numbers for messages, rather than integers
  • audio discontinuity leading to clicks requires use of line~ for smoothing message changes, especially for amplitude
  • replacing the sine wave table used for cycle~ with an audio signal of your choice (as long as it is 512 samples).

(compMus3) More Tips for Assignment 2

Following up on previous set of tips, I’m offering up some more help for translating the assignment into programming tasks.

The second part of the problem asks for a “gesture generator” with several options. It is best to pursue each option as a separate patch. All versions must start with a MIDI key press, use the MIDI key as the first note of the gesture, and use a single durational (time) value. These instructions mean that all versions of the patchers will:

  • Only a noteon message can start the timing unit (ok, by now we know it is a metro). You need a combination of two objects to get rid of noteoff commands.
  • The metro object must use musical time values, which requires the use of a transport object and specific attribute arguments for the metro. I’m willing to waive this requirement if you’re still struggling with this patcher. You can use a metro with millisecond timing.
  • The gesture plays in order, so you need to count bangs.
  • You need to pass the MIDI note number to an add box to add to the output of the stored intervals in the table (like the arpeggiator).

The first version of the patcher shuts off at the end of the gesture (or stored interval sizes). To do so, you need to count events, determine when you reach the maximum number of events, and use that determination to stop the metro. It doesn’t matter how long you hold the MIDI key, so the noteoff message can be ignored.

The second version repeats the last note until you release the MIDI key. This version of the patcher will require you to keep the metro running, but bypass the counter once you reach the maximum number (end of gesture). There is a graphic object that performs this function. Use the result of the counter maximum to trigger the switch to route bangs away from the counter. You should know from the tutorials that an integer number object displays the last number passed through, and also stores it. A bang to a number box will cause the number box to re-output its stored number (the last number that passed through). In this version of the patcher, you hold the MIDI key down to play the gesture, and release it to stop. You already know from the first part of the assignment how to stop a metro using key velocity. Make sure you control a toggle leading to the metro so that you can pass the message to another control device for routing.

The third version of the patcher “repeats the last note with variable durations, chosen from a limited set (2 to 4) of values, related by multiples of the durational value used for the gesture.” This version requires that you change durations in the metro once you reach the maximum count. You can use the same determination that you use to switch the routing of bangs to also turn on a random object that bangs a table with stored multiples of the base value (1, 3, 4, 8, for example).

If you haven’t figured the third version, I’ll go over it in class on Friday.

The third part of the assignment is remarkably similar to one of the Day05 demo patchers.

(compMus3) Notes on Assignment 2

Given the scarcity of finished assignment 2’s in my possession, I’m assuming you’re having a lot of problems getting started with your first guided Max patchers. My experience leads me to believe that there are a couple of reasons for these troubles:

  1. You need to take notes in class. I don’t see anyone writing anything down, and I don’t know how you expect to remember where to even start if you don’t take notes. Specifically, you’re not sure where to go among my class demo patchers to see examples that work similarly to what the assignment is asking for you to do.
  2. Similar to translating word problems into math equations, you need to work at translating program descriptions into Max code – understanding what objects perform what basic functions.

To help, I’m going to break down the first patcher – the arpeggiator – into some basic Max objects and tasks.

An arpeggiator play an arpeggio based on a given root note at a specified rate of time. The arpeggio does not have to be limited to an octave range. It can span whatever musical interval you would like. So an arpeggiator needs:

  • the intervals of a given arpeggio stored in its memory,
  • a MIDI note input for the root note,
  • to add the intervals to the input MIDI note,
  • to send the arpeggio notes (input + intervals) to an output,
  • and a timing device that triggers the arpeggiated notes.
  • Your assignment also asks that the input MIDI note be sent out to play along with the arpeggio.

So let’s look at each step and figure out what MIDI objects perform the necessary functions. (I’ve left off some of the assignment – starting and stopping the arpeggio – that I’ll come back to later.)

The intervals of a given note stored in memory. Intervals are expressed in integers representing how many half steps in the interval. You can store integers in a table object. The table object can hold as few intervals as you like, but it can also store by default 128 values.

A MIDI note input for the root note. Getting a MIDI note into Max usually involves the notein object.

Adding the intervals to the MIDI input note. Adding should be obvious (+ object). Be sure that you are adding the note number from notein to the output of the table object to get the desired note number for the arpeggio note.

Send the arpeggio notes (input + intervals) to an output. To output MIDI notes based on MIDI note number alone requires two objects: makenote and noteout. The duration of the note argument in makenote should be based on the speed of the object triggering the arpeggio notes.

A timing device that triggers the arpeggiated notes. An object that sends out bangs at specified time intervals is the metro. The metro needs something to start and stop it (generally a toggle, but it could also be linked to the transport for musical duration values). The metro needs a time argument, by default in milliseconds.

Input MIDI note be sent out to play along with the arpeggio. Connections for note number and velocity need to run from notein to noteout. Remember, you can have multiple connections out of and in to objects.

The main functions for what has been described so far exist in the Day02.maxpat. I’ve also posted a Day02more.maxpat that has an additional comment about a random generator being sent to the velocity input of makenote. For example, you need to send an index number (the y value) to table to get the value stored at that index. You can use a counter object or a random object to do this. Both operate based on bang messages from the metro object.

The only things that the Day02 patcher do not do are:

  • echo the input notein to noteout. These messages (note number and velocity) have to bypass (not go through) stripnote. Stripnote is being used to only send noteon MIDI note values to be added to the arpeggio intervals.
  • start and stop the timing device (the metro object) with noteon and noteoff messages.

This last step is fairly easy. In class, and in the Day02 example, the metro turns on manually with a toggle object. Metro starts with a non-zero integer, and stops with 0. A toggle sends a one when clicked on, and a zero when clicked off. MIDI noteon messages have a non-zero velocity, and noteoff messages have a zero velocity. All that is required then is an additional connection from the notein velocity outlet to either a toggle connected to metro, or to the input of metro itself to start and stop with the pressing and releasing of a MIDI key.

A final hint, you don’t have to limit yourself to one notein object, with many long patch cord connections. You can have multiple noteins within a patcher. They will all send the same messages (if they are listening to the same devices). You can even have multiple noteout objects. Adding multiple objects for the same function can produce cleaner-looking patchers.

The second and third parts of the assignment are based on each previous patcher. Consider a “gesture” to be a collection of note numbers, like an arpeggio. Expressing time in musical values requires use of the transport object. Decide if you want the transport to run all the time, or to start and stop when you press a MIDI key. The latter is easier to program. Shutting off the metro after a certain number of events requires a counter object with the proper arguments. The Day05-TableStore.maxpat file has an example of how to do this with metro. You need to connect the select – bang output to the toggle controlling a transport object.

Deciding whether to advance a counter with bang messages, or to simply repeat the last value means you need to switch the route of the bang from the counter directly to the last number at a given count. Graphic switches perform this function.

I’ve laid out a lot of what is needed to complete parts one and two. Part one requires minimal changes to the Day02 patcher. You need to try your hand at connecting the rest.

(musTh2) Phrases, Periods, Sentences, Motives and more

Chapter 6 of the Roig-Francoli lays out the material fairly well. I’m going to put it a bit more hierarchically.

At the smallest levels of organization you have motives and phrase segments (sub-phrases). Motives are the smallest recognizable musical elements, with identifiable rhythmic or rhythmic and melodic characteristics. You recognize motives partly by their repetition and development. Think Beethoven’s Fifth Symphony. Not all music makes use of motives, or motivic development. Phrase segments are units of phrases, most often found in sentence structure, but sometimes just dividing a phrase in half.

Phrases are complete melodic and harmonic statements. By complete, I mean that they end with a cadence and usually some sort of melodic/rhythmic stoppage. Remember that half cadences end on the dominant triad (V), not the dominant seventh chord (V7).

Sentence structure is built upon phrase segments. The form is a + a’ + b, in the proportion 1 + 1 + 2. The phrase handout outlining Schoenberg/Caplin ideas calls the structure basic idea, repeat of the basic idea with some variation (usually transposition), contrasting idea.

Sometimes one phrase will end at the same point that another phrase begins. This overlap of ending and beginning is called an elision. With an elision, it is possible that two four-measure phrases will only take up seven measures of music.

Phrases can be organized into group relationships. If two or more phrases show a weak – strong relationship we can talk about these phrases forming a period. A period is generally formed by two phrases in an antecedent – consequent relationship. The antecedent phrase has a weaker cadence than the consequent phrase. Usually the relationship is half cadence to perfect authentic cadence. The IAC to PAC relationship happens less frequently.

Period relationships in classical music are most often in the form of a parallel period. A parallel period has two phrases that begin with the same melodic and harmonic material (usually the first two measures) before diverging to end with different cadences. Contrasting periods (phrases start with different material) are found less often, but can occur in some earlier classical composers (Hadyn, for example) and Baroque composers.

Periods can sometimes be three phrases, with two antecedent phrases and one consequent phrase. You can also find double periods, with the first and third phrase being the same, and the second phrase having a weaker cadence than the fourth. Modulating periods will often be parallel in form, ending the first phrase on a HC, and the second phrase with a PAC in a new tonal area. In major keys, almost always the PAC will be on the fifth scale degree. In minor keys the PAC will usually be on the third scale degree (the relative major).

Phrases that don’t form period relationships, but still go together musically, are called phrase groups.

Phrase diagrams will show phrase marks/slurs for each phrase; phrase labels designating the phrase relationships (a, a’ for parallel periods; a, b for contrasting periods, indicating relationship of melodic material); a period marking/slur if a period is present; measure numbers for the start of each phrase, and the end of each phrase; the key the music is in; and each cadence will be labeled as for type. If there is a modulation, your diagram will indicate that as well.

(musTh2) Assignment 2: Phrases

EDITED!

Due Friday, 1/29/2010

From Chapter 6 of the Workbook:

Exercise 6.1 (pp. 60 – 62), numbers 1 – 3, and 5 – 6 (6a, 6b, 6c).

  • For number 2, only do measures 1 – 8.
  • Number 5, the Trio starts on p. 314.
  • Number 6b, look at the first 20 measures.

For numbers 1 – 5 you do not need to do a chord-by-chord harmonic analysis, although it is good practice and can help you see cadential points more easily. You are not turning in copies of the music, so it does not need to be clean and formal.

Numbers 1 – 5 asks for a form diagram and discussion based on the information listed on p. 60. Points 1 – 5 in that list will provide the material for your discussion. The form diagram will include some material from the discussion as well (cadences, phrase relationships, etc.)

  • Discussion point 1 asks if the fragment is based on a motive. Also include in your discussion if any of the phrases are built in sentence structure, discussing what constitutes the a, a’, and b elements. These designations should also go into your diagram.