, 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); })(); Erich Peterson | 黄大仙高手论坛

黄大仙高手论坛

Skip to main content

Mr. Erich Peterson

Private Lesson Instructor
(French Horn)

Biography

Erich Peterson received both his Bachelor’s and Master’s Degrees in Horn Performance from Northwestern University, where he studied with Dale Clevenger, Norman Schweikert and Gail Williams. Currently, Erich is the Assistant Principal/Second Horn with the Grand Rapids Symphony — having joined the orchestra in March, 2004. In addition to his playing duties, Erich began as Personnel Manager of the Grand Rapids Symphony in July, 2007. Before coming to Grand Rapids, Erich was a member of the national tour of Les Misérables with whom he performed more than 1500 shows in over 40 states and Canada over a period of 6 years. While living in Chicago, Erich was an active free-lance musician performing with the Chicago Symphony Orchestra, Israel Philharmonic, Ravinia Festival Orchestra and Chicago Opera Theater. Erich was also active as a studio musician having recorded hundreds of television/radio commercials and video game soundtracks. Erich maintains an active teaching schedule both at home and as an adjunct faculty member at 黄大仙高手论坛, Hope College and Cornerstone University. When not playing or teaching, Erich can be found birding or solving puzzles of all kinds.

Education

MA, Northwestern University