「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 使い方に戻る。 == '''概要''' ==     == ''' タブ譜 ミュート''' == <div id="notation"></div> <div id="yonet202403Mid_Output0…」)
 
 
(同じ利用者による、間の39版が非表示)
12行目: 12行目:
== ''' タブ譜 ミュート''' ==
== ''' タブ譜 ミュート''' ==
<div id="notation"></div>
<div id="notation"></div>
<div id="yonet202403Mid_Output01"></div>
<div id="yonet202404Mid_Output01"></div>
<yjavascript></script>
<yjavascript></script>
<script>
<script>
24行目: 24行目:
}
}
var VF = Vex.Flow;
var VF = Vex.Flow;
const Vocal = new Position();
 
const VocalInst = new Position();
const Guitar1Inst = new Position();
const Guitar1Inst = new Position();
const Guitar2Inst = new Position();
const BaseInst = new Position();
const DrumInst = new Position();
const PercInst = new Position();
const Guitar1tab_1st_tabmark = new Position();


const Guitar1tab_1st = new Position();
const Guitar1tab_1st = new Position();
32行目: 39行目:
const Guitar1tab_4st = new Position();
const Guitar1tab_4st = new Position();


const Guitar2Inst = new Position();
const Guitar2tab_1st_tabmark = new Position();
const Guitar2Tab1 = new Position();


const Guitar2tab_1st = new Position();
const Guitar2tab_1st = new Position();
40行目: 46行目:
const Guitar2tab_4st = new Position();
const Guitar2tab_4st = new Position();


 
const Basetab_1st_tabmark = new Position();
const BaseInst = new Position();
const BaseTab1 = new Position();
const DrumInst = new Position();
const PercInst = new Position();
const Stave9Pos = new Position();


var StaveBase1;
var StaveBase1;
51行目: 52行目:
var StaveBase3;
var StaveBase3;
var StaveBase4;
var StaveBase4;
const Perc_note1_1_0 = new Position();
var shiftGuitar1_1;
var shiftGuitar1_tab4_tr;


var shiftGuitar1_1st;
var shiftGuitar1_1st;
77行目: 73行目:
var shiftGuitar2tab_4st;
var shiftGuitar2tab_4st;


var shiftDrum1;
var shiftDrum_1st;
var shiftPerc1;
var shiftDrum_2st;
var shiftDrum_3st;
var shiftDrum_4st;
 
var shiftPerc_1st;
var shiftPerc_2st;
var shiftPerc_3st;
var shiftPerc_4st;


function insertBaseEndBarPathToSVG(Stave) {
function insertBaseEndBarPathToSVG(Stave) {
433行目: 436行目:
   return staveNote;
   return staveNote;
}
}
const {
  Factory,
  Stave,
  StaveNote,
  Formatter,
  Voice,
  StaveTie,
  BarLine,
  Beam,
  Dot,
  StaveConnector,
  Modifier,
  RenderContext,
  TextDynamics,
  Articulation,
  TextNote,
  Crescendo,
  Renderer
} = Vex.Flow;


let nscale = 0.64;
let nscale = 0.64;
461行目: 444行目:
let nStaveWidth = 350;
let nStaveWidth = 350;


const f = new Factory({  
const f = new VF.Factory({  
   renderer: { elementId: 'yonet202403Mid_Output01', width: nwidth, height: nheight * nscale }
   renderer: { elementId: 'yonet202404Mid_Output01', width: nwidth, height: nheight * nscale }
   });
   });
const ctx = f.getContext();
const ctx = f.getContext();
505行目: 488行目:
ctx.strokeStyle = defaultStyle.strokeStyle;
ctx.strokeStyle = defaultStyle.strokeStyle;


const VocalSt1 = new Stave(80, 30, nHeadMargin + nStaveWidth).setContext(ctx);
const Vocal_St1 = new VF.Stave(80, 30, nHeadMargin + nStaveWidth).setContext(ctx);
VocalSt1.setClef("treble").setContext(ctx);
Vocal_St1.setClef("treble").setContext(ctx);
VocalSt1.setTimeSignature('4/4').setContext(ctx);
Vocal_St1.setTimeSignature('4/4').setContext(ctx);
VocalSt1.addKeySignature('D').setContext(ctx);
Vocal_St1.addKeySignature('D').setContext(ctx);
VocalSt1.setMeasure(1);
Vocal_St1.setMeasure(1);
VocalSt1.draw();
Vocal_St1.draw();


Vocal.x = VocalSt1.x - 30;
VocalInst.x = Vocal_St1.x - 30;
Vocal.y = VocalSt1.y + 90;  
VocalInst.y = Vocal_St1.y + 90;  


const VocalSt2 = f.Stave({ x: VocalSt1.width + VocalSt1.x, y: VocalSt1.y, width: nStaveWidth });
const Vocal_St2 = f.Stave({ x: Vocal_St1.width + Vocal_St1.x, y: Vocal_St1.y, width: nStaveWidth });
VocalSt2.setMeasure(2);
Vocal_St2.setMeasure(2);
VocalSt2.setContext(ctx).draw();
Vocal_St2.setContext(ctx).draw();


const VocalSt3 = new Stave(VocalSt2.width + VocalSt2.x, VocalSt1.y, nStaveWidth).setContext(ctx);
const Vocal_St3 = new VF.Stave(Vocal_St2.width + Vocal_St2.x, Vocal_St1.y, nStaveWidth).setContext(ctx);
VocalSt3.setMeasure(3);
Vocal_St3.setMeasure(3);
VocalSt3.draw();
Vocal_St3.draw();


const VocalSt4 = new VF.Stave(VocalSt3.width + VocalSt3.x, VocalSt1.y, nStaveWidth).setContext(ctx);
const Vocal_St4 = new VF.Stave(Vocal_St3.width + Vocal_St3.x, Vocal_St1.y, nStaveWidth).setContext(ctx);
VocalSt4.setMeasure(4);
Vocal_St4.setMeasure(4);
VocalSt4.draw();
Vocal_St4.draw();


const Guitar1St1 = new VF.Stave(VocalSt1.x, VocalSt1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
const Guitar1_St1 = new VF.Stave(Vocal_St1.x, Vocal_St1.y + 150, nHeadMargin + nStaveWidth).setContext(ctx);
Guitar1St1.addClef("treble").setContext(ctx);
Guitar1_St1.addClef("treble").setContext(ctx);
Guitar1St1.addTimeSignature('4/4').setContext(ctx);
Guitar1_St1.addTimeSignature('4/4').setContext(ctx);
Guitar1St1.addKeySignature('D').setContext(ctx);
Guitar1_St1.addKeySignature('D').setContext(ctx);
Guitar1St1.draw();
Guitar1_St1.draw();


const Guitar1_St1_notes_1 = [
const Guitar1_St1_notes_1 = [
   new VF.StaveNote({ keys: ["b/4"], duration: "4" }),
   new VF.StaveNote({ keys: ["b/4"], duration: "2r" }),


   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.StaveNote({ keys: ["b/4"], duration: "4r" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),


   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.StaveNote({ keys: ["b/4"], duration: "8r" }),
   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
 
   new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
];
];
const Guitar1_St1_notes_2 = [
const Guitar1_St1_notes_2 = [
567行目: 547行目:


];
];
UniqueIds = getUniqueNoteheadIds(Guitar1_St1_notes_1, [0, 1, 2, 3, 4, 5, 6]);
UniqueIds = getUniqueNoteheadIds(Guitar1_St1_notes_1, [3, 4]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
allUniqueIds = updateAllUniqueIds(UniqueIds);


const Guitar1_St1_beam_1 = new VF.Beam([Guitar1_St1_notes_1[1], Guitar1_St1_notes_1[2]]);
const Guitar1_St1_beam_1 = new VF.Beam([Guitar1_St1_notes_1[3], Guitar1_St1_notes_1[4]]);
const Guitar1_St1_beam_2 = new VF.Beam([
  Guitar1_St1_notes_1[3], Guitar1_St1_notes_1[4], Guitar1_St1_notes_1[5], Guitar1_St1_notes_1[6]
  ]);


var Guitar1_St1_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
var Guitar1_St1_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
585行目: 562行目:
var formatterGuitar1_St1 = new VF.Formatter().joinVoices([Guitar1_St1_Voice_1, Guitar1_St1_Voice_2]);
var formatterGuitar1_St1 = new VF.Formatter().joinVoices([Guitar1_St1_Voice_1, Guitar1_St1_Voice_2]);
formatterGuitar1_St1.format([Guitar1_St1_Voice_1, Guitar1_St1_Voice_2], nStaveWidth - 40 - 10);
formatterGuitar1_St1.format([Guitar1_St1_Voice_1, Guitar1_St1_Voice_2], nStaveWidth - 40 - 10);
Guitar1_St1_Voice_1.draw(ctx, Guitar1St1);
Guitar1_St1_Voice_1.draw(ctx, Guitar1_St1);
Guitar1_St1_Voice_2.draw(ctx, Guitar1St1);
Guitar1_St1_Voice_2.draw(ctx, Guitar1_St1);


Guitar1_St1_beam_1.setContext(ctx).draw();
Guitar1_St1_beam_1.setContext(ctx).draw();
Guitar1_St1_beam_2.setContext(ctx).draw();


shiftGuitar1_1st= addShift(
shiftGuitar1_1st= addShift(
   Guitar1_St1_notes_1,  
   Guitar1_St1_notes_1,  
   [0, 1, 2, 3, 4, 5, 6],
   [ 3,   4, 3],
   [3, 3, 3, 3, 3, 3, 3]
   [1.8, 1.8, -1]
);
);






const Guitar1St2 = new Stave(Guitar1St1.width + Guitar1St1.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
const Guitar1_St2 = new VF.Stave(Guitar1_St1.width + Guitar1_St1.x, Guitar1_St1.y, nStaveWidth).setContext(ctx);
Guitar1St2.draw();
Guitar1_St2.draw();
 
const Guitar1_St2_notes_1 = [
  new VF.StaveNote({ keys: ["b/4"], duration: "4" }),
 
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
 
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
 
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
];
const Guitar1_St2_notes_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"}),
 
];
UniqueIds = getUniqueNoteheadIds(Guitar1_St2_notes_1, [0, 1, 2, 3, 4, 5, 6]);
allUniqueIds = updateAllUniqueIds(UniqueIds);


const Guitar1_St2_beam_1 = new VF.Beam([Guitar1_St2_notes_1[1], Guitar1_St2_notes_1[2]]);
const Guitar1_St3 = new VF.Stave(Guitar1_St2.width + Guitar1_St2.x, Guitar1_St1.y, nStaveWidth).setContext(ctx);
const Guitar1_St2_beam_2 = new VF.Beam([
Guitar1_St3.draw();
  Guitar1_St2_notes_1[3], Guitar1_St2_notes_1[4], Guitar1_St2_notes_1[5], Guitar1_St2_notes_1[6]
  ]);


var Guitar1_St2_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
const Guitar1_St4 = new VF.Stave(Guitar1_St3.width + Guitar1_St3.x, Guitar1_St1.y, nStaveWidth).setContext(ctx);
Guitar1_St2_Voice_1.setStrict(true);
Guitar1_St4.draw();
Guitar1_St2_Voice_1.addTickables(Guitar1_St2_notes_1);


var Guitar1_St2_Voice_2 = new VF.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St2_Voice_2.setStrict(true);
Guitar1_St2_Voice_2.addTickables(Guitar1_St2_notes_2);


var formatterGuitar1_St2 = new VF.Formatter().joinVoices([Guitar1_St2_Voice_1, Guitar1_St2_Voice_2]);
formatterGuitar1_St2.format([Guitar1_St2_Voice_1, Guitar1_St2_Voice_2], nStaveWidth - 20 - 10);
Guitar1_St2_Voice_1.draw(ctx, Guitar1St2);
Guitar1_St2_Voice_2.draw(ctx, Guitar1St2);


Guitar1_St2_beam_1.setContext(ctx).draw();
const Guitar1_Tab_St1 = new VF.Stave(Guitar1_St1.x, Guitar1_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Guitar1_St2_beam_2.setContext(ctx).draw();
Guitar1_Tab_St1.draw();


shiftGuitar1_2st= addShift(
Guitar1tab_1st_tabmark.x = Guitar1_Tab_St1.x;
  Guitar1_St2_notes_1,
Guitar1tab_1st_tabmark.y = Guitar1_Tab_St1.y;
  [0, 1, 2, 3, 4, 5, 6],
  [3, 3, 3, 3, 3, 3, 3.8]
);


var Guitar1Connector_St1_L = new VF.StaveConnector(Guitar1_St1, Guitar1_Tab_St1);
Guitar1Connector_St1_L.setType(VF.StaveConnector.type.BRACKET);
Guitar1Connector_St1_L.setContext(ctx);
Guitar1Connector_St1_L.draw();


Guitar1Inst.x = Vocal_St1.x - 30;
Guitar1Inst.y = Guitar1_St1.y + ((Guitar1_Tab_St1.y - Guitar1_St1.y) / 2) + 90;


const Guitar1St3 = new Stave(Guitar1St2.width + Guitar1St2.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
const Guitar1_Tab_St1_1 = new VF.Stave(Guitar1_Tab_St1.x + nHeadMargin + 20, Guitar1_Tab_St1.y, 0).setContext(ctx);
Guitar1St3.draw();
Guitar1_Tab_St1_1.setBegBarType(VF.Barline.type.NONE);
Guitar1_Tab_St1_1.setEndBarType(VF.Barline.type.NONE);
Guitar1_Tab_St1_1.draw();


const Guitar1_St3_notes_1 = [
Guitar1tab_1st.x = Guitar1_Tab_St1_1.x
  new VF.StaveNote({ keys: ["b/4"], duration: "4" }),
Guitar1tab_1st.y = Guitar1_Tab_St1_1.y


  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
const Guitar1_Tab_St1_notes_1 = [
   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.StaveNote({ keys: ["f/5"], duration: "2r" }),


   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.StaveNote({ keys: ["c/5"], duration: "4r" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),


   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.StaveNote({ keys: ["c/5"], duration: "8r" }),
   new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
   new VF.StaveNote({ keys: ["e/5"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["e/5"], duration: "16", stem_direction: -1 }),
];
];
const Guitar1_St3_notes_2 = [
const Guitar1_Tab_St1_notes_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"}),
705行目: 639行目:


];
];
UniqueIds = getUniqueNoteheadIds(Guitar1_St3_notes_1, [0, 1, 2, 3, 4, 5, 6]);
UniqueIds = getUniqueNoteheadIds(Guitar1_Tab_St1_notes_1, [3, 4]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
allUniqueIds = updateAllUniqueIds(UniqueIds);


const Guitar1_St3_beam_1 = new VF.Beam([Guitar1_St3_notes_1[1], Guitar1_St3_notes_1[2]]);
const Guitar1_Tab_St1_beam_1 = new VF.Beam([Guitar1_Tab_St1_notes_1[3], Guitar1_Tab_St1_notes_1[4]]);
const Guitar1_St3_beam_2 = new VF.Beam([
  Guitar1_St3_notes_1[3], Guitar1_St3_notes_1[4], Guitar1_St3_notes_1[5], Guitar1_St3_notes_1[6]
  ]);


var Guitar1_St3_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
var Guitar1_Tab_St1_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St3_Voice_1.setStrict(true);
Guitar1_Tab_St1_Voice_1.setStrict(true);
Guitar1_St3_Voice_1.addTickables(Guitar1_St3_notes_1);
Guitar1_Tab_St1_Voice_1.addTickables(Guitar1_Tab_St1_notes_1);


var Guitar1_St3_Voice_2 = new VF.Voice({ num_beats: 4, beat_value: 4 });
var Guitar1_Tab_St1_Voice_2 = new VF.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St3_Voice_2.setStrict(true);
Guitar1_Tab_St1_Voice_2.setStrict(true);
Guitar1_St3_Voice_2.addTickables(Guitar1_St3_notes_2);
Guitar1_Tab_St1_Voice_2.addTickables(Guitar1_Tab_St1_notes_2);


var formatterGuitar1_St3 = new VF.Formatter().joinVoices([Guitar1_St3_Voice_1, Guitar1_St3_Voice_2]);
var formatterGuitar1_Tab_St1 = new VF.Formatter().joinVoices([Guitar1_Tab_St1_Voice_1, Guitar1_Tab_St1_Voice_2]);
formatterGuitar1_St3.format([Guitar1_St3_Voice_1, Guitar1_St3_Voice_2], nStaveWidth - 20 - 10);
formatterGuitar1_Tab_St1.format([Guitar1_Tab_St1_Voice_1, Guitar1_Tab_St1_Voice_2], nStaveWidth - 40 - 10);
Guitar1_St3_Voice_1.draw(ctx, Guitar1St3);
Guitar1_Tab_St1_Voice_1.draw(ctx, Guitar1_Tab_St1_1);
Guitar1_St3_Voice_2.draw(ctx, Guitar1St3);
Guitar1_Tab_St1_Voice_2.draw(ctx, Guitar1_Tab_St1_1);


Guitar1_St3_beam_1.setContext(ctx).draw();
Guitar1_Tab_St1_beam_1.setContext(ctx).draw();
Guitar1_St3_beam_2.setContext(ctx).draw();


shiftGuitar1_3st= addShift(
shiftGuitar1tab_1st= addShift(
   Guitar1_St3_notes_1,  
   Guitar1_Tab_St1_notes_1,  
   [0, 1, 2, 3, 4, 5, 6],
   [ 3,   4, 3],
   [3, 3, 3, 3, 3, 3, 3.8]
   [0.8, 0.8, -2]
);
);


const Guitar1_Tab_St2 = new VF.Stave(Guitar1_Tab_St1.width + Guitar1_Tab_St1.x, Guitar1_Tab_St1.y, nStaveWidth).setContext(ctx);
Guitar1_Tab_St2.draw();


Guitar1tab_2st.x = Guitar1_Tab_St2.x
Guitar1tab_2st.y = Guitar1_Tab_St2.y


var Guitar1Connector_St2_L = new VF.StaveConnector(Guitar1_St2, Guitar1_Tab_St2);
Guitar1Connector_St2_L.setType(VF.StaveConnector.type.SINGLE);
Guitar1Connector_St2_L.setContext(ctx);
Guitar1Connector_St2_L.draw();


const Guitar1St4 = new Stave(Guitar1St3.width + Guitar1St3.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
const Guitar1_Tab_St3 = new VF.Stave(Guitar1_Tab_St2.width + Guitar1_Tab_St2.x, Guitar1_Tab_St1.y, nStaveWidth).setContext(ctx);
Guitar1St4.draw();
Guitar1_Tab_St3.draw();
 
const Guitar1_St4_notes_1 = [
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
 
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
 
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
 
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
];
const Guitar1_St4_notes_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"}),
 
];
UniqueIds = getUniqueNoteheadIds(Guitar1_St4_notes_1, [0, 1, 2, 3, 4, 5, 6, 7]);
allUniqueIds = updateAllUniqueIds(UniqueIds);


const Guitar1_St4_beam_1 = new VF.Beam([
Guitar1tab_3st.x = Guitar1_Tab_St3.x
  Guitar1_St4_notes_1[0], Guitar1_St4_notes_1[1], Guitar1_St4_notes_1[2], Guitar1_St4_notes_1[3]
Guitar1tab_3st.y = Guitar1_Tab_St3.y
  ]);
const Guitar1_St4_beam_2 = new VF.Beam([
  Guitar1_St4_notes_1[4], Guitar1_St4_notes_1[5], Guitar1_St4_notes_1[6], Guitar1_St4_notes_1[7]
  ]);


var Guitar1_St4_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
var Guitar1Connector_St3_L = new VF.StaveConnector(Guitar1_St3, Guitar1_Tab_St3);
Guitar1_St4_Voice_1.setStrict(true);
Guitar1Connector_St3_L.setType(VF.StaveConnector.type.SINGLE);
Guitar1_St4_Voice_1.addTickables(Guitar1_St4_notes_1);
Guitar1Connector_St3_L.setContext(ctx);
Guitar1Connector_St3_L.draw();


var Guitar1_St4_Voice_2 = new VF.Voice({ num_beats: 4, beat_value: 4 });
const Guitar1_Tab_St4 = new VF.Stave(Guitar1_Tab_St3.width + Guitar1_Tab_St3.x, Guitar1_Tab_St1.y, nStaveWidth).setContext(ctx);
Guitar1_St4_Voice_2.setStrict(true);
Guitar1_Tab_St4.draw();
Guitar1_St4_Voice_2.addTickables(Guitar1_St4_notes_2);


var formatterGuitar1_St4 = new VF.Formatter().joinVoices([Guitar1_St4_Voice_1, Guitar1_St4_Voice_2]);
Guitar1tab_4st.x = Guitar1_Tab_St4.x
formatterGuitar1_St4.format([Guitar1_St4_Voice_1, Guitar1_St4_Voice_2], nStaveWidth - 20 - 10);
Guitar1tab_4st.y = Guitar1_Tab_St4.y
Guitar1_St4_Voice_1.draw(ctx, Guitar1St4);
Guitar1_St4_Voice_2.draw(ctx, Guitar1St4);


Guitar1_St4_beam_1.setContext(ctx).draw();
var Guitar1Connector_St4_L = new VF.StaveConnector(Guitar1_St4, Guitar1_Tab_St4);
Guitar1_St4_beam_2.setContext(ctx).draw();
Guitar1Connector_St4_L.setType(VF.StaveConnector.type.SINGLE);
Guitar1Connector_St4_L.setContext(ctx);
Guitar1Connector_St4_L.draw();


shiftGuitar1_4st= addShift(
var Guitar1Connector_St4_R = new VF.StaveConnector(Guitar1_St4, Guitar1_Tab_St4);
  Guitar1_St4_notes_1,  
Guitar1Connector_St4_R.setType(VF.StaveConnector.type.SINGLE_RIGHT);
  [0, 1, 2, 3, 4, 5, 6, 7],
Guitar1Connector_St4_R.setContext(ctx);
  [3, 3, 3, 3, 3, 3, 3, 3.8]
Guitar1Connector_St4_R.draw();
);


 
const Guitar1_vTab_St1 = new VF.Stave(Guitar1_St1.x, Guitar1_St1.y + 110, nHeadMargin + nStaveWidth).setContext(ctx);
 
const Guitar1_tab1 = new Stave(Guitar1St1.x, Guitar1St1.y + 110, nHeadMargin + nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 0) continue;
   if (i == 0) continue;
   Guitar1_tab1.setConfigForLine(i, {visible: false} );
   Guitar1_vTab_St1.setConfigForLine(i, {visible: false} );
}
}
Guitar1_tab1.draw();
Guitar1_vTab_St1.draw();


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


const Guitar1_tab3 = new Stave(Guitar1_tab2.width + Guitar1_tab2.x, Guitar1_tab1.y, nStaveWidth).setContext(ctx);
const Guitar1_vTab_St3 = new VF.Stave(Guitar1_vTab_St2.width + Guitar1_vTab_St2.x, Guitar1_vTab_St1.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 0) continue;
   if (i == 0) continue;
   Guitar1_tab3.setConfigForLine(i, {visible: false} );
   Guitar1_vTab_St3.setConfigForLine(i, {visible: false} );
}
}
Guitar1_tab3.draw();
Guitar1_vTab_St3.draw();


const Guitar1_tab4 = new Stave(Guitar1_tab3.width + Guitar1_tab3.x, Guitar1_tab1.y, nStaveWidth).setContext(ctx);
const Guitar1_vTab_St4 = new VF.Stave(Guitar1_vTab_St3.width + Guitar1_vTab_St3.x, Guitar1_vTab_St1.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 0) continue;
   if (i == 0) continue;
   Guitar1_tab4.setConfigForLine(i, {visible: false} );
   Guitar1_vTab_St4.setConfigForLine(i, {visible: false} );
}
}
Guitar1_tab4.draw();
Guitar1_vTab_St4.draw();
 
const Guitar1_Tab1 = new Stave(Guitar1St1.x, Guitar1St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Guitar1_Tab1.draw();
 
Stave9Pos.x = Guitar1_Tab1.x;
Stave9Pos.y = Guitar1_Tab1.y;
 
var connector9_2 = new VF.StaveConnector(Guitar1St1, Guitar1_Tab1);
connector9_2.setType(VF.StaveConnector.type.BRACKET);
connector9_2.setContext(ctx);
connector9_2.draw();
 
Guitar1Inst.x = VocalSt1.x - 30;
Guitar1Inst.y = Guitar1St1.y + ((Guitar1_Tab1.y - Guitar1St1.y) / 2) + 90;
 
const Guitar1_Tab1_1 = new Stave(Guitar1_Tab1.x + nHeadMargin + 20, Guitar1_Tab1.y, 0).setContext(ctx);
Guitar1_Tab1_1.setBegBarType(VF.Barline.type.NONE);
Guitar1_Tab1_1.setEndBarType(VF.Barline.type.NONE);
Guitar1_Tab1_1.draw();
 
Guitar1tab_1st.x = Guitar1_Tab1_1.x
Guitar1tab_1st.y = Guitar1_Tab1_1.y
 
 


const Guitar1_Tab2 = new Stave(Guitar1_Tab1.width + Guitar1_Tab1.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
Guitar1_Tab2.draw();


Guitar1tab_2st.x = Guitar1_Tab2.x
const Guitar2_St1 = new VF.Stave(Guitar1_Tab_St1.x, Guitar1_Tab_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Guitar1tab_2st.y = Guitar1_Tab2.y
 
const Guitar1_Tab3 = new Stave(Guitar1_Tab2.width + Guitar1_Tab2.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
Guitar1_Tab3.draw();
 
Guitar1tab_3st.x = Guitar1_Tab3.x
Guitar1tab_3st.y = Guitar1_Tab3.y
 
const Guitar1_Tab4 = new Stave(Guitar1_Tab3.width + Guitar1_Tab3.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
Guitar1_Tab4.draw();
 
Guitar1tab_4st.x = Guitar1_Tab4.x
Guitar1tab_4st.y = Guitar1_Tab4.y
 
 
const Guitar2_St1 = new Stave(Guitar1_Tab1.x, Guitar1_Tab1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Guitar2_St1.addClef("treble").setContext(ctx);
Guitar2_St1.addClef("treble").setContext(ctx);
Guitar2_St1.addTimeSignature('4/4').setContext(ctx);
Guitar2_St1.addTimeSignature('4/4').setContext(ctx);
887行目: 738行目:
Guitar2_St1.draw();
Guitar2_St1.draw();


const Guitar2_St1_notes_1 = [
const Guitar2_St2 = new VF.Stave(Guitar2_St1.width + Guitar2_St1.x, Guitar2_St1.y, nStaveWidth).setContext(ctx);
  new VF.StaveNote({ keys: ["b/4"], duration: "1" }),
];
const Guitar2_St1_notes_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"}),
 
];
UniqueIds = getUniqueNoteheadIds(Guitar2_St1_notes_1, [0]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
 
var Guitar2_St1_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St1_Voice_1.setStrict(true);
Guitar2_St1_Voice_1.addTickables(Guitar2_St1_notes_1);
 
var Guitar2_St1_Voice_2 = new VF.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St1_Voice_2.setStrict(true);
Guitar2_St1_Voice_2.addTickables(Guitar2_St1_notes_2);
 
var formatterGuitar2_St1 = new VF.Formatter().joinVoices([Guitar2_St1_Voice_1, Guitar2_St1_Voice_2]);
formatterGuitar2_St1.format([Guitar2_St1_Voice_1, Guitar2_St1_Voice_2], nStaveWidth - 20 - 10);
Guitar2_St1_Voice_1.draw(ctx, Guitar2_St1);
Guitar2_St1_Voice_2.draw(ctx, Guitar2_St1);
 
shiftGuitar2_1st= addShift(
  Guitar2_St1_notes_1,
  [0],
  [3]
);
 
const Guitar2_St2 = new Stave(Guitar2_St1.width + Guitar2_St1.x, Guitar2_St1.y, nStaveWidth).setContext(ctx);
Guitar2_St2.draw();
Guitar2_St2.draw();


const Guitar2_St2_notes_1 = [
const Guitar2_St2_1 = new VF.Stave(Guitar2_St1.width + Guitar2_St1.x + 45, Guitar2_St1.y, 0).setContext(ctx);
  new VF.StaveNote({ keys: ["b/4"], duration: "2" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "2" }),
];
const Guitar2_St2_notes_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"}),
 
];
UniqueIds = getUniqueNoteheadIds(Guitar2_St2_notes_1, [0, 1]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
 
var Guitar2_St2_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St2_Voice_1.setStrict(true);
Guitar2_St2_Voice_1.addTickables(Guitar2_St2_notes_1);
 
var Guitar2_St2_Voice_2 = new VF.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St2_Voice_2.setStrict(true);
Guitar2_St2_Voice_2.addTickables(Guitar2_St2_notes_2);
 
var formatterGuitar2_St2 = new VF.Formatter().joinVoices([Guitar2_St2_Voice_1, Guitar2_St2_Voice_2]);
formatterGuitar2_St2.format([Guitar2_St2_Voice_1, Guitar2_St2_Voice_2], nStaveWidth - 20 - 10);
Guitar2_St2_Voice_1.draw(ctx, Guitar2_St2);
Guitar2_St2_Voice_2.draw(ctx, Guitar2_St2);
 
shiftGuitar2_2st= addShift(
  Guitar2_St2_notes_1,
  [0, 1],
  [3, 3]
);
 
const Guitar2_St2_1 = new Stave(Guitar2_St1.width + Guitar2_St1.x + 45, Guitar2_St1.y, 0).setContext(ctx);
Guitar2_St2_1.setBegBarType(VF.Barline.type.NONE);
Guitar2_St2_1.setBegBarType(VF.Barline.type.NONE);
Guitar2_St2_1.setEndBarType(VF.Barline.type.NONE);
Guitar2_St2_1.setEndBarType(VF.Barline.type.NONE);
Guitar2_St2_1.draw();
Guitar2_St2_1.draw();


 
const Guitar2_St3 = new VF.Stave(Guitar2_St2.width + Guitar2_St2.x, Guitar2_St2.y, nStaveWidth).setContext(ctx);
const Guitar2_St3 = new Stave(Guitar2_St2.width + Guitar2_St2.x, Guitar2_St2.y, nStaveWidth).setContext(ctx);
Guitar2_St3.draw();
Guitar2_St3.draw();


const Guitar2_St3_notes_1 = [
const Guitar2_St4 = new VF.Stave(Guitar2_St3.width + Guitar2_St3.x, Guitar2_St3.y, nStaveWidth).setContext(ctx);
  new VF.StaveNote({ keys: ["b/4"], duration: "2", stem_direction: -1 }),
Guitar2_St4.draw();
  new VF.StaveNote({ keys: ["b/4"], duration: "4", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "4", stem_direction: -1 }),
];
const Guitar2_St3_notes_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"}),
 
];
UniqueIds = getUniqueNoteheadIds(Guitar2_St3_notes_1, [0, 1, 2]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
 
var Guitar2_St3_Voice_1 = new VF.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St3_Voice_1.setStrict(true);
Guitar2_St3_Voice_1.addTickables(Guitar2_St3_notes_1);


var Guitar2_St3_Voice_2 = new VF.Voice({ num_beats: 4, beat_value: 4 });
const Guitar2_Tab_St1_1 = new VF.Stave(Guitar2_St1.x + nHeadMargin + 20, Guitar2_St1.y + 120, 0).setContext(ctx);
Guitar2_St3_Voice_2.setStrict(true);
Guitar2_Tab_St1_1.setBegBarType(VF.Barline.type.NONE);
Guitar2_St3_Voice_2.addTickables(Guitar2_St3_notes_2);
Guitar2_Tab_St1_1.setEndBarType(VF.Barline.type.NONE);
Guitar2_Tab_St1_1.draw();


var formatterGuitar2_St3 = new VF.Formatter().joinVoices([Guitar2_St3_Voice_1, Guitar2_St3_Voice_2]);
const Guitar2_Tab_St1 = new VF.Stave(Guitar2_St1.x, Guitar2_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
formatterGuitar2_St3.format([Guitar2_St3_Voice_1, Guitar2_St3_Voice_2], nStaveWidth - 20 - 10);
Guitar2_Tab_St1.draw();
Guitar2_St3_Voice_1.draw(ctx, Guitar2_St3);
Guitar2_St3_Voice_2.draw(ctx, Guitar2_St3);
 
shiftGuitar2_3st= addShift(
  Guitar2_St3_notes_1,
  [0, 1, 2],
  [1, 1, 1]
);
 
const Guitar2_St4 = new Stave(Guitar2_St3.width + Guitar2_St3.x, Guitar2_St3.y, nStaveWidth).setContext(ctx);
Guitar2_St4.draw();


Guitar2tab_1st.x = Guitar2_Tab_St1_1.x;
Guitar2tab_1st.y = Guitar2_Tab_St1_1.y;


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


Guitar2tab_1st.x = Guitar2_Tab1_1.x;
var Guitar2Connector_St1_L = new VF.StaveConnector(Guitar2_St1, Guitar2_Tab_St1);
Guitar2tab_1st.y = Guitar2_Tab1_1.y;
Guitar2Connector_St1_L.setType(VF.StaveConnector.type.BRACKET);
Guitar2Connector_St1_L.setContext(ctx);
Guitar2Connector_St1_L.draw();


Guitar2Tab1.x = Guitar2_Tab1.x;
const Guitar2_Tab_St2 = new VF.Stave(Guitar2_Tab_St1.width + Guitar2_Tab_St1.x, Guitar2_Tab_St1.y, nStaveWidth).setContext(ctx);
Guitar2Tab1.y = Guitar2_Tab1.y;
Guitar2_Tab_St2.draw();


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


Guitar2tab_2st.x = Guitar2_Tab_St2.x;
Guitar2tab_2st.y = Guitar2_Tab_St2.y;


const Guitar2_Tab2_1 = new Stave(Guitar2_Tab1.width + Guitar2_Tab1.x + 45, Guitar2_Tab1.y, 0).setContext(ctx);
var Guitar2Connector_St2_L = new VF.StaveConnector(Guitar2_St2, Guitar2_Tab_St2);
Guitar2_Tab2_1.setBegBarType(VF.Barline.type.NONE);
Guitar2Connector_St2_L.setType(VF.StaveConnector.type.SINGLE);
Guitar2_Tab2_1.setEndBarType(VF.Barline.type.NONE);
Guitar2Connector_St2_L.setContext(ctx);
Guitar2_Tab2_1.draw();
Guitar2Connector_St2_L.draw();


Guitar2tab_2st.x = Guitar2_Tab2.x;
const Guitar2_Tab_St3 = new VF.Stave(Guitar2_Tab_St2.width + Guitar2_Tab_St2.x, Guitar2_Tab_St2.y, nStaveWidth).setContext(ctx);
Guitar2tab_2st.y = Guitar2_Tab2.y;
Guitar2_Tab_St3.draw();


const Guitar2_Tab3 = new Stave(Guitar2_Tab2.width + Guitar2_Tab2.x, Guitar2_Tab2.y, nStaveWidth).setContext(ctx);
Guitar2tab_3st.x = Guitar2_Tab_St3.x;
Guitar2_Tab3.draw();
Guitar2tab_3st.y = Guitar2_Tab_St3.y;


Guitar2tab_3st.x = Guitar2_Tab3.x;
var Guitar2Connector_St3_L = new VF.StaveConnector(Guitar2_St3, Guitar2_Tab_St3);
Guitar2tab_3st.y = Guitar2_Tab3.y;
Guitar2Connector_St3_L.setType(VF.StaveConnector.type.SINGLE);
Guitar2Connector_St3_L.setContext(ctx);
Guitar2Connector_St3_L.draw();


const Guitar2_Tab_St4 = new VF.Stave(Guitar2_Tab_St3.width + Guitar2_Tab_St3.x, Guitar2_Tab_St3.y, nStaveWidth).setContext(ctx);
Guitar2_Tab_St4.draw();


const Guitar2_Tab4 = new Stave(Guitar2_Tab3.width + Guitar2_Tab3.x, Guitar2_Tab3.y, nStaveWidth).setContext(ctx);
Guitar2tab_4st.x = Guitar2_Tab_St4.x;
Guitar2_Tab4.draw();
Guitar2tab_4st.y = Guitar2_Tab_St4.y;


Guitar2tab_4st.x = Guitar2_Tab4.x;
var Guitar2Connector_St4_L = new VF.StaveConnector(Guitar2_St4, Guitar2_Tab_St4);
Guitar2tab_4st.y = Guitar2_Tab4.y;
Guitar2Connector_St4_L.setType(VF.StaveConnector.type.SINGLE);
Guitar2Connector_St4_L.setContext(ctx);
Guitar2Connector_St4_L.draw();


var Guitar2_connect = new VF.StaveConnector(Guitar2_St1, Guitar2_Tab1);
var Guitar2Connector_St4_R = new VF.StaveConnector(Guitar2_St4, Guitar2_Tab_St4);
Guitar2_connect.setType(VF.StaveConnector.type.BRACKET);
Guitar2Connector_St4_R.setType(VF.StaveConnector.type.SINGLE_RIGHT);
Guitar2_connect.setContext(ctx);
Guitar2Connector_St4_R.setContext(ctx);
Guitar2_connect.draw();
Guitar2Connector_St4_R.draw();


const Guitar2_Tab1_tab = new Stave(Guitar2_Tab1.x, Guitar2_Tab1.y - 10, nHeadMargin + nStaveWidth).setContext(ctx);
const Guitar2_vTab_St1 = new VF.Stave(Guitar2_Tab_St1.x, Guitar2_Tab_St1.y - 10, nHeadMargin + nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 0) continue;
   if (i == 0) continue;
   Guitar2_Tab1_tab.setConfigForLine(i, {visible: false} );
   Guitar2_vTab_St1.setConfigForLine(i, {visible: false} );
}
}
Guitar2_Tab1_tab.draw();
Guitar2_vTab_St1.draw();


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


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


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


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


const Base_St1 = new Stave(Guitar2_Tab1.x, Guitar2_Tab1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
const Base_St1 = new VF.Stave(Guitar2_Tab_St1.x, Guitar2_Tab_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Base_St1.addClef("bass").setContext(ctx);
Base_St1.addClef("bass").setContext(ctx);
Base_St1.addTimeSignature('4/4').setContext(ctx);
Base_St1.addTimeSignature('4/4').setContext(ctx);
1,127行目: 851行目:
Base_St1.draw();
Base_St1.draw();


const Base_St2 = new Stave(Base_St1.width + Base_St1.x, Base_St1.y, nStaveWidth).setContext(ctx);
const Base_St2 = new VF.Stave(Base_St1.width + Base_St1.x, Base_St1.y, nStaveWidth).setContext(ctx);
Base_St2.draw();
Base_St2.draw();


const Base_St3 = new Stave(Base_St2.width + Base_St2.x, Base_St2.y, nStaveWidth).setContext(ctx);
const Base_St3 = new VF.Stave(Base_St2.width + Base_St2.x, Base_St2.y, nStaveWidth).setContext(ctx);
Base_St3.draw();
Base_St3.draw();


const Base_St4 = new Stave(Base_St3.width + Base_St3.x, Base_St3.y, nStaveWidth).setContext(ctx);
const Base_St4 = new VF.Stave(Base_St3.width + Base_St3.x, Base_St3.y, nStaveWidth).setContext(ctx);
Base_St4.draw();
Base_St4.draw();


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


BaseTab1.x = Base_Tab1.x;
Basetab_1st_tabmark.x = Base_Tab_St1.x;
BaseTab1.y = Base_Tab1.y;
Basetab_1st_tabmark.y = Base_Tab_St1.y;


BaseInst.x = Base_St1.x - 30;
BaseInst.x = Base_St1.x - 30;
BaseInst.y = Base_St1.y + ((Base_Tab1.y - Base_St1.y) / 2) + 90;  
BaseInst.y = Base_St1.y + ((Base_Tab_St1.y - Base_St1.y) / 2) + 90;
 
StaveBase1 = Base_Tab_St1;


StaveBase1 = Base_Tab1;
var BaseConnector_St1_L = new VF.StaveConnector(Base_St1, Base_Tab_St1);
BaseConnector_St1_L.setType(VF.StaveConnector.type.BRACKET);
BaseConnector_St1_L.setContext(ctx);
BaseConnector_St1_L.draw();


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


StaveBase2 = Base_Tab2;
StaveBase2 = Base_Tab_St2;


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


StaveBase3 = Base_Tab3;
StaveBase3 = Base_Tab_St3;


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


StaveBase4 = Base_Tab4;
StaveBase4 = Base_Tab_St4;


var Base_connect = new VF.StaveConnector(Base_St1, Base_Tab1);
var BaseConnector_St4_L = new VF.StaveConnector(Base_St4, Base_Tab_St4);
Base_connect.setType(VF.StaveConnector.type.BRACKET);
BaseConnector_St4_L.setType(VF.StaveConnector.type.SINGLE);
Base_connect.setContext(ctx);
BaseConnector_St4_L.setContext(ctx);
Base_connect.draw();
BaseConnector_St4_L.draw();


const Drum_St1 = new Stave(Base_Tab1.x, Base_Tab1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
var BaseConnector_St4_R = new VF.StaveConnector(Base_St4, Base_Tab_St4);
BaseConnector_St4_R.setType(VF.StaveConnector.type.SINGLE_RIGHT);
BaseConnector_St4_R.setContext(ctx);
BaseConnector_St4_R.draw();
 
const Drum_St1 = new VF.Stave(Base_Tab_St1.x, Base_Tab_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Drum_St1.addClef("bass").setContext(ctx);
Drum_St1.addClef("bass").setContext(ctx);
Drum_St1.addTimeSignature('4/4').setContext(ctx);
Drum_St1.addTimeSignature('4/4').setContext(ctx);
1,198行目: 942行目:
DrumInst.y = Drum_St1.y + 90;  
DrumInst.y = Drum_St1.y + 90;  


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


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


const Drum_St2 = new Stave(Drum_St1.width + Drum_St1.x, Drum_St1.y, nStaveWidth).setContext(ctx);
const Drum_St2 = new VF.Stave(Drum_St1.width + Drum_St1.x, Drum_St1.y, nStaveWidth).setContext(ctx);
Drum_St2.draw();
Drum_St2.draw();




const Drum_St3 = new Stave(Drum_St2.width + Drum_St2.x, Drum_St1.y, nStaveWidth).setContext(ctx);
const Drum_St3 = new VF.Stave(Drum_St2.width + Drum_St2.x, Drum_St1.y, nStaveWidth).setContext(ctx);
Drum_St3.draw();
Drum_St3.draw();




const Drum_St4 = new Stave(Drum_St3.width + Drum_St3.x, Drum_St1.y, nStaveWidth).setContext(ctx);
const Drum_St4 = new VF.Stave(Drum_St3.width + Drum_St3.x, Drum_St1.y, nStaveWidth).setContext(ctx);
Drum_St4.draw();
Drum_St4.draw();




const Perc_St1 = new Stave(Drum_St1.x, Drum_St1.y + 100, nHeadMargin + nStaveWidth).setContext(ctx);
const Perc_St1 = new VF.Stave(Drum_St1.x, Drum_St1.y + 100, nHeadMargin + nStaveWidth).setContext(ctx);
Perc_St1.addTimeSignature('4/4').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);
const Perc_St1_1 = new VF.Stave(nHeadMargin + Drum_St1.x, Drum_St1.y + 100, 0).setContext(ctx);
Perc_St1_1.setBegBarType(VF.Barline.type.NONE);
Perc_St1_1.setBegBarType(VF.Barline.type.NONE);
Perc_St1_1.setEndBarType(VF.Barline.type.NONE);
Perc_St1_1.setEndBarType(VF.Barline.type.NONE);
1,238行目: 982行目:
PercInst.y = Perc_St1.y + 90;  
PercInst.y = Perc_St1.y + 90;  


var AllConnector = new VF.StaveConnector(VocalSt1, Perc_St1);
var AllConnector = new VF.StaveConnector(Vocal_St1, Perc_St1);
AllConnector.setType(VF.StaveConnector.type.SINGLE);
AllConnector.setType(VF.StaveConnector.type.SINGLE);
AllConnector.setContext(ctx);
AllConnector.setContext(ctx);
1,244行目: 988行目:




const Perc_St2 = new Stave(Perc_St1.width + Perc_St1.x, Perc_St1.y, nStaveWidth).setContext(ctx);
const Perc_St2 = new VF.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 == 2) continue;
1,251行目: 995行目:
Perc_St2.draw();
Perc_St2.draw();


const Perc_St3 = new Stave(Perc_St2.width + Perc_St2.x, Perc_St2.y, nStaveWidth).setContext(ctx);
const Perc_St3 = new VF.Stave(Perc_St2.width + Perc_St2.x, Perc_St2.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 2) continue;
   if (i == 2) continue;
1,258行目: 1,002行目:
Perc_St3.draw();
Perc_St3.draw();


const Perc_St4 = new Stave(Perc_St3.width + Perc_St3.x, Perc_St3.y, nStaveWidth).setContext(ctx);
const Perc_St4 = new VF.Stave(Perc_St3.width + Perc_St3.x, Perc_St3.y, nStaveWidth).setContext(ctx);
for (var i = 0; i < 5; i++) {
for (var i = 0; i < 5; i++) {
   if (i == 2) continue;
   if (i == 2) continue;
1,267行目: 1,011行目:
})();
})();


const svgElement2 = document.querySelector('#yonet202403Mid_Output01 svg');
const svgElement2 = document.querySelector('#yonet202404Mid_Output01 svg');
svgElement2.style.backgroundColor = '#F5F5F5';
svgElement2.style.backgroundColor = '#F5F5F5';
var svgContainer = document.getElementById('yonet202403Mid_Output01');
var svgContainer = document.getElementById('yonet202404Mid_Output01');
var svgElement = svgContainer.querySelector('svg');
var svgElement = svgContainer.querySelector('svg');


1,275行目: 1,019行目:
     textContent: ["Vocal"], // 必須文字列
     textContent: ["Vocal"], // 必須文字列
     strID: "VocalText", // 必須
     strID: "VocalText", // 必須
     Stave_x: Vocal.x,
     Stave_x: VocalInst.x,
     Stave_y: Vocal.y,
     Stave_y: VocalInst.y,
     fontFamily: "Arial, sans-serif",
     fontFamily: "Arial, sans-serif",
     fontSize: "20pt",
     fontSize: "20pt",
1,297行目: 1,041行目:
     textContent: ["@"], // 必須文字列
     textContent: ["@"], // 必須文字列
     strID: "EGuitarTab", // 必須
     strID: "EGuitarTab", // 必須
     Stave_x: Stave9Pos.x,
     Stave_x: Guitar1tab_1st_tabmark.x,
     Stave_y: Stave9Pos.y,
     Stave_y: Guitar1tab_1st_tabmark.y,
     Stave_x_Offset: 10,
     Stave_x_Offset: 10,
     Stave_y_Offset: 80,
     Stave_y_Offset: 80,
1,305行目: 1,049行目:
insertTextToSVG(EGuitarTab_options);
insertTextToSVG(EGuitarTab_options);


//shiftGuitar1_1st
var Guitar1_st1_option = {
var Guitar1_st1_option = {
     textContent: ["", "", ";", ";", ";", ";", ";"], // 必須文字列
     textContent: ["\uFF86", "\uFF86", "┌── M ──┐"], // 必須文字列
     strID: "Guitar1_st1", // 必須
     strID: "Guitar1_st1", // 必須
     Stave_x_Offset: 0,
     Stave_x_Offset: 0,
1,313行目: 1,056行目:
     fontSize: 40,
     fontSize: 40,
     fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
     fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
     shift_x: shiftGuitar1_1st,
     shift_x: [
{x:shiftGuitar1_1st[0].x, y:shiftGuitar1_1st[0].y},
{x:shiftGuitar1_1st[1].x, y:shiftGuitar1_1st[1].y},
{x:shiftGuitar1_1st[2].x - 12, y:shiftGuitar1_1st[2].y},
],
     IsOffset_x_Abs: true
     IsOffset_x_Abs: true
};
};
insertTextToSVG(Guitar1_st1_option);
insertTextToSVG(Guitar1_st1_option);
var Guitar1_st2_option = {
    textContent: [";", ";", ";", ";", ";", ";", "\uFF64"], // 必須文字列
    strID: "Guitar1_st2", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar1_2st,
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st2_option);
insertTiePathToSVG({x:shiftGuitar1_2st[2].x , y:shiftGuitar1_2st[2].y + 10}, {x:shiftGuitar1_2st[2].x + 35, y:shiftGuitar1_2st[2].y + 10});
var Guitar1_st3_option = {
    textContent: [";", ";", ";", ";", ";", ";", "\uFF64"], // 必須文字列
    strID: "Guitar1_st3", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar1_3st,
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st3_option);
insertTiePathToSVG({x:shiftGuitar1_3st[2].x , y:shiftGuitar1_3st[2].y + 10}, {x:shiftGuitar1_3st[2].x + 35, y:shiftGuitar1_3st[2].y + 10});
var Guitar1_st4_option = {
    textContent: [";", ";", ";", ";", ";", ";", ";", "\uFF64"], // 必須文字列
    strID: "Guitar1_st4", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar1_4st,
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1_st4_option);
insertTiePathToSVG({x:shiftGuitar1_4st[0].x , y:shiftGuitar1_4st[0].y + 10}, {x:shiftGuitar1_4st[0].x + 35, y:shiftGuitar1_4st[0].y + 10});
insertTiePathToSVG({x:shiftGuitar1_4st[3].x , y:shiftGuitar1_4st[3].y + 10}, {x:shiftGuitar1_4st[3].x + 35, y:shiftGuitar1_4st[3].y + 10});
insertArrowPathToSVG({x:shiftGuitar1_4st[1].x + 10 , y:shiftGuitar1_4st[1].y + 20}, {x:shiftGuitar1_4st[1].x + 45, y:shiftGuitar1_4st[1].y + 70});
//u254F左利き用4線フレット
insertTiePathToSVG({x:shiftGuitar1_1st[2].x , y:shiftGuitar1_1st[2].y + 10}, {x:shiftGuitar1_1st[2].x + 35, y:shiftGuitar1_1st[2].y + 10});
var Guitar1tab_st1_option = {
    textContent: ["\u254F", "3", "2", "1", ":", ":", "/", "/", "/", "/"], // 必須文字列
    strID: "Guitar1tab_st1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [
{x:Guitar1tab_1st.x + 10, y:Guitar1tab_1st.y + 80},
{x:Guitar1tab_1st.x + 15, y:Guitar1tab_1st.y + 90},
{x:Guitar1tab_1st.x + 30, y:Guitar1tab_1st.y + 90},
{x:Guitar1tab_1st.x + 45, y:Guitar1tab_1st.y + 90},
{x:Guitar1tab_1st.x + 27, y:Guitar1tab_1st.y + 70},//4弦中ポジ
{x:Guitar1tab_1st.x + 27, y:Guitar1tab_1st.y + 60},//5弦中ポジ
{x:Guitar1tab_1st.x + 60, y:Guitar1tab_1st.y + 30},//1弦ネックマーク
{x:Guitar1tab_1st.x + 60, y:Guitar1tab_1st.y + 40},//2弦ネックマーク
{x:Guitar1tab_1st.x + 60, y:Guitar1tab_1st.y + 50},//3弦ネックマーク
{x:Guitar1tab_1st.x + 60, y:Guitar1tab_1st.y + 80},//6弦ネックマーク
], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1tab_st1_option);
var Guitar1tab_st2_option = {
    textContent: ["\uFF03", "5", "4", "3", ":", ":", ":", "["], // 必須文字列
    strID: "Guitar1tab_st2", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [
{x:Guitar1tab_2st.x + 10, y:Guitar1tab_2st.y + 80},
{x:Guitar1tab_2st.x + 15, y:Guitar1tab_2st.y + 90},
{x:Guitar1tab_2st.x + 30, y:Guitar1tab_2st.y + 90},
{x:Guitar1tab_2st.x + 45, y:Guitar1tab_2st.y + 90},
{x:Guitar1tab_2st.x + 27, y:Guitar1tab_2st.y + 50},//3弦中ポジ
{x:Guitar1tab_2st.x + 10, y:Guitar1tab_2st.y + 60},//4弦内ポジ
{x:Guitar1tab_2st.x + 10, y:Guitar1tab_2st.y + 70},//5弦内ポジ
{x:Guitar1tab_2st.x + 42, y:Guitar1tab_2st.y + 80},//外全セーハ
//{x:Guitar1tab_2st.x + 60, y:Guitar1tab_2st.y + 40},//2弦ネックマーク
//{x:Guitar1tab_2st.x + 60, y:Guitar1tab_2st.y + 50},//3弦ネックマーク
//{x:Guitar1tab_2st.x + 60, y:Guitar1tab_2st.y + 80},//6弦ネックマーク
], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1tab_st2_option);
var Guitar1tab_st3_option = {
    textContent: ["\uFF03", "5", "4", "3", ":", "_", "?", "?"], // 必須文字列
    strID: "Guitar1tab_st3", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [
{x:Guitar1tab_3st.x + 10, y:Guitar1tab_3st.y + 80},
{x:Guitar1tab_3st.x + 15, y:Guitar1tab_3st.y + 90},
{x:Guitar1tab_3st.x + 30, y:Guitar1tab_3st.y + 90},
{x:Guitar1tab_3st.x + 45, y:Guitar1tab_3st.y + 90},
//{x:Guitar1tab_3st.x + 27, y:Guitar1tab_3st.y + 50},//3弦中ポジ
//{x:Guitar1tab_3st.x + 10, y:Guitar1tab_3st.y + 60},//4弦内ポジ
{x:Guitar1tab_3st.x + 42, y:Guitar1tab_3st.y + 70},//5弦外ポジ
{x:Guitar1tab_3st.x + 10, y:Guitar1tab_3st.y + 60},//内全セーハ
//{x:Guitar1tab_3st.x + 42, y:Guitar1tab_3st.y + 60},//外全セーハ
{x:Guitar1tab_3st.x + 80, y:Guitar1tab_3st.y + 30},//1弦ネックマーク
//{x:Guitar1tab_3st.x + 60, y:Guitar1tab_3st.y + 40},//2弦ネックマーク
//{x:Guitar1tab_3st.x + 60, y:Guitar1tab_3st.y + 50},//3弦ネックマーク
//{x:Guitar1tab_3st.x + 60, y:Guitar1tab_3st.y + 60},//4弦ネックマーク
//{x:Guitar1tab_3st.x + 60, y:Guitar1tab_3st.y + 70},//5弦ネックマーク
{x:Guitar1tab_3st.x + 80, y:Guitar1tab_3st.y + 80},//6弦ネックマーク
], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1tab_st3_option);
var Guitar1tab_st4_option = {
    textContent: ["\uFF03", "6", "5", "4", ":", "_", "?", "?", "\uFF03", "7", "6", "5", ":", "_", "?", "?"], // 必須文字列
    strID: "Guitar1tab_st4", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [
{x:Guitar1tab_4st.x + 10, y:Guitar1tab_4st.y + 80},
{x:Guitar1tab_4st.x + 15, y:Guitar1tab_4st.y + 90},
{x:Guitar1tab_4st.x + 30, y:Guitar1tab_4st.y + 90},
{x:Guitar1tab_4st.x + 45, y:Guitar1tab_4st.y + 90},
//{x:Guitar1tab_4st.x + 27, y:Guitar1tab_4st.y + 50},//3弦中ポジ
//{x:Guitar1tab_4st.x + 10, y:Guitar1tab_4st.y + 60},//4弦内ポジ
{x:Guitar1tab_4st.x + 42, y:Guitar1tab_4st.y + 70},//5弦外ポジ
{x:Guitar1tab_4st.x + 10, y:Guitar1tab_4st.y + 60},//内全セーハ
//{x:Guitar1tab_4st.x + 42, y:Guitar1tab_4st.y + 60},//外全セーハ
{x:Guitar1tab_4st.x + 80, y:Guitar1tab_4st.y + 30},//1弦ネックマーク
//{x:Guitar1tab_4st.x + 60, y:Guitar1tab_4st.y + 40},//2弦ネックマーク
//{x:Guitar1tab_4st.x + 60, y:Guitar1tab_4st.y + 50},//3弦ネックマーク
//{x:Guitar1tab_4st.x + 60, y:Guitar1tab_4st.y + 60},//4弦ネックマーク
//{x:Guitar1tab_4st.x + 60, y:Guitar1tab_4st.y + 70},//5弦ネックマーク
{x:Guitar1tab_4st.x + 80, y:Guitar1tab_4st.y + 80},//6弦ネックマーク
{x:Guitar1tab_4st.x + 100 + 10, y:Guitar1tab_4st.y + 80},
{x:Guitar1tab_4st.x + 100 + 15, y:Guitar1tab_4st.y + 90},
{x:Guitar1tab_4st.x + 100 + 30, y:Guitar1tab_4st.y + 90},
{x:Guitar1tab_4st.x + 100 + 45, y:Guitar1tab_4st.y + 90},
{x:Guitar1tab_4st.x + 100 + 42, y:Guitar1tab_4st.y + 70},//5弦外ポジ
{x:Guitar1tab_4st.x + 100 + 10, y:Guitar1tab_4st.y + 60},//内全セーハ
{x:Guitar1tab_4st.x + 100 + 80, y:Guitar1tab_4st.y + 30},//1弦ネックマーク
{x:Guitar1tab_4st.x + 100 + 80, y:Guitar1tab_4st.y + 80},//6弦ネックマーク
], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1tab_st4_option);
var Guitar2_st1_option = {
    textContent: [","], // 必須文字列
    strID: "Guitar2_st1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar2_1st,
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2_st1_option);
var Guitar2_st2_option = {
    textContent: ["*"], // 必須文字列
    strID: "Guitar2_st2", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar2_2st,
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2_st2_option);
var Guitar2_st3_option = {
    textContent: ["\uFF88", "\uFF87", "\uFF87"], // 必須文字列
    strID: "Guitar2_st3", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: shiftGuitar2_3st,
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2_st3_option);
var Guitar2tab_st1_option = {
    textContent: ["\u254F", "3", "2", "1", ":", ":", "/", "/", "/", "/"], // 必須文字列
    strID: "Guitar2tab_st1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [
{x:Guitar2tab_1st.x + 10, y:Guitar2tab_1st.y + 80},
{x:Guitar2tab_1st.x + 15, y:Guitar2tab_1st.y + 90},
{x:Guitar2tab_1st.x + 30, y:Guitar2tab_1st.y + 90},
{x:Guitar2tab_1st.x + 45, y:Guitar2tab_1st.y + 90},
{x:Guitar2tab_1st.x + 27, y:Guitar2tab_1st.y + 70},//4弦中ポジ
{x:Guitar2tab_1st.x + 27, y:Guitar2tab_1st.y + 60},//5弦中ポジ
{x:Guitar2tab_1st.x + 60, y:Guitar2tab_1st.y + 30},//1弦ネックマーク
{x:Guitar2tab_1st.x + 60, y:Guitar2tab_1st.y + 40},//2弦ネックマーク
{x:Guitar2tab_1st.x + 60, y:Guitar2tab_1st.y + 50},//3弦ネックマーク
{x:Guitar2tab_1st.x + 60, y:Guitar2tab_1st.y + 80},//6弦ネックマーク
], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2tab_st1_option);
var Guitar2tab_st2_option = {
    textContent: ["\uFF03", "5", "4", "3", ":", ":", ":", "["], // 必須文字列
    strID: "Guitar2tab_st2", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [
{x:Guitar2tab_2st.x + 10, y:Guitar2tab_2st.y + 80},
{x:Guitar2tab_2st.x + 15, y:Guitar2tab_2st.y + 90},
{x:Guitar2tab_2st.x + 30, y:Guitar2tab_2st.y + 90},
{x:Guitar2tab_2st.x + 45, y:Guitar2tab_2st.y + 90},
{x:Guitar2tab_2st.x + 27, y:Guitar2tab_2st.y + 50},//3弦中ポジ
{x:Guitar2tab_2st.x + 10, y:Guitar2tab_2st.y + 60},//4弦内ポジ
{x:Guitar2tab_2st.x + 10, y:Guitar2tab_2st.y + 70},//5弦内ポジ
{x:Guitar2tab_2st.x + 42, y:Guitar2tab_2st.y + 80},//外全セーハ
//{x:Guitar2tab_2st.x + 60, y:Guitar2tab_2st.y + 40},//2弦ネックマーク
//{x:Guitar2tab_2st.x + 60, y:Guitar2tab_2st.y + 50},//3弦ネックマーク
//{x:Guitar2tab_2st.x + 60, y:Guitar2tab_2st.y + 80},//6弦ネックマーク
], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2tab_st2_option);
var Guitar2tab_st3_option = {
    textContent: ["\uFF03", "5", "4", "3", ":", "_", "?", "?"], // 必須文字列
    strID: "Guitar2tab_st3", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [
{x:Guitar2tab_3st.x + 10, y:Guitar2tab_3st.y + 80},
{x:Guitar2tab_3st.x + 15, y:Guitar2tab_3st.y + 90},
{x:Guitar2tab_3st.x + 30, y:Guitar2tab_3st.y + 90},
{x:Guitar2tab_3st.x + 45, y:Guitar2tab_3st.y + 90},
//{x:Guitar2tab_3st.x + 27, y:Guitar2tab_3st.y + 50},//3弦中ポジ
//{x:Guitar2tab_3st.x + 10, y:Guitar2tab_3st.y + 60},//4弦内ポジ
{x:Guitar2tab_3st.x + 42, y:Guitar2tab_3st.y + 70},//5弦外ポジ
{x:Guitar2tab_3st.x + 10, y:Guitar2tab_3st.y + 60},//内全セーハ
//{x:Guitar2tab_3st.x + 42, y:Guitar2tab_3st.y + 60},//外全セーハ
{x:Guitar2tab_3st.x + 80, y:Guitar2tab_3st.y + 30},//1弦ネックマーク
//{x:Guitar2tab_3st.x + 60, y:Guitar2tab_3st.y + 40},//2弦ネックマーク
//{x:Guitar2tab_3st.x + 60, y:Guitar2tab_3st.y + 50},//3弦ネックマーク
//{x:Guitar2tab_3st.x + 60, y:Guitar2tab_3st.y + 60},//4弦ネックマーク
//{x:Guitar2tab_3st.x + 60, y:Guitar2tab_3st.y + 70},//5弦ネックマーク
{x:Guitar2tab_3st.x + 80, y:Guitar2tab_3st.y + 80},//6弦ネックマーク
], // xのオフセット値配列
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar2tab_st3_option);


var EGuitar2Text_options = {
var EGuitar2Text_options = {
1,607行目: 1,079行目:
     textContent: ["@"], // 必須文字列
     textContent: ["@"], // 必須文字列
     strID: "EGuitar2Tab", // 必須
     strID: "EGuitar2Tab", // 必須
     Stave_x: Guitar2Tab1.x,
     Stave_x: Guitar2tab_1st_tabmark.x,
     Stave_y: Guitar2Tab1.y,
     Stave_y: Guitar2tab_1st_tabmark.y,
     Stave_x_Offset: 10,
     Stave_x_Offset: 10,
     Stave_y_Offset: 80,
     Stave_y_Offset: 80,
1,614行目: 1,086行目:
};
};
insertTextToSVG(EGuitar2Tab_options);
insertTextToSVG(EGuitar2Tab_options);
var Guitar1tab_st1_option = {
    textContent: ["\uFF86", "\uFF86", "┌── M ──┐"], // 必須文字列
    strID: "Guitar1tab_st1", // 必須
    Stave_x_Offset: 0,
    Stave_y_Offset: 0,
    fontSize: 40,
    fontFamily: "YonetMuFL, Arial", // オプション、デフォルトは"Bravura, Arial"
    shift_x: [
{x:shiftGuitar1tab_1st[0].x, y:shiftGuitar1tab_1st[0].y},
{x:shiftGuitar1tab_1st[1].x, y:shiftGuitar1tab_1st[1].y},
{x:shiftGuitar1tab_1st[2].x - 12, y:shiftGuitar1tab_1st[2].y},
],
    IsOffset_x_Abs: true
};
insertTextToSVG(Guitar1tab_st1_option);


var BaseText_options = {
var BaseText_options = {
1,629行目: 1,117行目:
     textContent: ["@"], // 必須文字列
     textContent: ["@"], // 必須文字列
     strID: "BaseTab", // 必須
     strID: "BaseTab", // 必須
     Stave_x: BaseTab1.x,
     Stave_x: Basetab_1st_tabmark.x,
     Stave_y: BaseTab1.y,
     Stave_y: Basetab_1st_tabmark.y,
     Stave_x_Offset: 10,
     Stave_x_Offset: 10,
     Stave_y_Offset: 90,
     Stave_y_Offset: 90,
1,844行目: 1,332行目:


<syntaxhighlight lang="javascript" line start="1" highlight="">
<syntaxhighlight lang="javascript" line start="1" highlight="">
<div id="yonet202403Mid_Output01"></div>
<div id="yonet202404Mid_Output01"></div>
<script>
<script>



2024年4月19日 (金) 18:54時点における最新版

VexFlow 使い方に戻る。

概要

 

 

タブ譜 ミュート


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


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


 

 

VexFlow 使い方に戻る。