WEBVTT

00:00:00.000 --> 00:00:02.495 align:middle line:90%
[SQUEAKING]

00:00:02.495 --> 00:00:04.491 align:middle line:90%
[RUSTLING]

00:00:04.491 --> 00:00:10.490 align:middle line:90%
[CLICKING]

00:00:10.490 --> 00:00:13.950 align:middle line:84%
MICHAEL CUTHBERT: I want to wrap
up a tiny bit of problem set 7.

00:00:13.950 --> 00:00:18.110 align:middle line:84%
But before we do, I want us to
jump ahead to the second part

00:00:18.110 --> 00:00:20.620 align:middle line:84%
where I say algorithmic
composition for a Markov data

00:00:20.620 --> 00:00:21.120 align:middle line:90%
set.

00:00:21.120 --> 00:00:23.390 align:middle line:90%
If you could get your--

00:00:23.390 --> 00:00:26.700 align:middle line:84%
what do you call it-- your
Jupyter Notebooks going.

00:00:26.700 --> 00:00:29.792 align:middle line:84%
And now, we're getting to
the point in the semester

00:00:29.792 --> 00:00:32.000 align:middle line:84%
where I'm just going to say
you can import everything

00:00:32.000 --> 00:00:35.510 align:middle line:84%
from music21, but I will give
you a few restrictions from time

00:00:35.510 --> 00:00:36.060 align:middle line:90%
to time.

00:00:36.060 --> 00:00:39.480 align:middle line:84%
So I don't really care
what you're doing.

00:00:39.480 --> 00:00:43.070 align:middle line:84%
And in the past, I've
tried to have everyone

00:00:43.070 --> 00:00:46.100 align:middle line:90%
download a pre-prepared set.

00:00:46.100 --> 00:00:47.520 align:middle line:90%
And it's always had problems.

00:00:47.520 --> 00:00:49.580 align:middle line:84%
So we're just going
to do something

00:00:49.580 --> 00:00:53.540 align:middle line:84%
that takes about 3 or 4
minutes of your processor time

00:00:53.540 --> 00:00:55.560 align:middle line:90%
and get that started now.

00:00:55.560 --> 00:00:57.840 align:middle line:84%
So this will probably
take a second or two.

00:00:57.840 --> 00:01:02.810 align:middle line:84%
You're learning a new
term, corpus.search Jig.

00:01:02.810 --> 00:01:06.540 align:middle line:84%
I can't remember if it's
important if this is capital

00:01:06.540 --> 00:01:07.040 align:middle line:90%
or not.

00:01:07.040 --> 00:01:08.480 align:middle line:90%
But let's say I put it on.

00:01:08.480 --> 00:01:12.118 align:middle line:84%
And this will go through music--
so music21 comes with about--

00:01:12.118 --> 00:01:13.660 align:middle line:84%
I can't remember
what the number is--

00:01:13.660 --> 00:01:16.503 align:middle line:84%
something like 14,000
pieces when you do it,

00:01:16.503 --> 00:01:17.420 align:middle line:90%
just so you can do it.

00:01:17.420 --> 00:01:21.170 align:middle line:84%
And this will get everything
that calls itself jig.

00:01:21.170 --> 00:01:23.080 align:middle line:84%
I don't know if
there's any word that

00:01:23.080 --> 00:01:26.780 align:middle line:84%
begins with jig
that is not a jig,

00:01:26.780 --> 00:01:30.020 align:middle line:84%
but this might be
garbage in, garbage out.

00:01:30.020 --> 00:01:32.360 align:middle line:90%
I'm getting 327.

00:01:32.360 --> 00:01:33.860 align:middle line:84%
Depending on what
version you're on,

00:01:33.860 --> 00:01:35.920 align:middle line:84%
you might be slightly
higher or slightly lower.

00:01:35.920 --> 00:01:38.150 align:middle line:84%
It won't influence
that too much.

00:01:38.150 --> 00:01:38.890 align:middle line:90%
Great.

00:01:38.890 --> 00:01:43.600 align:middle line:84%
So give me a quick-- actually,
the easiest thing so I can tell

00:01:43.600 --> 00:01:46.700 align:middle line:84%
is, yeah, up or a snap of a
finger when you've got it.

00:01:46.700 --> 00:01:48.250 align:middle line:90%
And then I can hear.

00:01:48.250 --> 00:01:48.820 align:middle line:90%
[SNAPPING]

00:01:48.820 --> 00:01:49.435 align:middle line:90%
OK, good.

00:01:49.435 --> 00:01:51.560 align:middle line:84%
All of our computers are
slightly different speeds.

00:01:51.560 --> 00:01:55.803 align:middle line:84%
But I think you can also start
typing the next expressions

00:01:55.803 --> 00:01:56.720 align:middle line:90%
while you're doing it.

00:01:56.720 --> 00:01:59.640 align:middle line:84%
So Jigs is something
called a metadata bundle.

00:01:59.640 --> 00:02:03.540 align:middle line:84%
That means it's a collection
of everything whose metadata,

00:02:03.540 --> 00:02:07.405 align:middle line:84%
whose titles, authors, something
match a particular search term.

00:02:07.405 --> 00:02:08.280 align:middle line:90%
You can look through.

00:02:08.280 --> 00:02:12.560 align:middle line:84%
You can find things by
key, by starting meter,

00:02:12.560 --> 00:02:13.620 align:middle line:90%
and things like that.

00:02:13.620 --> 00:02:16.400 align:middle line:84%
But often searching
by title or composer

00:02:16.400 --> 00:02:17.640 align:middle line:90%
is one of the first things.

00:02:17.640 --> 00:02:21.410 align:middle line:84%
And what you can
do is if we look

00:02:21.410 --> 00:02:24.230 align:middle line:84%
at this as a very short
introduction to this,

00:02:24.230 --> 00:02:27.210 align:middle line:90%
jigs is 327 things.

00:02:27.210 --> 00:02:30.560 align:middle line:84%
We can look at the
first one with jigs(0).

00:02:30.560 --> 00:02:35.420 align:middle line:84%
And we can get that it comes
from some particular piece, song

00:02:35.420 --> 00:02:42.650 align:middle line:84%
47, in a collection of Irish
tunes called airdsAirs_book1.

00:02:42.650 --> 00:02:44.400 align:middle line:90%
So it's not a piece.

00:02:44.400 --> 00:02:46.760 align:middle line:84%
In order to get
that, we can say--

00:02:46.760 --> 00:02:48.690 align:middle line:90%
I'm going to go j1.

00:02:48.690 --> 00:02:52.100 align:middle line:84%
I'm going to equals
jigs(1), because jigs(0)

00:02:52.100 --> 00:02:55.775 align:middle line:90%
has some funny things on it.

00:02:55.775 --> 00:03:00.110 align:middle line:84%
And jigs(1).parse,
calling it as a method,

00:03:00.110 --> 00:03:02.800 align:middle line:84%
and that will actually load
it, because, otherwise,

00:03:02.800 --> 00:03:06.980 align:middle line:84%
loading 327 pieces would
take a little too long.

00:03:06.980 --> 00:03:10.100 align:middle line:84%
And then I can do
show, hopefully.

00:03:10.100 --> 00:03:13.300 align:middle line:90%


00:03:13.300 --> 00:03:14.840 align:middle line:90%
"A Spanish Jigg"!

00:03:14.840 --> 00:03:18.820 align:middle line:84%
Everyone get "A Spanish
Jigg" on theirs?

00:03:18.820 --> 00:03:19.863 align:middle line:90%
OK, good.

00:03:19.863 --> 00:03:21.280 align:middle line:84%
So what we're going
to do is we're

00:03:21.280 --> 00:03:25.190 align:middle line:84%
going to just get every
jig that is in G major.

00:03:25.190 --> 00:03:27.130 align:middle line:84%
So I'm going to
call it-- because I

00:03:27.130 --> 00:03:31.580 align:middle line:90%
have my verbose variable names.

00:03:31.580 --> 00:03:34.220 align:middle line:84%
I'm going to call it
jigs_in_g with underscores.

00:03:34.220 --> 00:03:37.000 align:middle line:84%
You might just call it
jg, whatever you want.

00:03:37.000 --> 00:03:40.330 align:middle line:90%
And I'll just say for.

00:03:40.330 --> 00:03:44.710 align:middle line:90%
I'll say j_meta in jigs.

00:03:44.710 --> 00:03:46.730 align:middle line:90%
So I remember this a thing.

00:03:46.730 --> 00:03:48.370 align:middle line:90%
I'll say j.

00:03:48.370 --> 00:03:48.950 align:middle line:90%
Sorry.

00:03:48.950 --> 00:03:49.660 align:middle line:90%
I'll go slower.

00:03:49.660 --> 00:03:51.020 align:middle line:90%
I'll make this bigger.

00:03:51.020 --> 00:03:53.516 align:middle line:84%
Slower and bigger
are always important.

00:03:53.516 --> 00:03:56.160 align:middle line:90%


00:03:56.160 --> 00:04:01.210 align:middle line:84%
I have a whole big screen
if I'm not using it,

00:04:01.210 --> 00:04:02.910 align:middle line:90%
so a little bit better.

00:04:02.910 --> 00:04:07.110 align:middle line:84%
So I'll parse each
one, the metadata.

00:04:07.110 --> 00:04:12.240 align:middle line:84%
So we'll say j--
is that one parsed?

00:04:12.240 --> 00:04:16.709 align:middle line:84%
And now, I'll do-- just
kidding, jk for jigs key

00:04:16.709 --> 00:04:21.125 align:middle line:90%
equals j.analyze the key.

00:04:21.125 --> 00:04:24.600 align:middle line:90%


00:04:24.600 --> 00:04:27.540 align:middle line:84%
And here, just for now, so
we can all get caught up,

00:04:27.540 --> 00:04:28.820 align:middle line:90%
I'm going to print them all.

00:04:28.820 --> 00:04:34.840 align:middle line:90%


00:04:34.840 --> 00:04:39.450 align:middle line:90%
I'm just letting everybody.

00:04:39.450 --> 00:04:42.810 align:middle line:84%
And then I'm going to be
grabbing in a second every piece

00:04:42.810 --> 00:04:47.910 align:middle line:90%
that is in G major.

00:04:47.910 --> 00:04:48.660 align:middle line:90%
Why?

00:04:48.660 --> 00:04:51.220 align:middle line:84%
Because it looks like there's
a lot of jigs in G major.

00:04:51.220 --> 00:04:53.420 align:middle line:84%
So it seems like a
good thing to grab.

00:04:53.420 --> 00:04:59.500 align:middle line:90%


00:04:59.500 --> 00:05:06.326 align:middle line:84%
Do we feel-- we'll just keep
snapping when you're caught up.

00:05:06.326 --> 00:05:07.600 align:middle line:90%
[SNAPPING]

00:05:07.600 --> 00:05:08.620 align:middle line:90%
OK, good, good.

00:05:08.620 --> 00:05:12.960 align:middle line:84%
We'll eventually synchronize
on a rhythm for the things.

00:05:12.960 --> 00:05:13.460 align:middle line:90%
Good.

00:05:13.460 --> 00:05:17.810 align:middle line:90%
Now, I'll say tonic_name.

00:05:17.810 --> 00:05:19.130 align:middle line:90%
I'll just be verbose again.

00:05:19.130 --> 00:05:20.390 align:middle line:90%
I keep jumping back and forth.

00:05:20.390 --> 00:05:26.920 align:middle line:84%
Is that keys .tonic, which
returns a pitch object.

00:05:26.920 --> 00:05:30.370 align:middle line:90%
And a pitch object has a .name.

00:05:30.370 --> 00:05:32.920 align:middle line:90%


00:05:32.920 --> 00:05:36.300 align:middle line:84%
And what we'll do is we'll get
all the ones in G major or in G

00:05:36.300 --> 00:05:36.800 align:middle line:90%
minor.

00:05:36.800 --> 00:05:40.660 align:middle line:84%
But no, actually,
maybe we should do--

00:05:40.660 --> 00:05:42.430 align:middle line:90%
nah, we'll just do it all in--

00:05:42.430 --> 00:05:46.330 align:middle line:90%
if tonic_name equals G--

00:05:46.330 --> 00:05:49.090 align:middle line:84%
I don't think there's
a lot in G minor--

00:05:49.090 --> 00:05:50.750 align:middle line:90%
jigs_in_g.append(j).

00:05:50.750 --> 00:05:59.340 align:middle line:90%


00:05:59.340 --> 00:06:03.580 align:middle line:84%
And that's where we're going
to put this aside for a bit.

00:06:03.580 --> 00:06:05.520 align:middle line:84%
But you can do the
snap when you're

00:06:05.520 --> 00:06:08.440 align:middle line:84%
done, because this will
take a while to do.

00:06:08.440 --> 00:06:11.040 align:middle line:84%
And then I'll move
on to the next thing.

00:06:11.040 --> 00:06:12.580 align:middle line:90%
Don't snap when it's done.

00:06:12.580 --> 00:06:14.642 align:middle line:84%
Snap when you're done
programming this,

00:06:14.642 --> 00:06:15.850 align:middle line:90%
so that we have it for later.

00:06:15.850 --> 00:06:16.350 align:middle line:90%
Good.

00:06:16.350 --> 00:06:19.530 align:middle line:90%


00:06:19.530 --> 00:06:23.050 align:middle line:84%
Now, by the way, mine's running
a lot faster than yours,

00:06:23.050 --> 00:06:25.360 align:middle line:84%
not because MIT has bought
me a fancy computer,

00:06:25.360 --> 00:06:28.330 align:middle line:84%
but because when you parse
something once in music21,

00:06:28.330 --> 00:06:31.810 align:middle line:84%
it stores it as a cache
somewhere on your hard drive.

00:06:31.810 --> 00:06:33.580 align:middle line:84%
And so it goes faster
the second time.

00:06:33.580 --> 00:06:37.320 align:middle line:84%
So if you're feeling like, ah,
I need to upgrade my computer,

00:06:37.320 --> 00:06:39.270 align:middle line:84%
because mine was so
much slower than his.

00:06:39.270 --> 00:06:42.690 align:middle line:90%
No, it's just I may have--

00:06:42.690 --> 00:06:44.110 align:middle line:84%
like they do on
the cooking shows,

00:06:44.110 --> 00:06:46.860 align:middle line:84%
I might have already baked
this once this morning, just

00:06:46.860 --> 00:06:47.800 align:middle line:90%
to make sure it works.

00:06:47.800 --> 00:06:49.500 align:middle line:90%
OK, good.

00:06:49.500 --> 00:06:53.340 align:middle line:90%
Put that aside for a little bit.

00:06:53.340 --> 00:06:55.020 align:middle line:90%
I want to open up--

00:06:55.020 --> 00:06:58.950 align:middle line:84%
actually, well, I don't need
to put that aside too much--

00:06:58.950 --> 00:07:02.050 align:middle line:90%
your problem set 7.

00:07:02.050 --> 00:07:03.160 align:middle line:90%
Where did that go?

00:07:03.160 --> 00:07:04.100 align:middle line:90%
Here it is.

00:07:04.100 --> 00:07:07.680 align:middle line:90%


00:07:07.680 --> 00:07:09.440 align:middle line:90%
Sorry about that, y'all.

00:07:09.440 --> 00:07:11.140 align:middle line:84%
I'm usually a little
bit more organized.

00:07:11.140 --> 00:07:11.640 align:middle line:90%
Great.

00:07:11.640 --> 00:07:17.310 align:middle line:90%


00:07:17.310 --> 00:07:21.210 align:middle line:84%
Problem set 7-- oh,
here we go, 7 and 8.

00:07:21.210 --> 00:07:24.515 align:middle line:84%
So I want to just talk
through some of the things

00:07:24.515 --> 00:07:25.890 align:middle line:84%
that you've just
been working on.

00:07:25.890 --> 00:07:29.610 align:middle line:84%
A couple people have requested
and been granted extra time

00:07:29.610 --> 00:07:32.400 align:middle line:84%
for the last couple
questions, so I'm not

00:07:32.400 --> 00:07:33.790 align:middle line:90%
going to go through them.

00:07:33.790 --> 00:07:36.390 align:middle line:84%
And besides, we all
have different answers

00:07:36.390 --> 00:07:39.120 align:middle line:90%
on the open-ended ones.

00:07:39.120 --> 00:07:41.940 align:middle line:84%
Actually, actually,
yeah, no, we'll do this.

00:07:41.940 --> 00:07:44.430 align:middle line:84%
So the major_scales
one, how hard did we

00:07:44.430 --> 00:07:47.400 align:middle line:90%
find this particular one?

00:07:47.400 --> 00:07:50.066 align:middle line:84%
Easy, hard, a little
bit-- what was the-- what

00:07:50.066 --> 00:07:53.830 align:middle line:84%
do you think a test case
that I'm going to run on

00:07:53.830 --> 00:07:56.620 align:middle line:90%
that you can already tell me?

00:07:56.620 --> 00:07:57.310 align:middle line:90%
Yeah.

00:07:57.310 --> 00:07:59.727 align:middle line:84%
AUDIENCE: You're going to do
something [? pathological, ?]

00:07:59.727 --> 00:08:00.817 align:middle line:90%
like E-flat, flat 54.

00:08:00.817 --> 00:08:02.150 align:middle line:90%
MICHAEL CUTHBERT: E-flat, flat--

00:08:02.150 --> 00:08:02.540 align:middle line:90%
what's that?

00:08:02.540 --> 00:08:03.340 align:middle line:84%
AUDIENCE: You're going to do
something [? pathological. ?]

00:08:03.340 --> 00:08:04.340 align:middle line:90%
MICHAEL CUTHBERT: Major.

00:08:04.340 --> 00:08:07.960 align:middle line:84%
Yeah, I'm going to probably
start with E-sharp major,

00:08:07.960 --> 00:08:10.390 align:middle line:90%
or even--

00:08:10.390 --> 00:08:12.700 align:middle line:84%
yeah, so certain things
like that to make sure.

00:08:12.700 --> 00:08:15.373 align:middle line:84%
Or even a normal thing,
like F-sharp major,

00:08:15.373 --> 00:08:16.790 align:middle line:84%
what am I going
to be looking for?

00:08:16.790 --> 00:08:20.382 align:middle line:84%
What's the leading
tone in F-sharp major?

00:08:20.382 --> 00:08:22.150 align:middle line:90%
[INTERPOSING VOICES]

00:08:22.150 --> 00:08:25.480 align:middle line:84%
MICHAEL CUTHBERT: E-sharp,
F natural, E double sharp.

00:08:25.480 --> 00:08:28.030 align:middle line:90%
Who goes for E-sharp?

00:08:28.030 --> 00:08:30.280 align:middle line:90%
F natural?

00:08:30.280 --> 00:08:30.920 align:middle line:90%
E double sharp?

00:08:30.920 --> 00:08:32.740 align:middle line:84%
Yeah, I'm going to be
looking for E-sharp,

00:08:32.740 --> 00:08:36.940 align:middle line:84%
because a major scale, one of
the things about it is it uses

00:08:36.940 --> 00:08:45.070 align:middle line:84%
every one of the lines and
spaces once and only once,

00:08:45.070 --> 00:08:45.820 align:middle line:90%
regard--

00:08:45.820 --> 00:08:49.310 align:middle line:84%
using some sort
of sharp or flat.

00:08:49.310 --> 00:08:51.620 align:middle line:90%
Great.

00:08:51.620 --> 00:08:55.620 align:middle line:84%
Now, let's talk a little bit
about the second question.

00:08:55.620 --> 00:08:59.390 align:middle line:84%
Any questions that
you had on the routes?

00:08:59.390 --> 00:09:01.790 align:middle line:84%
Depending on how much
you chose to do this

00:09:01.790 --> 00:09:06.360 align:middle line:84%
by hand, which when we didn't
combine the two problem sets,

00:09:06.360 --> 00:09:11.090 align:middle line:84%
I'd like to use this one
as something to do by hand.

00:09:11.090 --> 00:09:12.890 align:middle line:90%
It gets quite a bit harder.

00:09:12.890 --> 00:09:14.780 align:middle line:84%
What are some of the
techniques that anybody

00:09:14.780 --> 00:09:17.140 align:middle line:90%
remembers using on this?

00:09:17.140 --> 00:09:17.640 align:middle line:90%
Yeah.

00:09:17.640 --> 00:09:20.900 align:middle line:84%
AUDIENCE: You want everything
to be between 0 and 11.

00:09:20.900 --> 00:09:23.660 align:middle line:84%
MICHAEL CUTHBERT: Ah, convert
everything to 0 and 11.

00:09:23.660 --> 00:09:25.347 align:middle line:84%
AUDIENCE: Well,
for now, I guess.

00:09:25.347 --> 00:09:26.430 align:middle line:90%
MICHAEL CUTHBERT: For now.

00:09:26.430 --> 00:09:26.930 align:middle line:90%
Great.

00:09:26.930 --> 00:09:30.810 align:middle line:84%
And then-- so we have
the pitch class space.

00:09:30.810 --> 00:09:32.695 align:middle line:84%
Maybe I should--
do I have a side?

00:09:32.695 --> 00:09:35.720 align:middle line:90%


00:09:35.720 --> 00:09:37.940 align:middle line:90%
Yeah, there we go.

00:09:37.940 --> 00:09:39.440 align:middle line:90%
Oops.

00:09:39.440 --> 00:09:43.177 align:middle line:84%
So 0, 1-- is this what
you're thinking of?

00:09:43.177 --> 00:09:43.760 align:middle line:90%
AUDIENCE: Yep.

00:09:43.760 --> 00:09:44.593 align:middle line:90%
MICHAEL CUTHBERT: 2.

00:09:44.593 --> 00:09:45.260 align:middle line:90%
Great.

00:09:45.260 --> 00:09:46.680 align:middle line:90%
So that can be one part of it.

00:09:46.680 --> 00:09:48.312 align:middle line:84%
And then what do
yo-- what do we do--

00:09:48.312 --> 00:09:49.520 align:middle line:90%
how are we going to use this?

00:09:49.520 --> 00:09:50.103 align:middle line:90%
Somebody else.

00:09:50.103 --> 00:09:50.876 align:middle line:90%
Yeah, go ahead.

00:09:50.876 --> 00:09:52.376 align:middle line:84%
AUDIENCE: [INAUDIBLE]
I had an idea,

00:09:52.376 --> 00:09:55.090 align:middle line:84%
but I also added like a set(
), so just repeated notes.

00:09:55.090 --> 00:09:57.340 align:middle line:84%
MICHAEL CUTHBERT: So if
there's repeated notes-- yeah,

00:09:57.340 --> 00:09:59.720 align:middle line:84%
so we're going to use
the set( ) operation--

00:09:59.720 --> 00:10:03.850 align:middle line:84%
good-- to remove things that
are in there multiple times.

00:10:03.850 --> 00:10:06.730 align:middle line:90%
What's the-- yeah, so for root--

00:10:06.730 --> 00:10:08.380 align:middle line:84%
for the root of
the chord, does it

00:10:08.380 --> 00:10:12.140 align:middle line:84%
matter what octave
something's in?

00:10:12.140 --> 00:10:12.845 align:middle line:90%
AUDIENCE: No.

00:10:12.845 --> 00:10:13.720 align:middle line:90%
MICHAEL CUTHBERT: No.

00:10:13.720 --> 00:10:17.440 align:middle line:84%
So root is a kind of
equivalence class that implies

00:10:17.440 --> 00:10:19.430 align:middle line:90%
octave equivalence, right?

00:10:19.430 --> 00:10:20.560 align:middle line:90%
Great.

00:10:20.560 --> 00:10:22.610 align:middle line:84%
So we're going to
be using a set.

00:10:22.610 --> 00:10:26.710 align:middle line:84%
We're going to be
discarding octaves.

00:10:26.710 --> 00:10:28.450 align:middle line:90%
No octaves.

00:10:28.450 --> 00:10:29.410 align:middle line:90%
Great.

00:10:29.410 --> 00:10:31.785 align:middle line:84%
What are other things
that you did in this?

00:10:31.785 --> 00:10:34.450 align:middle line:90%


00:10:34.450 --> 00:10:35.720 align:middle line:90%
I just want to spin it around.

00:10:35.720 --> 00:10:36.320 align:middle line:90%
Yes.

00:10:36.320 --> 00:10:36.820 align:middle line:90%
Go ahead.

00:10:36.820 --> 00:10:39.400 align:middle line:84%
AUDIENCE: Oh, mine is similar,
but I used the diatonic note

00:10:39.400 --> 00:10:40.400 align:middle line:90%
numbers instead.

00:10:40.400 --> 00:10:44.200 align:middle line:84%
MICHAEL CUTHBERT: So you used
diatonic numbers instead.

00:10:44.200 --> 00:10:51.580 align:middle line:84%
Diatonic note numbers, so
that you have something like--

00:10:51.580 --> 00:10:55.050 align:middle line:84%
and I can't believe there's
a brain cell in my head

00:10:55.050 --> 00:10:56.350 align:middle line:90%
that remembers this.

00:10:56.350 --> 00:11:01.060 align:middle line:84%
So you had something
like 31, 32, 33, 34.

00:11:01.060 --> 00:11:01.560 align:middle line:90%
Great.

00:11:01.560 --> 00:11:05.680 align:middle line:84%
The number C4 as 29
is pretty arbitrary.

00:11:05.680 --> 00:11:08.260 align:middle line:84%
I just like-- if you
go to the Media Lab,

00:11:08.260 --> 00:11:10.050 align:middle line:84%
they have a Bösendorfer
Imperial Grand,

00:11:10.050 --> 00:11:12.760 align:middle line:84%
one that has the
extra keys down here.

00:11:12.760 --> 00:11:16.080 align:middle line:84%
And the lowest note on
that one, I assigned to 1,

00:11:16.080 --> 00:11:18.490 align:middle line:90%
and just went up from there.

00:11:18.490 --> 00:11:21.670 align:middle line:90%
So C4 ends up being 29.

00:11:21.670 --> 00:11:22.200 align:middle line:90%
Good.

00:11:22.200 --> 00:11:24.790 align:middle line:84%
And so we can use that
for certain parts.

00:11:24.790 --> 00:11:28.140 align:middle line:84%
Who used diatonic note
numbers or something

00:11:28.140 --> 00:11:29.790 align:middle line:90%
like that in their example--

00:11:29.790 --> 00:11:31.530 align:middle line:90%
in your answer?

00:11:31.530 --> 00:11:32.970 align:middle line:90%
1, 2, 3, 4.

00:11:32.970 --> 00:11:36.340 align:middle line:84%
Who used something
like pitch classes?

00:11:36.340 --> 00:11:37.020 align:middle line:90%
That's good.

00:11:37.020 --> 00:11:37.650 align:middle line:90%
Good.

00:11:37.650 --> 00:11:39.630 align:middle line:90%
Who used both?

00:11:39.630 --> 00:11:41.730 align:middle line:90%
Anybody?

00:11:41.730 --> 00:11:45.420 align:middle line:84%
My implementation ends
up using both of them.

00:11:45.420 --> 00:11:46.880 align:middle line:84%
So I'm going to
say both of these

00:11:46.880 --> 00:11:49.460 align:middle line:90%
can be a right way to work.

00:11:49.460 --> 00:11:50.990 align:middle line:90%
Good.

00:11:50.990 --> 00:11:52.490 align:middle line:84%
Now, what are some
other techniques

00:11:52.490 --> 00:11:55.880 align:middle line:90%
that we did on rootness?

00:11:55.880 --> 00:11:56.450 align:middle line:90%
Yeah.

00:11:56.450 --> 00:11:57.950 align:middle line:84%
AUDIENCE: Should I
check for fifths?

00:11:57.950 --> 00:11:59.810 align:middle line:84%
MICHAEL CUTHBERT: Check
for fifths-- good.

00:11:59.810 --> 00:12:04.395 align:middle line:90%
Check for fifths.

00:12:04.395 --> 00:12:10.250 align:middle line:90%


00:12:10.250 --> 00:12:12.808 align:middle line:84%
What's the best-- which
one of these, do you think,

00:12:12.808 --> 00:12:14.350 align:middle line:84%
works better for
checking for fifths?

00:12:14.350 --> 00:12:20.441 align:middle line:90%


00:12:20.441 --> 00:12:22.850 align:middle line:90%
Do you want to take a guess?

00:12:22.850 --> 00:12:25.400 align:middle line:84%
AUDIENCE: I wouldn't want to
say either, just because they're

00:12:25.400 --> 00:12:26.670 align:middle line:90%
both, like, number-based.

00:12:26.670 --> 00:12:29.120 align:middle line:84%
So you could have some
sort of augmented thing,

00:12:29.120 --> 00:12:31.162 align:middle line:84%
and it'd still return
the same difference.

00:12:31.162 --> 00:12:32.120 align:middle line:90%
MICHAEL CUTHBERT: Yeah.

00:12:32.120 --> 00:12:35.030 align:middle line:84%
So it has a lot to do with
whether we care about spelling

00:12:35.030 --> 00:12:36.180 align:middle line:90%
equivalents or not.

00:12:36.180 --> 00:12:42.425 align:middle line:84%
So we can always have a
doubly augmented fourth.

00:12:42.425 --> 00:12:45.190 align:middle line:84%
It sounds the same
as a perfect fifth,

00:12:45.190 --> 00:12:48.570 align:middle line:84%
but it repulses me because
it is a dissonance, right?

00:12:48.570 --> 00:12:52.140 align:middle line:84%
Actually, I'm not repulsed
by dissonance, but it is.

00:12:52.140 --> 00:12:54.720 align:middle line:84%
And what do we have the
problem if we're only looking

00:12:54.720 --> 00:12:56.970 align:middle line:90%
at diatonic note numbers?

00:12:56.970 --> 00:12:59.925 align:middle line:90%
Give me a fifth that might--

00:12:59.925 --> 00:13:01.800 align:middle line:84%
actually, you're supposed
to-- well, change--

00:13:01.800 --> 00:13:04.415 align:middle line:84%
does it change the root,
which fifth you find?

00:13:04.415 --> 00:13:06.823 align:middle line:90%


00:13:06.823 --> 00:13:07.865 align:middle line:90%
AUDIENCE: No, not really.

00:13:07.865 --> 00:13:08.170 align:middle line:90%
MICHAEL CUTHBERT: Good.

00:13:08.170 --> 00:13:09.490 align:middle line:90%
So we checked for fifths.

00:13:09.490 --> 00:13:12.600 align:middle line:84%
Anybody check for
any other intervals?

00:13:12.600 --> 00:13:13.200 align:middle line:90%
Yeah.

00:13:13.200 --> 00:13:15.930 align:middle line:84%
AUDIENCE: I did the dumb thing
and checked for two thirds.

00:13:15.930 --> 00:13:20.020 align:middle line:84%
MICHAEL CUTHBERT: Check for two
thirds in a row, two thirds.

00:13:20.020 --> 00:13:26.040 align:middle line:84%
So if you have one third,
and you have two thirds,

00:13:26.040 --> 00:13:27.970 align:middle line:90%
then you might have something.

00:13:27.970 --> 00:13:28.810 align:middle line:90%
Yeah, you're right.

00:13:28.810 --> 00:13:30.902 align:middle line:84%
That was a very
dumb thing to say

00:13:30.902 --> 00:13:32.610 align:middle line:84%
that it was a dumb
thing, because I think

00:13:32.610 --> 00:13:34.300 align:middle line:90%
it's a great way of doing it.

00:13:34.300 --> 00:13:40.170 align:middle line:84%
So if you can have two thirds,
then presumably the bottom 1

00:13:40.170 --> 00:13:42.140 align:middle line:90%
is a root.

00:13:42.140 --> 00:13:44.872 align:middle line:90%
Where's the problem come?

00:13:44.872 --> 00:13:46.250 align:middle line:90%
Yeah.

00:13:46.250 --> 00:13:48.020 align:middle line:84%
AUDIENCE: A major triad
and a minor triad,

00:13:48.020 --> 00:13:50.490 align:middle line:84%
or a major third, minor third,
minor third, major third.

00:13:50.490 --> 00:13:51.657 align:middle line:90%
MICHAEL CUTHBERT: OK, great.

00:13:51.657 --> 00:13:57.410 align:middle line:84%
So minor third
versus major third.

00:13:57.410 --> 00:13:58.970 align:middle line:84%
I want you to
think in your head,

00:13:58.970 --> 00:14:03.600 align:middle line:84%
and then tell your neighbor
yes or no on the count of 3,

00:14:03.600 --> 00:14:04.310 align:middle line:90%
on whether--

00:14:04.310 --> 00:14:07.230 align:middle line:84%
does a major third
or minor third,

00:14:07.230 --> 00:14:09.393 align:middle line:90%
does this affect the root?

00:14:09.393 --> 00:14:13.250 align:middle line:90%


00:14:13.250 --> 00:14:15.550 align:middle line:90%
1, 2, 3.

00:14:15.550 --> 00:14:16.092 align:middle line:90%
AUDIENCE: No.

00:14:16.092 --> 00:14:16.967 align:middle line:90%
MICHAEL CUTHBERT: No.

00:14:16.967 --> 00:14:17.490 align:middle line:90%
OK.

00:14:17.490 --> 00:14:21.300 align:middle line:84%
So we might-- so we're not
going to do that for right now.

00:14:21.300 --> 00:14:23.940 align:middle line:84%
But I'm going to put this
in the save for later pile,

00:14:23.940 --> 00:14:26.180 align:middle line:84%
because a root is
only one of the things

00:14:26.180 --> 00:14:27.530 align:middle line:90%
we're going to want to do.

00:14:27.530 --> 00:14:28.500 align:middle line:90%
Save for later.

00:14:28.500 --> 00:14:30.200 align:middle line:84%
But no, so it's
not going to do--

00:14:30.200 --> 00:14:34.220 align:middle line:84%
what's an issue that
we might still have?

00:14:34.220 --> 00:14:36.685 align:middle line:84%
But that's going to be
important with this.

00:14:36.685 --> 00:14:40.950 align:middle line:90%


00:14:40.950 --> 00:14:43.830 align:middle line:90%
So you've gotten rid of octaves.

00:14:43.830 --> 00:14:45.720 align:middle line:84%
So let's say we're going
to write everything

00:14:45.720 --> 00:14:47.610 align:middle line:90%
in the same octave number.

00:14:47.610 --> 00:14:51.180 align:middle line:84%
For a second-- can I
blank this for a second?

00:14:51.180 --> 00:15:03.677 align:middle line:90%


00:15:03.677 --> 00:15:05.510 align:middle line:84%
You still have it over
there if you need it.

00:15:05.510 --> 00:15:08.880 align:middle line:90%


00:15:08.880 --> 00:15:13.170 align:middle line:84%
So if we're saying
everything is in octave 4,

00:15:13.170 --> 00:15:24.468 align:middle line:84%
and I'm going to rewrite that F,
A, C, the F major triad, F, A,

00:15:24.468 --> 00:15:28.560 align:middle line:90%
C. Is that going to work?

00:15:28.560 --> 00:15:31.560 align:middle line:90%
Third, third.

00:15:31.560 --> 00:15:33.330 align:middle line:90%
Yeah.

00:15:33.330 --> 00:15:37.860 align:middle line:84%
AUDIENCE: Do you mean like
if we use the pitch class,

00:15:37.860 --> 00:15:42.367 align:middle line:90%
then this upper C will be 0?

00:15:42.367 --> 00:15:43.700 align:middle line:90%
So you won't be able to find it.

00:15:43.700 --> 00:15:44.425 align:middle line:90%
Just [INAUDIBLE].

00:15:44.425 --> 00:15:45.800 align:middle line:84%
MICHAEL CUTHBERT:
So it will be--

00:15:45.800 --> 00:15:47.870 align:middle line:90%
yeah, where will it be?

00:15:47.870 --> 00:15:49.740 align:middle line:84%
Let's say we put
everything in octave 4.

00:15:49.740 --> 00:15:50.900 align:middle line:84%
AUDIENCE: It'll look
like the one below it.

00:15:50.900 --> 00:15:52.400 align:middle line:84%
MICHAEL CUTHBERT:
It'll be below it.

00:15:52.400 --> 00:15:56.390 align:middle line:90%


00:15:56.390 --> 00:15:59.752 align:middle line:90%
So what is this now?

00:15:59.752 --> 00:16:00.960 align:middle line:90%
AUDIENCE: It's still a major.

00:16:00.960 --> 00:16:02.570 align:middle line:84%
MICHAEL CUTHBERT:
Still a major triad.

00:16:02.570 --> 00:16:05.735 align:middle line:84%
What would we call
this, by the way?

00:16:05.735 --> 00:16:06.860 align:middle line:90%
AUDIENCE: Second inversion.

00:16:06.860 --> 00:16:07.560 align:middle line:84%
MICHAEL CUTHBERT:
First inversion?

00:16:07.560 --> 00:16:09.060 align:middle line:84%
Second inversion,
second inversion--

00:16:09.060 --> 00:16:11.420 align:middle line:90%
64.

00:16:11.420 --> 00:16:14.930 align:middle line:84%
Numbering instead of--
I've just switched

00:16:14.930 --> 00:16:17.660 align:middle line:84%
between two different
systems that are kind

00:16:17.660 --> 00:16:19.440 align:middle line:90%
of equivalences of each other.

00:16:19.440 --> 00:16:25.640 align:middle line:84%
I switched from calling this 33
system, which we use sometimes,

00:16:25.640 --> 00:16:31.760 align:middle line:84%
to the calling this 53 system,
which we use more often, where

00:16:31.760 --> 00:16:35.280 align:middle line:84%
one system where you measure
everything from the note below,

00:16:35.280 --> 00:16:39.670 align:middle line:84%
and one thing where you measure
everything from the base.

00:16:39.670 --> 00:16:45.100 align:middle line:84%
Boy, isn't this terrible
in music that we do this?

00:16:45.100 --> 00:16:50.440 align:middle line:84%
Do you remember the first
time that somebody said to you

00:16:50.440 --> 00:16:53.320 align:middle line:84%
something like, oh,
I was in F major,

00:16:53.320 --> 00:16:57.230 align:middle line:84%
and I was on scale
degree 2 on a 57 chord.

00:16:57.230 --> 00:17:00.070 align:middle line:84%
And you actually mentally
heard in your head,

00:17:00.070 --> 00:17:05.079 align:middle line:84%
I was on scale degree 2 in a
Roman numeral V, superscript 7

00:17:05.079 --> 00:17:06.310 align:middle line:90%
thing.

00:17:06.310 --> 00:17:08.770 align:middle line:84%
Somebody figure out
what part of our brain

00:17:08.770 --> 00:17:11.690 align:middle line:84%
is doing this kind of
translation on the fly,

00:17:11.690 --> 00:17:14.500 align:middle line:84%
that the exact same
numbers are being

00:17:14.500 --> 00:17:16.690 align:middle line:84%
translated in different
ways in our memory.

00:17:16.690 --> 00:17:19.720 align:middle line:84%
So this is not one that
we talk about very much,

00:17:19.720 --> 00:17:21.589 align:middle line:90%
this particular translation.

00:17:21.589 --> 00:17:25.310 align:middle line:84%
But we do it quite a bit, and
I just did it maybe too fast.

00:17:25.310 --> 00:17:28.870 align:middle line:84%
So yeah, 6, 4, or the other
way you could do it is

00:17:28.870 --> 00:17:34.090 align:middle line:84%
say it's a third stacked
on top of a fourth.

00:17:34.090 --> 00:17:37.060 align:middle line:90%
3 plus 4 in music equals?

00:17:37.060 --> 00:17:37.560 align:middle line:90%
AUDIENCE: 6.

00:17:37.560 --> 00:17:38.480 align:middle line:90%
MICHAEL CUTHBERT: 6.

00:17:38.480 --> 00:17:38.980 align:middle line:90%
Yep.

00:17:38.980 --> 00:17:42.260 align:middle line:90%


00:17:42.260 --> 00:17:44.577 align:middle line:84%
This is also something
we have to worry about.

00:17:44.577 --> 00:17:46.410 align:middle line:84%
That was a parentheses
within a parentheses.

00:17:46.410 --> 00:17:47.827 align:middle line:84%
How do we get
around this problem?

00:17:47.827 --> 00:17:53.360 align:middle line:90%


00:17:53.360 --> 00:17:54.333 align:middle line:90%
Yeah.

00:17:54.333 --> 00:17:56.250 align:middle line:84%
AUDIENCE: I basically
added 12 to the lowest--

00:17:56.250 --> 00:17:57.833 align:middle line:84%
I sorted it and added
12 to the lowest

00:17:57.833 --> 00:18:00.025 align:middle line:90%
note twice and then checked.

00:18:00.025 --> 00:18:00.900 align:middle line:90%
MICHAEL CUTHBERT: OK.

00:18:00.900 --> 00:18:05.750 align:middle line:84%
So you sort, and then if
this doesn't match 33,

00:18:05.750 --> 00:18:07.682 align:middle line:90%
then what did you do?

00:18:07.682 --> 00:18:09.740 align:middle line:84%
AUDIENCE: I bumped the
lowest note up an octave.

00:18:09.740 --> 00:18:12.198 align:middle line:84%
MICHAEL CUTHBERT: You bumped
the lowest note up the octave.

00:18:12.198 --> 00:18:16.550 align:middle line:90%


00:18:16.550 --> 00:18:18.600 align:middle line:90%
Will that always be enough?

00:18:18.600 --> 00:18:19.460 align:middle line:90%
AUDIENCE: No.

00:18:19.460 --> 00:18:21.918 align:middle line:84%
MICHAEL CUTHBERT: So what do
you have to decide to do next?

00:18:21.918 --> 00:18:24.710 align:middle line:90%
So let's-- sometimes you have--

00:18:24.710 --> 00:18:25.472 align:middle line:90%
yeah, go ahead.

00:18:25.472 --> 00:18:26.930 align:middle line:84%
AUDIENCE: I took
the initial chord,

00:18:26.930 --> 00:18:29.423 align:middle line:84%
and I duplicated it, the
whole chord, an octave above.

00:18:29.423 --> 00:18:31.340 align:middle line:84%
So I guaranteed that I
will see a pattern that

00:18:31.340 --> 00:18:34.040 align:middle line:84%
will be either major, minor,
augmented, or diminished.

00:18:34.040 --> 00:18:34.915 align:middle line:90%
MICHAEL CUTHBERT: OK.

00:18:34.915 --> 00:18:36.530 align:middle line:84%
So you take whatever
notes you see.

00:18:36.530 --> 00:18:38.420 align:middle line:84%
Now I'm going to put
it in first inversion,

00:18:38.420 --> 00:18:42.430 align:middle line:84%
except there are chords
beside C major, Michael.

00:18:42.430 --> 00:18:48.820 align:middle line:84%
So we'll put it in first
inversion, A, C, F.

00:18:48.820 --> 00:18:51.640 align:middle line:90%
Call that a 63 chord.

00:18:51.640 --> 00:18:55.763 align:middle line:84%
And if you just keep
duplicating things up--

00:18:55.763 --> 00:18:58.930 align:middle line:90%


00:18:58.930 --> 00:19:03.790 align:middle line:84%
is that right-- you will
eventually at some point have

00:19:03.790 --> 00:19:06.020 align:middle line:90%
this 3--

00:19:06.020 --> 00:19:06.550 align:middle line:90%
ah!

00:19:06.550 --> 00:19:09.500 align:middle line:90%
53 stack, the stack of thirds.

00:19:09.500 --> 00:19:14.680 align:middle line:84%
There will be a 53
embedded in there.

00:19:14.680 --> 00:19:17.920 align:middle line:90%
Does that-- great hair, or jut--

00:19:17.920 --> 00:19:20.560 align:middle line:90%
good, super.

00:19:20.560 --> 00:19:24.310 align:middle line:84%
These are all techniques
that work really well here.

00:19:24.310 --> 00:19:29.230 align:middle line:84%
What are the techniques that
will work if you have sevenths,

00:19:29.230 --> 00:19:31.420 align:middle line:84%
or if you might
be given something

00:19:31.420 --> 00:19:33.090 align:middle line:90%
that is not a triad at all?

00:19:33.090 --> 00:19:36.600 align:middle line:90%


00:19:36.600 --> 00:19:39.450 align:middle line:84%
How would you do this
with sevenths again?

00:19:39.450 --> 00:19:42.420 align:middle line:84%
Did anybody do that
as their extension?

00:19:42.420 --> 00:19:43.290 align:middle line:90%
You did?

00:19:43.290 --> 00:19:44.040 align:middle line:90%
Yeah.

00:19:44.040 --> 00:19:44.820 align:middle line:90%
What did you--

00:19:44.820 --> 00:19:47.890 align:middle line:84%
AUDIENCE: The way I did it
is I worked off of what--

00:19:47.890 --> 00:19:52.440 align:middle line:84%
I guess, first, I had a function
that kind of reduced the input

00:19:52.440 --> 00:19:55.740 align:middle line:84%
to see whether or not it
could kind of work as a triad

00:19:55.740 --> 00:19:56.800 align:middle line:90%
or as a semi chord.

00:19:56.800 --> 00:19:57.450 align:middle line:84%
MICHAEL CUTHBERT:
So first you had--

00:19:57.450 --> 00:19:58.770 align:middle line:84%
I'm just repeating
for the microphone.

00:19:58.770 --> 00:20:00.570 align:middle line:84%
First, you had a
function that reduced it

00:20:00.570 --> 00:20:02.400 align:middle line:84%
as a triad or a
seventh to see if it

00:20:02.400 --> 00:20:04.620 align:middle line:90%
worked with the previous thing.

00:20:04.620 --> 00:20:05.250 align:middle line:90%
And then?

00:20:05.250 --> 00:20:08.460 align:middle line:90%
AUDIENCE: And then I kind of--

00:20:08.460 --> 00:20:10.300 align:middle line:84%
I guess I combined
both functions.

00:20:10.300 --> 00:20:12.330 align:middle line:84%
And so, first, I had to
iterate through a list

00:20:12.330 --> 00:20:16.300 align:middle line:90%
of potential interval distances.

00:20:16.300 --> 00:20:22.680 align:middle line:84%
And then just for each potential
candidate I have a root,

00:20:22.680 --> 00:20:25.508 align:middle line:84%
and then iterate through each
potential candidate and see--

00:20:25.508 --> 00:20:27.300 align:middle line:84%
check whether or not
the interval distances

00:20:27.300 --> 00:20:30.817 align:middle line:84%
are the same after adjusting for
if it was a bigger [INAUDIBLE].

00:20:30.817 --> 00:20:33.400 align:middle line:84%
MICHAEL CUTHBERT: So you checked
each one for-- each candidate

00:20:33.400 --> 00:20:36.340 align:middle line:84%
as a root, and then you checked
to see if the interval distances

00:20:36.340 --> 00:20:37.940 align:middle line:90%
matched something.

00:20:37.940 --> 00:20:39.158 align:middle line:90%
Great, super.

00:20:39.158 --> 00:20:40.700 align:middle line:84%
There was a second
hand for doing it.

00:20:40.700 --> 00:20:41.390 align:middle line:90%
How-- yeah.

00:20:41.390 --> 00:20:42.400 align:middle line:84%
AUDIENCE: I basically
did the same thing.

00:20:42.400 --> 00:20:43.360 align:middle line:84%
MICHAEL CUTHBERT:
Pretty similar?

00:20:43.360 --> 00:20:43.600 align:middle line:90%
AUDIENCE: Yeah.

00:20:43.600 --> 00:20:45.642 align:middle line:84%
MICHAEL CUTHBERT: So
increase the-- great, super.

00:20:45.642 --> 00:20:48.880 align:middle line:84%
This, by the way, is not one
of the great unsolved problems

00:20:48.880 --> 00:20:51.700 align:middle line:84%
in algorithms, but
I do not know if it

00:20:51.700 --> 00:20:56.170 align:middle line:84%
has been proven what the most
algorithmically efficient way

00:20:56.170 --> 00:21:02.080 align:middle line:84%
of finding a root in anything,
especially when we have chords

00:21:02.080 --> 00:21:03.100 align:middle line:90%
like--

00:21:03.100 --> 00:21:05.653 align:middle line:84%
here's one of our
favorites in C major.

00:21:05.653 --> 00:21:12.130 align:middle line:90%


00:21:12.130 --> 00:21:15.792 align:middle line:84%
What do we want to
call that chord?

00:21:15.792 --> 00:21:17.590 align:middle line:90%
AUDIENCE: Diminished seventh.

00:21:17.590 --> 00:21:19.465 align:middle line:84%
MICHAEL CUTHBERT:
Not close, but--

00:21:19.465 --> 00:21:20.590 align:middle line:90%
AUDIENCE: Dominant seventh.

00:21:20.590 --> 00:21:23.060 align:middle line:84%
MICHAEL CUTHBERT:
Dominant seventh chord.

00:21:23.060 --> 00:21:24.770 align:middle line:90%
It should be four pitches.

00:21:24.770 --> 00:21:25.760 align:middle line:90%
Which one's missing?

00:21:25.760 --> 00:21:26.260 align:middle line:90%
AUDIENCE: D.

00:21:26.260 --> 00:21:28.450 align:middle line:84%
MICHAEL CUTHBERT: D, which
is the what of the chord?

00:21:28.450 --> 00:21:29.178 align:middle line:90%
AUDIENCE: Second.

00:21:29.178 --> 00:21:29.845 align:middle line:90%
AUDIENCE: Fifth.

00:21:29.845 --> 00:21:30.680 align:middle line:84%
MICHAEL CUTHBERT:
Fifth of the chord,

00:21:30.680 --> 00:21:32.222 align:middle line:84%
yeah, the fifth of
the chord missing,

00:21:32.222 --> 00:21:36.640 align:middle line:84%
most common note in the chord to
leave out, unless you're Chopin.

00:21:36.640 --> 00:21:39.250 align:middle line:84%
And then he likes to
leave out that one--

00:21:39.250 --> 00:21:41.910 align:middle line:90%
leave out the third.

00:21:41.910 --> 00:21:44.110 align:middle line:84%
Usually, you can't
leave out the bass.

00:21:44.110 --> 00:21:46.090 align:middle line:90%
Otherwise, you don't have a 5.

00:21:46.090 --> 00:21:47.890 align:middle line:84%
Although, there's
a music theorist,

00:21:47.890 --> 00:21:50.470 align:middle line:84%
Hugo Riemann, who would
disagree with you on that.

00:21:50.470 --> 00:21:52.510 align:middle line:84%
And of course, you can't
leave out the seventh.

00:21:52.510 --> 00:21:54.520 align:middle line:90%
Otherwise, you don't have that.

00:21:54.520 --> 00:21:55.300 align:middle line:90%
But yeah.

00:21:55.300 --> 00:21:58.800 align:middle line:84%
So how to deal with
this and how to do

00:21:58.800 --> 00:22:02.080 align:middle line:84%
these things is still
something that we're working on

00:22:02.080 --> 00:22:05.910 align:middle line:84%
And I was giving a
presentation a few months ago

00:22:05.910 --> 00:22:07.837 align:middle line:90%
on how things were calculated.

00:22:07.837 --> 00:22:09.420 align:middle line:84%
And in the middle
of the presentation,

00:22:09.420 --> 00:22:11.753 align:middle line:84%
I go, oh, my gosh, that's not
algorithmically efficient.

00:22:11.753 --> 00:22:13.500 align:middle line:84%
And so somewhere in
the music21 thing,

00:22:13.500 --> 00:22:17.142 align:middle line:84%
I quickly said, to do: remember
how to make this faster.

00:22:17.142 --> 00:22:18.850 align:middle line:84%
And I've forgotten
how to make it faster.

00:22:18.850 --> 00:22:22.710 align:middle line:84%
So maybe we'll go
back into that.

00:22:22.710 --> 00:22:24.420 align:middle line:90%
Great.

00:22:24.420 --> 00:22:26.920 align:middle line:90%
Then the last topic--

00:22:26.920 --> 00:22:28.605 align:middle line:90%
sorry, let's put that back.

00:22:28.605 --> 00:22:37.700 align:middle line:90%


00:22:37.700 --> 00:22:44.510 align:middle line:84%
So Roman numerals, what
are some of the differences

00:22:44.510 --> 00:22:51.480 align:middle line:84%
between the Roman numerals
and just finding the root?

00:22:51.480 --> 00:22:52.490 align:middle line:90%
Yeah, go ahead.

00:22:52.490 --> 00:22:54.410 align:middle line:84%
AUDIENCE: So I took
the tonic that was

00:22:54.410 --> 00:22:56.760 align:middle line:90%
given in native scale of it.

00:22:56.760 --> 00:23:01.790 align:middle line:84%
And once I had the scale, I
found the root of the chord,

00:23:01.790 --> 00:23:04.110 align:middle line:84%
and then saw what position
it was in the scale.

00:23:04.110 --> 00:23:05.110 align:middle line:90%
MICHAEL CUTHBERT: Great.

00:23:05.110 --> 00:23:08.097 align:middle line:84%
So you created a scale
based on-- what was given?

00:23:08.097 --> 00:23:08.930 align:middle line:90%
AUDIENCE: The tonic.

00:23:08.930 --> 00:23:09.705 align:middle line:90%
MICHAEL CUTHBERT: The tonic--

00:23:09.705 --> 00:23:10.872 align:middle line:90%
yeah, I only gave the tonic.

00:23:10.872 --> 00:23:12.800 align:middle line:84%
I didn't give the key
because we're still--

00:23:12.800 --> 00:23:15.300 align:middle line:84%
created a major scale
based on the tonic.

00:23:15.300 --> 00:23:17.880 align:middle line:84%
And you saw which
position it was in.

00:23:17.880 --> 00:23:20.520 align:middle line:84%
That's really a great,
great way of doing it.

00:23:20.520 --> 00:23:23.240 align:middle line:84%
What if I didn't give
it in this, but what

00:23:23.240 --> 00:23:24.990 align:middle line:90%
if it wasn't in the scale?

00:23:24.990 --> 00:23:26.650 align:middle line:90%
How would you do that?

00:23:26.650 --> 00:23:31.180 align:middle line:90%


00:23:31.180 --> 00:23:34.220 align:middle line:84%
Anyone know if things
like flat 3 or flat 7?

00:23:34.220 --> 00:23:34.760 align:middle line:90%
Yeah.

00:23:34.760 --> 00:23:35.870 align:middle line:90%
AUDIENCE: Just match the step.

00:23:35.870 --> 00:23:37.453 align:middle line:84%
MICHAEL CUTHBERT:
Just match the step,

00:23:37.453 --> 00:23:40.080 align:middle line:84%
and then figure out the
subtraction of the difference.

00:23:40.080 --> 00:23:40.580 align:middle line:90%
So great.

00:23:40.580 --> 00:23:42.940 align:middle line:84%
So we can find a
position in the scale.

00:23:42.940 --> 00:23:47.200 align:middle line:84%
If you were wondering
why question 1 was

00:23:47.200 --> 00:23:51.220 align:middle line:84%
on major scales, that's
exactly one of the approaches

00:23:51.220 --> 00:23:52.550 align:middle line:90%
I thought you could do.

00:23:52.550 --> 00:23:58.300 align:middle line:84%
Anybody else have a different
methodology for this?

00:23:58.300 --> 00:23:58.910 align:middle line:90%
Yeah.

00:23:58.910 --> 00:23:59.810 align:middle line:84%
AUDIENCE: If it
wasn't in the scale,

00:23:59.810 --> 00:24:01.520 align:middle line:84%
I just returned an error,
saying it was invalid.

00:24:01.520 --> 00:24:01.900 align:middle line:90%
MICHAEL CUTHBERT: Yep.

00:24:01.900 --> 00:24:03.680 align:middle line:84%
And it's invalid
in this assignment.

00:24:03.680 --> 00:24:04.640 align:middle line:90%
Was it not?

00:24:04.640 --> 00:24:06.670 align:middle line:90%
Yep.

00:24:06.670 --> 00:24:09.520 align:middle line:90%
Good.

00:24:09.520 --> 00:24:13.780 align:middle line:84%
Any other things to take
all your information?

00:24:13.780 --> 00:24:15.370 align:middle line:90%
Now, it was Jake, right?

00:24:15.370 --> 00:24:18.580 align:middle line:84%
Who brought in major
third, minor third?

00:24:18.580 --> 00:24:20.660 align:middle line:84%
Yep, now I think it's
time to get that in.

00:24:20.660 --> 00:24:23.020 align:middle line:84%
What do you-- how
do you convert that?

00:24:23.020 --> 00:24:28.630 align:middle line:84%
What does this information tell
us about the Roman numeral?

00:24:28.630 --> 00:24:29.130 align:middle line:90%
Yeah.

00:24:29.130 --> 00:24:30.030 align:middle line:90%
AUDIENCE: Uppercase, lowercase.

00:24:30.030 --> 00:24:31.150 align:middle line:84%
MICHAEL CUTHBERT:
Uppercase, lowercase.

00:24:31.150 --> 00:24:31.650 align:middle line:90%
Good.

00:24:31.650 --> 00:24:35.140 align:middle line:84%
Or there's one other
thing to put on.

00:24:35.140 --> 00:24:39.940 align:middle line:84%
What's the Roman numeral that
often takes a special symbol?

00:24:39.940 --> 00:24:40.920 align:middle line:90%
[INTERPOSING VOICES]

00:24:40.920 --> 00:24:41.310 align:middle line:90%
AUDIENCE: --7.

00:24:41.310 --> 00:24:42.610 align:middle line:90%
MICHAEL CUTHBERT: Diminished 7.

00:24:42.610 --> 00:24:44.730 align:middle line:84%
Yeah, so the seventh
scale degree,

00:24:44.730 --> 00:24:47.830 align:middle line:90%
quite often the 5 with the O--

00:24:47.830 --> 00:24:50.760 align:middle line:84%
7 with an O after
it, the diminished 7.

00:24:50.760 --> 00:24:51.260 align:middle line:90%
Good.

00:24:51.260 --> 00:24:54.580 align:middle line:90%


00:24:54.580 --> 00:24:58.500 align:middle line:84%
And then inversions, those
become kind of the problem

00:24:58.500 --> 00:25:00.360 align:middle line:90%
there.

00:25:00.360 --> 00:25:06.540 align:middle line:84%
So I want to give a 2-minute
peek on the code that you've now

00:25:06.540 --> 00:25:07.780 align:middle line:90%
unlocked.

00:25:07.780 --> 00:25:08.340 align:middle line:90%
Sorry.

00:25:08.340 --> 00:25:11.250 align:middle line:84%
There is a way to
make this bigger.

00:25:11.250 --> 00:25:12.000 align:middle line:90%
Nope.

00:25:12.000 --> 00:25:12.755 align:middle line:90%
There we go.

00:25:12.755 --> 00:25:17.430 align:middle line:90%


00:25:17.430 --> 00:25:24.120 align:middle line:84%
And just to give a little
bit of a peek at music21's--

00:25:24.120 --> 00:25:25.900 align:middle line:90%
there we go.

00:25:25.900 --> 00:25:26.830 align:middle line:90%
Sorry.

00:25:26.830 --> 00:25:27.830 align:middle line:90%
A tiny bit too big.

00:25:27.830 --> 00:25:31.780 align:middle line:84%
Tell me-- yeah, that
should be the right size.

00:25:31.780 --> 00:25:35.680 align:middle line:90%
Sorry a lot of docs over time--

00:25:35.680 --> 00:25:36.340 align:middle line:90%
things.

00:25:36.340 --> 00:25:42.310 align:middle line:84%
romanNumeralFromChord-- so this
is something-- so given a chord

00:25:42.310 --> 00:25:47.320 align:middle line:84%
object and a key object,
and then possibly

00:25:47.320 --> 00:25:50.330 align:middle line:84%
a preference for do we
prefer secondary dominants?

00:25:50.330 --> 00:25:51.890 align:middle line:90%
Can you have in major--

00:25:51.890 --> 00:25:55.730 align:middle line:84%
can you have a
major chord on two,

00:25:55.730 --> 00:26:00.700 align:middle line:84%
or is that the dominant
of the dominant, 5 of 5?

00:26:00.700 --> 00:26:05.360 align:middle line:84%
And try to give an
appropriate name.

00:26:05.360 --> 00:26:09.170 align:middle line:84%
So I don't know why my
first one is so complicated.

00:26:09.170 --> 00:26:11.938 align:middle line:84%
I guess back then it was just
like, hey, I can do this.

00:26:11.938 --> 00:26:13.730 align:middle line:84%
Let's see if we can
come up with something.

00:26:13.730 --> 00:26:19.210 align:middle line:84%
So if you have a chord,
E, C, G, B flat, and then

00:26:19.210 --> 00:26:23.500 align:middle line:84%
a few extra octave
things, just to throw off.

00:26:23.500 --> 00:26:27.340 align:middle line:84%
In F major, that
should be a V65.

00:26:27.340 --> 00:26:31.630 align:middle line:84%
Who remembers their
inversions of seventh chords?

00:26:31.630 --> 00:26:35.640 align:middle line:90%
So root position, 5, 7, then--

00:26:35.640 --> 00:26:37.084 align:middle line:90%
first inversion, V--

00:26:37.084 --> 00:26:37.626 align:middle line:90%
AUDIENCE: 65.

00:26:37.626 --> 00:26:38.501 align:middle line:90%
MICHAEL CUTHBERT: 65.

00:26:38.501 --> 00:26:39.540 align:middle line:90%
Second inversion?

00:26:39.540 --> 00:26:40.890 align:middle line:90%
AUDIENCE: 43.

00:26:40.890 --> 00:26:42.040 align:middle line:90%
MICHAEL CUTHBERT: V43.

00:26:42.040 --> 00:26:43.230 align:middle line:90%
And third inversion?

00:26:43.230 --> 00:26:43.943 align:middle line:90%
AUDIENCE: V42.

00:26:43.943 --> 00:26:44.860 align:middle line:90%
MICHAEL CUTHBERT: V42.

00:26:44.860 --> 00:26:47.400 align:middle line:84%
Some people also
teach the tradition 2.

00:26:47.400 --> 00:26:51.670 align:middle line:84%
And some people-- so 42 is
the most commonly used one.

00:26:51.670 --> 00:26:55.240 align:middle line:84%
I've seen some people have the
less-- the even more compact 2,

00:26:55.240 --> 00:26:59.010 align:middle line:84%
and some people the
more verbose 6/4/2.

00:26:59.010 --> 00:27:00.580 align:middle line:90%
Any baseball fans?

00:27:00.580 --> 00:27:04.218 align:middle line:84%
I always think of
double plays as--

00:27:04.218 --> 00:27:05.260 align:middle line:90%
I mean, second inversion.

00:27:05.260 --> 00:27:08.820 align:middle line:84%
That was-- because they
always-- never mind.

00:27:08.820 --> 00:27:11.680 align:middle line:90%
So you can have certain things.

00:27:11.680 --> 00:27:13.860 align:middle line:84%
And then one of
the big issues is

00:27:13.860 --> 00:27:19.500 align:middle line:84%
that people call Roman
numerals VI and VII in minor,

00:27:19.500 --> 00:27:21.880 align:middle line:84%
according to different
naming traditions.

00:27:21.880 --> 00:27:27.580 align:middle line:84%
So some people say that the
harmonic minor scale always

00:27:27.580 --> 00:27:30.770 align:middle line:84%
dictates what the
letter name is.

00:27:30.770 --> 00:27:37.270 align:middle line:84%
And some people say that
if you say it's diminished,

00:27:37.270 --> 00:27:39.842 align:middle line:84%
like diminished 7, you
already know it's been raised,

00:27:39.842 --> 00:27:40.800 align:middle line:90%
and you say it's major.

00:27:40.800 --> 00:27:42.640 align:middle line:84%
You know it's been
lowered, and you

00:27:42.640 --> 00:27:44.870 align:middle line:84%
don't need a sharp or
a flat in front of it.

00:27:44.870 --> 00:27:47.182 align:middle line:84%
So there's a whole bunch
of different conventions.

00:27:47.182 --> 00:27:48.640 align:middle line:84%
And unfortunately,
that's something

00:27:48.640 --> 00:27:50.320 align:middle line:90%
we haven't standardized.

00:27:50.320 --> 00:27:53.390 align:middle line:84%
For anyone who's had two
different music theory teachers,

00:27:53.390 --> 00:27:56.000 align:middle line:84%
you might have already
encountered that.

00:27:56.000 --> 00:28:00.550 align:middle line:84%
So let's get down to the code
to show some of the things

00:28:00.550 --> 00:28:01.520 align:middle line:90%
that I found.

00:28:01.520 --> 00:28:03.340 align:middle line:84%
And maybe you'll come
up with a better one.

00:28:03.340 --> 00:28:07.000 align:middle line:84%
Who has taken 302 or a
class that has encountered

00:28:07.000 --> 00:28:08.150 align:middle line:90%
augmented sixth chords?

00:28:08.150 --> 00:28:08.650 align:middle line:90%
Yeah.

00:28:08.650 --> 00:28:13.123 align:middle line:84%
So you know these country
codes, Italian, French, Swiss,

00:28:13.123 --> 00:28:15.165 align:middle line:84%
some people call it, some
people English, German.

00:28:15.165 --> 00:28:18.370 align:middle line:84%
You don't need to worry
about that for this class

00:28:18.370 --> 00:28:19.670 align:middle line:90%
since we didn't have it.

00:28:19.670 --> 00:28:24.990 align:middle line:84%
But one of the other
things that comes up a lot

00:28:24.990 --> 00:28:31.170 align:middle line:84%
is that you need to be able
to change certain things that

00:28:31.170 --> 00:28:31.780 align:middle line:90%
might come up.

00:28:31.780 --> 00:28:39.220 align:middle line:84%
So that's a 57 chord is 753 or
7531, if you want to call it,

00:28:39.220 --> 00:28:41.766 align:middle line:90%
but we only call it 7.

00:28:41.766 --> 00:28:47.170 align:middle line:84%
65, seventh chord first
inversion is 6/5/3,

00:28:47.170 --> 00:28:48.430 align:middle line:90%
but we call it 65.

00:28:48.430 --> 00:28:51.310 align:middle line:84%
So you just need a bunch
of substitution things.

00:28:51.310 --> 00:28:53.580 align:middle line:84%
And these aren't all of
them, because we just

00:28:53.580 --> 00:28:57.870 align:middle line:84%
grabbed them from a lot of
places to make sure ninth works.

00:28:57.870 --> 00:29:00.130 align:middle line:84%
That's always a
nice thing to do.

00:29:00.130 --> 00:29:04.080 align:middle line:84%
So what we find is the
first thing you want to know

00:29:04.080 --> 00:29:07.900 align:middle line:84%
is, what's the
root of the chord?

00:29:07.900 --> 00:29:09.870 align:middle line:84%
And finding the root,
as I said, is already

00:29:09.870 --> 00:29:11.140 align:middle line:90%
an interesting algorithm.

00:29:11.140 --> 00:29:14.310 align:middle line:84%
And then figure out how
many semitones is there

00:29:14.310 --> 00:29:17.650 align:middle line:84%
between that root and
whatever is the third,

00:29:17.650 --> 00:29:21.025 align:middle line:84%
and find out if it's on the
basis of major or minor,

00:29:21.025 --> 00:29:22.400 align:middle line:84%
because that's
going to determine

00:29:22.400 --> 00:29:24.030 align:middle line:90%
uppercase or lowercase.

00:29:24.030 --> 00:29:30.110 align:middle line:84%
We'll skip anything that
says, if there isn't a key.

00:29:30.110 --> 00:29:31.200 align:middle line:90%
Put that in.

00:29:31.200 --> 00:29:35.120 align:middle line:84%
Then created this
conceptual device called

00:29:35.120 --> 00:29:41.130 align:middle line:84%
a figure tuple, which is the
notion of something like,

00:29:41.130 --> 00:29:44.060 align:middle line:90%
if you had a chord with--

00:29:44.060 --> 00:29:46.250 align:middle line:90%
oh, I don't know--

00:29:46.250 --> 00:29:47.760 align:middle line:90%
you might-- sorry.

00:29:47.760 --> 00:29:49.840 align:middle line:90%
That is not a French vocal clef.

00:29:49.840 --> 00:29:53.030 align:middle line:90%


00:29:53.030 --> 00:30:02.630 align:middle line:84%
You might have-- call
that flat 5, flat 3.

00:30:02.630 --> 00:30:07.220 align:middle line:84%
In some ways, this,
one of these figures,

00:30:07.220 --> 00:30:10.850 align:middle line:84%
call this a figure
tuple, which tells you--

00:30:10.850 --> 00:30:12.170 align:middle line:90%
oop!

00:30:12.170 --> 00:30:13.130 align:middle line:90%
Trip hazard.

00:30:13.130 --> 00:30:16.880 align:middle line:90%
What's the thing over the base?

00:30:16.880 --> 00:30:18.870 align:middle line:84%
It's just sometimes
easier to keep

00:30:18.870 --> 00:30:21.990 align:middle line:84%
track of how many
semitones is it altered

00:30:21.990 --> 00:30:24.270 align:middle line:90%
and what do we call it?

00:30:24.270 --> 00:30:28.090 align:middle line:84%
So you might think that
negative 1 always means flat,

00:30:28.090 --> 00:30:30.450 align:middle line:84%
but there are some cases
where that's implied

00:30:30.450 --> 00:30:33.840 align:middle line:90%
by other parts of the thing.

00:30:33.840 --> 00:30:38.791 align:middle line:84%
Then correct the flat
VI to VI in minor,

00:30:38.791 --> 00:30:40.083 align:middle line:90%
depending on people's spelling.

00:30:40.083 --> 00:30:42.780 align:middle line:90%


00:30:42.780 --> 00:30:44.670 align:middle line:84%
Then we end up
trying to figure out

00:30:44.670 --> 00:30:49.170 align:middle line:84%
all these things on how we can
figure-- how we can transpose

00:30:49.170 --> 00:30:54.150 align:middle line:84%
the tonic so that we can
deal with those things that

00:30:54.150 --> 00:30:55.330 align:middle line:90%
are outside the scale.

00:30:55.330 --> 00:30:58.770 align:middle line:84%
So like what we said, if
you have a root that is not

00:30:58.770 --> 00:31:01.380 align:middle line:84%
part of the scale, then
we just really quickly

00:31:01.380 --> 00:31:05.040 align:middle line:84%
construct a whole other
scale down a semitone

00:31:05.040 --> 00:31:06.430 align:middle line:90%
or up a semitone.

00:31:06.430 --> 00:31:08.940 align:middle line:84%
And so we can do all
the other calculations,

00:31:08.940 --> 00:31:11.846 align:middle line:84%
and then just throw flats
on everything afterwards.

00:31:11.846 --> 00:31:14.670 align:middle line:90%


00:31:14.670 --> 00:31:17.450 align:middle line:90%
Probably guess what this does--

00:31:17.450 --> 00:31:21.050 align:middle line:84%
capitalize if it's major,
lowercase if it's minor.

00:31:21.050 --> 00:31:23.880 align:middle line:84%
And then a lot of
these things are slow.

00:31:23.880 --> 00:31:26.160 align:middle line:84%
So a lot of-- if we've
already seen this before,

00:31:26.160 --> 00:31:29.240 align:middle line:90%
get it from the cache.

00:31:29.240 --> 00:31:38.310 align:middle line:84%
And then something to turn 1
to i, 2 to ii, 3 to whatever--

00:31:38.310 --> 00:31:42.890 align:middle line:84%
convert the number from 1
to 3,999 to a Roman numeral.

00:31:42.890 --> 00:31:48.050 align:middle line:84%
I don't know why I
stopped at 3,999.

00:31:48.050 --> 00:31:49.320 align:middle line:90%
It's because I'm a historian.

00:31:49.320 --> 00:31:52.920 align:middle line:84%
And the numbers above 3,999
were never standardized,

00:31:52.920 --> 00:31:55.250 align:middle line:84%
no matter what your
teachers tell you.

00:31:55.250 --> 00:32:01.220 align:middle line:84%
Then we try to figure
out what kind figure

00:32:01.220 --> 00:32:03.650 align:middle line:90%
it's going to be to try to get--

00:32:03.650 --> 00:32:05.520 align:middle line:84%
what kind of inversion
it's going to be.

00:32:05.520 --> 00:32:07.230 align:middle line:90%
So what's the string for that?

00:32:07.230 --> 00:32:10.640 align:middle line:84%
And that's where
a lot of these--

00:32:10.640 --> 00:32:11.330 align:middle line:90%
what is it?

00:32:11.330 --> 00:32:16.740 align:middle line:90%
643 becomes 64 and so on.

00:32:16.740 --> 00:32:21.850 align:middle line:90%


00:32:21.850 --> 00:32:24.620 align:middle line:84%
Then there's-- then we'll
try to think about--

00:32:24.620 --> 00:32:27.500 align:middle line:90%
so we take-- what's the prefix?

00:32:27.500 --> 00:32:30.050 align:middle line:90%
Is it flat too, whatever?

00:32:30.050 --> 00:32:32.600 align:middle line:90%
Add to that the Roman letter.

00:32:32.600 --> 00:32:34.990 align:middle line:84%
Is it I, II, III,
IV, V, VI, VII?

00:32:34.990 --> 00:32:36.790 align:middle line:90%
And then the inversion.

00:32:36.790 --> 00:32:40.900 align:middle line:84%
And then everything after
that is every special case

00:32:40.900 --> 00:32:45.130 align:middle line:84%
that we've encountered
over time that turns out

00:32:45.130 --> 00:32:52.240 align:middle line:84%
to be an inconsistency in the
standard of Roman numerals.

00:32:52.240 --> 00:32:54.490 align:middle line:84%
This is not a history
class, but there's

00:32:54.490 --> 00:32:58.100 align:middle line:84%
a really fascinating thing
about Roman numerals analysis.

00:32:58.100 --> 00:33:00.490 align:middle line:84%
And that is it is
a mashing together

00:33:00.490 --> 00:33:05.440 align:middle line:84%
two different,
incompatible analysis

00:33:05.440 --> 00:33:08.780 align:middle line:84%
types that over time got
put together into one,

00:33:08.780 --> 00:33:13.270 align:middle line:84%
but so that things like
the uppercase and lowercase

00:33:13.270 --> 00:33:17.400 align:middle line:84%
duplicating the function of
putting a flat 3 on something.

00:33:17.400 --> 00:33:20.130 align:middle line:84%
And so what happens
if you're in C major,

00:33:20.130 --> 00:33:24.655 align:middle line:84%
and then you see
lowercase v flat 3?

00:33:24.655 --> 00:33:28.190 align:middle line:90%


00:33:28.190 --> 00:33:31.290 align:middle line:84%
So let's say you're in C major
and you see lowercase v flat 3.

00:33:31.290 --> 00:33:32.810 align:middle line:84%
What do you think
that should be?

00:33:32.810 --> 00:33:36.450 align:middle line:90%
G as the base, as the root.

00:33:36.450 --> 00:33:37.340 align:middle line:90%
Yep.

00:33:37.340 --> 00:33:38.120 align:middle line:90%
AUDIENCE: B-flat.

00:33:38.120 --> 00:33:40.550 align:middle line:84%
MICHAEL CUTHBERT: B-flat
and D. What happens

00:33:40.550 --> 00:33:43.806 align:middle line:90%
if I leave off the flat 3?

00:33:43.806 --> 00:33:45.202 align:middle line:90%
AUDIENCE: The same.

00:33:45.202 --> 00:33:46.160 align:middle line:90%
MICHAEL CUTHBERT: Same.

00:33:46.160 --> 00:33:48.390 align:middle line:90%
So is this a cautionary?

00:33:48.390 --> 00:33:50.870 align:middle line:84%
You can add it, or
you can put it out.

00:33:50.870 --> 00:33:52.650 align:middle line:90%
But then there are other cases--

00:33:52.650 --> 00:34:03.505 align:middle line:84%
what if I'm in C major and
I put I7 versus I flat 7?

00:34:03.505 --> 00:34:07.910 align:middle line:90%


00:34:07.910 --> 00:34:13.630 align:middle line:84%
But the same thing with
V7 doesn't need the flat.

00:34:13.630 --> 00:34:16.719 align:middle line:90%
V flat 7, same thing?

00:34:16.719 --> 00:34:19.690 align:middle line:84%
So there are all
these inconsistencies

00:34:19.690 --> 00:34:22.429 align:middle line:84%
in the world of Roman
numeral analysis.

00:34:22.429 --> 00:34:25.060 align:middle line:84%
And it really begins
to get exposed

00:34:25.060 --> 00:34:28.330 align:middle line:84%
when you start doing
things that we're going

00:34:28.330 --> 00:34:29.643 align:middle line:90%
to be looking into right now.

00:34:29.643 --> 00:34:31.810 align:middle line:84%
So we're going to get to
the algorithmic composition

00:34:31.810 --> 00:34:32.750 align:middle line:90%
in just a bit.

00:34:32.750 --> 00:34:35.610 align:middle line:84%
But what I'd like you
to do for a second is--

00:34:35.610 --> 00:34:36.110 align:middle line:90%
oops.

00:34:36.110 --> 00:34:39.130 align:middle line:90%
Which one's here?

00:34:39.130 --> 00:34:43.580 align:middle line:84%
We'll go back into our favorite
Bach piece, because corpus--

00:34:43.580 --> 00:34:44.080 align:middle line:90%
sorry.

00:34:44.080 --> 00:34:48.520 align:middle line:84%
Switching gears,
laptops open again.

00:34:48.520 --> 00:34:52.750 align:middle line:84%
We did this once
already, bwv66.6.

00:34:52.750 --> 00:34:56.965 align:middle line:90%
And we'll remember chordify.

00:34:56.965 --> 00:35:00.130 align:middle line:90%


00:35:00.130 --> 00:35:07.090 align:middle line:84%
And we'll say chord_bach today,
chord_bach=bach.chordify().

00:35:07.090 --> 00:35:12.730 align:middle line:84%
And I remember this one as
basically an F-sharp minor.

00:35:12.730 --> 00:35:19.350 align:middle line:84%
# So we'll say,
fm=key.Key('f#'), F-sharp.

00:35:19.350 --> 00:35:23.040 align:middle line:90%


00:35:23.040 --> 00:35:27.660 align:middle line:84%
And what we'll do on
this is just for--

00:35:27.660 --> 00:35:32.482 align:middle line:84%
so actually, snap this
up when you've got this.

00:35:32.482 --> 00:35:34.440 align:middle line:84%
And also, by the way, if
I'm typoing, this one,

00:35:34.440 --> 00:35:35.607 align:middle line:90%
I don't have a template for.

00:35:35.607 --> 00:35:38.770 align:middle line:84%
So if I typo, definitely
correct me on this.

00:35:38.770 --> 00:35:43.650 align:middle line:84%
So for chord in
ch, I often say, I

00:35:43.650 --> 00:35:45.510 align:middle line:84%
don't write the
word chord because I

00:35:45.510 --> 00:35:48.120 align:middle line:84%
don't want to lose access
to my chord module--

00:35:48.120 --> 00:35:52.620 align:middle line:84%
chord_bach chord.Chord
for each chord.

00:35:52.620 --> 00:36:04.410 align:middle line:84%
We'll say
rn=roman.romanNumeralFromChord

00:36:04.410 --> 00:36:07.090 align:middle line:84%
ch-- and we're in
the key of F minor.

00:36:07.090 --> 00:36:09.880 align:middle line:84%
So you could just write
the string fm there,

00:36:09.880 --> 00:36:11.950 align:middle line:90%
but it'll be a lot slower.

00:36:11.950 --> 00:36:15.040 align:middle line:90%
And then we'll just say ch--

00:36:15.040 --> 00:36:17.270 align:middle line:84%
so actually, give
a second on that.

00:36:17.270 --> 00:36:21.220 align:middle line:84%
So you're going to
iterate for the recurse.

00:36:21.220 --> 00:36:23.810 align:middle line:84%
The square brackets mean all
the chords in chord_bach.

00:36:23.810 --> 00:36:26.650 align:middle line:90%
Get the chord out.

00:36:26.650 --> 00:36:28.880 align:middle line:84%
Analyze the Roman
numeral from chord.

00:36:28.880 --> 00:36:32.030 align:middle line:84%
If I were a really,
really mean prof,

00:36:32.030 --> 00:36:34.550 align:middle line:84%
I would say your next assignment
is to reimplement that.

00:36:34.550 --> 00:36:37.880 align:middle line:84%
But you can see the
gray hairs here.

00:36:37.880 --> 00:36:39.410 align:middle line:90%
That's exactly from that--

00:36:39.410 --> 00:36:41.480 align:middle line:90%
from implementing that one.

00:36:41.480 --> 00:36:45.830 align:middle line:84%
That and chordify are the
two reasons I'm getting old.

00:36:45.830 --> 00:36:50.410 align:middle line:84%
And now what we're going to do
is we'll say the chord's lyric--

00:36:50.410 --> 00:36:53.080 align:middle line:90%
we did this once, right?

00:36:53.080 --> 00:36:54.440 align:middle line:90%
ch.lyric=rn.figure.

00:36:54.440 --> 00:37:00.040 align:middle line:90%


00:37:00.040 --> 00:37:02.870 align:middle line:84%
I think we did this, but
we did it rather fast.

00:37:02.870 --> 00:37:04.425 align:middle line:90%
So I want to make sure that.

00:37:04.425 --> 00:37:08.010 align:middle line:90%


00:37:08.010 --> 00:37:08.510 align:middle line:90%
Oops.

00:37:08.510 --> 00:37:12.450 align:middle line:84%
That's not going to
do anything, right?

00:37:12.450 --> 00:37:14.140 align:middle line:90%
Because I put it onto the thing.

00:37:14.140 --> 00:37:16.240 align:middle line:90%
I want chord_bach.show.

00:37:16.240 --> 00:37:17.306 align:middle line:90%
My apologies.

00:37:17.306 --> 00:37:20.460 align:middle line:90%


00:37:20.460 --> 00:37:22.260 align:middle line:84%
And you're going
to realize there's

00:37:22.260 --> 00:37:24.420 align:middle line:84%
one thing I didn't
do that's going

00:37:24.420 --> 00:37:25.870 align:middle line:90%
to make it look really funny.

00:37:25.870 --> 00:37:30.430 align:middle line:84%
I forgot to put all of the
chords in closed position,

00:37:30.430 --> 00:37:32.405 align:middle line:84%
but at least it
works pretty well.

00:37:32.405 --> 00:37:35.340 align:middle line:90%


00:37:35.340 --> 00:37:39.515 align:middle line:84%
So I'm going to scroll to
the end, so around here.

00:37:39.515 --> 00:37:43.080 align:middle line:90%


00:37:43.080 --> 00:37:46.950 align:middle line:84%
If you didn't get
it all, don't worry.

00:37:46.950 --> 00:37:51.070 align:middle line:84%
Some of y'all are to be
thanked in the class,

00:37:51.070 --> 00:37:54.780 align:middle line:84%
especially John and Adam, for
when I forget to put a notebook

00:37:54.780 --> 00:37:55.530 align:middle line:90%
up.

00:37:55.530 --> 00:37:56.290 align:middle line:90%
They remind me.

00:37:56.290 --> 00:37:58.040 align:middle line:84%
And now all the previous
notebooks are up.

00:37:58.040 --> 00:38:01.053 align:middle line:84%
So if you miss anything,
they'll be going up later.

00:38:01.053 --> 00:38:02.970 align:middle line:84%
But you can see that
there's some places where

00:38:02.970 --> 00:38:06.270 align:middle line:84%
you see chords that look
like chords that you've

00:38:06.270 --> 00:38:11.330 align:middle line:90%
seen in your life, iv, V6, i.

00:38:11.330 --> 00:38:14.450 align:middle line:84%
And then there
are places, again,

00:38:14.450 --> 00:38:16.380 align:middle line:90%
V. That looks pretty good.

00:38:16.380 --> 00:38:16.880 align:middle line:90%
Sorry.

00:38:16.880 --> 00:38:20.270 align:middle line:84%
That autosave thing
knocks it down.

00:38:20.270 --> 00:38:25.010 align:middle line:90%
And then chords 763.

00:38:25.010 --> 00:38:28.670 align:middle line:90%
That's rather unusual.

00:38:28.670 --> 00:38:33.690 align:middle line:84%
Flat VI augmented
in 64 position.

00:38:33.690 --> 00:38:36.770 align:middle line:84%
Y'all remember how to
resolve that chord, right?

00:38:36.770 --> 00:38:37.520 align:middle line:90%
No, no.

00:38:37.520 --> 00:38:39.270 align:middle line:84%
I've never heard of
that chord in my life.

00:38:39.270 --> 00:38:44.940 align:middle line:84%
So this is a pretty dumb
way of working with things.

00:38:44.940 --> 00:38:47.300 align:middle line:84%
In fact, I'm just going
to go straight from this

00:38:47.300 --> 00:38:50.040 align:middle line:90%
to the last part here.

00:38:50.040 --> 00:38:53.540 align:middle line:84%
Then if you get to
the top, you see

00:38:53.540 --> 00:38:56.310 align:middle line:84%
a lot of figures that
look pretty normal.

00:38:56.310 --> 00:38:58.640 align:middle line:90%
No-- nothing after the III.

00:38:58.640 --> 00:39:01.620 align:middle line:90%
You see 6, nothing, 6, whatever.

00:39:01.620 --> 00:39:03.583 align:middle line:90%
These look a lot better, 7.

00:39:03.583 --> 00:39:05.250 align:middle line:84%
Those are numbers
you're used to seeing,

00:39:05.250 --> 00:39:07.520 align:middle line:84%
the Arabic numerals
you're used to seeing.

00:39:07.520 --> 00:39:10.040 align:middle line:90%
But the Romans are way off.

00:39:10.040 --> 00:39:14.200 align:middle line:90%
Why are these Romans so weird?

00:39:14.200 --> 00:39:15.670 align:middle line:90%
Because we're wearing togas.

00:39:15.670 --> 00:39:16.320 align:middle line:90%
No, no.

00:39:16.320 --> 00:39:17.820 align:middle line:84%
Why are the Roman
numerals so weird?

00:39:17.820 --> 00:39:22.390 align:middle line:90%


00:39:22.390 --> 00:39:25.570 align:middle line:90%
I don't remember this piece.

00:39:25.570 --> 00:39:26.800 align:middle line:90%
Go ahead.

00:39:26.800 --> 00:39:28.780 align:middle line:90%
AUDIENCE: It starts in A.

00:39:28.780 --> 00:39:32.200 align:middle line:84%
MICHAEL CUTHBERT: It starts in
A. Yeah, if we go back, and--

00:39:32.200 --> 00:39:36.190 align:middle line:84%
we don't have to-- we remember
how it goes a bit, right?

00:39:36.190 --> 00:39:39.220 align:middle line:90%
It starts in A major.

00:39:39.220 --> 00:39:42.460 align:middle line:84%
So one of the things you
can start thinking about

00:39:42.460 --> 00:39:46.310 align:middle line:84%
on your computer system is
if you see a lot of III,

00:39:46.310 --> 00:39:50.500 align:middle line:84%
flat 6, flat 6, III or
flat VII 3, 3 flat VII,

00:39:50.500 --> 00:39:53.600 align:middle line:84%
and you're dealing with a
classical piece of music,

00:39:53.600 --> 00:39:56.210 align:middle line:84%
what have you
probably gotten wrong?

00:39:56.210 --> 00:39:56.960 align:middle line:90%
AUDIENCE: The key.

00:39:56.960 --> 00:39:58.043 align:middle line:90%
MICHAEL CUTHBERT: The key.

00:39:58.043 --> 00:40:01.070 align:middle line:84%
Specifically, you've put it
in blank instead of blank.

00:40:01.070 --> 00:40:03.910 align:middle line:90%
You've put it in--

00:40:03.910 --> 00:40:04.648 align:middle line:90%
what kind of?

00:40:04.648 --> 00:40:05.690 align:middle line:90%
AUDIENCE: Relative minor.

00:40:05.690 --> 00:40:07.920 align:middle line:84%
MICHAEL CUTHBERT: Relative minor
instead of the relative major.

00:40:07.920 --> 00:40:08.420 align:middle line:90%
Good.

00:40:08.420 --> 00:40:11.690 align:middle line:84%
What if you accidentally
analyze the piece in major

00:40:11.690 --> 00:40:12.630 align:middle line:90%
instead of minor?

00:40:12.630 --> 00:40:16.995 align:middle line:84%
What would you be seeing a
lot of instead for 1 to 5?

00:40:16.995 --> 00:40:20.962 align:middle line:90%


00:40:20.962 --> 00:40:21.528 align:middle line:90%
Yeah.

00:40:21.528 --> 00:40:22.320 align:middle line:90%
AUDIENCE: Oh, yeah.

00:40:22.320 --> 00:40:23.130 align:middle line:90%
You'll see 6 minor.

00:40:23.130 --> 00:40:25.710 align:middle line:90%
You'll see 2 minor and 3 major.

00:40:25.710 --> 00:40:26.960 align:middle line:90%
MICHAEL CUTHBERT: 6 minor, 2--

00:40:26.960 --> 00:40:29.370 align:middle line:90%
yeah, 6, 2's, and 3's--

00:40:29.370 --> 00:40:31.760 align:middle line:84%
so that might tell
you something about,

00:40:31.760 --> 00:40:35.040 align:middle line:84%
hey, you're in a
different position.

00:40:35.040 --> 00:40:35.540 align:middle line:90%
Great.

00:40:35.540 --> 00:40:43.380 align:middle line:84%
So strange Roman numerals
probably means failure of key.

00:40:43.380 --> 00:40:50.545 align:middle line:84%
Strange figures-- what do these
strange figures probably mean?

00:40:50.545 --> 00:40:55.500 align:middle line:90%


00:40:55.500 --> 00:40:56.000 align:middle line:90%
Yeah, Adam.

00:40:56.000 --> 00:40:57.840 align:middle line:84%
AUDIENCE: It isn't a
very compatible chord.

00:40:57.840 --> 00:41:00.150 align:middle line:84%
MICHAEL CUTHBERT: Isn't
a very compatible chord,

00:41:00.150 --> 00:41:04.267 align:middle line:84%
or it's a chord that has
embedded possibly what in it?

00:41:04.267 --> 00:41:05.350 align:middle line:90%
AUDIENCE: Non-chord tones.

00:41:05.350 --> 00:41:07.990 align:middle line:84%
MICHAEL CUTHBERT:
Non-chord tones, good.

00:41:07.990 --> 00:41:10.940 align:middle line:84%
Everybody's favorite
non-chord tones.

00:41:10.940 --> 00:41:14.906 align:middle line:84%
We'll go-- Hannah,
favorite non-chord tone?

00:41:14.906 --> 00:41:16.430 align:middle line:84%
It doesn't have to
be your favorite.

00:41:16.430 --> 00:41:17.508 align:middle line:90%
Just name one.

00:41:17.508 --> 00:41:18.800 align:middle line:90%
AUDIENCE: I'm not going to lie.

00:41:18.800 --> 00:41:19.870 align:middle line:90%
I don't remember what it is.

00:41:19.870 --> 00:41:20.650 align:middle line:84%
MICHAEL CUTHBERT:
Don't remember any.

00:41:20.650 --> 00:41:21.380 align:middle line:90%
Great, great.

00:41:21.380 --> 00:41:23.380 align:middle line:84%
So that's great, because
you'll be listening up,

00:41:23.380 --> 00:41:25.297 align:middle line:84%
because we're going to
be doing some of these.

00:41:25.297 --> 00:41:28.365 align:middle line:90%


00:41:28.365 --> 00:41:29.520 align:middle line:90%
AUDIENCE: Diminished fifth.

00:41:29.520 --> 00:41:32.020 align:middle line:84%
MICHAEL CUTHBERT: Diminished
fifth-- ah, so diminished fifth

00:41:32.020 --> 00:41:36.590 align:middle line:84%
is a chord tone when
you say it that way.

00:41:36.590 --> 00:41:42.910 align:middle line:84%
But it's not-- or
non-harmonic tone

00:41:42.910 --> 00:41:45.730 align:middle line:84%
is maybe the term that
you've heard in other things.

00:41:45.730 --> 00:41:48.440 align:middle line:84%
When you say it that way,
it might be part of a chord,

00:41:48.440 --> 00:41:51.775 align:middle line:84%
but it might-- it has to have
a function in order to do it.

00:41:51.775 --> 00:41:52.900 align:middle line:90%
So a function-- yeah, John?

00:41:52.900 --> 00:41:53.590 align:middle line:90%
AUDIENCE: Anticipation.

00:41:53.590 --> 00:41:54.550 align:middle line:90%
MICHAEL CUTHBERT: An--

00:41:54.550 --> 00:41:55.730 align:middle line:90%
--ticipation.

00:41:55.730 --> 00:41:59.210 align:middle line:84%
Yeah, where you
get to the chord--

00:41:59.210 --> 00:42:01.400 align:middle line:84%
maybe you get to the tonic
a little bit too early.

00:42:01.400 --> 00:42:01.630 align:middle line:90%
Good.

00:42:01.630 --> 00:42:03.047 align:middle line:84%
Anticipation is a
really good one.

00:42:03.047 --> 00:42:05.520 align:middle line:90%
Anyone else have a favorite one?

00:42:05.520 --> 00:42:06.150 align:middle line:90%
Yeah.

00:42:06.150 --> 00:42:07.230 align:middle line:90%
AUDIENCE: Suspension.

00:42:07.230 --> 00:42:10.710 align:middle line:84%
MICHAEL CUTHBERT: Suspension
Yeah, we hold the chord--

00:42:10.710 --> 00:42:12.910 align:middle line:90%
the tone "too long."

00:42:12.910 --> 00:42:13.717 align:middle line:90%
I mean, it's great.

00:42:13.717 --> 00:42:15.550 align:middle line:84%
Don't-- you know,
obviously, it's wonderful,

00:42:15.550 --> 00:42:17.290 align:middle line:84%
but too long for the
harmonic analysis.

00:42:17.290 --> 00:42:21.720 align:middle line:84%
So let's say--
computationally, if your job is

00:42:21.720 --> 00:42:24.670 align:middle line:84%
to get rid of non-chord tones,
what are you going to do?

00:42:24.670 --> 00:42:28.290 align:middle line:84%
How do you get rid
of anticipation?

00:42:28.290 --> 00:42:30.912 align:middle line:84%
AUDIENCE: You just have the
rest of the chord following.

00:42:30.912 --> 00:42:31.870 align:middle line:90%
MICHAEL CUTHBERT: Yeah.

00:42:31.870 --> 00:42:33.850 align:middle line:84%
You just have the rest
of the chord following.

00:42:33.850 --> 00:42:34.350 align:middle line:90%
Great.

00:42:34.350 --> 00:42:36.242 align:middle line:84%
How do you get
rid of suspension?

00:42:36.242 --> 00:42:37.450 align:middle line:90%
AUDIENCE: You cut it shorter.

00:42:37.450 --> 00:42:38.992 align:middle line:84%
MICHAEL CUTHBERT:
You cut it shorter.

00:42:38.992 --> 00:42:39.960 align:middle line:90%
Great, great.

00:42:39.960 --> 00:42:42.400 align:middle line:84%
So what's another
non-chord tone?

00:42:42.400 --> 00:42:44.040 align:middle line:90%
Nobody's done the one that you--

00:42:44.040 --> 00:42:45.940 align:middle line:84%
the first one that
most of us learn.

00:42:45.940 --> 00:42:47.205 align:middle line:90%
These are more-- yeah.

00:42:47.205 --> 00:42:48.270 align:middle line:90%
AUDIENCE: Stepwise.

00:42:48.270 --> 00:42:50.478 align:middle line:84%
MICHAEL CUTHBERT: Stepwise,
yeah, between two things.

00:42:50.478 --> 00:42:51.842 align:middle line:90%
What do we call that?

00:42:51.842 --> 00:42:52.800 align:middle line:90%
AUDIENCE: Passing tone.

00:42:52.800 --> 00:42:55.840 align:middle line:84%
MICHAEL CUTHBERT: Passing
tone, yes, the passing tone.

00:42:55.840 --> 00:42:57.060 align:middle line:90%
So great.

00:42:57.060 --> 00:43:01.240 align:middle line:84%
Well, how do you usually
get rid of a passing tone?

00:43:01.240 --> 00:43:04.250 align:middle line:84%
Just cut it out and make the
previous note longer, right?

00:43:04.250 --> 00:43:07.890 align:middle line:84%
How do you identify
a passing tone?

00:43:07.890 --> 00:43:11.590 align:middle line:90%


00:43:11.590 --> 00:43:13.220 align:middle line:84%
It just looks like
it, doesn't it?

00:43:13.220 --> 00:43:16.220 align:middle line:84%
It's so easy on our neural
processors or our eyes.

00:43:16.220 --> 00:43:17.740 align:middle line:90%
It just sounds like it.

00:43:17.740 --> 00:43:19.140 align:middle line:90%
What kinds of things--

00:43:19.140 --> 00:43:22.090 align:middle line:90%


00:43:22.090 --> 00:43:25.510 align:middle line:84%
what criteria do we need to
know that something is a passing

00:43:25.510 --> 00:43:26.010 align:middle line:90%
tone?

00:43:26.010 --> 00:43:43.330 align:middle line:90%


00:43:43.330 --> 00:43:44.670 align:middle line:90%
Those are the worst stems ever.

00:43:44.670 --> 00:43:51.190 align:middle line:90%


00:43:51.190 --> 00:43:53.380 align:middle line:84%
Actually, the clef
doesn't matter, does it?

00:43:53.380 --> 00:43:55.030 align:middle line:90%
No, it's still a passing tone.

00:43:55.030 --> 00:43:57.340 align:middle line:90%
Which one's the passing tone?

00:43:57.340 --> 00:43:59.110 align:middle line:90%
Who votes for C?

00:43:59.110 --> 00:44:00.400 align:middle line:90%
Who votes for D?

00:44:00.400 --> 00:44:01.640 align:middle line:90%
Who votes for E?

00:44:01.640 --> 00:44:02.140 align:middle line:90%
OK, good.

00:44:02.140 --> 00:44:03.687 align:middle line:84%
Lots of Ds,
especially on the side

00:44:03.687 --> 00:44:05.520 align:middle line:84%
of the room that I have
privileged by making

00:44:05.520 --> 00:44:07.360 align:middle line:90%
it much easier to see.

00:44:07.360 --> 00:44:08.140 align:middle line:90%
Sorry about that.

00:44:08.140 --> 00:44:10.410 align:middle line:84%
I'm not going to stay here
very long, so just squint

00:44:10.410 --> 00:44:14.580 align:middle line:84%
for a little bit and feel free
to shout out what I'm doing

00:44:14.580 --> 00:44:16.420 align:middle line:90%
for free closed captioning.

00:44:16.420 --> 00:44:19.170 align:middle line:90%
Great.

00:44:19.170 --> 00:44:22.140 align:middle line:84%
So what kinds of things would
you be putting if statements

00:44:22.140 --> 00:44:25.372 align:middle line:84%
on if you were like, "I'll
just throw it in a neural net

00:44:25.372 --> 00:44:26.080 align:middle line:90%
and it'll learn"?

00:44:26.080 --> 00:44:28.930 align:middle line:84%
But no, if you
had to program it,

00:44:28.930 --> 00:44:33.270 align:middle line:90%
what would you be looking for?

00:44:33.270 --> 00:44:33.790 align:middle line:90%
Yeah.

00:44:33.790 --> 00:44:34.540 align:middle line:90%
AUDIENCE: Seconds.

00:44:34.540 --> 00:44:35.623 align:middle line:90%
MICHAEL CUTHBERT: Seconds.

00:44:35.623 --> 00:44:41.290 align:middle line:84%
So we have to have a
second, and then a second.

00:44:41.290 --> 00:44:46.830 align:middle line:84%
Do the seconds have
to be ascending?

00:44:46.830 --> 00:44:48.520 align:middle line:90%
No.

00:44:48.520 --> 00:44:51.748 align:middle line:84%
Can they be in
opposite directions?

00:44:51.748 --> 00:44:52.290 align:middle line:90%
AUDIENCE: No.

00:44:52.290 --> 00:44:53.165 align:middle line:90%
MICHAEL CUTHBERT: No.

00:44:53.165 --> 00:44:54.180 align:middle line:90%
Why not?

00:44:54.180 --> 00:44:55.080 align:middle line:84%
AUDIENCE: Because then
you have a neighbor.

00:44:55.080 --> 00:44:57.288 align:middle line:84%
MICHAEL CUTHBERT: Then you
have a neighbor tone, yep.

00:44:57.288 --> 00:45:01.470 align:middle line:84%
So 2, 2, second, second
equals passing tone.

00:45:01.470 --> 00:45:05.210 align:middle line:84%
Negative 2, negative
2 equals passing tone.

00:45:05.210 --> 00:45:09.000 align:middle line:84%
2, negative 2 equals
neighbor tone.

00:45:09.000 --> 00:45:12.540 align:middle line:84%
And negative 2, 2
is neighbor tone.

00:45:12.540 --> 00:45:15.200 align:middle line:84%
I know some of you are already
trying to pass your LeetCode

00:45:15.200 --> 00:45:17.360 align:middle line:84%
things and thinking, what's
the bitwise operation

00:45:17.360 --> 00:45:19.730 align:middle line:84%
that's going to make it so
I don't have to put all four

00:45:19.730 --> 00:45:20.640 align:middle line:90%
of those?

00:45:20.640 --> 00:45:22.440 align:middle line:90%
No, it's OK, it's only four.

00:45:22.440 --> 00:45:26.580 align:middle line:84%
So you can look--
find these in here.

00:45:26.580 --> 00:45:27.980 align:middle line:84%
So yeah, you might
be doing that.

00:45:27.980 --> 00:45:29.960 align:middle line:84%
Then anything else
that you think

00:45:29.960 --> 00:45:34.520 align:middle line:84%
is important for saying that
something is a passing tone?

00:45:34.520 --> 00:45:37.220 align:middle line:90%
So I have this format.

00:45:37.220 --> 00:45:38.300 align:middle line:90%
Yeah, John?

00:45:38.300 --> 00:45:40.925 align:middle line:84%
AUDIENCE: Making sure the notes
surrounding it are chord tones.

00:45:40.925 --> 00:45:43.175 align:middle line:84%
MICHAEL CUTHBERT: Making
sure the notes surrounding it

00:45:43.175 --> 00:45:43.860 align:middle line:90%
are chord tones.

00:45:43.860 --> 00:45:44.360 align:middle line:90%
Yeah.

00:45:44.360 --> 00:45:48.060 align:middle line:84%
So these things have
to fit into this.

00:45:48.060 --> 00:45:52.220 align:middle line:84%
And this is why I was saying
that diminished fifth might

00:45:52.220 --> 00:45:53.900 align:middle line:90%
be a--

00:45:53.900 --> 00:45:59.430 align:middle line:84%
might not be a non-chord tone
if the surrounding chord happens

00:45:59.430 --> 00:46:00.495 align:middle line:90%
to be a diminished triad.

00:46:00.495 --> 00:46:03.030 align:middle line:84%
And you might say, well, then
all of these might be chord

00:46:03.030 --> 00:46:05.220 align:middle line:84%
tones, because maybe the
surrounding chord really is

00:46:05.220 --> 00:46:09.120 align:middle line:90%
4-7-6-3, but probably not.

00:46:09.120 --> 00:46:13.150 align:middle line:84%
What do we-- so now there's
two ways to look at this.

00:46:13.150 --> 00:46:16.540 align:middle line:84%
We can do this on the
individual voice level.

00:46:16.540 --> 00:46:18.957 align:middle line:84%
And so that's what we're doing--
or individual part level.

00:46:18.957 --> 00:46:20.540 align:middle line:84%
If you're looking
at a chorale, that's

00:46:20.540 --> 00:46:22.540 align:middle line:84%
what you're going to
do before chordifying.

00:46:22.540 --> 00:46:24.480 align:middle line:84%
The other thing you can
do-- what do you think

00:46:24.480 --> 00:46:25.630 align:middle line:90%
is happening here?

00:46:25.630 --> 00:46:30.100 align:middle line:84%
You can't even really
see what's happening.

00:46:30.100 --> 00:46:35.160 align:middle line:84%
But you can see that we have
iv6, something weird happening,

00:46:35.160 --> 00:46:37.740 align:middle line:90%
and then iv.

00:46:37.740 --> 00:46:40.170 align:middle line:84%
So we're going--
something's happening here,

00:46:40.170 --> 00:46:42.540 align:middle line:84%
where we're going from the
first inversion of a chord

00:46:42.540 --> 00:46:46.620 align:middle line:84%
to the root position
of the chord.

00:46:46.620 --> 00:46:51.040 align:middle line:84%
And these, there might be a
lot of passing motion in there.

00:46:51.040 --> 00:46:55.110 align:middle line:84%
So you might be able to
identify these non-chord tones

00:46:55.110 --> 00:46:58.820 align:middle line:84%
at the chord level, or
you might be working

00:46:58.820 --> 00:47:02.720 align:middle line:90%
on the individual voice level.

00:47:02.720 --> 00:47:04.710 align:middle line:84%
Which one do you
think works better?

00:47:04.710 --> 00:47:08.030 align:middle line:84%
Individual voice
level, chord level?

00:47:08.030 --> 00:47:10.040 align:middle line:90%
Individual voice?

00:47:10.040 --> 00:47:11.990 align:middle line:90%
Chords?

00:47:11.990 --> 00:47:13.220 align:middle line:90%
Yeah.

00:47:13.220 --> 00:47:14.460 align:middle line:90%
And the answer?

00:47:14.460 --> 00:47:15.860 align:middle line:90%
We don't really know.

00:47:15.860 --> 00:47:18.410 align:middle line:84%
I try to do both,
because some things

00:47:18.410 --> 00:47:20.820 align:middle line:84%
are easier to get from
one than the other.

00:47:20.820 --> 00:47:22.470 align:middle line:90%
So great.

00:47:22.470 --> 00:47:29.610 align:middle line:84%
We've gone through, and we've
done a question-- outline 1

00:47:29.610 --> 00:47:32.150 align:middle line:90%
and most of outline 3 on here.

00:47:32.150 --> 00:47:34.430 align:middle line:84%
I jumped around
because I realized

00:47:34.430 --> 00:47:37.580 align:middle line:84%
that a different ordering
was going to be better.

00:47:37.580 --> 00:47:42.230 align:middle line:84%
So we're going to gone
through 3 A and B,

00:47:42.230 --> 00:47:47.960 align:middle line:84%
and then I'll leave C and
D for a little bit later.

00:47:47.960 --> 00:47:51.330 align:middle line:84%
What I want to do, since
we have our jigs loaded up,

00:47:51.330 --> 00:47:52.765 align:middle line:90%
I want to do a little bit of 2.

00:47:52.765 --> 00:47:55.810 align:middle line:90%


00:47:55.810 --> 00:47:57.400 align:middle line:84%
We'll say take two
if we're doing it.

00:47:57.400 --> 00:47:59.150 align:middle line:84%
No, we're not doing
that level of editing.

00:47:59.150 --> 00:48:01.498 align:middle line:84%
But one last little
thing-- problem set 9,

00:48:01.498 --> 00:48:03.290 align:middle line:84%
you're going to be
getting in a little bit.

00:48:03.290 --> 00:48:05.410 align:middle line:84%
And what you're going
to be doing in problem

00:48:05.410 --> 00:48:12.740 align:middle line:84%
set 9 is this kind of chord
tone identification and removal.

00:48:12.740 --> 00:48:15.610 align:middle line:84%
So you're going to
be given various--

00:48:15.610 --> 00:48:19.910 align:middle line:84%
you're going to be given
various four-part chorales.

00:48:19.910 --> 00:48:23.890 align:middle line:84%
And what I want to see
is instead of things

00:48:23.890 --> 00:48:26.600 align:middle line:84%
like this that look
really hilarious,

00:48:26.600 --> 00:48:33.820 align:middle line:84%
something pretty clear out,
and a nice reduction of that.

00:48:33.820 --> 00:48:36.580 align:middle line:84%
One of the things you
might start thinking about

00:48:36.580 --> 00:48:39.820 align:middle line:84%
is that Roman numerals are
a type of equivalence class

00:48:39.820 --> 00:48:41.600 align:middle line:90%
on a set of pitches.

00:48:41.600 --> 00:48:43.940 align:middle line:90%
That's not only about--

00:48:43.940 --> 00:48:47.120 align:middle line:84%
well, it helps to say that
this is the same chord--

00:48:47.120 --> 00:48:49.850 align:middle line:84%
the same chordal function
in different keys.

00:48:49.850 --> 00:48:56.940 align:middle line:84%
It's also an equivalence
class on the cloud of notes,

00:48:56.940 --> 00:49:00.980 align:middle line:84%
including non-chord
tones that we can say,

00:49:00.980 --> 00:49:03.540 align:middle line:84%
these two things are
the same Roman numeral,

00:49:03.540 --> 00:49:06.290 align:middle line:84%
even though one of them has
filled in all the passing tones

00:49:06.290 --> 00:49:08.960 align:middle line:90%
or neighbor tones--

00:49:08.960 --> 00:49:09.680 align:middle line:90%
suspensions.

00:49:09.680 --> 00:49:10.520 align:middle line:90%
Did we get them all?

00:49:10.520 --> 00:49:11.870 align:middle line:90%
Escape tones.

00:49:11.870 --> 00:49:13.160 align:middle line:90%
That's a pretty hard one.

00:49:13.160 --> 00:49:16.170 align:middle line:90%
There are a bunch of other ones.

00:49:16.170 --> 00:49:19.380 align:middle line:84%
But yeah, so these are things
that you're going to be doing.

00:49:19.380 --> 00:49:21.570 align:middle line:84%
So I'll be giving it to
you in just a little bit.

00:49:21.570 --> 00:49:25.580 align:middle line:84%
So you want to be able to
take something and make it

00:49:25.580 --> 00:49:26.640 align:middle line:90%
quite a bit nicer.

00:49:26.640 --> 00:49:29.520 align:middle line:84%
You're going to
have help on this.

00:49:29.520 --> 00:49:30.770 align:middle line:90%
A couple of things that help--

00:49:30.770 --> 00:49:33.210 align:middle line:84%
you're going to have
at least a week.

00:49:33.210 --> 00:49:35.600 align:middle line:90%
I'm thinking next Friday.

00:49:35.600 --> 00:49:39.860 align:middle line:84%
There's the danger between
I don't want to give too

00:49:39.860 --> 00:49:41.930 align:middle line:84%
little time, but
I also don't want

00:49:41.930 --> 00:49:44.600 align:middle line:84%
to go so late that you can't
have your full attention

00:49:44.600 --> 00:49:45.840 align:middle line:90%
on the final projects.

00:49:45.840 --> 00:49:47.245 align:middle line:90%
So what's your thing?

00:49:47.245 --> 00:49:48.620 align:middle line:84%
What I'd like you
to do is you're

00:49:48.620 --> 00:49:52.750 align:middle line:84%
going to be doing problem
set 9 with your partner

00:49:52.750 --> 00:49:59.390 align:middle line:84%
that you're working on the final
project with and one other team.

00:49:59.390 --> 00:50:00.650 align:middle line:90%
So groups of four.

00:50:00.650 --> 00:50:04.250 align:middle line:84%
The team of four, I think
you're a natural group of four.

00:50:04.250 --> 00:50:06.250 align:middle line:90%
So why don't you put them there?

00:50:06.250 --> 00:50:10.240 align:middle line:84%
But what I'd like you to do
is there are different steps

00:50:10.240 --> 00:50:12.790 align:middle line:90%
along the process.

00:50:12.790 --> 00:50:15.700 align:middle line:84%
Here, I'll just-- I'll pop
up PSet 9 right now, so you

00:50:15.700 --> 00:50:17.860 align:middle line:84%
can see it while it's
here, even though I'm

00:50:17.860 --> 00:50:20.440 align:middle line:84%
doing some last second
tweaks, depending

00:50:20.440 --> 00:50:23.765 align:middle line:90%
on what we get through today.

00:50:23.765 --> 00:50:24.265 align:middle line:90%
Great.

00:50:24.265 --> 00:50:28.765 align:middle line:90%


00:50:28.765 --> 00:50:31.780 align:middle line:84%
PSet 9, you're going to be
doing reduction and key analysis

00:50:31.780 --> 00:50:34.600 align:middle line:90%
of tonal music.

00:50:34.600 --> 00:50:36.700 align:middle line:90%
And I want you to say--

00:50:36.700 --> 00:50:37.610 align:middle line:90%
note this.

00:50:37.610 --> 00:50:39.590 align:middle line:84%
You need not get
every chord right.

00:50:39.590 --> 00:50:41.570 align:middle line:84%
It need not work
on every chorale.

00:50:41.570 --> 00:50:43.750 align:middle line:84%
I'm asking for a
decent amount of work

00:50:43.750 --> 00:50:46.940 align:middle line:84%
toward a solution, not a
complete solution in itself.

00:50:46.940 --> 00:50:48.350 align:middle line:90%
Great.

00:50:48.350 --> 00:50:51.180 align:middle line:84%
So you're not going
to be doing that.

00:50:51.180 --> 00:50:56.230 align:middle line:84%
So what you'd probably
like to do is--

00:50:56.230 --> 00:51:00.780 align:middle line:84%
what you're going to do is I'm
going to call vocabulary_reduce

00:51:00.780 --> 00:51:03.960 align:middle line:84%
on a score, and you're
going to give me

00:51:03.960 --> 00:51:06.600 align:middle line:84%
either a score or a part,
depending on how you

00:51:06.600 --> 00:51:09.550 align:middle line:90%
try to choose to represent it.

00:51:09.550 --> 00:51:12.600 align:middle line:90%
That is the reduced one.

00:51:12.600 --> 00:51:16.380 align:middle line:84%
You have four
people on your team.

00:51:16.380 --> 00:51:19.290 align:middle line:84%
You probably do not want to
implement-- you definitely

00:51:19.290 --> 00:51:21.210 align:middle line:84%
do not want to implement
your entire solution

00:51:21.210 --> 00:51:25.950 align:middle line:84%
inside this vocabulary_reduce
programming in a Jupyter

00:51:25.950 --> 00:51:26.920 align:middle line:90%
Notebook.

00:51:26.920 --> 00:51:30.150 align:middle line:84%
Take this, divide
it up, and share it

00:51:30.150 --> 00:51:35.700 align:middle line:84%
among your favorite
collaborative coding tools.

00:51:35.700 --> 00:51:40.320 align:middle line:84%
I'm starting you with a chorale
that's easier than the one

00:51:40.320 --> 00:51:43.270 align:middle line:84%
we've been working
on in class 66.6.

00:51:43.270 --> 00:51:46.290 align:middle line:84%
And here are the four
I'm going to test you

00:51:46.290 --> 00:51:48.160 align:middle line:90%
on for 90% of your points.

00:51:48.160 --> 00:51:50.080 align:middle line:90%
So I'm going to tell you that.

00:51:50.080 --> 00:51:50.630 align:middle line:90%
Oops.

00:51:50.630 --> 00:51:52.540 align:middle line:84%
So this is why
I'm still editing.

00:51:52.540 --> 00:51:56.650 align:middle line:84%
You have key analysis
unlocked because we

00:51:56.650 --> 00:51:58.940 align:middle line:90%
lost four classes this year.

00:51:58.940 --> 00:52:02.793 align:middle line:84%
So you'll be allowed to analyze
the key using analysis things.

00:52:02.793 --> 00:52:03.793 align:middle line:90%
We're going to chordify.

00:52:03.793 --> 00:52:06.520 align:middle line:90%


00:52:06.520 --> 00:52:08.920 align:middle line:84%
This addPartIdAsGroup
is something

00:52:08.920 --> 00:52:12.340 align:middle line:84%
that lets you figure
out for each pitch

00:52:12.340 --> 00:52:16.250 align:middle line:84%
in your chordified score what
part it originally came from,

00:52:16.250 --> 00:52:19.250 align:middle line:84%
which can be very useful for
figuring out what to delete.

00:52:19.250 --> 00:52:25.360 align:middle line:84%
And yeah, we'll just
show the first--

00:52:25.360 --> 00:52:27.820 align:middle line:84%
put it in-- actually,
I'll show different steps

00:52:27.820 --> 00:52:29.960 align:middle line:90%
that might happen here.

00:52:29.960 --> 00:52:32.170 align:middle line:84%
So what I've done is I've
gone through one chord

00:52:32.170 --> 00:52:34.900 align:middle line:90%
that if you load these things--

00:52:34.900 --> 00:52:36.615 align:middle line:90%
sorry-- one choral-- oops!

00:52:36.615 --> 00:52:39.290 align:middle line:90%


00:52:39.290 --> 00:52:39.790 align:middle line:90%
Sorry.

00:52:39.790 --> 00:52:43.270 align:middle line:84%
I forgot I have to
restart and run all.

00:52:43.270 --> 00:52:44.480 align:middle line:90%
Yep, here we go.

00:52:44.480 --> 00:52:49.530 align:middle line:84%
So here's the original chorale
I'm asking you to work on.

00:52:49.530 --> 00:52:53.080 align:middle line:84%
And then I'm unlocking
something called implode(),

00:52:53.080 --> 00:52:57.390 align:middle line:84%
which you might find useful,
just for seeing a chorale on two

00:52:57.390 --> 00:52:58.270 align:middle line:90%
staves.

00:52:58.270 --> 00:53:01.600 align:middle line:84%
It might not be too useful
for you analytically.

00:53:01.600 --> 00:53:06.180 align:middle line:84%
And then what I've
done is given you

00:53:06.180 --> 00:53:08.620 align:middle line:90%
the first part of the answer--

00:53:08.620 --> 00:53:14.220 align:middle line:84%
how an answer, how I think
this might work with all

00:53:14.220 --> 00:53:18.150 align:middle line:90%
the non-chord tones labeled.

00:53:18.150 --> 00:53:25.720 align:middle line:84%
And then, second one, here is
after they've been removed.

00:53:25.720 --> 00:53:27.060 align:middle line:90%
So you have them all labeled.

00:53:27.060 --> 00:53:29.650 align:middle line:90%
Now you have all them removed.

00:53:29.650 --> 00:53:33.090 align:middle line:84%
And then the last
step, you might

00:53:33.090 --> 00:53:35.370 align:middle line:84%
be trying to figure out
that, actually, there's

00:53:35.370 --> 00:53:36.760 align:middle line:90%
some key changes in here.

00:53:36.760 --> 00:53:42.720 align:middle line:84%
So we move from A major to D
major to A major and so on.

00:53:42.720 --> 00:53:47.157 align:middle line:84%
Why have I given you these
intermediate steps, if this is

00:53:47.157 --> 00:53:48.365 align:middle line:90%
what you're trying to get to?

00:53:48.365 --> 00:53:51.540 align:middle line:84%
It's because you
have a larger team.

00:53:51.540 --> 00:53:54.950 align:middle line:84%
And so what I would
like is that somebody

00:53:54.950 --> 00:53:59.210 align:middle line:84%
can be working on part 4
while somebody else is working

00:53:59.210 --> 00:54:03.300 align:middle line:84%
on part 3, while somebody else
is working on part 2 and part 1.

00:54:03.300 --> 00:54:07.640 align:middle line:84%
So then what I'll say,
the last little thing

00:54:07.640 --> 00:54:11.060 align:middle line:84%
is just to show a little
preview of some of the things

00:54:11.060 --> 00:54:14.790 align:middle line:90%
that we might be doing later.

00:54:14.790 --> 00:54:18.030 align:middle line:84%
And I know it's not
on the right screen.

00:54:18.030 --> 00:54:19.140 align:middle line:90%
I can make that bigger.

00:54:19.140 --> 00:54:24.800 align:middle line:84%
This is something I've been
working on an automatic--

00:54:24.800 --> 00:54:29.750 align:middle line:84%
well, let's let it run first--
on an AI-based automatically

00:54:29.750 --> 00:54:32.720 align:middle line:84%
trying to do labeling
of Roman numerals

00:54:32.720 --> 00:54:37.680 align:middle line:84%
based on sets of pitches
and training data.

00:54:37.680 --> 00:54:40.310 align:middle line:84%
What I've done
is, right now, I'm

00:54:40.310 --> 00:54:44.890 align:middle line:84%
only having it work with
a few Roman numerals.

00:54:44.890 --> 00:54:47.290 align:middle line:84%
And always take a guess
when you're trying

00:54:47.290 --> 00:54:48.850 align:middle line:90%
to figure out what things are.

00:54:48.850 --> 00:54:53.180 align:middle line:84%
These, how many entries are
there in each of these arrays?

00:54:53.180 --> 00:54:56.210 align:middle line:84%
1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12.

00:54:56.210 --> 00:55:02.720 align:middle line:84%
So these are the pitch
classes above the tonic thing,

00:55:02.720 --> 00:55:04.780 align:middle line:90%
so that one has--

00:55:04.780 --> 00:55:07.000 align:middle line:90%
I can't even reach up there.

00:55:07.000 --> 00:55:13.390 align:middle line:84%
So one has the most entries in,
if you call that, C, C-sharp, D,

00:55:13.390 --> 00:55:16.390 align:middle line:90%
E-flat, E-- that's quite a bit--

00:55:16.390 --> 00:55:20.240 align:middle line:84%
F, F-sharp, almost
nothing, G, quite a bit.

00:55:20.240 --> 00:55:21.910 align:middle line:84%
And so this is
how many times you

00:55:21.910 --> 00:55:24.580 align:middle line:84%
see that chord
tone in everything

00:55:24.580 --> 00:55:28.420 align:middle line:84%
in our labeled training data
was labeled I, and so on.

00:55:28.420 --> 00:55:33.820 align:middle line:84%
For V, you see a lot of V,
scale degree 5, scale degree 7,

00:55:33.820 --> 00:55:37.840 align:middle line:84%
and scale degree 2, kind
of what you would expect.

00:55:37.840 --> 00:55:41.320 align:middle line:84%
And put everything
into a neural net

00:55:41.320 --> 00:55:44.820 align:middle line:84%
that I'm still trying to make
this a little bit better,

00:55:44.820 --> 00:55:45.960 align:middle line:90%
a little bit better.

00:55:45.960 --> 00:55:47.220 align:middle line:90%
Run it.

00:55:47.220 --> 00:55:49.490 align:middle line:90%
Hopefully, it's running.

00:55:49.490 --> 00:55:51.780 align:middle line:84%
You can see run it
through one time.

00:55:51.780 --> 00:55:54.300 align:middle line:84%
It's starting to
get 62% accurate.

00:55:54.300 --> 00:55:55.650 align:middle line:90%
Keep going up.

00:55:55.650 --> 00:55:59.440 align:middle line:84%
It stays at 62, 62,
62 quite a long time.

00:55:59.440 --> 00:56:01.470 align:middle line:90%
It jumps up to 67, 68.

00:56:01.470 --> 00:56:03.840 align:middle line:84%
Hopefully, it's
going pretty well.

00:56:03.840 --> 00:56:07.770 align:middle line:84%
Eventually, it gets
87, 88, 90, and so on.

00:56:07.770 --> 00:56:11.150 align:middle line:84%
So it is possible to
do this kind of thing

00:56:11.150 --> 00:56:15.290 align:middle line:84%
with today's
computational resources

00:56:15.290 --> 00:56:17.270 align:middle line:90%
kind of ending at around--

00:56:17.270 --> 00:56:20.720 align:middle line:84%
are we going to be able
to get to 99 today?

00:56:20.720 --> 00:56:21.720 align:middle line:90%
AUDIENCE: How big is it?

00:56:21.720 --> 00:56:23.470 align:middle line:84%
MICHAEL CUTHBERT: So
that's what I'm going

00:56:23.470 --> 00:56:24.600 align:middle line:90%
to get to in just a second.

00:56:24.600 --> 00:56:27.140 align:middle line:84%
So this-- oh, of
course, my computer

00:56:27.140 --> 00:56:29.150 align:middle line:84%
can barely handle
this while projecting.

00:56:29.150 --> 00:56:31.580 align:middle line:90%
I think I did 400.

00:56:31.580 --> 00:56:34.950 align:middle line:84%
Well, while it tries to
scroll down to the bottom,

00:56:34.950 --> 00:56:41.060 align:middle line:84%
the danger is this data
set took me years to get.

00:56:41.060 --> 00:56:42.410 align:middle line:90%
And it took years to put in.

00:56:42.410 --> 00:56:45.710 align:middle line:84%
This is the complete
piano sonatas of Mozart.

00:56:45.710 --> 00:56:47.450 align:middle line:90%
[VOCALIZING]

00:56:47.450 --> 00:56:51.800 align:middle line:84%
Complete piano sonatas
of Mozart, all labeled.

00:56:51.800 --> 00:56:57.350 align:middle line:84%
And when I divided it up into
half training, half test,

00:56:57.350 --> 00:57:00.130 align:middle line:84%
I still didn't have
enough information for it

00:57:00.130 --> 00:57:01.610 align:middle line:90%
to be able to get on.

00:57:01.610 --> 00:57:05.360 align:middle line:84%
So I'm dividing it into
90% training, 10% test.

00:57:05.360 --> 00:57:07.190 align:middle line:84%
And that seems to be
about what's there.

00:57:07.190 --> 00:57:11.290 align:middle line:84%
So the other thing
was when I decided,

00:57:11.290 --> 00:57:13.180 align:middle line:84%
oh, this sounded
like a fun project

00:57:13.180 --> 00:57:15.832 align:middle line:84%
for over the holiday
break, so I thought

00:57:15.832 --> 00:57:18.040 align:middle line:84%
I'd be able to present this
on the first day of class

00:57:18.040 --> 00:57:18.770 align:middle line:90%
or something.

00:57:18.770 --> 00:57:23.590 align:middle line:84%
I went in, and the entire
Roman numeral set could not

00:57:23.590 --> 00:57:27.110 align:middle line:84%
be trusted compared to the
encoding of the things,

00:57:27.110 --> 00:57:29.110 align:middle line:84%
because people
slightly disagreed

00:57:29.110 --> 00:57:33.550 align:middle line:84%
on where measure 14 was,
or where measure 113 was,

00:57:33.550 --> 00:57:38.000 align:middle line:84%
or this edition had
this part of the minuet.

00:57:38.000 --> 00:57:39.520 align:middle line:90%
The repeats were written out.

00:57:39.520 --> 00:57:41.500 align:middle line:84%
And they weren't-- so
I was going through.

00:57:41.500 --> 00:57:44.010 align:middle line:84%
And when I was spot checking,
the Roman numerals just

00:57:44.010 --> 00:57:46.710 align:middle line:84%
looked totally wrong
to me, or it would say,

00:57:46.710 --> 00:57:50.220 align:middle line:84%
Roman numeral placed
after end of piece.

00:57:50.220 --> 00:57:53.918 align:middle line:90%
And so, again, it was about--

00:57:53.918 --> 00:57:54.460 align:middle line:90%
I don't know.

00:57:54.460 --> 00:58:00.130 align:middle line:84%
It was about 3 hours a night
for about 3 weeks of just,

00:58:00.130 --> 00:58:01.390 align:middle line:90%
well, let's realign this one.

00:58:01.390 --> 00:58:02.020 align:middle line:90%
Let's realign.

00:58:02.020 --> 00:58:03.687 align:middle line:84%
Now, it was a little
bit less than that,

00:58:03.687 --> 00:58:05.550 align:middle line:90%
but about 2 weeks maybe.

00:58:05.550 --> 00:58:10.060 align:middle line:84%
So this ends up being one of the
dangers and why I'm pushing--

00:58:10.060 --> 00:58:11.580 align:middle line:84%
even though, I
think we're starting

00:58:11.580 --> 00:58:13.540 align:middle line:84%
to get-- how many epochs
did I do this time?

00:58:13.540 --> 00:58:14.740 align:middle line:90%
I must have changed it.

00:58:14.740 --> 00:58:17.400 align:middle line:90%
But we're getting pretty close.

00:58:17.400 --> 00:58:20.400 align:middle line:84%
And it takes a very long
time before the computer

00:58:20.400 --> 00:58:23.160 align:middle line:90%
is being able to get things up.

00:58:23.160 --> 00:58:26.850 align:middle line:84%
So these are some
of the reasons why

00:58:26.850 --> 00:58:28.960 align:middle line:84%
I'm going to teach you
some of these techniques.

00:58:28.960 --> 00:58:30.990 align:middle line:84%
But then I'm going
to encourage you not

00:58:30.990 --> 00:58:33.130 align:middle line:84%
to use them on your
final projects,

00:58:33.130 --> 00:58:37.270 align:middle line:84%
even though they are kind of
the coolest new thing going.

00:58:37.270 --> 00:58:38.160 align:middle line:90%
Great.

00:58:38.160 --> 00:58:39.180 align:middle line:90%
Any questions?

00:58:39.180 --> 00:58:39.680 align:middle line:90%
And sorry.

00:58:39.680 --> 00:58:41.055 align:middle line:84%
I'm not getting--
oh, here we go.

00:58:41.055 --> 00:58:43.480 align:middle line:90%
Finally, we get to the done.

00:58:43.480 --> 00:58:45.560 align:middle line:84%
And my computer
is still so slow.

00:58:45.560 --> 00:58:48.980 align:middle line:84%
Here's the mistakes
that it was making.

00:58:48.980 --> 00:58:50.710 align:middle line:90%
Oh, this time it only got there.

00:58:50.710 --> 00:58:55.210 align:middle line:84%
Last time, it got to
all but one correct.

00:58:55.210 --> 00:58:56.200 align:middle line:90%
Yep.

00:58:56.200 --> 00:59:00.490 align:middle line:84%
177 times it saw I.
It predicted it one.

00:59:00.490 --> 00:59:02.350 align:middle line:84%
One time it saw
it, and predicted

00:59:02.350 --> 00:59:08.240 align:middle line:84%
V. You can imagine that IV
and II have some confusion

00:59:08.240 --> 00:59:08.990 align:middle line:90%
with the computer.

00:59:08.990 --> 00:59:13.370 align:middle line:84%
And V and VII also
had some confusion.

00:59:13.370 --> 00:59:16.130 align:middle line:84%
VI, VI and IV have
some confusion.

00:59:16.130 --> 00:59:18.760 align:middle line:84%
So then the nice
thing was actually

00:59:18.760 --> 00:59:23.710 align:middle line:84%
going back the last time I did
this and looking at every place

00:59:23.710 --> 00:59:29.680 align:middle line:84%
that there was a confusion and
saying, oh, about half the time

00:59:29.680 --> 00:59:32.830 align:middle line:84%
I agreed with the
neural net and not

00:59:32.830 --> 00:59:35.430 align:middle line:90%
with the professional encoder.

00:59:35.430 --> 00:59:39.000 align:middle line:90%