「VexFlow タブ譜 コードフォーム」の版間の差分

提供:yonewiki
483行目: 483行目:
Guitar1St1.addKeySignature('D').setContext(ctx);
Guitar1St1.addKeySignature('D').setContext(ctx);
Guitar1St1.draw();
Guitar1St1.draw();
const Guitar1_notes1_1 = [
  new VF.StaveNote({ keys: ["a/3", "e/4", "a/4", "c/5"], duration: "2" }),
  new VF.StaveNote({ keys: ["e/5"], duration: "8", stem_direction: -1 }),
  dotted(new VF.StaveNote({ keys: ["c/6"], duration: "4d", stem_direction: -1 })),
];
const Guitar1_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"}),
];
var Guitar1_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St1_1Voice.setStrict(true);
Guitar1_St1_1Voice.addTickables(Guitar1_notes1_1);
var Guitar1_St1_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St1_2Voice.setStrict(true);
Guitar1_St1_2Voice.addTickables(Guitar1_notes1_2);
var formatterGuitar1_St1_1 = new Vex.Flow.Formatter().joinVoices([Guitar1_St1_2Voice, Guitar1_St1_1Voice]);
formatterGuitar1_St1_1.format([Guitar1_St1_2Voice, Guitar1_St1_1Voice], nStaveWidth - 20 - 10);
Guitar1_St1_1Voice.draw(ctx, Guitar1St1);
Guitar1_St1_2Voice.draw(ctx, Guitar1St1);


const Guitar1St2 = new Stave(Guitar1St1.width + Guitar1St1.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
const Guitar1St2 = new Stave(Guitar1St1.width + Guitar1St1.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
Guitar1St2.draw();
Guitar1St2.draw();
const Guitar1_gracenotes2 = [
  new VF.GraceNote({ keys: ['e/5', 'g/5'], duration: '8', slash: true })
  .addModifier(new VF.Accidental('#'), 1)
];
const Guitar1_notes2_1 = [
  new VF.StaveNote({ keys: ["f/5", "a/5"], duration: "8", stem_direction: -1 })
  .addModifier(new VF.Accidental('n'), 0),
  new VF.StaveNote({ keys: ["e/5", "g/5"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["f/5"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["e/5"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["a/4", "d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["f/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["e/4"], duration: "8" }),
];
const Guitar1_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"}),
  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"}),
];
Guitar1_notes2_1[0].addModifier(new VF.Articulation('a.').setPosition(3));
Guitar1_notes2_1[1].addModifier(new VF.Articulation('a.').setPosition(3));
Guitar1_notes2_1[2].addModifier(new VF.Articulation('a.').setPosition(3));
Guitar1_notes2_1[3].addModifier(new VF.Articulation('a.').setPosition(3));
Guitar1_notes2_1[4].addModifier(new VF.Articulation('a.').setPosition(4));
Guitar1_notes2_1[5].addModifier(new VF.Articulation('a.').setPosition(4));
Guitar1_notes2_1[6].addModifier(new VF.Articulation('a.').setPosition(4));
Guitar1_notes2_1[7].addModifier(new VF.Articulation('a.').setPosition(4));
Guitar1_notes2_1[0].addModifier(new VF.GraceNoteGroup(Guitar1_gracenotes2, true), 0);
const Guitar1_beam1_1 = new VF.Beam([Guitar1_notes2_1[0], Guitar1_notes2_1[1], Guitar1_notes2_1[2], Guitar1_notes2_1[3]]);
const Guitar1_beam1_2 = new VF.Beam([Guitar1_notes2_1[4], Guitar1_notes2_1[5], Guitar1_notes2_1[6], Guitar1_notes2_1[7]]);
var Guitar1_St2_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St2_1Voice.setStrict(true);
Guitar1_St2_1Voice.addTickables(Guitar1_notes2_1);
var Guitar1_St2_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St2_2Voice.setStrict(true);
Guitar1_St2_2Voice.addTickables(Guitar1_notes2_2);
var formatterGuitar1_St2_1 = new Vex.Flow.Formatter().joinVoices([Guitar1_St2_2Voice, Guitar1_St2_1Voice]);
formatterGuitar1_St2_1.format([Guitar1_St2_2Voice, Guitar1_St2_1Voice], nStaveWidth - 30);
Guitar1_St2_1Voice.draw(ctx, Guitar1St2);
Guitar1_St2_2Voice.draw(ctx, Guitar1St2);
Guitar1_beam1_1.setContext(ctx).draw();
Guitar1_beam1_2.setContext(ctx).draw();


const Guitar1St3 = new Stave(Guitar1St2.width + Guitar1St2.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
const Guitar1St3 = new Stave(Guitar1St2.width + Guitar1St2.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
Guitar1St3.draw();
Guitar1St3.draw();
const Guitar1_notes3_1 = [
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["a/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["e/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["e/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["e/4"], duration: "2" }),
];
const Guitar1_notes3_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"}),
];
const Guitar1_beam3_1 = new VF.Beam([Guitar1_notes3_1[0], Guitar1_notes3_1[1], Guitar1_notes3_1[2], Guitar1_notes3_1[3]]);
const Guitar1_beam3_2 = new VF.Beam([Guitar1_notes3_1[4], Guitar1_notes3_1[5], Guitar1_notes3_1[6]]);
var Guitar1_St3_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St3_1Voice.setStrict(true);
Guitar1_St3_1Voice.addTickables(Guitar1_notes3_1);
var Guitar1_St3_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St3_2Voice.setStrict(true);
Guitar1_St3_2Voice.addTickables(Guitar1_notes3_2);
var formatterGuitar1_St3_1 = new Vex.Flow.Formatter().joinVoices([Guitar1_St3_2Voice, Guitar1_St3_1Voice]);
formatterGuitar1_St3_1.format([Guitar1_St3_2Voice, Guitar1_St3_1Voice], nStaveWidth - 30);
Guitar1_St3_1Voice.draw(ctx, Guitar1St3);
Guitar1_St3_2Voice.draw(ctx, Guitar1St3);
Guitar1_beam3_1.setContext(ctx).draw();
Guitar1_beam3_2.setContext(ctx).draw();
const Guitar1_ties3 = [
    new StaveTie({
        first_note: Guitar1_notes3_1[0],
        last_note: Guitar1_notes3_1[1],
        first_indices: [0],
        last_indices: [0],
    }),
    new StaveTie({
        first_note: Guitar1_notes3_1[1],
        last_note: Guitar1_notes3_1[2],
        first_indices: [0],
        last_indices: [0],
    }),
    new StaveTie({
        first_note: Guitar1_notes3_1[2],
        last_note: Guitar1_notes3_1[3],
        first_indices: [0],
        last_indices: [0],
    }),
    new StaveTie({
        first_note: Guitar1_notes3_1[3],
        last_note: Guitar1_notes3_1[4],
        first_indices: [0],
        last_indices: [0],
    }),
    new StaveTie({
        first_note: Guitar1_notes3_1[6],
        last_note: Guitar1_notes3_1[7],
        first_indices: [0],
        last_indices: [0],
    }),
];
Guitar1_ties3.forEach((t) => {
    t.setContext(ctx).draw();
});
var Guitar1_vibrato3 = new VF.VibratoBracket({
  start: Guitar1_notes3_1[7],
  stop: null,
});
Guitar1_vibrato3.setLine(0);
Guitar1_vibrato3.setHarsh(true);
Guitar1_vibrato3.setContext(ctx).draw();


const Guitar1St4 = new Stave(Guitar1St3.width + Guitar1St3.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
const Guitar1St4 = new Stave(Guitar1St3.width + Guitar1St3.x, Guitar1St1.y, nStaveWidth).setContext(ctx);
Guitar1St4.draw();
Guitar1St4.draw();
const Guitar1_gracenotes4 = [
  new VF.GraceNote({ keys: ['a/4'], duration: '8', slash: true })
];
const Guitar1_notes4_1 = [
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["a/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "4" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8", stem_direction: -1 }),
];
const Guitar1_notes4_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"}),
];
Guitar1_notes4_1[7].addModifier(new VF.Articulation('a.').setPosition(3));
Guitar1_notes4_1[3].addModifier(new VF.GraceNoteGroup(Guitar1_gracenotes4, true), 0);
SteveNoteUniqueIds = getUniqueStaveNotesIds(Guitar1_notes4_1, [0, 1]);
allFlagUniqueIds = updateAllFlagUniqueIds(SteveNoteUniqueIds);
const Guitar1_beam4_1 = new VF.Beam([Guitar1_notes4_1[2], Guitar1_notes4_1[3]]);
const Guitar1_beam4_2 = new VF.Beam([Guitar1_notes4_1[5], Guitar1_notes4_1[6], Guitar1_notes4_1[7]]);
var Guitar1_St4_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St4_1Voice.setStrict(true);
Guitar1_St4_1Voice.addTickables(Guitar1_notes4_1);
var Guitar1_St4_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_St4_2Voice.setStrict(true);
Guitar1_St4_2Voice.addTickables(Guitar1_notes4_2);
var formatterGuitar1_St4_1 = new Vex.Flow.Formatter().joinVoices([Guitar1_St4_2Voice, Guitar1_St4_1Voice]);
formatterGuitar1_St4_1.format([Guitar1_St4_2Voice, Guitar1_St4_1Voice], nStaveWidth - 30);
Guitar1_St4_1Voice.draw(ctx, Guitar1St4);
Guitar1_St4_2Voice.draw(ctx, Guitar1St4);
Guitar1_beam4_1.setContext(ctx).draw();
Guitar1_beam4_2.setContext(ctx).draw();
shiftGuitar1_1 = addShift(
  Guitar1_notes4_1,
  [0, 1],
  [4, 3.5]
);
const Guitar1_ties4 = [
    new StaveTie({
        first_note: Guitar1_notes4_1[0],
        last_note: Guitar1_notes4_1[1],
        first_indices: [0],
        last_indices: [0],
    }),
    new StaveTie({
        first_note: Guitar1_notes4_1[1],
        last_note: Guitar1_notes4_1[2],
        first_indices: [0],
        last_indices: [0],
    }),
    new StaveTie({
        first_note: Guitar1_notes4_1[3],
        last_note: Guitar1_notes4_1[4],
        first_indices: [0],
        last_indices: [0],
    }),
    new StaveTie({
        first_note: Guitar1_notes4_1[5],
        last_note: Guitar1_notes4_1[6],
        first_indices: [0],
        last_indices: [0],
    }),
];
Guitar1_ties4.forEach((t) => {
    t.setContext(ctx).draw();
});




844行目: 543行目:
Guitar1_Tab1_1.setEndBarType(VF.Barline.type.NONE);
Guitar1_Tab1_1.setEndBarType(VF.Barline.type.NONE);
Guitar1_Tab1_1.draw();
Guitar1_Tab1_1.draw();
const Guitar1_tab_notes1_1 = [
  new VF.GhostNote({ keys: ["a/3", "e/4", "a/4", "c/5"], duration: "2" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8", stem_direction: -1 }),
  dotted(new VF.StaveNote({ keys: ["f/5"], duration: "4d", stem_direction: -1 })),
];
const Guitar1_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"}),
];
UniqueIds = getUniqueNoteheadIds(Guitar1_tab_notes1_1, [1, 2]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
var Guitar1_tab_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_tab_St1_1Voice.setStrict(true);
Guitar1_tab_St1_1Voice.addTickables(Guitar1_tab_notes1_1);
var Guitar1_tab_St1_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_tab_St1_2Voice.setStrict(true);
Guitar1_tab_St1_2Voice.addTickables(Guitar1_tab_notes1_2);
var formatterGuitar1_tab_St1_1 = new Vex.Flow.Formatter().joinVoices([Guitar1_tab_St1_2Voice, Guitar1_tab_St1_1Voice]);
formatterGuitar1_tab_St1_1.format([Guitar1_tab_St1_2Voice, Guitar1_tab_St1_1Voice], nStaveWidth - 20 - 10);
Guitar1_tab_St1_1Voice.draw(ctx, Guitar1_Tab1_1);
Guitar1_tab_St1_2Voice.draw(ctx, Guitar1_Tab1_1);
shiftGuitar1_tab1 = addShift(
  Guitar1_tab_notes1_1,
  [0, 0, 0, 0, 1,  2],
  [3, 2, 1, 0, 1, -1]
);


const Guitar1_Tab2 = new Stave(Guitar1_Tab1.width + Guitar1_Tab1.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
const Guitar1_Tab2 = new Stave(Guitar1_Tab1.width + Guitar1_Tab1.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
Guitar1_Tab2.draw();
Guitar1_Tab2.draw();
const Guitar1_tab_gracenotes2 = [
  new VF.GraceNote({ keys: ['a/5'], duration: '8', slash: true })
  .addModifier(new VF.Accidental('#'), 0)
];
const Guitar1_tab_notes2_1 = [
  new VF.StaveNote({ keys: ["b/4"], duration: "8", stem_direction: -1 })
  .addModifier(new VF.Accidental('n'), 0),
  new VF.StaveNote({ keys: ["b/4"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["f/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
];
const Guitar1_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"}),
  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"}),
];
Guitar1_tab_notes2_1[0].addModifier(new VF.GraceNoteGroup(Guitar1_tab_gracenotes2, false), 0);
UniqueIds = getUniqueNoteheadIds(Guitar1_tab_notes2_1, [0, 1, 2, 3, 4, 5, 6, 7]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
const Guitar1_tab_beam2_1 = new VF.Beam([Guitar1_tab_notes2_1[0], Guitar1_tab_notes2_1[1], Guitar1_tab_notes2_1[2], Guitar1_tab_notes2_1[3]]);
const Guitar1_tab_beam2_2 = new VF.Beam([Guitar1_tab_notes2_1[4], Guitar1_tab_notes2_1[5], Guitar1_tab_notes2_1[6], Guitar1_tab_notes2_1[7]]);
var Guitar1_tab_St2_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_tab_St2_1Voice.setStrict(true);
Guitar1_tab_St2_1Voice.addTickables(Guitar1_tab_notes2_1);
var Guitar1_tab_St2_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_tab_St2_2Voice.setStrict(true);
Guitar1_tab_St2_2Voice.addTickables(Guitar1_tab_notes2_2);
var formatterGuitar1_tab_St2_1 = new Vex.Flow.Formatter().joinVoices([Guitar1_tab_St2_2Voice, Guitar1_tab_St2_1Voice]);
formatterGuitar1_tab_St2_1.format([Guitar1_tab_St2_2Voice, Guitar1_tab_St2_1Voice], nStaveWidth - 20);
Guitar1_tab_St2_1Voice.draw(ctx, Guitar1_Tab2);
Guitar1_tab_St2_2Voice.draw(ctx, Guitar1_Tab2);
shiftGuitar1_tab2 = addShift(
  Guitar1_tab_notes2_1,
  [0, 0, 0, 0, 1, 1, 2, 3, 4, 4, 5, 6, 7],
  [1, 0, 1, 0, 1, 0, 0, 1, 2, 1, 2, 2, 3]
);
Guitar1_tab_beam2_1.setContext(ctx).draw();
Guitar1_tab_beam2_2.setContext(ctx).draw();


const Guitar1_Tab3 = new Stave(Guitar1_Tab2.width + Guitar1_Tab2.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
const Guitar1_Tab3 = new Stave(Guitar1_Tab2.width + Guitar1_Tab2.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
Guitar1_Tab3.draw();
Guitar1_Tab3.draw();
const Guitar1_tab_notes3_1 = [
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.GhostNote({ keys: ["b/4"], duration: "2" }),
];
const Guitar1_tab_notes3_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_tab_notes3_1, [0, 1, 2, 3, 4, 5, 6, 7]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
const Guitar1_tab_beam3_1 = new VF.Beam([Guitar1_tab_notes3_1[0], Guitar1_tab_notes3_1[1], Guitar1_tab_notes3_1[2], Guitar1_tab_notes3_1[3]]);
const Guitar1_tab_beam3_2 = new VF.Beam([Guitar1_tab_notes3_1[4], Guitar1_tab_notes3_1[5], Guitar1_tab_notes3_1[6]]);
var Guitar1_tab_St3_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_tab_St3_1Voice.setStrict(true);
Guitar1_tab_St3_1Voice.addTickables(Guitar1_tab_notes3_1);
var Guitar1_tab_St3_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_tab_St3_2Voice.setStrict(true);
Guitar1_tab_St3_2Voice.addTickables(Guitar1_tab_notes3_2);
var formatterGuitar1_tab_St3_1 = new Vex.Flow.Formatter().joinVoices([Guitar1_tab_St3_2Voice, Guitar1_tab_St3_1Voice]);
formatterGuitar1_tab_St3_1.format([Guitar1_tab_St3_2Voice, Guitar1_tab_St3_1Voice], nStaveWidth - 20);
Guitar1_tab_St3_1Voice.draw(ctx, Guitar1_Tab3);
Guitar1_tab_St3_2Voice.draw(ctx, Guitar1_Tab3);
shiftGuitar1_tab3 = addShift(
  Guitar1_tab_notes3_1,
  [0, 1, 2, 3, 4, 5, 6, 7],
  [2, 2, 2, 2, 2, 4, 4, 4]
);
Guitar1_tab_beam3_1.setContext(ctx).draw();
Guitar1_tab_beam3_2.setContext(ctx).draw();
var Guitar1_tab_vibrato3 = new VF.VibratoBracket({
  start: Guitar1_tab_notes3_1[7],
  stop: null,
});
Guitar1_tab_vibrato3.setLine(1);
Guitar1_tab_vibrato3.setHarsh(true);
Guitar1_tab_vibrato3.setContext(ctx).draw();


const Guitar1_Tab4 = new Stave(Guitar1_Tab3.width + Guitar1_Tab3.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
const Guitar1_Tab4 = new Stave(Guitar1_Tab3.width + Guitar1_Tab3.x, Guitar1_Tab1.y, nStaveWidth).setContext(ctx);
Guitar1_Tab4.draw();
Guitar1_Tab4.draw();
const Guitar1_tab_gracenotes4 = [
  new VF.GraceNote({ keys: ['d/5'], duration: '8', slash: true })
];
const Guitar1_tab_notes4_1 = [
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "4" }),
  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 }),
];
const Guitar1_tab_notes4_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"}),
];
Guitar1_tab_notes4_1[3].addModifier(new VF.GraceNoteGroup(Guitar1_tab_gracenotes4, false), 0);
SteveNoteUniqueIds = getUniqueStaveNotesIds(Guitar1_tab_notes4_1, [0, 1]);
allFlagUniqueIds = updateAllFlagUniqueIds(SteveNoteUniqueIds);
UniqueIds = getUniqueNoteheadIds(Guitar1_tab_notes4_1, [0, 1, 2, 3, 4, 5, 6, 7]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
const Guitar1_tab_beam4_1 = new VF.Beam([Guitar1_tab_notes4_1[2], Guitar1_tab_notes4_1[3]]);
const Guitar1_tab_beam4_2 = new VF.Beam([Guitar1_tab_notes4_1[5], Guitar1_tab_notes4_1[6], Guitar1_tab_notes4_1[7]]);
var Guitar1_tab_St4_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_tab_St4_1Voice.setStrict(true);
Guitar1_tab_St4_1Voice.addTickables(Guitar1_tab_notes4_1);
var Guitar1_tab_St4_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar1_tab_St4_2Voice.setStrict(true);
Guitar1_tab_St4_2Voice.addTickables(Guitar1_tab_notes4_2);
var formatterGuitar1_tab_St4_1 = new Vex.Flow.Formatter().joinVoices([Guitar1_tab_St4_2Voice, Guitar1_tab_St4_1Voice]);
formatterGuitar1_tab_St4_1.format([Guitar1_tab_St4_2Voice, Guitar1_tab_St4_1Voice], nStaveWidth - 20);
Guitar1_tab_St4_1Voice.draw(ctx, Guitar1_Tab4);
Guitar1_tab_St4_2Voice.draw(ctx, Guitar1_Tab4);
shiftGuitar1_tab4 = addShift(
  Guitar1_tab_notes4_1,
  [0, 1, 2, 3, 3, 4, 5, 6, 7, 7],
  [2, 2, 2, 2, 2, 2, 1, 1, 1, 1]
);
shiftGuitar1_tab4_tr = addShift(
  Guitar1_tab_notes4_1,
  [0, 1],
  [3, 2.5]
);
Guitar1_tab_beam4_1.setContext(ctx).draw();
Guitar1_tab_beam4_2.setContext(ctx).draw();




1,124行目: 559行目:
Guitar2_St1.addKeySignature('D').setContext(ctx);
Guitar2_St1.addKeySignature('D').setContext(ctx);
Guitar2_St1.draw();
Guitar2_St1.draw();
const Guitar2_notes1_1 = [
  dotted(new VF.StaveNote({ keys: ["g/4"], duration: "8d" })),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/4"], duration: "8" }),
  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"}),
  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"}),
];
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]]);
UniqueIds = getUniqueNoteheadIds(Guitar2_notes1_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
var Guitar2_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St1_1Voice.setStrict(true);
Guitar2_St1_1Voice.addTickables(Guitar2_notes1_1);
var Guitar2_St1_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St1_2Voice.setStrict(true);
Guitar2_St1_2Voice.addTickables(Guitar2_notes1_2);
var formatterGuitar2_St1_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_St1_2Voice, Guitar2_St1_1Voice]);
formatterGuitar2_St1_1.format([Guitar2_St1_2Voice, Guitar2_St1_1Voice], nStaveWidth - 40 - 10);
Guitar2_St1_1Voice.draw(ctx, Guitar2_St1);
Guitar2_St1_2Voice.draw(ctx, Guitar2_St1);
Guitar2_St1_beam1_1.setContext(ctx).draw();
Guitar2_St1_beam1_2.setContext(ctx).draw();
Guitar2_St1_beam1_3.setContext(ctx).draw();
Guitar2_St1_beam1_4.setContext(ctx).draw();
shiftGuitar2_St1 = addShift(
  Guitar2_notes1_1,
  [0, 1, 2, 3, 4, 6, 7, 8, 9, 10],
  [4, 4, 4, 4, 4, 4, 4, 4, 4,  4]
);


const Guitar2_St2 = new Stave(Guitar2_St1.width + Guitar2_St1.x, Guitar2_St1.y, nStaveWidth).setContext(ctx);
const Guitar2_St2 = new Stave(Guitar2_St1.width + Guitar2_St1.x, Guitar2_St1.y, nStaveWidth).setContext(ctx);
1,204行目: 567行目:
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_notes2_1 = [
  dotted(new VF.StaveNote({ keys: ["c/5"], duration: "8d", stem_direction: -1 })),
  new VF.StaveNote({ keys: ["c/5"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: -1 }),
  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: ["c/5"], duration: "16", stem_direction: -1 }),
  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: ["c/5"], duration: "16", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: -1 }),
  new VF.StaveNote({ keys: ["c/5"], duration: "8", stem_direction: -1 }),
];
const Guitar2_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"}),
  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"}),
];
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]]);
UniqueIds = getUniqueNoteheadIds(Guitar2_notes2_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
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);
var Guitar2_St2_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St2_2Voice.setStrict(true);
Guitar2_St2_2Voice.addTickables(Guitar2_notes2_2);
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);
Guitar2_St2_beam1_1.setContext(ctx).draw();
Guitar2_St2_beam1_2.setContext(ctx).draw();
Guitar2_St2_beam1_3.setContext(ctx).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 Guitar2_St3 = new 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_notes3_1 = [
  new VF.StaveNote({ keys: ["d/4", "a/4", "d/5", "f/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["f/5"], duration: "8" }),
];
const Guitar2_notes3_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"}),
];
const Guitar2_St3_beam1_1 = new VF.Beam([Guitar2_notes3_1[0], Guitar2_notes3_1[1]]);
const Guitar2_St3_beam1_2 = new VF.Beam([Guitar2_notes3_1[2], Guitar2_notes3_1[3], Guitar2_notes3_1[4]]);
const Guitar2_St3_beam1_3 = new VF.Beam([Guitar2_notes3_1[5], Guitar2_notes3_1[6], Guitar2_notes3_1[7]]);
const Guitar2_St3_beam1_4 = new VF.Beam([Guitar2_notes3_1[8], Guitar2_notes3_1[9]]);
UniqueIds = getUniqueNoteheadIds(Guitar2_notes3_1, [1, 2, 3, 4, 5, 6, 7, 8, 9]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
var Guitar2_St3_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St3_1Voice.setStrict(true);
Guitar2_St3_1Voice.addTickables(Guitar2_notes3_1);
var Guitar2_St3_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St3_2Voice.setStrict(true);
Guitar2_St3_2Voice.addTickables(Guitar2_notes3_2);
var formatterGuitar2_St3_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_St3_2Voice, Guitar2_St3_1Voice]);
formatterGuitar2_St3_1.format([Guitar2_St3_2Voice, Guitar2_St3_1Voice], nStaveWidth - 10);
Guitar2_St3_1Voice.draw(ctx, Guitar2_St3);
Guitar2_St3_2Voice.draw(ctx, Guitar2_St3);
Guitar2_St3_beam1_1.setContext(ctx).draw();
Guitar2_St3_beam1_2.setContext(ctx).draw();
Guitar2_St3_beam1_3.setContext(ctx).draw();
Guitar2_St3_beam1_4.setContext(ctx).draw();
shiftGuitar2_St3 = addShift(
  Guitar2_notes3_1,
  [0, 1, 2, 3, 4, 6, 7, 8, 9],
  [2, 2, 2, 2, 2, 2, 2, 2, 2]
);


const Guitar2_St4 = new Stave(Guitar2_St3.width + Guitar2_St3.x, Guitar2_St3.y, nStaveWidth).setContext(ctx);
const Guitar2_St4 = new Stave(Guitar2_St3.width + Guitar2_St3.x, Guitar2_St3.y, nStaveWidth).setContext(ctx);
Guitar2_St4.draw();
Guitar2_St4.draw();
const Guitar2_notes4_1 = [
  new VF.StaveNote({ keys: ["g/3", "d/4", "g/4", "d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["d/5"], duration: "16" }),
];
const Guitar2_notes4_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"}),
];
const Guitar2_St4_beam1_1 = new VF.Beam([Guitar2_notes4_1[0], Guitar2_notes4_1[1]]);
const Guitar2_St4_beam1_2 = new VF.Beam([Guitar2_notes4_1[2], Guitar2_notes4_1[3], Guitar2_notes4_1[4]]);
const Guitar2_St4_beam1_3 = new VF.Beam([Guitar2_notes4_1[5], Guitar2_notes4_1[6], Guitar2_notes4_1[7]]);
const Guitar2_St4_beam1_4 = new VF.Beam([Guitar2_notes4_1[8], Guitar2_notes4_1[9], Guitar2_notes4_1[10]]);
UniqueIds = getUniqueNoteheadIds(Guitar2_notes4_1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
var Guitar2_St4_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St4_1Voice.setStrict(true);
Guitar2_St4_1Voice.addTickables(Guitar2_notes4_1);
var Guitar2_St4_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_St4_2Voice.setStrict(true);
Guitar2_St4_2Voice.addTickables(Guitar2_notes4_2);
var formatterGuitar2_St4_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_St4_2Voice, Guitar2_St4_1Voice]);
formatterGuitar2_St4_1.format([Guitar2_St4_2Voice, Guitar2_St4_1Voice], nStaveWidth - 10 - 10);
Guitar2_St4_1Voice.draw(ctx, Guitar2_St4);
Guitar2_St4_2Voice.draw(ctx, Guitar2_St4);
Guitar2_St4_beam1_1.setContext(ctx).draw();
Guitar2_St4_beam1_2.setContext(ctx).draw();
Guitar2_St4_beam1_3.setContext(ctx).draw();
Guitar2_St4_beam1_4.setContext(ctx).draw();
shiftGuitar2_St4 = addShift(
  Guitar2_notes4_1,
  [0, 1, 2, 3, 4, 6, 7, 8, 9, 10],
  [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
);




1,436行目: 582行目:
const Guitar2_Tab1 = new Stave(Guitar2_St1.x, Guitar2_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
const Guitar2_Tab1 = new Stave(Guitar2_St1.x, Guitar2_St1.y + 120, nHeadMargin + nStaveWidth).setContext(ctx);
Guitar2_Tab1.draw();
Guitar2_Tab1.draw();
const Guitar2_tab_notes1_1 = [
  dotted(new VF.StaveNote({ keys: ["b/4"], duration: "8d" })),
  new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/4"], duration: "8" }),
];
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"}),
];
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(Guitar2_tab_notes1_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
var Guitar2_tab_St1_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St1_1Voice.setStrict(true);
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 formatterGuitar2_tab_St1_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_tab_St1_2Voice, Guitar2_tab_St1_1Voice]);
formatterGuitar2_tab_St1_1.format([Guitar2_tab_St1_2Voice, Guitar2_tab_St1_1Voice], nStaveWidth - 40 - 10);
Guitar2_tab_St1_1Voice.draw(ctx, Guitar2_Tab1_1);
Guitar2_tab_St1_2Voice.draw(ctx, Guitar2_Tab1_1);
Guitar2_tab_St1_beam1_1.setContext(ctx).draw();
Guitar2_tab_St1_beam1_2.setContext(ctx).draw();
Guitar2_tab_St1_beam1_3.setContext(ctx).draw();
Guitar2_tab_St1_beam1_4.setContext(ctx).draw();
shiftGuitar2_Tab1 = addShift(
  Guitar2_tab_notes1_1,
  [0, 1, 2, 3, 4, 6, 7, 8, 9, 10],
  [3, 3, 3, 3, 3, 3, 3, 3, 3,  3]
);




1,513行目: 589行目:
const Guitar2_Tab2 = new Stave(Guitar2_Tab1.width + Guitar2_Tab1.x, Guitar2_Tab1.y, nStaveWidth).setContext(ctx);
const Guitar2_Tab2 = new Stave(Guitar2_Tab1.width + Guitar2_Tab1.x, Guitar2_Tab1.y, nStaveWidth).setContext(ctx);
Guitar2_Tab2.draw();
Guitar2_Tab2.draw();


const Guitar2_Tab2_1 = new Stave(Guitar2_Tab1.width + Guitar2_Tab1.x + 45, Guitar2_Tab1.y, 0).setContext(ctx);
const Guitar2_Tab2_1 = new Stave(Guitar2_Tab1.width + Guitar2_Tab1.x + 45, Guitar2_Tab1.y, 0).setContext(ctx);
1,518行目: 595行目:
Guitar2_Tab2_1.setEndBarType(VF.Barline.type.NONE);
Guitar2_Tab2_1.setEndBarType(VF.Barline.type.NONE);
Guitar2_Tab2_1.draw();
Guitar2_Tab2_1.draw();
const Guitar2_tab_notes2_1 = [
  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 }),
  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: "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"}),
  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"}),
];
const Guitar2_tab_St2_beam1_1 = new VF.Beam([Guitar2_tab_notes2_1[0], Guitar2_tab_notes2_1[1]]);
const Guitar2_tab_St2_beam1_2 = new VF.Beam([Guitar2_tab_notes2_1[2], Guitar2_tab_notes2_1[3], Guitar2_tab_notes2_1[4]]);
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]]);
UniqueIds = getUniqueNoteheadIds(Guitar2_tab_notes2_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
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);
var Guitar2_tab_St2_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St2_2Voice.setStrict(true);
Guitar2_tab_St2_2Voice.addTickables(Guitar2_tab_notes2_2);
var formatterGuitar2_tab_St2_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_tab_St2_2Voice, Guitar2_tab_St2_1Voice]);
formatterGuitar2_tab_St2_1.format([Guitar2_tab_St2_2Voice, Guitar2_tab_St2_1Voice], nStaveWidth - 40 - 10);
Guitar2_tab_St2_1Voice.draw(ctx, Guitar2_Tab2_1);
Guitar2_tab_St2_2Voice.draw(ctx, Guitar2_Tab2_1);
Guitar2_tab_St2_beam1_1.setContext(ctx).draw();
Guitar2_tab_St2_beam1_2.setContext(ctx).draw();
Guitar2_tab_St2_beam1_3.setContext(ctx).draw();
Guitar2_tab_St2_beam1_4.setContext(ctx).draw();
shiftGuitar2_Tab2 = addShift(
  Guitar2_tab_notes2_1,
  [0, 1, 2, 3, 4, 6, 7, 8, 9, 10],
  [2, 2, 2, 2, 2, 2, 2, 2, 2,  2]
);




const Guitar2_Tab3 = new Stave(Guitar2_Tab2.width + Guitar2_Tab2.x, Guitar2_Tab2.y, nStaveWidth).setContext(ctx);
const Guitar2_Tab3 = new Stave(Guitar2_Tab2.width + Guitar2_Tab2.x, Guitar2_Tab2.y, nStaveWidth).setContext(ctx);
Guitar2_Tab3.draw();
Guitar2_Tab3.draw();
const Guitar2_tab_notes3_1 = [
  new VF.StaveNote({ keys: ["b/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["b/5"], duration: "8" }),
];
const Guitar2_tab_notes3_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"}),
];
const Guitar2_tab_St3_beam1_1 = new VF.Beam([Guitar2_tab_notes3_1[0], Guitar2_tab_notes3_1[1]]);
const Guitar2_tab_St3_beam1_2 = new VF.Beam([Guitar2_tab_notes3_1[2], Guitar2_tab_notes3_1[3], Guitar2_tab_notes3_1[4]]);
const Guitar2_tab_St3_beam1_3 = new VF.Beam([Guitar2_tab_notes3_1[5], Guitar2_tab_notes3_1[6], Guitar2_tab_notes3_1[7]]);
const Guitar2_tab_St3_beam1_4 = new VF.Beam([Guitar2_tab_notes3_1[8], Guitar2_tab_notes3_1[9]]);
UniqueIds = getUniqueNoteheadIds(Guitar2_tab_notes3_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
var Guitar2_tab_St3_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St3_1Voice.setStrict(true);
Guitar2_tab_St3_1Voice.addTickables(Guitar2_tab_notes3_1);
var Guitar2_tab_St3_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St3_2Voice.setStrict(true);
Guitar2_tab_St3_2Voice.addTickables(Guitar2_tab_notes3_2);
var formatterGuitar2_tab_St3_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_tab_St3_2Voice, Guitar2_tab_St3_1Voice]);
formatterGuitar2_tab_St3_1.format([Guitar2_tab_St3_2Voice, Guitar2_tab_St3_1Voice], nStaveWidth - 10);
Guitar2_tab_St3_1Voice.draw(ctx, Guitar2_Tab3);
Guitar2_tab_St3_2Voice.draw(ctx, Guitar2_Tab3);
Guitar2_tab_St3_beam1_1.setContext(ctx).draw();
Guitar2_tab_St3_beam1_2.setContext(ctx).draw();
Guitar2_tab_St3_beam1_3.setContext(ctx).draw();
Guitar2_tab_St3_beam1_4.setContext(ctx).draw();
shiftGuitar2_Tab3 = addShift(
  Guitar2_tab_notes3_1,
  [ 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
  [-1, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
);




const Guitar2_Tab4 = new Stave(Guitar2_Tab3.width + Guitar2_Tab3.x, Guitar2_Tab3.y, nStaveWidth).setContext(ctx);
const Guitar2_Tab4 = new Stave(Guitar2_Tab3.width + Guitar2_Tab3.x, Guitar2_Tab3.y, nStaveWidth).setContext(ctx);
Guitar2_Tab4.draw();
Guitar2_Tab4.draw();
const Guitar2_tab_notes4_1 = [
  new VF.StaveNote({ keys: ["g/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "8" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "16" }),
  new VF.StaveNote({ keys: ["g/5"], duration: "16" }),
];
const Guitar2_tab_notes4_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"}),
];
const Guitar2_tab_St4_beam1_1 = new VF.Beam([Guitar2_tab_notes4_1[0], Guitar2_tab_notes4_1[1]]);
const Guitar2_tab_St4_beam1_2 = new VF.Beam([Guitar2_tab_notes4_1[2], Guitar2_tab_notes4_1[3], Guitar2_tab_notes4_1[4]]);
const Guitar2_tab_St4_beam1_3 = new VF.Beam([Guitar2_tab_notes4_1[5], Guitar2_tab_notes4_1[6], Guitar2_tab_notes4_1[7]]);
const Guitar2_tab_St4_beam1_4 = new VF.Beam([Guitar2_tab_notes4_1[8], Guitar2_tab_notes4_1[9], Guitar2_tab_notes4_1[10]]);
UniqueIds = getUniqueNoteheadIds(Guitar2_tab_notes4_1, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
var Guitar2_tab_St4_1Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St4_1Voice.setStrict(true);
Guitar2_tab_St4_1Voice.addTickables(Guitar2_tab_notes4_1);
var Guitar2_tab_St4_2Voice = new Vex.Flow.Voice({ num_beats: 4, beat_value: 4 });
Guitar2_tab_St4_2Voice.setStrict(true);
Guitar2_tab_St4_2Voice.addTickables(Guitar2_tab_notes4_2);
var formatterGuitar2_tab_St4_1 = new Vex.Flow.Formatter().joinVoices([Guitar2_tab_St4_2Voice, Guitar2_tab_St4_1Voice]);
formatterGuitar2_tab_St4_1.format([Guitar2_tab_St4_2Voice, Guitar2_tab_St4_1Voice], nStaveWidth - 10 - 10);
Guitar2_tab_St4_1Voice.draw(ctx, Guitar2_Tab4);
Guitar2_tab_St4_2Voice.draw(ctx, Guitar2_Tab4);
Guitar2_tab_St4_beam1_1.setContext(ctx).draw();
Guitar2_tab_St4_beam1_2.setContext(ctx).draw();
Guitar2_tab_St4_beam1_3.setContext(ctx).draw();
Guitar2_tab_St4_beam1_4.setContext(ctx).draw();
shiftGuitar2_Tab4 = addShift(
  Guitar2_tab_notes4_1,
  [0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  [0, 1, 2, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2,  2]
);




1,859行目: 722行目:
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_notes1_1 = [
  new StaveNote({ keys: ["f/4"], duration: "4", stem_direction: -1 }),
  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 });
Drum_St1_1Voice.setStrict(true);
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 Drum_St1_2 = new Stave(nHeadMargin + Base_Tab1.x, Base_Tab1.y + 120, 0).setContext(ctx);
1,878行目: 727行目:
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_notes1_2 = [
  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: "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.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 }),
  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 }),
  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 }),
  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 })
];
UniqueIds = getUniqueNoteheadIds(Drum_notes1_2, [0, 1, 3, 5, 6, 8]);
allUniqueIds = updateAllUniqueIds(UniqueIds);
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]]);
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);
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);
Drum_beam1_1.setContext(ctx).draw();
Drum_beam1_2_1.setContext(ctx).draw();
Drum_beam1_2_2.setContext(ctx).draw();
Drum_beam1_2_3.setContext(ctx).draw();
shiftDrum1 = addShift(
  Drum_notes1_2,
  [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 Drum_St2 = new Stave(Drum_St1.width + Drum_St1.x, Drum_St1.y, nStaveWidth).setContext(ctx);
const Drum_St2 = new Stave(Drum_St1.width + Drum_St1.x, Drum_St1.y, nStaveWidth).setContext(ctx);
1,982行目: 763行目:
AllConnector.draw();
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);
const Perc_St2 = new Stave(Perc_St1.width + Perc_St1.x, Perc_St1.y, nStaveWidth).setContext(ctx);

2024年4月11日 (木) 00:33時点における版

VexFlow 使い方に戻る。

概要

 

 

タブ譜 コードフォーム


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


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

</script>


 

 

VexFlow 使い方に戻る。