diff --git a/libmscore/rendermidi.cpp b/libmscore/rendermidi.cpp index f4894a5e7b9f5..69245d22b94bf 100644 --- a/libmscore/rendermidi.cpp +++ b/libmscore/rendermidi.cpp @@ -754,20 +754,46 @@ void renderTremolo(Chord *chord, QList & ell) seg2 = seg2->next(st); Chord* c2 = seg2 ? static_cast(seg2->element(track)) : 0; if (c2 && c2->type() == Element::Type::CHORD) { - int tnotes = qMin(notes, c2->notes().size()); + int notes2 = c2->notes().size(); + int tnotes = qMax(notes, notes2); int tticks = chord->actualTicks() * 2; // use twice the size int n = tticks / t; n /= 2; int l = 2000 * t / tticks; for (int k = 0; k < tnotes; ++k) { - NoteEventList* events = &ell[k]; - events->clear(); - int p1 = chord->notes()[k]->pitch(); - int p2 = c2->notes()[k]->pitch(); - int dpitch = p2 - p1; - for (int i = 0; i < n; ++i) { - events->append(NoteEvent(0, l * i * 2, l)); - events->append(NoteEvent(dpitch, l * i * 2 + l, l)); + NoteEventList* events; + if (k < notes) { + // first chord has note + events = &ell[k]; + events->clear(); + } + else { + // otherwise reuse note 0 + events = &ell[0]; + } + if (k < notes && k < notes2) { + // both chords have note + int p1 = chord->notes()[k]->pitch(); + int p2 = c2->notes()[k]->pitch(); + int dpitch = p2 - p1; + for (int i = 0; i < n; ++i) { + events->append(NoteEvent(0, l * i * 2, l)); + events->append(NoteEvent(dpitch, l * i * 2 + l, l)); + } + } + else if (k < notes) { + // only first chord has note + for (int i = 0; i < n; ++i) + events->append(NoteEvent(0, l * i * 2, l)); + } + else { + // only second chord has note + // reuse note 0 of first chord + int p1 = chord->notes()[0]->pitch(); + int p2 = c2->notes()[k]->pitch(); + int dpitch = p2-p1; + for (int i = 0; i < n; ++i) + events->append(NoteEvent(dpitch, l * i * 2 + l, l)); } } } diff --git a/mtest/libmscore/midi/testMultiNoteTremolo-ref.txt b/mtest/libmscore/midi/testMultiNoteTremolo-ref.txt new file mode 100644 index 0000000000000..850a6e7d434ac --- /dev/null +++ b/mtest/libmscore/midi/testMultiNoteTremolo-ref.txt @@ -0,0 +1,460 @@ +Tick = 0 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 0 Type = 3 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 55 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 60 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 115 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 120 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 175 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 180 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 235 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 240 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 295 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 300 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 355 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 360 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 415 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 420 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 475 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 480 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 480 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 535 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 540 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 595 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 600 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 655 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 660 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 715 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 720 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 775 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 780 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 835 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 840 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 895 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 900 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 955 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 960 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 960 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 960 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 1072 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 1072 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 1080 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 1192 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 1200 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 1200 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 1312 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 1312 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 1320 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 1432 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 1440 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 1440 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 1440 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 1552 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 1552 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 1560 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 1672 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 1680 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 1680 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 1792 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 1792 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 1800 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 1912 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 1920 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 1920 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 1920 Type = 3 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 2146 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 2146 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 2159 Type = 144 Pitch = 75 Velocity = 80 Channel = 0 +Tick = 2159 Type = 144 Pitch = 77 Velocity = 80 Channel = 0 +Tick = 2385 Type = 144 Pitch = 75 Velocity = 0 Channel = 0 +Tick = 2385 Type = 144 Pitch = 77 Velocity = 0 Channel = 0 +Tick = 2399 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 2399 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 2400 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 2625 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 2625 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 2639 Type = 144 Pitch = 75 Velocity = 80 Channel = 0 +Tick = 2639 Type = 144 Pitch = 77 Velocity = 80 Channel = 0 +Tick = 2865 Type = 144 Pitch = 75 Velocity = 0 Channel = 0 +Tick = 2865 Type = 144 Pitch = 77 Velocity = 0 Channel = 0 +Tick = 2879 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 2879 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 2880 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 3105 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 3105 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 3118 Type = 144 Pitch = 75 Velocity = 80 Channel = 0 +Tick = 3118 Type = 144 Pitch = 77 Velocity = 80 Channel = 0 +Tick = 3344 Type = 144 Pitch = 75 Velocity = 0 Channel = 0 +Tick = 3344 Type = 144 Pitch = 77 Velocity = 0 Channel = 0 +Tick = 3360 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 3360 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 3473 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 3480 Type = 144 Pitch = 70 Velocity = 80 Channel = 0 +Tick = 3480 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 3593 Type = 144 Pitch = 70 Velocity = 0 Channel = 0 +Tick = 3593 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 3600 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 3713 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 3720 Type = 144 Pitch = 70 Velocity = 80 Channel = 0 +Tick = 3720 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 3833 Type = 144 Pitch = 70 Velocity = 0 Channel = 0 +Tick = 3833 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 3840 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 3840 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 3840 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 3840 Type = 3 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 3866 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 3866 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 3866 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 3869 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 3895 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 3899 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 3899 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 3899 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 3925 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 3925 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 3925 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 3929 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 3955 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 3959 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 3959 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 3959 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 3985 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 3985 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 3985 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 3988 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4014 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4018 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4018 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4018 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4044 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4044 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4044 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4048 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4074 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4078 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4078 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4078 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4104 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4104 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4104 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4107 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4133 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4137 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4137 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4137 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4163 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4163 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4163 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4167 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4193 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4197 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4197 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4197 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4223 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4223 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4223 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4226 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4252 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4256 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4256 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4256 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4282 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4282 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4282 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4286 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4312 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4316 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4316 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4316 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4320 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 4342 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4342 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4342 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4345 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4371 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4375 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4375 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4375 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4401 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4401 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4401 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4405 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4431 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4435 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4435 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4435 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4461 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4461 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4461 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4464 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4490 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4494 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4494 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4494 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4520 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4520 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4520 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4524 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4550 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4554 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4554 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4554 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4580 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4580 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4580 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4584 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4610 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4613 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4613 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4613 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4639 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4639 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4639 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4643 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4669 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4673 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4673 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4673 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4699 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4699 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4699 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4703 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4729 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4732 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4732 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4732 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4758 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4758 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4758 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4762 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4788 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4792 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4792 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4792 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4800 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 4818 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4818 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4818 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4822 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4848 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4851 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4851 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4851 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4877 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4877 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4877 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4881 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4907 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4911 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4911 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4911 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4937 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4937 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4937 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 4941 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 4967 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 4970 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 4970 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 4970 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 4996 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 4996 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 4996 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5000 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5026 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5030 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5030 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5030 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5056 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5056 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5056 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5060 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5086 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5089 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5089 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5089 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5115 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5115 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5115 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5119 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5145 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5149 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5149 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5149 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5175 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5175 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5175 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5179 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5205 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5208 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5208 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5208 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5234 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5234 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5234 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5238 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5264 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5268 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5268 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5268 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5280 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 5294 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5294 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5294 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5298 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5324 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5328 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5328 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5328 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5354 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5354 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5354 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5357 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5383 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5387 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5387 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5387 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5413 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5413 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5413 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5417 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5443 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5447 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5447 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5447 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5473 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5473 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5473 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5476 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5502 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5506 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5506 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5506 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5532 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5532 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5532 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5536 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5562 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5566 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5566 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5566 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5592 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5592 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5592 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5595 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5621 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5625 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5625 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5625 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5651 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5651 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5651 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5655 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5681 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5685 Type = 144 Pitch = 63 Velocity = 80 Channel = 0 +Tick = 5685 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5685 Type = 144 Pitch = 72 Velocity = 80 Channel = 0 +Tick = 5711 Type = 144 Pitch = 63 Velocity = 0 Channel = 0 +Tick = 5711 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 5711 Type = 144 Pitch = 72 Velocity = 0 Channel = 0 +Tick = 5714 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5740 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5760 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 5760 Type = 144 Pitch = 77 Velocity = 80 Channel = 0 +Tick = 5760 Type = 144 Pitch = 70 Velocity = 80 Channel = 0 +Tick = 5760 Type = 3 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 5872 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 5872 Type = 144 Pitch = 77 Velocity = 0 Channel = 0 +Tick = 5872 Type = 144 Pitch = 70 Velocity = 0 Channel = 0 +Tick = 5880 Type = 144 Pitch = 82 Velocity = 80 Channel = 0 +Tick = 5880 Type = 144 Pitch = 62 Velocity = 80 Channel = 0 +Tick = 5880 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 5992 Type = 144 Pitch = 82 Velocity = 0 Channel = 0 +Tick = 5992 Type = 144 Pitch = 62 Velocity = 0 Channel = 0 +Tick = 5992 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 6000 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 6000 Type = 144 Pitch = 77 Velocity = 80 Channel = 0 +Tick = 6000 Type = 144 Pitch = 70 Velocity = 80 Channel = 0 +Tick = 6112 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 6112 Type = 144 Pitch = 77 Velocity = 0 Channel = 0 +Tick = 6112 Type = 144 Pitch = 70 Velocity = 0 Channel = 0 +Tick = 6120 Type = 144 Pitch = 82 Velocity = 80 Channel = 0 +Tick = 6120 Type = 144 Pitch = 62 Velocity = 80 Channel = 0 +Tick = 6120 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 6232 Type = 144 Pitch = 82 Velocity = 0 Channel = 0 +Tick = 6232 Type = 144 Pitch = 62 Velocity = 0 Channel = 0 +Tick = 6232 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 6240 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 6240 Type = 144 Pitch = 77 Velocity = 80 Channel = 0 +Tick = 6240 Type = 144 Pitch = 70 Velocity = 80 Channel = 0 +Tick = 6240 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 6352 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 6352 Type = 144 Pitch = 77 Velocity = 0 Channel = 0 +Tick = 6352 Type = 144 Pitch = 70 Velocity = 0 Channel = 0 +Tick = 6360 Type = 144 Pitch = 82 Velocity = 80 Channel = 0 +Tick = 6360 Type = 144 Pitch = 62 Velocity = 80 Channel = 0 +Tick = 6360 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 6472 Type = 144 Pitch = 82 Velocity = 0 Channel = 0 +Tick = 6472 Type = 144 Pitch = 62 Velocity = 0 Channel = 0 +Tick = 6472 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 6480 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 6480 Type = 144 Pitch = 77 Velocity = 80 Channel = 0 +Tick = 6480 Type = 144 Pitch = 70 Velocity = 80 Channel = 0 +Tick = 6592 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 6592 Type = 144 Pitch = 77 Velocity = 0 Channel = 0 +Tick = 6592 Type = 144 Pitch = 70 Velocity = 0 Channel = 0 +Tick = 6600 Type = 144 Pitch = 82 Velocity = 80 Channel = 0 +Tick = 6600 Type = 144 Pitch = 62 Velocity = 80 Channel = 0 +Tick = 6600 Type = 144 Pitch = 69 Velocity = 80 Channel = 0 +Tick = 6712 Type = 144 Pitch = 82 Velocity = 0 Channel = 0 +Tick = 6712 Type = 144 Pitch = 62 Velocity = 0 Channel = 0 +Tick = 6712 Type = 144 Pitch = 69 Velocity = 0 Channel = 0 +Tick = 6720 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 6720 Type = 144 Pitch = 79 Velocity = 80 Channel = 0 +Tick = 6720 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 6720 Type = 144 Pitch = 68 Velocity = 80 Channel = 0 +Tick = 6720 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 6832 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 6832 Type = 144 Pitch = 79 Velocity = 0 Channel = 0 +Tick = 6832 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 6832 Type = 144 Pitch = 68 Velocity = 0 Channel = 0 +Tick = 6840 Type = 144 Pitch = 84 Velocity = 80 Channel = 0 +Tick = 6840 Type = 144 Pitch = 58 Velocity = 80 Channel = 0 +Tick = 6952 Type = 144 Pitch = 84 Velocity = 0 Channel = 0 +Tick = 6952 Type = 144 Pitch = 58 Velocity = 0 Channel = 0 +Tick = 6960 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 6960 Type = 144 Pitch = 79 Velocity = 80 Channel = 0 +Tick = 6960 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 6960 Type = 144 Pitch = 68 Velocity = 80 Channel = 0 +Tick = 7072 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 7072 Type = 144 Pitch = 79 Velocity = 0 Channel = 0 +Tick = 7072 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 7072 Type = 144 Pitch = 68 Velocity = 0 Channel = 0 +Tick = 7080 Type = 144 Pitch = 84 Velocity = 80 Channel = 0 +Tick = 7080 Type = 144 Pitch = 58 Velocity = 80 Channel = 0 +Tick = 7192 Type = 144 Pitch = 84 Velocity = 0 Channel = 0 +Tick = 7192 Type = 144 Pitch = 58 Velocity = 0 Channel = 0 +Tick = 7200 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 7200 Type = 144 Pitch = 79 Velocity = 80 Channel = 0 +Tick = 7200 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 7200 Type = 144 Pitch = 68 Velocity = 80 Channel = 0 +Tick = 7200 Type = 4 Pitch = 0 Velocity = 0 Channel = 0 +Tick = 7312 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 7312 Type = 144 Pitch = 79 Velocity = 0 Channel = 0 +Tick = 7312 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 7312 Type = 144 Pitch = 68 Velocity = 0 Channel = 0 +Tick = 7320 Type = 144 Pitch = 84 Velocity = 80 Channel = 0 +Tick = 7320 Type = 144 Pitch = 58 Velocity = 80 Channel = 0 +Tick = 7432 Type = 144 Pitch = 84 Velocity = 0 Channel = 0 +Tick = 7432 Type = 144 Pitch = 58 Velocity = 0 Channel = 0 +Tick = 7440 Type = 144 Pitch = 74 Velocity = 80 Channel = 0 +Tick = 7440 Type = 144 Pitch = 79 Velocity = 80 Channel = 0 +Tick = 7440 Type = 144 Pitch = 65 Velocity = 80 Channel = 0 +Tick = 7440 Type = 144 Pitch = 68 Velocity = 80 Channel = 0 +Tick = 7552 Type = 144 Pitch = 74 Velocity = 0 Channel = 0 +Tick = 7552 Type = 144 Pitch = 79 Velocity = 0 Channel = 0 +Tick = 7552 Type = 144 Pitch = 65 Velocity = 0 Channel = 0 +Tick = 7552 Type = 144 Pitch = 68 Velocity = 0 Channel = 0 +Tick = 7560 Type = 144 Pitch = 84 Velocity = 80 Channel = 0 +Tick = 7560 Type = 144 Pitch = 58 Velocity = 80 Channel = 0 +Tick = 7672 Type = 144 Pitch = 84 Velocity = 0 Channel = 0 +Tick = 7672 Type = 144 Pitch = 58 Velocity = 0 Channel = 0 diff --git a/mtest/libmscore/midi/testMultiNoteTremolo.mscx b/mtest/libmscore/midi/testMultiNoteTremolo.mscx new file mode 100644 index 0000000000000..35f59a69b58d2 --- /dev/null +++ b/mtest/libmscore/midi/testMultiNoteTremolo.mscx @@ -0,0 +1,384 @@ + + + 2.1.0 + 3543170 + + + 0 + + + 480 + + 1 + 1 + 1 + 0 + + + + 2015-05-09 + + + + Linux + + + + + test MultiNote Tremolo + + + + + + + + + + + + stdNormal + + + Piano + + Piano + Pno. + Piano + 21 + 108 + 21 + 108 + keyboard.piano + F + + 100 + 95 + + + 100 + 33 + + + 100 + 50 + + + 100 + 67 + + + 100 + 100 + + + 120 + 67 + + + 120 + 100 + + + + Fluid + + + + + + 10 + + + test MultiNote Tremolo + + + + + 4 + 4 + 1 + + + half + + + 65 + 13 + + + c32 + + + + half + + + 72 + 14 + + + + half + + + 65 + 13 + + + 69 + 17 + + + c16 + + + + half + + + 74 + 16 + + + + + + 1 + half + + + 65 + 13 + + + 69 + 17 + + + c8 + + + + 1 + half + + + + flat + + 75 + 11 + + + 77 + 13 + + + + quarter + + + 65 + 13 + + + c16 + + + + quarter + + + + flat + + 70 + 12 + + + 74 + 16 + + + + + + whole + + + + flat + + 63 + 11 + + + 69 + 17 + + + 72 + 14 + + + c64 + + + + whole + + + 74 + 16 + + + + + + half + + + 74 + 16 + + + 77 + 13 + + + c16 + + + + half + + + + flat + + 82 + 12 + + + + half + + + 74 + 16 + + + 79 + 15 + + + c16 + + + + half + + + 84 + 14 + + + + end + 1 + + 5760 + + 1 + half + + + 1 + + flat + 1 + + 70 + 12 + + + c16 + 1 + + + + 1 + half + + + 1 + 62 + 16 + + + 1 + 69 + 17 + + + + 1 + half + + + 1 + 65 + 13 + + + 1 + + flat + 1 + + 68 + 10 + + + c16 + 1 + + + + 1 + half + + + 1 + + flat + 1 + + 58 + 12 + + + + + + diff --git a/mtest/libmscore/midi/tst_midi.cpp b/mtest/libmscore/midi/tst_midi.cpp index 533ef88bc61bc..015083a9ded60 100644 --- a/mtest/libmscore/midi/tst_midi.cpp +++ b/mtest/libmscore/midi/tst_midi.cpp @@ -93,6 +93,8 @@ void TestMidi::events_data() QTest::newRow("testGlissandoAcrossStaffs") << "testGlissandoAcrossStaffs"; // pedal QTest::newRow("testPedal") << "testPedal"; + // multi note tremolo + QTest::newRow("testMultiNoteTremolo") << "testMultiNoteTremolo"; } //---------------------------------------------------------