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 option to set note range in MIDI editor to one note. #553

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

akimaze
Copy link

@akimaze akimaze commented Aug 1, 2020

Hi!
That tiny change makes working with MIDI percussion tracks a lot more convenient. It allows you to use the midi editor as a simple pattern editor by simply set note range to one note:

onenoterange

Useful for kick, snare, hihat etc. Allows faster editing and saves screen space.

@ngeiswei
Copy link
Contributor

ngeiswei commented Aug 2, 2020

@akimaze, how does that differ from Note Range->Fit Contents when there is only one fixed note on the track?

I did notice though that Note Range->Fit Contents doesn't always work, maybe instead of adding an extra menu item, this should be fixed?

Also, just in case (since your screenshot does not show it), I would like to mention the existence Note Mode->Percusive for displaying drum midi data.

P.S: I'm just an Ardour enthusiast without merging rights. Paul and/or Robin feedback is what really matters.

@akimaze
Copy link
Author

akimaze commented Aug 2, 2020

@ngeiswei I think Note Range->Fit Contents gives always minimum one octave view. I'm new in Ardour and I thought it was intentional. And IMO for usual MIDI clip editing this is better than shrink to one note.

Also, just in case (since your screenshot does not show it), I would like to mention the existence Note Mode->Percusive for displaying drum midi data.

I saw the Percusive view but I think the notes are cut off in this mode (they last very short). I don't know maybe this is a bug or I don't know something about Ardour. So I go back to normal mode and made notes longer.

@x42
Copy link
Member

x42 commented Aug 2, 2020

I thought it was intentional.

It is. the minimum range of the scroomer (when manually zooming) is one octave, to provide context. At least one "C" with an octave label is always visible.

/* set minimum view range to one octave */
set_min_page_size(12);

Then, when the piano-header is displayed, there is an additional constraint that can lead to additional notes:

int const max_note_height = 20; // This should probably be based on text size...
int const range = _highest_note - _lowest_note;
int const pixels_per_note = floor (child_height () / range);
/* do not grow note height beyond 10 pixels */
if (pixels_per_note > max_note_height) {
int const available_note_range = floor (child_height() / max_note_height);
int additional_notes = available_note_range - range;

This patch changes _lowest_note = _highest_note = _data_note_min which leads to an empty note range and a division by zero (line 397, 398 above).

In any case it would be nice to show the note-name. Also related to #477 and https://github.com/alcomposer/ardour/tree/p_roll_test_midnam

@ngeiswei
Copy link
Contributor

ngeiswei commented Aug 2, 2020

If min range is intentional, then I can see the utility of such menu item. It would probably entail to set a max size of the diamond in percussive mode, cause otherwise, when the track is large (and even when it's minimized), diamonds start to overlap too much.

@akimaze
Copy link
Author

akimaze commented Aug 2, 2020

@x42 Oh, I missed that division, I think in that case range should be set to 1. I will fix that. Also I try add note name.

@ngeiswei My intention was to simulate the LMMS Beat Editor:

beat_editor

I think that with this option (one note range in MIDI editor) Ardor is even more useful because you can easily humanize/swing notes without loosing fast "pattern-like editing" (In LMMS you need to open track in midi editor and when you change note position it disappear from beat editor).

Percussive mode not working for me. For example when I get "Kick" preset from ZynAddSubFX (lv2) it's played too short, is this working for you when you set crystal notes? Should I configure something?

@x42
Copy link
Member

x42 commented Aug 2, 2020

I like the simplicity of this! As opposed to other in this direction, this is nice and clean.

Then again, I also think this needs a more general solution. e.g. for a hi-hat track you may want to show 3 notes.
Maybe also on @alcomposer can explain his ideas to only show named MIDI notes (using MIDNAM) and dedicated scales. He made some nice videos/gifs to showcase the idea.

I also think it's a very poor replacement for LMMS Beat Editor. Have a look at origin/beatbox3 branch. That's work-in progress to add a MIDI-region editor/creator in the likes of FL and Numerology. Perhaps @pauldavisthefirst can elaborate.

@pauldavisthefirst
Copy link
Contributor

I like the general idea quite a lot, but haven't had a chance to test it out yet.

the newbbgui branch is the one most related to what x42 mentioned above (the beat editor), but it's not currently in a state where trying it out will reveal anything (the engine part is there, but the GUI is not)

@akimaze
Copy link
Author

akimaze commented Aug 2, 2020

In any case it would be nice to show the note-name.

I added note name since the area is small I had to make it vertically (A#3 is too long):

note_name

Then again, I also think this needs a more general solution. e.g. for a hi-hat track you may want to show 3 notes.

This solution is really only a stronger zoom and does not undermine the sense of introducing more advanced solutions, but I think that in many cases it will be sufficient/helpful. Not only with drums but also in any other situation where we only use one midi note.

Maybe also on @alcomposer can explain his ideas to only show named MIDI notes (using MIDNAM) and dedicated scales. He made some nice videos/gifs to showcase the idea.

Do you have any links? Can't find anything.

Also related to #477

I compiled that, very helpful I can't wait when will be merged :)

I like the general idea quite a lot, but haven't had a chance to test it out yet.

I think it fits well with the philosophy of working in MIDI at Ardor :) I'm the one who likes integrated MIDI editor (although I didn't like it at first, I had to work few hours to start liking it). And this option is a good complement to this idea.

the newbbgui branch is the one most related to what x42 mentioned above (the beat editor), but it's not currently in a state where trying it out will reveal anything (the engine part is there, but the GUI is not)

I was looking for this branch beatbox3 but found only very old beatbox. Thanks for clarification. Are there any docs about how the beat editor will look?

@x42 @pauldavisthefirst I worked hard on this today, because I am leaving tomorrow and will be available after 11 August 2020. So if any changes will be needed, feel free to make them or wait for me to come back.

Sorry for bad English.

gtk2_ardour/piano_roll_header.cc Outdated Show resolved Hide resolved
gtk2_ardour/piano_roll_header.cc Outdated Show resolved Hide resolved
@akimaze akimaze requested a review from x42 August 13, 2020 12:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants