WEBVTT

00:00:00.000 --> 00:00:01.491 align:middle line:90%
[RUSTLING]

00:00:01.491 --> 00:00:02.485 align:middle line:90%
[CLICKING]

00:00:02.485 --> 00:00:03.976 align:middle line:90%
[SQUEAKING]

00:00:03.976 --> 00:00:06.958 align:middle line:90%
[CLICKING]

00:00:06.958 --> 00:00:27.802 align:middle line:90%


00:00:27.802 --> 00:00:29.760 align:middle line:84%
MICHAEL SCOTT ASATO
CUTHBERT: Hello, everybody.

00:00:29.760 --> 00:00:32.540 align:middle line:84%
We're going to be talking
today about something

00:00:32.540 --> 00:00:35.330 align:middle line:84%
that sounds really
esoteric, really confusing,

00:00:35.330 --> 00:00:38.230 align:middle line:90%
vocabulary reduction.

00:00:38.230 --> 00:00:40.440 align:middle line:84%
How do we go to
vocabulary reduction?

00:00:40.440 --> 00:00:42.450 align:middle line:90%
How do we reduce our vocabulary?

00:00:42.450 --> 00:00:45.785 align:middle line:84%
Are we talking
about see Spot run?

00:00:45.785 --> 00:00:46.950 align:middle line:90%
What does this mean?

00:00:46.950 --> 00:00:49.940 align:middle line:84%
It really is about
something that we

00:00:49.940 --> 00:00:52.910 align:middle line:84%
do every time we do
analysis whether we

00:00:52.910 --> 00:00:55.100 align:middle line:84%
do music analysis
or textual analysis

00:00:55.100 --> 00:00:58.670 align:middle line:84%
or we're trying to think
about what really happened

00:00:58.670 --> 00:01:02.922 align:middle line:84%
on that last phone conversation
I had with my partner, friend,

00:01:02.922 --> 00:01:03.880 align:middle line:90%
or something like that.

00:01:03.880 --> 00:01:06.840 align:middle line:84%
We're trying to reduce
the number of complexities

00:01:06.840 --> 00:01:10.960 align:middle line:84%
down to something smaller
and more manageable.

00:01:10.960 --> 00:01:14.910 align:middle line:84%
And one of the places where we
do vocabulary reduction quite

00:01:14.910 --> 00:01:18.040 align:middle line:84%
a bit is in Roman
numeral analysis.

00:01:18.040 --> 00:01:21.160 align:middle line:84%
We don't label everything
a Roman numeral.

00:01:21.160 --> 00:01:23.700 align:middle line:84%
We tend to label
the things depending

00:01:23.700 --> 00:01:24.880 align:middle line:90%
on who your teacher was.

00:01:24.880 --> 00:01:27.000 align:middle line:84%
Maybe she or he
said we only label

00:01:27.000 --> 00:01:29.460 align:middle line:90%
things that are really chords.

00:01:29.460 --> 00:01:32.100 align:middle line:90%
What does that mean?

00:01:32.100 --> 00:01:35.470 align:middle line:84%
When we're thinking about
how we do this as humans,

00:01:35.470 --> 00:01:38.170 align:middle line:84%
we don't really have to think
too much about how we do this.

00:01:38.170 --> 00:01:40.570 align:middle line:84%
We just have to get
better at doing this.

00:01:40.570 --> 00:01:42.870 align:middle line:84%
But if we're going
to train a computer

00:01:42.870 --> 00:01:48.240 align:middle line:84%
system to be able to tell us
only the things that are really

00:01:48.240 --> 00:01:51.780 align:middle line:84%
there to reduce the
vocabulary of a score

00:01:51.780 --> 00:01:54.930 align:middle line:84%
into something more
manageable, then we're

00:01:54.930 --> 00:01:57.520 align:middle line:84%
going to have to understand
this process quite a bit better.

00:01:57.520 --> 00:01:59.380 align:middle line:84%
So that's what we're
going to do today.

00:01:59.380 --> 00:02:02.470 align:middle line:84%
I'm going to move over
to the Jupyter Notebook,

00:02:02.470 --> 00:02:07.140 align:middle line:84%
and today I didn't have time
to make every single thing

00:02:07.140 --> 00:02:10.300 align:middle line:90%
a little bit really polished.

00:02:10.300 --> 00:02:14.860 align:middle line:84%
So you'll get a sense
of how I program,

00:02:14.860 --> 00:02:19.290 align:middle line:84%
how I make up assignments for
us, and how some of the wrong

00:02:19.290 --> 00:02:21.240 align:middle line:84%
turns that happened
along the way.

00:02:21.240 --> 00:02:22.510 align:middle line:90%
Maybe it'll be useful.

00:02:22.510 --> 00:02:25.770 align:middle line:90%
So let's go over to Jupyter.

00:02:25.770 --> 00:02:27.990 align:middle line:84%
We're going to
start by importing

00:02:27.990 --> 00:02:32.100 align:middle line:84%
from music21 the corpus
method, and let's

00:02:32.100 --> 00:02:36.120 align:middle line:84%
load up a piece by Clara
Schumann, her Piano Trio,

00:02:36.120 --> 00:02:38.800 align:middle line:84%
slow movement, one of
my favorite pieces.

00:02:38.800 --> 00:02:41.977 align:middle line:84%
And we've looked at this
once in class before,

00:02:41.977 --> 00:02:43.810 align:middle line:84%
and it's going to take
a little bit of time.

00:02:43.810 --> 00:02:45.310 align:middle line:84%
It's a little bit
of a slower thing.

00:02:45.310 --> 00:02:46.670 align:middle line:90%
You might need to wait here.

00:02:46.670 --> 00:02:50.190 align:middle line:90%


00:02:50.190 --> 00:02:53.400 align:middle line:84%
It's a piano trio, but it
begins with just the piano

00:02:53.400 --> 00:02:56.260 align:middle line:90%
parts, really lovely section.

00:02:56.260 --> 00:02:59.135 align:middle line:84%
Let me find a YouTube video
and place that in here.

00:02:59.135 --> 00:03:02.248 align:middle line:90%
[MUSIC PLAYING]

00:03:02.248 --> 00:03:03.160 align:middle line:90%


00:03:03.160 --> 00:03:07.390 align:middle line:84%
And you can click on
that or just Google it,

00:03:07.390 --> 00:03:08.270 align:middle line:90%
find it in there.

00:03:08.270 --> 00:03:12.460 align:middle line:84%
Anyhow, the next eight measures
we looked at once in class,

00:03:12.460 --> 00:03:15.340 align:middle line:84%
and we can see it's when
the violin and the cello

00:03:15.340 --> 00:03:18.205 align:middle line:84%
enter and the piano
switches to something else.

00:03:18.205 --> 00:03:19.580 align:middle line:84%
The violins play
the same melody,

00:03:19.580 --> 00:03:24.490 align:middle line:84%
and we looked at it because
of those grace notes, which

00:03:24.490 --> 00:03:25.940 align:middle line:90%
if we can highlight that there.

00:03:25.940 --> 00:03:30.280 align:middle line:90%
There we go, and they--

00:03:30.280 --> 00:03:33.700 align:middle line:84%
yeah, they were a problem for
some of our representations

00:03:33.700 --> 00:03:35.110 align:middle line:90%
of encodings.

00:03:35.110 --> 00:03:39.200 align:middle line:84%
So let's just extract
the piano part from here,

00:03:39.200 --> 00:03:41.260 align:middle line:84%
and you can see
some of the mistakes

00:03:41.260 --> 00:03:45.040 align:middle line:84%
that I've made with
my own music21 package

00:03:45.040 --> 00:03:46.370 align:middle line:90%
that this happens.

00:03:46.370 --> 00:03:49.390 align:middle line:84%
I'm like, oh, I want
to extract two parts.

00:03:49.390 --> 00:03:52.190 align:middle line:84%
Well, first off that should
be two to four anyhow.

00:03:52.190 --> 00:03:55.280 align:middle line:84%
But in any case, it's
given me a list of things.

00:03:55.280 --> 00:03:56.630 align:middle line:90%
So I've made two mistakes.

00:03:56.630 --> 00:03:58.340 align:middle line:90%
That's not giving me a stream.

00:03:58.340 --> 00:03:59.590 align:middle line:90%
It's giving me a list.

00:03:59.590 --> 00:04:01.250 align:middle line:90%
I'm going to--

00:04:01.250 --> 00:04:03.390 align:middle line:90%
Now I'm going to do this again.

00:04:03.390 --> 00:04:04.830 align:middle line:84%
We're going to
import the stream.

00:04:04.830 --> 00:04:09.890 align:middle line:84%
We're going to-- to
create a new score, not

00:04:09.890 --> 00:04:13.740 align:middle line:90%
part, for putting things in.

00:04:13.740 --> 00:04:15.990 align:middle line:90%
And we're going to put in--

00:04:15.990 --> 00:04:19.100 align:middle line:84%
gosh, I cannot type piano
after all these years--

00:04:19.100 --> 00:04:23.333 align:middle line:84%
we're going to put in part two,
which is the piano right hand,

00:04:23.333 --> 00:04:25.250 align:middle line:84%
and we're going to also
put in part one, which

00:04:25.250 --> 00:04:28.520 align:middle line:90%
is the piano left hand.

00:04:28.520 --> 00:04:33.270 align:middle line:84%
And in order to make
this run faster,

00:04:33.270 --> 00:04:35.610 align:middle line:84%
we'll just take the
first 16 measures.

00:04:35.610 --> 00:04:38.018 align:middle line:84%
I put measure 0 just
out of habit in case

00:04:38.018 --> 00:04:39.060 align:middle line:90%
there's a pickup measure.

00:04:39.060 --> 00:04:40.760 align:middle line:84%
There isn't in this
case, so I could

00:04:40.760 --> 00:04:43.550 align:middle line:90%
have really started with one.

00:04:43.550 --> 00:04:46.580 align:middle line:84%
So now we're going to look at
just that little excerpt, just

00:04:46.580 --> 00:04:49.560 align:middle line:84%
the piano part, all that to
get rid of some empty rests.

00:04:49.560 --> 00:04:54.000 align:middle line:90%
But that's OK here.

00:04:54.000 --> 00:04:59.730 align:middle line:84%
So we're going to play with just
creating the chords of this,

00:04:59.730 --> 00:05:02.160 align:middle line:84%
and we'll remember the
chordify function, which

00:05:02.160 --> 00:05:05.860 align:middle line:84%
is a fun part of music21,
and we'll show it.

00:05:05.860 --> 00:05:08.590 align:middle line:84%
And because we're taking a
treble clef and a bass clef

00:05:08.590 --> 00:05:11.850 align:middle line:84%
put together an instrument, this
is always a little bit wacky.

00:05:11.850 --> 00:05:16.830 align:middle line:84%
You get used to counting
obscene numbers of ledger lines

00:05:16.830 --> 00:05:19.600 align:middle line:84%
when you are playing
with chordify

00:05:19.600 --> 00:05:23.940 align:middle line:84%
And there were times in my
life when I could actually

00:05:23.940 --> 00:05:27.160 align:middle line:84%
eyeball that first note and
say, yep, that's G. I got it.

00:05:27.160 --> 00:05:29.320 align:middle line:90%
But those times have passed.

00:05:29.320 --> 00:05:31.150 align:middle line:84%
So instead we're
going to recurse,

00:05:31.150 --> 00:05:37.000 align:middle line:84%
go through every single element
in every measure and everything,

00:05:37.000 --> 00:05:39.910 align:middle line:84%
and get all the
chords from that.

00:05:39.910 --> 00:05:41.088 align:middle line:90%
C chords is now a part.

00:05:41.088 --> 00:05:43.380 align:middle line:84%
And we're going to take every
one of those chords which

00:05:43.380 --> 00:05:45.690 align:middle line:84%
we call C and put it
into closed position

00:05:45.690 --> 00:05:48.120 align:middle line:84%
and say that it's going
to be an octave four.

00:05:48.120 --> 00:05:51.640 align:middle line:84%
And in place equals true, we're
going to replace the old chord,

00:05:51.640 --> 00:05:55.660 align:middle line:84%
and now we're going to show
that the-- are the same thing.

00:05:55.660 --> 00:05:58.800 align:middle line:84%
And now things look
quite a bit better.

00:05:58.800 --> 00:06:00.840 align:middle line:90%
So, yep, there's a--

00:06:00.840 --> 00:06:05.710 align:middle line:84%
think we compare back up
if we look at same page.

00:06:05.710 --> 00:06:07.650 align:middle line:90%
Yeah, a little bit.

00:06:07.650 --> 00:06:09.760 align:middle line:90%
Yep, that's a D down there.

00:06:09.760 --> 00:06:13.060 align:middle line:90%
That's a G. So it worked.

00:06:13.060 --> 00:06:15.190 align:middle line:90%
Worked pretty well.

00:06:15.190 --> 00:06:19.780 align:middle line:84%
We'll zoom back in again
so that we can see--

00:06:19.780 --> 00:06:21.960 align:middle line:90%
great.

00:06:21.960 --> 00:06:23.880 align:middle line:84%
Now what we're going
to do is we want

00:06:23.880 --> 00:06:28.600 align:middle line:84%
to label everything
that's happening in this.

00:06:28.600 --> 00:06:30.640 align:middle line:84%
So first we're going
to analyze the key.

00:06:30.640 --> 00:06:31.510 align:middle line:90%
What key are we In.

00:06:31.510 --> 00:06:32.500 align:middle line:90%
We're in G major.

00:06:32.500 --> 00:06:33.270 align:middle line:90%
Yep.

00:06:33.270 --> 00:06:37.090 align:middle line:84%
You'll see that this is called
The Piano Trio in G Minor.

00:06:37.090 --> 00:06:39.820 align:middle line:90%
But this movement is in G major.

00:06:39.820 --> 00:06:40.530 align:middle line:90%
Great.

00:06:40.530 --> 00:06:45.280 align:middle line:84%
So we're going to iterate over
every one of these chords again,

00:06:45.280 --> 00:06:46.860 align:middle line:84%
and we're going
to create a Roman

00:06:46.860 --> 00:06:49.420 align:middle line:90%
numeral for each of the chords.

00:06:49.420 --> 00:06:54.990 align:middle line:84%
Actually we're going to import
the Roman package from--

00:06:54.990 --> 00:06:58.470 align:middle line:84%
Roman module from music21,
and there's this cool thing

00:06:58.470 --> 00:07:02.530 align:middle line:84%
that you wish you had in your
last time you were programming

00:07:02.530 --> 00:07:05.240 align:middle line:84%
your last problem set,
Roman numeral from chord.

00:07:05.240 --> 00:07:08.740 align:middle line:84%
So we're going to take the chord
and say that we want the Roman

00:07:08.740 --> 00:07:09.830 align:middle line:90%
numeral in G.

00:07:09.830 --> 00:07:12.760 align:middle line:84%
We're actually going to
create an object called

00:07:12.760 --> 00:07:17.320 align:middle line:84%
G underscore major, which is a
variable which is the key of G

00:07:17.320 --> 00:07:19.930 align:middle line:84%
object, and the reason
for this is otherwise

00:07:19.930 --> 00:07:23.330 align:middle line:84%
we would have to create a new
key object for every chord

00:07:23.330 --> 00:07:25.430 align:middle line:90%
and over time that becomes slow.

00:07:25.430 --> 00:07:28.070 align:middle line:84%
So what we'll say is
for our original chords,

00:07:28.070 --> 00:07:30.310 align:middle line:84%
we'll give them the
lyrics which are

00:07:30.310 --> 00:07:32.450 align:middle line:84%
equal to the figure
of the Roman numeral.

00:07:32.450 --> 00:07:34.780 align:middle line:84%
So whatever the
Roman numeral is,

00:07:34.780 --> 00:07:36.373 align:middle line:90%
we'll assign that to the lyric.

00:07:36.373 --> 00:07:38.540 align:middle line:84%
You can see it's not the
fastest thing in the world,

00:07:38.540 --> 00:07:40.845 align:middle line:84%
but now you can have
it and we can look in.

00:07:40.845 --> 00:07:43.570 align:middle line:90%


00:07:43.570 --> 00:07:46.240 align:middle line:84%
We can look at those odd
chords in a little bit.

00:07:46.240 --> 00:07:47.740 align:middle line:84%
You can go ahead
and pause the video

00:07:47.740 --> 00:07:49.970 align:middle line:84%
if you want to look at
them in more detail.

00:07:49.970 --> 00:07:52.390 align:middle line:90%
Have a nice laugh.

00:07:52.390 --> 00:07:56.638 align:middle line:84%
But I'm just going to just get
a quick excerpt, the first four

00:07:56.638 --> 00:07:58.180 align:middle line:84%
measures, that first
line there, just

00:07:58.180 --> 00:08:02.000 align:middle line:84%
so that we can compare without
having to move our eyes up

00:08:02.000 --> 00:08:03.420 align:middle line:90%
and down a lot.

00:08:03.420 --> 00:08:08.570 align:middle line:84%
So now we'll compare this
to the original piano

00:08:08.570 --> 00:08:10.850 align:middle line:84%
part with the left
and the right hand

00:08:10.850 --> 00:08:15.860 align:middle line:84%
and just see do these
chords look about right.

00:08:15.860 --> 00:08:19.340 align:middle line:84%
Yep, you see, there's that weird
thing that that second chord

00:08:19.340 --> 00:08:21.180 align:middle line:90%
isn't really 6/4 chord.

00:08:21.180 --> 00:08:24.050 align:middle line:84%
It's really that that
low G is self-sustaining,

00:08:24.050 --> 00:08:28.777 align:middle line:84%
and then it's at a four
chord or is that 5/4/2 chord?

00:08:28.777 --> 00:08:30.860 align:middle line:84%
It's going to be a little
bit difficult because we

00:08:30.860 --> 00:08:33.590 align:middle line:84%
want to make sure is that
an appoggiatura or is that

00:08:33.590 --> 00:08:34.860 align:middle line:90%
a chord tone.

00:08:34.860 --> 00:08:36.360 align:middle line:90%
It's a little bit difficult.

00:08:36.360 --> 00:08:40.730 align:middle line:84%
In fact, this would be
the challenge problem

00:08:40.730 --> 00:08:43.669 align:middle line:84%
to be able to take
something where

00:08:43.669 --> 00:08:46.730 align:middle line:84%
we have arpeggios,
melodies, and things

00:08:46.730 --> 00:08:51.420 align:middle line:84%
and do vocabulary reduction
on a piano part like this.

00:08:51.420 --> 00:08:54.930 align:middle line:84%
This is still one of the big
unsolved problems in the field,

00:08:54.930 --> 00:08:58.040 align:middle line:84%
and being able to make
progress on how do we

00:08:58.040 --> 00:09:01.790 align:middle line:84%
reduce the number
of chords of Roman

00:09:01.790 --> 00:09:05.210 align:middle line:84%
numerals and analytical
things to only the, quote

00:09:05.210 --> 00:09:09.330 align:middle line:84%
unquote, real chords
on a complex score,

00:09:09.330 --> 00:09:11.520 align:middle line:84%
on an orchestral
or a piano score.

00:09:11.520 --> 00:09:15.560 align:middle line:84%
Still, one thing that you
could get A plus plus.

00:09:15.560 --> 00:09:18.290 align:middle line:84%
You could get complete
published paper out

00:09:18.290 --> 00:09:19.880 align:middle line:90%
of being able to do that.

00:09:19.880 --> 00:09:22.340 align:middle line:90%
For now, we're going to--

00:09:22.340 --> 00:09:24.840 align:middle line:84%
and there are some
great ways to do that.

00:09:24.840 --> 00:09:28.610 align:middle line:84%
We'll be looking at a
dissertation by a guy

00:09:28.610 --> 00:09:30.470 align:middle line:84%
by the name of
Christopher William

00:09:30.470 --> 00:09:33.650 align:middle line:84%
White at some point
for people who are

00:09:33.650 --> 00:09:36.980 align:middle line:90%
very interested in such things.

00:09:36.980 --> 00:09:40.730 align:middle line:84%
We're going to be applying the
concepts of vocabulary reduction

00:09:40.730 --> 00:09:46.430 align:middle line:84%
to box four-part chorales
because these this is music that

00:09:46.430 --> 00:09:51.300 align:middle line:84%
tends to have all of the
harmonies changing very often,

00:09:51.300 --> 00:09:54.590 align:middle line:84%
and not having a lot of
the arpeggiation and things

00:09:54.590 --> 00:09:57.260 align:middle line:90%
that we were just seeing.

00:09:57.260 --> 00:09:58.760 align:middle line:84%
You're going to be
working in groups

00:09:58.760 --> 00:10:00.510 align:middle line:84%
and I'll talk about
the problem set later,

00:10:00.510 --> 00:10:03.600 align:middle line:84%
but I want to say that there's
two different approaches

00:10:03.600 --> 00:10:07.260 align:middle line:84%
that you could be
using and perhaps more

00:10:07.260 --> 00:10:10.440 align:middle line:90%
to do this kind of assignment.

00:10:10.440 --> 00:10:12.240 align:middle line:84%
What I'll be doing in
the rest of the video

00:10:12.240 --> 00:10:15.360 align:middle line:84%
is an approach where
you start by labeling

00:10:15.360 --> 00:10:18.030 align:middle line:84%
every vertical
element, and then you

00:10:18.030 --> 00:10:22.140 align:middle line:84%
start removing ones that don't
seem to actually be chords.

00:10:22.140 --> 00:10:24.160 align:middle line:90%
This is a great way of working.

00:10:24.160 --> 00:10:28.800 align:middle line:84%
Another way of working that
resembles perhaps a little bit

00:10:28.800 --> 00:10:31.530 align:middle line:84%
more closely how
we as humans work

00:10:31.530 --> 00:10:34.770 align:middle line:84%
is to start by identifying
non-harmonic tones

00:10:34.770 --> 00:10:37.990 align:middle line:84%
and putting them all
out in various places

00:10:37.990 --> 00:10:41.010 align:middle line:84%
and then removing the
vertical chords that are not

00:10:41.010 --> 00:10:49.080 align:middle line:84%
real chords perhaps by also
using the various Roman numeral

00:10:49.080 --> 00:10:50.400 align:middle line:90%
sections.

00:10:50.400 --> 00:10:54.750 align:middle line:84%
To give you a sense, I want
to show a little bit one

00:10:54.750 --> 00:10:56.620 align:middle line:90%
particular Bach chorale.

00:10:56.620 --> 00:10:59.800 align:middle line:84%
We'll look at the opening
here of a four voice piece,

00:10:59.800 --> 00:11:01.910 align:middle line:84%
and you can see
moments that, oh,

00:11:01.910 --> 00:11:03.410 align:middle line:90%
that looks like a passing tone.

00:11:03.410 --> 00:11:06.910 align:middle line:84%
That looks like it's
going to be a little bit--

00:11:06.910 --> 00:11:09.880 align:middle line:90%
yeah, just on its way someplace.

00:11:09.880 --> 00:11:13.450 align:middle line:84%
Here it looks like
a neighbor tone.

00:11:13.450 --> 00:11:15.490 align:middle line:84%
This might be a
suspension to here,

00:11:15.490 --> 00:11:19.160 align:middle line:84%
or this might be a truck
suspension and so on.

00:11:19.160 --> 00:11:21.580 align:middle line:84%
So we can do it
by hand, but then

00:11:21.580 --> 00:11:23.840 align:middle line:84%
how do we train the
computer to do it?

00:11:23.840 --> 00:11:25.730 align:middle line:84%
So that would be one
type of question.

00:11:25.730 --> 00:11:27.700 align:middle line:84%
And then once you've
trained a computer

00:11:27.700 --> 00:11:31.510 align:middle line:84%
to identify these tones, you
can create a version where

00:11:31.510 --> 00:11:35.110 align:middle line:90%
you remove them and chordify.

00:11:35.110 --> 00:11:37.750 align:middle line:84%
After this comes
an essential step

00:11:37.750 --> 00:11:42.730 align:middle line:84%
of identifying where various
key changes might be.

00:11:42.730 --> 00:11:45.460 align:middle line:84%
So regardless of
whether you start

00:11:45.460 --> 00:11:50.510 align:middle line:84%
with looking at finding passing
tones, neighbor tones, and so on

00:11:50.510 --> 00:11:56.170 align:middle line:84%
or start by looking at every
particular chord and removing,

00:11:56.170 --> 00:11:58.700 align:middle line:84%
the end result ends
up being the same,

00:11:58.700 --> 00:12:05.110 align:middle line:84%
and your work can be judged by
how well each various part had

00:12:05.110 --> 00:12:08.470 align:middle line:84%
been identified
through your process.

00:12:08.470 --> 00:12:13.450 align:middle line:84%
I would suggest if you're
working and dividing up

00:12:13.450 --> 00:12:16.520 align:middle line:84%
the tasks among
people in your group

00:12:16.520 --> 00:12:22.180 align:middle line:84%
that you start with the
removal of various individual

00:12:22.180 --> 00:12:24.160 align:middle line:90%
non-harmonic tones.

00:12:24.160 --> 00:12:26.560 align:middle line:84%
If on the other hand
your group chooses

00:12:26.560 --> 00:12:30.760 align:middle line:84%
to work where everybody
is working together

00:12:30.760 --> 00:12:33.730 align:middle line:84%
at each stage, then
perhaps the technique

00:12:33.730 --> 00:12:35.440 align:middle line:84%
I explain in the
rest of the video

00:12:35.440 --> 00:12:40.230 align:middle line:84%
where you label chords first
will yield better results.

00:12:40.230 --> 00:12:47.260 align:middle line:90%


00:12:47.260 --> 00:12:51.100 align:middle line:84%
But we can go and do something
a little bit easier if we stick

00:12:51.100 --> 00:12:52.760 align:middle line:90%
to chorale style compositions.

00:12:52.760 --> 00:12:57.340 align:middle line:84%
So we'll go back to our favorite
Bach piece, BWV 66.6, which

00:12:57.340 --> 00:13:00.130 align:middle line:84%
is going to have its own
problems in a little bit,

00:13:00.130 --> 00:13:01.750 align:middle line:90%
but we're going to chordify it.

00:13:01.750 --> 00:13:03.750 align:middle line:84%
I'm just going to cut
and pasting up here

00:13:03.750 --> 00:13:07.350 align:middle line:84%
and we're going to again, once
we chordify everything, put it

00:13:07.350 --> 00:13:10.120 align:middle line:84%
into closed position,
put it into octave four,

00:13:10.120 --> 00:13:13.120 align:middle line:84%
and, again, replace all
the chords in place.

00:13:13.120 --> 00:13:16.570 align:middle line:84%
If you haven't seen how
this technique works,

00:13:16.570 --> 00:13:21.550 align:middle line:84%
look at music21 user's guide,
chapter nine and chapter 10.

00:13:21.550 --> 00:13:24.490 align:middle line:84%
We do that a lot there,
in fact, with this piece.

00:13:24.490 --> 00:13:27.210 align:middle line:84%
So you'll see some
new techniques

00:13:27.210 --> 00:13:31.200 align:middle line:84%
and be able to do it a
little bit more slowly.

00:13:31.200 --> 00:13:33.900 align:middle line:84%
So this piece has the
interesting characteristic

00:13:33.900 --> 00:13:37.300 align:middle line:84%
that it ends in a different
key than where it began.

00:13:37.300 --> 00:13:40.230 align:middle line:84%
So if we look at the
key of measure 0 to 2

00:13:40.230 --> 00:13:44.430 align:middle line:84%
using Carol Krumhansl's
probe tone key analysis

00:13:44.430 --> 00:13:47.200 align:middle line:84%
method, which is
built into music21,

00:13:47.200 --> 00:13:49.660 align:middle line:90%
and we see that it's in A major.

00:13:49.660 --> 00:13:54.490 align:middle line:84%
But then if we look at the
last seven measures 4-10,

00:13:54.490 --> 00:13:57.360 align:middle line:90%
we see it's an F sharp minor.

00:13:57.360 --> 00:14:01.030 align:middle line:84%
So we're going to work on each
of the two parts separately.

00:14:01.030 --> 00:14:06.220 align:middle line:84%
So let's first look at measures
0 to 2 and get this excerpt

00:14:06.220 --> 00:14:08.580 align:middle line:90%
as B chords underscore excerpt--

00:14:08.580 --> 00:14:10.740 align:middle line:84%
should probably call
the excerpt one,

00:14:10.740 --> 00:14:14.530 align:middle line:84%
whatever-- and we can look
at those first two measures.

00:14:14.530 --> 00:14:19.800 align:middle line:84%
And let's use the same technique
that we used with Clara Schumann

00:14:19.800 --> 00:14:25.120 align:middle line:84%
to go through each chord and
get a Roman numeral from it

00:14:25.120 --> 00:14:27.370 align:middle line:84%
and then put the lyrics
in so we can see it.

00:14:27.370 --> 00:14:31.570 align:middle line:84%
We just have to change
G major to A major.

00:14:31.570 --> 00:14:33.880 align:middle line:84%
Again, you can just
put the string A there,

00:14:33.880 --> 00:14:37.090 align:middle line:90%
but I prefer to do this.

00:14:37.090 --> 00:14:43.320 align:middle line:84%
So we'll do A major and A
major and change C chords

00:14:43.320 --> 00:14:48.510 align:middle line:84%
to B chords, excerpt, and
of course A maj is not

00:14:48.510 --> 00:14:49.870 align:middle line:90%
the same as A major.

00:14:49.870 --> 00:14:52.410 align:middle line:90%
So we'll go ahead and fix that.

00:14:52.410 --> 00:14:53.530 align:middle line:90%
Put that in.

00:14:53.530 --> 00:14:58.510 align:middle line:84%
And now we'll take this
excerpt and show it.

00:14:58.510 --> 00:15:01.960 align:middle line:90%


00:15:01.960 --> 00:15:04.510 align:middle line:90%
And we can see--

00:15:04.510 --> 00:15:06.200 align:middle line:90%
this is quite a bit simpler.

00:15:06.200 --> 00:15:09.400 align:middle line:90%
We have the 1, 5, 6, 6.

00:15:09.400 --> 00:15:11.380 align:middle line:90%
Yeah, things like that.

00:15:11.380 --> 00:15:13.000 align:middle line:84%
This is actually
a really good time

00:15:13.000 --> 00:15:17.038 align:middle line:84%
to remember think about
references because we haven't

00:15:17.038 --> 00:15:18.080 align:middle line:90%
really talked about this.

00:15:18.080 --> 00:15:21.740 align:middle line:84%
So this is just the excerpt
of just the two measures.

00:15:21.740 --> 00:15:23.930 align:middle line:84%
When we go back and look
at all of the chords,

00:15:23.930 --> 00:15:30.040 align:middle line:84%
one of the things you can see is
that the figures do sustain back

00:15:30.040 --> 00:15:31.790 align:middle line:90%
to that part.

00:15:31.790 --> 00:15:35.440 align:middle line:84%
In other words, the
chords in the excerpt

00:15:35.440 --> 00:15:41.320 align:middle line:84%
are the exact same objects as
the chords in the chord part.

00:15:41.320 --> 00:15:44.780 align:middle line:84%
So what you change on one of
them will change on the other.

00:15:44.780 --> 00:15:49.750 align:middle line:84%
But if we go all the way back
to the original Bach part

00:15:49.750 --> 00:15:55.270 align:middle line:84%
and we show it, we'll see that,
hey, there's no lyrics anywhere,

00:15:55.270 --> 00:15:57.400 align:middle line:84%
anything because there
were no chords there

00:15:57.400 --> 00:16:01.520 align:middle line:84%
and we just can't
get back to that.

00:16:01.520 --> 00:16:03.880 align:middle line:84%
Anyhow, that was a little
bit of a digression

00:16:03.880 --> 00:16:08.770 align:middle line:84%
while we look at the
Roman numerals here.

00:16:08.770 --> 00:16:12.130 align:middle line:84%
These look like the kinds of
Roman numerals I was taught.

00:16:12.130 --> 00:16:15.590 align:middle line:84%
So there's not too much,
too much to do there.

00:16:15.590 --> 00:16:18.800 align:middle line:84%
So let's go back to the
second block excerpt,

00:16:18.800 --> 00:16:22.370 align:middle line:84%
the one that's in F sharp
minor and measures 4-10.

00:16:22.370 --> 00:16:26.540 align:middle line:84%
So we'll go ahead and
get measures 4-10,

00:16:26.540 --> 00:16:32.380 align:middle line:84%
and we'll call that block
excerpt B chord excerpt 2

00:16:32.380 --> 00:16:34.370 align:middle line:90%
and measures 4-10.

00:16:34.370 --> 00:16:36.220 align:middle line:84%
When we show this
part, you're going

00:16:36.220 --> 00:16:43.120 align:middle line:84%
to see that there's one problem
with all of our showing things,

00:16:43.120 --> 00:16:46.750 align:middle line:84%
and that is to say that
the measure numbers are not

00:16:46.750 --> 00:16:49.810 align:middle line:90%
going to be kept but whatever.

00:16:49.810 --> 00:16:52.390 align:middle line:84%
So we're going to go ahead and
create a key of F sharp minor

00:16:52.390 --> 00:16:55.570 align:middle line:84%
and pause this for one
second in the video

00:16:55.570 --> 00:16:59.990 align:middle line:90%
to see that when we make a key--

00:16:59.990 --> 00:17:04.520 align:middle line:84%
a key object really important to
make a lowercase f if you want

00:17:04.520 --> 00:17:08.160 align:middle line:84%
to show that something's minor,
and I call it fis by the way

00:17:08.160 --> 00:17:11.390 align:middle line:84%
because you can't obviously
put f, number sign, pound sign

00:17:11.390 --> 00:17:13.752 align:middle line:84%
to mean a sharp
sign as a variable

00:17:13.752 --> 00:17:15.210 align:middle line:84%
because it would
just be a comment.

00:17:15.210 --> 00:17:17.569 align:middle line:90%
So we sometimes use--

00:17:17.569 --> 00:17:19.410 align:middle line:84%
borrow things from
other languages,

00:17:19.410 --> 00:17:23.520 align:middle line:84%
and so f-i-s, fis, is
the German for f sharp.

00:17:23.520 --> 00:17:26.748 align:middle line:90%
So getting back here.

00:17:26.748 --> 00:17:28.790 align:middle line:84%
Getting back here we're
just doing the same thing

00:17:28.790 --> 00:17:32.210 align:middle line:84%
that we did before, B chords
x sub 2 We're getting each

00:17:32.210 --> 00:17:35.370 align:middle line:84%
of the chords, change
them to Roman numerals,

00:17:35.370 --> 00:17:38.100 align:middle line:84%
taking that Roman numerals
figure, and make it into lyrics,

00:17:38.100 --> 00:17:40.260 align:middle line:84%
and now we're going
to show that section.

00:17:40.260 --> 00:17:43.220 align:middle line:84%
And these measure
numbers are the thing

00:17:43.220 --> 00:17:45.530 align:middle line:84%
I was talking about
that I guess we

00:17:45.530 --> 00:17:49.200 align:middle line:84%
have to add three to each one
of them to get what it is.

00:17:49.200 --> 00:17:52.550 align:middle line:84%
Eventually we'll be
able to contribute back

00:17:52.550 --> 00:17:55.310 align:middle line:84%
to open source
projects like MuseScore

00:17:55.310 --> 00:17:57.510 align:middle line:84%
and be able to fix
this limitation.

00:17:57.510 --> 00:18:00.310 align:middle line:84%
I haven't had time
to do that yet.

00:18:00.310 --> 00:18:01.830 align:middle line:90%
Such a great project.

00:18:01.830 --> 00:18:06.180 align:middle line:84%
Anyhow so we can go look through
and see that this time there's

00:18:06.180 --> 00:18:08.850 align:middle line:84%
a lot more interesting
chords and some things

00:18:08.850 --> 00:18:10.680 align:middle line:84%
that definitely
we want to reduce

00:18:10.680 --> 00:18:14.580 align:middle line:84%
the vocabulary of because I
don't think all of those chords

00:18:14.580 --> 00:18:15.280 align:middle line:90%
actually exist.

00:18:15.280 --> 00:18:18.870 align:middle line:84%
Let's just grab that last
measure of the second system

00:18:18.870 --> 00:18:28.090 align:middle line:84%
here, which is measure 8,
and look into that over here.

00:18:28.090 --> 00:18:31.020 align:middle line:84%
Yep, so there's an
A sharp and then

00:18:31.020 --> 00:18:34.150 align:middle line:90%
a B and a C sharp in the bass.

00:18:34.150 --> 00:18:37.000 align:middle line:84%
Yep, that's definitely
the right measure.

00:18:37.000 --> 00:18:40.290 align:middle line:84%
And you can see that that
chord, quote unquote,

00:18:40.290 --> 00:18:43.920 align:middle line:84%
on the second eighth note is
almost certainly not a chord.

00:18:43.920 --> 00:18:47.910 align:middle line:84%
That is a leading--
a passing tone,

00:18:47.910 --> 00:18:54.850 align:middle line:84%
and so that flat augmented
chord on 6/6 or something,

00:18:54.850 --> 00:18:57.630 align:middle line:84%
whatever that was, that's
something we want to reduce

00:18:57.630 --> 00:18:59.405 align:middle line:90%
in the vocabulary.

00:18:59.405 --> 00:19:01.530 align:middle line:90%
So how can we do this?

00:19:01.530 --> 00:19:05.080 align:middle line:84%
I'm going to give you one
quick way that we can do this.

00:19:05.080 --> 00:19:08.400 align:middle line:84%
Let's just excerpt
measure eight chord--

00:19:08.400 --> 00:19:13.300 align:middle line:84%
8 and just get that
one measure from the--

00:19:13.300 --> 00:19:15.630 align:middle line:84%
this is from the
chordified version--

00:19:15.630 --> 00:19:16.690 align:middle line:90%
measure 8.

00:19:16.690 --> 00:19:20.520 align:middle line:84%
And we can just show it, make
sure we got the right one.

00:19:20.520 --> 00:19:21.785 align:middle line:90%
Always do this by the way.

00:19:21.785 --> 00:19:23.160 align:middle line:84%
The number of
times that somebody

00:19:23.160 --> 00:19:25.960 align:middle line:84%
has worked hours and hours
and can't figure out the bug,

00:19:25.960 --> 00:19:28.280 align:middle line:84%
because it turns out that
wasn't the right bug--

00:19:28.280 --> 00:19:29.530 align:middle line:90%
that wasn't the right measure.

00:19:29.530 --> 00:19:32.790 align:middle line:84%
So, yeah, I'm going to pause
the video for one second

00:19:32.790 --> 00:19:37.200 align:middle line:84%
and go through those
chords in some detail.

00:19:37.200 --> 00:19:39.340 align:middle line:84%
So sorry, I've cut
off the soprano,

00:19:39.340 --> 00:19:41.100 align:middle line:84%
but it's just a whole
bunch of F sharps.

00:19:41.100 --> 00:19:45.250 align:middle line:84%
So we can see that
the first chord, 1/6,

00:19:45.250 --> 00:19:48.345 align:middle line:90%
that's really from the bass.

00:19:48.345 --> 00:19:50.200 align:middle line:84%
That's the chord
that's happening.

00:19:50.200 --> 00:19:55.305 align:middle line:84%
It's either the chord on beat
1 or the chord on beat 2.

00:19:55.305 --> 00:19:57.870 align:middle line:84%
The third beat,
the bass line looks

00:19:57.870 --> 00:20:00.370 align:middle line:84%
like it's doing some
kind of a passing tone,

00:20:00.370 --> 00:20:04.430 align:middle line:84%
and then it's moving up to
that C sharp at the end.

00:20:04.430 --> 00:20:07.780 align:middle line:90%
So something is happening and--

00:20:07.780 --> 00:20:13.330 align:middle line:84%
but, well, it's really
unclear if anything

00:20:13.330 --> 00:20:16.690 align:middle line:84%
except the first
beat is something

00:20:16.690 --> 00:20:20.140 align:middle line:84%
that we'd want to keep
as an actual chord,

00:20:20.140 --> 00:20:22.730 align:middle line:84%
especially looking
at the alto line

00:20:22.730 --> 00:20:26.930 align:middle line:84%
looks like it has both of
those Ds might be passing tones

00:20:26.930 --> 00:20:29.360 align:middle line:84%
and the tenor also looks
like it's passing tone.

00:20:29.360 --> 00:20:31.420 align:middle line:84%
So a lot of these
chordal motions

00:20:31.420 --> 00:20:36.560 align:middle line:84%
are things that are introducing
interesting elements,

00:20:36.560 --> 00:20:39.355 align:middle line:84%
but are they
introducing new chords?

00:20:39.355 --> 00:20:41.890 align:middle line:84%
So what we're going to
do in the next section

00:20:41.890 --> 00:20:45.770 align:middle line:84%
is let's just get
a way of saying

00:20:45.770 --> 00:20:51.720 align:middle line:84%
which chords do we think have
enough stability for us to label

00:20:51.720 --> 00:20:52.220 align:middle line:90%
them.

00:20:52.220 --> 00:20:56.270 align:middle line:84%
So we're going to look through
each chord in measure 8.

00:20:56.270 --> 00:20:59.970 align:middle line:84%
In this case I don't need to do
recurse because measure 8 only

00:20:59.970 --> 00:21:03.610 align:middle line:84%
has chords and time signatures
maybe or something like that,

00:21:03.610 --> 00:21:07.870 align:middle line:84%
and I'm good at print whether
or not the chord is consonant--

00:21:07.870 --> 00:21:12.070 align:middle line:84%
that's a routine, a method
that's on every chord object--

00:21:12.070 --> 00:21:14.020 align:middle line:84%
and then print the
chord object itself.

00:21:14.020 --> 00:21:18.810 align:middle line:84%
We can see that only that
first 1/6 chord is actually

00:21:18.810 --> 00:21:20.730 align:middle line:90%
a consonant chord.

00:21:20.730 --> 00:21:23.430 align:middle line:84%
Everything else is
dissonant according

00:21:23.430 --> 00:21:26.790 align:middle line:90%
to the rules of tonal harmony.

00:21:26.790 --> 00:21:30.060 align:middle line:84%
So what we could do is we
could create a new stream

00:21:30.060 --> 00:21:31.810 align:middle line:84%
and start putting
all of the chords in,

00:21:31.810 --> 00:21:38.745 align:middle line:84%
and then let's replace that
back into our original,

00:21:38.745 --> 00:21:40.870 align:middle line:84%
or we can start copying
things and putting them in.

00:21:40.870 --> 00:21:44.680 align:middle line:84%
But after thinking aloud at
the keyboard for a little bit,

00:21:44.680 --> 00:21:48.690 align:middle line:84%
I decided I was going to just
go through and let's just remove

00:21:48.690 --> 00:21:51.190 align:middle line:84%
all the chords that
are not consonant.

00:21:51.190 --> 00:21:59.140 align:middle line:84%
So every stream has a nice
little remove functionality

00:21:59.140 --> 00:22:00.235 align:middle line:90%
from it.

00:22:00.235 --> 00:22:04.390 align:middle line:84%
There are some problems by
the way just like all Python

00:22:04.390 --> 00:22:06.940 align:middle line:84%
and many other languages
lists and arrays

00:22:06.940 --> 00:22:09.062 align:middle line:84%
and stuff like that that
if you remove things

00:22:09.062 --> 00:22:11.270 align:middle line:84%
while you're iterating over,
there could be problems.

00:22:11.270 --> 00:22:12.260 align:middle line:90%
But here it's OK.

00:22:12.260 --> 00:22:15.590 align:middle line:84%
So we're going to remove every
chord that's not consonant,

00:22:15.590 --> 00:22:19.340 align:middle line:84%
and then we're going to get
that first chord, the 1/6 chord,

00:22:19.340 --> 00:22:22.070 align:middle line:84%
and we'll make the duration
of that be a whole note.

00:22:22.070 --> 00:22:24.430 align:middle line:84%
So now when we
look at measure 8,

00:22:24.430 --> 00:22:28.480 align:middle line:84%
we see only that
consonant chord.

00:22:28.480 --> 00:22:29.230 align:middle line:90%
Ta da.

00:22:29.230 --> 00:22:33.220 align:middle line:84%
And that's one of the forms
of vocabulary reduction

00:22:33.220 --> 00:22:37.590 align:middle line:84%
that's going to
be pretty common.

00:22:37.590 --> 00:22:41.650 align:middle line:84%
So when we go back and
look at the excerpt

00:22:41.650 --> 00:22:46.990 align:middle line:84%
here for the first part, we
don't have nearly as much

00:22:46.990 --> 00:22:47.870 align:middle line:90%
to remove.

00:22:47.870 --> 00:22:50.960 align:middle line:84%
So maybe we want to do
the same type of thing.

00:22:50.960 --> 00:22:53.170 align:middle line:84%
Well, let's just look
at that first excerpt

00:22:53.170 --> 00:22:56.210 align:middle line:84%
and see what things
are consonant,

00:22:56.210 --> 00:22:57.680 align:middle line:90%
what things are dissonant.

00:22:57.680 --> 00:23:00.327 align:middle line:90%
And here we do need to recurse.

00:23:00.327 --> 00:23:02.160 align:middle line:84%
So we're going to look
at this first excerpt

00:23:02.160 --> 00:23:05.680 align:middle line:84%
and see, wow, almost
everything here is constant.

00:23:05.680 --> 00:23:07.090 align:middle line:90%
There's that one false.

00:23:07.090 --> 00:23:08.980 align:middle line:90%
Which one does it refer to?

00:23:08.980 --> 00:23:10.210 align:middle line:90%
What's it refer to?

00:23:10.210 --> 00:23:12.870 align:middle line:84%
Oh, let's just replace it and
print the figure instead--

00:23:12.870 --> 00:23:17.790 align:middle line:84%
not the figure-- the lyrics
instead and see that that one

00:23:17.790 --> 00:23:22.660 align:middle line:84%
thing that is not
consonant is a 5/7 chord,

00:23:22.660 --> 00:23:24.850 align:middle line:84%
something that we
might want to keep,

00:23:24.850 --> 00:23:29.020 align:middle line:84%
whereas the something else that
is constant is a 3/6 chord,

00:23:29.020 --> 00:23:32.770 align:middle line:84%
which we might want to
remove and say, well,

00:23:32.770 --> 00:23:33.790 align:middle line:90%
that's not a real chord.

00:23:33.790 --> 00:23:35.370 align:middle line:84%
In this case, it
is because we're

00:23:35.370 --> 00:23:38.880 align:middle line:84%
about to be modulating
into another key.

00:23:38.880 --> 00:23:42.600 align:middle line:84%
So we're going to be
thinking about how can we

00:23:42.600 --> 00:23:45.660 align:middle line:84%
do these things, what are the
various criteria that we can

00:23:45.660 --> 00:23:48.950 align:middle line:90%
find, and how do we do this?

00:23:48.950 --> 00:24:00.000 align:middle line:90%