@coderline/alphatab 1.4.0-alpha.1313 → 1.4.0-alpha.1322
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/alphaTab.core.min.mjs +1 -1
- package/dist/alphaTab.core.mjs +343 -294
- package/dist/alphaTab.d.ts +19 -11
- package/dist/alphaTab.js +343 -294
- package/dist/alphaTab.min.js +1 -1
- package/dist/alphaTab.mjs +1 -1
- package/dist/alphaTab.vite.js +152 -9
- package/dist/alphaTab.vite.mjs +153 -10
- package/dist/alphaTab.webpack.js +1 -1
- package/dist/alphaTab.webpack.mjs +1 -1
- package/dist/alphaTab.worker.mjs +1 -1
- package/dist/alphaTab.worklet.mjs +1 -1
- package/package.json +29 -27
package/dist/alphaTab.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* alphaTab v1.4.0-alpha.
|
|
2
|
+
* alphaTab v1.4.0-alpha.1322 (develop, build 1322)
|
|
3
3
|
*
|
|
4
4
|
* Copyright © 2025, Daniel Kuschny and Contributors, All rights reserved.
|
|
5
5
|
*
|
|
@@ -2143,6 +2143,7 @@
|
|
|
2143
2143
|
var MusicFontSymbol;
|
|
2144
2144
|
(function (MusicFontSymbol) {
|
|
2145
2145
|
MusicFontSymbol[MusicFontSymbol["None"] = -1] = "None";
|
|
2146
|
+
MusicFontSymbol[MusicFontSymbol["Space"] = 32] = "Space";
|
|
2146
2147
|
MusicFontSymbol[MusicFontSymbol["Brace"] = 57344] = "Brace";
|
|
2147
2148
|
MusicFontSymbol[MusicFontSymbol["BracketTop"] = 57347] = "BracketTop";
|
|
2148
2149
|
MusicFontSymbol[MusicFontSymbol["BracketBottom"] = 57348] = "BracketBottom";
|
|
@@ -2192,6 +2193,17 @@
|
|
|
2192
2193
|
MusicFontSymbol[MusicFontSymbol["NoteheadSlashWhiteHalf"] = 57603] = "NoteheadSlashWhiteHalf";
|
|
2193
2194
|
MusicFontSymbol[MusicFontSymbol["NoteQuarterUp"] = 57813] = "NoteQuarterUp";
|
|
2194
2195
|
MusicFontSymbol[MusicFontSymbol["NoteEighthUp"] = 57815] = "NoteEighthUp";
|
|
2196
|
+
MusicFontSymbol[MusicFontSymbol["TextBlackNoteLongStem"] = 57841] = "TextBlackNoteLongStem";
|
|
2197
|
+
MusicFontSymbol[MusicFontSymbol["TextBlackNoteFrac8thLongStem"] = 57843] = "TextBlackNoteFrac8thLongStem";
|
|
2198
|
+
MusicFontSymbol[MusicFontSymbol["TextBlackNoteFrac16thLongStem"] = 57845] = "TextBlackNoteFrac16thLongStem";
|
|
2199
|
+
MusicFontSymbol[MusicFontSymbol["TextBlackNoteFrac32ndLongStem"] = 57846] = "TextBlackNoteFrac32ndLongStem";
|
|
2200
|
+
MusicFontSymbol[MusicFontSymbol["TextCont8thBeamLongStem"] = 57848] = "TextCont8thBeamLongStem";
|
|
2201
|
+
MusicFontSymbol[MusicFontSymbol["TextCont16thBeamLongStem"] = 57850] = "TextCont16thBeamLongStem";
|
|
2202
|
+
MusicFontSymbol[MusicFontSymbol["TextCont32ndBeamLongStem"] = 57851] = "TextCont32ndBeamLongStem";
|
|
2203
|
+
MusicFontSymbol[MusicFontSymbol["TextAugmentationDot"] = 57852] = "TextAugmentationDot";
|
|
2204
|
+
MusicFontSymbol[MusicFontSymbol["TextTupletBracketStartLongStem"] = 57857] = "TextTupletBracketStartLongStem";
|
|
2205
|
+
MusicFontSymbol[MusicFontSymbol["TextTuplet3LongStem"] = 57858] = "TextTuplet3LongStem";
|
|
2206
|
+
MusicFontSymbol[MusicFontSymbol["TextTupletBracketEndLongStem"] = 57859] = "TextTupletBracketEndLongStem";
|
|
2195
2207
|
MusicFontSymbol[MusicFontSymbol["Tremolo3"] = 57890] = "Tremolo3";
|
|
2196
2208
|
MusicFontSymbol[MusicFontSymbol["Tremolo2"] = 57889] = "Tremolo2";
|
|
2197
2209
|
MusicFontSymbol[MusicFontSymbol["Tremolo1"] = 57888] = "Tremolo1";
|
|
@@ -23053,7 +23065,7 @@
|
|
|
23053
23065
|
const idx = partWordCache[ch][entryIdx][dimensionIdx];
|
|
23054
23066
|
if ((this._cascade[idx] & (1 << stage)) != 0) {
|
|
23055
23067
|
const book = this._books[idx][stage];
|
|
23056
|
-
if (book
|
|
23068
|
+
if (book) {
|
|
23057
23069
|
if (this.writeVectors(book, packet, buffer, ch, offset, this._partitionSize)) {
|
|
23058
23070
|
// bad packet... exit now and try to use what we already have
|
|
23059
23071
|
partitionIdx = partitionCount;
|
|
@@ -24677,16 +24689,16 @@
|
|
|
24677
24689
|
// EG times need to be converted from timecents to seconds.
|
|
24678
24690
|
// Pin very short EG segments. Timecents don't get to zero, and our EG is
|
|
24679
24691
|
// happier with zero values.
|
|
24680
|
-
this.delay = this.delay < -11950
|
|
24681
|
-
this.attack = this.attack < -11950
|
|
24682
|
-
this.release = this.release < -11950
|
|
24692
|
+
this.delay = this.delay < -11950 ? 0.0 : SynthHelper.timecents2Secs(this.delay);
|
|
24693
|
+
this.attack = this.attack < -11950 ? 0.0 : SynthHelper.timecents2Secs(this.attack);
|
|
24694
|
+
this.release = this.release < -11950 ? 0.0 : SynthHelper.timecents2Secs(this.release);
|
|
24683
24695
|
// If we have dynamic hold or decay times depending on key number we need
|
|
24684
24696
|
// to keep the values in timecents so we can calculate it during startNote
|
|
24685
24697
|
if (this.keynumToHold === 0) {
|
|
24686
|
-
this.hold = this.hold < -11950
|
|
24698
|
+
this.hold = this.hold < -11950 ? 0.0 : SynthHelper.timecents2Secs(this.hold);
|
|
24687
24699
|
}
|
|
24688
24700
|
if (this.keynumToDecay === 0) {
|
|
24689
|
-
this.decay = this.decay < -11950
|
|
24701
|
+
this.decay = this.decay < -11950 ? 0.0 : SynthHelper.timecents2Secs(this.decay);
|
|
24690
24702
|
}
|
|
24691
24703
|
if (this.sustain < 0.0) {
|
|
24692
24704
|
this.sustain = 0.0;
|
|
@@ -24875,19 +24887,19 @@
|
|
|
24875
24887
|
this.pitchKeyTrack = 100;
|
|
24876
24888
|
this.pitchKeyCenter = -1;
|
|
24877
24889
|
// SF2 defaults in timecents.
|
|
24878
|
-
this.ampEnv.delay = -
|
|
24879
|
-
this.ampEnv.attack = -
|
|
24880
|
-
this.ampEnv.hold = -
|
|
24881
|
-
this.ampEnv.decay = -
|
|
24882
|
-
this.ampEnv.release = -
|
|
24883
|
-
this.modEnv.delay = -
|
|
24884
|
-
this.modEnv.attack = -
|
|
24885
|
-
this.modEnv.hold = -
|
|
24886
|
-
this.modEnv.decay = -
|
|
24887
|
-
this.modEnv.release = -
|
|
24890
|
+
this.ampEnv.delay = -12e3;
|
|
24891
|
+
this.ampEnv.attack = -12e3;
|
|
24892
|
+
this.ampEnv.hold = -12e3;
|
|
24893
|
+
this.ampEnv.decay = -12e3;
|
|
24894
|
+
this.ampEnv.release = -12e3;
|
|
24895
|
+
this.modEnv.delay = -12e3;
|
|
24896
|
+
this.modEnv.attack = -12e3;
|
|
24897
|
+
this.modEnv.hold = -12e3;
|
|
24898
|
+
this.modEnv.decay = -12e3;
|
|
24899
|
+
this.modEnv.release = -12e3;
|
|
24888
24900
|
this.initialFilterFc = 13500;
|
|
24889
|
-
this.delayModLFO = -
|
|
24890
|
-
this.delayVibLFO = -
|
|
24901
|
+
this.delayModLFO = -12e3;
|
|
24902
|
+
this.delayVibLFO = -12e3;
|
|
24891
24903
|
}
|
|
24892
24904
|
operator(genOper, amount) {
|
|
24893
24905
|
switch (genOper) {
|
|
@@ -25131,7 +25143,7 @@
|
|
|
25131
25143
|
}
|
|
25132
25144
|
}
|
|
25133
25145
|
else {
|
|
25134
|
-
this.slope = -1
|
|
25146
|
+
this.slope = -1 / this.samplesUntilNextSegment;
|
|
25135
25147
|
this.samplesUntilNextSegment =
|
|
25136
25148
|
(this.parameters.decay * (1.0 - this.parameters.sustain) * outSampleRate) | 0;
|
|
25137
25149
|
this.segmentIsExponential = false;
|
|
@@ -25179,12 +25191,12 @@
|
|
|
25179
25191
|
if (this.parameters.keynumToHold > 0) {
|
|
25180
25192
|
this.parameters.hold += this.parameters.keynumToHold * (60.0 - midiNoteNumber);
|
|
25181
25193
|
this.parameters.hold =
|
|
25182
|
-
this.parameters.hold < -
|
|
25194
|
+
this.parameters.hold < -1e4 ? 0.0 : SynthHelper.timecents2Secs(this.parameters.hold);
|
|
25183
25195
|
}
|
|
25184
25196
|
if (this.parameters.keynumToDecay > 0) {
|
|
25185
25197
|
this.parameters.decay += this.parameters.keynumToDecay * (60.0 - midiNoteNumber);
|
|
25186
25198
|
this.parameters.decay =
|
|
25187
|
-
this.parameters.decay < -
|
|
25199
|
+
this.parameters.decay < -1e4 ? 0.0 : SynthHelper.timecents2Secs(this.parameters.decay);
|
|
25188
25200
|
}
|
|
25189
25201
|
this.midiVelocity = midiVelocity | 0;
|
|
25190
25202
|
this.isAmpEnv = isAmpEnv;
|
|
@@ -25232,9 +25244,9 @@
|
|
|
25232
25244
|
this.delta = -this.delta;
|
|
25233
25245
|
this.level = 2.0 - this.level;
|
|
25234
25246
|
}
|
|
25235
|
-
else if (this.level < -1
|
|
25247
|
+
else if (this.level < -1) {
|
|
25236
25248
|
this.delta = -this.delta;
|
|
25237
|
-
this.level = -2
|
|
25249
|
+
this.level = -2 - this.level;
|
|
25238
25250
|
}
|
|
25239
25251
|
}
|
|
25240
25252
|
}
|
|
@@ -26835,11 +26847,11 @@
|
|
|
26835
26847
|
zoneRegion.modEnv.envToSecs(false);
|
|
26836
26848
|
// LFO times need to be converted from timecents to seconds.
|
|
26837
26849
|
zoneRegion.delayModLFO =
|
|
26838
|
-
zoneRegion.delayModLFO < -11950
|
|
26850
|
+
zoneRegion.delayModLFO < -11950
|
|
26839
26851
|
? 0.0
|
|
26840
26852
|
: SynthHelper.timecents2Secs(zoneRegion.delayModLFO);
|
|
26841
26853
|
zoneRegion.delayVibLFO =
|
|
26842
|
-
zoneRegion.delayVibLFO < -11950
|
|
26854
|
+
zoneRegion.delayVibLFO < -11950
|
|
26843
26855
|
? 0.0
|
|
26844
26856
|
: SynthHelper.timecents2Secs(zoneRegion.delayVibLFO);
|
|
26845
26857
|
// Pin values to their ranges.
|
|
@@ -27976,6 +27988,11 @@
|
|
|
27976
27988
|
*/
|
|
27977
27989
|
class BeatBounds {
|
|
27978
27990
|
constructor() {
|
|
27991
|
+
/**
|
|
27992
|
+
* Gets or sets x-position where the timely center of the notes for this beat is.
|
|
27993
|
+
* This is where the cursor should be at the time when this beat is played.
|
|
27994
|
+
*/
|
|
27995
|
+
this.onNotesX = 0;
|
|
27979
27996
|
/**
|
|
27980
27997
|
* Gets or sets the individual note positions of this beat (if {@link CoreSettings.includeNoteBounds} was set to true).
|
|
27981
27998
|
*/
|
|
@@ -28229,6 +28246,7 @@
|
|
|
28229
28246
|
let bb = {};
|
|
28230
28247
|
bb.visualBounds = this.boundsToJson(beat.visualBounds);
|
|
28231
28248
|
bb.realBounds = this.boundsToJson(beat.realBounds);
|
|
28249
|
+
bb.onNotesX = beat.onNotesX;
|
|
28232
28250
|
let bbd = bb;
|
|
28233
28251
|
bbd.beatIndex = beat.beat.index;
|
|
28234
28252
|
bbd.voiceIndex = beat.beat.voice.index;
|
|
@@ -28283,6 +28301,7 @@
|
|
|
28283
28301
|
let bb = new BeatBounds();
|
|
28284
28302
|
bb.visualBounds = BoundsLookup.boundsFromJson(beat.visualBounds);
|
|
28285
28303
|
bb.realBounds = BoundsLookup.boundsFromJson(beat.realBounds);
|
|
28304
|
+
bb.onNotesX = beat.onNotesX;
|
|
28286
28305
|
let bd = beat;
|
|
28287
28306
|
bb.beat =
|
|
28288
28307
|
score.tracks[bd.trackIndex].staves[bd.staffIndex].bars[bd.barIndex].voices[bd.voiceIndex].beats[bd.beatIndex];
|
|
@@ -31855,39 +31874,31 @@
|
|
|
31855
31874
|
}
|
|
31856
31875
|
registerLayoutingInfo(layoutings) {
|
|
31857
31876
|
let preBeatStretch = this.preNotes.computedWidth + this.onNotes.centerX;
|
|
31858
|
-
if (this.beat.graceGroup && !this.beat.graceGroup.isComplete) {
|
|
31859
|
-
preBeatStretch += BeatContainerGlyph.GraceBeatPadding;
|
|
31860
|
-
}
|
|
31861
31877
|
let postBeatStretch = this.onNotes.computedWidth - this.onNotes.centerX;
|
|
31862
31878
|
// make space for flag
|
|
31863
31879
|
const helper = this.renderer.helpers.getBeamingHelperForBeat(this.beat);
|
|
31864
|
-
if (
|
|
31865
|
-
|
|
31866
|
-
|
|
31867
|
-
|
|
31880
|
+
if (this.beat.graceType !== GraceType.None) {
|
|
31881
|
+
// flagged grace
|
|
31882
|
+
if (this.beat.graceGroup.beats.length === 1) {
|
|
31883
|
+
postBeatStretch += FlagGlyph.FlagWidth * NoteHeadGlyph.GraceScale;
|
|
31884
|
+
}
|
|
31885
|
+
// grace with bars, some space for bar unless last
|
|
31886
|
+
else if (this.beat.graceIndex < this.beat.graceGroup.beats.length - 1) {
|
|
31887
|
+
postBeatStretch += 7;
|
|
31888
|
+
}
|
|
31889
|
+
else {
|
|
31890
|
+
postBeatStretch += BeatContainerGlyph.GraceBeatPadding;
|
|
31891
|
+
}
|
|
31892
|
+
}
|
|
31893
|
+
else if (helper && this.drawBeamHelperAsFlags(helper)) {
|
|
31894
|
+
postBeatStretch += FlagGlyph.FlagWidth;
|
|
31868
31895
|
}
|
|
31869
31896
|
for (const tie of this.ties) {
|
|
31870
31897
|
postBeatStretch += tie.width;
|
|
31871
31898
|
}
|
|
31872
|
-
// Add some further spacing to grace notes
|
|
31873
|
-
if (this.beat.graceType !== GraceType.None) {
|
|
31874
|
-
postBeatStretch += BeatContainerGlyph.GraceBeatPadding;
|
|
31875
|
-
}
|
|
31876
31899
|
layoutings.addBeatSpring(this.beat, preBeatStretch, postBeatStretch);
|
|
31877
|
-
// store sizes for special renderers like the EffectBarRenderer
|
|
31878
|
-
layoutings.setPreBeatSize(this.beat, this.preNotes.computedWidth);
|
|
31879
|
-
layoutings.setOnBeatSize(this.beat, this.onNotes.computedWidth);
|
|
31880
|
-
layoutings.setBeatCenterX(this.beat, this.onNotes.centerX);
|
|
31881
31900
|
}
|
|
31882
31901
|
applyLayoutingInfo(info) {
|
|
31883
|
-
let offset = info.getBeatCenterX(this.beat) - this.onNotes.centerX;
|
|
31884
|
-
if (this.beat.graceGroup && !this.beat.graceGroup.isComplete) {
|
|
31885
|
-
offset += BeatContainerGlyph.GraceBeatPadding;
|
|
31886
|
-
}
|
|
31887
|
-
this.preNotes.x = offset;
|
|
31888
|
-
this.preNotes.width = info.getPreBeatSize(this.beat);
|
|
31889
|
-
this.onNotes.width = info.getOnBeatSize(this.beat);
|
|
31890
|
-
this.onNotes.x = this.preNotes.x + this.preNotes.width;
|
|
31891
31902
|
this.onNotes.updateBeamingHelper();
|
|
31892
31903
|
this.updateWidth();
|
|
31893
31904
|
}
|
|
@@ -31949,11 +31960,6 @@
|
|
|
31949
31960
|
if (this.beat.voice.isEmpty) {
|
|
31950
31961
|
return;
|
|
31951
31962
|
}
|
|
31952
|
-
let isEmptyGlyph = this.preNotes.isEmpty && this.onNotes.isEmpty && this.ties.length === 0;
|
|
31953
|
-
if (isEmptyGlyph) {
|
|
31954
|
-
return;
|
|
31955
|
-
}
|
|
31956
|
-
canvas.beginGroup(BeatContainerGlyph.getGroupId(this.beat));
|
|
31957
31963
|
// var c = canvas.color;
|
|
31958
31964
|
// var ta = canvas.textAlign;
|
|
31959
31965
|
// canvas.color = new Color(255, 0, 0);
|
|
@@ -31972,21 +31978,25 @@
|
|
|
31972
31978
|
// canvas.font = new Font("Arial", 10);
|
|
31973
31979
|
// canvas.color = new Color(0, 0, 0);
|
|
31974
31980
|
// canvas.fillText(this.beat.voice.index + ":" + this.beat.index, cx + this.x, cy + this.y + 15 * this.beat.voice.index);
|
|
31981
|
+
// const c = canvas.color;
|
|
31975
31982
|
// if (this.beat.voice.index === 0) {
|
|
31983
|
+
// canvas.color = new Color(0, 0, 200, 100);
|
|
31984
|
+
// canvas.strokeRect(cx + this.x, cy + this.y, this.width, 10);
|
|
31976
31985
|
// canvas.color = new Color(200, 0, 0, 100);
|
|
31977
|
-
// canvas.strokeRect(cx + this.x
|
|
31986
|
+
// canvas.strokeRect(cx + this.x + this.preNotes.x, cy + this.y + 10, this.preNotes.width, 10);
|
|
31987
|
+
// canvas.color = new Color(0, 200, 0, 100);
|
|
31988
|
+
// canvas.strokeRect(cx + this.x + this.onNotes.x, cy + this.y + 10, this.onNotes.width, 10);
|
|
31989
|
+
// canvas.color = new Color(0, 200, 200, 100);
|
|
31990
|
+
// canvas.strokeRect(cx + this.x + this.onNotes.x + this.onNotes.centerX, cy, 1, this.renderer.height);
|
|
31978
31991
|
// }
|
|
31992
|
+
// canvas.color = c;
|
|
31993
|
+
let isEmptyGlyph = this.preNotes.isEmpty && this.onNotes.isEmpty && this.ties.length === 0;
|
|
31994
|
+
if (isEmptyGlyph) {
|
|
31995
|
+
return;
|
|
31996
|
+
}
|
|
31997
|
+
canvas.beginGroup(BeatContainerGlyph.getGroupId(this.beat));
|
|
31979
31998
|
this.preNotes.paint(cx + this.x, cy + this.y, canvas);
|
|
31980
|
-
// if (this.beat.voice.index === 0) {
|
|
31981
|
-
// canvas.color = new Color(200, 0, 0, 100);
|
|
31982
|
-
// canvas.strokeRect(cx + this.x + this.preNotes.x, cy + this.y + this.preNotes.y, this.preNotes.width, 10);
|
|
31983
|
-
// }
|
|
31984
31999
|
this.onNotes.paint(cx + this.x, cy + this.y, canvas);
|
|
31985
|
-
// if (this.beat.voice.index === 0) {
|
|
31986
|
-
// canvas.color = new Color(0, 200, 0, 100);
|
|
31987
|
-
// canvas.strokeRect(cx + this.x + this.onNotes.x, cy + this.y + this.onNotes.y - 10, this.onNotes.width, 10);
|
|
31988
|
-
// }
|
|
31989
|
-
// paint the ties relative to the whole staff,
|
|
31990
32000
|
// reason: we have possibly multiple staves involved and need to calculate the correct positions.
|
|
31991
32001
|
let staffX = cx - this.voiceContainer.x - this.renderer.x;
|
|
31992
32002
|
let staffY = cy - this.voiceContainer.y - this.renderer.y;
|
|
@@ -32000,19 +32010,55 @@
|
|
|
32000
32010
|
buildBoundingsLookup(barBounds, cx, cy, isEmptyBar) {
|
|
32001
32011
|
let beatBoundings = new BeatBounds();
|
|
32002
32012
|
beatBoundings.beat = this.beat;
|
|
32003
|
-
|
|
32004
|
-
|
|
32005
|
-
beatBoundings.visualBounds.y = barBounds.visualBounds.y;
|
|
32006
|
-
beatBoundings.visualBounds.w = this.onNotes.width;
|
|
32007
|
-
beatBoundings.visualBounds.h = barBounds.visualBounds.h;
|
|
32008
|
-
beatBoundings.realBounds = new Bounds();
|
|
32009
|
-
beatBoundings.realBounds.x = cx + this.x;
|
|
32010
|
-
beatBoundings.realBounds.y = barBounds.realBounds.y;
|
|
32011
|
-
beatBoundings.realBounds.w = this.width;
|
|
32012
|
-
beatBoundings.realBounds.h = barBounds.realBounds.h;
|
|
32013
|
-
if (isEmptyBar) {
|
|
32013
|
+
if (this.beat.isEmpty) {
|
|
32014
|
+
beatBoundings.visualBounds = new Bounds();
|
|
32014
32015
|
beatBoundings.visualBounds.x = cx + this.x;
|
|
32015
|
-
beatBoundings.
|
|
32016
|
+
beatBoundings.visualBounds.y = barBounds.visualBounds.y;
|
|
32017
|
+
beatBoundings.visualBounds.w = this.width;
|
|
32018
|
+
beatBoundings.visualBounds.h = barBounds.visualBounds.h;
|
|
32019
|
+
beatBoundings.realBounds = new Bounds();
|
|
32020
|
+
beatBoundings.realBounds.x = cx + this.x;
|
|
32021
|
+
beatBoundings.realBounds.y = barBounds.realBounds.y;
|
|
32022
|
+
beatBoundings.realBounds.w = this.width;
|
|
32023
|
+
beatBoundings.realBounds.h = barBounds.realBounds.h;
|
|
32024
|
+
beatBoundings.onNotesX = cx + this.x + this.onNotes.centerX;
|
|
32025
|
+
}
|
|
32026
|
+
else {
|
|
32027
|
+
beatBoundings.visualBounds = new Bounds();
|
|
32028
|
+
beatBoundings.visualBounds.x = cx + this.x;
|
|
32029
|
+
if (!this.preNotes.isEmpty) {
|
|
32030
|
+
beatBoundings.visualBounds.x = cx + this.x + this.preNotes.x;
|
|
32031
|
+
}
|
|
32032
|
+
else if (!this.onNotes.isEmpty) {
|
|
32033
|
+
beatBoundings.visualBounds.x = cx + this.x + this.onNotes.x;
|
|
32034
|
+
}
|
|
32035
|
+
else {
|
|
32036
|
+
beatBoundings.visualBounds.x = cx + this.x;
|
|
32037
|
+
}
|
|
32038
|
+
let visualEndX = 0;
|
|
32039
|
+
if (!this.onNotes.isEmpty) {
|
|
32040
|
+
visualEndX = cx + this.x + this.onNotes.x + this.onNotes.width;
|
|
32041
|
+
}
|
|
32042
|
+
else if (!this.preNotes.isEmpty) {
|
|
32043
|
+
visualEndX = cx + this.x + this.preNotes.x + this.preNotes.width;
|
|
32044
|
+
}
|
|
32045
|
+
else {
|
|
32046
|
+
visualEndX = cx + this.x + this.width;
|
|
32047
|
+
}
|
|
32048
|
+
beatBoundings.visualBounds.w = visualEndX - beatBoundings.visualBounds.x;
|
|
32049
|
+
const helper = this.renderer.helpers.getBeamingHelperForBeat(this.beat);
|
|
32050
|
+
if ((helper && this.drawBeamHelperAsFlags(helper)) || this.beat.graceType !== GraceType.None) {
|
|
32051
|
+
beatBoundings.visualBounds.w +=
|
|
32052
|
+
FlagGlyph.FlagWidth * (this.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1);
|
|
32053
|
+
}
|
|
32054
|
+
beatBoundings.visualBounds.y = barBounds.visualBounds.y;
|
|
32055
|
+
beatBoundings.visualBounds.h = barBounds.visualBounds.h;
|
|
32056
|
+
beatBoundings.realBounds = new Bounds();
|
|
32057
|
+
beatBoundings.realBounds.x = cx + this.x;
|
|
32058
|
+
beatBoundings.realBounds.y = barBounds.realBounds.y;
|
|
32059
|
+
beatBoundings.realBounds.w = this.width;
|
|
32060
|
+
beatBoundings.realBounds.h = barBounds.realBounds.h;
|
|
32061
|
+
beatBoundings.onNotesX = cx + this.x + this.onNotes.x + this.onNotes.centerX;
|
|
32016
32062
|
}
|
|
32017
32063
|
barBounds.addBeat(beatBoundings);
|
|
32018
32064
|
if (this.renderer.settings.core.includeNoteBounds) {
|
|
@@ -32916,7 +32962,7 @@
|
|
|
32916
32962
|
if (this.settings.player.enableAnimatedBeatCursor) {
|
|
32917
32963
|
beatCursor.stopAnimation();
|
|
32918
32964
|
}
|
|
32919
|
-
beatCursor.setBounds(beatBoundings.
|
|
32965
|
+
beatCursor.setBounds(beatBoundings.onNotesX, barBounds.y, 1, barBounds.h);
|
|
32920
32966
|
}
|
|
32921
32967
|
// if playing, animate the cursor to the next beat
|
|
32922
32968
|
if (this.settings.player.enableElementHighlighting) {
|
|
@@ -32940,7 +32986,7 @@
|
|
|
32940
32986
|
let nextBeatBoundings = cache.findBeat(nextBeat);
|
|
32941
32987
|
if (nextBeatBoundings &&
|
|
32942
32988
|
nextBeatBoundings.barBounds.masterBarBounds.staffSystemBounds === barBoundings.staffSystemBounds) {
|
|
32943
|
-
nextBeatX = nextBeatBoundings.
|
|
32989
|
+
nextBeatX = nextBeatBoundings.onNotesX;
|
|
32944
32990
|
}
|
|
32945
32991
|
}
|
|
32946
32992
|
// we need to put the transition to an own animation frame
|
|
@@ -36193,7 +36239,6 @@
|
|
|
36193
36239
|
}
|
|
36194
36240
|
}
|
|
36195
36241
|
registerLayoutingInfo(info) {
|
|
36196
|
-
info.updateVoiceSize(this.width);
|
|
36197
36242
|
let beatGlyphs = this.beatGlyphs;
|
|
36198
36243
|
for (let b of beatGlyphs) {
|
|
36199
36244
|
b.registerLayoutingInfo(info);
|
|
@@ -36237,8 +36282,8 @@
|
|
|
36237
36282
|
|
|
36238
36283
|
class BeatLines {
|
|
36239
36284
|
constructor() {
|
|
36240
|
-
this.maxLine = -
|
|
36241
|
-
this.minLine = -
|
|
36285
|
+
this.maxLine = -1e3;
|
|
36286
|
+
this.minLine = -1e3;
|
|
36242
36287
|
}
|
|
36243
36288
|
}
|
|
36244
36289
|
/**
|
|
@@ -36265,11 +36310,11 @@
|
|
|
36265
36310
|
/**
|
|
36266
36311
|
* The line of the highest note added to this helper.
|
|
36267
36312
|
*/
|
|
36268
|
-
this.maxLine = -
|
|
36313
|
+
this.maxLine = -1e3;
|
|
36269
36314
|
/**
|
|
36270
36315
|
* The line of the lowest note added to this helper.
|
|
36271
36316
|
*/
|
|
36272
|
-
this.minLine = -
|
|
36317
|
+
this.minLine = -1e3;
|
|
36273
36318
|
this._barRenderer = barRenderer;
|
|
36274
36319
|
this._bar = barRenderer.bar;
|
|
36275
36320
|
}
|
|
@@ -36475,11 +36520,11 @@
|
|
|
36475
36520
|
else {
|
|
36476
36521
|
this._appliedScoreLinesByValue.set(noteValue, line);
|
|
36477
36522
|
}
|
|
36478
|
-
if (this.minLine === -
|
|
36523
|
+
if (this.minLine === -1e3 || this.minLine < line) {
|
|
36479
36524
|
this.minLine = line;
|
|
36480
36525
|
this.minLineBeat = relatedBeat;
|
|
36481
36526
|
}
|
|
36482
|
-
if (this.maxLine === -
|
|
36527
|
+
if (this.maxLine === -1e3 || this.maxLine > line) {
|
|
36483
36528
|
this.maxLine = line;
|
|
36484
36529
|
this.maxLineBeat = relatedBeat;
|
|
36485
36530
|
}
|
|
@@ -36497,10 +36542,10 @@
|
|
|
36497
36542
|
lines = new BeatLines();
|
|
36498
36543
|
this._beatLines.set(relatedBeat.id, lines);
|
|
36499
36544
|
}
|
|
36500
|
-
if (lines.minLine === -
|
|
36545
|
+
if (lines.minLine === -1e3 || line < lines.minLine) {
|
|
36501
36546
|
lines.minLine = line;
|
|
36502
36547
|
}
|
|
36503
|
-
if (lines.minLine === -
|
|
36548
|
+
if (lines.minLine === -1e3 || line > lines.maxLine) {
|
|
36504
36549
|
lines.maxLine = line;
|
|
36505
36550
|
}
|
|
36506
36551
|
}
|
|
@@ -37023,14 +37068,14 @@
|
|
|
37023
37068
|
}
|
|
37024
37069
|
class ReservedLayoutArea {
|
|
37025
37070
|
constructor(beat) {
|
|
37026
|
-
this.topY = -
|
|
37027
|
-
this.bottomY = -
|
|
37071
|
+
this.topY = -1e3;
|
|
37072
|
+
this.bottomY = -1e3;
|
|
37028
37073
|
this.slots = [];
|
|
37029
37074
|
this.beat = beat;
|
|
37030
37075
|
}
|
|
37031
37076
|
addSlot(topY, bottomY) {
|
|
37032
37077
|
this.slots.push(new ReservedLayoutAreaSlot(topY, bottomY));
|
|
37033
|
-
if (this.topY === -
|
|
37078
|
+
if (this.topY === -1e3) {
|
|
37034
37079
|
this.topY = topY;
|
|
37035
37080
|
this.bottomY = bottomY;
|
|
37036
37081
|
}
|
|
@@ -37052,10 +37097,10 @@
|
|
|
37052
37097
|
this.restDurationsByDisplayTime = new Map();
|
|
37053
37098
|
}
|
|
37054
37099
|
getBeatMinMaxY() {
|
|
37055
|
-
let minY = -
|
|
37056
|
-
let maxY = -
|
|
37100
|
+
let minY = -1e3;
|
|
37101
|
+
let maxY = -1e3;
|
|
37057
37102
|
for (const v of this.reservedLayoutAreasByDisplayTime.values()) {
|
|
37058
|
-
if (minY === -
|
|
37103
|
+
if (minY === -1e3) {
|
|
37059
37104
|
minY = v.topY;
|
|
37060
37105
|
maxY = v.bottomY;
|
|
37061
37106
|
}
|
|
@@ -37068,7 +37113,7 @@
|
|
|
37068
37113
|
}
|
|
37069
37114
|
}
|
|
37070
37115
|
}
|
|
37071
|
-
if (minY === -
|
|
37116
|
+
if (minY === -1e3) {
|
|
37072
37117
|
return [0, 0];
|
|
37073
37118
|
}
|
|
37074
37119
|
return [minY, maxY];
|
|
@@ -37733,12 +37778,8 @@
|
|
|
37733
37778
|
* an internal version number that increments whenever a change was made.
|
|
37734
37779
|
*/
|
|
37735
37780
|
this.version = 0;
|
|
37736
|
-
this.preBeatSizes = new Map();
|
|
37737
|
-
this.onBeatSizes = new Map();
|
|
37738
|
-
this.onBeatCenterX = new Map();
|
|
37739
37781
|
this.preBeatSize = 0;
|
|
37740
37782
|
this.postBeatSize = 0;
|
|
37741
|
-
this.voiceSize = 0;
|
|
37742
37783
|
this.minStretchForce = 0;
|
|
37743
37784
|
this.totalSpringConstant = 0;
|
|
37744
37785
|
this.incompleteGraceRods = new Map();
|
|
@@ -37746,51 +37787,37 @@
|
|
|
37746
37787
|
this.springs = new Map();
|
|
37747
37788
|
this.height = 0;
|
|
37748
37789
|
}
|
|
37749
|
-
|
|
37750
|
-
if (
|
|
37751
|
-
this.
|
|
37752
|
-
this.version++;
|
|
37753
|
-
}
|
|
37754
|
-
}
|
|
37755
|
-
setPreBeatSize(beat, size) {
|
|
37756
|
-
if (!this.preBeatSizes.has(beat.id) || this.preBeatSizes.get(beat.id) < size) {
|
|
37757
|
-
this.preBeatSizes.set(beat.id, size);
|
|
37758
|
-
this.version++;
|
|
37790
|
+
updateMinStretchForce(force) {
|
|
37791
|
+
if (this.minStretchForce < force) {
|
|
37792
|
+
this.minStretchForce = force;
|
|
37759
37793
|
}
|
|
37760
37794
|
}
|
|
37761
37795
|
getPreBeatSize(beat) {
|
|
37762
|
-
if (
|
|
37763
|
-
|
|
37764
|
-
|
|
37765
|
-
|
|
37766
|
-
}
|
|
37767
|
-
setOnBeatSize(beat, size) {
|
|
37768
|
-
if (!this.onBeatSizes.has(beat.id) || this.onBeatSizes.get(beat.id) < size) {
|
|
37769
|
-
this.onBeatSizes.set(beat.id, size);
|
|
37770
|
-
this.version++;
|
|
37771
|
-
}
|
|
37772
|
-
}
|
|
37773
|
-
getOnBeatSize(beat) {
|
|
37774
|
-
if (this.onBeatSizes.has(beat.id)) {
|
|
37775
|
-
return this.onBeatSizes.get(beat.id);
|
|
37796
|
+
if (beat.graceType !== GraceType.None) {
|
|
37797
|
+
const groupId = beat.graceGroup.id;
|
|
37798
|
+
const graceRod = this.allGraceRods.get(groupId)[beat.graceIndex];
|
|
37799
|
+
return graceRod.preBeatWidth;
|
|
37776
37800
|
}
|
|
37777
|
-
|
|
37778
|
-
|
|
37779
|
-
|
|
37780
|
-
|
|
37781
|
-
|
|
37801
|
+
else {
|
|
37802
|
+
const start = beat.absoluteDisplayStart;
|
|
37803
|
+
if (!this.springs.has(start)) {
|
|
37804
|
+
return 0;
|
|
37805
|
+
}
|
|
37806
|
+
return this.springs.get(start).preBeatWidth;
|
|
37782
37807
|
}
|
|
37783
|
-
return 0;
|
|
37784
37808
|
}
|
|
37785
|
-
|
|
37786
|
-
if (
|
|
37787
|
-
|
|
37788
|
-
this.
|
|
37809
|
+
getPostBeatSize(beat) {
|
|
37810
|
+
if (beat.graceType !== GraceType.None) {
|
|
37811
|
+
const groupId = beat.graceGroup.id;
|
|
37812
|
+
const graceRod = this.allGraceRods.get(groupId)[beat.graceIndex];
|
|
37813
|
+
return graceRod.postSpringWidth;
|
|
37789
37814
|
}
|
|
37790
|
-
|
|
37791
|
-
|
|
37792
|
-
|
|
37793
|
-
|
|
37815
|
+
else {
|
|
37816
|
+
const start = beat.absoluteDisplayStart;
|
|
37817
|
+
if (!this.springs.has(start)) {
|
|
37818
|
+
return 0;
|
|
37819
|
+
}
|
|
37820
|
+
return this.springs.get(start).postSpringWidth;
|
|
37794
37821
|
}
|
|
37795
37822
|
}
|
|
37796
37823
|
addSpring(start, duration, graceBeatWidth, preBeatWidth, postSpringSize) {
|
|
@@ -37848,7 +37875,7 @@
|
|
|
37848
37875
|
let start = beat.absoluteDisplayStart;
|
|
37849
37876
|
if (beat.graceType !== GraceType.None) {
|
|
37850
37877
|
// For grace beats we just remember the the sizes required for them
|
|
37851
|
-
// these sizes are then considered when the target beat is added.
|
|
37878
|
+
// these sizes are then considered when the target beat is added.
|
|
37852
37879
|
const groupId = beat.graceGroup.id;
|
|
37853
37880
|
if (!this.allGraceRods.has(groupId)) {
|
|
37854
37881
|
this.allGraceRods.set(groupId, new Array(beat.graceGroup.beats.length));
|
|
@@ -37887,23 +37914,15 @@
|
|
|
37887
37914
|
}
|
|
37888
37915
|
}
|
|
37889
37916
|
finish() {
|
|
37890
|
-
for (const [
|
|
37891
|
-
|
|
37892
|
-
|
|
37893
|
-
|
|
37894
|
-
|
|
37895
|
-
|
|
37896
|
-
|
|
37897
|
-
|
|
37898
|
-
|
|
37899
|
-
else {
|
|
37900
|
-
for (let i = s.length - 1; i >= 0; i--) {
|
|
37901
|
-
// for grace beats we store the offset
|
|
37902
|
-
// in the 'graceBeatWidth' for later use during applying
|
|
37903
|
-
// beat positions
|
|
37904
|
-
s[i].graceBeatWidth = offset;
|
|
37905
|
-
offset -= (s[i].preBeatWidth + s[i].postSpringWidth);
|
|
37906
|
-
}
|
|
37917
|
+
for (const [_, s] of this.allGraceRods) {
|
|
37918
|
+
// for grace beats we store the offset
|
|
37919
|
+
// in the 'graceBeatWidth' for later use during applying
|
|
37920
|
+
// beat positions
|
|
37921
|
+
let x = 0;
|
|
37922
|
+
for (const sp of s) {
|
|
37923
|
+
x += sp.preBeatWidth;
|
|
37924
|
+
sp.graceBeatWidth = x;
|
|
37925
|
+
x += sp.postSpringWidth;
|
|
37907
37926
|
}
|
|
37908
37927
|
}
|
|
37909
37928
|
this._incompleteGraceRodsWidth = 0;
|
|
@@ -37959,7 +37978,7 @@
|
|
|
37959
37978
|
let nextSpring = sortedSprings[i + 1];
|
|
37960
37979
|
requiredSpace = currentSpring.postSpringWidth + nextSpring.preSpringWidth;
|
|
37961
37980
|
}
|
|
37962
|
-
// for the first spring we need to ensure we take the initial
|
|
37981
|
+
// for the first spring we need to ensure we take the initial
|
|
37963
37982
|
// pre-spring width into account
|
|
37964
37983
|
if (i === 0) {
|
|
37965
37984
|
requiredSpace += currentSpring.preSpringWidth;
|
|
@@ -38649,12 +38668,12 @@
|
|
|
38649
38668
|
let x = this.x + _firstStaffInBrackets.x;
|
|
38650
38669
|
let staffSystemBounds = new StaffSystemBounds();
|
|
38651
38670
|
staffSystemBounds.visualBounds = new Bounds();
|
|
38652
|
-
staffSystemBounds.visualBounds.x = cx;
|
|
38671
|
+
staffSystemBounds.visualBounds.x = cx + this.x;
|
|
38653
38672
|
staffSystemBounds.visualBounds.y = cy + this.y;
|
|
38654
38673
|
staffSystemBounds.visualBounds.w = this.width;
|
|
38655
38674
|
staffSystemBounds.visualBounds.h = this.height - this.topPadding - this.bottomPadding;
|
|
38656
38675
|
staffSystemBounds.realBounds = new Bounds();
|
|
38657
|
-
staffSystemBounds.realBounds.x = cx;
|
|
38676
|
+
staffSystemBounds.realBounds.x = cx + this.x;
|
|
38658
38677
|
staffSystemBounds.realBounds.y = cy + this.y;
|
|
38659
38678
|
staffSystemBounds.realBounds.w = this.width;
|
|
38660
38679
|
staffSystemBounds.realBounds.h = this.height;
|
|
@@ -39699,29 +39718,28 @@
|
|
|
39699
39718
|
}
|
|
39700
39719
|
alignGlyph(sizing, beat) {
|
|
39701
39720
|
let g = this._effectGlyphs[beat.voice.index].get(beat.index);
|
|
39702
|
-
let pos;
|
|
39703
39721
|
let container = this.renderer.getBeatContainer(beat);
|
|
39722
|
+
// container is aligned with the "onTimeX" position of the beat in effect renders
|
|
39704
39723
|
switch (sizing) {
|
|
39705
39724
|
case EffectBarGlyphSizing.SinglePreBeat:
|
|
39706
|
-
|
|
39707
|
-
|
|
39708
|
-
g.
|
|
39725
|
+
// shift to the start using the biggest pre-beat size of the respective beat
|
|
39726
|
+
const offsetToBegin = this.renderer.layoutingInfo.getPreBeatSize(beat);
|
|
39727
|
+
g.x = this.renderer.beatGlyphsStart + container.x - offsetToBegin;
|
|
39709
39728
|
break;
|
|
39710
39729
|
case EffectBarGlyphSizing.SingleOnBeat:
|
|
39711
39730
|
case EffectBarGlyphSizing.GroupedOnBeat:
|
|
39712
|
-
|
|
39713
|
-
g.x = this.renderer.beatGlyphsStart + pos.x + container.x;
|
|
39714
|
-
g.width = pos.width;
|
|
39731
|
+
g.x = this.renderer.beatGlyphsStart + container.x;
|
|
39715
39732
|
break;
|
|
39716
39733
|
case EffectBarGlyphSizing.SingleOnBeatToEnd:
|
|
39717
39734
|
case EffectBarGlyphSizing.GroupedOnBeatToEnd:
|
|
39718
|
-
|
|
39719
|
-
g.x = this.renderer.beatGlyphsStart + pos.x + container.x;
|
|
39735
|
+
g.x = this.renderer.beatGlyphsStart + container.x;
|
|
39720
39736
|
if (container.beat.isLastOfVoice) {
|
|
39721
39737
|
g.width = this.renderer.width - g.x;
|
|
39722
39738
|
}
|
|
39723
39739
|
else {
|
|
39724
|
-
|
|
39740
|
+
// shift to the start using the biggest post-beat size of the respective beat
|
|
39741
|
+
const offsetToEnd = this.renderer.layoutingInfo.getPostBeatSize(beat);
|
|
39742
|
+
g.width = offsetToEnd;
|
|
39725
39743
|
}
|
|
39726
39744
|
break;
|
|
39727
39745
|
case EffectBarGlyphSizing.FullBar:
|
|
@@ -41235,116 +41253,134 @@
|
|
|
41235
41253
|
cx += this.x;
|
|
41236
41254
|
cy += this.y;
|
|
41237
41255
|
let noteY = cy + this.height * NoteHeadGlyph.GraceScale;
|
|
41256
|
+
let tupletY = noteY + 8;
|
|
41238
41257
|
canvas.font = this.renderer.resources.effectFont;
|
|
41239
41258
|
canvas.fillText('(', cx, cy + this.height * 0.3);
|
|
41240
41259
|
let leftNoteX = cx + 10;
|
|
41241
41260
|
let rightNoteX = cx + 40;
|
|
41261
|
+
let leftNoteSymbols = [];
|
|
41262
|
+
let rightAugmentationSymbols = [];
|
|
41263
|
+
let rightNoteSymbols = [];
|
|
41264
|
+
let rightTupletSymbols = [];
|
|
41242
41265
|
switch (this._tripletFeel) {
|
|
41243
41266
|
case TripletFeel.NoTripletFeel:
|
|
41244
|
-
|
|
41245
|
-
|
|
41267
|
+
leftNoteSymbols = [
|
|
41268
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41269
|
+
MusicFontSymbol.TextCont8thBeamLongStem,
|
|
41270
|
+
MusicFontSymbol.TextBlackNoteFrac8thLongStem
|
|
41271
|
+
];
|
|
41272
|
+
rightNoteSymbols = [
|
|
41273
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41274
|
+
MusicFontSymbol.TextCont8thBeamLongStem,
|
|
41275
|
+
MusicFontSymbol.TextBlackNoteFrac8thLongStem
|
|
41276
|
+
];
|
|
41246
41277
|
break;
|
|
41247
41278
|
case TripletFeel.Triplet8th:
|
|
41248
|
-
|
|
41249
|
-
|
|
41250
|
-
|
|
41251
|
-
|
|
41279
|
+
leftNoteSymbols = [
|
|
41280
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41281
|
+
MusicFontSymbol.TextCont8thBeamLongStem,
|
|
41282
|
+
MusicFontSymbol.TextBlackNoteFrac8thLongStem
|
|
41283
|
+
];
|
|
41284
|
+
rightNoteSymbols = [
|
|
41285
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41286
|
+
MusicFontSymbol.Space,
|
|
41287
|
+
MusicFontSymbol.NoteEighthUp
|
|
41288
|
+
];
|
|
41289
|
+
rightTupletSymbols = [
|
|
41290
|
+
MusicFontSymbol.TextTupletBracketStartLongStem,
|
|
41291
|
+
MusicFontSymbol.TextTuplet3LongStem,
|
|
41292
|
+
MusicFontSymbol.TextTupletBracketEndLongStem
|
|
41293
|
+
];
|
|
41252
41294
|
break;
|
|
41253
41295
|
case TripletFeel.Triplet16th:
|
|
41254
|
-
|
|
41255
|
-
|
|
41256
|
-
|
|
41257
|
-
|
|
41258
|
-
|
|
41259
|
-
|
|
41260
|
-
|
|
41261
|
-
|
|
41262
|
-
|
|
41296
|
+
leftNoteSymbols = [
|
|
41297
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41298
|
+
MusicFontSymbol.TextCont8thBeamLongStem,
|
|
41299
|
+
MusicFontSymbol.TextBlackNoteFrac8thLongStem
|
|
41300
|
+
];
|
|
41301
|
+
rightNoteSymbols = [
|
|
41302
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41303
|
+
MusicFontSymbol.TextCont8thBeamLongStem,
|
|
41304
|
+
MusicFontSymbol.TextBlackNoteFrac16thLongStem
|
|
41305
|
+
];
|
|
41306
|
+
rightTupletSymbols = [
|
|
41307
|
+
MusicFontSymbol.TextTupletBracketStartLongStem,
|
|
41308
|
+
MusicFontSymbol.TextTuplet3LongStem,
|
|
41309
|
+
MusicFontSymbol.TextTupletBracketEndLongStem
|
|
41310
|
+
];
|
|
41263
41311
|
break;
|
|
41264
41312
|
case TripletFeel.Dotted8th:
|
|
41265
|
-
|
|
41266
|
-
|
|
41267
|
-
|
|
41268
|
-
|
|
41269
|
-
]
|
|
41270
|
-
|
|
41313
|
+
leftNoteSymbols = [
|
|
41314
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41315
|
+
MusicFontSymbol.TextCont8thBeamLongStem,
|
|
41316
|
+
MusicFontSymbol.TextBlackNoteFrac8thLongStem
|
|
41317
|
+
];
|
|
41318
|
+
rightAugmentationSymbols = [
|
|
41319
|
+
MusicFontSymbol.TextAugmentationDot,
|
|
41320
|
+
];
|
|
41321
|
+
rightNoteSymbols = [
|
|
41322
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41323
|
+
MusicFontSymbol.TextCont8thBeamLongStem,
|
|
41324
|
+
MusicFontSymbol.TextBlackNoteFrac16thLongStem
|
|
41325
|
+
];
|
|
41271
41326
|
break;
|
|
41272
41327
|
case TripletFeel.Dotted16th:
|
|
41273
|
-
|
|
41274
|
-
|
|
41275
|
-
|
|
41276
|
-
|
|
41277
|
-
|
|
41278
|
-
|
|
41279
|
-
|
|
41280
|
-
|
|
41281
|
-
|
|
41328
|
+
leftNoteSymbols = [
|
|
41329
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41330
|
+
MusicFontSymbol.TextCont16thBeamLongStem,
|
|
41331
|
+
MusicFontSymbol.TextBlackNoteFrac16thLongStem
|
|
41332
|
+
];
|
|
41333
|
+
rightAugmentationSymbols = [
|
|
41334
|
+
MusicFontSymbol.TextAugmentationDot,
|
|
41335
|
+
];
|
|
41336
|
+
rightNoteSymbols = [
|
|
41337
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41338
|
+
MusicFontSymbol.TextCont16thBeamLongStem,
|
|
41339
|
+
MusicFontSymbol.TextBlackNoteFrac32ndLongStem
|
|
41340
|
+
];
|
|
41282
41341
|
canvas.fillCircle(rightNoteX + 9, noteY, 1);
|
|
41283
41342
|
break;
|
|
41284
41343
|
case TripletFeel.Scottish8th:
|
|
41285
|
-
|
|
41286
|
-
|
|
41287
|
-
|
|
41288
|
-
|
|
41289
|
-
]
|
|
41290
|
-
|
|
41344
|
+
leftNoteSymbols = [
|
|
41345
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41346
|
+
MusicFontSymbol.TextCont8thBeamLongStem,
|
|
41347
|
+
MusicFontSymbol.TextBlackNoteFrac8thLongStem
|
|
41348
|
+
];
|
|
41349
|
+
rightNoteSymbols = [
|
|
41350
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41351
|
+
MusicFontSymbol.TextCont16thBeamLongStem,
|
|
41352
|
+
MusicFontSymbol.TextBlackNoteFrac8thLongStem,
|
|
41353
|
+
MusicFontSymbol.TextAugmentationDot,
|
|
41354
|
+
];
|
|
41291
41355
|
break;
|
|
41292
41356
|
case TripletFeel.Scottish16th:
|
|
41293
|
-
|
|
41294
|
-
|
|
41295
|
-
|
|
41296
|
-
|
|
41297
|
-
|
|
41298
|
-
|
|
41299
|
-
|
|
41300
|
-
|
|
41301
|
-
|
|
41302
|
-
|
|
41303
|
-
|
|
41304
|
-
|
|
41305
|
-
canvas.fillText('=', cx + 30, cy + 5);
|
|
41306
|
-
canvas.fillText(')', cx + 65, cy + this.height * 0.3);
|
|
41307
|
-
}
|
|
41308
|
-
renderBarNote(cx, noteY, noteScale, canvas, bars) {
|
|
41309
|
-
canvas.fillMusicFontSymbol(cx, noteY, noteScale, MusicFontSymbol.NoteQuarterUp, false);
|
|
41310
|
-
let partialBarWidth = (TripletFeelGlyph.NoteSeparation / 2);
|
|
41311
|
-
for (let i = 0; i < bars.length; i++) {
|
|
41312
|
-
switch (bars[i]) {
|
|
41313
|
-
case TripletFeelGlyphBarType.Full:
|
|
41314
|
-
canvas.fillRect(cx + 4, noteY - TripletFeelGlyph.NoteHeight + TripletFeelGlyph.BarSeparation * i, TripletFeelGlyph.NoteSeparation, TripletFeelGlyph.BarHeight);
|
|
41315
|
-
break;
|
|
41316
|
-
case TripletFeelGlyphBarType.PartialLeft:
|
|
41317
|
-
canvas.fillRect(cx + 4, noteY - TripletFeelGlyph.NoteHeight + TripletFeelGlyph.BarSeparation * i, partialBarWidth, TripletFeelGlyph.BarHeight);
|
|
41318
|
-
break;
|
|
41319
|
-
case TripletFeelGlyphBarType.PartialRight:
|
|
41320
|
-
canvas.fillRect(cx + 4 + partialBarWidth, noteY - TripletFeelGlyph.NoteHeight + TripletFeelGlyph.BarSeparation * i, partialBarWidth, TripletFeelGlyph.BarHeight);
|
|
41321
|
-
break;
|
|
41322
|
-
}
|
|
41357
|
+
leftNoteSymbols = [
|
|
41358
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41359
|
+
MusicFontSymbol.TextCont16thBeamLongStem,
|
|
41360
|
+
MusicFontSymbol.TextBlackNoteFrac16thLongStem
|
|
41361
|
+
];
|
|
41362
|
+
rightNoteSymbols = [
|
|
41363
|
+
MusicFontSymbol.TextBlackNoteLongStem,
|
|
41364
|
+
MusicFontSymbol.TextCont32ndBeamLongStem,
|
|
41365
|
+
MusicFontSymbol.TextBlackNoteFrac16thLongStem,
|
|
41366
|
+
MusicFontSymbol.TextAugmentationDot,
|
|
41367
|
+
];
|
|
41368
|
+
break;
|
|
41323
41369
|
}
|
|
41324
|
-
canvas.
|
|
41325
|
-
|
|
41326
|
-
|
|
41327
|
-
|
|
41328
|
-
|
|
41329
|
-
|
|
41330
|
-
|
|
41331
|
-
|
|
41332
|
-
|
|
41333
|
-
canvas.
|
|
41334
|
-
canvas.lineTo(cx + 5, cy);
|
|
41335
|
-
canvas.moveTo(rightX + 5, cy + 3);
|
|
41336
|
-
canvas.lineTo(rightX + 5, cy);
|
|
41337
|
-
canvas.lineTo(rightX, cy);
|
|
41338
|
-
canvas.stroke();
|
|
41339
|
-
canvas.fillText('3', cx + 7, cy - 10);
|
|
41340
|
-
canvas.font = font;
|
|
41370
|
+
canvas.fillMusicFontSymbols(leftNoteX, noteY, TripletFeelGlyph.NoteScale, leftNoteSymbols, false);
|
|
41371
|
+
canvas.fillText('=', cx + 32, cy + 5);
|
|
41372
|
+
canvas.fillMusicFontSymbols(rightNoteX, noteY, TripletFeelGlyph.NoteScale, rightNoteSymbols, false);
|
|
41373
|
+
if (rightAugmentationSymbols.length > 0) {
|
|
41374
|
+
canvas.fillMusicFontSymbols(rightNoteX + 7, noteY, TripletFeelGlyph.NoteScale, rightAugmentationSymbols, false);
|
|
41375
|
+
}
|
|
41376
|
+
if (rightTupletSymbols.length > 0) {
|
|
41377
|
+
canvas.fillMusicFontSymbols(rightNoteX, tupletY, TripletFeelGlyph.TupletScale, rightTupletSymbols, false);
|
|
41378
|
+
}
|
|
41379
|
+
canvas.fillText(')', cx + 65, cy + this.height * 0.3);
|
|
41341
41380
|
}
|
|
41342
41381
|
}
|
|
41343
|
-
TripletFeelGlyph.NoteScale = 0.
|
|
41344
|
-
TripletFeelGlyph.
|
|
41345
|
-
TripletFeelGlyph.NoteSeparation = 12;
|
|
41346
|
-
TripletFeelGlyph.BarHeight = 2;
|
|
41347
|
-
TripletFeelGlyph.BarSeparation = 3;
|
|
41382
|
+
TripletFeelGlyph.NoteScale = 0.5;
|
|
41383
|
+
TripletFeelGlyph.TupletScale = 0.7;
|
|
41348
41384
|
|
|
41349
41385
|
class TripletFeelEffectInfo extends EffectBarRendererInfo {
|
|
41350
41386
|
get notationElement() {
|
|
@@ -42983,7 +43019,7 @@
|
|
|
42983
43019
|
class AccidentalColumnInfo {
|
|
42984
43020
|
constructor() {
|
|
42985
43021
|
this.x = 0;
|
|
42986
|
-
this.y = -
|
|
43022
|
+
this.y = -3e3;
|
|
42987
43023
|
this.width = 0;
|
|
42988
43024
|
}
|
|
42989
43025
|
}
|
|
@@ -44295,7 +44331,7 @@
|
|
|
44295
44331
|
class ScoreBeatGlyph extends BeatOnNoteGlyphBase {
|
|
44296
44332
|
constructor() {
|
|
44297
44333
|
super(...arguments);
|
|
44298
|
-
this._collisionOffset = -
|
|
44334
|
+
this._collisionOffset = -1e3;
|
|
44299
44335
|
this._skipPaint = false;
|
|
44300
44336
|
this.slash = null;
|
|
44301
44337
|
this.noteHeads = null;
|
|
@@ -44318,7 +44354,7 @@
|
|
|
44318
44354
|
}
|
|
44319
44355
|
else if (this.restGlyph) {
|
|
44320
44356
|
this.restGlyph.updateBeamingHelper(this.container.x + this.x);
|
|
44321
|
-
if (this.renderer.bar.isMultiVoice && this._collisionOffset === -
|
|
44357
|
+
if (this.renderer.bar.isMultiVoice && this._collisionOffset === -1e3) {
|
|
44322
44358
|
this._collisionOffset = this.renderer.helpers.collisionHelper.applyRestCollisionOffset(this.container.beat, this.restGlyph.y, this.renderer.getScoreHeight(1));
|
|
44323
44359
|
this.y += this._collisionOffset;
|
|
44324
44360
|
const existingRests = this.renderer.helpers.collisionHelper.restDurationsByDisplayTime;
|
|
@@ -44704,32 +44740,30 @@
|
|
|
44704
44740
|
}
|
|
44705
44741
|
if (!preBends.isEmpty) {
|
|
44706
44742
|
this.addGlyph(preBends);
|
|
44707
|
-
this.addGlyph(new SpacingGlyph(0, 0, 4 *
|
|
44708
|
-
(this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44743
|
+
this.addGlyph(new SpacingGlyph(0, 0, 4 * (this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44709
44744
|
}
|
|
44710
44745
|
if (this.container.beat.brushType !== BrushType.None) {
|
|
44711
44746
|
this.addGlyph(new ScoreBrushGlyph(this.container.beat));
|
|
44712
44747
|
this.addGlyph(new SpacingGlyph(0, 0, 4));
|
|
44713
44748
|
}
|
|
44714
44749
|
if (!fingering.isEmpty) {
|
|
44715
|
-
this.
|
|
44716
|
-
(this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44750
|
+
if (!this.isEmpty) {
|
|
44751
|
+
this.addGlyph(new SpacingGlyph(0, 0, 2 * (this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44752
|
+
}
|
|
44717
44753
|
this.addGlyph(fingering);
|
|
44718
|
-
this.addGlyph(new SpacingGlyph(0, 0, 2 *
|
|
44719
|
-
(this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44754
|
+
this.addGlyph(new SpacingGlyph(0, 0, 2 * (this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44720
44755
|
}
|
|
44721
44756
|
if (!ghost.isEmpty) {
|
|
44722
44757
|
this.addGlyph(ghost);
|
|
44723
|
-
this.addGlyph(new SpacingGlyph(0, 0, 4 *
|
|
44724
|
-
(this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44758
|
+
this.addGlyph(new SpacingGlyph(0, 0, 4 * (this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44725
44759
|
}
|
|
44726
44760
|
if (!accidentals.isEmpty) {
|
|
44727
44761
|
this.accidentals = accidentals;
|
|
44728
|
-
this.
|
|
44729
|
-
(this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44762
|
+
if (!this.isEmpty) {
|
|
44763
|
+
this.addGlyph(new SpacingGlyph(0, 0, 2 * (this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44764
|
+
}
|
|
44730
44765
|
this.addGlyph(accidentals);
|
|
44731
|
-
this.addGlyph(new SpacingGlyph(0, 0, 2 *
|
|
44732
|
-
(this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44766
|
+
this.addGlyph(new SpacingGlyph(0, 0, 2 * (this.container.beat.graceType !== GraceType.None ? NoteHeadGlyph.GraceScale : 1)));
|
|
44733
44767
|
}
|
|
44734
44768
|
}
|
|
44735
44769
|
super.doLayout();
|
|
@@ -45259,7 +45293,7 @@
|
|
|
45259
45293
|
drawSlideOut(cx, cy, canvas) {
|
|
45260
45294
|
let startNoteRenderer = this.renderer;
|
|
45261
45295
|
let sizeX = 12;
|
|
45262
|
-
let
|
|
45296
|
+
let offsetX = 2;
|
|
45263
45297
|
let offsetY = 2;
|
|
45264
45298
|
let startX = 0;
|
|
45265
45299
|
let startY = 0;
|
|
@@ -45272,7 +45306,8 @@
|
|
|
45272
45306
|
startX =
|
|
45273
45307
|
cx +
|
|
45274
45308
|
startNoteRenderer.x +
|
|
45275
|
-
startNoteRenderer.getBeatX(this._startNote.beat, BeatXPosition.PostNotes)
|
|
45309
|
+
startNoteRenderer.getBeatX(this._startNote.beat, BeatXPosition.PostNotes) +
|
|
45310
|
+
offsetX;
|
|
45276
45311
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
45277
45312
|
if (this._startNote.slideTarget) {
|
|
45278
45313
|
let endNoteRenderer = this.renderer.scoreRenderer.layout.getRendererForBar(this.renderer.staff.staveId, this._startNote.slideTarget.beat.voice.bar);
|
|
@@ -45285,7 +45320,7 @@
|
|
|
45285
45320
|
cx +
|
|
45286
45321
|
endNoteRenderer.x +
|
|
45287
45322
|
endNoteRenderer.getBeatX(this._startNote.slideTarget.beat, BeatXPosition.PreNotes) -
|
|
45288
|
-
|
|
45323
|
+
offsetX;
|
|
45289
45324
|
endY = cy + endNoteRenderer.y + endNoteRenderer.getNoteY(this._startNote.slideTarget, NoteYPosition.Center);
|
|
45290
45325
|
}
|
|
45291
45326
|
if (this._startNote.slideTarget.realValue > this._startNote.realValue) {
|
|
@@ -45303,19 +45338,19 @@
|
|
|
45303
45338
|
}
|
|
45304
45339
|
break;
|
|
45305
45340
|
case SlideOutType.OutUp:
|
|
45306
|
-
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right);
|
|
45341
|
+
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right) + offsetX;
|
|
45307
45342
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
45308
45343
|
endX = startX + sizeX;
|
|
45309
45344
|
endY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Top);
|
|
45310
45345
|
break;
|
|
45311
45346
|
case SlideOutType.OutDown:
|
|
45312
|
-
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right);
|
|
45347
|
+
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right) + offsetX;
|
|
45313
45348
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
45314
45349
|
endX = startX + sizeX;
|
|
45315
45350
|
endY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Bottom);
|
|
45316
45351
|
break;
|
|
45317
45352
|
case SlideOutType.PickSlideUp:
|
|
45318
|
-
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right);
|
|
45353
|
+
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right) + offsetX * 2;
|
|
45319
45354
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
45320
45355
|
endY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Top);
|
|
45321
45356
|
endX = cx + startNoteRenderer.x + startNoteRenderer.width;
|
|
@@ -45329,7 +45364,7 @@
|
|
|
45329
45364
|
waves = true;
|
|
45330
45365
|
break;
|
|
45331
45366
|
case SlideOutType.PickSlideDown:
|
|
45332
|
-
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right);
|
|
45367
|
+
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right) + offsetX * 2;
|
|
45333
45368
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
45334
45369
|
endY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Bottom);
|
|
45335
45370
|
endX = cx + startNoteRenderer.x + startNoteRenderer.width;
|
|
@@ -46868,15 +46903,16 @@
|
|
|
46868
46903
|
let startY = 0;
|
|
46869
46904
|
let endX = 0;
|
|
46870
46905
|
let endY = 0;
|
|
46906
|
+
const offsetX = 2;
|
|
46871
46907
|
switch (this._inType) {
|
|
46872
46908
|
case SlideInType.IntoFromBelow:
|
|
46873
|
-
endX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Left);
|
|
46909
|
+
endX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Left) - offsetX;
|
|
46874
46910
|
endY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
46875
46911
|
startX = endX - sizeX;
|
|
46876
46912
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center) + sizeY;
|
|
46877
46913
|
break;
|
|
46878
46914
|
case SlideInType.IntoFromAbove:
|
|
46879
|
-
endX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Left);
|
|
46915
|
+
endX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Left) - offsetX;
|
|
46880
46916
|
endY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
46881
46917
|
startX = endX - sizeX;
|
|
46882
46918
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center) - sizeY;
|
|
@@ -46895,14 +46931,15 @@
|
|
|
46895
46931
|
let endX = 0;
|
|
46896
46932
|
let endY = 0;
|
|
46897
46933
|
let waves = false;
|
|
46898
|
-
const
|
|
46934
|
+
const offsetX = 2;
|
|
46899
46935
|
switch (this._outType) {
|
|
46900
46936
|
case SlideOutType.Shift:
|
|
46901
46937
|
case SlideOutType.Legato:
|
|
46902
46938
|
startX =
|
|
46903
46939
|
cx +
|
|
46904
46940
|
startNoteRenderer.x +
|
|
46905
|
-
startNoteRenderer.getBeatX(this._startNote.beat, BeatXPosition.PostNotes)
|
|
46941
|
+
startNoteRenderer.getBeatX(this._startNote.beat, BeatXPosition.PostNotes)
|
|
46942
|
+
+ offsetX;
|
|
46906
46943
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
46907
46944
|
if (this._startNote.slideTarget) {
|
|
46908
46945
|
let endNoteRenderer = this.renderer.scoreRenderer.layout.getRendererForBar(this.renderer.staff.staveId, this._startNote.slideTarget.beat.voice.bar);
|
|
@@ -46915,7 +46952,7 @@
|
|
|
46915
46952
|
cx +
|
|
46916
46953
|
endNoteRenderer.x +
|
|
46917
46954
|
endNoteRenderer.getBeatX(this._startNote.slideTarget.beat, BeatXPosition.OnNotes)
|
|
46918
|
-
-
|
|
46955
|
+
- offsetX;
|
|
46919
46956
|
endY =
|
|
46920
46957
|
cy +
|
|
46921
46958
|
endNoteRenderer.y +
|
|
@@ -46936,31 +46973,43 @@
|
|
|
46936
46973
|
}
|
|
46937
46974
|
break;
|
|
46938
46975
|
case SlideOutType.OutUp:
|
|
46939
|
-
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right);
|
|
46976
|
+
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right) + offsetX;
|
|
46940
46977
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
46941
|
-
endX = startX + sizeX
|
|
46978
|
+
endX = startX + sizeX;
|
|
46942
46979
|
endY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center) - sizeY;
|
|
46943
46980
|
break;
|
|
46944
46981
|
case SlideOutType.OutDown:
|
|
46945
|
-
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right);
|
|
46982
|
+
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right) + offsetX;
|
|
46946
46983
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
46947
|
-
endX = startX + sizeX
|
|
46984
|
+
endX = startX + sizeX;
|
|
46948
46985
|
endY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center) + sizeY;
|
|
46949
46986
|
break;
|
|
46950
46987
|
case SlideOutType.PickSlideDown:
|
|
46951
|
-
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right);
|
|
46988
|
+
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right) + offsetX * 2;
|
|
46952
46989
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
46953
|
-
endX =
|
|
46954
|
-
cx + startNoteRenderer.x + startNoteRenderer.getBeatX(this._startNote.beat, BeatXPosition.EndBeat);
|
|
46990
|
+
endX = cx + startNoteRenderer.x + startNoteRenderer.width;
|
|
46955
46991
|
endY = startY + sizeY * 3;
|
|
46992
|
+
if (this._startNote.beat.nextBeat &&
|
|
46993
|
+
this._startNote.beat.nextBeat.voice === this._startNote.beat.voice) {
|
|
46994
|
+
endX =
|
|
46995
|
+
cx +
|
|
46996
|
+
startNoteRenderer.x +
|
|
46997
|
+
startNoteRenderer.getBeatX(this._startNote.beat.nextBeat, BeatXPosition.PreNotes);
|
|
46998
|
+
}
|
|
46956
46999
|
waves = true;
|
|
46957
47000
|
break;
|
|
46958
47001
|
case SlideOutType.PickSlideUp:
|
|
46959
|
-
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right);
|
|
47002
|
+
startX = cx + startNoteRenderer.x + startNoteRenderer.getNoteX(this._startNote, NoteXPosition.Right) + offsetX * 2;
|
|
46960
47003
|
startY = cy + startNoteRenderer.y + startNoteRenderer.getNoteY(this._startNote, NoteYPosition.Center);
|
|
46961
|
-
endX =
|
|
46962
|
-
cx + startNoteRenderer.x + startNoteRenderer.getBeatX(this._startNote.beat, BeatXPosition.EndBeat);
|
|
47004
|
+
endX = cx + startNoteRenderer.x + startNoteRenderer.width;
|
|
46963
47005
|
endY = startY - sizeY * 3;
|
|
47006
|
+
if (this._startNote.beat.nextBeat &&
|
|
47007
|
+
this._startNote.beat.nextBeat.voice === this._startNote.beat.voice) {
|
|
47008
|
+
endX =
|
|
47009
|
+
cx +
|
|
47010
|
+
startNoteRenderer.x +
|
|
47011
|
+
startNoteRenderer.getBeatX(this._startNote.beat.nextBeat, BeatXPosition.PreNotes);
|
|
47012
|
+
}
|
|
46964
47013
|
waves = true;
|
|
46965
47014
|
break;
|
|
46966
47015
|
default:
|
|
@@ -52078,8 +52127,8 @@
|
|
|
52078
52127
|
// </auto-generated>
|
|
52079
52128
|
class VersionInfo {
|
|
52080
52129
|
}
|
|
52081
|
-
VersionInfo.version = '1.4.0-alpha.
|
|
52082
|
-
VersionInfo.date = '2025-02-
|
|
52130
|
+
VersionInfo.version = '1.4.0-alpha.1322';
|
|
52131
|
+
VersionInfo.date = '2025-02-26T02:15:01.756Z';
|
|
52083
52132
|
|
|
52084
52133
|
var index$4 = /*#__PURE__*/Object.freeze({
|
|
52085
52134
|
__proto__: null,
|