-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Cut, copy, paste multiple segments in the song editor #46
Comments
Thanks for filing this. I think that the most natural thing would be to place a copy of the clip Also making the duplicates 50& transparent until the drag is released would 2014/1/17 Steve Leonard notifications@github.com
Tobiasz unfa -----BEGIN GEEK CODE BLOCK----- |
One other reason for pasting the first selected segment where the cursor is released regardless of which segment was originally grabbed is that it minimizes the distance you must drag. Say I select 4x1 bar segments, click-drag from the last selected segment to the adjacent empty segment, and the entire selection is pasted on the next 4 bars. Otherwise the distance you must move the mouse is proportional to the length of the selection, which runs into further issues when the length is over half the width of your song editor panel. Also, pasting segments on top of each other is rarely desired. If one really wanted to paste on top of each other, they could still release the cursor on top of another segment. I agree with the transparent duplicates regardless of the rest of the feature's behaviour. |
I think you're right. U guess the clips will not be shifted vertically.
|
I agree, Question is how much is already in place for this for 1.0? On Sat, Mar 8, 2014 at 5:58 PM, Stian Jørgensrud
Jonathan Aquilina |
Mmm, I don't see this happening for 1.0.0. I'll mark this for 1.1.0 for now. |
Do we have any initial implementation at all? Because if not, IMHO we should not mark it for 1.1.0 which could be released in April already. |
On 03/08/2014 08:52 PM, Tobias Doerffel wrote:
I've been marking some things as 1.1.0 because we don't have any later I guess we could just add a 1.2.0 milestone already? Although it might |
The shortcuts "ctrl+a", "ctrl+c", "ctrl+v" in the song-editor would be appreciate too, |
+1 This is the most important missing feature. People have been complaining about it since 2011. |
Would be a great 1.1 feature for sure. Vesa do you think this should be for On Tue, Apr 15, 2014 at 12:26 PM, devinvenable notifications@github.comwrote:
Jonathan Aquilina |
On 04/15/2014 03:13 PM, eagles051387 wrote:
If someone implements it during the next two weeks, sure. Otherwise no. |
What I am very curious to know is what it would entail to implement On Tue, Apr 15, 2014 at 2:45 PM, Vesa V notifications@github.com wrote:
Jonathan Aquilina |
On 04/15/2014 03:46 PM, eagles051387 wrote:
Lots of coding in C++. Track.cpp and the songeditor would probably need |
Why not make this in its own file and call it from the respective files
|
Conceptually this operation doesn't seem difficult. We already have code to select multiple tracks in song mode via edit mode tool. (Though I'm not sure if this state is stored anywhere, or just reflects in the UI.) We already have code that duplicates track cell elements via ctrl-drag. Why not just enable the copy and paste menu items, and do this: I'm oversimplifying, but also suggesting that we "should" be able to repurpose most of the exiting functions by wrapping them with a higher level controller class or function. |
When I looked at the code 2 years ago, it seemed simple enough to implement this for the bare minimum functionality. I may get to this myself, but depends on the compilation time. Last I checked it took 10-30 minutes. If I am not remembering wrong, anyone aware of a way to minimize recompilation time in this project? Ideally <10 seconds, but <60 would be workable. |
On 04/15/2014 07:07 PM, Steve Leonard wrote:
It only takes a longer time the first time you do it. Cmake caches the Usually, for me, small recompiles take 10-15 seconds. |
I should be good then, especially if I can use clang. |
On 04/15/2014 08:12 PM, Steve Leonard wrote:
IIRC there's still some issues with clang compatibility... not sure |
I'm sure this depends on the version of Clang being used, but LLVM 3.4 won't work with SWH, VST and OPL2 due to strictness in the compiler. It also will error out for warning scenarios. Note, it hasn't been tested against with STK yet either. From my tests, this is what's needed to get it to work: To allow Clang to build with warnings:
To prevent Clang from compiling SWH & VST support:
To prevent OPL2 from compiling OPL2 plugin:
Also, the build instructions say to use A detailed description of these work-arounds, which were discovered using OSX Mavericks can be found here: https://github.com/tresf/lmms/wiki/Compile-LMMS-for-OSX-Mavericks#download-and-compile-lmms Most of these work-around have been committed to stable-1.0.0 using ifdefs, etc, however the ifdefs currently detect Apple OS rather than Clang compiler so if you aren't building on Apple, you would need to adjust these manually. Also, not all of these have been committed to the unstable branches yet, so post here with errors and I'll chime in to let you know if there's a quick work-around. |
I guess clang is not klang? As in Kernel Level Audio Next Generation?
|
On Fri, Apr 18, 2014 at 7:13 PM, unfa notifications@github.com wrote:
No, clang is just a modern compiler which breaks a lot of older code when Its the default compiler on OSX, so I've been battling with it recently. :) -Tres |
clang = compiler sadly unfa On Sat, Apr 19, 2014 at 1:13 AM, unfa notifications@github.com wrote:
Jonathan Aquilina |
On 04/19/2014 09:37 AM, eagles051387 wrote:
Not so sadly... better we're talking about Clang than Klang... nothing |
I'm going to pass on clang since gcc is compiling it quickly enough but will look into adjusting the ifdefs to detect clang rather than apple where clang is intended. Which branch should patches be developed against? |
Master. Also, you should preferably make the feature work with undo/redo, which is done by calling addJournalCheckPoint() just before changes are made to the track objects. I'm not sure where exactly this should be called for this group copy/paste functionality, maybe @tobydox could elaborate on that... |
Thanks for mentioning this. I have some candidates for this coming up. I |
|
As long as you're only adding Clang-specific things inside these #ifdefs everything is fine. Please do not add OS X specific things as compilation would fail with Clang on Linux for example. |
Will do. |
Any idea why I can't drag wav samples from the file browser onto the song editor? |
This was merged in master so I'm closing the issue as resolved. If there's issues with the implementation that need discussion, it can be continued in a new specific issue or on the mailing list. |
Hello, In the last message, it says it was implemented in master, for milestone 1.2 and 1.1 I've tested it on LMMS 1.1.3 and latest LMMS 1.2.0-rc2, and it doesn't seem to be implemented. Have I missed something? |
Ok, I see now:
|
I think this issue should be reopened because the way the song editor works is not very consistent with the rest of the copy/paste behavior (like in the piano roll):
Copying multiple segments with ctrl + drag is useful, but not in all occasions, like if you need to copy some segments which are located earlier in a very long song (you have to zoom out, if it's still possible) |
To my knowledge, only one segment can be click-drag copied at a time. This is very tedious.
Selecting multiple segments and click-dragging any one of them should copy all of them to where the cursor is released. In lmms 0.4.15, performing that action ignores the selection and only copies the segment that was originally clicked.
I am not sure if it would be best to place the first segment from the selection onto the releasing cursor location, or copy the selection relative to the segment that was first clicked. The former is probably best since there is no UI indication of multiple stacked segments and the latter would cause frequent mistaken overlapping.
The text was updated successfully, but these errors were encountered: