[…] The invited talk of the afternoon is David Cope, an AI programmer/artist and professor. Cope, faced with a bad case of composer’s block, decided one day that instead of writing an opera by hand he’d try to get a computer to construct Bach’s chorales for him! The chorales had a lot of competing rules, but there are a lot of examples and the structure is generally well understood. For example, each has independent running music lines, but there’s always a repeating note because they are 3 chords for 4 parts. So he wrote a program that followed the rules and came up with something that seemed to work. But it was missing something. And he wanted to handle different rules as well. He really just wanted to analyze the rules arising from a database of music. As simply as possible. So he started over, creating a Bach database, organizing it using grouping only the chords that came from the same previous note. So as the program choose notes, it could search and know where it could go next. The rules are embedded in the data organization. And he noticed Bach doesn’t follow the rules! Well, only 5% of the time. (Take that my music theory teacher – I get to break a few too!) His program’s algorithm – Eliza - randomly samples all of Bach’s chorales. It’s never breaking the rules, because it’s only using Bach’s notes. There’s no sophisticated knowledge. Just Bach. Can’t get more expert knowledge then that. The results were better. But there were still problems.
First, his program created phrases of uncertain lengths and direction-less music. No place to take a breath, no shape or form. So the program needs a model to limit phrase length. At first he tried to program form and create rules in the code. But then he tried went back to the data sampling the same way, pulling out models of a Bach phrase. This whole thing really reminds me of Encounter Manager and story arcs – matching story beats rather then music beats from data, so to speak. To measure phrase, Eliza just matches the first and last chord and Bach’s overall phrase length and then just fills individual notes in as above. He then added overall form, modulation, key changes, balance, theme, shape, etc. He just scaled bigger and bigger. Recursively building it up. I’m sure Lisp was great for this. What’s particularly interesting here is that the singer’s breath time comes from Bach’s own sense of timing, automatically, not the program’s inherent design.. He’s put 5000 of these songs on his website. He can’t even listen to them all.
Pushing beyond Bach chorales, most music doesn’t have 4 voices without rests. Different instruments, textures, styles, volumes, form. Can we emulate all that? We’d have to track character , section, cadence, variation and repeats and more all within the beats themselves. Cope gave it a shot. The Rachmaninoff piano piece he shows here is stunningly pretty, with incredible variation given his small sample set. “It means, Rachmaninoff wasn’t dead.” Poetic. The meaning of art recreated procedurally, beautifully. He does all this data by hand, meticulously copying and checking each note.
He didn’t start composing his opera until a month and a half before the premiere, and he completed it in 3 days, to the best reviews of his life.
A question whether he’s tried to do this with text. He tried it to create a world anthem, with music. In essence, it worked, although he didn’t like the data. Close to being deemed the world anthem by the UN, but it’s a terrible piece of music. The whole program right now is about 20,000 lines of code, optimized down. It’s past the “Turing Test” with 9 out of 10 faculty at a school of music. He’s had a lot of trouble getting it performed, because people know he can always make more – there’s no sense of rarity, of special. The program isn’t rare, so it’s not valuable to perform. So he has destroyed the databases. It takes a long time and a lot of work to put the databases together because they have to match the style you are going for. And es, they perform it now a bit more, but in a sense the program is dead. We took a vote on if it is creative. I voted yes – I’ve done it before by hand, and I believe it’s little different. Cope says he believes it’s not and he’s written a book on that question. I ask him about the difficulty caused when the database sample size, the expert knowledge, is too small, and he says that it’s definitely an issue, but it’s very case-specific – some data is easier then other because it’s significantly different enough from itself, while some just falls apart. But there’s no shortcut for the sample size problems the encounter approach can run into, unfortunately.
„