, 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); })(); Hymn database captures attention of millenials - News & Stories | 麻豆区

麻豆区

Skip to main content

Calvin News

Hymn database captures attention of millenials

Fri, Jul 13, 2018
Connor Bechler

With more than 1.3 million hymns, 6,000 hymnals, and 700,000 users a month, Hymnary.org has grown from a small online collection of just 30 hymnals into the most expansive online hymn database in the world.

From humble beginnings

Started officially in July of 2008 by Calvin computer science professor Harry Plantinga as an offshoot of his Christian Classics Ethereal Library (CCEL) website, Hymnary.org was at first primarily intended for use by worship leaders and scholars.

When designing the site, Plantinga said, he asked himself, 鈥淲hat does a worship leader do? How do they go about their task? How will they choose hymns? What resources will they want when they come to a hymn?

鈥淭hinking about those tasks [led us to say] we need a search engine, and we need to provide resources like scores, recordings, and background information,鈥 he added.

However, more than half of all Hymnary.org users are now below the age of 34, and, according to Plantinga, the site鈥檚 use peaks at 10 a.m. Sunday morning. This suggests that Hymnary may also play a more active role in worship.

A bold vision

Plantinga has a simple explanation for the site鈥檚 success: 鈥淚t鈥檚 met a need.鈥

鈥淧eople are still using hymns and songs in worship, that鈥檚 a key part of worship,鈥 he said, 鈥測et people are moving away from hymnals; roughly speaking, half of churches project rather than using a hymnal in the pew.鈥 He views Hymnary.org as part of the changing approach to worship music: 鈥淚t鈥檚 congregational song translated into the twenty-first century.鈥

Plantinga has a bold vision for the future of Hymnary.org, including the implementation of machine learning techniques, better multilingual support, greater software versatility, and expanding the site鈥檚 currently existing FlexScore tool which allows users to modify the pitch, key, and representation of hymns.

A broad impact

A team of thirteen staff work with Plantinga on Hymnary.org and his other sites. Zach DeCook and Daniel Harold, two Calvin graduates and former student interns who are now full-time staff, have greatly enjoyed working on the Hymnary team.

DeCook described his experience as an intern positively: 鈥淚t was collaborative; I started by meeting with Dr. Plantinga and talking about what things I wanted to work on.鈥

He noted that 鈥渢here was a lot about computer science and about web development specifically that I didn鈥檛 actually know, and doing the internship I was able to learn these things without having to take a class.鈥

鈥淥ne of my favorite things about working for Hymnary is that I meet people all over the place who use Hymnary,鈥 said Harold, 鈥淚 recently went on a mission trip to Japan and the missionary who was hosting us there uses Hymnary.鈥

He added, 鈥淚t鈥檚 fun to be working on something that people are actually using, that鈥檚 actually helping people worship.鈥

A more in-depth look at Hymnary.org鈥檚 tenth anniversary and the organization can be found at .