「VexFlow タブ譜 コードフォーム」の版間の差分
108行目: | 108行目: | ||
svgElement.appendChild(newGroup); | svgElement.appendChild(newGroup); | ||
} | } | ||
function insertTiePathToSVG(StartPos, EndPos) { | |||
var newGroup = document.createElementNS('http://www.w3.org/2000/svg', 'g'); | |||
newGroup.setAttribute('transform', 'translate(0, 0)'); | |||
var path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); | |||
var arrowLength = 10; | |||
var angle = Math.atan2(EndPos.y - StartPos.y, EndPos.x - StartPos.x); | |||
// 矢印のポイントを計算 | |||
var arrowX = EndPos.x - arrowLength * Math.cos(angle); | |||
var arrowY = EndPos.y - arrowLength * Math.sin(angle); | |||
var pathStr = "M " + StartPos.x + " " + StartPos.y + " L " + EndPos.x + " " + EndPos.y + " L " + arrowX + " " + arrowY + " Z"; | |||
path.setAttribute('d', pathStr); | |||
path.setAttribute('stroke', 'none'); | |||
path.setAttribute('stroke-width', '1'); | |||
path.setAttribute('fill', 'black'); | |||
newGroup.appendChild(path); | |||
svgElement.appendChild(newGroup); | |||
} | |||
function insertTrilPathToSVG(Shift, Direction = 1) { | function insertTrilPathToSVG(Shift, Direction = 1) { |
2024年4月12日 (金) 20:21時点における版
VexFlow 使い方に戻る。
概要
コードフォームをタブ譜に載せるという手法もありまして、コードが一小節で2種類くらいしか無いような曲で見られる描画方法です。その場合、五線譜には同一コード用の音符を使ってリズムだけをハタ棒とハタあるいは連桁で表現します。管理人は左利きなので、左利き用のコードフォームを表示してみました。人生初くらいだな。左利き向けのコードフォームタブ譜なんて見たことなかった。もちろん、作成したフォントには右利き向けのグリフも登録してあります。あとちょっとで完成しそうですね。フォントファイル。もうちょっとで配布できるようになる。駆け抜けたい。でもこの先まだまだ難しいタブ譜作成技術の紹介が残っています。手ごわい。アーム操作の曲線とかどうするべって感じ。VexFlowも不完全だし、機能追加にも疲れてきたっすね。
タブ譜 コードフォーム
コードは以下のとおりです。
<div id="yonet202403Mid_Output01"></div>
<script>
</script>
VexFlow 使い方に戻る。