March 21, 2019
Celebrating Johann Sebastian Bach
Go behind-the-scenes of today’s Doodle below!
Today we celebrate world renowned German composer and musician Johann Sebastian Bach with our first ever AI-powered Doodle! Made in partnership with the Google Magenta and Google PAIR teams, the Doodle is an interactive experience encouraging players to compose a two measure melody of their choice. With the press of a button, the Doodle then uses machine learning to harmonize the custom melody into Bach’s signature music style (or a Bach 80's rock style hybrid if you happen to find a very special easter egg in the Doodle...:)).
The first step in developing the Doodle? Creating a machine learning model to power it. Machine learning is the process of teaching a computer to come up with its own answers by showing it a lot of examples, instead of giving it a set of rules to follow as is done in traditional computer programming. The model used in today's Doodle was developed by Magenta Team AI Resident Anna Huang, who developed Coconet: a versatile model that can be used in a wide range of musical tasks—such as harmonizing melodies or composing from scratch (check out more of these technical details in today’s Magenta blog post).
Specifically, Coconet was trained on 306 of Bach’s chorale harmonizations. His chorales always have four voices, each carrying their own melodic line, while creating a rich harmonic progression when played together. This concise structure made them good training data for a machine learning model.
Next came our partners at PAIR who used TensorFlow.js to allow machine learning to happen entirely within the web browser (versus it running utilizing tons of servers, as machine learning traditionally does). For cases where someone’s computer or device might not be fast enough to run the Doodle using TensorFlow.js, the Doodle is also served with Google’s new Tensor Processing Units (TPUs), a way of quickly handling machine learning tasks in data centers— yet another Doodle first!
These components, combined with art and engineering from the Doodle team, helped create what you see today.
Johann Sebastian Bach was born in the small German town of Eisenach on this day in 1685 (under the old Julian calendar). He grew up in a large musical family: his father played multiple instruments and also worked as director of the town’s musicians. His eldest brother, also a musician, raised young Bach from the age of 10 after his father’s passing. Primarily known as an exceptional organist during his lifetime, Bach also understood how to build and repair the complex inner mechanisms of pipe organs (which are depicted in today’s interactive Doodle).
Composing music at a prolific pace (sometimes at the rate of one cantata per week!), Bach was a humble man who attributed his success to divine inspiration and a strict work ethic. He lived to see only a handful of his works published, but more than 1,000 that survived in manuscript form are now published and performed all over the world.
Bach’s reputation soared following the 19th century “Bach revival,” as the music world gained new appreciation for his innovative use of four-part harmony, modulations of key, and mastery of counterpoint and fugue. Perhaps the best measure of his legacy is his impact on other artists, ranging from classical to contemporary over the centuries.
Musicians weren’t the only ones affected by Bach’s music, however. After the Voyager 2 deep space probe launched, scientist and author Lewis Thomas suggested that the human race broadcast his music to the outermost reaches of the solar system. “I would vote for Bach, all of Bach,” he wrote. “We would be bragging, of course.”
Here’s to Bach!
Explore the life and legacy of Johann Sebastian Bach by visiting Google Arts & Culture.
Engineering Lead | Jacob Howcroft
Art Lead | Pedro Vergani
UX Design | Leon Hong
Producer | Colin Duffy
Engineering Support | Ben McMahan, José Montes, Brian Murray, Rebecca Thomas, Jordan Thompson
Marketing & Partnerships Lead | Perla Campos
Business Affairs Lead | Madeline Belliveau
Sound | Silas Hite
Writing support | Elena Skopetos
Doodle Team Leads | Jessica Yu, Brian Kaas, Ryan Germick
Volunteer Engineering Support | Raven Black, Luca Chiarandini, Stephanie Tung
Art Support | Mattias Breitholtz
QA | Sailaja Adapala, Soni Kumari, Sahithi Mullamuri
Google AI Teams
Program Manager | Lauren Hannah-Murphy
ML Research | Anna Huang, Curtis Hawthorne, Adam Roberts
TensorFlow.js Engineering | James Wexler, Ann Yuan, Daniel Smilkov, Nikhil Thorat
ML Serving Engineering | Haiming Bao, Christer Leusner, Alejandro Lince, Vinu Rajashekhar, Steven Ross, Sean Sechrist, Christina Sorokin
TPU Engineering | Todd Wang
Product Manager | Chris Han