New GUI concept #1180
Replies: 22 comments
-
Hey that's really cool! You've put a lot of work into this. I will check it out later this weekend. Still here! Swamped with work. But I too have some really intense sweeping changes coming. First, I fixed the Settings 'midi division' (ticks per quarter note) problem that I mentioned to a forum user. Second, I made sweeping changes to all those forward references seen in all our header files |
Beta Was this translation helpful? Give feedback.
-
Hola!
Yeah, still here!
Actually I'm going back to school on Monday 😮. Oh my, at my age?
Anyway, I need to get back into muse development again.. As per usual I
HAVE been using muse quite a bit (even Tim's time stretching, with good
result!) but no coding for too long.
Screenshot looks cool! Though it must be said, I'm very conservative in the
ways I like UIs, current state works for me. ;) But I'm sure I can realize
the benefits of this design, trying it out.
In the end I'm (as I've no doubt said before) usually of the philosophy
that the one who writes the code decides.
/Robert
Den lör 22 aug. 2020 19:36Tim <[email protected]> skrev:
… Hey that's really cool! You've put a lot of work into this. I will check
it out later this weekend.
Still here! Swamped with work. But I too have some really intense sweeping
changes coming.
I will prepare a PR because it is bound to cause conflicts.
First, I fixed the Settings 'midi division' (ticks per quarter note)
problem that I mentioned to a forum user.
MusE was not behaving correctly when the setting is on anything other than
384.
It was because all the 'snap' coding was using hard-coded tick tables
based solely on 384 tpq.
The tables are now dynamic, and when the division setting is high, say
12288 tpq, there are
now more snap choices in the now-dynamic snap combo boxes. This will help
with high-resolution
editing and importing from the kind of high-res midi files the forum user
was attempting to import.
This was sweeping in its scope. There were many other things that needed
changes.
Midi division is such a fundamental timing and graphics element of the
whole app.
Second, I made sweeping changes to all those forward references seen in
all our header files
that we so casually use. I cleaned most of it up, and compilation should
be smoother for
folks that complained about build race conditions with -j settings.
At first I tried to completely eliminate ALL forward references and
replace them with proper #includes.
Oops! No, there are very *many* circular dependencies in MusE that
completely broke when I did that.
So I reversed course and carefully re-worked all the forward references.
My solution involves something I've not seen talked about: For items that
are forward referenced,
I placed corresponding #includes at the *bottom* of header files, so that
all the cpp files wishing
to include some header *do not* have to also know about or include all
the other headers that are
required to make that header file work.
My fingers are soooo sore from all of this! Tired from intense late-night
editing...
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://github.com/orgs/muse-sequencer/teams/musedevteam/discussions/54/comments/1>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABCFANZONJTZPQFV6X33F6DSB762TANCNFSM4QIFX7DQ>
.
|
Beta Was this translation helpful? Give feedback.
-
Scratch that. After brushing up on forward declarations, it turns out it is recommended Ah well. Benefits of all this work so far: Stay tooned... |
Beta Was this translation helpful? Give feedback.
-
@spamatica Don't let the other children bother you ;-) |
Beta Was this translation helpful? Give feedback.
-
Haha, we will see who prevails! |
Beta Was this translation helpful? Give feedback.
-
@kybos Built, tested OK, OpenSuse Tumbleweed. So I like this modern concept. But speaking of Event List and Master List and Marker View, there seems to be some wonky behaviour, Now of course I am obliged to protest "What about Mac mode - Cheers. |
Beta Was this translation helpful? Give feedback.
-
@kybos I tried your pull request, I'm digging it! Was scratching my head how to get it to show the midi editors but then I saw you added info above about it. I see it's possible to ctrl-tab between the different tabs, looks very usable. I see clicking on a midi-part that is already open, opens a new one. That should probably just pop up the already open midi editor (I know we support multiple windows now, but why, I'm not sure) Btw, just remembered, incase it's been lost in the noise. The paint issue with the new style on Ubuntu/Kubuntu for the trackInfo is still there. |
Beta Was this translation helpful? Give feedback.
-
Another thing, which I think was added before the pull request, the new piano roll. Lovely! As I recall it wasn't a bitmap anymore? Does that mean that we can change it so the keys/note lanes can have arbitrary hights? |
Beta Was this translation helpful? Give feedback.
-
@spamatica I suppose often school is not only about studying but also social thing. |
Beta Was this translation helpful? Give feedback.
-
But there is only one global instance of those anyway, which is why i said it looks smart |
Beta Was this translation helpful? Give feedback.
-
If you mean that 'flashing' half track list inside the arranger canvas, yeah I'm seeing that too. @kybos I see that multiple part opening with Event List doesn't seem to work? |
Beta Was this translation helpful? Give feedback.
-
Yeah, I wasn't very clear. They are global and it looks cool to place them in a pane like that. I've seen it in other programs and like it. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your feedback, guys. I will try to comment tomorrow. I’m on vacation this week and the next, so there’s not much time left 😊.
… On 24. Aug 2020, at 10:28, spamatica ***@***.***> wrote:
@spamatica
I see the markers and mastertrack windows are global. Hmm, that seems impractical, but we'll figure that out.
But there is only one global instance of those anyway, which is why i said it looks smart
when it opens beside another window. If the Event List could do that would be cool...
Yeah, I wasn't very clear. They are global and it looks cool to place them in a pane like that. I've seen it in other programs and like it.
I do however generally not like when things take space from the arranger, I usually run MusE on a laptop which doesn't have the biggest screen, so it would be good if this 'pane' had a shortcut for toggling if it is visible. Or some other solution.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Beta Was this translation helpful? Give feedback.
-
The basic idea:
Technically they are two different implementations:
And there again are 2 kinds of instancing:
Toggling the docks: "Mac" mode: "Flashing" of the mixer strip: |
Beta Was this translation helpful? Give feedback.
-
Master, by it's name, will never have more than one instance, there is only one master track.
Careful, that's instances per part, where sometimes it is desirable to have more than one editor @spamatica Whaddya think R.J. Shall we go with this? Thanks guys! |
Beta Was this translation helpful? Give feedback.
-
Hi. Soon my fixes might be complete enough to commit. I've no real objections to this PR, other than to mourn the passing of MacBorland mode, I'm pleased with all my fixes and changes. So I've done some neat things here. Another neat thing I did was, you know that space just before bar # 1 in the Arranger and Midi Editors? I also added this space to the Wave Editor. I am happy that it now clearly delineates the end of the This space before bar # 1 being in all the editors is also generally helpful to clearly show the Cheers. |
Beta Was this translation helpful? Give feedback.
-
Sounds good to me. The fixed space before bar 1 is perfect (I don't understand how some DAWs can do completely without this space, it makes bar 1 practically unusable). Yes, we should merge this PR before other actions. I will be back home on Sunday this week, so if there are problems or substantial complaints from users, I will be ready. If there are really convincing reasons for the "Mac mode" even in the new GUI concept, I am prepared to reinstate it (I myself never used it either, I personally don't like that kind of UI). Later I would add a function to show/hide all open docks, like Robert suggested, and also change the master track editors from the current multi instance to single instance toggle. Cheers |
Beta Was this translation helpful? Give feedback.
-
Yes, the piano is now vector-drawn, no bitmaps. |
Beta Was this translation helpful? Give feedback.
-
Pushed my fixes. Will do ChangeLog later. Apologies if it makes things difficult (for my branches too). Here are some notes of mine, the ones marked OK are done, keep in mind OK. Check Robert's SHRT_SET_QUANT_OFF addition in keyPressEvent() in pianoroll and drumedit. OK. Check Robert's QUANT shortcuts addition in keyPressEvent() in arranger. Fix Wave Editor grid raster lines not drawn properly (but snap is actually OK). Fix PianoRoll: Notes can be drawn to left of bar # 1 ! Pre-existing bug. Fix CtrlCanvas: Marker lines are black not green. Actually, they are not drawn at all. Pre-existing bug. OK. Settle on an x origin for the canvases. OK. Midi Division: Create new song tag midiDivision, save the current midi division to it. !!! Midi Division: Scale an existing song when Midi Division changes. OK. Remove never-used GUI Division ! Check midi editor Plugins menu: All of them seem to destroy controllers ! Pre-existing bug. Remove LV2 makepath, Zita, experimental cmake warnings. Pre-existing bug. Fix Release mode: Linker unresolved LV2 stuff (link with core?). Pre-existing bug. Fix annoying crash in dummy audio mode when (re-)loading another song - heartbeat starts too soon, |
Beta Was this translation helpful? Give feedback.
-
I tried the midi division, looks good. |
Beta Was this translation helpful? Give feedback.
-
Yup. I noticed that. Rather annoying. Will try to fix at some point... |
Beta Was this translation helpful? Give feedback.
-
Now there is a menu entry (View->Show Docks) and a shortcut (F7) to show/hide all visible dock windows. |
Beta Was this translation helpful? Give feedback.
-
Hi guys,
I hope you are doing well, it's been very quiet here recently ;-).
I've been working on the new GUI concept, and have some results now.
I investigated a lot, and I am still not convinced that a pure docking concept is the right way - our graphical editors are not really suitable for docks, they are full windows in their own right, with a lot of editor-specific tools/menus. For them Florian's basic concept is superior.
So my solution is a kind of mix of both MDI and docks, partly reusing Florian's functionality. But I discarded the outdated classic MDI in favour of more state-of-the-art tabbed MDI, and implemented all list based editors as docks. The arranger as a central window is fixed and can't be closed (people complained in tickets about it "disappearing").
I think one big problem with the old concept was that, although technically pretty progressive, it was difficult to understand for the user, also due to the terminology - subwindows, top level windows, references to Cakewalk or Borland as their software was 20 years ago... I tried to avoid that and make it as simple as possible. There was also a bad memory leak, the MDI subwindows were never properly destroyed (you can partly see it in the current Cakewalk mode - just minimize a window - not the Arranger, but one of the other editors - and restore it: the content disappears, but the subwindow remains).
There are still issues of course, the state/geometry saving of the docks is apparently buggy in Qt, the handling of keyboard shortcuts is tricky, because the docks are in the global scope so conflicts arise. Anyway, I will prepare a pull request so you can check it out.
EDIT:
This is how the settings look, I hope this is clear and understandable for everybody ;-):
Beta Was this translation helpful? Give feedback.
All reactions