Skip to content
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

Add "Assign to FX Channel" context button to track #1572

Merged
merged 1 commit into from
Jan 13, 2015

Conversation

badosu
Copy link
Contributor

@badosu badosu commented Jan 8, 2015

Add a new submenu to assign quickly a new or existing FX Channel for a track. This should help a lot when creating songs as it's so cumbersome to assign them manually today.

The name of the channel is set as the name of the instrument when it's created.

This relates to #48 and maybe to #1215

2015-01-09-144059_1920x1080_scrot

@@ -103,12 +103,14 @@ class EXPORT FxMixerView : public QWidget, public ModelView,
// useful for loading projects
void refreshDisplay();

public slots:
int addNewChannel();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to expose this method to use it on the Track view, is there a better approach?

@badosu badosu force-pushed the assign-instrument-to-fx-channel branch from 850dc48 to fbff7ff Compare January 8, 2015 03:27
@tresf
Copy link
Member

tresf commented Jan 8, 2015

Very nice! I'll let Vesa speak to the question you have.

@badosu badosu force-pushed the assign-instrument-to-fx-channel branch 2 times, most recently from f526fca to 65a5a90 Compare January 8, 2015 04:12
@diizy
Copy link
Contributor

diizy commented Jan 8, 2015

"If the instrument is already assigned to a FX Channel"

The problem is, instruments are always assigned to a FX channel. Master is also a FX channel, it's no different from any other, other than it can't be routed and outputs sound. I'm not sure if we should treat master as a sort of "anti-channel" here...

The context view is also a bit ambiguous when there's a channel assigned - not instantly obvious what the option does when it only shows the current channel name. Maybe the menu option should just always be "Assign to current FX channel"... @tresf, thoughts?

The slot usage is fine.

@Sti2nd
Copy link
Contributor

Sti2nd commented Jan 8, 2015

The problem is, instruments are always assigned to a FX channel

Why is that a problem? If those images are screenshots it looks fine too me, it don't show master channel. I think everyone knows that instruments must be connected to master channel to hear sound :)

@badosu
Copy link
Contributor Author

badosu commented Jan 8, 2015

@diizy What I mean with that sentence is: If the assigned channel is different than 0 (master).

This PR is aimed at helping with somethng that's very difficult to do today, if the context option when there's already an independent channel assigned is ambiguous we can remove it (although I don't understand why it's not obvious).

We can always change the PR with suggestions until it's acceptable for you guys, just tell me what's wrong.

@badosu
Copy link
Contributor Author

badosu commented Jan 8, 2015

Maybe we can change the label "Assign to FX Channel" to "Assign to independent FX Channel" in case this improves the tool.

@tresf
Copy link
Member

tresf commented Jan 8, 2015

@tresf, thoughts?

I like it, a lot actually... but I understand the hesitation here... It adds convenience but also more mystique and uncertainty to what people are doing.

Even if it's technically correct, I'm not sure I agree with the statement that they already have a channel assigned. I agree that these are "routed" through master by default... but... that is more properly "auto-assigned". "Auto-assign" without delegation doesn't really mean "assign" in any work flow that I use on a daily basis.

But perhaps we're overthinking this feature. If we're going to have quick assignment, why not make it default, such as a checkbox "Auto-assign instruments dedicated FX tracks" or something like that.

Then we use the context menu to change FX assignment to available channels and add a new item "+Add New FX Channel" at the end.

But perhaps I'm over thinking it... :O)

@badosu
Copy link
Contributor Author

badosu commented Jan 8, 2015

But perhaps we're overthinking this feature. If we're going to have quick assignment, why not make it default, such as a checkbox "Auto-assign instruments dedicated FX tracks" or something like that.

This was already suggested on #1215 and was my inspiration to make this feature.

Actually I wanted to address that before but I thought that it was very intrusive and different from what we have today. So instead of developing that big feature I wanted to take a baby step towards a better functionality, that was the low hanging fruit in solving the usability problem of assigning independent FX Channel for an instrument.

@badosu
Copy link
Contributor Author

badosu commented Jan 8, 2015

@diizy Now I got what you mean, retain the same label for the button whatever is the case for the instrument so that it is clear what is that button about, that's a pretty good idea.

Is "Assign to independent FX Channel" more clear? Or instead of FX Channel using the word Mixer, just channel, etc..?

@tresf
Copy link
Member

tresf commented Jan 8, 2015

that was the low hanging fruit in solving the usability problem

Yes of course....

Is "Assign to independent FX Channel" more clear? Or instead of FX Channel using the word Mixer, just channel, etc..?

Or change it to "FX 0: Master" by default and use a sub-menu to allow the designation of any channel, with the option to add new at the end?

@badosu
Copy link
Contributor Author

badosu commented Jan 8, 2015

Or change it to "FX 0: Master" by default and use a sub-menu to allow the designation of any channel, with the option to add new at the end?

This would only be possible if the listed channels on the submenu are not already occupied.

@tresf
Copy link
Member

tresf commented Jan 8, 2015

This would only be possible if the listed channels on the submenu are not already occupied.

Why?

@badosu
Copy link
Contributor Author

badosu commented Jan 8, 2015

Well, I guess you're right, we can have more than one instrument on a channel.

But still, a submenu with 30 channels would be very bad for usability, specially if the "Assign to new channel" is at the end.

@tresf
Copy link
Member

tresf commented Jan 8, 2015

But still, a submenu with 30 channels would be very bad for usability, specially if the "Assign to new channel" is at the end.

Then we put it at the beginning?

I know this can get rather large, but I think overflowing context menus are something we're rather familiar with in the GUI world, no? :) And how nice would it be to combine two channels without leaving the Song Editor? !!!! :)

image

Old projects may have a lot of them due to the old default channel count, but new projects should have less than twenty channels I'd hope. There are exceptions to this, but those exceptional cases can use the mixer, no?

@badosu
Copy link
Contributor Author

badosu commented Jan 8, 2015

@tresf Cool, I am convinced this can work. Let's just wait for @diizy to give some input then I can start experimenting with this.

@tresf
Copy link
Member

tresf commented Jan 8, 2015

Sounds good... P.S. I did the pixel spacing on 30 FX tracks.... this is what it looks like from a size perspective (please don't mind the wrong font usage here, the spacing is pretty close)

image

@tresf
Copy link
Member

tresf commented Jan 8, 2015

Vesa may also advocate for multiple channel selection as well. If possible, I'd advocate for this only with a modifier key on the keyboard (force the use of CTRL or shift for multi-channel assignement... no modified for single-channel assignment).

@badosu
Copy link
Contributor Author

badosu commented Jan 8, 2015

I started to like this proposal, it also addresses @diizy concern of Master as an "anti-channel".

@diizy
Copy link
Contributor

diizy commented Jan 8, 2015

On 01/08/2015 03:09 PM, Amadeus Folego wrote:

Maybe we can change the label "Assign to FX Channel" to "Assign to
independent FX Channel" in case this improves the tool.

I'd say "Assign to current FX channel" is the most obvious since that's
what the option does, assign to currently selected channel.

@Sti2nd
Copy link
Contributor

Sti2nd commented Jan 8, 2015

I'd say "Assign to current FX channel" is the most obvious since that's
what the option does, assign to currently selected channel.

Ohh, I didn't understand that, because of the wording actually. That was pretty hard to get. So do you mind "Assign to selected FX channel" instead?

@diizy
Copy link
Contributor

diizy commented Jan 8, 2015

On 01/08/2015 10:45 PM, Tres Finocchiaro wrote:

Or change it to "FX 0: Master" by default and use a sub-menu to allow
the designation of any channel, with the option to add new at the end?

Sounds like a neat idea.

@diizy
Copy link
Contributor

diizy commented Jan 8, 2015

On 01/09/2015 01:13 AM, Stian Jørgensrud wrote:

I'd say "Assign to current FX channel" is the most obvious since
that's
what the option does, assign to currently selected channel.

Ohh, I didn't understand that, because of the wording actually. That
was pretty hard to get. So do you mind "Assign to selected FX channel"
instead?

That works.

@badosu
Copy link
Contributor Author

badosu commented Jan 9, 2015

@tresf @Sti2nd @diizy

Just prototyped the submenu idea:

2015-01-09-071827_1920x1080_scrot

Some concerns:

  • I added a separator between "Assign to new FX Channel" and the subsequent actions but there's no visual indication of it's presence
  • We may need to improve the label of the assignment to other FX buttons, ideas?

Personally, I feel like this prototype already looks better than the original proposal.

@badosu badosu force-pushed the assign-instrument-to-fx-channel branch 2 times, most recently from d1a27e8 to 1eb1c4f Compare January 9, 2015 10:18
@tresf
Copy link
Member

tresf commented Jan 9, 2015

Oh... I'm so excited about this feature!!!

In your screenshot, I see FX 1: TripleOscillator, FX 2: TripleOscillator. Are those the current names or are those the future names? I recommend using the current names (which will only read FX1 probably, but that would be contextually accurate, it can rename to FX1: TripleOscillator once you assign it).

@badosu
Copy link
Contributor Author

badosu commented Jan 9, 2015

@tresf This is just a coincidence, the names are all equal because I cloned the track.

I updated the description with a better illustration of the feature.

Oh... I'm so excited about this feature!!!

I know, me too! I am using it a lot now, It makes things so easier, I can't even imagine going back :-).

Thanks for the suggestion, it would not be like this if you had not proposed it.

@@ -185,6 +185,8 @@ void FxMixerView::addNewChannel()
updateFxLine(newChannelIndex);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we're using the word "line" instead of "channel" here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, this method was not written by me so I don't really know.

I am using the "line" terminology on the parts I wrote to keep consistency with all the other parts of the code that refer to the same functionality.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can include a commit to rename the Line terminology to Channel, but I need to understand if this is necessary/viable.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, you're justification is completely valid in my opinion. I didn't realize the nomenclature was already there despite having the audacity to comment under a line you hadn't change. 🍔

@tresf
Copy link
Member

tresf commented Jan 10, 2015

@badosu I may have found the problem with the separator:

https://github.com/LMMS/lmms/blob/master/data/themes/default/style.css#L71

QMenu::separator shares the same color as the QMenu class. Here's what background: #8d8d8d; looks like... (not sure if all platforms display this correctly tho).

screen shot 2015-01-09 at 7 01 17 pm

@badosu
Copy link
Contributor Author

badosu commented Jan 10, 2015

@tresf Great find! I'll keep that in mind.

@Sti2nd
Copy link
Contributor

Sti2nd commented Jan 10, 2015

I still think it is not obvious that clicking "assign to new Fx channel" assigns it to the selected one. If you could add the word selected there it would be more obvious. "Assign to new (selected) channel"?

If you have a lot of channels to choose from, maybe qt got a scroll arrow features, like that arrow showing up at the bottom in a right click menu when there are really many options.

@tresf
Copy link
Member

tresf commented Jan 10, 2015

Why even care about selected? Shouldn't this instead be the first avail?

@Sti2nd
Copy link
Contributor

Sti2nd commented Jan 10, 2015

Shouldn't this instead be the first avail?

You mean the first empty (not assigned to any instruments) channel? Good point, cause one tend to add many channels at once, not one and one, am I right? And even if the last added channel was automatically selected, it wouldn't work with that workflow.

@tresf
Copy link
Member

tresf commented Jan 10, 2015

Yes, exactly.

@tresf
Copy link
Member

tresf commented Jan 13, 2015

Sorry for the inconvenience but this will need to be rebased on master (fast forward and hand-edit any conflicts) before it is merged..

@badosu badosu force-pushed the assign-instrument-to-fx-channel branch from 1eb1c4f to b2eb511 Compare January 13, 2015 02:42
@badosu
Copy link
Contributor Author

badosu commented Jan 13, 2015

Rebased!

@tresf @Sti2nd Should I make further adjustments? Is there anything that need fixing?

@tresf About the separator issue, what should we do? Is it even an issue?

@badosu badosu force-pushed the assign-instrument-to-fx-channel branch from b2eb511 to 2eb420c Compare January 13, 2015 02:49
@tresf
Copy link
Member

tresf commented Jan 13, 2015

Hmm.... Some strange build errors there. The Zyn stuff on the Linux job should be unrelated, but the FxMixerView errors are probably valid.

But to answer your question... did you end up assign the "new" FX to the current channel, or the first unused channel?

@tresf
Copy link
Member

tresf commented Jan 13, 2015

@tresf About the separator issue, what should we do? Is it even an issue?

Not your problem really. I'll file a separate issue.

@badosu
Copy link
Contributor Author

badosu commented Jan 13, 2015

@tresf I just fixed these!

"Assign to new FX Channel" creates a new FX Channel and assigns the instrument to it. The new FX Channel will have the name of the instrument.

@tresf
Copy link
Member

tresf commented Jan 13, 2015

👍

@tresf
Copy link
Member

tresf commented Jan 13, 2015

FYI - Filed the menu bug 1615.

@tresf
Copy link
Member

tresf commented Jan 13, 2015

Can't wait to test this one... It has had plenty of time for comments, addresses all requests and passes in Travis. This one is getting merged. If issues arise we can patch.

tresf added a commit that referenced this pull request Jan 13, 2015
Add "Assign to FX Channel" context button to track
@tresf tresf merged commit 6e899d3 into LMMS:master Jan 13, 2015
@badosu badosu deleted the assign-instrument-to-fx-channel branch January 13, 2015 03:08
@badosu
Copy link
Contributor Author

badosu commented Jan 13, 2015

Cool! :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants