Changeset 36958
- Timestamp:
- 2022-11-29T22:55:42+13:00 (12 months ago)
- Location:
- gs3-installations/mars/trunk/sites/mars/collect/amc-essentia
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/etc/collectionConfig.xml
r36865 r36958 11 11 <h4>Overview</h4> 12 12 <p> 13 This con ent analysis enhanced digital library collection is14 comprised of 9960 audio files from 13 This content analysis enhanced digital library collection is 14 comprised of 9960 audio files from the 15 15 <a href="https://www.australianmusiccentre.com.au/"> 16 16 Australian Music Centre</a>, an organisation … … 33 33 and valence that a section of music evokes. We have chosen 34 34 REPTree for the predictive modeling, a fast decision tree 35 learner that explo ts gain/variance and pruning (with36 back fitting) to build a regression tree.35 learner that exploits gain/variance and pruning (with 36 back-fitting) to build a regression tree. 37 37 </p> 38 38 … … 44 44 features, which are then used to predict arousal and valence 45 45 features throughout each audio file, currently set to using 46 a window of 6 seconds and an over alof 50%. This is stored46 a window of 6 seconds and an overlap of 50%. This is stored 47 47 as metadata within the built digital library, alongside 48 48 the more regular metadata values for title and artist. … … 53 53 service-based architecture</a> we have enriched the user's experience 54 54 of listening to a work in the digital library collection. The most prominent 55 feature is a frequency spec ogram of the work, with a timeline bar that56 moves through the work as it is play . The timeline bar visually shows the57 computed level of arousal by broadening the width the timeline bar as the55 feature is a frequency spectrogram of the work, with a timeline bar that 56 moves through the work as it is played. The timeline bar visually shows the 57 computed level of arousal by broadening the width of the timeline bar as the 58 58 level of arousal rises. The timeline bar is rendered in white, varying 59 59 the brightness used to reflect the computed level of valence. … … 61 61 62 62 <p> 63 Below the AV freque cy visualizer, is a <i>Recommend</i>64 button. If a user clicks on this, thenâagain leveraging 65 the service-based architecture to the digital library66 softwareâfor the passage of work being played its values67 of arousal and valence are used to select other works68 in the digital library collection that69 share similar features. Thisare added at the bottom of63 Below the AV frequency visualizer, is a <i>Recommend</i> 64 button. If a user clicks on this, thenâagain leveraging the 65 service-based architecture to the digital library softwareâthe 66 values of arousal and valence for the passage of work being 67 played are used to select other works in the digital library 68 collection that share similar features. 69 These are added at the bottom of 70 70 the page as recommendations that the user might also like 71 71 to listen to. … … 619 619 </div> 620 620 </div> 621 621 622 622 623 <div> 623 624 <div class="controls"> 624 <style> 625 .controls .btn { 626 margin-bottom: 25px; 627 } 628 </style> 629 630 <div id="av-timelinebar-help" style="display: none; background-color: rgb(255,255,255); padding: 6px; position: absolute; right: 4px; font-style: italic; font-size: 90%; padding-top: 0.5rem;"> 631 Audio player Arousal-Valence timeline bar: 632 <ul style="margin: 0.2rem;"> 633 <li>Width corresponds to valence</li> 634 <li>Intensity of white corresponds to arousal</li> 635 </ul> 636 </div> 637 638 <div class="controls" style="padding-bottom: 0px;"> 625 639 <button class="btn btn-primary" onclick="AVSeekTo(0)"> 626 640 <i id="ws-return-to-start-icon" class="fa-solid fa-backward-fast" ><xsl:text> </xsl:text></i> … … 644 658 </button> 645 659 646 </div> 660 </div> 661 647 662 </div> 663 648 664 </div> 649 665 650 666 <gsf:variable name="mp3url"><xsl:value-of select="$httpCollection"/>/index/assoc/<xsl:value-of select="$assocFilePath"/>/audio.mp3</gsf:variable> 651 667 … … 763 779 </div> 764 780 </form> 765 <div id="resultsAreaDiv" style="padding-top: 1rem;"> 766 <xsl:text> </xsl:text> 781 <div> 782 <div id="av-chart-div" style="height: 265px; width: 250px; float: right; display: none;"> 783 <img id="av-chart-img" width="250" src="{$library_name}/sites/{$site_name}/collect/{$collName}/images/av-diagram-bw.svg" /> 784 <div> 785 <i>Or click inside the Arousal-Valence visualisation above to initiate a new AV-based recommendation.</i> 786 </div> 787 788 </div> 789 <div id="resultsAreaDiv" style="padding-top: 1rem; min-height: 265px; display: none;"> 790 <xsl:text> </xsl:text> 791 </div> 767 792 </div> 793 768 794 </div> 769 795 <hr/> -
gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/js/av_document.js
r36865 r36958 148 148 149 149 $('#recommendationArea').css("cursor","wait"); 150 $('#resultsAreaDiv').slideDown(); 150 151 $('#resultsAreaDiv').html("Retrieving recommendation ..."); 151 152 … … 162 163 }) 163 164 .done(function(html_result) { 164 $('#resultsAreaDiv').html(html_result); 165 165 $('#resultsAreaDiv').html("<div>Recommendations:</div>"+html_result); 166 $('#av-chart-div').show(); 167 166 168 const updated_url = new URL(window.location); 167 169 updated_url.searchParams.set('p.frameOffset', current_time); … … 228 230 wavesurfer.seekTo(frameOffset/AMC_SONG_DURATION); 229 231 230 if (frameOffset>1.0) { 232 console.log("av_document.js keeping 'currentPosRunup' at 0"); 233 /*if (frameOffset>1.0) { 231 234 currentPosRunup = 1.0; // 1 second 232 } 235 }*/ 233 236 } 234 237 }); 235 238 239 } 240 241 /* 242 243 y-top: 146 244 245 Centre: 412,443 246 247 y-bot:735 248 249 x-left: 120 250 251 x-right 710 252 253 254 Full image: 255 911 x 825 pxs 256 257 258 259 AV centre: 412,443 260 261 delta x/y: from centre: 292 <-> 298 262 -1 <-> 0 <-> +1 263 295 295 264 265 266 SVG: 267 268 241 x 248 269 scaled 270 0.26458 271 272 */ 273 274 var av_chart_orig_r = 295; 275 276 var av_chart_orig_x_org = 412; 277 var av_chart_orig_y_org = 443; 278 279 var av_chart_orig_x_dim = 911; 280 var av_chart_orig_y_dim = 825; 281 282 var av_chart_disp_x_dim = 250; 283 var av_chart_disp_x_mid = av_chart_disp_x_dim/2.0; 284 285 var av_chart_scale = av_chart_orig_x_dim / av_chart_disp_x_dim; 286 287 function av_chart_click(elem,e) 288 { 289 var offset = $(elem).offset(); 290 291 var elem_x_org = offset.left; 292 var elem_y_org = offset.top; 293 294 var disp_x = e.pageX - elem_x_org; 295 var disp_y = e.pageY - elem_y_org; 296 297 var scaled_disp_x = disp_x * av_chart_scale; 298 var scaled_disp_y = disp_y * av_chart_scale; 299 300 var orig_av_x = scaled_disp_x - av_chart_orig_x_org; 301 var orig_av_y = -1 * (scaled_disp_y - av_chart_orig_y_org); // flip y axis 302 303 var av_x = orig_av_x / av_chart_orig_r; 304 var av_y = orig_av_y / av_chart_orig_r; 305 306 var capped_av_x = Math.max(Math.min(av_x,1.0),-1.0); 307 var capped_av_y = Math.max(Math.min(av_y,1.0),-1.0); 308 309 310 console.log(`av x,y: (${capped_av_x},${capped_av_y})`); 311 236 312 } 237 313 … … 247 323 $('#switch-to-spectrogram').attr("href",sts_url); 248 324 $('#switch-to-waveform').hide(); 325 326 $('#av-timelinebar-help').hide(); 249 327 } 250 328 else { … … 255 333 $('#switch-to-waveform').attr("href",stw_url); 256 334 $('#switch-to-spectrogram').hide(); 257 } 258 335 336 $('#av-timelinebar-help').show(); 337 } 338 339 $('#av-chart-img').on("click",function(e) { av_chart_click(this,e) } ); 259 340 }); 260 341
Note:
See TracChangeset
for help on using the changeset viewer.