Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<!--{{{-->
<div class='header' role='banner' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
Follow the internal links to navigate this TiddlyWiki interface, most of which starts out hidden. Each item (or tiddler) opens and closes separately.
!!Tips for browsing:
* [[Bold links|News]] reveal other tiddlers; [[plain links|http://www.whatsmyip.org/random_websites/random/]] whisk you away on the web.
* The search bar at the upper right probes all tiddlers, whether open or closed.
* The entire site is [[just one file|http://mechanicsofhearing.org/mohdl.html]] (images excepted). Thus, using your browser's "Back" button will //not// return you to previously viewed tiddlers; //use the internal links instead.//
* Tiddlers can be closed using the @@bgcolor(#ddd):close@@ and @@bgcolor(#ddd):close others@@ buttons located atop every tiddler or the @@bgcolor(#ddd):close all@@ button below the search bar. /%[[plain links|http://www.randomwebsite.com/cgi-bin/../cgi-bin/random.pl]%/
!!Editorial and Contents
Inaugural editorial  [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Dallos-Editorial-AudNeurosci-1994.pdf]]
Contents of all volumes (I&ndash;III) [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V1-3 Contents.pdf]]
!!Individual Issues
Each issue is about 60 Mb in size; we recommend downloading them to your hard drive rather than opening them directly in a browser.
!!!Volume I
*Aud Neurosci 1(1):1&ndash;109 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V1 N1 pp1-109.pdf]]
*Aud Neurosci 1(2):111&ndash;206 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V1 N2 pp111-206.pdf]]
*Aud Neurosci 1(3):207&ndash;319 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V1 N3 pp207-319.pdf]]
*Aud Neurosci 1(4):321&ndash;417 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V1 N4 pp321-417.pdf]]
!!!Volume II
*Aud Neurosci 2(1):1&ndash;96 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V2 N1 pp1-96.pdf]]
*Aud Neurosci 2(2):97&ndash;193  [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V2 N2 pp97-193.pdf]]
*Aud Neurosci 2(3):195&ndash;288 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V2 N3 pp195-288.pdf]]
*Aud Neurosci 2(4):289&ndash;392 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V2 N4 pp289-392.pdf]]
!!!Volume III
*Aud Neurosci 3(1):1&ndash;99 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V3 N1 pp1-99.pdf]]
*Aud Neurosci 3(2):101&ndash;214 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V3 N2 pp101-214.pdf]]
*Aud Neurosci 3(3):215&ndash;334 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V3 N3 pp215-334.pdf]]
*Aud Neurosci 3(4):335&ndash;433 [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Auditory Neuroscience V3 N4 pp335-433.pdf]]
!!Articles in Volume I
#Yang L, Pollak GD. Binaural inhibition in the dorsal nucleus of the lateral lemniscus of the mustache bat affects responses for multiple sounds. //Aud Neurosci// 1994;1:1&ndash;17. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Yang-Pollak-AudNeurosci-1994.pdf]]
#Ohlemiller KK, Kanwal JS, Butman JA, Suga N. Stimulus design for auditory neuroethology: Synthesis and manipulation of complex communication sounds. //Aud Neurosci// 1994;1:19&ndash;37. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Ohlemiller-etal-AudNeurosci-1994.pdf]]
#Schreiner CE, Calhoun BM. Spectral envelope coding in cat primary auditory cortex: Properties of ripple transfer functions. //Aud Neurosci// 1994;1:39&ndash;61. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Schreiner-Calhoun-AudNeurosci-1994.pdf]]
#Solc CK, Derfler BH, Duyk GM, Corey DP. Molecular cloning of myosins from the bullfrog saccular macula: A candidate for the hair cell adaptation motor. //Aud Neurosci// 1994;1:63&ndash;75. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Solc-etal-AudNeurosci-1994.pdf]]
#Mills DM, Norton SJ, Rubel EW. Development of active and passive mechanics in the mammalian cochlea. //Aud Neurosci// 1994;1:77&ndash;99. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Mills-etal-AudNeurosci-1994.pdf]]
#Marcus DC, Liu, Shiga N, Wangemann P. N-ethylmaleimide stimulates and inhibits ion transport in vestibular dark cells of the gerbil. //Aud Neurosci// 1994;1:101&ndash;109. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Marcus-etal-AudNeurosci-1994.pdf]]
#Li L, Forge A. Cultured explants of the vestibular sensory epithelia from adult guinea pigs and effects of gentamicin: A model for examination of hair cell loss and epithelial repair mechanisms. //Aud Neurosci// 1995;1:111&ndash;125. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Li-Forge-AudNeurosci-1995.pdf]]
#Shofner WP, Yost WA. Discrimination of rippled-spectrum noise from flat-spectrum wideband noise by chinchillas. //Aud Neurosci// 1995;1:127&ndash;138. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Shofner-Yost-AudNeurosci-1995.pdf]]
#Murugasu E, Russell IJ. Salicylate ototoxicity: The effects on basilar membrane displacement, cochlear microphonics and neural responses in the basal turn of the guinea pig cochlea. //Aud Neurosci// 1995;1:139&ndash;150. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Murugasu-Russell-AudNeurosci-1995.pdf]]
#Doucet JR, Relkin EM. The perstimulus compound action potential: A new method for recording a compound potential from the chinchilla auditory nerve. //Aud Neurosci// 1995;1:151&ndash;168. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Doucet-Relkin-AudNeurosci-1995.pdf]]
#Brown AM, Sheppard SL, Russell PT. Differences between neonate and adult cochlear mechanical responses. //Aud Neurosci// 1995;1:169&ndash;181. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Brown-etal-AudNeurosci-1995.pdf]]
#Simmons DD, Bertolotto C, Leong M. Synaptic ultrastructure within the amphibian papilla of Rana pipiens pipiens: Rostrocaudal differences. //Aud Neurosci// 1995;1:183&ndash;193. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Simmons-etal-AudNeurosci-1995.pdf]]
#Schwartz JJ, Gerhardt HC. Directionality of the auditory system and call pattern recognition during acoustic interference in the gray tree frog, Hyla versicolor. //Aud Neurosci// 1995;1:195&ndash;206. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Schwartz-Gerhardt-AudNeurosci-1995.pdf]]
#Montgomery JC, Coombs S, Conley RA, Bodznick D. Hindbrain sensory processing in lateral line, electrosensory and auditory systems: A comparative overview of anatomical and functional similarities. //Aud Neurosci// 1995;1:207&ndash;231. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Montgomery-etal-AudNeurosci-1995.pdf]]
#Shamma SA, Versnel H, Kowalski N. Ripple analysis in ferret primary auditory cortex. I. Response characteristics of single units to sinusoidally rippled spectra. //Aud Neurosci// 1995;1:233&ndash;254. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Shamma-etal-AudNeurosci-1995.pdf]]
#Shamma SA, Versnel H. Ripple analysis in ferret primary auditory cortex. II. Prediction of unit responses to arbitrary spectral profiles. //Aud Neurosci// 1995;1:255&ndash;270. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Shamma-Versnel-AudNeurosci-1995.pdf]]
#Versnel H, Kowalski K, Shamma SA. Ripple analysis in ferret primary auditory cortex. III. Topographic distribution of ripple response parameters. //Aud Neurosci// 1995;1:271&ndash;285. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Versnel-etal-AudNeurosci-1995.pdf]]
#Feliciano M, Saldaña E, Mugnaini E. Direct projections from the rat primary auditory neocortex to nucleus sagulum, paralemniscal regions, superior olivary complex and cochlear nuclei. //Aud Neurosci// 1995;1:287&ndash;308. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Feliciano-etal-AudNeurosci-1995.pdf]]
#Russell IJ, Schauz C. Salicylate ototoxicity: Effects on the stiffness and electromotility of outer hair cells isolated from the guinea pig cochlea. //Aud Neurosci// 1995;1:309&ndash;319. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Russell-Schauz-AudNeurosci-1995.pdf]]
#Duncan RK, Hernandez HN, Saunders JC. Relative stereocilia motion of chick cochlear hair cells during high-frequency water-jet stimulation. //Aud Neurosci// 1995;1:321&ndash;329. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Duncan-etal-AudNeurosci-1995.pdf]]
#Liu J, Kozakura K, Marcus DC. Evidence for purinergic receptors in vestibular dark cell and strial marginal cell epithelia of the gerbil. //Aud Neurosci// 1995;1:331&ndash;340. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Liu-etal-AudNeurosci-1995.pdf]]
#Dechesne CJ, Griffoin JM, Mayeux V, Fabbrizio E, Pons F. Identification and immunocytochemical localization of utrophin and dystrophin products in the rat peripheral vestibular system. //Aud Neurosci// 1995;1:341&ndash;349. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Dechesne-etal-AudNeurosci-1995.pdf]]
#Cody AR, Russell IJ. Time varying voltage responses of mammalian hair cells to isoamplitude acoustic stimulation. //Aud Neurosci// 1995;1:351&ndash;361. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Cody-Russell-AudNeurosci-1995.pdf]]
#Heil P, Schulze H, Langner G. Ontogenetic development of periodicity coding in the inferior colliculus of the Mongolian gerbil. //Aud Neurosci// 1995;1:363&ndash;383. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Heil-etal-AudNeurosci-1995.pdf]]
#May BJ, McQuone SJ. Effects of bilateral olivocochlear lesions on pure-tone intensity discrimination in cats. //Aud Neurosci// 1995;1:385&ndash;400. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/May-McQuone-AudNeurosci-1995.pdf]]
#Fritzsch B, Silos-Santiago I, Smeyne R, Fagan AM, Barbacid M. Reduction and loss of inner ear innervation in trkB and trkC receptor knockout mice: A whole mount DiI and SEM analysis. //Aud Neurosci// 1995;1:401&ndash;417. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Fritzsch-etal-AudNeurosci-1995.pdf]]
!!Articles in Volume II
#Henson MM, Rübsamen R. The postnatal development of tension fibroblasts in the spiral ligament of the horseshoe bat, Rhinolophus rouxi. //Aud Neurosci// 1996;2:3&ndash;13. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Henson-Rubsamen-AudNeurosci-1996.pdf]]
#Robertson D. Physiology and morphology of cells in the ventral nucleus of trapezoid body and rostral periolivary regions of the rat superior olivary complex studied in slices. //Aud Neurosci// 1996;2:15&ndash;31. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Robertson-AudNeurosci-1996.pdf]]
#Dechesne CJ, Keller A. Differential alpha enolase immunoreactivity in the two neuron types of the rat spiral ganglion during postnatal development. Comparison with neurofilament protein immunoreactivity. //Aud Neurosci// 1996;2:33&ndash;46. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Dechesne-Keller-AudNeurosci-1996.pdf]]
#Rothman JS, Young ED. Enhancement of neural synchronization on computational models of ventral cochlear nucleus bushy cells. //Aud Neurosci// 1996;2:47&ndash;62. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Rothman-Young-AudNeurosci-1996.pdf]]
#~McNiven AI, Yuhas WA, Fuchs PA. Ionic dependence and agonist preference of an acetylcholine receptor in hair cells. //Aud Neurosci// 1996;2:63&ndash;77. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/McNiven-etal-AudNeurosci-1996.pdf]]
#Eggermont J. How homogeneous is cat primary auditory cortex? Evidence from simultaneous single-unit recordings. //Aud Neurosci// 1996;2:79&ndash;96. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Eggermont-AudNeurosci-1996a.pdf]]
#Stanton SG, Harrison RV. Abnormal cochleotopic organization in the auditory cortex of cats reared in a frequency augmented environment. //Aud Neurosci// 1996;2:97&ndash;107. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Stanton-Harrison-AudNeurosci-1996.pdf]]
#Simmons AM, Shen Y, Sanderson MI. Neural and computational basis for periodicity extraction in frog peripheral auditory system. //Aud Neurosci// 1996;2:109&ndash;133. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Simmons-etal-AudNeurosci-1996.pdf]]
#~McGuirt JP, Schmiedt RA, Schulte BA. Na,K-ATPase and carbonic anhydrase expression in the developing gerbil cochlea. //Aud Neurosci// 1996;2:135&ndash;144. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/McGuirt-etal-AudNeurosci-1996.pdf]]
#Preyer S, Renz S, Hemmert W, Zenner HP, Gummer AW. Receptor potential of outer hair cells isolated from base to apex of the adult guinea-pig cochlea: Implications for cochlear tuning mechanisms. //Aud Neurosci// 1996;2:145&ndash;157. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Preyer-etal-AudNeurosci-1996.pdf]]
#Ruggero MA, Rich NC, Shivapuja BG, Temchin AN. Auditory-nerve responses to low-frequency tones: Intensity dependence. //Aud Neurosci// 1996;2:159&ndash;185. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Ruggero-etal-AudNeurosci-1996a.pdf]]
#Wangemann W. Ca2+-dependent release of ATP from the organ of Corti measured with a luciferin-luciferase bioluminescence assay. //Aud Neurosci// 1996;2:187&ndash;192. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Wangemann-AudNeurosci-1996.pdf]]
#Russell IJ, Schauz C. Authors' corrigendum. Salicylate ototoxicity: Effects on the stiffness and electromotility of outer hair cells isolated from the guinea pig cochlea. //Aud Neurosci// 1996;2:193. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Russell-Schauz-AudNeurosci-1996.pdf]]
#Roberson DW, Kreig CS, Rubel EW. Light microscopic evidence that direct transdifferentiation gives rise to new hair cells in regenerating avian auditory epithelium. //Aud Neurosci// 1996;2:195&ndash;205. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Roberson-etal-AudNeurosci-1996.pdf]]
#Cooper NP, Rhode WS. Fast travelling waves, slow travelling waves and their interactions in experimental studies of apical cochlear mechanics. //Aud Neurosci// 1996;2:207&ndash;217. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Cooper-Rhode-AudNeurosci-1996a.pdf]]
#Brughera AR, Stutman ER, Carney LH, Colburn HS. A model with excitation and inhibition for cells in the medial superior olive. //Aud Neurosci// 1996;2:219&ndash;233. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Brughera-etal-AudNeurosci-1996.pdf]]
#Aponte JE, Kotak VC, Sanes DH. Decreased synaptic inhibition leads to dendritic hypertrophy prior to the onset of hearing. //Aud Neurosci// 1996;2:235&ndash;240. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Aponte-etal-AudNeurosci-1996.pdf]]
#Yao W, Godfrey DA. Autoradiographic distribution of muscarinic acetylcholine receptor subtypes in rat cochlear nucleus. //Aud Neurosci// 1996;2:241&ndash;255. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Yao-Godfrey-AudNeurosci-1996.pdf]]
#Lu Z, Fay RF. Two-tone interaction in primary afferents and midbrain neurons of the goldfish, Carassius auratus. //Aud Neurosci// 1996;2:257&ndash;273. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Lu-Fay-AudNeurosci-1996.pdf]]
#Le Prell G, Sachs M, May B. Representation of vowel-like spectra by discharge rate responses of individual auditory-nerve fibers. //Aud Neurosci// 1996;2:275&ndash;288. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Le Prell-etal-AudNeurosci-1996.pdf]]
#Cooper NP, Rhode WS. Publisher's erratum. Fast travelling waves, slow travelling waves and their interactions in experimental studies of apical cochlear mechanics. //Aud Neurosci// 1996;2:289&ndash;299. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Cooper-Rhode-AudNeurosci-1996a.pdf]]
#Xue S, Mountain DC, Hubbard AE. Electrically-evoked otoacoustic emissions: Direct comparisons with basilar membrane motion. //Aud Neurosci// 1996;2:301&ndash;308. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Xue-etal-AudNeurosci-1996.pdf]]
#Eggermont J. Differential maturation rates for response parameters in cat primary auditory cortex. //Aud Neurosci// 1996;2:309&ndash;327. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Eggermont-AudNeurosci-1996b.pdf]]
#Ruggero MA, Rich NC, Recio A. The effect of intense acoustic stimulation on basilar-membrane vibrations. //Aud Neurosci// 1996;2:329&ndash;345. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Ruggero-etal-AudNeurosci-1996b.pdf]]
#Zidanic M, Fuchs PA. Synapsin-like immunoreactivity in the chick cochlea: Specific labeling of efferent nerve terminals. //Aud Neurosci// 1996;2:347&ndash;362. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Zidanic-Fuchs-AudNeurosci-1996.pdf]]
#Murugasu E, Russell IJ. The role of calcium on the effects of intracochlear acetylcholine perfusion on basilar membrane displacement in the basal turn of the guinea pig cochlea. //Aud Neurosci// 1996;2:363&ndash;376. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Murugasu-Russell-AudNeurosci-1996.pdf]]
#Fay RF, Chronopoulos M, Patterson RD. The sound of a sinusoid: Perception and neural representations in the goldfish (Carassius auratus). //Aud Neurosci// 1996;2:377&ndash;392. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Fay-etal-AudNeurosci-1996.pdf]]
!!Articles in Volume III
#Formby C, Sherlock LP, Forrest TG. An asymmetric roex filter model for describing detection of silent temporal gaps in sinusoidal markers. //Aud Neurosci// 1996;3:1&ndash;20. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Formby-etal-AudNeurosci-1996.pdf]]
#Forrest TG, Formby C. Detection of silent temporal gaps in sinusoidal markers simulated with a single-channel envelope detector model. //Aud Neurosci// 1996;3:21&ndash;33. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Forrest-Formby-AudNeurosci-1996.pdf]]
#Heinz MG, Goldstein MH Jr, Formby C. Temporal gap detection thresholds in sinusoidal markers simulated with a multi-channel, multi-resolution model of the auditory periphery. //Aud Neurosci// 1996;3:35&ndash;56. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Heinz-etal-AudNeurosci-1996.pdf]]
#Kaltenbach JA, McCaslin DL. Increases in spontaneous activity in the dorsal cochlear nucleus following exposure to high intensity sound: A possible neural correlate of tinnitus. //Aud Neurosci// 1996;3:57&ndash;78. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Kaltenbach-McCaslin-AudNeurosci-1996.pdf]]
#Nakajima HH, Olson ES, Mountain DC, Hubbard AE. Acoustic overstimulation enhances low frequency electrically-evoked otoacoustic emissions and reduces high-frequency emissions. //Aud Neurosci// 1996;3:79&ndash;99. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Nakajima-etal-AudNeurosci-1996.pdf]]
#Rhode WS, Cooper NP. Nonlinear mechanics in the apical turn of the chinchilla cochlea in vivo. //Aud Neurosci// 1996;3:101&ndash;121. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Rhode-Cooper-AudNeurosci-1996.pdf]]
#Cooper NP, Rhode WS. Two-tone suppression in apical cochlear mechanics.  //Aud Neurosci// 1996;3:123&ndash;134. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Cooper-Rhode-AudNeurosci-1996b.pdf]]
#May BJ, Huang A, Le Prell G, Hienz RD. Vowel formant frequency discrimination in cats: Comparison of auditory nerve representations and psychophysical thresholds. //Aud Neurosci// 1996;3:135&ndash;162. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/May-etal-AudNeurosci-1996.pdf]]
#Furuta H, Luo L, Ryan AF. Identification of genes expressed in developing rat cochlea just prior to the onset of function using differential display. //Aud Neurosci// 1996;3:163&ndash;177. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Furuta-etal-AudNeurosci-1996.pdf]]
#Chen GD, Nuding SC, Narayan SS and Sinex DG. Responses of single neurons in the chinchilla inferior colliculus to consonant-vowel syllables differing in voice onset time. //Aud Neurosci// 1996;3:179&ndash;198. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Chen-etal-AudNeurosci-1996.pdf]]
#Manley GA. Ontogeny of frequency mapping in the peripheral auditory system of birds and mammals: A critical review. //Aud Neurosci// 1996;3:199&ndash;214. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Manley-AudNeurosci-1996.pdf]]
#Shen Z, Marcus DC, Sunose H, Chiba T, Wangemann P. IsK channel in strial marginal cells: Voltage-dependence, ion-selectivity, inhibition by 293B and sensitivity to clofilium. //Aud Neurosci// 1997;3:215&ndash;230. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Shen-etal-AudNeurosci-1997.pdf]]
#Bodnar DA, Vrieslander JD. The contribution of changes in stimulus temporal features and peripheral nonlinearities to the phase sensitivity of auditory afferents in the bullfrog (Rana catesbeiana). //Aud Neurosci// 1997;3:231&ndash;254. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Bodnar-Vrieslander-AudNeurosci-1997.pdf]]
#Liberman MC, Chesney CP, Kujawa SG. Effects of selective inner hair cell loss on DPOAE and CAP in carboplatin-treated chinchillas. //Aud Neurosci// 1997;3:255&ndash;268. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Liberman-etal-AudNeurosci-1997.pdf]]
#Condon CJ, Galazyuk A, White KR, Feng AS. Neurons in the auditory cortex of the little brown bat exhibit selectivity for complex amplitude-modulated signals that mimic echoes from fluttering insects. //Aud Neurosci// 1997;3:269&ndash;287. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Condon-etal-AudNeurosci-1997.pdf]]
#Moore BCJ, Glasberg BR. A model of loudness perception applied to cochlear hearing loss. //Aud Neurosci// 1997;3:289&ndash;311. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Moore-Glasberg-AudNeurosci-1997.pdf]]
#Köppl C. Number and axon calibres of cochlear afferents in the barn owl. //Aud Neurosci// 1997;3:313&ndash;334. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Koppl-AudNeurosci-1997.pdf]]
#Adams JC. Projections from octopus cells of the posteroventral cochlear nucleus to the ventral nucleus of the lateral lemniscus in cat and human. //Aud Neurosci// 1997;3:335&ndash;350. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Adams-AudNeurosci-1997.pdf]]
#Weiss TF, Freeman DM. Equilibrium behavior of an isotropic polyelectrolyte gel model of the tectorial membrane: The role of fixed charges. //Aud Neurosci// 1997;3:351&ndash;361. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Weiss-Freeman-AudNeurosci-1997.pdf]]
#Freeman DM, Hattangadi SM, Weiss TF. Osmotic responses of the isolated mouse tectorial membrane to changes in pH. //Aud Neurosci// 1997;3:363&ndash;375. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Freeman-etal-AudNeurosci-1997.pdf]]
#de Boer E. Connecting frequency selectivity and nonlinearity for models of the cochlea. //Aud Neurosci// 1997;3:377&ndash;388. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/de Boer-AudNeurosci-1997.pdf]]
#Narins PM, Benedix JH Jr, Moss F. Can increasing temperature improve information transfer in the anuran peripheral auditory system? //Aud Neurosci// 1997;3:389&ndash;400. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Narins-etal-AudNeurosci-1997.pdf]]
#Yost WA, Sheft S. Temporal modulation transfer functions for tonal stimuli: Gated versus continuous conditions. //Aud Neurosci// 1997;3:401&ndash;414. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Yost-Sheft-AudNeurosci-1997.pdf]]
#Ylikoski J, Pirvola U, Zhai S, Eriksson U, Solin ML, Miettinen A. Aminoglycoside ototoxicity: High affinity receptors are expressed in secretory epithelia. //Aud Neurosci// 1997;3:415&ndash;424. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Ylikoski-etal-AudNeurosci-1997.pdf]]
#Popelar J, da Costa DL, Erre JP, Avan P, Aran JM. Contralateral suppression of the ensemble background activity of the auditory nerve in awake guinea pigs: Effects of gentamicin. //Aud Neurosci// 1997;3:425&ndash;433. [img[pdf|http://mechanicsofhearing.org/mohdl/pdf.gif][http://mechanicsofhearing.org/mohdl/pdfs/AN/Popelar-etal-AudNeurosci-1997.pdf]]
This section of the [[MoH Digital Library|Mechanics of Hearing Digital Library]] contains searchable pdfs of all twelve issues of ''Auditory Neuroscience,''  a now-defunct journal published during the years 1994&ndash;1997.
<<tabs txtFavourite
"Contents" "Contents" [[Aud Neurosci Contents]]
"Volume I" "Vol I" [[Aud Neurosci Vol I]]
"Volume II" "Vol II" [[Aud Neurosci Vol II]]
"Volume III" "Vol III" [[Aud Neurosci Vol III]]
"Issues" "Issues" [[Aud Neurosci Issues]]
>>
Background: #fff
Foreground: #000
PrimaryPale: #eee
PrimaryLight: #18f
PrimaryMid: #888
PrimaryDark: #222
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #b43
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
CASColorA: #fff
CASColorB: #fff
CASLightGray: #eee
CASMidGray: #888
CASDarkGray: #555
CASDarkerGray: #333
If you have contributions, comments, or suggestions, please contact us at <<email mohdl at mechanicsofhearing dot org "?subject=MoHDL referral">>.
@@margin-left:.5em;<<slider chkContents SideBarTabs "contents »" "Show list of tiddlers">>@@
{{{
// Specify your account number here!
_uacct = "UA-3390286-4";

// CustomTracker as a namespace for tracking related functions
var CustomTracker = {
// store a reference to the original displayTiddler function
displayTiddler: story.displayTiddler
};

CustomTracker.track = function() {
if (readOnly) {
urchinTracker.apply(this, arguments);
}
};

CustomTracker.trackAndDisplayTiddler = function(srcElement, titles) {
// log with the tracker
CustomTracker.track('/' + titles);
// call the original displayTiddler function
CustomTracker.displayTiddler.apply(this,arguments);
};

// replace the default displayTiddler function with a tracking version
story.displayTiddler = CustomTracker.trackAndDisplayTiddler;

// Call once for the initial page load
CustomTracker.track();
}}}
[[Mechanics of Hearing Digital Library]]
version.extensions.email = {major: 0, minor: 1, revision: 2, date: new Date("Oct 15, 2005")};
config.macros.email = {}
config.macros.email.handler = function(place,macroName,params)
{
var temp = params.join(" ");
data = temp.split("?");
var recipient = data[0];
recipient = recipient.replace(" at ","@").replace(" dot ",".","g");
recipient = recipient.replace(/\s/g,"");
var optional = data[1] ? "?" + data[1] : "";
var theLink = createExternalLink(place,"ma"+"il"+"to:"+recipient+optional);
theLink.appendChild(document.createTextNode(recipient))
}
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
/***
|''Name:''|LegacyStrikeThroughPlugin|
|''Description:''|Support for  legacy (pre 2.1) strike through formatting|
|''Version:''|1.0.1|
|''Date:''|Jul 21, 2006|
|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|
|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''License:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|

***/

//{{{

// Ensure that the LegacyStrikeThrough Plugin is only installed once.
if(!version.extensions.LegacyStrikeThroughPlugin)
	{
	version.extensions.LegacyStrikeThroughPlugin = true;

config.formatters.push(
{
	name: "legacyStrikeByChar",
	match: "==",
	termRegExp: /(==)/mg,
	element: "strike",
	handler: config.formatterHelpers.createElementAndWikify
});

} // end of "install only once"
//}}}
[[News]]
---------
[[Contact|Contact Information]]
---------
[[Sponsors|Sponsors]]
---------
[[About this site|About This Site]]

[img[ |http://mechanicsofhearing.org/mohdl/rods_of_corti_small.gif][Mechanics of Hearing Digital Library]]
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<<tabs txtFavourite
"Welcome" "Welcome to the Library" [[Welcome]]
"Proceedings of MoH Workshops" "MoH Proceedings" [[Proceedings Library]]
"Auditory Neuroscience" "Auditory Neuroscience" [[Auditory Neuroscience]]
>>
* New arrivals: All twelve issues of the now-defunct journal Auditory Neuroscience //(posted 22 May 2012)//
* The library now maintains a complete collection of the Proceedings of [[previous MoH Workshops|Previous Workshops]] //(posted 27 April 2012)//
* The [[MoHDL|Mechanics of Hearing Digital Library]] is now online //(posted 14 March 2012)//
These options for customizing the interface are saved in your browser.

<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations

----
Also see AdvancedOptions
/%Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave%/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::CASColorA]] [[ColorPalette::CASColorB]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='ContentsSlider'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
|bgcolor(#eee): ''Date'' |bgcolor(#eee): ''Location'' |bgcolor(#eee): ''Proceedings'' |bgcolor(#eee): ''Editors'' |bgcolor(#eee): ''Publisher'' |bgcolor(#eee): ''Website'' |
| 16&ndash;22 Jul 2011 | Williamstown, Massachusetts, United States | [[What Fire is in Mine Ears: Progress in Auditory Biomechanics|Proceedings]] | CA Shera, ES Olson | American Institute of Physics | [[MoH2011|http://mechanicsofhearing.org/moh2011]] |
| 27&ndash;31 Jul 2008 | Keele University, United Kingdom | [[Concepts and Challenges in the Biophysics of Hearing|MoH Digital Library]] | NP Cooper, DT Kemp | World Scientific | [[MoH2008|http://mechanicsofhearing.com/index2008.html]] |
| 23&ndash;28 Jul 2005 | Portland, Oregon, United States | [[Auditory Mechanisms: Processes and Models|MoH Digital Library]] | AL Nuttall, T Ren, K Grosh, R Walker, P Gillespie, E de Boer | World Scientific | [[MoH2005|http://www.ohsu.edu/HearingMechanics/]] |
| 27 Jul&ndash;1 Aug 2002 | Titisee, Germany | [[Biophysics of the Cochlea: Molecules to Models|MoH Digital Library]] | AW Gummer | World Scientific | [[MoH2002|http://www.uni-tuebingen.de/cochlea/titisee/Frameset-Start.htm]] |
| 25&ndash;30 Jul 1999 | Sendai, Japan | [[Recent Developments in Auditory Mechanics|MoH Digital Library]] | H Wada, T Takasaka, K Ikeda, K Ohyama, T Koike | World Scientific | |
| 24&ndash;28 June 1996 | University of California, Berkeley, United States | [[Diversity in Auditory Mechanics|MoH Digital Library]] | ER Lewis, GR Long, RF Lyon, PM Narins, CR Steele, E ~Hecht-Poinar | World Scientific | |
| 28 Jun&ndash;3 Jul 1993 | Paterswolde, The Netherlands | [[Biophysics of Hair-Cell Sensory Systems|MoH Digital Library]] | H Duifhuis, JW Horst, P van Dijk, S van Netten | World Scientific | |
| 25&ndash;29 Jun 1990 | University of Wisconsin, Madison, United States | [[The Mechanics and Biophysics of Hearing|MoH Digital Library]] | P Dallos, CD Geisler, JW Matthews, MA Ruggero, CR Steele | ~Springer-Verlag | |
| 3&ndash;8 Jul 1988 | Keele University, United Kingdom | [[Cochlear Mechanisms: Structure, Function, and Models|MoH Digital Library]] | JP Wilson, DT Kemp | Plenum Press | |
| 13&ndash;16 Aug 1985 | Boston University, United States | [[Peripheral Auditory Mechanisms|MoH Digital Library]] | JB Allen, JL Hall, A Hubbard, ST Neely, A Tubis | ~Springer-Verlag | |
| 13&ndash;15 Jul 1983 | Delft University of Technology, The Netherlands | [[Mechanics of Hearing|MoH Digital Library]] | E de Boer, MA Viergever | Delft University Press | |

Title in ''bold'' are currently available in the [[MoH Digital Library|Mechanics of Hearing Digital Library]].
This section of the [[MoH Digital Library|Mechanics of Hearing Digital Library]] provides a complete collection of the proceedings of the [[Mechanics of Hearing Workshops|Previous Workshops]]. Each volume appears as a separate, searchable pdf.  Because of their size, we recommend downloading them to your hard drive rather than opening them directly in a browser.
!!~MoH1983
''Mechanics of Hearing'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH1983Proceedings-MechanicsOfHearing.pdf]]
Edited by E de Boer and MA Viergever
Workshop held 13&ndash;15 July 1983, Delft University of Technology, The Netherlands
!!~MoH1985
''Peripheral Auditory Mechanisms'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH1985Proceedings-PeripheralAuditoryMechanisms.pdf]]
Edited by JB Allen, JL Hall, A Hubbard, ST Neely, and A Tubis
Workshop held 13&ndash;16 August 1985, Boston University, United States
!!~MoH1988
''Cochlear Mechanisms: Structure, Function, and Models'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH1988Proceedings-CochlearMechanisms.pdf]]
Edited by JP Wilson and DT Kemp
Workshop held 3&ndash;8 July 1988, Keele University, United Kingdom
!!~MoH1990
''The Mechanics and Biophysics of Hearing'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH1990Proceedings-MechanicsAndBiophysicsOfHearing.pdf]]
Edited by P Dallos, CD Geisler, JW Matthews, MA Ruggero, and CR Steele
Workshop held 25&ndash;29 Jun 1990, University of Wisconsin, Madison, United States
!!~MoH1993
''Biophysics of ~Hair-Cell Sensory Systems'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH1993Proceedings-BiophysicsOfHairCellSensorySystems.pdf]]
Edited by H Duifhuis, JW Horst, P van Dijk, and S van Netten
Workshop held 28 June&ndash;3 July 1993, Paterswolde, The Netherlands
!!~MoH1996
''Diversity in Auditory Mechanics'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH1996Proceedings-DiversityInAuditoryMechanics.pdf]]
Edited by ER Lewis, GR Long, RF Lyon, PM Narins, CR Steele, and E ~Hecht-Poinar
Workshop held 24&ndash;28 June 1996, University of California, Berkeley, United States
!!~MoH1999
''Recent Developments in Auditory Mechanics'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH1999Proceedings-RecentDevelopmentsInAuditoryMechanics.pdf]]
Edited by H Wada, T Takasaka, K Ikeda, K Ohyama, and T Koike
Workshop held 25&ndash;30 July 1999, Sendai, Japan 
!!~MoH2002
''Biophysics of the Cochlea: Molecules to Models'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH2002Proceedings-BiophysicsOfTheCochlea.pdf]]
Edited by AW Gummer
Workshop held 27 July&ndash;1 August 2002, Titisee, Germany
!!~MoH2005
''Auditory Mechanisms: Processes and Models'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH2005Proceedings-AuditoryMechanisms.pdf]]
Edited by AL Nuttall, T Ren, K Grosh, R Walker, P Gillespie, and E de Boer
Workshop held 23&ndash;28 July 2005, Portland, Oregon, United States
!!~MoH2008
''Concepts and Challenges in the Biophysics of Hearing'' [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/MoH2008Proceedings-ConceptsAndChallenges.pdf]]
Edited by NP Cooper and DT Kemp
Workshop held 27&ndash;31 July 2008, Keele University, United Kingdom
!!~MoH2011
[[What Fire is in Mine Ears: Progress in Auditory Biomechanics|What Fire is in Mine Ears]] [img[pdf|http://web.mit.edu/apg/images/pdf.gif][http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/WhatFireIsInMineEars-MoH2011Proceedings.pdf]]
Edited by CA Shera and ES Olson
Workshop held 16&ndash;22 July 2011, Williamstown, Massachusetts, United States 
/***
|''Name:''|ReminderPlugin|
|''Version:''|2.3.10 (Jun 28, 2007)|
|''Source:''|http://remindermacros.tiddlyspot.com|
|''Author:''|Jeremy Sheeley(pop1280 [at] excite [dot] com)<br>Maintainer: simon.baird@gmail.com|
|''Licence:''|[[BSD open source license]]|
|''Macros:''|reminder, showreminders, displayTiddlersWithReminders, newReminder|
|''TiddlyWiki:''|2.0+|
|''Browser:''|Firefox 1.0.4+; InternetExplorer 6.0|

!Description
This plugin provides macros for tagging a date with a reminder.  Use the {{{reminder}}} macro to do this.  The {{{showReminders}}} and {{{displayTiddlersWithReminder}}} macros automatically search through all available tiddlers looking for upcoming reminders.

!Installation
* Create a new tiddler in your tiddlywiki titled ReminderPlugin and give it the {{{systemConfig}}} tag.  The tag is important because it tells TW that this is executable code.
* Double click this tiddler, and copy all the text from the tiddler's body.
* Paste the text into the body of the new tiddler in your TW.
* Save and reload your TW.
* You can copy some examples into your TW as well.  See [[Simple examples]], [[Holidays]], [[showReminders]] and [[Personal Reminders]]

!Syntax:
|>|See [[ReminderSyntax]] and [[showRemindersSyntax]]|

!Revision history
* v2.3.10 (Jun 28, 2007)
** Removed window.story = window backwards compatibility hacks since they were breaking TW 2.2
* v2.3.9 (Apr 26, 2007)
** allow bracketed list format in tags param lets you use tags with spaces
* v2.3.8 (Mar 9, 2006)
**Bug fix: A global variable had snuck in, which was killing FF 1.5.0.1
**Feature: You can now use TIDDLER and TIDDLERNAME in a regular reminder format
* v2.3.6 (Mar 1, 2006)
**Bug fix: Reminders for today weren't being matched sometimes.
**Feature:  Solidified integration with DatePlugin and CalendarPlugin
**Feature:  Recurring reminders will now return multiple hits in showReminders and the calendar.
**Feature:  Added TIDDLERNAME to the replacements for showReminders format, for plugins that need the title without brackets.
* v2.3.5 (Feb 8, 2006)
**Bug fix: Sped up reminders lots.  Added a caching mechanism for reminders that have already been matched.
* v2.3.4 (Feb 7, 2006)
**Bug fix: Cleaned up code to hopefully prevent the Firefox 1.5.0.1 crash that was causing lots of plugins 
to crash Firefox.  Thanks to http://www.jslint.com
* v2.3.3 (Feb 2, 2006)
**Feature: newReminder now has drop down lists instead of text boxes.
**Bug fix:  A trailing space in a title would trigger an infinite loop.
**Bug fix:  using tag:"birthday !reminder" would filter differently than tag:"!reminder birthday"
* v2.3.2 (Jan 21, 2006)
**Feature: newReminder macro, which will let you easily add a reminder to a tiddler. Thanks to Eric Shulman (http://www.elsdesign.com) for the code to do this.
** Bug fix: offsetday was not working sometimes
** Bug fix: when upgrading to 2.0, I included a bit to exclude tiddlers tagged with excludeSearch.  I've reverted back to searching through all tiddlers
* v2.3.1 (Jan 7, 2006)
**Feature: 2.0 compatibility
**Feature AlanH sent some code to make sure that showReminders prints a message if no reminders are found.
* v2.3.0 (Jan 3, 2006)
** Bug Fix:  Using "Last Sunday (-0)" as a offsetdayofweek wasn't working.
** Bug Fix:  Daylight Savings time broke offset based reminders (for example year:2005 month:8 day:23 recurdays:7 would match Monday instead of Tuesday during DST.

!Code
***/
//{{{

//============================================================================
//============================================================================
//           ReminderPlugin
//============================================================================
//============================================================================

version.extensions.ReminderPlugin = {major: 2, minor: 3, revision: 8, date: new Date(2006,3,9), source: "http://remindermacros.tiddlyspot.com/"};

//============================================================================
// Configuration
// Modify this section to change the defaults for 
// leadtime and display strings
//============================================================================

config.macros.reminders = {};
config.macros["reminder"] = {};
config.macros["newReminder"] = {};
config.macros["showReminders"] = {};
config.macros["displayTiddlersWithReminders"] = {};

config.macros.reminders["defaultLeadTime"] = [-1000,6000];
config.macros.reminders["defaultReminderMessage"] = "DIFF: TITLE on DATE ANNIVERSARY";
config.macros.reminders["defaultShowReminderMessage"] = "DIFF: TITLE on DATE ANNIVERSARY -- TIDDLER";
config.macros.reminders["defaultAnniversaryMessage"] = "(DIFF)";
config.macros.reminders["untitledReminder"] = "Untitled Reminder";
config.macros.reminders["noReminderFound"] = "Couldn't find a match for TITLE in the next LEADTIMEUPPER days."
config.macros.reminders["todayString"] = "Today";
config.macros.reminders["tomorrowString"] = "Tomorrow";
config.macros.reminders["ndaysString"] = "DIFF days";
config.macros.reminders["emtpyShowRemindersString"] = "There are no upcoming events";


//============================================================================
//  Code
// You should not need to edit anything 
// below this.  Make sure to edit this tiddler and copy 
// the code from the text box, to make sure that 
// tiddler rendering doesn't interfere with the copy 
// and paste.
//============================================================================

//this object will hold the cache of reminders, so that we don't
//recompute the same reminder over again.
var reminderCache = {};

config.macros.showReminders.handler = function showReminders(place,macroName,params)
{
   var now = new Date().getMidnight();
   var paramHash = {};
   var leadtime = [0,14];
   paramHash = getParamsForReminder(params);
   var bProvidedDate = (paramHash["year"] != null) || 
			(paramHash["month"] != null) || 
			(paramHash["day"] != null) || 
			(paramHash["dayofweek"] != null);
   if (paramHash["leadtime"] != null)
   {
      leadtime = paramHash["leadtime"];
      if (bProvidedDate)
      {
         //If they've entered a day, we need to make 
         //sure to find it.  We'll reset the 
         //leadtime a few lines down.
         paramHash["leadtime"] = [-10000, 10000];
      }
   }
   var matchedDate = now;
   if (bProvidedDate)
   {
      var leadTimeLowerBound = new Date().getMidnight().addDays(paramHash["leadtime"][0]);
      var leadTimeUpperBound = new Date().getMidnight().addDays(paramHash["leadtime"][1]);
      matchedDate = findDateForReminder(paramHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound); 
   }

   var arr = findTiddlersWithReminders(matchedDate, leadtime, paramHash["tag"], paramHash["limit"]);
   var elem = createTiddlyElement(place,"span",null,null, null);
   var mess = "";
   if (arr.length == 0)
   {
      mess += config.macros.reminders.emtpyShowRemindersString; 
   }
   for (var j = 0; j < arr.length; j++)
   {
      if (paramHash["format"] != null)
      {
         arr[j]["params"]["format"] = paramHash["format"];
      }
      else
      {
         arr[j]["params"]["format"] = config.macros.reminders["defaultShowReminderMessage"];
      }
      mess += getReminderMessageForDisplay(arr[j]["diff"], arr[j]["params"], arr[j]["matchedDate"], arr[j]["tiddler"]);
      mess += "\n";
   }
   wikify(mess, elem, null, null);
};


config.macros.displayTiddlersWithReminders.handler = function displayTiddlersWithReminders(place,macroName,params)
{
   var now = new Date().getMidnight();
   var paramHash = {};
   var leadtime = [0,14];
   paramHash = getParamsForReminder(params);
   var bProvidedDate = (paramHash["year"] != null) || 
			(paramHash["month"] != null) || 
			(paramHash["day"] != null) || 
			(paramHash["dayofweek"] != null);
   if (paramHash["leadtime"] != null)
   {
      leadtime = paramHash["leadtime"];
      if (bProvidedDate)
      {
         //If they've entered a day, we need to make 
         //sure to find it.  We'll reset the leadtime 
         //a few lines down.
         paramHash["leadtime"] = [-10000,10000];
      }
   }
   var matchedDate = now;
   if (bProvidedDate)
   {
      var leadTimeLowerBound = new Date().getMidnight().addDays(paramHash["leadtime"][0]);
      var leadTimeUpperBound = new Date().getMidnight().addDays(paramHash["leadtime"][1]);
      matchedDate = findDateForReminder(paramHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound); 
   }
   var arr = findTiddlersWithReminders(matchedDate, leadtime, paramHash["tag"], paramHash["limit"]);
   for (var j = 0; j < arr.length; j++)
   {
      displayTiddler(null, arr[j]["tiddler"], 0, null, false, false, false);
   }
};

config.macros.reminder.handler = function reminder(place,macroName,params)
{
   var dateHash = getParamsForReminder(params);
   if (dateHash["hidden"] != null)
   {
      return;
   }
   var leadTime = dateHash["leadtime"];
   if (leadTime == null)
   {
      leadTime = config.macros.reminders["defaultLeadTime"]; 
   }
   var leadTimeLowerBound = new Date().getMidnight().addDays(leadTime[0]);
   var leadTimeUpperBound = new Date().getMidnight().addDays(leadTime[1]);
   var matchedDate = findDateForReminder(dateHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound);
   if (!store.getTiddler) 
   {
      store.getTiddler=function(title) {return this.tiddlers[title];};
   }
   var title = window.story.findContainingTiddler(place).id.substr(7);
   if (matchedDate != null)
   {
      var diff = matchedDate.getDifferenceInDays(new Date().getMidnight());
      var elem = createTiddlyElement(place,"span",null,null, null);
      var mess = getReminderMessageForDisplay(diff, dateHash, matchedDate, title);
      wikify(mess, elem, null, null);
   }
   else
   {
      createTiddlyElement(place,"span",null,null, config.macros.reminders["noReminderFound"].replace("TITLE", dateHash["title"]).replace("LEADTIMEUPPER", leadTime[1]).replace("LEADTIMELOWER", leadTime[0]).replace("TIDDLERNAME", title).replace("TIDDLER", "[[" + title + "]]") );
   }
};

config.macros.newReminder.handler = function newReminder(place,macroName,params)
{
  var today=new Date().getMidnight();
  var formstring = '<html><form>Year: <select name="year"><option value="">Every year</option>';
  for (var i = 0; i < 5; i++)
  {
    formstring += '<option' + ((i == 0) ? ' selected' : '') + ' value="' + (today.getFullYear() +i) + '">' + (today.getFullYear() + i) + '</option>';
  }
  formstring += '</select>&nbsp;&nbsp;Month:<select name="month"><option value="">Every month</option>';
  for (i = 0; i < 12; i++)
  {
    formstring += '<option' + ((i == today.getMonth()) ? ' selected' : '') + ' value="' + (i+1) + '">' + config.messages.dates.months[i] + '</option>';
  }
  formstring += '</select>&nbsp;&nbsp;Day:<select name="day"><option value="">Every day</option>';
  for (i = 1; i < 32; i++)
  {
    formstring += '<option' + ((i == (today.getDate() )) ? ' selected' : '') + ' value="' + i + '">' + i + '</option>';
  }

formstring += '</select>&nbsp;&nbsp;Reminder Title:<input type="text" size="40" name="title" value="please enter a title" onfocus="this.select();"><input type="button" value="ok" onclick="addReminderToTiddler(this.form)"></form></html>';

  var panel = config.macros.slider.createSlider(place,null,"New Reminder","Open a form to add a new reminder to this tiddler");
  wikify(formstring ,panel,null,store.getTiddler(params[1]));
};

// onclick: process input and insert reminder at 'marker'
window.addReminderToTiddler = function(form) {
   if (!store.getTiddler) 
   {
      store.getTiddler=function(title) {return this.tiddlers[title];};
   }
   var title = window.story.findContainingTiddler(form).id.substr(7);
   var tiddler=store.getTiddler(title);
  var txt='\n<<reminder ';
  if (form.year.value != "")
    txt += 'year:'+form.year.value + ' ';
  if (form.month.value != "")
    txt += 'month:'+form.month.value + ' ';
  if (form.day.value != "")
    txt += 'day:'+form.day.value + ' ';
  txt += 'title:"'+form.title.value+'" ';
  txt +='>>';
   tiddler.set(null,tiddler.text + txt);
   window.story.refreshTiddler(title,1,true);
   store.setDirty(true);
};

function hasTag(tiddlerTags, tagFilters)
{
  //Make sure we respond well to empty tiddlerTaglists or tagFilterlists
  if (tagFilters.length==0 || tiddlerTags.length==0)
  {
    return true;
  }

  var bHasTag = false;
  
  /*bNoPos says: "'till now there has been no check using a positive filter"
     Imagine a filterlist consisting of 1 negative filter:
         If the filter isn't matched, we want hasTag to be true.
         Yet bHasTag is still false ('cause only positive filters cause bHasTag to change)
         
     If no positive filters are present bNoPos is true, and no negative filters are matched so we have not returned false
         Thus: hasTag returns true.
      
      If at any time a positive filter is encountered, we want at least one of the tags to match it, so we turn bNoPos to false, which
      means bHasTag must be true for hasTag to return true*/
  var bNoPos=true;
  
for (var t3 = 0; t3 < tagFilters.length; t3++)
  {
      for(var t2=0; t2<tiddlerTags.length; t2++)
      {
           if (tagFilters[t3].length > 1 && tagFilters[t3].charAt(0) == '!') 
           {
              if (tiddlerTags[t2] == tagFilters[t3].substring(1))
              {
                 //If at any time a negative filter is matched, we return false
                  return false;
              }
           }
           else 
           {
              if (bNoPos)
              {
                 //We encountered the first positive filter
                 bNoPos=false;
              }
              if (tiddlerTags[t2] == tagFilters[t3])
              {
                  //A positive filter is matched. As long as no negative filter is matched, hasTag will return true
                  bHasTag=true;
              }
           }
        }
    }
    return (bNoPos || bHasTag);
};

//This function searches all tiddlers for the reminder  //macro.  It is intended that other plugins (like //calendar) will use this function to query for 
//upcoming reminders.
//The arguments to this function filter out reminders //based on when they will fire.
//
//ARGUMENTS:
//baseDate is the date that is used as "now".  
//leadtime is a two element int array, with leadtime[0] 
//         as the lower bound and leadtime[1] as the
//         upper bound.  A reasonable default is [0,14]
//tags is a space-separated list of tags to use to filter 
//         tiddlers.  If a tag name begins with an !, then 
//         only tiddlers which do not have that tag will 
//         be considered.  For example "examples holidays"  
//         will search for reminders in any tiddlers that  
//         are tagged with examples or holidays and 
//         "!examples !holidays" will search for reminders 
//         in any tiddlers that are not tagged with 
//         examples or holidays.  Pass in null to search 
//         all tiddlers.
//limit.  If limit is null, individual reminders can 
//        override the leadtime specified earlier.  
//        Pass in 1 in order to override that behavior.

window.findTiddlersWithReminders = function findTiddlersWithReminders(baseDate, leadtime, tags, limit)
{
//function(searchRegExp,sortField,excludeTag)
//   var macroPattern = "<<([^>\\]+)(?:\\*)([^>]*)>>";
   var macroPattern = "<<(reminder)(.*)>>";
   var macroRegExp = new RegExp(macroPattern,"mg");
   var matches = store.search(macroRegExp,"title","");
   var arr = [];
   var tagsArray = null;
   if (tags != null)
   {
      // tagsArray = tags.split(" ");
      tagsArray = tags.readBracketedList(); // allows tags with spaces. thanks Robin Summerhill, 4-Oct-06.
   }
   for(var t=matches.length-1; t>=0; t--)
   {
      if (tagsArray != null)
      {
         //If they specified tags to filter on, and this tiddler doesn't 
	 //match, skip it entirely.
         if ( ! hasTag(matches[t].tags, tagsArray))
         {
            continue;
         }
      }

      var targetText = matches[t].text;
      do {
         // Get the next formatting match
         var formatMatch = macroRegExp.exec(targetText);
         if(formatMatch && formatMatch[1] != null && formatMatch[1].toLowerCase() == "reminder")
         {
            //Find the matching date.
            
            var params = formatMatch[2] != null ? formatMatch[2].readMacroParams() : {};
            var dateHash = getParamsForReminder(params);
            if (limit != null || dateHash["leadtime"] == null)
            {
               if (leadtime == null)
                   dateHash["leadtime"] = leadtime;
               else
               {
                  dateHash["leadtime"] = [];
                  dateHash["leadtime"][0] = leadtime[0];
                  dateHash["leadtime"][1] = leadtime[1];
               }
            }
	    if (dateHash["leadtime"] == null)
               dateHash["leadtime"] = config.macros.reminders["defaultLeadTime"]; 
            var leadTimeLowerBound = baseDate.addDays(dateHash["leadtime"][0]);
            var leadTimeUpperBound = baseDate.addDays(dateHash["leadtime"][1]);
            var matchedDate = findDateForReminder(dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound);
            while (matchedDate != null)
            {
               var hash = {};
               hash["diff"] = matchedDate.getDifferenceInDays(baseDate);
               hash["matchedDate"] = new Date(matchedDate.getFullYear(), matchedDate.getMonth(), matchedDate.getDate(), 0, 0);
               hash["params"] = cloneParams(dateHash);
               hash["tiddler"] = matches[t].title;
               hash["tags"] = matches[t].tags;
               arr.pushUnique(hash);
	       if (dateHash["recurdays"] != null || (dateHash["year"] == null))
	       {
	         leadTimeLowerBound = leadTimeLowerBound.addDays(matchedDate.getDifferenceInDays(leadTimeLowerBound)+ 1);
                 matchedDate = findDateForReminder(dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound);
	       }
	       else matchedDate = null;
            }
         }
      }while(formatMatch);
   }
   if(arr.length > 1)  //Sort the array by number of days remaining.
   {
      arr.sort(function (a,b) {if(a["diff"] == b["diff"]) {return(0);} else {return (a["diff"] < b["diff"]) ? -1 : +1; } });
   }
   return arr;
};

//This function takes the reminder macro parameters and
//generates the string that is used for display.
//This function is not intended to be called by 
//other plugins.
 window.getReminderMessageForDisplay= function getReminderMessageForDisplay(diff, params, matchedDate, tiddlerTitle)
{
   var anniversaryString = "";
   var reminderTitle = params["title"];
   if (reminderTitle == null)
   {
      reminderTitle = config.macros.reminders["untitledReminder"];
   }
   if (params["firstyear"] != null)
   {
      anniversaryString = config.macros.reminders["defaultAnniversaryMessage"].replace("DIFF", (matchedDate.getFullYear() - params["firstyear"]));
   }
   var mess = "";
   var diffString = "";
   if (diff == 0)
   {
      diffString = config.macros.reminders["todayString"];
   }
   else if (diff == 1)
   {
      diffString = config.macros.reminders["tomorrowString"];
   }
   else
   {
      diffString = config.macros.reminders["ndaysString"].replace("DIFF", diff);
   }
   var format = config.macros.reminders["defaultReminderMessage"];
   if (params["format"] != null)
   {
      format = params["format"];
   }
   mess = format;
//HACK!  -- Avoid replacing DD in TIDDLER with the date
   mess = mess.replace(/TIDDLER/g, "TIDELER");
   mess = matchedDate.formatStringDateOnly(mess);
   mess = mess.replace(/TIDELER/g, "TIDDLER");
   if (tiddlerTitle != null)
   {
      mess = mess.replace(/TIDDLERNAME/g, tiddlerTitle);
      mess = mess.replace(/TIDDLER/g, "[[" + tiddlerTitle + "]]");
   }
   
   mess = mess.replace("DIFF", diffString).replace("TITLE", reminderTitle).replace("DATE", matchedDate.formatString("DDD MMM DD, YYYY")).replace("ANNIVERSARY", anniversaryString);
   return mess;
};

// Parse out the macro parameters into a hashtable.  This
// handles the arguments for reminder, showReminders and 
// displayTiddlersWithReminders.
window.getParamsForReminder = function getParamsForReminder(params)
{
   var dateHash = {};
   var type = "";
   var num = 0;
   var title = "";
   for(var t=0; t<params.length; t++)
   {
      var split = params[t].split(":");
      type = split[0].toLowerCase();
      var value = split[1];
      for (var i=2; i < split.length; i++)
      {
         value += ":" + split[i];
      }
      if (type == "nolinks" || type == "limit" || type == "hidden")
      {
         num = 1;
      }
      else if (type == "leadtime")
      {
         var leads = value.split("...");
         if (leads.length == 1)
         {
            leads[1]= leads[0];
            leads[0] = 0;
         }
         leads[0] = parseInt(leads[0], 10);
         leads[1] = parseInt(leads[1], 10);
         num = leads;
      }
      else if (type == "offsetdayofweek")
      {
          if (value.substr(0,1) == "-")
          {
             dateHash["negativeOffsetDayOfWeek"] = 1;
	     value = value.substr(1);
          }
          num = parseInt(value, 10);
      }
      else if (type != "title" && type != "tag" && type != "format")
      {
         num = parseInt(value, 10);
      }
      else
      {
         title = value;
         t++;
         while (title.substr(0,1) == '"' && title.substr(title.length - 1,1) != '"' && params[t] != undefined)
         {
            title += " " + params[t++];
         }
         //Trim off the leading and trailing quotes
         if (title.substr(0,1) == "\"" && title.substr(title.length - 1,1)== "\"")
         {
            title = title.substr(1, title.length - 2);
            t--;
         }
         num = title;
      }
      dateHash[type] = num;
   }
   //date is synonymous with day
   if (dateHash["day"] == null)
   {
      dateHash["day"] = dateHash["date"];
   }
   return dateHash;
};

//This function finds the date specified in the reminder 
//parameters.  It will return null if no match can be
//found.  This function is not intended to be used by
//other plugins.
window.findDateForReminder= function findDateForReminder( dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound)
{
   if (baseDate == null)
   {
     baseDate = new Date().getMidnight();
   }
   var hashKey = baseDate.convertToYYYYMMDDHHMM();
   for (var k in dateHash)
   {
      hashKey += "," + k + "|" + dateHash[k];
   }
   hashKey += "," + leadTimeLowerBound.convertToYYYYMMDDHHMM();
   hashKey += "," + leadTimeUpperBound.convertToYYYYMMDDHHMM();
   if (reminderCache[hashKey] == null)
   {
      //If we don't find a match in this run, then we will
      //cache that the reminder can't be matched.
      reminderCache[hashKey] = false;
   }
   else if (reminderCache[hashKey] == false)
   {
      //We've already tried this date and failed
      return null;
   }
   else
   {
      return reminderCache[hashKey];
   }
   
   var bOffsetSpecified = dateHash["offsetyear"] != null || 
				dateHash["offsetmonth"] != null || 
				dateHash["offsetday"] != null || 
				dateHash["offsetdayofweek"] != null || 
				dateHash["recurdays"] != null;
   
   // If we are matching the base date for a dayofweek offset, look for the base date a 
   //little further back.
   var tmp1leadTimeLowerBound = leadTimeLowerBound;  
   if ( dateHash["offsetdayofweek"] != null)
   {
      tmp1leadTimeLowerBound = leadTimeLowerBound.addDays(-6);  
   }
   var matchedDate = baseDate.findMatch(dateHash, tmp1leadTimeLowerBound, leadTimeUpperBound);
   if (matchedDate != null)
   {
      var newMatchedDate = matchedDate;
      if (dateHash["recurdays"] != null)
      {
         while (newMatchedDate.getTime() < leadTimeLowerBound.getTime())
         {
            newMatchedDate = newMatchedDate.addDays(dateHash["recurdays"]);
         }
      }
      else if (dateHash["offsetyear"] != null || 
		dateHash["offsetmonth"] != null || 
		dateHash["offsetday"] != null || 
		dateHash["offsetdayofweek"] != null)
      {
         var tmpdateHash = cloneParams(dateHash);
         tmpdateHash["year"] = dateHash["offsetyear"];
         tmpdateHash["month"] = dateHash["offsetmonth"];
         tmpdateHash["day"] = dateHash["offsetday"];
         tmpdateHash["dayofweek"] = dateHash["offsetdayofweek"];
	 var tmpleadTimeLowerBound = leadTimeLowerBound;
	 var tmpleadTimeUpperBound = leadTimeUpperBound;
	 if (tmpdateHash["offsetdayofweek"] != null)
	 {
	 	if (tmpdateHash["negativeOffsetDayOfWeek"] == 1)
		{
		   tmpleadTimeLowerBound = matchedDate.addDays(-6);
		   tmpleadTimeUpperBound = matchedDate;

		}
		else
		{
		   tmpleadTimeLowerBound = matchedDate;
		   tmpleadTimeUpperBound = matchedDate.addDays(6);
		}

	 }
	 newMatchedDate = matchedDate.findMatch(tmpdateHash, tmpleadTimeLowerBound, tmpleadTimeUpperBound);
         //The offset couldn't be matched.  return null.
         if (newMatchedDate == null)
         {
            return null;
         }
      }
      if (newMatchedDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
      {
         reminderCache[hashKey] = newMatchedDate;
         return newMatchedDate;
      }
   }
   return null;
};

//This does much the same job as findDateForReminder, but
//this one doesn't deal with offsets or recurring 
//reminders.
Date.prototype.findMatch = function findMatch(dateHash, leadTimeLowerBound, leadTimeUpperBound)
{

   var bSpecifiedYear =     (dateHash["year"] != null);
   var bSpecifiedMonth =     (dateHash["month"] != null);
   var bSpecifiedDay =     (dateHash["day"] != null);
   var bSpecifiedDayOfWeek =     (dateHash["dayofweek"] != null);
   if (bSpecifiedYear && bSpecifiedMonth && bSpecifiedDay)
   {
      return new Date(dateHash["year"], dateHash["month"]-1, dateHash["day"], 0, 0);
   }
   var bMatchedYear = !bSpecifiedYear;
   var bMatchedMonth = !bSpecifiedMonth;
   var bMatchedDay = !bSpecifiedDay;
   var bMatchedDayOfWeek = !bSpecifiedDayOfWeek;
   if (bSpecifiedDay && bSpecifiedMonth && !bSpecifiedYear && !bSpecifiedDayOfWeek)
   {

      //Shortcut -- First try this year.  If it's too small, try next year.
      var tmpMidnight = this.getMidnight();
      var tmpDate = new Date(this.getFullYear(), dateHash["month"]-1, dateHash["day"], 0,0);
      if (tmpDate.getTime() < leadTimeLowerBound.getTime())
      {
         tmpDate = new Date((this.getFullYear() + 1), dateHash["month"]-1, dateHash["day"], 0,0);
      }
      if ( tmpDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
      {
         return tmpDate;
      }
      else
      {
         return null;
      }
   }

   var newDate = leadTimeLowerBound; 
   while (newDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
   {
      var tmp = testDate(newDate, dateHash, bSpecifiedYear, bSpecifiedMonth, bSpecifiedDay, bSpecifiedDayOfWeek);
      if (tmp != null)
        return tmp;
      newDate = newDate.addDays(1);
   }
};

function testDate(testMe, dateHash, bSpecifiedYear, bSpecifiedMonth, bSpecifiedDay, bSpecifiedDayOfWeek)
{
   var bMatchedYear = !bSpecifiedYear;
   var bMatchedMonth = !bSpecifiedMonth;
   var bMatchedDay = !bSpecifiedDay;
   var bMatchedDayOfWeek = !bSpecifiedDayOfWeek;
   if (bSpecifiedYear)
   {
      bMatchedYear = (dateHash["year"] == testMe.getFullYear());
   }
   if (bSpecifiedMonth)
   {
      bMatchedMonth = ((dateHash["month"] - 1)  == testMe.getMonth() );
   }
   if (bSpecifiedDay)
   {
      bMatchedDay = (dateHash["day"] == testMe.getDate());
   }
   if (bSpecifiedDayOfWeek)
   {
      bMatchedDayOfWeek = (dateHash["dayofweek"] == testMe.getDay());
   }

   if (bMatchedYear && bMatchedMonth && bMatchedDay && bMatchedDayOfWeek)
   {
      return testMe;
   }
};

//Returns true if the date is in between two given dates
Date.prototype.isBetween = function isBetween(lowerBound, upperBound)
{
  return (this.getTime() >= lowerBound.getTime() && this.getTime() <= upperBound.getTime());
}
//Return a new date, with the time set to midnight (0000)
Date.prototype.getMidnight = function getMidnight()
{
   return new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0);
};
// Add the specified number of days to a date.
Date.prototype.addDays = function addDays(numberOfDays)
{
   return new Date(this.getFullYear(), this.getMonth(), this.getDate() + numberOfDays, 0, 0);
};
//Return the number of days between two dates.
Date.prototype.getDifferenceInDays = function getDifferenceInDays(otherDate)
{
//I have to do it this way, because this way ignores daylight savings
   var tmpDate = this.addDays(0);
   if (this.getTime() > otherDate.getTime())
   {
      var i = 0;
      for (i = 0; tmpDate.getTime() > otherDate.getTime(); i++)
      {
         tmpDate = tmpDate.addDays(-1);
      }
      return i;
   }
   else
   {
      var i = 0;
      for (i = 0; tmpDate.getTime() < otherDate.getTime(); i++)
      {
         tmpDate = tmpDate.addDays(1);
      }
      return i * -1;
   }
   return 0;
};
function cloneParams(what) {
    var tmp = {};
    for (var i in what) {
        tmp[i] = what[i];
    }
    return tmp;
}
// Substitute date components into a string
Date.prototype.formatStringDateOnly = function formatStringDateOnly(template)
{
	template = template.replace("YYYY",this.getFullYear());
	template = template.replace("YY",String.zeroPad(this.getFullYear()-2000,2));
	template = template.replace("MMM",config.messages.dates.months[this.getMonth()]);
	template = template.replace("0MM",String.zeroPad(this.getMonth()+1,2));
	template = template.replace("MM",this.getMonth()+1);
	template = template.replace("DDD",config.messages.dates.days[this.getDay()]);
	template = template.replace("0DD",String.zeroPad(this.getDate(),2));
	template = template.replace("DD",this.getDate());
	return template;
};

//}}}
/*{{{*/
merge(config.macros.search,{
	prompt: "Search MoH website"});
merge(config.macros.closeAll,{
	prompt: "Close all tiddlers"});
/*}}}*/
version.extensions.favicon = {major: 0, minor: 1, revision: 0, date: new Date("Jul 18, 2005")};
var n = document.createElement("link");	
n.rel = "shortcut icon"; 
n.href = "http://www.mechanicsofhearing.org/mohdl/cochlea16x16.jpg"; 
document.getElementsByTagName("head")[0].appendChild(n);
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
/***
|''Name''|SimpleSearchPlugin|
|''Description''|displays search results as a simple list of matching tiddlers|
|''Authors''|FND|
|''Version''|0.4.0|
|''Status''|stable|
|''Source''|http://devpad.tiddlyspot.com/#SimpleSearchPlugin|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/SimpleSearchPlugin.js|
|''License''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''Keywords''|search|
!Revision History
!!v0.2.0 (2008-08-18)
* initial release
!!v0.3.0 (2008-08-19)
* added Open All button (renders Classic Search option obsolete)
* sorting by relevance (title matches before content matches)
!!v0.4.0 (2008-08-26)
* added tag matching
!To Do
* tag matching optional
* animations for container creation and removal
* when clicking on search results, do not scroll to the respective tiddler (optional)
* use template for search results
!Code
***/
//{{{
if(!version.extensions.SimpleSearchPlugin) { //# ensure that the plugin is only installed once
version.extensions.SimpleSearchPlugin = { installed: true };

if(!plugins) { var plugins = {}; }
plugins.SimpleSearchPlugin = {
	heading: "Search Results",
	containerId: "searchResults",
	btnCloseLabel: "close",
	btnCloseTooltip: "dismiss search results",
	btnCloseId: "search_close",
	btnOpenLabel: "Open all",
	btnOpenTooltip: "open all search results",
	btnOpenId: "search_open",
	
	displayResults: function(matches, query) {
		story.refreshAllTiddlers(true); // update highlighting within story tiddlers
		var el = document.getElementById(this.containerId);
		query = '"""' + query + '"""'; // prevent WikiLinks
		if(el) {
			removeChildren(el);
		} else { //# fallback: use displayArea as parent
			var container = document.getElementById("displayArea");
			el = document.createElement("div");
			el.setAttribute("id", this.containerId);
			el = container.insertBefore(el, container.firstChild);
		}
		var msg = "!" + this.heading + "\n";
		if(matches.length > 0) {
			msg += "''" + config.macros.search.successMsg.format([matches.length.toString(), query]) + ":''\n";
			this.results = [];
			for(var i = 0 ; i < matches.length; i++) {
				this.results.push(matches[i].title);
				msg += "* [[" + matches[i].title + "]]\n";
			}
		} else {
			msg += "''" + config.macros.search.failureMsg.format([query]) + "''"; // XXX: do not use bold here!?
		}
		createTiddlyButton(el, this.btnCloseLabel, this.btnCloseTooltip, plugins.SimpleSearchPlugin.closeResults, "button", this.btnCloseId);
		wikify(msg, el);
		if(matches.length > 0) { // XXX: redundant!?
			createTiddlyButton(el, this.btnOpenLabel, this.btnOpenTooltip, plugins.SimpleSearchPlugin.openAll, "button", this.btnOpenId);
		}
	},

	closeResults: function() {
		var el = document.getElementById(plugins.SimpleSearchPlugin.containerId);
		removeNode(el);
		plugins.SimpleSearchPlugin.results = null;
		highlightHack = null;
	},

	openAll: function(ev) {
		story.displayTiddlers(null, plugins.SimpleSearchPlugin.results);
		return false;
	}
};

config.shadowTiddlers.StyleSheetSimpleSearch = "/*{{{*/\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " {\n" +
	"\toverflow: auto;\n" +
	"\tpadding: 5px 1em 10px;\n" +
	"\tbackground-color: [[ColorPalette::TertiaryPale]];\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " h1 {\n" +
	"\tmargin-top: 0;\n" +
	"\tborder: none;\n" +
        "\tbackground-color: [[ColorPalette::TertiaryPale]];\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " ul {\n" +
	"\tmargin: 0.5em;\n" +
	"\tpadding-left: 1.5em;\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " .button {\n" +
	"\tdisplay: block;\n" +
	"\tborder-color: [[ColorPalette::TertiaryDark]];\n" +
	"\tpadding: 5px;\n" +
	"\tbackground-color: [[ColorPalette::TertiaryLight]];\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " .button:hover {\n" +
	"\tborder-color: [[ColorPalette::TertiaryDark]];\n" +
	"\tbackground-color: [[ColorPalette::TertiaryMid]];\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.btnCloseId + " {\n" +
	"\tfloat: right;\n" +
	"\tmargin: -5px -1em 5px 5px;\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.btnOpenId + " {\n" +
	"\tfloat: left;\n" +
	"\tmargin-top: 5px;\n" +
	"}\n" +
	"/*}}}*/";
store.addNotification("StyleSheetSimpleSearch", refreshStyles);

// override Story.search()
Story.prototype.search = function(text, useCaseSensitive, useRegExp) {
	highlightHack = new RegExp(useRegExp ? text : text.escapeRegExp(), useCaseSensitive ? "mg" : "img");
	var matches = store.search(highlightHack, null, "excludeSearch");
	var q = useRegExp ? "/" : "'";
	plugins.SimpleSearchPlugin.displayResults(matches, q + text + q);
};

// override TiddlyWiki.search() to sort by relevance
TiddlyWiki.prototype.search = function(searchRegExp, sortField, excludeTag, match) {
	var candidates = this.reverseLookup("tags", excludeTag, !!match);
	var primary = [];
	var secondary = [];
	var tertiary = [];
	for(var t = 0; t < candidates.length; t++) {
		if(candidates[t].title.search(searchRegExp) != -1) {
			primary.push(candidates[t]);
		} else if(candidates[t].tags.join(" ").search(searchRegExp) != -1) {
			secondary.push(candidates[t]);
		} else if(candidates[t].text.search(searchRegExp) != -1) {
			tertiary.push(candidates[t]);
		}
	}
	var results = primary.concat(secondary).concat(tertiary);
	if(sortField) {
		results.sort(function(a, b) {
			return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);
		});
	}
	return results;
};

} //# end of "install only once"
//}}}

[img[http://www.mechanicsofhearing.org/mohdl/Banner.png]] @@color(white):~MoH Digital Library@@
http://www.mechanicsofhearing.org/mohdl.html
The following organizations graciously provided the financial and other support that makes this library possible.

[img[http://mechanicsofhearing.org/moh2011/images/MoHSiteTitle5.png][http://www.mechanicsofhearing.org/moh2011/]]
The [[Mechanics of Hearing Digital Library]] is curated by [[Christopher Shera|http://web.mit.edu/apg]] and [[Elizabeth Olson|http://www.columbia.edu/cu/fowlerlab/index.html]]. 
/*{{{*/
#sidebarTabs {
	padding-top: 0.3em;
}
h1,h2,h3,h4,h5 {
	color: [[ColorPalette::SecondaryDark]];
	background: transparent;
}
h1,h2,h3,h4,h5 {
	font-weight: normal;
	text-decoration: none;
	padding-left: 0.0em;
}
.siteTitle {
	font-size: 4px;
        font-family: 'Trebuchet MS' sans-serif;
}
.siteSubtitle {
	font-size: 4px;
        color: #666;
        font-family: 'Trebuchet MS' sans-serif;
}

/*}}}*/
/*{{{*/
body {
	background: [[ColorPalette::Background]];
	color: [[ColorPalette::Foreground]];
}

a{
	color: [[ColorPalette::PrimaryDark]];
}

a:hover{
	background: [[ColorPalette::PrimaryMid]];
	color: [[ColorPalette::Background]];
}

a img{
	border: 0;
}


.zoomer {background:none; color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

h1,h2,h3,h4,h5 {
	color: [[ColorPalette::SecondaryDark]];
	background: [[ColorPalette::Background]];
}

.button {
	color: [[ColorPalette::PrimaryDark]];
	border: 1px solid [[ColorPalette::Background]];
}

.button:hover {
	color: [[ColorPalette::PrimaryDark]];
	background: [[ColorPalette::CASLightGray]];
	border-color: [[ColorPalette::CASMidGray]];
}

.button:active {
	color: [[ColorPalette::Background]];
	background: [[ColorPalette::CASDarkGray]];
	border: 1px solid [[ColorPalette::CASDarkerGray]];
}

.header {
	background: [[ColorPalette::PrimaryMid]];
}

.headerShadow {
	color: [[ColorPalette::Foreground]];
}

.headerShadow a {
	font-weight: normal;
	color: [[ColorPalette::Background]];
}

.headerForeground {
	color: [[ColorPalette::Foreground]];
}

.headerForeground a {
	font-weight: normal;
	color: [[ColorPalette::PrimaryPale]];
}

.tabSelected{
	color: [[ColorPalette::PrimaryDark]];
	background: [[ColorPalette::TertiaryPale]];
	border-left: 1px solid [[ColorPalette::TertiaryLight]];
	border-top: 1px solid [[ColorPalette::TertiaryLight]];
	border-right: 1px solid [[ColorPalette::TertiaryLight]];
}

.tabUnselected {
	color: [[ColorPalette::Background]];
	background: [[ColorPalette::TertiaryMid]];
}

.tabContents {
	color: [[ColorPalette::PrimaryDark]];
	background: [[ColorPalette::TertiaryPale]];
	border: 1px solid [[ColorPalette::TertiaryLight]];
}

.tabContents .button {
	 border: 0;}

#sidebar {
}

#sidebarOptions input {
	border: 1px solid [[ColorPalette::PrimaryMid]];
}

#sidebarOptions .sliderPanel {
	background: [[ColorPalette::PrimaryPale]];
}

#sidebarOptions .sliderPanel a {
	border: none;
	color: [[ColorPalette::PrimaryMid]];
}

#sidebarOptions .sliderPanel a:hover {
	color: [[ColorPalette::Background]];
	background: [[ColorPalette::PrimaryMid]];
}

#sidebarOptions .sliderPanel a:active {
	color: [[ColorPalette::PrimaryMid]];
	background: [[ColorPalette::Background]];
}

.wizard {
	background: [[ColorPalette::SecondaryLight]];
	border-top: 1px solid [[ColorPalette::SecondaryMid]];
	border-left: 1px solid [[ColorPalette::SecondaryMid]];
}

.wizard h1 {
	color: [[ColorPalette::SecondaryDark]];
}

.wizard h2 {
	color: [[ColorPalette::Foreground]];
}

.wizardStep {
	background: [[ColorPalette::Background]];
	border-top: 1px solid [[ColorPalette::SecondaryMid]];
	border-bottom: 1px solid [[ColorPalette::SecondaryMid]];
	border-left: 1px solid [[ColorPalette::SecondaryMid]];
}

.wizard .button {
	color: [[ColorPalette::Background]];
	background: [[ColorPalette::PrimaryMid]];
	border-top: 1px solid [[ColorPalette::PrimaryLight]];
	border-right: 1px solid [[ColorPalette::PrimaryDark]];
	border-bottom: 1px solid [[ColorPalette::PrimaryDark]];
	border-left: 1px solid [[ColorPalette::PrimaryLight]];
}

.wizard .button:hover {
	color: [[ColorPalette::PrimaryLight]];
	background: [[ColorPalette::PrimaryDark]];
	border-color: [[ColorPalette::PrimaryLight]];
}

.wizard .button:active {
	color: [[ColorPalette::Background]];
	background: [[ColorPalette::PrimaryMid]];
	border-top: 1px solid [[ColorPalette::PrimaryLight]];
	border-right: 1px solid [[ColorPalette::PrimaryDark]];
	border-bottom: 1px solid [[ColorPalette::PrimaryDark]];
	border-left: 1px solid [[ColorPalette::PrimaryLight]];
}

#messageArea {
	border: 1px solid [[ColorPalette::CASDarkGray]];
	background: [[ColorPalette::CASLightGray]];
	color: [[ColorPalette::PrimaryDark]];
}

#messageArea .button {
	padding: 0.2em 0.2em 0.2em 0.2em;
	color: [[ColorPalette::PrimaryDark]];
	background: [[ColorPalette::Background]];
}

.popup {
	background: [[ColorPalette::Background]];
	border: 1px solid [[ColorPalette::PrimaryMid]];
}

.popup hr {
	color: [[ColorPalette::PrimaryDark]];
	background: [[ColorPalette::PrimaryDark]];
	border-bottom: 1px;
}

.popup li.disabled {
	color: [[ColorPalette::PrimaryMid]];
}

.popup li a, .popup li a:visited {
	color: [[ColorPalette::DarkerGray]];
	border: none;
}

.popup li a:hover {
	background: [[ColorPalette::PrimaryDark]];
	color: [[ColorPalette::Background]];
	border: none;
}

.tiddler .defaultCommand {
 font-weight: bold;
}

.shadow .title {
	color: [[ColorPalette::TertiaryDark]];
}

.title {
	color: [[ColorPalette::SecondaryDark]];
}

.subtitle {
	color: [[ColorPalette::TertiaryDark]];
}

.toolbar {
	color: [[ColorPalette::PrimaryMid]];
}

.tagging, .tagged {
	border: 1px solid [[ColorPalette::TertiaryPale]];
	background-color: [[ColorPalette::TertiaryPale]];
}

.selected .tagging, .selected .tagged {
	background-color: [[ColorPalette::TertiaryLight]];
	border: 1px solid [[ColorPalette::TertiaryMid]];
}

.tagging .listTitle, .tagged .listTitle {
	color: [[ColorPalette::PrimaryDark]];
}

.tagging .button, .tagged .button {
		border: none;
}

.footer {
	color: [[ColorPalette::TertiaryLight]];
}

.selected .footer {
	color: [[ColorPalette::TertiaryMid]];
}

.sparkline {
	background: [[ColorPalette::PrimaryPale]];
	border: 0;
}

.sparktick {
	background: [[ColorPalette::PrimaryDark]];
}

.error, .errorButton {
	color: [[ColorPalette::Foreground]];
	background: [[ColorPalette::Error]];
}

.warning {
	color: [[ColorPalette::Foreground]];
	background: [[ColorPalette::SecondaryPale]];
}

.cascade {
	background: [[ColorPalette::TertiaryPale]];
	color: [[ColorPalette::TertiaryMid]];
	border: 1px solid [[ColorPalette::TertiaryMid]];
}

.imageLink, #displayArea .imageLink {
	background: transparent;
}

.viewer .listTitle {list-style-type: none; margin-left: -2em;}

.viewer .button {
	border: 1px solid [[ColorPalette::SecondaryMid]];
}

.viewer blockquote {
	border-left: 3px solid [[ColorPalette::TertiaryDark]];
}

.viewer table {
	border: 2px solid [[ColorPalette::TertiaryDark]];
}

.viewer th, thead td {
	background: [[ColorPalette::SecondaryMid]];
	border: 1px solid [[ColorPalette::TertiaryDark]];
	color: [[ColorPalette::Background]];
}

.viewer td, .viewer tr {
	border: 1px solid [[ColorPalette::TertiaryDark]];
}

.viewer pre {
	border: 1px solid [[ColorPalette::SecondaryLight]];
	background: [[ColorPalette::SecondaryPale]];
}

.viewer code {
	color: [[ColorPalette::SecondaryDark]];
}

.viewer hr {
	border: 0;
	border-top: dashed 1px [[ColorPalette::TertiaryDark]];
	color: [[ColorPalette::TertiaryDark]];
}

.highlight, .marked {
	background: [[ColorPalette::SecondaryLight]];
}

.editor input {
	border: 1px solid [[ColorPalette::PrimaryMid]];
}

.editor textarea {
	border: 1px solid [[ColorPalette::PrimaryMid]];
	width: 100%;
}

.editorFooter {
	color: [[ColorPalette::TertiaryMid]];
}

/*}}}*/
/*{{{*/
* html .tiddler {
    height: 1%;
}

.imgfloatleft{float:left;}
.imgfloatright{float:right;padding:5px}
.imgfloatcenter{float:center;}

body {
	font-size: .75em;
	font-family: Lucida Grande, Tahoma, Arial, Helvetica, sans-serif;
	margin: 0;
	padding: 0;
}

h1,h2,h3,h4,h5 {
	font-weight: bold;
	text-decoration: none;
	padding-left: 0.4em;
}

h1 {font-size: 1.35em;}
h2 {font-size: 1.25em;}
h3 {font-size: 1.1em;}
h4 {font-size: 1em;}
h5 {font-size: .9em;}

hr {
	height: 1px;
}

a{
	text-decoration: none;
}

dt {font-weight: bold;}

ol { list-style-type: decimal }
ol ol { list-style-type: lower-alpha }
ol ol ol { list-style-type: lower-roman }
ol ol ol ol { list-style-type: decimal }
ol ol ol ol ol { list-style-type: lower-alpha }
ol ol ol ol ol ol { list-style-type: lower-roman }
ol ol ol ol ol ol ol { list-style-type: decimal }

.txtOptionInput {
	width: 11em;
}

#contentWrapper .chkOptionInput {
	border: 0;
}

.externalLink {
	text-decoration: underline;
}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {
	font-weight: bold;
}

.tiddlyLinkNonExisting {
	font-style: italic;
}

/* the 'a' is required for IE, otherwise it renders the whole tiddler a bold */
a.tiddlyLinkNonExisting.shadow {
	font-weight: bold;
}

#mainMenu .tiddlyLinkExisting, 
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting{
 font-weight: normal;
 font-style: normal;
}

#sidebarTabs .tiddlyLinkExisting {
 font-weight: bold;
 font-style: normal;
}

.header {
		position: relative;
}

.header a:hover {
	background: transparent;
}

.headerShadow {
	position: relative;
	padding: 1.9em 0em 1em 1em;
	left: -0px;
	top: -0px;
}

.headerForeground {
	position: absolute;
	padding: 1.9em 0em 1em 1em;
	left: 0px;
	top: 0px;
}

.siteTitle {
	font-size: 4.1em;
        font-family: 'Trebuchet MS' sans-serif;
}
.siteSubtitle {
	font-size: 1.4em;
        color: #666;
        font-family: 'Trebuchet MS' sans-serif;
}

#mainMenu {
	position: absolute;
	left: 0.4em;
	width: 8em;
	text-align: right;
	line-height: 1.6em;
	padding: 1.5em 0.5em 0.5em 0.5em;
	font-size: 1.2em;
}

#sidebar {
	position: absolute;
	right: 3px;
	width: 16em;
	font-size: .9em;
}

#sidebarOptions {
	padding-top: 0.3em;
}

#sidebarOptions a {
	margin: 0em 0.2em;
	padding: 0.2em 0.3em;
	display: block;
}

#sidebarOptions input {
	margin: 0.4em 0.5em;
}

#sidebarOptions .sliderPanel {
	margin-left: 1em;
	padding: 0.5em;
	font-size: .85em;
}

#sidebarOptions .sliderPanel a {
	font-weight: bold;
	display: inline;
	padding: 0;
}

#sidebarOptions .sliderPanel input {
	margin: 0 0 .3em 0;
}

#sidebarTabs .tabContents {
	width: 15em;
	overflow: hidden;
}

.wizard {
	padding: 0.1em 0em 0em 2em;
}

.wizard h1 {
	font-size: 2em;
	font-weight: bold;
	background: none;
	padding: 0em 0em 0em 0em;
	margin: 0.4em 0em 0.2em 0em;
}

.wizard h2 {
	font-size: 1.2em;
	font-weight: bold;
	background: none;
	padding: 0em 0em 0em 0em;
	margin: 0.2em 0em 0.2em 0em;
}

.wizardStep {
	padding: 1em 1em 1em 1em;
}

.wizard .button {
	margin: 0.5em 0em 0em 0em;
	font-size: 1.2em;
}

#messageArea {
position:absolute; top:0; right:0; margin: 0.5em; padding: 0.5em;
}

*[id='messageArea'] {
position:fixed !important; z-index:99;}

.messageToolbar {
display: block;
text-align: right;
}

#messageArea a{
	text-decoration: underline;
}

.popup {
	font-size: .9em;
	padding: 0.2em;
	list-style: none;
	margin: 0;
}

.popup hr {
	display: block;
	height: 1px;
	width: auto;
	padding: 0;
	margin: 0.2em 0em;
}

.popup li.disabled {
	padding: 0.2em;
}

.popup li a{
	display: block;
	padding: 0.2em;
}

.tabset {
	padding: 1em 0em 0em 0.5em;
}

.tab {
	margin: 0em 0em 0em 0.25em;
	padding: 2px;
}

.tabContents {
	padding: 0.5em;
}

.tabContents ul, .tabContents ol {
	margin: 0;
	padding: 0;
}

.txtMainTab .tabContents li {
	list-style: none;
}

.tabContents li.listLink {
	 margin-left: .75em;
}

#displayArea {
	margin: 1em 17em 0em 14em;
}


.toolbar {
	text-align: right;
	font-size: .9em;
	visibility: hidden;
}

.selected .toolbar {
	visibility: visible;
}

.tiddler {
	padding: 1em 1em 0em 1em;
}

.missing .viewer,.missing .title {
	font-style: italic;
}

.title {
	font-size: 1.8em;
	font-weight: normal;
        font-family: 'Trebuchet MS' sans-serif;
}

.missing .subtitle {
 display: none;
}

.subtitle {
	font-size: 1.1em;
}

.tiddler .button {
	padding: 0.2em 0.4em;
}

.tagging {
margin: 0.5em 0.5em 0.5em 0;
float: left;
display: none;
}

.isTag .tagging {
display: block;
}

.tagged {
margin: 0.5em;
float: right;
}

.tagging, .tagged {
font-size: 0.9em;
padding: 0.25em;
}

.tagging ul, .tagged ul {
list-style: none;margin: 0.25em;
padding: 0;
}

.tagClear {
clear: both;
}

.footer {
	font-size: .9em;
}

.footer li {
display: inline;
}

* html .viewer pre {
	width: 99%;
	padding: 0 0 1em 0;
}

.viewer {
	line-height: 1.4em;
	padding-top: 0.5em;
}

.viewer .button {
	margin: 0em 0.25em;
	padding: 0em 0.25em;
}

.viewer blockquote {
	line-height: 1.5em;
	padding-left: 0.8em;
	margin-left: 2.5em;
}

.viewer ul, .viewer ol{
	margin-left: 0.5em;
	padding-left: 1.5em;
}

.viewer table {
	border-collapse: collapse;
	margin: 0.8em 1.0em;
}

.viewer th, .viewer td, .viewer tr,.viewer caption{
	padding: 3px;
}

.viewer table.listView {
	font-size: 0.85em;
	margin: 0.8em 1.0em;
}

.viewer table.listView th, .viewer table.listView td, .viewer table.listView tr {
	padding: 0px 3px 0px 3px;
}

.viewer pre {
	padding: 0.5em;
	margin-left: 0.5em;
	font-size: 1.2em;
	line-height: 1.4em;
	overflow: auto;
}

.viewer code {
	font-size: 1.2em;
	line-height: 1.4em;
}

.editor {
font-size: 1.1em;
}

.editor input, .editor textarea {
	display: block;
	width: 100%;
	font: inherit;
}

.editorFooter {
	padding: 0.25em 0em;
	font-size: .9em;
}

.editorFooter .button {
padding-top: 0px; padding-bottom: 0px;}

.fieldsetFix {border: 0;
padding: 0;
margin: 1px 0px 1px 0px;
}

.sparkline {
	line-height: 1em;
}

.sparktick {
	outline: 0;
}

.zoomer {
	font-size: 1.1em;
	position: absolute;
	padding: 1em;
}

.cascade {
	font-size: 1.1em;
	position: absolute;
	overflow: hidden;
}
.viewer table.listView {
	font-size: 0.85em;	margin: 0.8em 1.0em;
}

.viewer table.listView th, .viewer table.listView td, .viewer table.listView tr {
	padding: 0px 3px 0px 3px;

}

.wizard {
	background: [[ColorPalette::SecondaryLight]];
	padding: 0.1em 0em 0em 2em;
	border-top: 1px solid [[ColorPalette::SecondaryMid]];
	border-left: 1px solid [[ColorPalette::SecondaryMid]];
}

.wizard h1 {
	font-size: 2em;	font-weight: bold;
	background: none;
	color: [[ColorPalette::SecondaryDark]];
	padding: 0em 0em 0em 0em;
	margin: 0.4em 0em 0.2em 0em;
}

.wizard h2 {
	font-size: 1.2em;	font-weight: bold;
	background: none;
	color: [[ColorPalette::Foreground]];
	padding: 0em 0em 0em 0em;
	margin: 0.2em 0em 0.2em 0em;
}

.wizardStep {
	background: [[ColorPalette::Background]];	padding: 1em 1em 1em 1em;
	border-top: 1px solid [[ColorPalette::SecondaryMid]];
	border-bottom: 1px solid [[ColorPalette::SecondaryMid]];
	border-left: 1px solid [[ColorPalette::SecondaryMid]];
}

.wizard .button {
	text-align: right;
}
/*}}}*/
<<timeline modified 40>>
This site was created using TiddlyWiki, whose author, Jeremy Ruston, writes:
<<<
TiddlyWiki is like a blog because it's divided up into neat little chunks, but it encourages you to read it by hyperlinking rather than sequentially: if you like, a non-linear blog analogue that binds the individual microcontent items into a cohesive whole. 
<<<

To learn more about TiddlyWiki, explore the [[TiddlyWiki web page|http://www.tiddlywiki.com]] or the [[Wikipedia entry|http://en.wikipedia.org/wiki/TiddlyWiki]].
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers' ></div>
<div class='title' macro='view title'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
[img[MoHDL|http://mechanicsofhearing.org/mohdl/rods_of_corti2x.png]]
The [[Mechanics of Hearing Digital Library]] (~MoHDL) maintains a collection of hard-to-find items relevant to auditory mechanics. Thanks to our [[sponsors|Sponsors]], the library has been made available to the hearing-science community for scholarly and educational purposes.
[>img[http://www.mechanicsofhearing.org/mohdl/CoverL.png]] The ''Proceedings of the 11th International Mechanics of Hearing Workshop'' have been published by the American Institute of Physics. The citation is
* //What Fire is in Mine Ears: Progress in Auditory Biomechanics//, edited by Christopher A. Shera and Elizabeth S. Olson. Melville, NY: American Institute of Physics, 2011
The printed volume can be [[purchased online|http://www.amazon.com/What-Fire-Mine-Ears-International/dp/0735409757]] (ISBN 978-0-7354-0975-0, 742 pages, 6 3/8 X 9 1/4 inches, softcover, $210 list). Electronic copies of the individual manuscripts are [[freely available on the AIP website|http://scitation.aip.org/content/aip/proceeding/aipcp/1403]] (open access). 

The complete digital version of the book is available here in both pdf and djvu formats. The djvu version is much smaller but has somewhat poorer resolution and does not support several nice features of the pdf (e.g., the distinction between physical and logical page numbers that enables easy navigation using the table of contents and author index). Both formats are searchable.
* [[WhatFireIsInMineEars-MoH2011Proceedings.pdf|http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/WhatFireIsInMineEars-MoH2011Proceedings.pdf]]
* [[WhatFireIsInMineEars-MoH2011Proceedings.djvu|http://www.mechanicsofhearing.org/mohdl/pdfs/MoH/WhatFireIsInMineEars-MoH2011Proceedings.djvu]]
N.B. Mac OS users report that bugs in Preview (Apple's default pdf viewer) prevent rendering of some conference photos. Rather than viewing the pdf directly in a browser, we recommend saving the book to disk and then opening it with Adobe Reader or some other truly pdf-compatible viewer.

Additional materials are available at the [[MoH Digital Library|Mechanics of Hearing Digital Library]].