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

Phantom automation #4628

Closed
Gabrielxd195 opened this issue Sep 27, 2018 · 22 comments · Fixed by #6940
Closed

Phantom automation #4628

Gabrielxd195 opened this issue Sep 27, 2018 · 22 comments · Fixed by #6940

Comments

@Gabrielxd195
Copy link

Gabrielxd195 commented Sep 27, 2018

LMMS has a comfortable automation system. I've noticed that you can automate almost anything, just by dragging and dropping. but to improve it even more, I suggest (unless someone has already said what I'm going to say), phantom automation. It would be useful, when automating for example a piano roll clip, from the same automation editor to be able to see the midi notes to make a more precise automation, something more or less like in this photo:
automatizacion fantasma de notas

And Better still if that characteristic can be applied to a wave of the sample track something like:
automatizacion de onda fantasma
This ghost function can be complemented with the suggestion #4614 that I gave previously, if we agree these functions, the automation editor would be easier and more precise when it comes to automate. regards

@ghost
Copy link

ghost commented Sep 27, 2018

For showing the notes in the automation editor see: #4575 (comment)

@tresf
Copy link
Member

tresf commented Sep 29, 2018

Very good that # 4575 has mentioned. but in this case I also mention automation with phantom wave of sample track, which would be quite useful and very accurate when it comes to automating audio clips. regards

Please search first. Also fix your title AND description to explain the difference or this will be closed.

@tresf tresf added the response required A response from OP is required or the issue is closed automatically within 14 days. label Sep 29, 2018
@no-response no-response bot removed the response required A response from OP is required or the issue is closed automatically within 14 days. label Oct 2, 2018
@claell
Copy link
Contributor

claell commented Mar 13, 2019

If I am correct, this seems somewhat a duplicate of #1959 at least they seem related.

@ghost
Copy link

ghost commented Mar 27, 2019

I’d made a draft with a slider that makes it possible to vertically scale and position the ghost notes. It still contains some issues but before I duck further into those issues to fix them I’d like to discuss the expected behaviour of the ghost notes in the automation editor, especially the scaling since there are no notes. So please let me know what the expected behaviour is :-)

Video of the draft in action: https://peertube.mastodon.host/videos/watch/35635027-b713-4b6f-875e-bdfd06c1134f

@Gabrielxd195
Copy link
Author

I’d made a draft with a slider that makes it possible to vertically scale and position the ghost notes. It still contains some issues but before I duck further into those issues to fix them I’d like to discuss the expected behaviour of the ghost notes in the automation editor, especially the scaling since there are no notes. So please let me know what the expected behaviour is :-)

Video of the draft in action: https://peertube.mastodon.host/videos/watch/35635027-b713-4b6f-875e-bdfd06c1134f

This is super great! With the ghost notes in the automation editor, the automations are more precise and versatile. From my beginner point of view, to have a better "ideal" behavior, we would have to add and change some things in a general way, such as:

  • Add an opacity knob.
    Opacity is a problem when you have many small notes (and more if you suffer from sight), because they look blurry. I suggest you add an opacity knob but not the ghost notes or the automation points, but the automation layer.

  • Add two sliders.
    The idea of ​​double clicking to activate the secondary function would bring confusion. the best thing would be to add two controls to both functions, both to scale and to move.

  • Ghost notes in pitch bend or detune.
    Currently to do pitch bend or detune is in the automation editor: in the piano roll you just have to click on '' detune '' to do it, but we do not have a reference of the notes in the automation editor. I suggest that by pressing '' detune '' the ghost notes are added instantly in the automation editor, to improve the workflow.

  • Change of position instantly.
    Right now we can open a piano roll window and another automation window simultaneously. in some cases it is sometimes necessary: ​​to modify one or several notes, to raise a semitone, an octave, etc. and this modifies the positions of the notes in the piano roll. this would be a problem because you have to reopen the automation editor with every change in the piano roll, and this would affect the workflow. I suggest that the change of the notes in the piano roll be instantly reflected in the ghost notes of the automation editor without the need to reopen the editor.

  • Make horizontal zoon in the ghost notes.
    Once implemented the ghost notes in the automation editor, to work with the notes with more precision, it would be necessary that the horizontal zoon of the automation editor also affect the measurement of ghost notes, this would be useful for the horizontal scale and for the pitch bend

  • Option '' Restore '' in the sliders.
    This option serves to restore the default values ​​and have the knobs in a menu by left clicking on them. This will be very necessary to restore the scale and position of the ghost notes in the automation editor.

  • Show phantom piano roll image.
    This suggestion may seem absurd if it is not clearly understood or if I can not explain it correctly. Currently in the pitch bend, you have no reference to the musical notes of the piano, but only numbers that represent those notes. This would be useful when you are going to automate the pitch of a sound. I suggest: show the ghost image of the piano roll inside the automation editor to have a reference of the musical notes when it comes to pitch bend.

Good friend how are you talking about this topic I wanted to give my suggestions, and if I'm wrong, please correct it, but before deepening the best would be to discuss this and take into account the ideas. Your contribution is incredible, hopefully you can achieve it. regards

@ghost
Copy link

ghost commented Mar 29, 2019

@Gabrielxd195 first thank you for your input it is appreciated.

Add an opacity knob.

Sure this feature can easily added at a later stage (If agreed upon by others of-course).

Add two sliders.

OK noted. +1 for 2 sliders.

Ghost notes in pitch bend or detune.

I totally agree that this would be a nice feature but it’s a different issue, first things first :-P

Change of position instantly.

So you mean if you edit a pattern in the Piano-Roll then the ghost notes in the Automation-Editor should be updated as well? If so then this could be a problem since the default behaviour will be mirrored from the ghost notes in the Piano-Roll, and those are persistent (ghost notes are saved in the project file). Patterns don’t have ID’s (yet) so we can’t store a pattern ID and thus the current solution is to store a copy of the notes in the project file as the ghost notes. So after setting ghost notes there is no telling where they came from.

Solution would implement unique ID’s for all patterns. But I think this is a different issue.

Make horizontal zoon in the ghost notes.

I guess you mean horizontal positioning of the ghost notes? If so it can be done but then another slider? I don’t think building the Automation-Editor full with sliders is a good idea, so then we have to think about a better solution to control the scale/position.

Option '' Restore '' in the sliders.

A action to restore the scale and position of the slider(s) shouldn’t be a problem at all. But I’m not sure if left-mouse is the right event to trigger it.

Show phantom piano roll image.

Isn’t this the same as Ghost notes in pitch bend or detune.?

@ghost
Copy link

ghost commented Aug 31, 2019

I used the ghost notes in the automation editor so now and then but the manual scaling didn’t feel like it added something. The notes start and end are more important to see in the automation editor.

So I’ve made a second draft without a manual scaling/position slider, in this draft the notes will be centered and scaled if it doesn’t fit automatically. Top and bottom margins can be set in the stylesheet.

Small video: https://peertube.mastodon.host/videos/watch/50958485-1523-4e7b-8a5f-821ed1ea167b

Please let me know if this behavior is acceptable so I can open a PR.

@allejok96
Copy link
Contributor

A somewhat related proposition:
How about having a drop down menu in the automation editor, in which you can select ghost track?

ghost tracks

It would default to the last/currently open piano roll track.

If both the automation track and the ghost track were placed in song editor, they could sync up and display the right ghost notes in the right place... That would be a compromise between #1959 and the current ghost note feature.

If one of them was inside a BB track it would get trickier. Perhaps the ghost could just loop over and over, or simply not have this feature available in those cases, just have the plain "take a ghost snapshot" as it is now.

@musikBear
Copy link

@allejok96 I can definitively understand your suggestion, but the current ghost-note function is implemented with a different logic:
1 : select a pattern to be used as ghosts
2 : make ghost-notes visible
The strength in your proposal, would be ability to change from one ghost-pattern to an other -Very good!
But in that case current ghost-note-method would need to be like that globally. It will be very confusing to have 2 different ways to use ghosts

@allejok96
Copy link
Contributor

Lemme just clarify that the ghost track in my suggestion would not use the current "snapshot" implementation, but instead be a live representation of the source track, with the correct offset...

This would be a game changer for automation, because right now it's really hard to know what comes where when you're drawing the curves. I see the current ghost notes as merely a quick fix to the problem.

@musicbear if you wanted to combine these two implementations, you could have an entry like "Ghost clipboard" in that drop down menu I suggested.

... Not that I think this would ever become reality, it seems too complex.

@allejok96
Copy link
Contributor

Patterns don’t have ID’s (yet) so we can’t store a pattern ID and thus the current solution is to store a copy of the notes in the project file as the ghost notes. So after setting ghost notes there is no telling where they came from.

I see. If song editor tracks has unique IDs and the Automation editor knew the global starting time of the currently edited pattern, it would be theoretically possible with "live" / instantly updated ghost notes?

@musikBear
Copy link

but instead be a live representation of the source track, with the correct offset..

Ahh -So you are talking about having note-representation during playback, projected into the automation-editor, so you can record automation, in relation to the visual displayed notes. You call that live
Is that correctly understood?

That was not what i aimed at at all.
I am only talking about drawing the automation over one ghosted MIDI-TCO, and where lmms is in idle state. It should however be possible to exchange ghosts from f.i. "Pads" to "SoloHorn" -both being track-names. The purpose would be to be able to see drawed automation-fit, with any track, at that specific time-line-position.
The way to do that would be by selecting the track-name in a dropdown, inside [automation / piano-roll]-editor

@allejok96
Copy link
Contributor

No, I didn't mean recording. With "live" I meant that when I change the notes in the track the ghost notes was taken from, the ghost notes will change automatically to match the source. The ghost notes will be a reflection, not just a snapshot.

So I agree 100% with the last part of your comment @musikBear.

@musikBear
Copy link

ghost notes will change automatically to match the source.

Ahh thatta way :) So after ghost-source changes there will be no need for any update of ghosts
Yes that would be helpful

@Gabrielxd195
Copy link
Author

Guys, I think the best solution in the first place would be to be able to group the automation tracks within the piano roll or sample track (as I explain in #4614, and StakeoutPunch in #735).

Create automation tracks and drag them to the corresponding piano roll or sample track, this way it would be tidier, more practical and automatically both editors would be synchronized in the timeline and thus it would be easier to obtain a ghost view in real time of the track we are automating.

What I am trying to explain is implemented in ardor.
Automatizacion en ardour señalada

What I am trying to explain is implemented in ardor.

1- The automation tracks are grouped within the selected piano track. both are synchronized.

2- The armor automation system has a real-time phantom representation of the track that will be automated (it works on midi and audio tracks).

Although ardor does not have independent editors like lmms, but it does exactly what # 4614 and # 735 try to explain, in lmms it can be implemented but synchronizing the time of both timers of the editors with the line of the song editor.

To create all this in lmms the steps would be the following

1- Create or import a piano roll track or sample track.
2- Create the automation track.
3- Drag the automation track (with left button plus ctrl) inside the piano roll track or sample track previously created.
4- Drag the parameters (eg: vol, pan, eq) to be automated within the automation track.
5- The phantom vision of the piano roll or sample track will be created automatically and will be synchronized.

I don't know how much time would have to be spent to implement these features, because in this case, perhaps the only gui element would be an '' A '' button as in ardor or an option in the tracks menu that says: '' show u hide automations. '' but in my opinion, this would be the best option to implement the phantom vision within the automation editor and it would be more orderly and practical. regards

@musikBear
Copy link

musikBear commented Aug 9, 2020

True, @Gabrielxd195 That would be a fine solution 👍 , but i would favour at design where the automation-pattern occupies the same 'realstate' as the notes. If there are to be yet another subdividing field in piano-roll, then it can be difficult to get a decent overview of f.i. chords in 6+ layers.
So a design with your mixed in automation-pattern, but with toggle on/of option, and the automation-part transparently overlaying the notes. (transparency could be user selected, it cost cpu, but it is only in edit-mode.
The ability to toggle visibility on/of will then still allow us to have a clean design, without a cluttered screen, with too much information.
Lastly we would then select the edit-state in the speedbar, and in that way, shift between note-edit, and automation-edit, all done in pianoroll-editor.


Edit Mockup:
image

Edited by @SecondFlight to make the text normal size. Github was being a bit too helpful.

@Gabrielxd195
Copy link
Author

Gabrielxd195 commented Aug 9, 2020

@musikBear You're right, that idea sounds great. But that's why in the first place we will need to create automation groups, an option within the tracks menu or an '' A '' button (as in ardor) to display the automation tracks grouped within the piano roll or sample pattern. track that we are going to automate.

Within the grouped automation tracks and within the main piano roll pattern there would be a button that serves as a direct access to go from one editor to another within the group. in this way we facilitate the workflow in automation. Currently you leave one, go to the song editor, locate the pattern and enter with a double click, but with the groupings and the implemented shortcut button we would avoid all that trip.

Already in case of having both editors mixed or merged, if there was literally a '' fusion '', then it would be a great advantage, because we would have options of the piano roll that we do not have in the automation editor such as: select, copy and paste the points automation; and we would also have the options of the automation editor that we do not have within the piano roll such as: it will flip the piano roll notes vertically and horizontally as when you flip the automation points in its editor, even the latter within the sample track would serve us as: flip vertically as phase shift, and flipping horizontally as reversing. We would have both magnifying glasses, the visibility of one and the other, I think they would complement each other perfectly. but in this case we would need something similar to what @ allejok96 suggests. a drop-down menu or a dialog box where the names of the automation tracks are grouped together and you have the option to select any of them and automate them within the editor already '' merged ''. This idea at first glance may sound a bit absurd, but if you think about it, it would be very practical to have the option to merge both editors and have their options complement each other. but this might take a long time to develop. or someone to make a thread with this. regards

@allejok96
Copy link
Contributor

This has just turned into a debate over how #1959 would be designed.

I can agree with @musikBear on the space saving design with piano roll and automation overlaying each other (#1959 (comment)) But that but that would mean merging the piano roll editor with the automation editor...

@Gabrielxd195 what you suggest with the grouping of automation tracks is really good too. This is already my workflow. One AT per thing to be controlled, positioned under the correct piano track. But it raises more questions, what if we want to connect an automation pattern to lots of piano tracks? Would updating one update the other? Where would an automation track be located if it controlled, say, Master volume? That discussion does not belong here, but my point it it would probably require major changes to the LMMS base, and lots of compatibility breaking changes.

So the big question is: should we wait for a redesign of LMMS and get the features like we really want them, or should we try to patch together what we have and get a weird half-working solution right now? Let's remember that this issue is about ghost notes and you can't edit ghost notes.

Our anonymous friend @ghost seem to have a working code for this already, judging by the videos. But I see no PR... It would be nice to get feedback from more devs to hear if it's worth implementing, or if we should close this issue and wait for something better.

@Veratil
Copy link
Contributor

Veratil commented Aug 9, 2020

Our anonymous friend @ghost seem to have a working code for this already, judging by the videos. But I see no PR...

That's all deleted unfortunately. The user doesn't exist anymore, the ghost account is a placeholder.

It would be nice to get feedback from more devs to hear if it's worth implementing, or if we should close this issue and wait for something better.

Combining automation into the piano roll is something I'd like to see, and as a developer that's spent a lot of time in the paino roll recently, let me tell you right now it'll be a bit of work to get working nicely. I'm still going through the paint event and cleaning it up as best as I can. This is a goal I want to try to get to though, since I find having to switch between windows a pain point. Having a way to switch between automation levels in the window itself is a must. Grouping the automation tracks in the song editor is a nice to have, but not needed for this to work. It would be a somewhat big PR.

@Gabrielxd195
Copy link
Author

Gabrielxd195 commented Aug 10, 2020

@allejok96 In the first place what I suggest is to group the tracks within other tracks therefore this also includes grouping their patterns

Now I answer your questions with a single answer:

what if we wanted to connect an automation pattern to many piano tracks? Would updating one update the other? Where would an automation track be located if it controlled, say, the master volume?.

If this is implemented it would be optional, that is if you wanted to use it or not. You would have both options: group the automation tracks within a piano roll or sample track, or use the tracks independently (as currently used). In the latter case you can add patterns from any piano roll track or sample track within the same automation track without problems; But in the case that you are going to group automation tracks within a piano roll or sample track, you would get a real-time '' phantom '' view of the track within the automation editor, as I show in the photo of ardor. That is, you can automate any parameter, be it master volume, tone, etc. grouping will be a menu option or an '' A '' button to show or hide the automation tracks that have been dragged to it.

That discussion does not belong here, but my point is that it would probably require major changes to the LMMS foundation and many changes that break compatibility.

I am not a developer to know how many lines of code would be written, but I think the change would not be so drastic, (although visually for the end user), as it would only be an option in the track menu, or a button ' 'A' 'to show and hide the automation tracks, and the function of dragging and dropping one track onto another.

So the big question is: should we wait for an LMMS redesign and get the features the way we really want them, or should we try to fix what we have and get a weird half-working solution right now?

In my opinion to make a redesign would have to make changes in the structure of lmms and this would take years of development. I prefer that they release the binaries of the night versions to bring users up to date with the news as soon as possible for everything; that we organize in priority order the new features and most demanded errors, in short, to put ourselves in the place of common users (the typical musician who does not know how to do a "hello world", which are the majority of lmms users); and make more promotions of the news on social networks to gain more followers and contributors.

Let's remember that this problem is about ghost notes and you cannot edit ghost notes.

We have already left the subject, as this should be in another thread. I have not opened it because it is crossed out as a duplicate, they close it and the idea goes to hell. maybe if a contributor or older user reads it, they might tell the lmms developers.

@Gabrielxd195
Copy link
Author

This has just turned into a debate over how #1959 would be designed.

If you could read my previous comments, you will realize that my suggestion is very different from # 1959, I literally speak of a '' fusion '' of which its tools would function and work together in the same editor, but with your Suggestion of the drop-down menu, but I do not open the thread because later it is marked as duplicate. regards

@Gabrielxd195
Copy link
Author

@Veratil

is essential to have a way to switch between the automation levels in the window itself

That is precisely the idea of ​​having both editors working, we could edit the piano roll notes and the automation points within the same editor, choosing the automation tracks from a drop-down menu or dialog box. the tools of both editors would share their tools, but that would only work if we could group the automation tracks within piano roll or sample track tracks.

It's nice to have the grouping of the automation tracks in the song editor, but not necessary for this to work. It would be a rather big PR.

I don't know how difficult it is to implement this, but this feature would be independent, to better order the automations and to improve the work flow. it is basically creating or using automation tracks and dragging them onto piano roll or sample track tracks, and getting a real-time ghost view inside the automation editor. I think the only gui element would be an option: '' Show or hide the automations '' or a button '' A ''. on piano roll or sample track tracks. regards

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

Successfully merging a pull request may close this issue.

6 participants