, but this code // executes before the first paint, when

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Name that hymn - News & Stories | 鶹

Skip to main content

Spark

Name that hymn

Thu, Jul 01, 2010

Ever walk out of church with a song in your heart, the tune on your lips, but no words forthcoming to match the hymn’s melody?

Well, thanks to a new development at , if you can hum it, you can probably find it: playing just a handful of notes on the Web site’s virtual keyboard will launch a search of more than 3,000 hymn tunes housed in the site’s comprehensive database.

The virtual keyboard and ensuing melodic search is the newest feature of Hymnary.org, jointly sponsored by the and the (CCEL). The Web site was initiated in 2007 and is now, say its creators, the most complete database of hymns in the world.

Calvin junior Nat Burns, a and major, developed the keyboard and melodic search last summer while working for CCEL, of which Hymnary.org is a subsite.

Burns, , began the endeavor by reading and reviewing research papers written by others who had accomplished such a project. “I drew together what I liked and created a composite for the Web site,” he said. “At first it didn’t seem like I could complete a project like this, it seemed like you would need a team of people, but it came together pretty well.”

Comprehensive hymn database

The scope of the site goes well beyond the novel tune-search resource. Hymnary.org houses approximately 5,000 hymnals, one million hymn instances and 28,000 hymn tunes. The site incorporates the entire Dictionary of North American Hymnology, a 50-year-old project for which the goal was to index every hymnal printed in North America.

, a computer science professor at Calvin and director of CCEL, conceived and helped develop the site, assisted by Greg Scheer, music associate at the Calvin Institute of Christian Worship. Plantinga said that this new subsite advances the CCEL mission of offering worldwide access to classic Christian literature.

“Hymns enlighten and move us in ways the written word cannot,” said Plantinga. “It is important for worship leaders, scholars, researchers and others to be able to access and use them.”

Through the site it’s possible to search by text, tune, author or hymnal. At a recent demonstration of Hymnary.org, attendees were impressed by the ability to put in a topic or a scripture passage and have all of the related hymns pop up.

Assistance for worship leaders

“A typical worship leader might have several hymnals on their desk, and he or she would have to page through each of them to decide what songs to use for worship,” said Nyna Sykes, CCEL associate director. “With this site, they simply have to enter the topic, and all of the options available to them will come up. You can even limit the search by hymnals, so only hymns that he or she has access to will come up.

“Another amazing feature is the ability to instantly transpose pieces to another key,” she added.

Other elements of the site include the ability to search for and print lyrics; view, play and print scores; listen to audio files; read hymn stories and author biographies; download and upload arrangements, discuss and ask questions and search by many criteria.

Valuable research tool

Researchers also benefit from the site, which allows them to compare hymn publication dates and identify all of the versions of a particular hymn to delineate a “family tree of the hymn,” according to Plantinga. Both texts and tunes are revealing historical sources and used frequently by humanities scholars, he said.

CCEL, which , provides free access to pastors, worship leaders, scholars, teachers, students and others looking for classic Christian literature. Currently, there are more than 9 million users from more than 200 countries downloading the rough equivalent of 12 million books per year. Hymnary.org draws about 10 percent of that traffic, with about 500,000 page views a month.

With hymns, information about authors and media files constantly being updated and added, the dynamic site is continually growing.

“This project works well here at Calvin,” said Plantinga. “We have access to talented students who can help with it, and it serves the world, serves the church and fits in with the educational mission of the college.”