LMMS / LMMS/lmms

The Instrument window GUI needs refactoring

Open
#4,122 6 comments 0 reactions 0 assignees View on GitHub
gui
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

The layout of the **instrument window** does not reflect its functionality, in several places.
This can be confusing to new users.

The layout can be streamlined as follows:

## Part-1: Relocation of the filter section:
In the instrument window, the sound processing is as follows:
![image](https://user-images.githubusercontent.com/9047168/35087304-c483372c-fc55-11e7-935d-5c7f8b6884db.png)

Essentially, the user sets the instrument in two (optional) steps:
1. He applies envelope and LFO to the volume of the channel.
2. Then he selects a filter, and then applies envelope and LFO to its _cut off_ and _resolution_ parameters.

But this is not correctly reflected in the GUI.
Here, the user selects the second tab marked ![image](https://user-images.githubusercontent.com/9047168/35087877-afd08968-fc57-11e7-99d0-bf45c1c78f12.png)
Then he selects one of three sub-tabs: ![image](https://user-images.githubusercontent.com/9047168/35087903-c5e97ed0-fc57-11e7-89ee-c16cec29e752.png)

At this stage, the rest of the GUI (till the end) must be related to his chosen combination.
But that's actually NOT the case: The **filter** section is common for all three sub-tabs.
You are not supposed to select three filters (a distinct filter for each sub-tab)!

Therefore the filter section must be moved above the three sub-tabs, as shown below.

![image](https://user-images.githubusercontent.com/9047168/35090144-d6ee36a6-fc5e-11e7-9673-44a87719c429.png)

## Part-2: The Keyboard can be shifted to a much more logical place!

The **pitch keyboard** section (reference pitch key) is also not related to any of the three sub-tabs.
(In fact, it is not related to any of the other main tabs also). Therefore, there is no need to attach the "keyboard" (Instrument's pitch) section to the bottom of the Instrument window.

Secondly, the pitch of the instrument is not changed so often. So we do not need to keep the keyboard so conspicuously accessible at all times. It can be tucked away in one of the tabs.

In fact, the best place for this widget is in the last ![image](https://user-images.githubusercontent.com/9047168/35088842-09210832-fc5b-11e7-9047-e2421ec5f2f1.png) tab, where there is already an option to disable the master pitch. Thus the same page should hold the controls for the instrument's pitch also!

![image](https://user-images.githubusercontent.com/9047168/35088802-e338d96a-fc5a-11e7-86a5-a75fcd4144bf.png)

BTW if this change is implemented, change the symbol for this tab from "miscellaneous" ![image](https://user-images.githubusercontent.com/9047168/35088842-09210832-fc5b-11e7-9047-e2421ec5f2f1.png) to "Pitch" ![image](https://user-images.githubusercontent.com/9047168/35088951-6b5c5d76-fc5b-11e7-9017-2c53dcf6d6ab.png)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the instrument window GUI described in the issue and trace how its filter section, three sub-tabs, pitch keyboard, and final miscellaneous tab are assembled. Compare the current layout with the requested relationships, then verify that filters are shared, pitch controls are moved to the final tab, and the tab symbol is changed to Pitch.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
design, desktop
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.