lmms icon indicating copy to clipboard operation
lmms copied to clipboard

Redesign of the Controller Rack

Open BaraMGB opened this issue 9 years ago • 42 comments

Peak controller and LFO controller will be inserted directly in the controller Rack. So we can avoid a lot of floating windows. In my opinion the rack makes more sense in this way.

controllerrack1

BaraMGB avatar Jul 28 '16 11:07 BaraMGB

I think the controllers should be centered in the window.

Umcaruje avatar Jul 28 '16 12:07 Umcaruje

I think the controllers should be centered in the window.

I try to change the width() of the window depending of needing a scrollbar or not.

BaraMGB avatar Jul 28 '16 13:07 BaraMGB

I updated this. The window width relates now on the need of a scrollbar.

BaraMGB avatar Jul 31 '16 16:07 BaraMGB

This one will be not ready before 1.2 is released. I'm targeting 1.3.

BaraMGB avatar Aug 10 '16 08:08 BaraMGB

@BaraMGB Pretty cool, thank you for working on this.

#3235 Not sure if this will affect you but I figured I would mention it

miketurn avatar Jan 13 '17 16:01 miketurn

Yes, I made a PR for this : https://github.com/LMMS/lmms/pull/3240

BaraMGB avatar Jan 13 '17 16:01 BaraMGB

@BaraMGB I had a couple of ideas/questions to share (please ignore them if they are not helpful) Some of these might be duplicates of above comments, don't understand coding.

1.) Currently you can change the names of the controllers, will you still be able to offer this? 2.) Would it be possible to be able to move items up and down? (Preferably through a mouse button drag method) 3.) At first I was going to ask if the expand/collapse arrows are necessary, but I guess it couldn't hurt to have them, they will probably would help in keeping the list clean. 4.) If these arrows do remain, would it be possible to add options to "expand all" and "collapse all"? That might be helpful.

Again I have not used this feature much yet so you and others would be able to answer if these above questions are helpful or not. Anyways, hope this helps. Thanks again for working on this.

miketurn avatar Jan 16 '17 23:01 miketurn

1.) Currently you can change the names of the controllers, will you still be able to offer this?

Yes, by double click on the title bar.

2.) Would it be possible to be able to move items up and down? (Preferably through a mouse button drag method)

If that makes sense, I think it should be implemented.

3.) At first I was going to ask if the expand/collapse arrows are necessary, but I guess it couldn't hurt to have them, they will probably would help in keeping the list clean.

If you have more than 5 controllers in this rack, you can easily lose sight.

4.) If these arrows do remain, would it be possible to add options to "expand all" and "collapse all"? That might be helpful.

Yes, this feature is planned.

BaraMGB avatar Jan 24 '17 14:01 BaraMGB

I guess I have implemented all that you can see in @budislav s mockup (see here https://user-images.githubusercontent.com/3619927/28041705-c3864098-65ca-11e7-9d8c-5b8108941c18.png)

Here is a screenshot of the current implementation: bildschirmfoto von 2017-08-27 14-31-20

Further you can now drag and drop knobs (ctrl + Drag) to the controller, which is really cool!

I would like to move the "ADD LFO" button to the top and add a Collapse all toggle button next to it. But this would break our layout conventions. @RebeccaLaVie @Umcaruje I need help/mockups what to do now.

BaraMGB avatar Aug 27 '17 12:08 BaraMGB

@BaraMGB Well done! I am really glad to see this, looks really good! About Collapse all toggle button, that is a good option, but I wouldn't say it need to be visible all time, maybe to put it in right click option. Because I don't think it will be used so frequently. That is my opinion but maybe I am wrong.

budislav avatar Aug 28 '17 18:08 budislav

I implement the collapse all functionality by right click. A button for it is fast to implement if needed.

BaraMGB avatar Aug 28 '17 18:08 BaraMGB

@BaraMGB I agree with @budislav that feature wouldn't be used too much and it can be in a right click menu. Other than that this looks absolutely phenomenal, you've done some amazing work here!

Umcaruje avatar Aug 28 '17 19:08 Umcaruje

I feel like double-clicking should collapse/expand instead of rename, like window title bars. Wouldn't it be more consistent to rename with right-clicking, as is the case with track labels?

grejppi avatar Aug 30 '17 20:08 grejppi

@grejppi right click I connect with a context menu. For me it was odd on the track label button, too. BTW you can rename a track by double click, too. Same on the faders in the mixer. I don't know. Collapse on double click sounds good to me, though.

BaraMGB avatar Aug 30 '17 23:08 BaraMGB

This is already production ready but 2 and 4 from miketurn's ideas would make it even more convenient to use.

karmux avatar Dec 21 '17 18:12 karmux

Thank you very much for testing this out. I had a lot (a lot) to do the last weeks. But in the new year I have time to complete this pull request. @karmux do you have tested the drag and drop feature yet?

BaraMGB avatar Dec 24 '17 08:12 BaraMGB

@BaraMGB yes, drag & drop is a very nice feature.

karmux avatar Dec 26 '17 10:12 karmux

In the effects chain peak controller has "Controls" button that does nothing.

karmux avatar Jan 22 '18 17:01 karmux

@karmux I removed the button: bildschirmfoto von 2018-03-11 13-36-52

BaraMGB avatar Mar 11 '18 12:03 BaraMGB

That's a regression. I just tested, and the button still works as it should in RC5 (that is to say, it opens the peak controller's controls). It might be redundant to have a separate controls window for the peak controller if they are already displayed in the controller rack, but in that case the "controls" button could open the controller rack to the selected peak controller.

On Sun, Mar 11, 2018, 13:38 Steffen Baranowsky [email protected] wrote:

@karmux https://github.com/karmux I removed the button: [image: bildschirmfoto von 2018-03-11 13-36-52] https://user-images.githubusercontent.com/6502580/37253394-67b797ae-2531-11e8-9c94-30f8780461b0.png

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/LMMS/lmms/pull/2944#issuecomment-372112275, or mute the thread https://github.com/notifications/unsubscribe-auth/AIgVmszfEdkw8YLSjqZXTdaMzo3_I2iyks5tdRqrgaJpZM4JXH9z .

Spekular avatar Mar 11 '18 13:03 Spekular

@Spekular great idea!

BaraMGB avatar Mar 11 '18 14:03 BaraMGB

Great

RoxasKH avatar Oct 28 '18 08:10 RoxasKH

When you open previously saved project then custom ordering in controller rack is lost and controllers are ordered how they were added.

karmux avatar Nov 11 '18 09:11 karmux

Thank you for keep testing this.

BaraMGB avatar Nov 12 '18 08:11 BaraMGB

I want to finishing this in the next weeks.

BaraMGB avatar Jun 11 '19 14:06 BaraMGB

In my opinion this is ready for review.

BaraMGB avatar Aug 24 '19 19:08 BaraMGB

LMMS crashes when I open my projects in this branch but they open fine in master. Valgrind's log:

ASSERT failure in QVector<T>::at: "index out of range", file /usr/include/qt/QtCore/qvector.h, line 440
==32277==
==32277== Process terminating with default action of signal 6 (SIGABRT): dumping core
==32277==    at 0x7008755: raise (in /usr/lib/libc-2.29.so)
==32277==    by 0x6FF3850: abort (in /usr/lib/libc-2.29.so)
==32277==    by 0x69498B5: QMessageLogger::fatal(char const*, ...) const (in /usr/lib/libQt5Core.so.5.13.0)
==32277==    by 0x6948D3B: qt_assert_x(char const*, char const*, char const*, int) (in /usr/lib/libQt5Core.so.5.13.0)
==32277==    by 0x20AFA0: ControllerRackView::onControllerAdded(Controller*) [clone .cold] (in /home/karmux/Dev/lmms/build/lmms)
==32277==    by 0x22C43B: ControllerRackView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) [clone .part.0] (in /home/karmux/Dev/lmms/build/lmms)
==32277==    by 0x6B7DA10: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQt5Core.so.5.13.0)
==32277==    by 0x228121: Song::controllerAdded(Controller*) (in /home/karmux/Dev/lmms/build/lmms)
==32277==    by 0x2E596A: Song::addController(Controller*) (in /home/karmux/Dev/lmms/build/lmms)
==32277==    by 0x2E5A52: Song::restoreControllerStates(QDomElement const&) (in /home/karmux/Dev/lmms/build/lmms)
==32277==    by 0x2E91F0: Song::loadProject(QString const&) (in /home/karmux/Dev/lmms/build/lmms)
==32277==    by 0x353965: MainWindow::openProject() (in /home/karmux/Dev/lmms/build/lmms)
==32277==
==32277== HEAP SUMMARY:
==32277==     in use at exit: 179,667,302 bytes in 648,349 blocks
==32277==   total heap usage: 4,740,881 allocs, 4,092,532 frees, 1,203,636,371 bytes allocated
==32277==
==32277== LEAK SUMMARY:
==32277==    definitely lost: 8,101 bytes in 238 blocks
==32277==    indirectly lost: 490 bytes in 11 blocks
==32277==      possibly lost: 1,423,513 bytes in 6,213 blocks
==32277==    still reachable: 178,222,990 bytes in 641,790 blocks
==32277==                       of which reachable via heuristic:
==32277==                         length64           : 1,688 bytes in 32 blocks
==32277==                         newarray           : 12,456 bytes in 46 blocks
==32277==                         multipleinheritance: 628,976 bytes in 757 blocks
==32277==         suppressed: 0 bytes in 0 blocks
==32277== Rerun with --leak-check=full to see details of leaked memory
==32277==
==32277== For counts of detected and suppressed errors, rerun with: -v
==32277== Use --track-origins=yes to see where uninitialised values come from
==32277== ERROR SUMMARY: 1012648 errors from 135 contexts (suppressed: 0 from 0)
Aborted (core dumped)

karmux avatar Aug 25 '19 08:08 karmux

@karmux please try it again.

BaraMGB avatar Aug 25 '19 11:08 BaraMGB

@BaraMGB works perfectly now! :+1:

karmux avatar Aug 25 '19 14:08 karmux

@PhysSong do you have time for a look at this?

BaraMGB avatar Aug 27 '19 09:08 BaraMGB