Lmms: Vertical piano in piano roll not responsive to mouse clicks.

Created on 28 Aug 2016  路  15Comments  路  Source: LMMS/lmms

I noticed that in piano roll you can't play melodies on vertical piano unless you play really slow. When clicking quickly then it just don't play some of the notes. I think vertical piano in piano roll should be as responsive as horizontal piano in intrument window. There you can play as fast as your fingers press.

bug

Most helpful comment

While reworking the mousePressEvent of the Piano Roll I randomly had a thought about this and managed to solve it.

What happens is mouseDoubleClickEvent is processed but doesn't call mousePressEvent in the event that the double click is outside the area it's watching for double clicks. According to the documentation the default implementation calls mousePressEvent. Adding in the check to forward to mousePressEvent I can get the responsiveness like you'd expect. I'll create a PR for this fix separate from what I was working on.

All 15 comments

@karmux please give on all bug reports your specifications (OS, lmms version with qt version)

LMMS: master
OS: Kubuntu 16.04
QT: 4.8.7

@karmux

When clicking quickly then it just don't play some of the notes.

Here you mean _clicking_ on the piano-roll-keys with left-mouse, right?
There is no difference when you press kb-keys -or?
The only difference i know of, is that if you _drag_ the mouse over the keys in plugin-piano ('horizontal piano') LMMS will only play those notes that are _actually touched_. If you do the same in piano-roll ('vertical') then all notes that the mouse _passes_ will play -Eg drag over only whites, but the black also plays. I cant recognize any difference in response, nomatter how fast i click on notes
win32 LMMS 1.1.90-g33d8c44

Easiest way to reproduce it is by clicking quickly 3 times on some random piano key. Plugin piano plays all 3 notes, roll piano plays only first two notes.

I Can not reproduce on Kubuntu 14.04 64bit Qt4 build. Sorry

Easiest way to reproduce it is by clicking quickly 3 times on some random piano key. Plugin piano plays all 3 notes, roll piano plays only first two notes.

The OP's correct. The mouse input behavior for live playback is much slower in the left-side piano roll's keyboard when compared to the instrument dialog. It seems to not allow very quick subsequent clicks as nicely as the instrument dialog does.

Grid in piano roll has no such issue, just piano keys on the left side of piano roll.
Happens only when using mouse. It plays all notes when using computer keyboard.

confirmed on osx 10.11.6 as well!

I see the same behavior on latest master (61dfed942189b270d377c8cf57e62bfc7026d851) on Gentoo 64 bit, Qt 4.8.6.

@karmux do you see the same behavior when you fast click within the note edit area?
If I fast click within the note edit area I get the same "filtered"/slower response as when I click on the piano roll.

Funny thing is I can trigger notes quicker using the piano roll by holding the mouse button and quickly dragging up/down/up/down. This will obviously also trigger other notes, but it seems to indicate that it's not the actual processing/rendering of the midi/sound that's causing this limitation.

I can confirm the same issue on win7 x64 with LMMS 1.1.3 Qt 4.8.7
While I have not the exact same issue as I can hear the instrument equally for all clicks that it registers is there definitely a noticeable delay when compared to the horizontal one.

As described above, the horizontal one registers as fast as you can click but the vertical one seems to havesome minimum delay before it registers the next. Kinda like a forced "wait until releas finished"?
Or it's "deaf" to new clicks while it's in the 'key up' animation, which would explain the consistency in the delay that it has for me?

As for reproducing it the grid, I get the same result when I spam clicks on a note, or create one but spam clicks in the same spot.
However, if I move the mouse left over the grid and spam clicks creating new ones all the time instead of clicking on the same old one THEN the response is faster.

I can confirm on Window 10 Pro x64 with LMMS 1.2.0-rc.3.

In the vertical piano in the Piano Roll, I noticed that the delay only happens when clicking on the same note (either on the keys or on the grid) repeatedly, not when clicking on multiple notes repeatedly.
So you can play melodies on the vertical piano as fast as you can click, but not the same note repeatedly.

@karmux Can you check if this is still happening with multiple notes or the same note?

I noticed that the delay only happens when clicking on the same note (either on the keys or on the grid) repeatedly, not when clicking on multiple notes repeatedly.

Sounds like it could be related to https://github.com/LMMS/lmms/issues/3919

In the vertical piano in the Piano Roll, I noticed that the delay only happens when clicking on the same note (either on the keys or on the grid) repeatedly, not when clicking on multiple notes repeatedly.
So you can play melodies on the vertical piano as fast as you can click, but not the same note repeatedly.

@karmux Can you check if this is still happening with multiple notes or the same note?

Exactly. I can't press same key twice quickly but multiple notes respond instantly.

While reworking the mousePressEvent of the Piano Roll I randomly had a thought about this and managed to solve it.

What happens is mouseDoubleClickEvent is processed but doesn't call mousePressEvent in the event that the double click is outside the area it's watching for double clicks. According to the documentation the default implementation calls mousePressEvent. Adding in the check to forward to mousePressEvent I can get the responsiveness like you'd expect. I'll create a PR for this fix separate from what I was working on.

Accidental Features! :tada:

Was this page helpful?
0 / 5 - 0 ratings

Related issues

DeRobyJ picture DeRobyJ  路  3Comments

Andrewer11 picture Andrewer11  路  3Comments

PaulBatchelor picture PaulBatchelor  路  4Comments

Sawuare picture Sawuare  路  3Comments

victor00101 picture victor00101  路  3Comments