LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
8.16k stars 1.01k forks source link

Extending pitch knob's range / glissando and pitch bends in the Piano Roll #51

Closed unfa closed 5 years ago

unfa commented 10 years ago

Hey, I frequently wish I could turn the pitch knob up 4 tones or such. How about another knob changing pitch knob's range?

Another thing is a way to make a glissando between selected notes that will in fact work just like automating the pitch knob. I think of it this way, because it would work with ZynAddSubFX whitch is my weapon of choice. It could work be selecting notes which are to start the glissando and pressing a "Gliss note" checkbox (Ctrl+G shortcut?). Then whatever note is overlapping with that one will not send another note-on, but make a pitch ramp as long as the two notes overlap.

Also a pitch curve could be displayed with control point for making manual pitch bends and changing the shape of the glissando ramp. concept 01

softrabbit commented 10 years ago

Great idea, but it might need a bit of rethinking the interface to MIDI plugins (Zyn included) for it to work well with polyphony there. Something like having each note on its own MIDI channel, which would mean all parts in Zyn must have the same patch loaded.

And if the notes don't overlap, make it glide from the end of the first to the start of the second...

unfa commented 10 years ago
  1. Yes this won't work with polyphony.
  2. Making a Gliss Note that doesn't overlap with any other IMHO should be interpreted as usual without making the ramp from the end of one note to the start of another.

2014/1/17 Raine M. Ekman notifications@github.com

Great idea, but it might need a bit of rethinking the interface to MIDI plugins (Zyn included) for it to work well with polyphony there. Something like having each note on its own MIDI channel, which would mean all parts in Zyn must have the same patch loaded.

And if the notes don't overlap, make it glide from the end of the first to the start of the second...

— Reply to this email directly or view it on GitHubhttps://github.com/LMMS/lmms/issues/51#issuecomment-32617441 .

Tobiasz unfa

-----BEGIN GEEK CODE BLOCK----- Version: 3.1 GIT/MU/P d->-- s+:-(--)> a? C++(+++)>$ ULC+(++)>$ !P? L+++>++++$ E? W++>$ !N-? !o--? K-? !w-- O? !M-- V? PS++ PE++ !Y+ !PGP+? !t(+) 5? !X !R+ tv b+>+++ DI>+ D+ G e h-->- !r y--() ------END GEEK CODE BLOCK------

mikobuntu commented 10 years ago

it could still be possible to have glide working with polyphony, for example the highest note or lowest note of a chord would glide to the next available lowest or highest note. Just have a checkbox for whichever method is preferred . It may also be possible to just highlight a single note, press a "glide" button and then choose the target note. multiple selected note could theoretically work this way too ...just my 2 cents :)

unfa commented 10 years ago

mikobuntu: it could work with polyphony if you selected two notes and then pressed Ctrl+G making these notes binded together with a Gliss (first note is made a gliss note, and has the ID of a note assigned to it set). Also drawing the pitch curves would help here to see which notes are glissed where,

However I have no idea how to make this work with the instrument plug-ins and it won't work with ZynAddSubFX.

softrabbit commented 10 years ago

@mikobuntu , The limiting factor is MIDI, explicit glissando with variable curves would have to be done through pitch bend AFAIK, and that applies to the entire channel. So the non-gliding notes have to be on another channel. Should be pretty doable for the "native" plugins, as they already have separate note pitch automation.

diizy commented 10 years ago

There is no practical way for glissando to be ever implemented for ZynAddSubFX, since it uses MIDI for input.

Maybe it could be done for native instruments... but, is it worth the effort? I think it may be better to keep it as something implemented in the instruments themselves (like LB302 already does).

softrabbit commented 10 years ago

@diizy, totally worth the effort IMO. I've heard LV2 supports per-note bending, too. And besides, is there a better way to e.g. slide a major chord 2 semitones down and then from major to minor? (if one would like to do such a thing without buying a pedal steel guitar...) @unfa, how would your requirement for overlapping notes look in this scenario? Pretty crowded, I think, especially in the semitone glide at the end. glissando

diizy commented 10 years ago

@softrabbit, well, I mean, you can already do glissando notes manually by using pitch bends. The current implementation of the pitch bend automation makes this pretty easy, too, considering that copied notes maintain their pitch bend information.

I don't think an overlapping pitch bend implementation would be a very good idea - seems to me it'd be likely to cause conflicts and overcomplexity. So the only smart way to do this would be to use the existing pitch bend functionality and add some helper tools to make glissandoing easier.

Maybe some kind of click-n-drag tool that you could use to drag from one note to another which would automatically create a pitch bend from the point you clicked to the beginning of the note you dragged to. Or if there isn't a note in that position, one would be created there according to the quantization grid. Then if you wanted you could later edit & finetune the slide with the regular pitch bend tool.

How does that sound?

Sti2nd commented 9 years ago

Close?

Spekular commented 9 years ago

@tresf Hasn't this been implemented? Or maybe it should be edited.

tresf commented 9 years ago

@Spekular I don't know. I know we have some cool new detuning effects available, but what is being described in the original bug report I undestand to be more of a proper glissando slide from one exact note to another.

The automation editor can be used to pitch an entire instrument -- or in the case of detuning -- an individual note -- but I don't believe we have the capabilities to slide note-to-note without making some pitch guestimations...

image

Spekular commented 9 years ago

@tresf Ok!

Sti2nd commented 9 years ago

Is the difference between glissando and pitch bend that with pitch bend there will be silence between when the new note starts playing and the pitch bend note is released, whereas glissando makes this seamlessly?

I think unfa suggests the ability to draw glissando/pitch bends in the Piano Roll, not having to open the Automation Editor.

tresf commented 9 years ago

IIRC the main difference is just the way it is used for composing. Note accuracy from a piano roll perspective. FLStudio and Ableton for example, have what is being described inside the piano roll editor.

Snarfdog commented 9 years ago

I've always wanted to be able to do this in the piano roll too. I luckily came across an open source project file that had exactly what you guys are talking about. Take a look at this picture: pitch bend in piano roll

In the song it does a perfect glissando down one octave over the length of the note. This occurs at other points in the song where it glisses down a few whole steps (the end of the arrow is the end pitch obviously). Unfortunately I have no idea how it was accomplished.

tresf commented 9 years ago

That little blue automation graph button does that.

Snarfdog commented 9 years ago

Oh, just figured it out. Sorry, I'm an LMMS noob :)

EDIT: So how is this different from a glissando between two notes? I guess there would still be an attack on the next note...

tresf commented 9 years ago

Oh, just figured it out. Sorry, I'm an LMMS noob :)

I just figured it out last week myself... No worries. :)

EDIT: So how is this different from a glissando between two notes? I guess there would still be an attack on the next note...

It's really the same thing, but if you look at unfa's diagram, glissando is usually note-based rather than pitch based. Most piano rolls just have note sliding available. Try the LB302 with the slide button on and you'll quickly notice how much faster it is to slide note-to-note rather than note to pitch. :pizza:

tresf commented 9 years ago

I don't think an overlapping pitch bend implementation would be a very good idea - seems to me it'd be likely to cause conflicts and overcomplexity. So the only smart way to do this would be to use the existing pitch bend functionality and add some helper tools to make glissandoing easier.

Agreed, unless we decide to introduce some note grouping functionality -- such as color assignments.

Umcaruje commented 9 years ago

I think this should be closed, since pitch automation is shown correctly in the piano roll now, and the pitch knob has a range.

tresf commented 9 years ago

Perhaps, but the "between selected notes" description unfa originally asked for hasn't been implemented yet, just an arbitrary graph which has no control over which note it is landing on.

I actually find the per-note pitchbend to be less granular than a stand-alone automation graph, which is a separate issue entirely, but speaks to the difficulty in getting the note slide correctly, which is really what this bug report is asking for.

tresf commented 5 years ago

I think this should be closed, since pitch automation is shown correctly in the piano roll now, and the pitch knob has a range.

Agreed. We can file a new request for the enhancements that are missing.