Skip to content

Commit

Permalink
Merge branch 'release-0.8.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
bwbohl committed Mar 25, 2015
2 parents 55c6943 + 5259493 commit bf635cc
Show file tree
Hide file tree
Showing 33 changed files with 2,703 additions and 26 deletions.
2 changes: 1 addition & 1 deletion build.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project default="xar" name="proofMEIdata">

<property name="project.version" value="0.7.0-alpha"/>
<property name="project.version" value="0.8.0-alpha"/>
<property name="project.app" value="proofMEIdata"/>
<property name="build.dir" value="build"/>

Expand Down
2 changes: 1 addition & 1 deletion expath-pkg.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://expath.org/ns/pkg" name="http://freischuetz-digital.de/proofMEIdata" abbrev="proofMEIdata" version="0.7.0-alpha" spec="1.0">
<package xmlns="http://expath.org/ns/pkg" name="http://freischuetz-digital.de/proofMEIdata" abbrev="proofMEIdata" version="0.8.0-alpha" spec="1.0">
<title>FreiDi:proofMEIdata</title>
<dependency package="http://exist-db.org/apps/shared"/>
<dependency package="http://www.functx.com"/>
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Welcome to FreiDi:proofMEIdata Version 0.7.0-alpha</h1>
<h1>Welcome to FreiDi:proofMEIdata Version 0.8.0-alpha</h1>
<p>Please choose a tool from the top navigation…</p>
</div>
</div>
Expand Down
1 change: 1 addition & 0 deletions pmdCE/resources/js/controlEvents.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ var controlevents = (function(){
obj.tstamp2 = '';
obj.startStaffID = '';
obj.staff = '';
obj.docUri = currentSourcePath;

if(type === 'slur') {
obj.endIDs = new Array();
Expand Down
3 changes: 1 addition & 2 deletions pmdCE/resources/js/grid.js
Original file line number Diff line number Diff line change
Expand Up @@ -260,15 +260,14 @@ var grid = (function() {

for(var i=0;i<zoneArray.length;i++) {
var zone = zoneArray[i];

var tmpl = $('#templates .zoneButton').clone();
var top = (zone.uly / 2 + zone.lry / 2) / page.height * 100;
var left = (zone.lrx / 2 + zone.ulx / 2) / page.width * 100;

tmpl.css('top',top + '%');
tmpl.css('left', left + '%');
tmpl.attr('title',zone.targetID);
tmpl.on('click',onClickFunc);
tmpl.on('click',zone,onClickFunc);

$('#overlaidItems').append(tmpl);
}
Expand Down
8 changes: 4 additions & 4 deletions pmdCE/resources/js/guiEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -189,15 +189,15 @@ var guiEditor = (function() {

var setStartStaff = function(elem) {
console.log('init guiEditor.js : setStartStaff');
console.log(elem.data[0].n);
console.log(elem.data.n);
grid.unhighlight();

var staffID = $(this).attr('title');
console.log('staffID: ' + staffID);

controlEvent.startStaffID = staffID;
controlEvent.staff = elem.data[0].n;
editor.setAttribute('staff', elem.data[0].n);
controlEvent.staff = elem.data.n;
editor.setAttribute('staff', elem.data.n);



Expand Down Expand Up @@ -523,7 +523,7 @@ var guiEditor = (function() {

var obj = new Object();
obj.id = controlEvent.id;
obj.sourcePath = sourcePath;
obj.sourcePath = controlEvent.docUri;
obj.operation = 'remove';
obj.code = '';

Expand Down
4 changes: 2 additions & 2 deletions pmdCE/resources/xql/getTemplate.xql
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ let $id := request:get-parameter('id', '')

let $elem := if($type eq 'slur')
then(
<slur xmlns="http://www.music-encoding.org/ns/mei" xml:id="{$id}" sameas="" startid="" endid="" curvedir="above"/>
<slur xmlns="http://www.music-encoding.org/ns/mei" xml:id="{$id}" sameas="" startid="" endid="" staff="" curvedir="above"/>
)
else(

if($type eq 'hairpin')
then(
<hairpin xmlns="http://www.music-encoding.org/ns/mei" xml:id="{$id}" sameas="" startid="" endid="" form="cres"/>
<hairpin xmlns="http://www.music-encoding.org/ns/mei" xml:id="{$id}" sameas="" startid="" endid="" staff="" form="cres"/>
)
else(

Expand Down
4 changes: 2 additions & 2 deletions pmdCE/resources/xql/saveMEI.xql
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ let $change :=
let $operation := $x/string(@operation)
let $content := $x/*
let $startIDs := $content/descendant-or-self::mei:slur/string(@startid)
let $doc := doc('/db/apps/controlevents-data/' || $source)
let $measure := local:findMeasure($doc, $startIDs)
let $doc := if(ends-with($source,'.xml'))then(doc('/db/apps/controlevents-data/' || $source))else(collection('/db/apps/controlevents-data/')/id($source)/root())
let $measure := local:findMeasure($doc, $startIDs[1])
let $change :=
switch($operation)
case 'create' return
Expand Down
20 changes: 20 additions & 0 deletions pmdCE/resources/xsl/prepareRendering.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,26 @@
<xsl:apply-templates select="node() | @*" mode="#current"/>
</xsl:copy>
</xsl:template>

<!-- ignore cpMarks -->
<xsl:template match="mei:cpMark"/>

<!-- sic -->
<!-- abbr -->
<!-- expan -->
<xsl:template match="mei:choice" mode="#all">
<xsl:choose>
<xsl:when test="mei:sic and mei:corr">
<xsl:apply-templates select="mei:sic/*" mode="#current"/>
</xsl:when>
<xsl:when test="mei:abbr and mei:expan">
<xsl:apply-templates select="mei:expan/*" mode="#current"/>
</xsl:when>
<xsl:when test="mei:orig and mei:reg">
<xsl:apply-templates select="mei:reg/*" mode="#current"/>
</xsl:when>
</xsl:choose>
</xsl:template>

<!-- generic copy template -->
<xsl:template match="node() | @*" mode="#all">
Expand Down
69 changes: 69 additions & 0 deletions rendering/Verovio MEI Viewer_files/AudioDetect.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
-------------------------------------
MIDI.audioDetect : 0.3
-------------------------------------
https://github.com/mudcube/MIDI.js
-------------------------------------
Probably, Maybe, No... Absolutely!
-------------------------------------
Test to see what types of <audio> MIME types are playable by the browser.
-------------------------------------
*/

if (typeof(MIDI) === "undefined") var MIDI = {};

(function() { "use strict";

var supports = {};
var pending = 0;
var canPlayThrough = function (src) {
pending ++;
var audio = new Audio();
var mime = src.split(";")[0];
audio.id = "audio";
audio.setAttribute("preload", "auto");
audio.setAttribute("audiobuffer", true);
audio.addEventListener("error", function() {
supports[mime] = false;
pending --;
}, false);
audio.addEventListener("canplaythrough", function() {
supports[mime] = true;
pending --;
}, false);
audio.src = "data:" + src;
document.body.appendChild(audio);
};

MIDI.audioDetect = function(callback) {
// check whether <audio> tag is supported
if (typeof(Audio) === "undefined") return callback({});
// check whether canPlayType is supported
var audio = new Audio();
if (typeof(audio.canPlayType) === "undefined") return callback(supports);
// see what we can learn from the browser
var vorbis = audio.canPlayType('audio/ogg; codecs="vorbis"');
vorbis = (vorbis === "probably" || vorbis === "maybe");
var mpeg = audio.canPlayType('audio/mpeg');
mpeg = (mpeg === "probably" || mpeg === "maybe");
// maybe nothing is supported
if (!vorbis && !mpeg) {
callback(supports);
return;
}
// or maybe something is supported
if (vorbis) canPlayThrough("audio/ogg;base64,T2dnUwACAAAAAAAAAADqnjMlAAAAAOyyzPIBHgF2b3JiaXMAAAAAAUAfAABAHwAAQB8AAEAfAACZAU9nZ1MAAAAAAAAAAAAA6p4zJQEAAAANJGeqCj3//////////5ADdm9yYmlzLQAAAFhpcGguT3JnIGxpYlZvcmJpcyBJIDIwMTAxMTAxIChTY2hhdWZlbnVnZ2V0KQAAAAABBXZvcmJpcw9CQ1YBAAABAAxSFCElGVNKYwiVUlIpBR1jUFtHHWPUOUYhZBBTiEkZpXtPKpVYSsgRUlgpRR1TTFNJlVKWKUUdYxRTSCFT1jFloXMUS4ZJCSVsTa50FkvomWOWMUYdY85aSp1j1jFFHWNSUkmhcxg6ZiVkFDpGxehifDA6laJCKL7H3lLpLYWKW4q91xpT6y2EGEtpwQhhc+211dxKasUYY4wxxsXiUyiC0JBVAAABAABABAFCQ1YBAAoAAMJQDEVRgNCQVQBABgCAABRFcRTHcRxHkiTLAkJDVgEAQAAAAgAAKI7hKJIjSZJkWZZlWZameZaouaov+64u667t6roOhIasBACAAAAYRqF1TCqDEEPKQ4QUY9AzoxBDDEzGHGNONKQMMogzxZAyiFssLqgQBKEhKwKAKAAAwBjEGGIMOeekZFIi55iUTkoDnaPUUcoolRRLjBmlEluJMYLOUeooZZRCjKXFjFKJscRUAABAgAMAQICFUGjIigAgCgCAMAYphZRCjCnmFHOIMeUcgwwxxiBkzinoGJNOSuWck85JiRhjzjEHlXNOSuekctBJyaQTAAAQ4AAAEGAhFBqyIgCIEwAwSJKmWZomipamiaJniqrqiaKqWp5nmp5pqqpnmqpqqqrrmqrqypbnmaZnmqrqmaaqiqbquqaquq6nqrZsuqoum65q267s+rZru77uqapsm6or66bqyrrqyrbuurbtS56nqqKquq5nqq6ruq5uq65r25pqyq6purJtuq4tu7Js664s67pmqq5suqotm64s667s2rYqy7ovuq5uq7Ks+6os+75s67ru2rrwi65r66os674qy74x27bwy7ouHJMnqqqnqq7rmarrqq5r26rr2rqmmq5suq4tm6or26os67Yry7aumaosm64r26bryrIqy77vyrJui67r66Ys67oqy8Lu6roxzLat+6Lr6roqy7qvyrKuu7ru+7JuC7umqrpuyrKvm7Ks+7auC8us27oxuq7vq7It/KosC7+u+8Iy6z5jdF1fV21ZGFbZ9n3d95Vj1nVhWW1b+V1bZ7y+bgy7bvzKrQvLstq2scy6rSyvrxvDLux8W/iVmqratum6um7Ksq/Lui60dd1XRtf1fdW2fV+VZd+3hV9pG8OwjK6r+6os68Jry8ov67qw7MIvLKttK7+r68ow27qw3L6wLL/uC8uq277v6rrStXVluX2fsSu38QsAABhwAAAIMKEMFBqyIgCIEwBAEHIOKQahYgpCCKGkEEIqFWNSMuakZM5JKaWUFEpJrWJMSuaclMwxKaGUlkopqYRSWiqlxBRKaS2l1mJKqcVQSmulpNZKSa2llGJMrcUYMSYlc05K5pyUklJrJZXWMucoZQ5K6iCklEoqraTUYuacpA46Kx2E1EoqMZWUYgupxFZKaq2kFGMrMdXUWo4hpRhLSrGVlFptMdXWWqs1YkxK5pyUzDkqJaXWSiqtZc5J6iC01DkoqaTUYiopxco5SR2ElDLIqJSUWiupxBJSia20FGMpqcXUYq4pxRZDSS2WlFosqcTWYoy1tVRTJ6XFklKMJZUYW6y5ttZqDKXEVkqLsaSUW2sx1xZjjqGkFksrsZWUWmy15dhayzW1VGNKrdYWY40x5ZRrrT2n1mJNMdXaWqy51ZZbzLXnTkprpZQWS0oxttZijTHmHEppraQUWykpxtZara3FXEMpsZXSWiypxNhirLXFVmNqrcYWW62ltVprrb3GVlsurdXcYqw9tZRrrLXmWFNtBQAADDgAAASYUAYKDVkJAEQBAADGMMYYhEYpx5yT0ijlnHNSKucghJBS5hyEEFLKnINQSkuZcxBKSSmUklJqrYVSUmqttQIAAAocAAACbNCUWByg0JCVAEAqAIDBcTRNFFXVdX1fsSxRVFXXlW3jVyxNFFVVdm1b+DVRVFXXtW3bFn5NFFVVdmXZtoWiqrqybduybgvDqKqua9uybeuorqvbuq3bui9UXVmWbVu3dR3XtnXd9nVd+Bmzbeu2buu+8CMMR9/4IeTj+3RCCAAAT3AAACqwYXWEk6KxwEJDVgIAGQAAgDFKGYUYM0gxphhjTDHGmAAAgAEHAIAAE8pAoSErAoAoAADAOeecc84555xzzjnnnHPOOeecc44xxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY0wAwE6EA8BOhIVQaMhKACAcAABACCEpKaWUUkoRU85BSSmllFKqFIOMSkoppZRSpBR1lFJKKaWUIqWgpJJSSimllElJKaWUUkoppYw6SimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaVUSimllFJKKaWUUkoppRQAYPLgAACVYOMMK0lnhaPBhYasBAByAwAAhRiDEEJpraRUUkolVc5BKCWUlEpKKZWUUqqYgxBKKqmlklJKKbXSQSihlFBKKSWUUkooJYQQSgmhlFRCK6mEUkoHoYQSQimhhFRKKSWUzkEoIYUOQkmllNRCSB10VFIpIZVSSiklpZQ6CKGUklJLLZVSWkqpdBJSKamV1FJqqbWSUgmhpFZKSSWl0lpJJbUSSkklpZRSSymFVFJJJYSSUioltZZaSqm11lJIqZWUUkqppdRSSiWlkEpKqZSSUmollZRSaiGVlEpJKaTUSimlpFRCSamlUlpKLbWUSkmptFRSSaWUlEpJKaVSSksppRJKSqmllFpJKYWSUkoplZJSSyW1VEoKJaWUUkmptJRSSymVklIBAEAHDgAAAUZUWoidZlx5BI4oZJiAAgAAQABAgAkgMEBQMApBgDACAQAAAADAAAAfAABHARAR0ZzBAUKCwgJDg8MDAAAAAAAAAAAAAACAT2dnUwAEAAAAAAAAAADqnjMlAgAAADzQPmcBAQA=");
if (mpeg) canPlayThrough("audio/mpeg;base64,/+MYxAAAAANIAUAAAASEEB/jwOFM/0MM/90b/+RhST//w4NFwOjf///PZu////9lns5GFDv//l9GlUIEEIAAAgIg8Ir/JGq3/+MYxDsLIj5QMYcoAP0dv9HIjUcH//yYSg+CIbkGP//8w0bLVjUP///3Z0x5QCAv/yLjwtGKTEFNRTMuOTeqqqqqqqqqqqqq/+MYxEkNmdJkUYc4AKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq");
// lets find out!
var time = (new Date()).getTime();
var interval = window.setInterval(function() {
var now = (new Date()).getTime();
var maxExecution = now - time > 5000;
if (!pending || maxExecution) {
window.clearInterval(interval);
callback(supports);
}
}, 1);
};

})();
67 changes: 67 additions & 0 deletions rendering/Verovio MEI Viewer_files/Base64.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
// http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html

// window.atob and window.btoa

(function (window) {

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

window.btoa || (window.btoa = function encode64(input) {
input = escape(input);
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
do {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return output;
});

window.atob || (window.atob = function(input) {
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
var base64test = /[^A-Za-z0-9\+\/\=]/g;
if (base64test.exec(input)) {
alert("There were invalid base64 characters in the input text.\n" + "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n" + "Expect errors in decoding.");
}
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
do {
enc1 = keyStr.indexOf(input.charAt(i++));
enc2 = keyStr.indexOf(input.charAt(i++));
enc3 = keyStr.indexOf(input.charAt(i++));
enc4 = keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return unescape(output);
});

}(this));
Loading

0 comments on commit bf635cc

Please sign in to comment.