source: main/trunk/model-sites-dev/mars/collect/amc-audioDB/etc/collectionConfig.xml@ 30451

Last change on this file since 30451 was 30451, checked in by davidb, 8 years ago

Tweak to search VList

File size: 24.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<CollectionConfig xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3 <metadataList>
4 <metadata lang="en" name="creator"/>
5 <metadata lang="en" name="maintainer"/>
6 <metadata lang="en" name="public">true</metadata>
7 </metadataList>
8 <displayItemList>
9 <displayItem assigned="true" lang="en" name="description">
10 Demonstration of an audio content analysis based digital library, based around audioDB.
11 </displayItem>
12 <displayItem assigned="true" lang="en" name="name">AMC + audioDB </displayItem>
13 <displayItem assigned="true" lang="en" name="description">
14 &lt;p&gt;
15 Demonstration collection, based on the represented artists as the Australian Music Centre.
16 The collection demonstrates an experimental extension of Greenstone3, which
17 provides a music-based content-similarity search based on the Locality Sensitive Hashing (LSH)
18 algorithm provided by audioDB.
19 &lt;/p&gt;
20
21 &lt;p&gt;
22 The collection contains 1,200 clips of audio. Use the browse by title or composer tabs above
23 to navigate your way to a song, or else use the quick search box (upper-right) to locate
24 a song of interest. Details on how to perform a content-based audio search are given
25 on the page for playing a song.
26 &lt;/p&gt;
27
28 </displayItem>
29 <displayItem assigned="true" lang="en" name="amc.title">titles</displayItem>
30 <displayItem assigned="true" lang="en" name="amc.artist">artists</displayItem>
31 <displayItem assigned="true" lang="en" name="document:text">text</displayItem>
32 <displayItem assigned="true" lang="en" name="document:ex.Title">Title</displayItem>
33 <displayItem assigned="true" lang="en" name="document:ex.Source">Source</displayItem>
34 <displayItem assigned="true" lang="en" name="document">document</displayItem>
35 <displayItem assigned="true" lang="en" name="section">section</displayItem>
36 </displayItemList>
37 <format/>
38 <search type="lucene">
39 <level name="document">
40 <displayItem lang="en" name="name">document</displayItem>
41 </level>
42 <level name="section">
43 <displayItem lang="en" name="name">section</displayItem>
44 </level>
45 <defaultLevel name="document"/>
46 <index name="amc.title">
47 <displayItem lang="en" name="name">titles</displayItem>
48 </index>
49 <index name="amc.artist">
50 <displayItem lang="en" name="name">artists</displayItem>
51 </index>
52 <defaultIndex name="amc.title"/>
53 <indexOption name="casefold"/>
54 <indexOption name="stem"/>
55 <searchType name="plain"/>
56 <searchType name="simpleform"/>
57 <searchType name="advancedform"/>
58 <format>
59 <gsf:template match="documentNode">
60 <td valign="top">
61 <gsf:icon type="document"/>
62 </td>
63
64 <td>
65 <xsl:if test="/page/pageResponse/service/@name = 'AudioQuery'">
66 (<script>
67 var rank=<xsl:value-of select="@rank"/>;
68 var perc=(rank-0.9)*100*10;
69 document.write(perc.toFixed(1));
70 </script>%)
71 </xsl:if>
72 <a>
73 <xsl:choose>
74 <xsl:when test="/page/pageResponse/collection/@name">
75 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>&amp;p.frameOffset=<xsl:value-of select="@frameOffset"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;hl=on&amp;ed=1#<xsl:value-of select="@nodeID"/></xsl:attribute>
76 </xsl:when>
77 <xsl:when test="@collection">
78 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="@collection"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>p.frameOffset=<xsl:value-of select="@frameOffset"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;hl=on&amp;ed=1#<xsl:value-of select="@nodeID"/></xsl:attribute>
79 </xsl:when>
80 </xsl:choose>
81
82 <gsf:metadata name="amc.title"/>
83 by <gsf:metadata name="amc.artist"/>
84 </a>
85 <xsl:if test="/page/pageResponse/service/@name = 'AudioQuery'">
86<span style="font-style: italics; font-size: 90%" >
87Matching offset @
88<script>
89 <xsl:text disable-output-escaping="yes">
90 var frameOffsetStr="</xsl:text><xsl:value-of select="@frameOffset"/><xsl:text disable-output-escaping="yes">";
91 var frameOffsetList = frameOffsetStr.split(",");
92 for(i=0; i &lt; frameOffsetList.length; i++) {
93 var frameOffset = frameOffsetList[i];
94 var offsetInSecs=(250*frameOffset)/1000.0;
95 if (i &gt; 0) { document.write(", "); }
96 document.write(offsetInSecs.toFixed(2));
97 }
98 </xsl:text>
99</script> secs
100</span>
101 </xsl:if>
102
103 </td>
104 </gsf:template>
105
106
107
108
109
110
111 </format>
112 </search>
113
114 <search type="audioDB" orthogonal="true">
115 </search>
116
117 <infodb type="jdbm"/>
118 <import>
119 <pluginList>
120 <plugin name="ZIPPlugin"/>
121 <plugin name="GreenstoneXMLPlugin"/>
122 <plugin name="EmbeddedMetadataPlugin"/>
123 <plugin name="AMCMetadataJSONPlugin"/>
124
125 <plugin name="AudioDBPlugin">
126 <option name="-compute_fft_features" value="true"/>
127 <option name="-enable_streaming" value="mp3"/>
128 <option name="-enable_cache"/>
129 <option name="-process_exp" value="(?i)(\.m4a)$"/>
130 </plugin>
131
132
133 <plugin name="TextPlugin"/>
134 <plugin name="TextPlugin"/>
135 <plugin name="HTMLPlugin"/>
136 <plugin name="EmailPlugin"/>
137 <plugin name="PDFPlugin"/>
138 <plugin name="RTFPlugin"/>
139 <plugin name="WordPlugin"/>
140 <plugin name="PostScriptPlugin"/>
141 <plugin name="PowerPointPlugin"/>
142 <plugin name="ExcelPlugin"/>
143 <plugin name="ImagePlugin"/>
144 <plugin name="ISISPlugin"/>
145 <plugin name="NulPlugin"/>
146 <plugin name="OAIPlugin"/>
147 <plugin name="MetadataXMLPlugin"/>
148 <plugin name="ArchivesInfPlugin"/>
149 <plugin name="DirectoryPlugin"/>
150 </pluginList>
151 </import>
152 <browse>
153 <classifier name="AZCompactList">
154 <option name="-metadata" value="dc.Title;amc.title;ex.amc.title;Title"/>
155 <option name="-mingroup" value="2"/>
156 </classifier>
157 <classifier name="AZCompactList">
158 <option name="-metadata" value="dc.Creator,amc.artist,ex.amc.artist"/>
159 <option name="-buttonname" value="Artists"/>
160 <option name="-mingroup" value="1"/>
161 <option name="-minnesting" value="40"/>
162 </classifier>
163 <format>
164 <gsf:template match="documentNode">
165 <td valign="top">
166 <gsf:link type="document">
167 <gsf:icon type="document"/>
168 </gsf:link>
169 </td>
170 <td valign="top">
171 <gsf:link type="source">
172 <gsf:choose-metadata>
173 <gsf:metadata name="thumbicon"/>
174 <gsf:metadata name="srcicon"/>
175 </gsf:choose-metadata>
176 </gsf:link>
177 </td>
178 <td valign="top">
179 <gsf:link type="document">
180 <gsf:choose-metadata>
181 <gsf:metadata name="dc.Title"/>
182 <gsf:metadata name="amc.title"/>
183 <gsf:metadata name="exp.Title"/>
184 <gsf:metadata name="Title"/>
185 <gsf:default>Untitled</gsf:default>
186 </gsf:choose-metadata>
187 </gsf:link>
188 </td>
189 </gsf:template>
190 <gsf:template match="classifierNode">
191 <td valign="top">
192 <gsf:link type="classifier">
193 <gsf:icon type="classifier"/>
194 </gsf:link>
195 </td>
196 <td valign="top">(<gsf:metadata name="numleafdocs"/>)</td>
197 <td valign="top">
198 <gsf:link type="source">
199 <gsf:choose-metadata>
200 <gsf:metadata name="thumbicon"/>
201 <gsf:metadata name="srcicon"/>
202 </gsf:choose-metadata>
203 </gsf:link>
204 </td>
205 <td valign="top">
206 <gsf:link type="classifier">
207 <gsf:choose-metadata>
208 <gsf:metadata name="dc.Title"/>
209 <gsf:metadata name="amc.title"/>
210 <gsf:metadata name="exp.Title"/>
211 <gsf:metadata name="Title"/>
212 <gsf:default>Untitled</gsf:default>
213 </gsf:choose-metadata>
214 </gsf:link>
215 <gsf:switch>
216 <gsf:metadata name="Source"/>
217 <gsf:when test="exists">
218 <br/>
219 <i>(<gsf:metadata name="Source"/>)</i>
220 </gsf:when>
221 </gsf:switch>
222 </td>
223 </gsf:template>
224 <gsf:template match="classifierNode" mode="horizontal">
225 <gsf:link type="horizontal">
226 <gsf:metadata name="Title"/>
227 </gsf:link>
228 </gsf:template>
229 </format>
230 </browse>
231 <display>
232 <format>
233 <gsf:option name="TOC" value="false"/>
234 <gsf:template name="documentHeading">
235 <!-- title will be dsiplayed in playbar at top of page, so supress showing title here -->
236 <gsf:script src="interfaces/{$interface_name}/js/direct-edit-source.js"/>
237 <xsl:call-template name="init-direct-edit"/>
238
239 </gsf:template>
240 <gsf:template name="documentContentXXX">
241 <xsl:param name="collName"/>
242 <xsl:variable name="docID" select="@docID"/>
243 </gsf:template>
244
245 <xsl:template name="documentContent">
246 <xsl:variable name="httpCollection">
247 sites/<xsl:value-of select="$site_name"/>/collect/<xsl:value-of select="/page/pageResponse/collection/@name"/>
248 </xsl:variable>
249 <xsl:variable name="assocFilePath">
250 <gsf:metadata name="assocfilepath" select="root"/>
251 </xsl:variable>
252 <xsl:variable name="cgiargFrameOffset">
253 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameOffset']/@value"/>
254 </xsl:variable>
255 <xsl:variable name="lastfmtrackurl">
256 <gsf:metadata name="dc.Identifier.lastfmtrackurl"/>
257 </xsl:variable>
258 <xsl:variable name="imageUrls">
259 <gsf:metadata multiple="true" name="EchoNest.Artist-RelatedImage" separator="&amp;quot;, &amp;quot;"/>
260 </xsl:variable>
261 <xsl:variable name="echonestid">
262 <gsf:metadata name="dc.Identifier"/>
263 </xsl:variable>
264 <div class="documenttext">
265
266 <ul class="playlist">
267 <style>
268 ul.playlist li {
269 background-color: #87A41C;
270 }
271
272 ul.playlist li.sm2_playing {
273 background-color: #657C0D;
274 }
275
276 ul.playlist li:hover {
277 background-color: #778410;
278 }
279
280 </style>
281 <li class="rounded">
282 <a href="{$httpCollection}/index/assoc/{$assocFilePath}/doc.mp3" id="mysong">Play all of: <gsf:choose-metadata><gsf:metadata name="dc.Title"/><gsf:metadata name="amc.title"/><gsf:metadata name="exp.Title"/><gsf:metadata name="Title"/><gsf:default>Untitled</gsf:default></gsf:choose-metadata></a>
283 </li>
284 </ul>
285
286 <ul style="font-size: 80%; margin-top: 10px; font-style: italics; ">
287 <li>Click on the green bar above <b>to start</b> playing.</li>
288 <li>Click again in play area (outside of time-line) <b>to pause</b>.</li>
289 <li>Click <b>within time-line</b> to jump to that section of song
290 (assuming enough buffered downloading has occurred).</li>
291 </ul>
292<!--
293only put in the "Play match @ offset if got a valid offset value
294-->
295 <xsl:choose>
296 <xsl:when test="$cgiargFrameOffset != '' and $cgiargFrameOffset != '-1'">
297 <hr/>
298
299 <div style="cursor: pointer;">
300 <i>Play match @ offset <span id="mysongOffset"/></i>
301 </div>
302 </xsl:when>
303 </xsl:choose>
304 <hr/>
305 <form action="{$library_name}" method="get" name="QueryForm">
306 <input name="a" type="hidden" value="q"/>
307 <input name="sa" type="hidden">
308 <xsl:attribute name="value">
309 <xsl:value-of select="/page/pageRequest/@subaction"/>
310 </xsl:attribute>
311 </input>
312 <input name="rt" type="hidden" value="rd"/>
313 <input name="s" type="hidden" value="AudioQuery"/>
314 <input name="c" type="hidden" value="{$collName}"/>
315 <xsl:if test="not(paramList/param[@name='startPage'])">
316 <input name="startPage" type="hidden" value="1"/>
317 </xsl:if>
318 <xsl:choose>
319 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.maxDocs']">
320 <input name="s1.maxDocs" type="hidden">
321 <xsl:attribute name="value">
322 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.maxDocs']/@value"/>
323 </xsl:attribute>
324 </input>
325 </xsl:when>
326 <xsl:otherwise>
327 <input name="s1.maxDocs" type="hidden" value="100"/>
328 </xsl:otherwise>
329 </xsl:choose>
330 <xsl:choose>
331 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']">
332 <input name="s1.hitsPerPage" type="hidden">
333 <xsl:attribute name="value">
334 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']/@value"/>
335 </xsl:attribute>
336 </input>
337 </xsl:when>
338 <xsl:otherwise>
339 <input name="s1.hitsPerPage" type="hidden" value="20"/>
340 </xsl:otherwise>
341 </xsl:choose>
342 <input name="q" type="hidden" value="{$assocFilePath}" />
343 <input name="s1.query" type="hidden" value="{$assocFilePath}" />
344
345 <input name="s1.offset" type="hidden" value="0"/>
346 <input name="s1.length" type="hidden" value="200"/>
347 <div style="font-style: italics;">Start audio-based query @ offset <span id="mysongCurrentPos">0 secs</span>,
348with excerpt lasting <span class="editable-offset" id="mysongWindowDuration" style="cursor: pointer; border: 1px solid black; padding: 3px; width: 200px; min-width: 200px;">3.0</span> secs:<input onclick="preSubmit(this.form);" type="submit" value="Search"/></div>
349 <ul style="font-size: 80%; margin-top: 8px; font-style: italics;">
350 <li>Use the <b>Play all of</b> bar to get to the part of the song you are interested in.</li>
351 <li>... the <b>query @ offset</b> value will change accordingly as the song progresses.</li>
352 <li>Click <b>pause</b> (anywhere outside of the time-line) to mark the spot you want to start the new music query.</li>
353 <li>Optionally click on the <b>excerpt lasting</b> value and edit, if you want to change the length of excerpt used in the match.</li>
354 <li>Finally, click the <b>Search</b> button to initiate the new query.</li>
355 </ul>
356 </form>
357 <hr/>
358 <script>
359 <xsl:text disable-output-escaping="yes">if (window.location.toString().match(/fancyplayer/i)) {
360 PP_CONFIG.usePeakData = true;
361 PP_CONFIG.useEQData = true;
362 PP_CONFIG.useFavIcon = true;
363 }
364
365 function playFromOffset(id,frameOffset)
366 {
367 var msecOffset = 250 * frameOffset;
368 idElem = document.getElementById(id);
369 pagePlayer.handleClick({target:idElem}); /* fake a click */
370 soundManager.stopAll();
371 /* soundManager.setPosition(id,5000); */
372 soundManager.play(id,{position: msecOffset});
373 }
374
375 function preSubmit(form)
376 {
377 var currentPosElem = document.getElementById("mysongCurrentPos");
378 var offsetInMSecs = currentPosElem.getAttribute("offsetInMSecs");
379 var frameOffset = Math.round(offsetInMSecs/250.0);
380 form.elements["s1.offset"].value = frameOffset;
381
382 var lengthInSecs = document.getElementById("mysongWindowDuration").innerHTML;
383
384 var frameLength = Math.round(lengthInSecs*1000/250.0);
385 form.elements["s1.length"].value = frameLength;
386
387 return true;
388 }</xsl:text>
389 <xsl:choose>
390 <xsl:when test="$cgiargFrameOffset != '-1'">
391 <xsl:text disable-output-escaping="yes">var allOffsets = "";
392 var frameOffsetStr="</xsl:text>
393 <xsl:value-of select="$cgiargFrameOffset"/>
394 <xsl:text disable-output-escaping="yes">";
395 var frameOffsetList = frameOffsetStr.split(",");
396 frameOffsetList.sort(function(a,b){return a-b});
397
398 for (i=0; i &lt; frameOffsetList.length; i++) {
399 var frameOffset = frameOffsetList[i];
400 var offsetInSecs=(250*frameOffset)/1000.0;
401
402 if (i &gt; 0) { allOffsets += ", "; }
403
404 var span_attr = "class=\"spanbuttonoff\" style=\"cursor: pointer;\"";
405 span_attr += " onmouseover=\"this.className='spanbuttonon'\"";
406 span_attr += " onmouseout=\"this.className='spanbuttonoff'\"";
407 span_attr += " onclick=\"playFromOffset('mysong'," + frameOffset + ")\"";
408
409 allOffsets += "&lt;span " + span_attr + "&gt;" + offsetInSecs + "&lt;/span&gt;";
410 }
411
412 var jumpDurationSpan = document.getElementById("mysongOffset");
413 jumpDurationSpan.innerHTML = allOffsets + " secs";</xsl:text>
414 </xsl:when>
415 <xsl:otherwise>var frameOffset=-1;</xsl:otherwise>
416 </xsl:choose>
417 </script>
418 </div>
419 </xsl:template>
420<!--
421Creates a header for the html page
422-->
423 <xsl:template name="create-html-headerXXXX">
424 <title><xsl:call-template name="pageTitle"/> ::<xsl:call-template name="siteName"/></title>
425 <link href="interfaces/{$interface_name}/style/core.css" rel="stylesheet" type="text/css"/>
426 <link href="favicon.ico" rel="shortcut icon"/>
427<!--
428Hook in Seaweed: seamless web editing
429-->
430 <script src="interfaces/{$interface_name}/js/direct-edit-source.js" type="text/javascript">
431 <xsl:text> </xsl:text> </script>
432<!--
433Page player core CSS
434-->
435 <link href="ext/audioDB/css/page-player.css" rel="stylesheet" type="text/css"/>
436<!--
437soundManager.useFlashBlock: related CSS
438-->
439 <link href="ext/audioDB/css/flashblock.css" rel="stylesheet" type="text/css"/>
440<!--
441optional: annotations/sub-tracks/notes, and alternate themes
442-->
443 <link href="ext/audioDB/css/optional-annotations.css" rel="stylesheet" type="text/css"/>
444 <link href="ext/audioDB/css/optional-themes.css" rel="stylesheet" type="text/css"/>
445 <style type="text/css">ul.playlist li .comment {font-size:0.65em;opacity:0.5}</style>
446<!--
447soundManager API
448-->
449 <script src="ext/audioDB/script/soundmanager2-nodebug.js">
450 <xsl:text> </xsl:text> </script>
451 <script>
452 <xsl:text disable-output-escaping="yes">/* init Seaweed */
453
454
455 de.onready(function() {
456 try {
457 de.init();
458
459 de.doc.declarePropertySets({
460 offset: {
461 phMarkup: '[Enter offset value]',
462 name: "offset"
463 }
464 });
465 }
466 catch (err) {
467 alert("Seaweed failed to initialise: " + err.message);
468 }
469 });
470
471/* --------
472
473 Config override: This demo uses shiny flash 9 stuff, overwriting Flash 8-based defaults
474 Alternate PP_CONFIG object must be defined before soundManager.onready()/onload() fire.
475 Alternately, edit the config in page-player.js to simply use the values below by default
476
477-------- */
478
479/* demo only, but you can use these settings too.. */
480soundManager.flashVersion = 9;
481soundManager.preferFlash = true; /* for visualization effects */
482soundManager.useHighPerformance = true; /* keep flash on screen, boost performance */
483soundManager.wmode = "transparent"; /* transparent SWF, if possible */
484soundManager.useFastPolling = true; /* increased JS callback frequency */
485soundManager.url = "ext/audioDB/swf/";
486
487/* custom page player configuration */
488
489var PP_CONFIG = {
490 autoStart: false, /* begin playing first sound when page loads */
491 playNext: false, /* stop after one sound, or play through list until end */
492 useThrottling: false, /* try to rate-limit potentially-expensive calls (eg. dragging position around) */
493 usePeakData: true, /* [Flash 9 only] whether or not to show peak data (left/right channel values) - nor noticable on CPU */
494 useWaveformData: false,/* [Flash 9 only] show raw waveform data - WARNING: LIKELY VERY CPU-HEAVY */
495 useEQData: false, /* [Flash 9 only] show EQ (frequency spectrum) data */
496 useFavIcon: false, /* try to apply peakData to address bar (Firefox + Opera) - performance note: appears to make Firefox 3 do some temporary, heavy disk access/swapping/garbage collection at first(?) - may be too heavy on CPU */
497 useMovieStar: true /* Flash 9.0r115+ only: Support for a subset of MPEG4 formats. */
498}</xsl:text>
499 </script>
500<!--
501Page player main script
502-->
503 <script src="ext/audioDB/script/page-player.js">
504 <xsl:text> </xsl:text> </script>
505<!--
506optional: Metadata UI prototype (not needed unless you want the bottom-most demo bits)
507-->
508 <script src="ext/audioDB/script/optional-page-player-metadata.js">
509 <xsl:text> </xsl:text> </script>
510 </xsl:template>
511
512
513
514 <xsl:template name="additionalHeaderContent">
515<!--
516Page player core CSS
517-->
518 <link href="ext/audioDB/css/page-player.css" rel="stylesheet" type="text/css"/>
519<!--
520soundManager.useFlashBlock: related CSS
521-->
522 <link href="ext/audioDB/css/flashblock.css" rel="stylesheet" type="text/css"/>
523<!--
524optional: annotations/sub-tracks/notes, and alternate themes
525-->
526 <link href="ext/audioDB/css/optional-annotations.css" rel="stylesheet" type="text/css"/>
527 <link href="ext/audioDB/css/optional-themes.css" rel="stylesheet" type="text/css"/>
528 <style type="text/css">ul.playlist li .comment {font-size:0.65em;opacity:0.5}</style>
529<!--
530soundManager API
531-->
532 <script src="ext/audioDB/script/soundmanager2-nodebug.js">
533 <xsl:text> </xsl:text> </script>
534 <script>
535 <xsl:text disable-output-escaping="yes">
536
537/* --------
538
539 Config override: This demo uses shiny flash 9 stuff, overwriting Flash 8-based defaults
540 Alternate PP_CONFIG object must be defined before soundManager.onready()/onload() fire.
541 Alternately, edit the config in page-player.js to simply use the values below by default
542
543-------- */
544
545/* demo only, but you can use these settings too.. */
546soundManager.flashVersion = 9;
547soundManager.preferFlash = true; /* for visualization effects */
548soundManager.useHighPerformance = true; /* keep flash on screen, boost performance */
549soundManager.wmode = "transparent"; /* transparent SWF, if possible */
550soundManager.useFastPolling = true; /* increased JS callback frequency */
551soundManager.url = "ext/audioDB/swf/";
552
553/* custom page player configuration */
554
555var PP_CONFIG = {
556 autoStart: false, /* begin playing first sound when page loads */
557 playNext: false, /* stop after one sound, or play through list until end */
558 useThrottling: false, /* try to rate-limit potentially-expensive calls (eg. dragging position around) */
559 usePeakData: true, /* [Flash 9 only] whether or not to show peak data (left/right channel values) - nor noticable on CPU */
560 useWaveformData: false,/* [Flash 9 only] show raw waveform data - WARNING: LIKELY VERY CPU-HEAVY */
561 useEQData: false, /* [Flash 9 only] show EQ (frequency spectrum) data */
562 useFavIcon: false, /* try to apply peakData to address bar (Firefox + Opera) - performance note: appears to make Firefox 3 do some temporary, heavy disk access/swapping/garbage collection at first(?) - may be too heavy on CPU */
563 useMovieStar: true /* Flash 9.0r115+ only: Support for a subset of MPEG4 formats. */
564}</xsl:text>
565 </script>
566<!--
567Page player main script
568-->
569 <script src="ext/audioDB/script/page-player.js">
570 <xsl:text> </xsl:text> </script>
571<!--
572optional: Metadata UI prototype (not needed unless you want the bottom-most demo bits)
573-->
574 <script src="ext/audioDB/script/optional-page-player-metadata.js">
575 <xsl:text> </xsl:text> </script>
576 </xsl:template>
577
578
579
580
581
582 </format>
583 </display>
584 <replaceListRef id="gs2-standard"/>
585 <replaceListRef id="gs2-image"/>
586 <serviceRackList><!-- comment out the following serviceRack if you want to disable OAI for this collection -->
587 <serviceRack name="OAIPMH">
588 <ListMetadataFormats><!--What metadata sets to support is collection specific. To support other metadata schema, simply add a metadataFormat element here.
589 The support of unqualified Dublin Core metadata set is mandatory in the oai specification.
590 -->
591 <metadataFormat metadataPrefix="oai_dc">
592 <metadataPrefix>oai_dc</metadataPrefix>
593 <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
594 <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace><!--<metadataElements>dc.Title,dc.Creator,dc.Subject,dc.Description,dc.Publisher,dc.Contributor,dc.Date,dc.Type,dc.Format,dc.Identifier,dc.Source,dc.Language,dc.Relation,dc.Coverage,dc.Rights</metadataElements>
595 -->
596 <mappingList><!--
597 The mapping is in the form: <publicly supported metadata name>,<mapped metadata name>, short as <A>,<B>
598 The first metadata name is medatory; if there is no mapped name followed, then the first name must be used by the records and
599 searchable in the database, otherwise it is the mapped name stored in the database. The number of mapping elements matches the
600 number of external metadata of the records. If only one name is present, the returned metadata will use this name plus the retrieved value;
601 if both <A>,<B> are present, the returned metadata will use <A>'s name plus <B>'s value retrieved from database.
602
603 **Bear in mind: if this mapping list is not present, the standard dc. metadata names (15 in total) will be used to retrieve metadata in the database.
604
605 **The only case when this mapping is not present is that: 1. this metadata format is oai_dc; 2. the metadata is also stored in the database by Dublin Core's names.
606 -->
607 <mapping>dc.Title,amc.title,Title</mapping><!-- This mapping example means that the dc.Title is requested and the value of the metadata Title, which is used in this repository, is returned as response. -->
608 </mappingList>
609 </metadataFormat>
610 </ListMetadataFormats>
611 </serviceRack>
612 </serviceRackList>
613</CollectionConfig>
Note: See TracBrowser for help on using the repository browser.