「VexFlow タブ譜 カッティング」の版間の差分

提供:yonewiki
(ページの作成:「<yjavascript></script> <script src="https://wiki.yo-net.jp/vexflow/build/cjs/vexflow@4.2.2.0001.js"></script> <!--<script src="https://cdn.jsdelivr.net/npm/vexflow@4.2.3/build/cjs/vexflow.js"></script>--> <!--<script src="https://cdn.jsdelivr.net/npm/vexflow@4.0.2/build/cjs/vexflow.js></script>--> </yjavascript> VexFlow 使い方に戻る。 == '''概要''' ==  カッティングには一弦カッティングと複数弦カッティングがあります。奏…」)
 
(同じ利用者による、間の35版が非表示)
7行目: 7行目:
== '''概要''' ==
== '''概要''' ==
 カッティングには一弦カッティングと複数弦カッティングがあります。奏法としては、弦の上に指を触れた状態で弦をピッキングするものです。カチャカチャとした音ですが、エフェクターを使うとさらに表現の幅が広がる音でもあります。タブ譜では、複数弦カッティングのときには大きなバツ印と符棒と符旗でリズムを指定します。一弦カッティングのときはカッティングするべき弦にバツ印をつけ、リズムは符棒と符旗で指定します。指の触れるポジションで多少、音の響きが違うのですが、ポジションの指定は通常ありません。前後のコードフォームを維持する場合もあれば、ギューンというような感じのカッティングでは、スライドしながらであったり、一瞬ポジションを低くしたり高くするカッティングもあります。音の指定はありませんので、実際に作曲者が演奏しているものをまねるのが正しいということになります。
 カッティングには一弦カッティングと複数弦カッティングがあります。奏法としては、弦の上に指を触れた状態で弦をピッキングするものです。カチャカチャとした音ですが、エフェクターを使うとさらに表現の幅が広がる音でもあります。タブ譜では、複数弦カッティングのときには大きなバツ印と符棒と符旗でリズムを指定します。一弦カッティングのときはカッティングするべき弦にバツ印をつけ、リズムは符棒と符旗で指定します。指の触れるポジションで多少、音の響きが違うのですが、ポジションの指定は通常ありません。前後のコードフォームを維持する場合もあれば、ギューンというような感じのカッティングでは、スライドしながらであったり、一瞬ポジションを低くしたり高くするカッティングもあります。音の指定はありませんので、実際に作曲者が演奏しているものをまねるのが正しいということになります。
 ちなみに「散歩道」のギターソロの裏でやってるGuitar2とかDrumとかとはまったく無関係の採譜です。こんな楽譜だったら、Guitar2は邪魔でしかない。


 
 
48行目: 51行目:
var shiftGuitar1_tab3;
var shiftGuitar1_tab3;
var shiftGuitar1_tab4;
var shiftGuitar1_tab4;
var shiftGuitar2_St1;
var shiftGuitar2_St2;
var shiftGuitar2_St3;
var shiftGuitar2_St4;
var shiftGuitar2_Tab1;
var shiftGuitar2_Tab2;
var shiftGuitar2_Tab3;
var shiftGuitar2_Tab4;
var shiftDrum1;
var shiftDrum1;
var shiftPerc1;
var shiftPerc1;
1,109行目: 1,123行目:
Guitar2_St1.draw();
Guitar2_St1.draw();


const Guitar2_St2 = new Stave(Guitar2_St1.width + Guitar2_St1.x, Guitar2_St1.y, nStaveWidth).setContext(ctx);
const Guitar2_notes1_1 = [
Guitar2_St2.draw();
  dotted(new VF.StaveNote({ keys: ["g/4"], duration: "8d" })),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),


const Guitar2_St3 = new Stave(Guitar2_St2.width + Guitar2_St2.x, Guitar2_St2.y, nStaveWidth).setContext(ctx);
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
Guitar2_St3.draw();
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),


const Guitar2_St4 = new Stave(Guitar2_St3.width + Guitar2_St3.x, Guitar2_St3.y, nStaveWidth).setContext(ctx);
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
Guitar2_St4.draw();
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),


const Guitar2_Tab1 = new Stave(Guitar2_St1.x, Guitar2_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
Guitar2_Tab1.draw();
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
];
const Guitar2_notes1_2 = [
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


Guitar2Tab1.x = Guitar2_Tab1.x;
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
Guitar2Tab1.y = Guitar2_Tab1.y;
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
 
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
 
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


const Guitar2_Tab2 = new Stave(Guitar2_Tab1.width + Guitar2_Tab1.x, Guitar2_Tab1.y, nStaveWidth).setContext(ctx);
];
Guitar2_Tab2.draw();
const Guitar2_St1_beam1_1 = new VF.Beam([Guitar2_notes1_1[0], Guitar2_notes1_1[1]]);
const Guitar2_St1_beam1_2 = new VF.Beam([Guitar2_notes1_1[2], Guitar2_notes1_1[3], Guitar2_notes1_1[4]]);
const Guitar2_St1_beam1_3 = new VF.Beam([Guitar2_notes1_1[5], Guitar2_notes1_1[6], Guitar2_notes1_1[7], Guitar2_notes1_1[8]]);
const Guitar2_St1_beam1_4 = new VF.Beam([Guitar2_notes1_1[9], Guitar2_notes1_1[10]]);


const Guitar2_Tab3 = new Stave(Guitar2_Tab2.width + Guitar2_Tab2.x, Guitar2_Tab2.y, nStaveWidth).setContext(ctx);
UniqueIds = getUniqueNoteheadIds(Guitar2_notes1_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
Guitar2_Tab3.draw();
allUniqueIds = updateAllUniqueIds(UniqueIds);


const Guitar2_Tab4 = new Stave(Guitar2_Tab3.width + Guitar2_Tab3.x, Guitar2_Tab3.y, nStaveWidth).setContext(ctx);
var Guitar2_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_Tab4.draw();
Guitar2_St1_1Voice.setStrict(true);
Guitar2_St1_1Voice.addTickables(Guitar2_notes1_1);


var Guitar2_connect = new VF.StaveConnector(Guitar2_St1, Guitar2_Tab1);
var Guitar2_St1_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_connect.setType(VF.StaveConnector.type.BRACKET);
Guitar2_St1_2Voice.setStrict(true);
Guitar2_connect.setContext(ctx);
Guitar2_St1_2Voice.addTickables(Guitar2_notes1_2);
Guitar2_connect.draw();


const Guitar2_Tab1_tab = new Stave(Guitar2_Tab1.x, Guitar2_Tab1.y - 10, nHeadMargin + nStaveWidth).setContext(ctx);
var formatterGuitar2_St1_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_St1_2Voice, Guitar2_St1_1Voice]);
for (var i = 0; i < 5; i++) {
formatterGuitar2_St1_1.format([Guitar2_St1_2Voice, Guitar2_St1_1Voice], nStaveWidth - 40 - 10);
  if (i == 0) continue;
Guitar2_St1_1Voice.draw(ctx, Guitar2_St1);
  Guitar2_Tab1_tab.setConfigForLine(i, {visible: false} );
Guitar2_St1_2Voice.draw(ctx, Guitar2_St1);
}
Guitar2_Tab1_tab.draw();


const Guitar2_Tab2_tab = new Stave(Guitar2_Tab1_tab.width + Guitar2_Tab1_tab.x, Guitar2_Tab1_tab.y, nStaveWidth).setContext(ctx);
Guitar2_St1_beam1_1.setContext(ctx).draw();
for (var i = 0; i < 5; i++) {
Guitar2_St1_beam1_2.setContext(ctx).draw();
  if (i == 0) continue;
Guitar2_St1_beam1_3.setContext(ctx).draw();
  Guitar2_Tab2_tab.setConfigForLine(i, {visible: false} );
Guitar2_St1_beam1_4.setContext(ctx).draw();
}
Guitar2_Tab2_tab.draw();


const Guitar2_Tab3_tab = new Stave(Guitar2_Tab2_tab.width + Guitar2_Tab2_tab.x, Guitar2_Tab2_tab.y, nStaveWidth).setContext(ctx);
shiftGuitar2_St1 = addShift(
for (var i = 0; i < 5; i++) {
  Guitar2_notes1_1,  
   if (i == 0) continue;
   [0, 1, 2, 3, 4, 6, 7, 8, 9, 10],
   Guitar2_Tab3_tab.setConfigForLine(i, {visible: false} );
   [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
}
);
Guitar2_Tab3_tab.draw();


const Guitar2_Tab4_tab = new Stave(Guitar2_Tab3_tab.width + Guitar2_Tab3_tab.x, Guitar2_Tab3_tab.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
  if (i == 0) continue;
  Guitar2_Tab4_tab.setConfigForLine(i, {visible: false} );
}
Guitar2_Tab4_tab.draw();


Guitar2Inst.x = Guitar2_St1.x - 30;
Guitar2Inst.y = Guitar2_St1.y + ((Guitar2_Tab1.y - Guitar2_St1.y) / 2) + 90;


const Base_St1 = new Stave(Guitar2_Tab1.x, Guitar2_Tab1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
const Guitar2_St2 = new Stave(Guitar2_St1.width + Guitar2_St1.x, Guitar2_St1.y, nStaveWidth).setContext(ctx);
Base_St1.addClef("bass").setContext(ctx);
Guitar2_St2.draw();
Base_St1.addTimeSignature('4/4').setContext(ctx);
Base_St1.addKeySignature('D').setContext(ctx);
Base_St1.draw();


const Base_St2 = new Stave(Base_St1.width + Base_St1.x, Base_St1.y, nStaveWidth).setContext(ctx);
const Guitar2_St2_1 = new Stave(Guitar2_St1.width + Guitar2_St1.x + 45, Guitar2_St1.y, 0).setContext(ctx);
Base_St2.draw();
Guitar2_St2_1.setBegBarType(VF.Barline.type.NONE);
Guitar2_St2_1.setEndBarType(VF.Barline.type.NONE);
Guitar2_St2_1.draw();


const Base_St3 = new Stave(Base_St2.width + Base_St2.x, Base_St2.y, nStaveWidth).setContext(ctx);
const Guitar2_notes2_1 = [
Base_St3.draw();
  dotted(new VF.StaveNote({ keys: ["c/5"], duration: "8d", stem_direction: -1 })),
  new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),


const Base_St4 = new Stave(Base_St3.width + Base_St3.x, Base_St3.y, nStaveWidth).setContext(ctx);
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: -1 }),
Base_St4.draw();
  new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),


const Base_Tab1 = new Stave(Base_St1.x, Base_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
  new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
Base_Tab1.setEndBarType(VF.Barline.type.NONE);
  new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
for (var i = 0; i < 5; i++) {
   new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
   if (i != 0) continue;
   new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
   Base_Tab1.setConfigForLine(i, {visible: false} );
}
Base_Tab1.draw();


BaseTab1.x = Base_Tab1.x;
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: -1 }),
BaseTab1.y = Base_Tab1.y;
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: -1 }),
 
];
BaseInst.x = Base_St1.x - 30;
const Guitar2_notes2_2 = [
BaseInst.y = Base_St1.y + ((Base_Tab1.y - Base_St1.y) / 2) + 90;
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
 
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


StaveBase1 = Base_Tab1;
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


const Base_Tab2 = new Stave(Base_Tab1.width + Base_Tab1.x, Base_Tab1.y, nStaveWidth).setContext(ctx);
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
Base_Tab2.setBegBarType(VF.Barline.type.NONE);
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
Base_Tab2.setEndBarType(VF.Barline.type.NONE);
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
for (var i = 0; i < 5; i++) {
   new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  if (i != 0) continue;
   Base_Tab2.setConfigForLine(i, {visible: false} );
}
Base_Tab2.draw();


StaveBase2 = Base_Tab2;
];
const Guitar2_St2_beam1_1 = new VF.Beam([Guitar2_notes2_1[0], Guitar2_notes2_1[1]]);
const Guitar2_St2_beam1_2 = new VF.Beam([Guitar2_notes2_1[2], Guitar2_notes2_1[3], Guitar2_notes2_1[4]]);
const Guitar2_St2_beam1_3 = new VF.Beam([Guitar2_notes2_1[5], Guitar2_notes2_1[6], Guitar2_notes2_1[7], Guitar2_notes2_1[8]]);
const Guitar2_St2_beam1_4 = new VF.Beam([Guitar2_notes2_1[9], Guitar2_notes2_1[10]]);


const Base_Tab3 = new Stave(Base_Tab2.width + Base_Tab2.x, Base_Tab2.y, nStaveWidth).setContext(ctx);
UniqueIds = getUniqueNoteheadIds(Guitar2_notes2_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
Base_Tab3.setBegBarType(VF.Barline.type.NONE);
allUniqueIds = updateAllUniqueIds(UniqueIds);
Base_Tab3.setEndBarType(VF.Barline.type.NONE);
for (var i = 0; i < 5; i++) {
  if (i != 0) continue;
  Base_Tab3.setConfigForLine(i, {visible: false} );
}
Base_Tab3.draw();


StaveBase3 = Base_Tab3;
var Guitar2_St2_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St2_1Voice.setStrict(true);
Guitar2_St2_1Voice.addTickables(Guitar2_notes2_1);


const Base_Tab4 = new Stave(Base_Tab3.width + Base_Tab3.x, Base_Tab3.y, nStaveWidth).setContext(ctx);
var Guitar2_St2_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Base_Tab4.setBegBarType(VF.Barline.type.NONE);
Guitar2_St2_2Voice.setStrict(true);
Base_Tab4.setEndBarType(VF.Barline.type.NONE);
Guitar2_St2_2Voice.addTickables(Guitar2_notes2_2);
for (var i = 0; i < 5; i++) {
  if (i != 0) continue;
  Base_Tab4.setConfigForLine(i, {visible: false} );
}
Base_Tab4.draw();


StaveBase4 = Base_Tab4;
var formatterGuitar2_St2_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_St2_2Voice, Guitar2_St2_1Voice]);
formatterGuitar2_St2_1.format([Guitar2_St2_2Voice, Guitar2_St2_1Voice], nStaveWidth - 45 - 10);
Guitar2_St2_1Voice.draw(ctx, Guitar2_St2_1);
Guitar2_St2_2Voice.draw(ctx, Guitar2_St2_1);


var Base_connect = new VF.StaveConnector(Base_St1, Base_Tab1);
Guitar2_St2_beam1_1.setContext(ctx).draw();
Base_connect.setType(VF.StaveConnector.type.BRACKET);
Guitar2_St2_beam1_2.setContext(ctx).draw();
Base_connect.setContext(ctx);
Guitar2_St2_beam1_3.setContext(ctx).draw();
Base_connect.draw();
Guitar2_St2_beam1_4.setContext(ctx).draw();
 
shiftGuitar2_St2 = addShift(
  Guitar2_notes2_1,
  [0, 1, 2, 3, 4, 6, 7, 8, 9, 10],
  [2, 2, 2, 2, 2, 2, 2, 2, 2,  2]
);


const Drum_St1 = new Stave(Base_Tab1.x, Base_Tab1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Drum_St1.addClef("bass").setContext(ctx);
Drum_St1.addTimeSignature('4/4').setContext(ctx);
Drum_St1.draw();


DrumInst.x = Drum_St1.x - 30;
DrumInst.y = Drum_St1.y + 90;


const Drum_St1_1 = new Stave(nHeadMargin + Base_Tab1.x, Base_Tab1.y + 120, 0).setContext(ctx);
Drum_St1_1.setBegBarType(VF.Barline.type.NONE);
Drum_St1_1.setEndBarType(VF.Barline.type.NONE);
Drum_St1_1.draw();


const Drum_notes1_1 = [
const Guitar2_St3 = new Stave(Guitar2_St2.width + Guitar2_St2.x, Guitar2_St2.y, nStaveWidth).setContext(ctx);
  new StaveNote({ keys: ["f/4"], duration: "4", stem_direction: -1 }),
Guitar2_St3.draw();
  new StaveNote({ keys: ["c/4"], duration: "4r" }),
  new StaveNote({ keys: ["c/4"], duration: "8r" }),
  new StaveNote({ keys: ["f/4"], duration: "8", stem_direction: -1 }),
  new StaveNote({ keys: ["c/4"], duration: "8r" }),
  new StaveNote({ keys: ["f/4"], duration: "8", stem_direction: -1 })
];
const Drum_beam1_1 = new VF.Beam([Drum_notes1_1[3],Drum_notes1_1[5]]);


var Drum_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
const Guitar2_St4 = new Stave(Guitar2_St3.width + Guitar2_St3.x, Guitar2_St3.y, nStaveWidth).setContext(ctx);
Drum_St1_1Voice.setStrict(true);
Guitar2_St4.draw();
Drum_St1_1Voice.addTickables(Drum_notes1_1);


const Drum_St1_2 = new Stave(nHeadMargin + Base_Tab1.x, Base_Tab1.y + 120, 0).setContext(ctx);
const Guitar2_Tab1_1 = new Stave(Guitar2_St1.x + nHeadMargin + 20, Guitar2_St1.y + 120, 0).setContext(ctx);
Drum_St1_2.setBegBarType(VF.Barline.type.NONE);
Guitar2_Tab1_1.setBegBarType(VF.Barline.type.NONE);
Drum_St1_2.setEndBarType(VF.Barline.type.NONE);
Guitar2_Tab1_1.setEndBarType(VF.Barline.type.NONE);
Drum_St1_2.draw();
Guitar2_Tab1_1.draw();
const Guitar2_Tab1 = new Stave(Guitar2_St1.x, Guitar2_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Guitar2_Tab1.draw();


const Drum_notes1_2 = [
const Guitar2_tab_notes1_1 = [
   new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 }),
   dotted(new VF.StaveNote({ keys: ["b/4"], duration: "8d" })),
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 }),
   new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: 1 }),
  new VF.StaveNote({ keys: ["g/5"], duration: "16", stem_direction: 1 }),
   new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: 1 }),
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 }),
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 }),
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: 1 }),
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 })
];


const Drum_notes1_3 = [
   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
   new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
   new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),


   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
   new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
   new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
   new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
   new VF.StaveNote({ keys: ["b/4"], duration: "16" }),


   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
];
   new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
const Guitar2_tab_notes1_2 = [
   new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
   new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
 
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
   new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
   new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
 
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
 
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 })
];
];
const Guitar2_tab_St1_beam1_1 = new VF.Beam([Guitar2_tab_notes1_1[0], Guitar2_tab_notes1_1[1]]);
const Guitar2_tab_St1_beam1_2 = new VF.Beam([Guitar2_tab_notes1_1[2], Guitar2_tab_notes1_1[3], Guitar2_tab_notes1_1[4]]);
const Guitar2_tab_St1_beam1_3 = new VF.Beam([Guitar2_tab_notes1_1[5], Guitar2_tab_notes1_1[6], Guitar2_tab_notes1_1[7], Guitar2_tab_notes1_1[8]]);
const Guitar2_tab_St1_beam1_4 = new VF.Beam([Guitar2_tab_notes1_1[9], Guitar2_tab_notes1_1[10]]);


UniqueIds = getUniqueNoteheadIds(Drum_notes1_2, [0, 1, 3, 5, 6, 8]);
UniqueIds = getUniqueNoteheadIds(Guitar2_tab_notes1_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
allUniqueIds = updateAllUniqueIds(UniqueIds);


const Drum_beam1_2_1 = new VF.Beam([Drum_notes1_2[0], Drum_notes1_2[1]]);
var Guitar2_tab_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
const Drum_beam1_2_2 = new VF.Beam([Drum_notes1_2[2], Drum_notes1_2[3], Drum_notes1_2[4]]);
Guitar2_tab_St1_1Voice.setStrict(true);
const Drum_beam1_2_3 = new VF.Beam([Drum_notes1_2[5], Drum_notes1_2[6], Drum_notes1_2[7], Drum_notes1_2[8]]);
Guitar2_tab_St1_1Voice.addTickables(Guitar2_tab_notes1_1);
 
var Guitar2_tab_St1_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St1_2Voice.setStrict(true);
Guitar2_tab_St1_2Voice.addTickables(Guitar2_tab_notes1_2);


var Drum_St1_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
var formatterGuitar2_tab_St1_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_tab_St1_2Voice, Guitar2_tab_St1_1Voice]);
Drum_St1_2Voice.setStrict(true);
formatterGuitar2_tab_St1_1.format([Guitar2_tab_St1_2Voice, Guitar2_tab_St1_1Voice], nStaveWidth - 40 - 10);
Drum_St1_2Voice.addTickables(Drum_notes1_2);
Guitar2_tab_St1_1Voice.draw(ctx, Guitar2_Tab1_1);
Guitar2_tab_St1_2Voice.draw(ctx, Guitar2_Tab1_1);


var Drum_St1_3Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St1_beam1_1.setContext(ctx).draw();
Drum_St1_3Voice.setStrict(true);
Guitar2_tab_St1_beam1_2.setContext(ctx).draw();
Drum_St1_3Voice.addTickables(Drum_notes1_3);
Guitar2_tab_St1_beam1_3.setContext(ctx).draw();
Guitar2_tab_St1_beam1_4.setContext(ctx).draw();


var formatterDrum_St1_2 = new Vex.Flow.Formatter().joinVoices([Drum_St1_3Voice, Drum_St1_1Voice, Drum_St1_2Voice]);
shiftGuitar2_Tab1 = addShift(
//formatter13_2.formatToStave([stave13_3Voice, stave13_1Voice, stave13_2Voice], stave13_2);
  Guitar2_tab_notes1_1,
formatterDrum_St1_2.format([Drum_St1_3Voice, Drum_St1_1Voice, Drum_St1_2Voice], nStaveWidth - 30);
  [0, 1, 2, 3, 4, 6, 7, 8, 9, 10],
Drum_St1_1Voice.draw(ctx, Drum_St1_2);
  [3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
Drum_St1_2Voice.draw(ctx, Drum_St1_2);
);


Drum_beam1_1.setContext(ctx).draw();


Drum_beam1_2_1.setContext(ctx).draw();
Guitar2Tab1.x = Guitar2_Tab1.x;
Drum_beam1_2_2.setContext(ctx).draw();
Guitar2Tab1.y = Guitar2_Tab1.y;
Drum_beam1_2_3.setContext(ctx).draw();


shiftDrum1 = addShift(
const Guitar2_Tab2 = new Stave(Guitar2_Tab1.width + Guitar2_Tab1.x, Guitar2_Tab1.y, nStaveWidth).setContext(ctx);
  Drum_notes1_2,
Guitar2_Tab2.draw();
  [0, 1, 2, 3, 5, 5, 6, 6, 7, 7, 8, 8],
  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
);


const Guitar2_Tab2_1 = new Stave(Guitar2_Tab1.width + Guitar2_Tab1.x + 45, Guitar2_Tab1.y, 0).setContext(ctx);
Guitar2_Tab2_1.setBegBarType(VF.Barline.type.NONE);
Guitar2_Tab2_1.setEndBarType(VF.Barline.type.NONE);
Guitar2_Tab2_1.draw();


const Drum_St2 = new Stave(Drum_St1.width + Drum_St1.x, Drum_St1.y, nStaveWidth).setContext(ctx);
const Guitar2_tab_notes2_1 = [
Drum_St2.draw();
  dotted(new VF.StaveNote({ keys: ["b/4"], duration: "8d", stem_direction: -1 })),
  new VF.StaveNote({ keys: ["b/4"], duration: "16", stem_direction: -1 }),


  new VF.StaveNote({ keys: ["b/4"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16", stem_direction: -1 }),


const Drum_St3 = new Stave(Drum_St2.width + Drum_St2.x, Drum_St1.y, nStaveWidth).setContext(ctx);
  new VF.StaveNote({ keys: ["b/4"], duration: "16", stem_direction: -1 }),
Drum_St3.draw();
  new VF.StaveNote({ keys: ["b/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16", stem_direction: -1 }),


  new VF.StaveNote({ keys: ["b/4"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8", stem_direction: -1 }),
];
const Guitar2_tab_notes2_2 = [
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


const Drum_St4 = new Stave(Drum_St3.width + Drum_St3.x, Drum_St1.y, nStaveWidth).setContext(ctx);
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
Drum_St4.draw();
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


const Perc_St1 = new Stave(Drum_St1.x, Drum_St1.y + 100, nHeadMargin + nStaveWidth).setContext(ctx);
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
Perc_St1.addTimeSignature('4/4').setContext(ctx);
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),
  new VF.GhostNote({ keys: ["f/4"], duration: "16"}),


const Perc_St1_1 = new Stave(nHeadMargin + Drum_St1.x, Drum_St1.y + 100, 0).setContext(ctx);
];
Perc_St1_1.setBegBarType(VF.Barline.type.NONE);
const Guitar2_tab_St2_beam1_1 = new VF.Beam([Guitar2_tab_notes2_1[0], Guitar2_tab_notes2_1[1]]);
Perc_St1_1.setEndBarType(VF.Barline.type.NONE);
const Guitar2_tab_St2_beam1_2 = new VF.Beam([Guitar2_tab_notes2_1[2], Guitar2_tab_notes2_1[3], Guitar2_tab_notes2_1[4]]);
Perc_St1_1.draw();
const Guitar2_tab_St2_beam1_3 = new VF.Beam([Guitar2_tab_notes2_1[5], Guitar2_tab_notes2_1[6], Guitar2_tab_notes2_1[7], Guitar2_tab_notes2_1[8]]);
const Guitar2_tab_St2_beam1_4 = new VF.Beam([Guitar2_tab_notes2_1[9], Guitar2_tab_notes2_1[10]]);


for (var i = 0; i < 5; i++) {
UniqueIds = getUniqueNoteheadIds(Guitar2_tab_notes2_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
  if (i == 2) continue;
allUniqueIds = updateAllUniqueIds(UniqueIds);
  Perc_St1.setConfigForLine(i, {visible: false} );
}


Perc_St1.draw();
var Guitar2_tab_St2_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St2_1Voice.setStrict(true);
Guitar2_tab_St2_1Voice.addTickables(Guitar2_tab_notes2_1);


PercInst.x = Perc_St1.x - 30;
var Guitar2_tab_St2_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
PercInst.y = Perc_St1.y + 90;  
Guitar2_tab_St2_2Voice.setStrict(true);
Guitar2_tab_St2_2Voice.addTickables(Guitar2_tab_notes2_2);


var AllConnector = new VF.StaveConnector(VocalSt1, Perc_St1);
var formatterGuitar2_tab_St2_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_tab_St2_2Voice, Guitar2_tab_St2_1Voice]);
AllConnector.setType(VF.StaveConnector.type.SINGLE);
formatterGuitar2_tab_St2_1.format([Guitar2_tab_St2_2Voice, Guitar2_tab_St2_1Voice], nStaveWidth - 40 - 10);
AllConnector.setContext(ctx);
Guitar2_tab_St2_1Voice.draw(ctx, Guitar2_Tab2_1);
AllConnector.draw();
Guitar2_tab_St2_2Voice.draw(ctx, Guitar2_Tab2_1);


const Perc_notes1_1 = [
Guitar2_tab_St2_beam1_1.setContext(ctx).draw();
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
Guitar2_tab_St2_beam1_2.setContext(ctx).draw();
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
Guitar2_tab_St2_beam1_3.setContext(ctx).draw();
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
Guitar2_tab_St2_beam1_4.setContext(ctx).draw();
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),


   new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
shiftGuitar2_Tab2 = addShift(
   new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  Guitar2_tab_notes2_1,
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
   [0, 1, 2, 3, 4, 6, 7, 8, 9, 10],
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
   [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
);


  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),


  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 })
];
UniqueIds = getUniqueNoteheadIds(Perc_notes1_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
allUniqueIds = updateAllUniqueIds(UniqueIds);


const Perc_beam1_1_1 = new VF.Beam([Perc_notes1_1[0], Perc_notes1_1[1], Perc_notes1_1[2], Perc_notes1_1[3]]);
const Perc_beam1_1_2 = new VF.Beam([Perc_notes1_1[4], Perc_notes1_1[5], Perc_notes1_1[6], Perc_notes1_1[7]]);
const Perc_beam1_1_3 = new VF.Beam([Perc_notes1_1[8], Perc_notes1_1[9], Perc_notes1_1[10], Perc_notes1_1[11]]);
const Perc_beam1_1_4 = new VF.Beam([Perc_notes1_1[12], Perc_notes1_1[13], Perc_notes1_1[14], Perc_notes1_1[15]]);


var Perc_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
const Guitar2_Tab3 = new Stave(Guitar2_Tab2.width + Guitar2_Tab2.x, Guitar2_Tab2.y, nStaveWidth).setContext(ctx);
Perc_St1_1Voice.setStrict(true);
Guitar2_Tab3.draw();
Perc_St1_1Voice.addTickables(Perc_notes1_1);


var formatterPerc_St1_1 = new Vex.Flow.Formatter().joinVoices([Perc_St1_1Voice]);
const Guitar2_Tab4 = new Stave(Guitar2_Tab3.width + Guitar2_Tab3.x, Guitar2_Tab3.y, nStaveWidth).setContext(ctx);
//formatterPerc_St1_1.formatToStave([stave17_1Voice], Perc_St1_1);
Guitar2_Tab4.draw();
formatterPerc_St1_1.format([Perc_St1_1Voice], nStaveWidth - 30);
Perc_St1_1Voice.draw(ctx, Perc_St1_1);


Perc_beam1_1_1.setContext(ctx).draw();
var Guitar2_connect = new VF.StaveConnector(Guitar2_St1, Guitar2_Tab1);
Perc_beam1_1_2.setContext(ctx).draw();
Guitar2_connect.setType(VF.StaveConnector.type.BRACKET);
Perc_beam1_1_3.setContext(ctx).draw();
Guitar2_connect.setContext(ctx);
Perc_beam1_1_4.setContext(ctx).draw();
Guitar2_connect.draw();


Perc_note1_1_0.x = Perc_notes1_1[0].getAbsoluteX();
const Guitar2_Tab1_tab = new Stave(Guitar2_Tab1.x, Guitar2_Tab1.y - 10, nHeadMargin + nStaveWidth).setContext(ctx);
Perc_note1_1_0.y = Perc_notes1_1[0].getStave().getYForLine(1);
 
shiftPerc1 = addShift(
  Perc_notes1_1,
  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
  [4, 4, 4, 4, 4, 4, 4, 4, 4, 4,  4,  4,  4,  4,  4,  4]
);
 
const Perc_St2 = new Stave(Perc_St1.width + Perc_St1.x, Perc_St1.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 2) continue;
   if (i == 0) continue;
   Perc_St2.setConfigForLine(i, {visible: false} );
   Guitar2_Tab1_tab.setConfigForLine(i, {visible: false} );
}
}
Perc_St2.draw();
Guitar2_Tab1_tab.draw();


const Perc_St3 = new Stave(Perc_St2.width + Perc_St2.x, Perc_St2.y, nStaveWidth).setContext(ctx);
const Guitar2_Tab2_tab = new Stave(Guitar2_Tab1_tab.width + Guitar2_Tab1_tab.x, Guitar2_Tab1_tab.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 2) continue;
   if (i == 0) continue;
   Perc_St3.setConfigForLine(i, {visible: false} );
   Guitar2_Tab2_tab.setConfigForLine(i, {visible: false} );
}
}
Perc_St3.draw();
Guitar2_Tab2_tab.draw();


const Perc_St4 = new Stave(Perc_St3.width + Perc_St3.x, Perc_St3.y, nStaveWidth).setContext(ctx);
const Guitar2_Tab3_tab = new Stave(Guitar2_Tab2_tab.width + Guitar2_Tab2_tab.x, Guitar2_Tab2_tab.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 2) continue;
   if (i == 0) continue;
   Perc_St4.setConfigForLine(i, {visible: false} );
   Guitar2_Tab3_tab.setConfigForLine(i, {visible: false} );
}
Guitar2_Tab3_tab.draw();
 
const Guitar2_Tab4_tab = new Stave(Guitar2_Tab3_tab.width + Guitar2_Tab3_tab.x, Guitar2_Tab3_tab.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
  if (i == 0) continue;
  Guitar2_Tab4_tab.setConfigForLine(i, {visible: false} );
}
}
Perc_St4.draw();
Guitar2_Tab4_tab.draw();


})();
Guitar2Inst.x = Guitar2_St1.x - 30;
Guitar2Inst.y = Guitar2_St1.y + ((Guitar2_Tab1.y - Guitar2_St1.y) / 2) + 90;  


const svgElement2 = document.querySelector('#yonet202403Mid_Output01 svg');
const Base_St1 = new Stave(Guitar2_Tab1.x, Guitar2_Tab1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
svgElement2.style.backgroundColor = '#F5F5F5';
Base_St1.addClef("bass").setContext(ctx);
var svgContainer = document.getElementById('yonet202403Mid_Output01');
Base_St1.addTimeSignature('4/4').setContext(ctx);
var svgElement = svgContainer.querySelector('svg');
Base_St1.addKeySignature('D').setContext(ctx);
Base_St1.draw();


var VocalText_options = {
const Base_St2 = new Stave(Base_St1.width + Base_St1.x, Base_St1.y, nStaveWidth).setContext(ctx);
    textContent: ["Vocal"], // 必須文字列
Base_St2.draw();
    strID: "VocalText", // 必須
 
    Stave_x: Vocal.x,
const Base_St3 = new Stave(Base_St2.width + Base_St2.x, Base_St2.y, nStaveWidth).setContext(ctx);
    Stave_y: Vocal.y,
Base_St3.draw();
    fontFamily: "Arial, sans-serif",
    fontSize: "20pt",
    Rotate: -90
};
insertTextToSVG(VocalText_options);


var EGuitarText_options = {
const Base_St4 = new Stave(Base_St3.width + Base_St3.x, Base_St3.y, nStaveWidth).setContext(ctx);
    textContent: ["E.Guitar1"], // 必須文字列
Base_St4.draw();
    strID: "EGuitarText", // 必須
    Stave_x: Guitar1Inst.x,
    Stave_y: Guitar1Inst.y,
    fontFamily: "Arial, sans-serif",
    fontSize: "20pt",
    Rotate: -90
};
insertTextToSVG(EGuitarText_options);


var EGuitarTab_options = {
const Base_Tab1 = new Stave(Base_St1.x, Base_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
    textContent: ["@"], // 必須文字列
Base_Tab1.setEndBarType(VF.Barline.type.NONE);
    strID: "EGuitarTab", // 必須
for (var i = 0; i < 5; i++) {
    Stave_x: Stave9Pos.x,
  if (i != 0) continue;
    Stave_y: Stave9Pos.y,
  Base_Tab1.setConfigForLine(i, {visible: false} );
    Stave_x_Offset: 10,
}
    Stave_y_Offset: 80,
Base_Tab1.draw();
    fontFamily: "YonetMuFL, Arial",
};
insertTextToSVG(EGuitarTab_options);


insertTrilPathToSVG(shiftGuitar1_1);
BaseTab1.x = Base_Tab1.x;
BaseTab1.y = Base_Tab1.y;


var Guitar1_notes4_tr_option = {
BaseInst.x = Base_St1.x - 30;
    textContent: ["tr."], // 必須文字列
BaseInst.y = Base_St1.y + ((Base_Tab1.y - Base_St1.y) / 2) + 90;  
    strID: "Guitar1_notes4_tr", // 必須
    Stave_x: shiftGuitar1_1[0].x,
    Stave_y: shiftGuitar1_1[0].y,
    Stave_x_Offset: 25,
    Stave_y_Offset: -50,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [0] // xのオフセット値配列
};
insertTextToSVG(Guitar1_notes4_tr_option);


var Guitar1_notes1_option = {
StaveBase1 = Base_Tab1;
    textContent: ["0", "2", "2", "2", "9", "9"], // 必須文字列
    strID: "Guitar1_notes1", // 必須
    Stave_x_Offset: [10, 0, 10, 0, 0, 0],
    Stave_y_Offset: 0,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: shiftGuitar1_tab1, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes1_option);


insertTiePathToSVG({x:shiftGuitar1_tab1[4].x - 40, y:shiftGuitar1_tab1[4].y + 30}, {x:shiftGuitar1_tab1[4].x - 5, y:shiftGuitar1_tab1[4].y});
const Base_Tab2 = new Stave(Base_Tab1.width + Base_Tab1.x, Base_Tab1.y, nStaveWidth).setContext(ctx);
Base_Tab2.setBegBarType(VF.Barline.type.NONE);
Base_Tab2.setEndBarType(VF.Barline.type.NONE);
for (var i = 0; i < 5; i++) {
  if (i != 0) continue;
  Base_Tab2.setConfigForLine(i, {visible: false} );
}
Base_Tab2.draw();


insertTiePathToSVG({x:shiftGuitar1_tab1[4].x - 40, y:shiftGuitar1_tab1[4].y + 30 - 110}, {x:shiftGuitar1_tab1[4].x - 5, y:shiftGuitar1_tab1[4].y - 110});
StaveBase2 = Base_Tab2;


var Guitar1_notes1_g_option = {
const Base_Tab3 = new Stave(Base_Tab2.width + Base_Tab2.x, Base_Tab2.y, nStaveWidth).setContext(ctx);
    textContent: ["g"], // 必須文字列
Base_Tab3.setBegBarType(VF.Barline.type.NONE);
    strID: "Guitar1_notes1_g", // 必須
Base_Tab3.setEndBarType(VF.Barline.type.NONE);
    Stave_x_Offset: -30,
for (var i = 0; i < 5; i++) {
    Stave_y_Offset: 0,
  if (i != 0) continue;
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
  Base_Tab3.setConfigForLine(i, {visible: false} );
    fontSize: 50,
}
    shift_x: [{x:shiftGuitar1_tab1[4].x, y:shiftGuitar1_tab1[4].y}], // xのオフセット値配列
Base_Tab3.draw();
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes1_g_option);


var Guitar1_st1_notes1_g_option = {
StaveBase3 = Base_Tab3;
    textContent: ["g"], // 必須文字列
    strID: "Guitar1_st1_notes1_g", // 必須
    Stave_x_Offset: -30,
    Stave_y_Offset: 0 - 110,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab1[4].x, y:shiftGuitar1_tab1[4].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st1_notes1_g_option);


const Base_Tab4 = new Stave(Base_Tab3.width + Base_Tab3.x, Base_Tab3.y, nStaveWidth).setContext(ctx);
Base_Tab4.setBegBarType(VF.Barline.type.NONE);
Base_Tab4.setEndBarType(VF.Barline.type.NONE);
for (var i = 0; i < 5; i++) {
  if (i != 0) continue;
  Base_Tab4.setConfigForLine(i, {visible: false} );
}
Base_Tab4.draw();


var Guitar1_notes1_Arpeggio_option = {
StaveBase4 = Base_Tab4;
    textContent: ["┌ Arpeggio ──────┐"], // 必須文字列
    strID: "Guitar1_notes1_g", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: -40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 40,
    shift_x: [{x:shiftGuitar1_tab1[4].x, y:shiftGuitar1_tab1[4].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes1_Arpeggio_option);
 
var Guitar1_st1_notes1_Arpeggio_option = {
    textContent: ["┌ Arpeggio ──────┐"], // 必須文字列
    strID: "Guitar1_st1_notes1_g", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: -40 - 110 - 20,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 40,
    shift_x: [{x:shiftGuitar1_tab1[4].x, y:shiftGuitar1_tab1[4].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st1_notes1_Arpeggio_option);


var Guitar1_notes1_0_option = {
var Base_connect = new VF.StaveConnector(Base_St1, Base_Tab1);
    textContent: ["\uFF7C"], // 必須文字列 4和音コード2分音符
Base_connect.setType(VF.StaveConnector.type.BRACKET);
    strID: "Guitar1_notes1_ele0", // 必須
Base_connect.setContext(ctx);
    Stave_x: shiftGuitar1_tab1[0].x,
Base_connect.draw();
    Stave_y: shiftGuitar1_tab1[0].y,
 
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
const Drum_St1 = new Stave(Base_Tab1.x, Base_Tab1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
};
Drum_St1.addClef("bass").setContext(ctx);
insertTextToSVG(Guitar1_notes1_0_option);
Drum_St1.addTimeSignature('4/4').setContext(ctx);
Drum_St1.draw();


var Guitar1_notes2_option = {
DrumInst.x = Drum_St1.x - 30;
    textContent: ["9", "9", "9", "9", "9", "9", "7", "9", "7", "7", "5", "4", "7"], // 必須文字列
DrumInst.y = Drum_St1.y + 90;  
    strID: "Guitar1_notes1", // 必須
    Stave_x_Offset: [-30, -40, 0, -10, 0, -10, 0, 0, 10, 0, 0, 0, 0],
    Stave_y_Offset: 0,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: shiftGuitar1_tab2, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes2_option);


var Guitar1_notes2_c_option = {
const Drum_St1_1 = new Stave(nHeadMargin + Base_Tab1.x, Base_Tab1.y + 120, 0).setContext(ctx);
    textContent: ["H.C."], // 必須文字列
Drum_St1_1.setBegBarType(VF.Barline.type.NONE);
    strID: "Guitar1_notes1", // 必須
Drum_St1_1.setEndBarType(VF.Barline.type.NONE);
    Stave_x_Offset: 0,
Drum_St1_1.draw();
    Stave_y_Offset: -40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab2[1].x -30, y:shiftGuitar1_tab2[1].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes2_c_option);


var Guitar1_st1_notes2_c_option = {
const Drum_notes1_1 = [
    textContent: ["H.C."], // 必須文字列
  new StaveNote({ keys: ["f/4"], duration: "4", stem_direction: -1 }),
    strID: "Guitar1_st1_notes1", // 必須
  new StaveNote({ keys: ["c/4"], duration: "4r" }),
    Stave_x_Offset: 0,
  new StaveNote({ keys: ["c/4"], duration: "8r" }),
    Stave_y_Offset: -40 - 110,
  new StaveNote({ keys: ["f/4"], duration: "8", stem_direction: -1 }),
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
  new StaveNote({ keys: ["c/4"], duration: "8r" }),
    fontSize: 50,
  new StaveNote({ keys: ["f/4"], duration: "8", stem_direction: -1 })
    shift_x: [{x:shiftGuitar1_tab2[1].x -30, y:shiftGuitar1_tab2[1].y}], // xのオフセット値配列
];
    IsOffset_x_Abs: true
const Drum_beam1_1 = new VF.Beam([Drum_notes1_1[3],Drum_notes1_1[5]]);
};
insertTextToSVG(Guitar1_st1_notes2_c_option);


var Guitar1_notes2_a_option = {
var Drum_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
    textContent: [".", ".", ".", ".", ".", ".", ".", "."], // 必須文字列
Drum_St1_1Voice.setStrict(true);
    strID: "Guitar1_notes2", // 必須
Drum_St1_1Voice.addTickables(Drum_notes1_1);
    Stave_x_Offset: [0, 0, 0, 0, 0, 0, 0, 0],
    Stave_y_Offset: [-15, -15, -15, -15, 15, 15, 15, 15],
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab2[3].x, y:shiftGuitar1_tab2[3].y},
              {x:shiftGuitar1_tab2[5].x, y:shiftGuitar1_tab2[5].y},
              {x:shiftGuitar1_tab2[6].x, y:shiftGuitar1_tab2[6].y},
              {x:shiftGuitar1_tab2[7].x, y:shiftGuitar1_tab2[7].y},
              {x:shiftGuitar1_tab2[8].x, y:shiftGuitar1_tab2[8].y},
              {x:shiftGuitar1_tab2[10].x, y:shiftGuitar1_tab2[10].y},
              {x:shiftGuitar1_tab2[11].x, y:shiftGuitar1_tab2[11].y},
              {x:shiftGuitar1_tab2[12].x, y:shiftGuitar1_tab2[12].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes2_a_option);


insertTiePathToSVG({x:shiftGuitar1_tab2[0].x - 20 - 10, y:shiftGuitar1_tab2[0].y + 10}, {x:shiftGuitar1_tab2[0].x, y:shiftGuitar1_tab2[0].y + 10});
const Drum_St1_2 = new Stave(nHeadMargin + Base_Tab1.x, Base_Tab1.y + 120, 0).setContext(ctx);
 
Drum_St1_2.setBegBarType(VF.Barline.type.NONE);
insertTiePathToSVG({x:shiftGuitar1_tab2[0].x - 20 - 10, y:shiftGuitar1_tab2[0].y - 40}, {x:shiftGuitar1_tab2[0].x, y:shiftGuitar1_tab2[0].y - 40}, -1);
Drum_St1_2.setEndBarType(VF.Barline.type.NONE);
Drum_St1_2.draw();


var Guitar1_notes3_option = {
const Drum_notes1_2 = [
    textContent: ["", "", "", "", "", "", "7", ""], // 必須文字列
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 }),
    strID: "Guitar1_notes3", // 必須
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 }),
    Stave_x_Offset: [0, 0, 0, 0, 0, 0, 0, 5],
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: 1 }),
    Stave_y_Offset: 0,
  new VF.StaveNote({ keys: ["g/5"], duration: "16", stem_direction: 1 }),
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
  new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: 1 }),
    fontSize: 50,
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 }),
    shift_x: shiftGuitar1_tab3, // xのオフセット値配列
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 }),
    IsOffset_x_Abs: true
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: 1 }),
};
  new VF.StaveNote({ keys: ["g/5"], duration: "8", stem_direction: 1 })
insertTextToSVG(Guitar1_notes3_option);
];


var Guitar1_notes3_H_P_H_P_option = {
const Drum_notes1_3 = [
    textContent: ["", "", "", ""], // 必須文字列
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    strID: "Guitar1_notes1", // 必須
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    Stave_x_Offset: 10,
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    Stave_y_Offset: 35,
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
 
    fontSize: 50,
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    shift_x: [{x:shiftGuitar1_tab3[0].x , y:shiftGuitar1_tab3[0].y},
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
{x:shiftGuitar1_tab3[1].x , y:shiftGuitar1_tab3[1].y},
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
{x:shiftGuitar1_tab3[2].x , y:shiftGuitar1_tab3[2].y},
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
{x:shiftGuitar1_tab3[3].x , y:shiftGuitar1_tab3[3].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes3_H_P_H_P_option);


var Guitar1_st1_notes3_H_P_H_P_option = {
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    textContent: ["H", "P", "H", "P"], // 必須文字列
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    strID: "Guitar1_st1_notes1", // 必須
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    Stave_x_Offset: 10,
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
    Stave_y_Offset: 35 - 110,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab3[0].x , y:shiftGuitar1_tab3[0].y},
{x:shiftGuitar1_tab3[1].x , y:shiftGuitar1_tab3[1].y},
{x:shiftGuitar1_tab3[2].x , y:shiftGuitar1_tab3[2].y},
{x:shiftGuitar1_tab3[3].x , y:shiftGuitar1_tab3[3].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st1_notes3_H_P_H_P_option);


insertTiePathToSVG({x:shiftGuitar1_tab3[0].x , y:shiftGuitar1_tab3[0].y + 10}, {x:shiftGuitar1_tab3[1].x + 5, y:shiftGuitar1_tab3[0].y + 10});
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 }),
  new VF.GhostNote({ keys: ["a/5"], duration: "16", stem_direction: 1 })
];


insertTiePathToSVG({x:shiftGuitar1_tab3[1].x , y:shiftGuitar1_tab3[1].y + 10}, {x:shiftGuitar1_tab3[2].x + 5, y:shiftGuitar1_tab3[1].y + 10});
UniqueIds = getUniqueNoteheadIds(Drum_notes1_2, [0, 1, 3, 5, 6, 8]);
allUniqueIds = updateAllUniqueIds(UniqueIds);


insertTiePathToSVG({x:shiftGuitar1_tab3[2].x , y:shiftGuitar1_tab3[2].y + 10}, {x:shiftGuitar1_tab3[3].x + 5, y:shiftGuitar1_tab3[2].y + 10});
const Drum_beam1_2_1 = new VF.Beam([Drum_notes1_2[0], Drum_notes1_2[1]]);
const Drum_beam1_2_2 = new VF.Beam([Drum_notes1_2[2], Drum_notes1_2[3], Drum_notes1_2[4]]);
const Drum_beam1_2_3 = new VF.Beam([Drum_notes1_2[5], Drum_notes1_2[6], Drum_notes1_2[7], Drum_notes1_2[8]]);


insertTiePathToSVG({x:shiftGuitar1_tab3[3].x , y:shiftGuitar1_tab3[3].y + 10}, {x:shiftGuitar1_tab3[4].x + 5, y:shiftGuitar1_tab3[3].y + 10});
var Drum_St1_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Drum_St1_2Voice.setStrict(true);
Drum_St1_2Voice.addTickables(Drum_notes1_2);


insertTiePathToSVG({x:shiftGuitar1_tab3[6].x , y:shiftGuitar1_tab3[6].y + 15}, {x:shiftGuitar1_tab3[6].x + 35, y:shiftGuitar1_tab3[6].y + 15});
var Drum_St1_3Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Drum_St1_3Voice.setStrict(true);
Drum_St1_3Voice.addTickables(Drum_notes1_3);


var formatterDrum_St1_2 = new Vex.Flow.Formatter().joinVoices([Drum_St1_3Voice, Drum_St1_1Voice, Drum_St1_2Voice]);
//formatter13_2.formatToStave([stave13_3Voice, stave13_1Voice, stave13_2Voice], stave13_2);
formatterDrum_St1_2.format([Drum_St1_3Voice, Drum_St1_1Voice, Drum_St1_2Voice], nStaveWidth - 30);
Drum_St1_1Voice.draw(ctx, Drum_St1_2);
Drum_St1_2Voice.draw(ctx, Drum_St1_2);


var Guitar1_notes3_7_option = {
Drum_beam1_1.setContext(ctx).draw();
    textContent: ["\uFF7F"], // 必須文字列 1音2分音符
    strID: "Guitar1_notes3_ele7", // 必須
    Stave_x: shiftGuitar1_tab3[7].x - 7,
    Stave_y: shiftGuitar1_tab3[7].y,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
};
insertTextToSVG(Guitar1_notes3_7_option);


var Guitar1_notes4_option = {
Drum_beam1_2_1.setContext(ctx).draw();
    textContent: ["5", "7", "5", "7", "7", "7", "4", "6", "4", "."], // 必須文字列
Drum_beam1_2_2.setContext(ctx).draw();
    strID: "Guitar1_notes3", // 必須
Drum_beam1_2_3.setContext(ctx).draw();
    Stave_x_Offset: [0, 0, 0, -20, 0, 0, 0, 0, 0,  0],
    Stave_y_Offset: [0, 0, 0,  0, 0, 0, 0, 0, 0, -15],
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: shiftGuitar1_tab4, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes4_option);


var Guitar1_notes4_P_C_H_option = {
shiftDrum1 = addShift(
    textContent: ["P", "C", "H"], // 必須文字列
  Drum_notes1_2,
    strID: "Guitar1_notes1", // 必須
  [0, 1, 2, 3, 5, 5, 6, 6, 7, 7, 8, 8],
    Stave_x_Offset: 10,
  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    Stave_y_Offset: 35,
);
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
 
    fontSize: 50,
 
    shift_x: [{x:shiftGuitar1_tab4[1].x + 10 , y:shiftGuitar1_tab4[1].y},
const Drum_St2 = new Stave(Drum_St1.width + Drum_St1.x, Drum_St1.y, nStaveWidth).setContext(ctx);
{x:shiftGuitar1_tab4[3].x - 20, y:shiftGuitar1_tab4[3].y},
Drum_St2.draw();
{x:shiftGuitar1_tab4[6].x , y:shiftGuitar1_tab4[6].y - 60}], // xのオフセット値配列
 
    IsOffset_x_Abs: true
 
};
const Drum_St3 = new Stave(Drum_St2.width + Drum_St2.x, Drum_St1.y, nStaveWidth).setContext(ctx);
insertTextToSVG(Guitar1_notes4_P_C_H_option);
Drum_St3.draw();


var Guitar1_st1_notes4_P_C_H_option = {
 
     textContent: ["", "", ""], // 必須文字列
const Drum_St4 = new Stave(Drum_St3.width + Drum_St3.x, Drum_St1.y, nStaveWidth).setContext(ctx);
     strID: "Guitar1_st1_notes1", // 必須
Drum_St4.draw();
     Stave_x_Offset: 10,
 
     Stave_y_Offset: 35 - 110,
 
     fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
const Perc_St1 = new Stave(Drum_St1.x, Drum_St1.y + 100, nHeadMargin + nStaveWidth).setContext(ctx);
Perc_St1.addTimeSignature('4/4').setContext(ctx);
 
const Perc_St1_1 = new Stave(nHeadMargin + Drum_St1.x, Drum_St1.y + 100, 0).setContext(ctx);
Perc_St1_1.setBegBarType(VF.Barline.type.NONE);
Perc_St1_1.setEndBarType(VF.Barline.type.NONE);
Perc_St1_1.draw();
 
for (var i = 0; i < 5; i++) {
  if (i == 2) continue;
  Perc_St1.setConfigForLine(i, {visible: false} );
}
 
Perc_St1.draw();
 
PercInst.x = Perc_St1.x - 30;
PercInst.y = Perc_St1.y + 90;
 
var AllConnector = new VF.StaveConnector(VocalSt1, Perc_St1);
AllConnector.setType(VF.StaveConnector.type.SINGLE);
AllConnector.setContext(ctx);
AllConnector.draw();
 
const Perc_notes1_1 = [
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
 
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
 
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
 
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16", stem_direction: -1 })
];
UniqueIds = getUniqueNoteheadIds(Perc_notes1_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
 
const Perc_beam1_1_1 = new VF.Beam([Perc_notes1_1[0], Perc_notes1_1[1], Perc_notes1_1[2], Perc_notes1_1[3]]);
const Perc_beam1_1_2 = new VF.Beam([Perc_notes1_1[4], Perc_notes1_1[5], Perc_notes1_1[6], Perc_notes1_1[7]]);
const Perc_beam1_1_3 = new VF.Beam([Perc_notes1_1[8], Perc_notes1_1[9], Perc_notes1_1[10], Perc_notes1_1[11]]);
const Perc_beam1_1_4 = new VF.Beam([Perc_notes1_1[12], Perc_notes1_1[13], Perc_notes1_1[14], Perc_notes1_1[15]]);
 
var Perc_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Perc_St1_1Voice.setStrict(true);
Perc_St1_1Voice.addTickables(Perc_notes1_1);
 
var formatterPerc_St1_1 = new Vex.Flow.Formatter().joinVoices([Perc_St1_1Voice]);
//formatterPerc_St1_1.formatToStave([stave17_1Voice], Perc_St1_1);
formatterPerc_St1_1.format([Perc_St1_1Voice], nStaveWidth - 30);
Perc_St1_1Voice.draw(ctx, Perc_St1_1);
 
Perc_beam1_1_1.setContext(ctx).draw();
Perc_beam1_1_2.setContext(ctx).draw();
Perc_beam1_1_3.setContext(ctx).draw();
Perc_beam1_1_4.setContext(ctx).draw();
 
Perc_note1_1_0.x = Perc_notes1_1[0].getAbsoluteX();
Perc_note1_1_0.y = Perc_notes1_1[0].getStave().getYForLine(1);
 
shiftPerc1 = addShift(
  Perc_notes1_1,
  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
  [4, 4, 4, 4, 4, 4, 4, 4, 4, 4,  4,  4,  4,  4,  4,  4]
);
 
const Perc_St2 = new Stave(Perc_St1.width + Perc_St1.x, Perc_St1.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
  if (i == 2) continue;
  Perc_St2.setConfigForLine(i, {visible: false} );
}
Perc_St2.draw();
 
const Perc_St3 = new Stave(Perc_St2.width + Perc_St2.x, Perc_St2.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
  if (i == 2) continue;
  Perc_St3.setConfigForLine(i, {visible: false} );
}
Perc_St3.draw();
 
const Perc_St4 = new Stave(Perc_St3.width + Perc_St3.x, Perc_St3.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
  if (i == 2) continue;
  Perc_St4.setConfigForLine(i, {visible: false} );
}
Perc_St4.draw();
 
})();
 
const svgElement2 = document.querySelector('#yonet202403Mid_Output01 svg');
svgElement2.style.backgroundColor = '#F5F5F5';
var svgContainer = document.getElementById('yonet202403Mid_Output01');
var svgElement = svgContainer.querySelector('svg');
 
var VocalText_options = {
    textContent: ["Vocal"], // 必須文字列
    strID: "VocalText", // 必須
    Stave_x: Vocal.x,
    Stave_y: Vocal.y,
    fontFamily: "Arial, sans-serif",
    fontSize: "20pt",
    Rotate: -90
};
insertTextToSVG(VocalText_options);
 
var EGuitarText_options = {
     textContent: ["E.Guitar1"], // 必須文字列
    strID: "EGuitarText", // 必須
    Stave_x: Guitar1Inst.x,
    Stave_y: Guitar1Inst.y,
    fontFamily: "Arial, sans-serif",
    fontSize: "20pt",
    Rotate: -90
};
insertTextToSVG(EGuitarText_options);
 
var EGuitarTab_options = {
    textContent: ["@"], // 必須文字列
     strID: "EGuitarTab", // 必須
    Stave_x: Stave9Pos.x,
    Stave_y: Stave9Pos.y,
     Stave_x_Offset: 10,
     Stave_y_Offset: 80,
    fontFamily: "YonetMuFL, Arial",
};
insertTextToSVG(EGuitarTab_options);
 
insertTrilPathToSVG(shiftGuitar1_1);
 
var Guitar1_notes4_tr_option = {
    textContent: ["tr."], // 必須文字列
    strID: "Guitar1_notes4_tr", // 必須
    Stave_x: shiftGuitar1_1[0].x,
    Stave_y: shiftGuitar1_1[0].y,
    Stave_x_Offset: 25,
    Stave_y_Offset: -50,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [0] // xのオフセット値配列
};
insertTextToSVG(Guitar1_notes4_tr_option);
 
var Guitar1_notes1_option = {
    textContent: ["0", "2", "2", "2", "9", "9"], // 必須文字列
    strID: "Guitar1_notes1", // 必須
    Stave_x_Offset: [10, 0, 10, 0, 0, 0],
    Stave_y_Offset: 0,
     fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
     fontSize: 50,
     fontSize: 50,
     shift_x: [{x:shiftGuitar1_tab4[1].x + 10 , y:shiftGuitar1_tab4[1].y},
    shift_x: shiftGuitar1_tab1, // xのオフセット値配列
{x:shiftGuitar1_tab4[3].x - 20, y:shiftGuitar1_tab4[3].y},
    IsOffset_x_Abs: true
{x:shiftGuitar1_tab4[6].x , y:shiftGuitar1_tab4[6].y - 60}], // xのオフセット値配列
};
insertTextToSVG(Guitar1_notes1_option);
 
insertTiePathToSVG({x:shiftGuitar1_tab1[4].x - 40, y:shiftGuitar1_tab1[4].y + 30}, {x:shiftGuitar1_tab1[4].x - 5, y:shiftGuitar1_tab1[4].y});
 
insertTiePathToSVG({x:shiftGuitar1_tab1[4].x - 40, y:shiftGuitar1_tab1[4].y + 30 - 110}, {x:shiftGuitar1_tab1[4].x - 5, y:shiftGuitar1_tab1[4].y - 110});
 
var Guitar1_notes1_g_option = {
    textContent: ["g"], // 必須文字列
    strID: "Guitar1_notes1_g", // 必須
    Stave_x_Offset: -30,
    Stave_y_Offset: 0,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab1[4].x, y:shiftGuitar1_tab1[4].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes1_g_option);
 
var Guitar1_st1_notes1_g_option = {
    textContent: ["g"], // 必須文字列
    strID: "Guitar1_st1_notes1_g", // 必須
    Stave_x_Offset: -30,
    Stave_y_Offset: 0 - 110,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab1[4].x, y:shiftGuitar1_tab1[4].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st1_notes1_g_option);
 
 
var Guitar1_notes1_Arpeggio_option = {
    textContent: ["┌ Arpeggio ──────┐"], // 必須文字列
    strID: "Guitar1_notes1_g", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: -40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 40,
    shift_x: [{x:shiftGuitar1_tab1[4].x, y:shiftGuitar1_tab1[4].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes1_Arpeggio_option);
 
var Guitar1_st1_notes1_Arpeggio_option = {
    textContent: ["┌ Arpeggio ──────┐"], // 必須文字列
    strID: "Guitar1_st1_notes1_g", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: -40 - 110 - 20,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 40,
    shift_x: [{x:shiftGuitar1_tab1[4].x, y:shiftGuitar1_tab1[4].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st1_notes1_Arpeggio_option);
 
var Guitar1_notes1_0_option = {
    textContent: ["\uFF7C"], // 必須文字列 4和音コード2分音符
    strID: "Guitar1_notes1_ele0", // 必須
    Stave_x: shiftGuitar1_tab1[0].x,
    Stave_y: shiftGuitar1_tab1[0].y,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
};
insertTextToSVG(Guitar1_notes1_0_option);
 
var Guitar1_notes2_option = {
    textContent: ["9", "9", "9", "9", "9", "9", "7", "9", "7", "7", "5", "4", "7"], // 必須文字列
    strID: "Guitar1_notes1", // 必須
    Stave_x_Offset: [-30, -40, 0, -10, 0, -10, 0, 0, 10, 0, 0, 0, 0],
    Stave_y_Offset: 0,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: shiftGuitar1_tab2, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes2_option);
 
var Guitar1_notes2_c_option = {
    textContent: ["H.C."], // 必須文字列
    strID: "Guitar1_notes1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: -40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab2[1].x -30, y:shiftGuitar1_tab2[1].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes2_c_option);
 
var Guitar1_st1_notes2_c_option = {
    textContent: ["H.C."], // 必須文字列
    strID: "Guitar1_st1_notes1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: -40 - 110,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab2[1].x -30, y:shiftGuitar1_tab2[1].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st1_notes2_c_option);
 
var Guitar1_notes2_a_option = {
    textContent: [".", ".", ".", ".", ".", ".", ".", "."], // 必須文字列
    strID: "Guitar1_notes2", // 必須
    Stave_x_Offset: [0, 0, 0, 0, 0, 0, 0, 0],
    Stave_y_Offset: [-15, -15, -15, -15, 15, 15, 15, 15],
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab2[3].x, y:shiftGuitar1_tab2[3].y},
              {x:shiftGuitar1_tab2[5].x, y:shiftGuitar1_tab2[5].y},
              {x:shiftGuitar1_tab2[6].x, y:shiftGuitar1_tab2[6].y},
              {x:shiftGuitar1_tab2[7].x, y:shiftGuitar1_tab2[7].y},
              {x:shiftGuitar1_tab2[8].x, y:shiftGuitar1_tab2[8].y},
              {x:shiftGuitar1_tab2[10].x, y:shiftGuitar1_tab2[10].y},
              {x:shiftGuitar1_tab2[11].x, y:shiftGuitar1_tab2[11].y},
              {x:shiftGuitar1_tab2[12].x, y:shiftGuitar1_tab2[12].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes2_a_option);
 
insertTiePathToSVG({x:shiftGuitar1_tab2[0].x - 20 - 10, y:shiftGuitar1_tab2[0].y + 10}, {x:shiftGuitar1_tab2[0].x, y:shiftGuitar1_tab2[0].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab2[0].x - 20 - 10, y:shiftGuitar1_tab2[0].y - 40}, {x:shiftGuitar1_tab2[0].x, y:shiftGuitar1_tab2[0].y - 40}, -1);
 
var Guitar1_notes3_option = {
    textContent: ["5", "7", "5", "7", "5", "7", "7", "7"], // 必須文字列
    strID: "Guitar1_notes3", // 必須
    Stave_x_Offset: [0, 0, 0, 0, 0, 0, 0, 5],
    Stave_y_Offset: 0,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: shiftGuitar1_tab3, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes3_option);
 
var Guitar1_notes3_H_P_H_P_option = {
    textContent: ["H", "P", "H", "P"], // 必須文字列
    strID: "Guitar1_notes1", // 必須
    Stave_x_Offset: 10,
    Stave_y_Offset: 35,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab3[0].x , y:shiftGuitar1_tab3[0].y},
{x:shiftGuitar1_tab3[1].x , y:shiftGuitar1_tab3[1].y},
{x:shiftGuitar1_tab3[2].x , y:shiftGuitar1_tab3[2].y},
{x:shiftGuitar1_tab3[3].x , y:shiftGuitar1_tab3[3].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes3_H_P_H_P_option);
 
var Guitar1_st1_notes3_H_P_H_P_option = {
    textContent: ["H", "P", "H", "P"], // 必須文字列
    strID: "Guitar1_st1_notes1", // 必須
    Stave_x_Offset: 10,
    Stave_y_Offset: 35 - 110,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab3[0].x , y:shiftGuitar1_tab3[0].y},
{x:shiftGuitar1_tab3[1].x , y:shiftGuitar1_tab3[1].y},
{x:shiftGuitar1_tab3[2].x , y:shiftGuitar1_tab3[2].y},
{x:shiftGuitar1_tab3[3].x , y:shiftGuitar1_tab3[3].y}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st1_notes3_H_P_H_P_option);
 
insertTiePathToSVG({x:shiftGuitar1_tab3[0].x , y:shiftGuitar1_tab3[0].y + 10}, {x:shiftGuitar1_tab3[1].x + 5, y:shiftGuitar1_tab3[0].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab3[1].x , y:shiftGuitar1_tab3[1].y + 10}, {x:shiftGuitar1_tab3[2].x + 5, y:shiftGuitar1_tab3[1].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab3[2].x , y:shiftGuitar1_tab3[2].y + 10}, {x:shiftGuitar1_tab3[3].x + 5, y:shiftGuitar1_tab3[2].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab3[3].x , y:shiftGuitar1_tab3[3].y + 10}, {x:shiftGuitar1_tab3[4].x + 5, y:shiftGuitar1_tab3[3].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab3[6].x , y:shiftGuitar1_tab3[6].y + 15}, {x:shiftGuitar1_tab3[6].x + 35, y:shiftGuitar1_tab3[6].y + 15});
 
 
var Guitar1_notes3_7_option = {
    textContent: ["\uFF7F"], // 必須文字列 1音2分音符
    strID: "Guitar1_notes3_ele7", // 必須
    Stave_x: shiftGuitar1_tab3[7].x - 7,
    Stave_y: shiftGuitar1_tab3[7].y,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
};
insertTextToSVG(Guitar1_notes3_7_option);
 
var Guitar1_notes4_option = {
    textContent: ["5", "7", "5", "7", "7", "7", "4", "6", "4", "."], // 必須文字列
    strID: "Guitar1_notes3", // 必須
    Stave_x_Offset: [0, 0, 0, -20, 0, 0, 0, 0, 0,  0],
    Stave_y_Offset: [0, 0, 0,  0, 0, 0, 0, 0, 0, -15],
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: shiftGuitar1_tab4, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes4_option);
 
var Guitar1_notes4_P_C_H_option = {
    textContent: ["P", "C", "H"], // 必須文字列
    strID: "Guitar1_notes1", // 必須
    Stave_x_Offset: 10,
    Stave_y_Offset: 35,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
     shift_x: [{x:shiftGuitar1_tab4[1].x + 10 , y:shiftGuitar1_tab4[1].y},
{x:shiftGuitar1_tab4[3].x - 20, y:shiftGuitar1_tab4[3].y},
{x:shiftGuitar1_tab4[6].x , y:shiftGuitar1_tab4[6].y - 60}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_notes4_P_C_H_option);
 
var Guitar1_st1_notes4_P_C_H_option = {
    textContent: ["P", "C", "H"], // 必須文字列
    strID: "Guitar1_st1_notes1", // 必須
    Stave_x_Offset: 10,
    Stave_y_Offset: 35 - 110,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    fontSize: 50,
    shift_x: [{x:shiftGuitar1_tab4[1].x + 10 , y:shiftGuitar1_tab4[1].y},
{x:shiftGuitar1_tab4[3].x - 20, y:shiftGuitar1_tab4[3].y},
{x:shiftGuitar1_tab4[6].x , y:shiftGuitar1_tab4[6].y - 60}], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st1_notes4_P_C_H_option);
 
 
insertTiePathToSVG({x:shiftGuitar1_tab4[0].x, y:shiftGuitar1_tab4[0].y + 10}, {x:shiftGuitar1_tab4[1].x + 2, y:shiftGuitar1_tab4[0].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab4[1].x, y:shiftGuitar1_tab4[1].y + 10}, {x:shiftGuitar1_tab4[2].x + 2, y:shiftGuitar1_tab4[1].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab4[4].x - 15, y:shiftGuitar1_tab4[4].y + 10}, {x:shiftGuitar1_tab4[4].x + 2, y:shiftGuitar1_tab4[4].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab4[4].x, y:shiftGuitar1_tab4[4].y + 10}, {x:shiftGuitar1_tab4[5].x + 2, y:shiftGuitar1_tab4[4].y + 10});
 
insertTiePathToSVG({x:shiftGuitar1_tab4[6].x, y:shiftGuitar1_tab4[6].y - 10}, {x:shiftGuitar1_tab4[7].x + 2, y:shiftGuitar1_tab4[6].y - 10}, -1);
 
 
insertTrilPathToSVG(shiftGuitar1_tab4_tr);
 
var Guitar1_tab_notes4_tr_option = {
    textContent: ["tr."], // 必須文字列
    strID: "Guitar1_tab_notes4_tr", // 必須
    Stave_x: shiftGuitar1_tab4_tr[0].x,
    Stave_y: shiftGuitar1_tab4_tr[0].y,
    Stave_x_Offset: 25,
    Stave_y_Offset: -50,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [0] // xのオフセット値配列
};
insertTextToSVG(Guitar1_tab_notes4_tr_option);
 
var Guitar2_St1_notes1_option = {
    textContent: ["\uFF64"], // 必須文字列
    strID: "Guitar2_St1_notes1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar2_St1, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2_St1_notes1_option);
 
insertTiePathToSVG({x:shiftGuitar2_St1[4].x , y:shiftGuitar2_St1[4].y + 10}, {x:shiftGuitar2_St1[4].x + 35, y:shiftGuitar2_St1[4].y + 10});
 
var Guitar2_St2_notes1_option = {
    textContent: ["\uFF86"], // 必須文字列
    strID: "Guitar2_St2_notes1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar2_St2, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2_St2_notes1_option);
 
insertTiePathToSVG({x:shiftGuitar2_St2[4].x , y:shiftGuitar2_St2[4].y - 20}, {x:shiftGuitar2_St2[4].x + 35, y:shiftGuitar2_St2[4].y - 20}, -1);
 
var Guitar2_tab_St1_notes1_option = {
    textContent: ["\uFF64"], // 必須文字列
    strID: "Guitar2_tab_St1_notes1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar2_Tab1, // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2_tab_St1_notes1_option);
 
insertTiePathToSVG({x:shiftGuitar2_Tab1[4].x , y:shiftGuitar2_Tab1[4].y + 10}, {x:shiftGuitar2_Tab1[4].x + 35, y:shiftGuitar2_Tab1[4].y + 10});
 
var Guitar2_tab_St2_notes1_option = {
    textContent: ["\uFF86"], // 必須文字列
    strID: "Guitar2_tab_St2_notes1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar2_Tab2, // xのオフセット値配列
     IsOffset_x_Abs: true
     IsOffset_x_Abs: true
};
};
insertTextToSVG(Guitar1_st1_notes4_P_C_H_option);
insertTextToSVG(Guitar2_tab_St2_notes1_option);
 
 
insertTiePathToSVG({x:shiftGuitar1_tab4[0].x, y:shiftGuitar1_tab4[0].y + 10}, {x:shiftGuitar1_tab4[1].x + 2, y:shiftGuitar1_tab4[0].y + 10});


insertTiePathToSVG({x:shiftGuitar1_tab4[1].x, y:shiftGuitar1_tab4[1].y + 10}, {x:shiftGuitar1_tab4[2].x + 2, y:shiftGuitar1_tab4[1].y + 10});
insertTiePathToSVG({x:shiftGuitar2_Tab2[4].x , y:shiftGuitar2_Tab2[4].y + 10}, {x:shiftGuitar2_Tab2[4].x + 35, y:shiftGuitar2_Tab2[4].y + 10});


insertTiePathToSVG({x:shiftGuitar1_tab4[4].x - 15, y:shiftGuitar1_tab4[4].y + 10}, {x:shiftGuitar1_tab4[4].x + 2, y:shiftGuitar1_tab4[4].y + 10});
insertTiePathToSVG({x:shiftGuitar1_tab4[4].x, y:shiftGuitar1_tab4[4].y + 10}, {x:shiftGuitar1_tab4[5].x + 2, y:shiftGuitar1_tab4[4].y + 10});
insertTiePathToSVG({x:shiftGuitar1_tab4[6].x, y:shiftGuitar1_tab4[6].y - 10}, {x:shiftGuitar1_tab4[7].x + 2, y:shiftGuitar1_tab4[6].y - 10}, -1);
insertTrilPathToSVG(shiftGuitar1_tab4_tr);
var Guitar1_tab_notes4_tr_option = {
    textContent: ["tr."], // 必須文字列
    strID: "Guitar1_tab_notes4_tr", // 必須
    Stave_x: shiftGuitar1_tab4_tr[0].x,
    Stave_y: shiftGuitar1_tab4_tr[0].y,
    Stave_x_Offset: 25,
    Stave_y_Offset: -50,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [0] // xのオフセット値配列
};
insertTextToSVG(Guitar1_tab_notes4_tr_option);


var EGuitar2Text_options = {
var EGuitar2Text_options = {

2024年4月9日 (火) 23:57時点における版

VexFlow 使い方に戻る。

概要

 カッティングには一弦カッティングと複数弦カッティングがあります。奏法としては、弦の上に指を触れた状態で弦をピッキングするものです。カチャカチャとした音ですが、エフェクターを使うとさらに表現の幅が広がる音でもあります。タブ譜では、複数弦カッティングのときには大きなバツ印と符棒と符旗でリズムを指定します。一弦カッティングのときはカッティングするべき弦にバツ印をつけ、リズムは符棒と符旗で指定します。指の触れるポジションで多少、音の響きが違うのですが、ポジションの指定は通常ありません。前後のコードフォームを維持する場合もあれば、ギューンというような感じのカッティングでは、スライドしながらであったり、一瞬ポジションを低くしたり高くするカッティングもあります。音の指定はありませんので、実際に作曲者が演奏しているものをまねるのが正しいということになります。


 ちなみに「散歩道」のギターソロの裏でやってるGuitar2とかDrumとかとはまったく無関係の採譜です。こんな楽譜だったら、Guitar2は邪魔でしかない。

 

タブ譜 カッティング


 コードは以下のとおりです。


<div id="yonet202403Mid_Output01"></div>
<script>

</script>


 

 

VexFlow 使い方に戻る。