-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PianoKeyboard Remapping #2505
base: master
Are you sure you want to change the base?
PianoKeyboard Remapping #2505
Conversation
@feedbackex what will it take to add Apple support? |
Just will fill PianoKeyboard::getAppleKey(int key) function and will remove comments from |
But now apple work in classic mode whether combobox selection. |
@feedbackex do you need help with determining this code? We'd prefer it to be included with the feature. |
I guess, It's too hard to reduce math formule like Linux or Windows. So that I must write case for each key. |
I have filled getAppleKey function and add apple support. Note: I don't have Mac so I can not check it. |
include/PianoRoll.h
Outdated
@@ -157,6 +157,8 @@ protected slots: | |||
void updatePosition(const MidiTime & t ); | |||
void updatePositionAccompany(const MidiTime & t ); | |||
|
|||
void octaveChanged(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indentation here is inconsistent with the rest of this file.
@feedbackex Thanks kindly for the Apple additions. If we cannot get sufficient testing for Apple, we can merge as-is and patch if problems occur. I've noted a few minor formatting issues. Once they are done, I would like you to squash your commits and then we will be ready for a merge. Project maintainers (you know who you are)... I'd like a bit of feedback about merging this prior to 1.2 or not. |
6ae6371
to
ded39c7
Compare
Hi @tresf , I have fixed formatting issue and squash to one commit. I don't understand last line your comment; What did you mean, exactly ? |
Thanks, top notch.
This means I would like feedback from other C++ developers that help manage the codebase prior to merging. |
I selected scale: DUR. But all keys play note C. In different Rows different Cs (C3,C4,C5) but only C. If I choose an other note only this note will be played. Perhaps I have done something wrong? |
I had some time today so I tried this out for a bit. First impressions: this is inspiring! Being able to press random keys on the keyboard without worrying about clashing notes feels wonderful. So, I would say this is a welcome feature, but there's still work to be done in how it's presented to the user, and some things that affect existing features. The latter might be worth a discussion of its own, but for now, I'm writing it all here (in a very unstructured way) before I forget it all. First of all, the boxes for the root key and octave are small and therefore kind of tricky to use. Why are there two choices for The selection of different scales is tied to the existing combo box in the piano roll. Now it has two functions with inconsistent behaviour:
I'd say 1. is better for the user; less work involved to do a simple task. Now the scale setting affects the whole project, yet it can only be edited in the piano roll. There is a lot of wasted potential in the main tool bar, maybe move it all there? Or a new specific tab for project properties in the side bar? |
src/gui/editors/PianoRoll.cpp
Outdated
@@ -3872,6 +3908,8 @@ void PianoRoll::updateSemiToneMarkerMenu() | |||
|
|||
emit semiToneMarkerMenuScaleSetEnabled( ! scale.isEmpty() ); | |||
emit semiToneMarkerMenuChordSetEnabled( ! chord.isEmpty() ); | |||
|
|||
PianoKeyboard::setScaleType( m_scaleModel.currentText() ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ouch! currentText()
is not reliable because translations will break it. Use value()
instead.
I selected scale: DUR. But all keys play note C. In different Rows different Cs (C3,C4,C5) but only C. If I choose an other note only this note will be played. Perhaps I have done something wrong?
Sorry for latency,
To move main tool bar will be more sense, I can move it. But I need to know header and cpp files those I must to work on. Can you help me about that ? |
I'm not sure the OP @feedbackex is still active or not, but I think it'll be quite easy to revive this if there are demands for this feature. Any opinions? |
@PhysSong this (or at least part of it, the possibility to easily change the octave used for computer keyboard playing) has been requested in some places TBH, and, while switching the base note+scale is mostly a gimmick (abeit reasonably useful, as it's similar to real-life transpose function), switching the keyboard octave is IMVHO a must-have. It's one of the things I really miss in LMMS ATM. I'd say this could and should be revived and merged, especially since it's like, 80% or 90% done already? |
@FyiurAmron Phys too seems to have gone afk. If you would like to revive this, hit me up on discord and I'll help. |
PC Keyboard Mapping according to music theory.