{"id":910,"date":"2026-11-13T10:00:53","date_gmt":"2026-11-13T01:00:53","guid":{"rendered":"https:\/\/guitarschool.in\/?page_id=910"},"modified":"2026-11-13T17:14:15","modified_gmt":"2026-11-13T08:14:15","slug":"theory","status":"publish","type":"page","link":"https:\/\/guitarschool.in\/?page_id=910","title":{"rendered":"\u697d\u5178\u30af\u30a4\u30ba"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"910\" class=\"elementor elementor-910\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-01714eb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"01714eb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fde9304\" data-id=\"fde9304\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-666f373 elementor-widget elementor-widget-html\" data-id=\"666f373\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>.lt-nav{max-width:760px;margin:0 auto;padding:4px 16px;font-family:\"Hiragino Sans\",\"Noto Sans JP\",\"Yu Gothic\",sans-serif;font-size:14px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.lt-nav a{color:#b5532a;font-weight:700;text-decoration:none}.lt-nav a:hover{text-decoration:underline}.lt-nav .lt-sub{color:#7a6e64}.lt-nav .lt-back{display:inline-block;padding:6px 14px;border:1px solid #e3d9cc;border-radius:999px;background:#fff}<\/style><nav class=\"lt-nav\" aria-label=\"\u5b66\u7fd2\u30fb\u8cc7\u6599\u5ba4\"><a class=\"lt-back\" href=\"\/?page_id=907\">\u2190 \u5b66\u7fd2\u30fb\u8cc7\u6599\u5ba4\u306b\u623b\u308b<\/a><\/nav>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c399662 elementor-widget elementor-widget-html\" data-id=\"c399662\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- \u697d\u5178\u30af\u30a4\u30ba(Elementor \u306e HTML \u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306b\u3053\u306e\u307e\u307e\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044) -->\n<div id=\"tq-app\">\n<style>\n#tq-app{--tq-bg:#fbf8f3;--tq-ink:#2b2420;--tq-sub:#7a6e64;--tq-accent:#b5532a;--tq-ok:#2f7d4f;--tq-ng:#c0392b;--tq-line:#e3d9cc;\n  max-width:760px;margin:0 auto;padding:16px;background:var(--tq-bg);color:var(--tq-ink);border-radius:14px;\n  font-family:\"Hiragino Sans\",\"Noto Sans JP\",\"Yu Gothic\",sans-serif;line-height:1.5;box-sizing:border-box}\n#tq-app *{box-sizing:border-box}\n#tq-app .tq-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}\n#tq-app .tq-title{font-size:20px;font-weight:700;margin:0;color:var(--tq-ink)}\n#tq-app .tq-stats{font-size:13px;color:var(--tq-sub);display:flex;gap:12px;flex-wrap:wrap}\n#tq-app .tq-stats b{color:var(--tq-ink);font-size:16px}\n#tq-app .tq-modes{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}\n#tq-app .tq-timer{display:none;align-items:center;gap:10px;margin-top:10px}\n#tq-app.is-timed .tq-timer{display:flex}\n#tq-app .tq-bar{flex:1;height:8px;background:var(--tq-line);border-radius:999px;overflow:hidden}\n#tq-app .tq-bar i{display:block;height:100%;width:100%;background:var(--tq-accent);transition:width .1s linear}\n#tq-app .tq-bar i.is-low{background:var(--tq-ng)}\n#tq-app .tq-time{font-variant-numeric:tabular-nums;font-weight:700;min-width:3.2em;text-align:right}\n#tq-app .tq-card{margin-top:12px;background:#fff;border:1px solid var(--tq-line);border-radius:12px;padding:20px 16px;text-align:center;min-height:132px;display:flex;flex-direction:column;justify-content:center;gap:6px}\n#tq-app .tq-cat{font-size:12px;color:var(--tq-accent);font-weight:700;letter-spacing:.05em}\n#tq-app .tq-main{font-size:26px;font-weight:700;line-height:1.35;word-break:break-word}\n#tq-app .tq-ask{font-size:16px;color:var(--tq-sub)}\n#tq-app .tq-q{font-size:15px;font-weight:600;text-align:center;margin:10px 0 8px;min-height:1.6em}\n#tq-app .tq-q.is-ok{color:var(--tq-ok)}\n#tq-app .tq-q.is-ng{color:var(--tq-ng)}\n#tq-app button{all:unset;box-sizing:border-box;cursor:pointer;font-family:inherit;text-align:center;-webkit-tap-highlight-color:transparent}\n#tq-app button:focus-visible{outline:2px solid var(--tq-accent);outline-offset:2px}\n#tq-app .tq-mode{padding:5px 14px;border:1px solid var(--tq-line);border-radius:999px;font-size:13px;background:#fff;color:var(--tq-ink)}\n#tq-app .tq-mode.is-on{background:var(--tq-ink);border-color:var(--tq-ink);color:#fff}\n#tq-app .tq-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;transition:opacity .2s}\n#tq-app .tq-choices.is-off{opacity:.4;pointer-events:none}\n#tq-app .tq-c{padding:13px 8px;border-radius:10px;background:#fff;border:1px solid var(--tq-line);font-size:16px;font-weight:600;color:var(--tq-ink);transition:transform .08s,background .15s;display:flex;align-items:center;justify-content:center}\n@media (hover:hover){#tq-app .tq-c:hover{border-color:var(--tq-accent)}}\n#tq-app .tq-c:active{transform:scale(.98)}\n#tq-app .tq-c.is-ok{background:var(--tq-ok);border-color:var(--tq-ok);color:#fff}\n#tq-app .tq-c.is-ng{background:var(--tq-ng);border-color:var(--tq-ng);color:#fff}\n#tq-app .tq-tools{display:flex;gap:8px;justify-content:center;margin:12px 0}\n#tq-app .tq-tool{padding:6px 16px;border:1px solid var(--tq-line);border-radius:999px;font-size:14px;background:#fff;color:var(--tq-ink)}\n@media (hover:hover){#tq-app .tq-tool:hover{border-color:var(--tq-accent)}}\n#tq-app .tq-start{background:var(--tq-accent);border-color:var(--tq-accent);color:#fff;font-weight:700;padding:8px 28px;font-size:15px}\n#tq-app .tq-settings{margin-top:16px;border-top:1px solid var(--tq-line);padding-top:10px;font-size:14px}\n#tq-app .tq-settings summary{cursor:pointer;font-weight:600;color:var(--tq-sub)}\n#tq-app .tq-grid{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center;margin-top:10px}\n#tq-app .tq-k{color:var(--tq-sub);white-space:nowrap}\n#tq-app select{font:inherit;padding:4px 8px;border:1px solid var(--tq-line);border-radius:6px;background:#fff;color:var(--tq-ink);max-width:100%}\n#tq-app .tq-row{display:flex;gap:12px;flex-wrap:wrap}\n#tq-app .tq-row label{display:inline-flex;align-items:center;gap:4px;cursor:pointer}\n#tq-app input[type=checkbox]{accent-color:var(--tq-accent);width:16px;height:16px;margin:0}\n<\/style>\n\n<div class=\"tq-head\">\n  <h3 class=\"tq-title\">\u697d\u5178\u30af\u30a4\u30ba<\/h3>\n  <div class=\"tq-stats\">\n    <span>\u6b63\u89e3 <b id=\"tq-score\">0<\/b> \/ <span id=\"tq-total\">0<\/span>(<span id=\"tq-rate\">-<\/span>)<\/span>\n    <span>\u9023\u7d9a <b id=\"tq-streak\">0<\/b><\/span>\n    <span><span id=\"tq-bestlabel\">\u6700\u9ad8\u9023\u7d9a<\/span> <b id=\"tq-best\">0<\/b><\/span>\n  <\/div>\n<\/div>\n\n<div class=\"tq-modes\">\n  <button type=\"button\" class=\"tq-mode is-on\" data-sec=\"0\">\u7df4\u7fd2<\/button>\n  <button type=\"button\" class=\"tq-mode\" data-sec=\"30\">30\u79d2<\/button>\n  <button type=\"button\" class=\"tq-mode\" data-sec=\"60\">60\u79d2<\/button>\n  <button type=\"button\" class=\"tq-mode\" data-sec=\"120\">120\u79d2<\/button>\n<\/div>\n\n<div class=\"tq-timer\">\n  <div class=\"tq-bar\"><i id=\"tq-bar\"><\/i><\/div>\n  <span class=\"tq-time\" id=\"tq-time\">0.0<\/span>\n<\/div>\n\n<div class=\"tq-card\">\n  <div class=\"tq-cat\" id=\"tq-cat\"><\/div>\n  <div class=\"tq-main\" id=\"tq-main\"><\/div>\n  <div class=\"tq-ask\" id=\"tq-ask\"><\/div>\n<\/div>\n\n<p class=\"tq-q\" id=\"tq-q\"><\/p>\n<div class=\"tq-choices\" id=\"tq-choices\"><\/div>\n\n<div class=\"tq-tools\">\n  <button type=\"button\" class=\"tq-tool tq-start\" id=\"tq-start\">\u30b9\u30bf\u30fc\u30c8<\/button>\n  <button type=\"button\" class=\"tq-tool tq-start\" id=\"tq-next\">\u6b21\u3078<\/button>\n  <button type=\"button\" class=\"tq-tool\" id=\"tq-skip\">\u30b9\u30ad\u30c3\u30d7<\/button>\n<\/div>\n\n<details class=\"tq-settings\">\n  <summary>\u8a2d\u5b9a<\/summary>\n  <div class=\"tq-grid\">\n    <span class=\"tq-k\">\u30ec\u30d9\u30eb<\/span>\n    <select id=\"tq-level\">\n      <option value=\"1\">\u521d\u7d1a<\/option>\n      <option value=\"2\">\u4e2d\u7d1a(\u266f\u266d\u30fb\u5897\u6e1b\u3092\u542b\u3080)<\/option>\n    <\/select>\n    <span class=\"tq-k\">\u97f3\u540d\u8868\u8a18<\/span>\n    <select id=\"tq-sys\">\n      <option value=\"it\">\u30c9\u30ec\u30df<\/option>\n      <option value=\"en\">C D E<\/option>\n      <option value=\"ja\">\u30cf \u30cb \u30db<\/option>\n    <\/select>\n    <span class=\"tq-k\">\u5206\u91ce<\/span>\n    <div class=\"tq-row tq-cats\">\n      <label><input type=\"checkbox\" value=\"interval\" checked>\u97f3\u7a0b<\/label>\n      <label><input type=\"checkbox\" value=\"key\" checked>\u8abf\u30fb\u8abf\u53f7<\/label>\n      <label><input type=\"checkbox\" value=\"dur\" checked>\u97f3\u7b26\u306e\u9577\u3055<\/label>\n      <label><input type=\"checkbox\" value=\"meter\" checked>\u62cd\u5b50<\/label>\n      <label><input type=\"checkbox\" value=\"chord\" checked>\u548c\u97f3<\/label>\n    <\/div>\n    <span><\/span>\n    <div><button type=\"button\" class=\"tq-tool\" id=\"tq-reset\">\u6210\u7e3e\u3092\u30ea\u30bb\u30c3\u30c8<\/button><\/div>\n  <\/div>\n<\/details>\n\n<script>\n(function(){\n  var root=document.getElementById('tq-app'); if(!root) return;\n  var $=function(s){return root.querySelector(s);};\n\n  \/* ===== \u5171\u901a ===== *\/\n  function R(n){ return Math.floor(Math.random()*n); }\n  function pick(a){ return a[R(a.length)]; }\n  function shuffle(a){ for(var i=a.length-1;i>0;i--){ var j=R(i+1),t=a[i]; a[i]=a[j]; a[j]=t; } return a; }\n  var LET={it:['\u30c9','\u30ec','\u30df','\u30d5\u30a1','\u30bd','\u30e9','\u30b7'],en:['C','D','E','F','G','A','B'],ja:['\u30cf','\u30cb','\u30db','\u30d8','\u30c8','\u30a4','\u30ed']};\n  var LPC=[0,2,4,5,7,9,11];\n  function nn(l,a,sys){\n    if(sys==='ja') return (a>0?'\u5b30':a<0?'\u5909':'')+LET.ja[l];\n    return LET[sys][l]+(a>0?'\u266f':a<0?'\u266d':'');\n  }\n  \/\/ \u6b63\u89e3+\u307e\u304e\u3089\u308f\u3057\u3044\u9078\u629e\u80a2\u3067\u6700\u59274\u629e\u3092\u4f5c\u308b\n  function mk(cat,main,ask,ans,pool,exp){\n    var seen={}, ch=[ans]; seen[ans]=1;\n    shuffle(pool.slice()).forEach(function(x){ if(ch.length<4 && !seen[x]){ seen[x]=1; ch.push(x); } });\n    return {cat:cat,main:main,ask:ask,ans:ans,choices:shuffle(ch),exp:exp};\n  }\n  function nums(c,extra,unit){\n    var p=[c-1,c+1,c+2,c-2,c*2,c\/2].concat(extra||[]);\n    return p.filter(function(x){ return x>0 && Math.round(x)===x && x!==c; }).map(function(x){ return x+unit; });\n  }\n\n  \/* ===== \u97f3\u7a0b ===== *\/\n  var PERF={1:0,4:5,5:7,8:12}, MAJ={2:2,3:4,6:9,7:11};\n  function iq(n,d){\n    if(PERF[n]!==undefined) return {'0':'\u5b8c\u5168','1':'\u5897','-1':'\u6e1b'}[d];\n    return {'0':'\u9577','-1':'\u77ed','1':'\u5897','-2':'\u6e1b'}[d];\n  }\n  function genInterval(o){\n    for(var t=0;t<60;t++){\n      var l=R(7), n=2+R(7), ul=(l+n-1)%7;\n      var semis=n===8?12:(LPC[ul]-LPC[l]+12)%12;\n      var acc=o.lv===1?0:pick([-1,0,0,1]);\n      semis+=acc;\n      var base=PERF[n]!==undefined?PERF[n]:MAJ[n], q=iq(n,semis-base);\n      if(!q) continue;\n      if(o.lv===1 && (q==='\u5897'||q==='\u6e1b')) continue;\n      var pool=[];\n      [n-1,n,n+1].forEach(function(k){\n        if(k<2||k>8) return;\n        var qs=PERF[k]!==undefined?(k===n?['\u5b8c\u5168','\u5897','\u6e1b']:['\u5b8c\u5168']):(k===n?['\u9577','\u77ed','\u5897','\u6e1b']:['\u9577','\u77ed']);\n        qs.forEach(function(x){ pool.push(x+k+'\u5ea6'); });\n      });\n      return mk('\u97f3\u7a0b', nn(l,0,o.sys)+' \u2192 '+nn(ul,acc,o.sys), '\u4e0a\u306e\u97f3\u307e\u3067\u306e\u97f3\u7a0b\u306f?', q+n+'\u5ea6', pool, '\u534a\u97f3'+semis+'\u500b\u5206');\n    }\n    return null;\n  }\n\n  \/* ===== \u548c\u97f3 ===== *\/\n  var TRI=[['\u9577\u4e09\u548c\u97f3',4,7],['\u77ed\u4e09\u548c\u97f3',3,7],['\u6e1b\u4e09\u548c\u97f3',3,6],['\u5897\u4e09\u548c\u97f3',4,8]];\n  function spell(l,a,steps,semi){\n    var ul=(l+steps)%7, target=(LPC[l]+a+semi)%12, acc=((target-LPC[ul])%12+12)%12;\n    if(acc>6) acc-=12;\n    return [ul,acc];\n  }\n  function genChord(o){\n    for(var t=0;t<80;t++){\n      var l=R(7), ra=o.lv===1?0:pick([-1,0,0,1]);\n      if(ra && LPC.indexOf((LPC[l]+ra+12)%12)>=0) continue; \/\/ \u30d5\u30a1\u266d\u3084\u30b7\u266f\u306a\u3069\u306f\u4f7f\u308f\u306a\u3044\n      var ti=o.lv===1?R(2):R(4), T=TRI[ti];\n      var a3=spell(l,ra,2,T[1]), a5=spell(l,ra,4,T[2]);\n      if(Math.abs(a3[1])>1 || Math.abs(a5[1])>1) continue;\n      var main=[nn(l,ra,o.sys),nn(a3[0],a3[1],o.sys),nn(a5[0],a5[1],o.sys)].join('\u30fb');\n      var exp='\u6839\u97f3\u304b\u3089\u7b2c3\u97f3\u304c'+(T[1]===4?'\u95773\u5ea6':'\u77ed3\u5ea6')+'\u3001\u7b2c5\u97f3\u304c'+({6:'\u6e1b5\u5ea6',7:'\u5b8c\u51685\u5ea6',8:'\u58975\u5ea6'})[T[2]];\n      return mk('\u548c\u97f3', main, '\u3053\u306e\u4e09\u548c\u97f3\u306e\u7a2e\u985e\u306f?', T[0], TRI.map(function(x){return x[0];}), exp);\n    }\n    return null;\n  }\n\n  \/* ===== \u8abf\u30fb\u8abf\u53f7 ===== *\/\n  var MAJ_S=['\u30cf','\u30c8','\u30cb','\u30a4','\u30db','\u30ed','\u5b30\u30d8','\u5b30\u30cf'], MAJ_F=['\u30cf','\u30d8','\u5909\u30ed','\u5909\u30db','\u5909\u30a4','\u5909\u30cb','\u5909\u30c8','\u5909\u30cf'];\n  var MIN_S=['\u30a4','\u30db','\u30ed','\u5b30\u30d8','\u5b30\u30cf','\u5b30\u30c8','\u5b30\u30cb','\u5b30\u30a4'], MIN_F=['\u30a4','\u30cb','\u30c8','\u30cf','\u30d8','\u5909\u30ed','\u5909\u30db','\u5909\u30a4'];\n  var SH=[3,0,4,1,5,2,6], FL=[6,2,5,1,4,0,3]; \/\/ \u266f:\u30d5\u30a1\u30c9\u30bd\u30ec\u30e9\u30df\u30b7 \u266d:\u30b7\u30df\u30e9\u30ec\u30bd\u30c9\u30d5\u30a1\n  function keyList(o){\n    var max=o.lv===1?3:7, L=[];\n    for(var i=0;i<=max;i++){\n      L.push({n:i,s:1,maj:MAJ_S[i]+'\u9577\u8abf',min:MIN_S[i]+'\u77ed\u8abf'});\n      if(i) L.push({n:i,s:-1,maj:MAJ_F[i]+'\u9577\u8abf',min:MIN_F[i]+'\u77ed\u8abf'});\n    }\n    return L;\n  }\n  function sig(k){ return k.n?(k.s>0?'\u266f':'\u266d')+k.n+'\u3064':'\u306a\u3057'; }\n  function sigLong(k,o){\n    if(!k.n) return '\u8abf\u53f7\u306a\u3057';\n    return sig(k)+'('+(k.s>0?SH:FL).slice(0,k.n).map(function(l){ return nn(l,k.s,o.sys); }).join('\u30fb')+')';\n  }\n  function genKey(o){\n    var L=keyList(o), k=pick(L);\n    var types=o.lv===1?['sig2maj','maj2sig','rel']:['sig2maj','sig2min','maj2sig','rel','par'];\n    var ty=pick(types);\n    var majs=L.map(function(x){return x.maj;}), mins=L.map(function(x){return x.min;});\n    var near=L.filter(function(x){ return Math.abs(x.n-k.n)<=2; });\n    if(ty==='sig2maj') return mk('\u8abf\u30fb\u8abf\u53f7','\u8abf\u53f7 '+sig(k),'\u3053\u306e\u8abf\u53f7\u306e\u9577\u8abf\u306f?',k.maj,near.map(function(x){return x.maj;}).concat(majs),sigLong(k,o)+'\u3002\u5e73\u884c\u8abf\u306f'+k.min);\n    if(ty==='sig2min') return mk('\u8abf\u30fb\u8abf\u53f7','\u8abf\u53f7 '+sig(k),'\u3053\u306e\u8abf\u53f7\u306e\u77ed\u8abf\u306f?',k.min,near.map(function(x){return x.min;}).concat(mins),sigLong(k,o)+'\u3002\u5e73\u884c\u8abf\u306f'+k.maj);\n    if(ty==='maj2sig') return mk('\u8abf\u30fb\u8abf\u53f7',k.maj,'\u8abf\u53f7\u306f?',sig(k),near.map(sig).concat(L.map(sig)),sigLong(k,o));\n    var same=k.maj.replace('\u9577\u8abf','\u77ed\u8abf');\n    if(ty==='rel') return mk('\u8abf\u30fb\u8abf\u53f7',k.maj,'\u5e73\u884c\u8abf\u306f?',k.min,[same].concat(near.map(function(x){return x.min;}),mins),'\u540c\u3058\u8abf\u53f7('+sig(k)+')\u3092\u3082\u3064\u77ed\u8abf');\n    return mk('\u8abf\u30fb\u8abf\u53f7',k.maj,'\u540c\u4e3b\u8abf\u306f?',same,[k.min].concat(near.map(function(x){return x.maj.replace('\u9577\u8abf','\u77ed\u8abf');}),mins),'\u4e3b\u97f3\u304c\u540c\u3058\u77ed\u8abf');\n  }\n\n  \/* ===== \u97f3\u7b26\u306e\u9577\u3055 ===== *\/\n  var DUR=[['\u5168',4],['\u4ed8\u70b92\u5206',3],['2\u5206',2],['\u4ed8\u70b94\u5206',1.5],['4\u5206',1],['\u4ed8\u70b98\u5206',0.75],['8\u5206',0.5],['16\u5206',0.25]];\n  function genDur(o){\n    var D=DUR.filter(function(x){ return o.lv===2 || x[0]!=='\u4ed8\u70b98\u5206'; });\n    if(Math.random()<0.5){\n      var x=pick(D), kind=pick(['\u97f3\u7b26','\u4f11\u7b26']);\n      return mk('\u97f3\u7b26\u306e\u9577\u3055', x[0]+kind, '4\u5206\u97f3\u7b26\u30921\u62cd\u3068\u3059\u308b\u3068\u4f55\u62cd?', x[1]+'\u62cd',\n        D.map(function(y){return y[1]+'\u62cd';}), '4\u5206\u97f3\u7b26'+x[1]+'\u500b\u5206\u306e\u9577\u3055');\n    }\n    var pairs=[];\n    D.forEach(function(a){ D.forEach(function(b){ var r=a[1]\/b[1]; if(r>=2 && Math.round(r)===r) pairs.push([a,b,r]); }); });\n    var p=pick(pairs), kd=pick(['\u97f3\u7b26','\u4f11\u7b26']);\n    return mk('\u97f3\u7b26\u306e\u9577\u3055', p[0][0]+kd+' 1\u3064', p[1][0]+kd+'\u3044\u304f\u3064\u5206?', p[2]+'\u500b', nums(p[2],[],'\u500b'), p[0][1]+' \u00f7 '+p[1][1]+' = '+p[2]+'(4\u5206\u97f3\u7b26=1\u3068\u3057\u3066)');\n  }\n\n  \/* ===== \u62cd\u5b50 ===== *\/\n  var M1=[[2,4],[3,4],[4,4],[6,8]], M2=M1.concat([[2,2],[3,8],[9,8],[12,8],[5,4],[7,8]]);\n  function mkind(m){ return m[1]===8&&m[0]%3===0&&m[0]>3?'\u8907\u5408\u62cd\u5b50':(m[0]===5||m[0]===7?'\u6df7\u5408\u62cd\u5b50':'\u5358\u7d14\u62cd\u5b50'); }\n  function genMeter(o){\n    var M=o.lv===1?M1:M2, r=Math.random();\n    if(o.lv===2 && r<0.25){\n      var c=pick([[6,8],[9,8],[12,8]]);\n      return mk('\u62cd\u5b50', c[0]+'\/'+c[1]+'\u62cd\u5b50', '\u4ed8\u70b94\u5206\u97f3\u7b26\u30921\u62cd\u3068\u3059\u308b\u3068\u30011\u5c0f\u7bc0\u306f\u4f55\u62cd?', (c[0]\/3)+'\u62cd',\n        ['2\u62cd','3\u62cd','4\u62cd','6\u62cd','9\u62cd','12\u62cd'], '8\u5206\u97f3\u7b263\u3064(\u4ed8\u70b94\u5206\u97f3\u7b26)\u30921\u62cd\u3068\u3057\u3066\u6570\u3048\u308b');\n    }\n    var m=pick(M);\n    if(r<0.55){\n      var k=mkind(m), exp={'\u5358\u7d14\u62cd\u5b50':'1\u62cd\u304c2\u3064\u306b\u5206\u304b\u308c\u308b\u62cd\u5b50','\u8907\u5408\u62cd\u5b50':'\u4ed8\u70b9\u97f3\u7b26\u30921\u62cd\u3068\u3057\u30011\u62cd\u304c3\u3064\u306b\u5206\u304b\u308c\u308b\u62cd\u5b50','\u6df7\u5408\u62cd\u5b50':'2\u62cd\u5b50\u7cfb\u30683\u62cd\u5b50\u7cfb\u304c\u6df7\u3056\u3063\u305f\u62cd\u5b50'}[k];\n      return mk('\u62cd\u5b50', m[0]+'\/'+m[1]+'\u62cd\u5b50', '\u4f55\u62cd\u5b50\u306b\u5206\u985e\u3055\u308c\u308b?', k, ['\u5358\u7d14\u62cd\u5b50','\u8907\u5408\u62cd\u5b50','\u6df7\u5408\u62cd\u5b50'], exp);\n    }\n    var X=pick([4,8,16].filter(function(x){ return x>=m[1]; })), cnt=m[0]*X\/m[1];\n    return mk('\u62cd\u5b50', m[0]+'\/'+m[1]+'\u62cd\u5b50', '1\u5c0f\u7bc0\u306b'+X+'\u5206\u97f3\u7b26\u306f\u3044\u304f\u3064\u5165\u308b?', cnt+'\u500b', nums(cnt,[m[0]],'\u500b'),\n      '1\u5c0f\u7bc0\u306b'+m[1]+'\u5206\u97f3\u7b26\u304c'+m[0]+'\u500b\u5165\u308b\u62cd\u5b50');\n  }\n\n  var GEN={interval:genInterval,key:genKey,dur:genDur,meter:genMeter,chord:genChord};\n\n  \/* ===== \u30af\u30a4\u30ba\u672c\u4f53 ===== *\/\n  var qEl=$('#tq-q'), barEl=$('#tq-bar'), timeEl=$('#tq-time');\n  var st={score:0,total:0,streak:0,best:0,cur:null,last:'',locked:false,timer:null,mode:0,running:false,endAt:0,tick:null};\n  function getNum(k){ try{ return parseInt(localStorage.getItem(k)||'0',10)||0; }catch(e){ return 0; } }\n  function setNum(k,v){ try{ localStorage.setItem(k,v); }catch(e){} }\n  st.best=getNum('tq-best');\n\n  function opts(){\n    var cats=[];\n    root.querySelectorAll('.tq-cats input').forEach(function(c){ if(c.checked) cats.push(c.value); });\n    return {lv:+$('#tq-level').value, sys:$('#tq-sys').value, cats:cats};\n  }\n  function show(id,on){ $(id).style.display=on?'':'none'; }\n  function card(cat,main,ask){ $('#tq-cat').textContent=cat; $('#tq-main').textContent=main; $('#tq-ask').textContent=ask; }\n  function choicesOff(off){ $('#tq-choices').classList.toggle('is-off',off); }\n\n  function stats(){\n    $('#tq-score').textContent=st.score;\n    $('#tq-total').textContent=st.total;\n    $('#tq-rate').textContent=st.total?Math.round(st.score\/st.total*100)+'%':'-';\n    $('#tq-streak').textContent=st.streak;\n    if(st.mode>0){ $('#tq-bestlabel').textContent='\u30d9\u30b9\u30c8('+st.mode+'\u79d2)'; $('#tq-best').textContent=getNum('tq-ta-'+st.mode); }\n    else{ $('#tq-bestlabel').textContent='\u6700\u9ad8\u9023\u7d9a'; $('#tq-best').textContent=st.best; }\n  }\n\n  function next(){\n    clearTimeout(st.timer);\n    if(st.mode>0 && !st.running) return;\n    var o=opts();\n    st.locked=false; qEl.className='tq-q'; qEl.textContent='';\n    show('#tq-next',false); show('#tq-skip',true);\n    if(!o.cats.length){ st.cur=null; card('','\u5206\u91ce\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044',''); $('#tq-choices').innerHTML=''; return; }\n    var q=null;\n    for(var t=0;t<15;t++){\n      q=GEN[pick(o.cats)](o);\n      if(q && q.main+q.ask!==st.last) break;\n    }\n    if(!q) return;\n    st.cur=q; st.last=q.main+q.ask;\n    card(q.cat,q.main,q.ask);\n    var box=$('#tq-choices'); box.innerHTML='';\n    q.choices.forEach(function(c){\n      var b=document.createElement('button');\n      b.type='button'; b.className='tq-c'; b.textContent=c;\n      b.addEventListener('click',function(){ answer(c,b); });\n      box.appendChild(b);\n    });\n    choicesOff(false);\n  }\n\n  function answer(c,btn){\n    if(st.locked || !st.cur) return;\n    st.locked=true; st.total++;\n    var q=st.cur, ok=c===q.ans, timed=st.mode>0;\n    if(ok){\n      st.score++; st.streak++;\n      if(!timed && st.streak>st.best){ st.best=st.streak; setNum('tq-best',st.best); }\n    }else{\n      st.streak=0;\n      root.querySelectorAll('.tq-c').forEach(function(b){ if(b.textContent===q.ans) b.classList.add('is-ok'); });\n    }\n    btn.classList.add(ok?'is-ok':'is-ng');\n    stats();\n    qEl.className='tq-q '+(ok?'is-ok':'is-ng');\n    qEl.textContent=(ok?'\u6b63\u89e3! ':'\u6b63\u89e3\u306f '+q.ans+'\u3002')+q.exp;\n    if(ok) st.timer=setTimeout(next, timed?400:1200);\n    else if(timed) st.timer=setTimeout(next,1300);\n    else { show('#tq-next',true); show('#tq-skip',false); }\n  }\n\n  \/* ===== \u5236\u9650\u6642\u9593 ===== *\/\n  function updTimer(){\n    var total=st.mode*1000, rem=st.running?Math.max(0,st.endAt-Date.now()):total;\n    barEl.style.width=(total?rem\/total*100:100)+'%';\n    barEl.classList.toggle('is-low',st.running && rem<5000);\n    timeEl.textContent=(rem\/1000).toFixed(1);\n    if(st.running && rem<=0) finish();\n  }\n  function stopRun(){ st.running=false; clearInterval(st.tick); }\n  function idle(msg,btn){\n    st.cur=null; st.locked=true; card('',msg,''); $('#tq-choices').innerHTML='';\n    $('#tq-start').textContent=btn;\n    show('#tq-start',true); show('#tq-next',false); show('#tq-skip',false);\n  }\n  function ready(){\n    stopRun(); clearTimeout(st.timer);\n    qEl.className='tq-q'; qEl.textContent='';\n    idle(st.mode+'\u79d2\u3067\u4f55\u554f\u6b63\u89e3\u3067\u304d\u308b\u304b\u6311\u6226!','\u30b9\u30bf\u30fc\u30c8');\n    updTimer(); stats();\n  }\n  function start(){\n    if(!opts().cats.length){ qEl.textContent='\u5206\u91ce\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044'; return; }\n    st.score=0; st.total=0; st.streak=0; stats();\n    st.running=true; st.endAt=Date.now()+st.mode*1000;\n    show('#tq-start',false);\n    clearInterval(st.tick); st.tick=setInterval(updTimer,100);\n    next();\n  }\n  function finish(){\n    stopRun(); clearTimeout(st.timer);\n    var key='tq-ta-'+st.mode, isNew=st.score>getNum(key);\n    if(isNew) setNum(key,st.score);\n    stats(); idle('\u7d42\u4e86!','\u3082\u3046\u4e00\u5ea6');\n    qEl.className='tq-q is-ok';\n    qEl.textContent=st.score+'\u554f\u6b63\u89e3'+(st.total?'(\u6b63\u89e3\u7387 '+Math.round(st.score\/st.total*100)+'%)':'')+(isNew?' \u81ea\u5df1\u30d9\u30b9\u30c8\u66f4\u65b0!':'');\n    barEl.style.width='0%'; timeEl.textContent='0.0';\n  }\n  function setMode(sec){\n    st.mode=sec;\n    root.querySelectorAll('.tq-mode').forEach(function(b){ b.classList.toggle('is-on',+b.getAttribute('data-sec')===sec); });\n    root.classList.toggle('is-timed',sec>0);\n    stopRun(); clearTimeout(st.timer);\n    st.score=0; st.total=0; st.streak=0;\n    if(sec>0) ready(); else { show('#tq-start',false); stats(); next(); }\n  }\n  function onSettings(){ if(st.mode>0) ready(); else next(); }\n\n  root.querySelectorAll('.tq-mode').forEach(function(b){ b.addEventListener('click',function(){ setMode(+b.getAttribute('data-sec')); }); });\n  $('#tq-start').addEventListener('click',start);\n  $('#tq-next').addEventListener('click',next);\n  $('#tq-skip').addEventListener('click',next);\n  $('#tq-reset').addEventListener('click',function(){ st.score=0; st.total=0; st.streak=0; stats(); onSettings(); });\n  $('#tq-level').addEventListener('change',onSettings);\n  $('#tq-sys').addEventListener('change',onSettings);\n  root.querySelectorAll('.tq-cats input').forEach(function(c){ c.addEventListener('change',onSettings); });\n\n  setMode(0);\n})();\ndocument.getElementById('tq-app').addEventListener('click',function(e){ if(e.detail>0){ setTimeout(function(){ var a=document.activeElement; if(a&&a!==document.body&&a.blur&&a.tagName!=='INPUT'&&a.tagName!=='SELECT') a.blur(); },0); } });\n<\/script>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3755e66 elementor-widget elementor-widget-html\" data-id=\"3755e66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>.lt-nav{max-width:760px;margin:0 auto;padding:4px 16px;font-family:\"Hiragino Sans\",\"Noto Sans JP\",\"Yu Gothic\",sans-serif;font-size:14px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.lt-nav a{color:#b5532a;font-weight:700;text-decoration:none}.lt-nav a:hover{text-decoration:underline}.lt-nav .lt-sub{color:#7a6e64}.lt-nav .lt-back{display:inline-block;padding:6px 14px;border:1px solid #e3d9cc;border-radius:999px;background:#fff}<\/style><nav class=\"lt-nav\" aria-label=\"\u5b66\u7fd2\u30fb\u8cc7\u6599\u5ba4\"><a class=\"lt-back\" href=\"\/?page_id=907\">\u2190 \u5b66\u7fd2\u30fb\u8cc7\u6599\u5ba4\u306b\u623b\u308b<\/a><span class=\"lt-sub\">\u307b\u304b\u306e\u30af\u30a4\u30ba:<a href=\"\/?page_id=963\">\u8b5c\u8aad\u307f\u30af\u30a4\u30ba<\/a> \u30fb <a href=\"\/?page_id=908\">\u6307\u677f \u97f3\u5f53\u3066\u30af\u30a4\u30ba<\/a> \u30fb <a href=\"\/?page_id=909\">\u97f3\u697d\u7528\u8a9e\u30af\u30a4\u30ba<\/a> \u30fb <a href=\"\/?page_id=939\">\u6307\u677f\u30b3\u30fc\u30c9\u30fb\u30b9\u30b1\u30fc\u30eb\u56f3<\/a> \u30fb <a href=\"\/?page_id=981\">\u4e94\u5ea6\u570f<\/a><\/span><\/nav>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u2190 \u5b66\u7fd2\u30fb\u8cc7\u6599\u5ba4\u306b\u623b\u308b \u697d\u5178\u30af\u30a4\u30ba \u6b63\u89e3 0 \/ 0(-) \u9023\u7d9a 0 \u6700\u9ad8\u9023\u7d9a 0 \u7df4\u7fd2 30\u79d2 60\u79d2 120\u79d2 0.0 \u30b9\u30bf\u30fc\u30c8 \u6b21\u3078 \u30b9\u30ad\u30c3\u30d7 \u8a2d\u5b9a \u30ec\u30d9\u30eb \u521d\u7d1a\u4e2d\u7d1a(\u266f\u266d\u30fb\u5897\u6e1b\u3092\u542b\u3080) \u97f3\u540d\u8868\u8a18 \u30c9\u30ec\u30dfC D E [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":907,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-910","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/guitarschool.in\/index.php?rest_route=\/wp\/v2\/pages\/910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guitarschool.in\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/guitarschool.in\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/guitarschool.in\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guitarschool.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=910"}],"version-history":[{"count":18,"href":"https:\/\/guitarschool.in\/index.php?rest_route=\/wp\/v2\/pages\/910\/revisions"}],"predecessor-version":[{"id":1028,"href":"https:\/\/guitarschool.in\/index.php?rest_route=\/wp\/v2\/pages\/910\/revisions\/1028"}],"up":[{"embeddable":true,"href":"https:\/\/guitarschool.in\/index.php?rest_route=\/wp\/v2\/pages\/907"}],"wp:attachment":[{"href":"https:\/\/guitarschool.in\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}