Advertisement

Researcher Uses Bits, Bytes and Bach for Program of Note

Share
Times Science Writer

Using the chorales of Johann Sebastian Bach as a model, an IBM researcher has taught a computer how to harmonize choral melodies.

Given a soprano melody line, the artificial intelligence program produces bass, alto and tenor parts in conventional musical notation that can be read on a computer screen, printed out and performed.

While the chorales don’t rival those of the 18th-Century German composer, “It’s pretty amazing how well the program composes,” said Brad Garton, director of computer music at Columbia University in New York City. “If the computer were taking my composition course, I would give it an A.”

Advertisement

The chorales are short pieces, usually no more than 20 bars long, that are meant to be sung by a chorus of male and female voices. Four musical parts are sung simultaneously; men sing bass and tenor parts and women sing alto and soprano parts.

Bach wrote more than 300 such chorales based on Lutheran choral melodies. He harmonized the melodies, which are normally sung by sopranos, by adding the other three parts. The artificial intelligence system does the same thing by following a set of rules developed by IBM’s Kemal Ebcioglu.

Ebcioglu, who holds a master’s degree in music composition as well as a doctorate in computer science, analyzed Bach’s chorales to come up with 350 rules that govern the harmonization process. These rules cover such things as the harmonic outline of the chorale and the individual melodic lines of the voices. The program then follows these rules as it composes each part note by note.

First, the computer selects all notes that are “correct” according to standard rules for harmonization, said Ebcioglu, who works at IBM’s Watson Research Center in Yorktown Heights, N.Y. Then it uses the rules developed by him to choose the note that is most “desirable.”

“Normal composers do not just use correctness,” he said. “They use much additional knowledge--what we call talent. Talent is not programmable, but if you substitute a large bit of common-sense musical heuristics (recommendations), the results are much better than if you simply use the correct (notes).”

Choosing among all the possible desirable possibilities for each note is a mammoth task. Ebcioglu’s unique contribution, in addition to analyzing the Bach chorales, is the development of a special programming language that speeds the analytical process and reduces the time required. A typical 20-bar harmonization now requires about 30 minutes of time on a mainframe computer and involves about 23 billion individual steps.

Advertisement

‘Sounds Like Some Good Classical Music’

And how good are the chorales? They have some small defects, Garton said, but “I think the average listener would think, ‘That sounds like some good classical music.’ ”

When he used the same starting melodies as Bach, there was “occasionally a great degree of similarity” in the harmonizations, Ebcioglu said. “In other cases, the program’s harmonizations were less austere than Bach’s. That’s kind of a reflection of my own idiosyncrasies.”

The technique has no immediate commercial applications. “The Lutheran Church has stopped buying chorales,” Ebcioglu noted. But the programming language he developed may be useful in speeding up other types of computer programs, including both games and business programs, where selections must be made from among a large number of alternatives.

Meanwhile, Garton--who hopes to use the program as a teaching tool in his composition classes--has not actually heard the harmonizations. Rather, he has read the score with a practiced eye.

“But we’re planning to get some groups together and try (singing) some of them after school starts this fall,” he said.

Advertisement