Show chord diagrams on j-total
by
maRk
2015-10-14 [2015/10/14 21:03:47]
マウスオーバーでコード表示
@@ -7,13 +7,13 @@
*/
(function(){
var chords = document.querySelectorAll('tt a[href]');
- Array.prototype.forEach.call(chords, function(elm){
- elm.addEventListener('mouseover', function(){
+ Array.prototype.forEach.call(chords, function (elm) {
+ elm.addEventListener('mouseover', function () {
showchord(elm, elm.href);
}, false);
- elm.addEventListener('mouseleave', function(){
- setTimeout(function(){
- if (elm.hasChildNodes()){
+ elm.addEventListener('mouseleave', function () {
+ setTimeout(function () {
+ if (elm.hasChildNodes()) {
for (var i = 1; i < (elm.childNodes.length); i++) {
elm.removeChild(elm.childNodes[i]);
}
@@ -22,23 +22,153 @@
}, false);
});
function showchord(e, c){
+ var chord_list = {
+ 'C$': 'C$_D$$',
+ 'D&': 'C$_D$$',
+ 'D$': 'D$_E$$',
+ 'E&': 'D$_E$$',
+ 'F$': 'F$_G$$',
+ 'G&': 'F$_G$$',
+ 'G$': 'G$_A$$',
+ 'A&': 'G$_A$$',
+ 'A$': 'A$_B$$',
+ 'B&': 'A$_B$$',
+ // m chord
+ 'C$m': 'C$m_D$$m',
+ 'D&m': 'C$m_D$$m',
+ 'D$m': 'D$m_E$$m',
+ 'E&m': 'D$m_E$$m',
+ 'F$m': 'F$m_G$$m',
+ 'G&m': 'F$m_G$$m',
+ 'G$m': 'G$m_A$$m',
+ 'A&m': 'G$m_A$$m',
+ 'A$m': 'A$m_B$$m',
+ 'B&m': 'A$m_B$$m',
+ // add 9th
+ 'C$add9': 'C$add9_D$$add9',
+ 'D&add9': 'C$add9_D$$add9',
+ 'D$add9': 'D$add9_E$$add9',
+ 'E&add9': 'D$add9_E$$add9',
+ 'F$add9': 'F$add9_G$$add9',
+ 'G&add9': 'F$add9_G$$add9',
+ 'G$add9': 'G$add9_A$$add9',
+ 'A&add9': 'G$add9_A$$add9',
+ 'A$add9': 'A$add9_B$$add9',
+ 'B&add9': 'A$add9_B$$add9',
+ // 7th
+ 'C$7': 'C$7_D$$7',
+ 'D&7': 'C$7_D$$7',
+ 'D$7': 'D$7_E$$7',
+ 'E&7': 'D$7_E$$7',
+ 'F$7': 'F$7_G$$7',
+ 'G&7': 'F$7_G$$7',
+ 'G$7': 'G$7_A$$7',
+ 'A&7': 'G$7_A$$7',
+ 'A$7': 'A$7_B$$7',
+ 'B&7': 'A$7_B$$7',
+ // M7
+ 'C$mag7': 'C$mag7_D$$mag7',
+ 'D&mag7': 'C$mag7_D$$mag7',
+ 'D$mag7': 'D$mag7_E$$mag7',
+ 'E&mag7': 'D$mag7_E$$mag7',
+ 'F$mag7': 'F$mag7_G$$mag7',
+ 'G&mag7': 'F$mag7_G$$mag7',
+ 'G$mag7': 'G$mag7_A$$mag7',
+ 'A&mag7': 'G$mag7_A$$mag7',
+ 'A$mag7': 'A$mag7_B$$mag7',
+ 'B&mag7': 'A$mag7_B$$mag7',
+ // minor 7
+ 'C$m7': 'C$m7_D$$m7',
+ 'D&m7': 'C$m7_D$$m7',
+ 'D$m7': 'D$m7_E$$m7',
+ 'E&m7': 'D$m7_E$$m7',
+ 'F$m7': 'F$m7_G$$m7',
+ 'G&m7': 'F$m7_G$$m7',
+ 'G$m7': 'G$m7_A$$m7',
+ 'A&m7': 'G$m7_A$$m7',
+ 'A$m7': 'A$m7_B$$m7',
+ 'B&m7': 'A$m7_B$$m7',
+ // dim
+ 'C$dim': 'C$dim_D$$dim',
+ 'D&dim': 'C$dim_D$$dim',
+ 'D$dim': 'D$dim_E$$dim',
+ 'E&dim': 'D$dim_E$$dim',
+ 'F$dim': 'F$dim_G$$dim',
+ 'G&dim': 'F$dim_G$$dim',
+ 'G$dim': 'G$dim_A$$dim',
+ 'A&dim': 'G$dim_A$$dim',
+ 'A$dim': 'A$dim_B$$dim',
+ 'B&dim': 'A$dim_B$$dim',
+ // minor 7 -5
+ 'C$m7&5': 'C$m7&5_D$$m7&5',
+ 'D&m7&5': 'C$m7&5_D$$m7&5',
+ 'D$m7&5': 'D$m7&5_E$$m7&5',
+ 'E&m7&5': 'D$m7&5_E$$m7&5',
+ 'F$m7&5': 'F$m7&5_G$$m7&5',
+ 'G&m7&5': 'F$m7&5_G$$m7&5',
+ 'G$m7&5': 'G$m7&5_A$$m7&5',
+ 'A&m7&5': 'G$m7&5_A$$m7&5',
+ 'A$m7&5': 'A$m7&5_B$$m7&5',
+ 'B&m7&5': 'A$m7&5_B$$m7&5',
+ // augumented
+ 'C$aug': 'C$aug_D$$aug',
+ 'D&aug': 'C$aug_D$$aug',
+ 'D$aug': 'D$aug_E$$aug',
+ 'E&aug': 'D$aug_E$$aug',
+ 'F$aug': 'F$aug_G$$aug',
+ 'G&aug': 'F$aug_G$$aug',
+ 'G$aug': 'G$aug_A$$aug',
+ 'A&aug': 'G$aug_A$$aug',
+ 'A$aug': 'A$aug_B$$aug',
+ 'B&aug': 'A$aug_B$$aug',
+ // M7 sus 4
+ 'C$7sus4': 'C$7sus4_D$$7sus4',
+ 'D&7sus4': 'C$7sus4_D$$7sus4',
+ 'D$7sus4': 'D$7sus4_E$$7sus4',
+ 'E&7sus4': 'D$7sus4_E$$7sus4',
+ 'F$7sus4': 'F$7sus4_G$$7sus4',
+ 'G&7sus4': 'F$7sus4_G$$7sus4',
+ 'G$7sus4': 'G$7sus4_A$$7sus4',
+ 'A&7sus4': 'G$7sus4_A$$7sus4',
+ 'A$7sus4': 'A$7sus4_B$$7sus4',
+ 'B&7sus4': 'A$7sus4_B$$7sus4',
+ // 6th
+ 'C$6': 'C$6_D$$6',
+ 'D&6': 'C$6_D$$6',
+ 'D$6': 'D$6_E$$6',
+ 'E&6': 'D$6_E$$6',
+ 'F$6': 'F$6_G$$6',
+ 'G&6': 'F$6_G$$6',
+ 'G$6': 'G$6_A$$6',
+ 'A&6': 'G$6_A$$6',
+ 'A$6': 'A$6_B$$6',
+ 'B&6': 'A$6_B$$6'
+ };
+ var this_chord = c.replace(/.+\/(.*)\.html\'\);$/, '$1');
+ if (/[$&]+/g.test(this_chord)){
+ this_chord = chord_list[this_chord];
+ }
+ if (!this_chord) return;
var x = new XMLHttpRequest();
- var this_chord = c.replace(/.+\/(.*)\.html\'\);$/, '/cd/img/$1.gif');
- x.open('GET', this_chord);
+ x.open('GET', '/cd/img/' + this_chord + '.gif');
x.responseType = 'blob';
x.onload = function(){
- if (this.status == 200){
+ if (this.status == 200) {
var blob = this.response;
var img = document.createElement('img');
- img.onload = function(){
+ img.onload = function () {
window.URL.revokeObjectURL(img.src);
};
img.src = window.URL.createObjectURL(blob);
- if(e.childNodes.length<2){
+ if (e.childNodes.length < 2) {
e.appendChild(img);
}
}
};
x.send();
}
-})();
+})();
+
+/* checked @ 1444824000
+ http://music.j-total.net/data/032mi/009_Mr_Children/013.html
+*/
/*
* @title Show chord diagrams on j-total
* @description マウスオーバーでコード表示
* @include http://music.j-total.net/data/*
* @license MIT License
* @require
*/
(function(){
var chords = document.querySelectorAll('tt a[href]');
Array.prototype.forEach.call(chords, function (elm) {
elm.addEventListener('mouseover', function () {
showchord(elm, elm.href);
}, false);
elm.addEventListener('mouseleave', function () {
setTimeout(function () {
if (elm.hasChildNodes()) {
for (var i = 1; i < (elm.childNodes.length); i++) {
elm.removeChild(elm.childNodes[i]);
}
}
}, 1500);
}, false);
});
function showchord(e, c){
var chord_list = {
'C$': 'C$_D$$',
'D&': 'C$_D$$',
'D$': 'D$_E$$',
'E&': 'D$_E$$',
'F$': 'F$_G$$',
'G&': 'F$_G$$',
'G$': 'G$_A$$',
'A&': 'G$_A$$',
'A$': 'A$_B$$',
'B&': 'A$_B$$',
// m chord
'C$m': 'C$m_D$$m',
'D&m': 'C$m_D$$m',
'D$m': 'D$m_E$$m',
'E&m': 'D$m_E$$m',
'F$m': 'F$m_G$$m',
'G&m': 'F$m_G$$m',
'G$m': 'G$m_A$$m',
'A&m': 'G$m_A$$m',
'A$m': 'A$m_B$$m',
'B&m': 'A$m_B$$m',
// add 9th
'C$add9': 'C$add9_D$$add9',
'D&add9': 'C$add9_D$$add9',
'D$add9': 'D$add9_E$$add9',
'E&add9': 'D$add9_E$$add9',
'F$add9': 'F$add9_G$$add9',
'G&add9': 'F$add9_G$$add9',
'G$add9': 'G$add9_A$$add9',
'A&add9': 'G$add9_A$$add9',
'A$add9': 'A$add9_B$$add9',
'B&add9': 'A$add9_B$$add9',
// 7th
'C$7': 'C$7_D$$7',
'D&7': 'C$7_D$$7',
'D$7': 'D$7_E$$7',
'E&7': 'D$7_E$$7',
'F$7': 'F$7_G$$7',
'G&7': 'F$7_G$$7',
'G$7': 'G$7_A$$7',
'A&7': 'G$7_A$$7',
'A$7': 'A$7_B$$7',
'B&7': 'A$7_B$$7',
// M7
'C$mag7': 'C$mag7_D$$mag7',
'D&mag7': 'C$mag7_D$$mag7',
'D$mag7': 'D$mag7_E$$mag7',
'E&mag7': 'D$mag7_E$$mag7',
'F$mag7': 'F$mag7_G$$mag7',
'G&mag7': 'F$mag7_G$$mag7',
'G$mag7': 'G$mag7_A$$mag7',
'A&mag7': 'G$mag7_A$$mag7',
'A$mag7': 'A$mag7_B$$mag7',
'B&mag7': 'A$mag7_B$$mag7',
// minor 7
'C$m7': 'C$m7_D$$m7',
'D&m7': 'C$m7_D$$m7',
'D$m7': 'D$m7_E$$m7',
'E&m7': 'D$m7_E$$m7',
'F$m7': 'F$m7_G$$m7',
'G&m7': 'F$m7_G$$m7',
'G$m7': 'G$m7_A$$m7',
'A&m7': 'G$m7_A$$m7',
'A$m7': 'A$m7_B$$m7',
'B&m7': 'A$m7_B$$m7',
// dim
'C$dim': 'C$dim_D$$dim',
'D&dim': 'C$dim_D$$dim',
'D$dim': 'D$dim_E$$dim',
'E&dim': 'D$dim_E$$dim',
'F$dim': 'F$dim_G$$dim',
'G&dim': 'F$dim_G$$dim',
'G$dim': 'G$dim_A$$dim',
'A&dim': 'G$dim_A$$dim',
'A$dim': 'A$dim_B$$dim',
'B&dim': 'A$dim_B$$dim',
// minor 7 -5
'C$m7&5': 'C$m7&5_D$$m7&5',
'D&m7&5': 'C$m7&5_D$$m7&5',
'D$m7&5': 'D$m7&5_E$$m7&5',
'E&m7&5': 'D$m7&5_E$$m7&5',
'F$m7&5': 'F$m7&5_G$$m7&5',
'G&m7&5': 'F$m7&5_G$$m7&5',
'G$m7&5': 'G$m7&5_A$$m7&5',
'A&m7&5': 'G$m7&5_A$$m7&5',
'A$m7&5': 'A$m7&5_B$$m7&5',
'B&m7&5': 'A$m7&5_B$$m7&5',
// augumented
'C$aug': 'C$aug_D$$aug',
'D&aug': 'C$aug_D$$aug',
'D$aug': 'D$aug_E$$aug',
'E&aug': 'D$aug_E$$aug',
'F$aug': 'F$aug_G$$aug',
'G&aug': 'F$aug_G$$aug',
'G$aug': 'G$aug_A$$aug',
'A&aug': 'G$aug_A$$aug',
'A$aug': 'A$aug_B$$aug',
'B&aug': 'A$aug_B$$aug',
// M7 sus 4
'C$7sus4': 'C$7sus4_D$$7sus4',
'D&7sus4': 'C$7sus4_D$$7sus4',
'D$7sus4': 'D$7sus4_E$$7sus4',
'E&7sus4': 'D$7sus4_E$$7sus4',
'F$7sus4': 'F$7sus4_G$$7sus4',
'G&7sus4': 'F$7sus4_G$$7sus4',
'G$7sus4': 'G$7sus4_A$$7sus4',
'A&7sus4': 'G$7sus4_A$$7sus4',
'A$7sus4': 'A$7sus4_B$$7sus4',
'B&7sus4': 'A$7sus4_B$$7sus4',
// 6th
'C$6': 'C$6_D$$6',
'D&6': 'C$6_D$$6',
'D$6': 'D$6_E$$6',
'E&6': 'D$6_E$$6',
'F$6': 'F$6_G$$6',
'G&6': 'F$6_G$$6',
'G$6': 'G$6_A$$6',
'A&6': 'G$6_A$$6',
'A$6': 'A$6_B$$6',
'B&6': 'A$6_B$$6'
};
var this_chord = c.replace(/.+\/(.*)\.html\'\);$/, '$1');
if (/[$&]+/g.test(this_chord)){
this_chord = chord_list[this_chord];
}
if (!this_chord) return;
var x = new XMLHttpRequest();
x.open('GET', '/cd/img/' + this_chord + '.gif');
x.responseType = 'blob';
x.onload = function(){
if (this.status == 200) {
var blob = this.response;
var img = document.createElement('img');
img.onload = function () {
window.URL.revokeObjectURL(img.src);
};
img.src = window.URL.createObjectURL(blob);
if (e.childNodes.length < 2) {
e.appendChild(img);
}
}
};
x.send();
}
})();
/* checked @ 1444824000
http://music.j-total.net/data/032mi/009_Mr_Children/013.html
*/
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。