mzero / elk-herd-project

The bug tracker and wiki for elk-herd, software for Elektron instruments
63 stars 0 forks source link

Possible bug with v3.0 beta 3 #10

Closed flux-us closed 3 years ago

flux-us commented 4 years ago

Hi Mzero,

Brilliant work you have done so thanks for providing this, it really helps a lot especially for creating live sets from existing projects using the merge.

I appear to be seeing strange behaviour with the latest version, pretty sure it worked fine with the previous version.

I have loaded a project from a saved project file that has a mixture of samples loaded from +drive and the sound pool and then clicked to select unused samples, but it has missed out the samples from slots 80 -127 (which are not used in any pattern). A screen grab is shown below:

Annotation 2019-11-04 221737

I also found if I then deleted the selected unused and then crunched them down and saved the project back to Digitakt, then fetched it again it has filled all the unused patterns saying 2 samples are being used (0 & 1), even though there are no other patterns with trigs.

Annotation 2019-11-04 222852

When I fetch any project it seems to think that all patterns are full, with the ghost patterns as above saying they are using 2 samples (slot 0 & 1).

Annotation 2019-11-04 224327

Is there still an active link to beta 2 so I can try it there?

Thanks. regards, Andrew

mzero commented 4 years ago

beta 2 is no longer up, but I'll put up a version later today.

Can you send me the original project file?

mzero commented 4 years ago

BTW, I notice in the original image that you have four patterns, but they are all "phantoms" - meaning that they have no trigs, but seem (according to elk-herd) to have tracks using non-default samples. Is that how you had your project set up?

flux-us commented 4 years ago

Hi mzero,

No the project has 4 patterns, plus one phantom pattern which I used to copy/paste a pattern, but then cleared, but it still shows up (pattern 8). All 4 patterns have trigs on all 8 tracks and each pattern uses 6 samples, which some are definitely from the sound pool. I'll paste a screen shot again showing the selected first pattern:

Annotation 2019-11-05 181046

Also the saved project file is here:

Call to Prayer.zip

Sorry it was actually the v3.0 Beta 2 I wondered if you could put back up as I am sure that worked correctly.

If there is anything else I can do to help debug this let me know, as it isn't working for me at the moment, but it used to :-)

Many thanks, regards Andrew

mzero commented 4 years ago

First - the unused sounds issue:

The sounds in slots 80 to 127 are all in use in the project:

If you only want the samples used by patterns to remain - you'll need to delete the sound pool items you don't want first.

If you select sample slot 80, then shift click on sample slot 127 to select them all, you'll see that most of the sound pool items highlighted as being related.

elk-herd works this way because I didn't want it to inadvertently delete sound pool items.

mzero commented 4 years ago

Second - untitled phantoms:

I can reproduce this issue - and it reproduces back with beta 1, so it's been there awhile. I think the problem is only in that the unused patterns are being marked as phantoms, and so you wouldn't have seen this during alpha, when there was no phantom support.

Some quick questions:

  1. In this compressed form of the project, the four patterns, and all the sound pool items look okay to me. Do they play correctly for you?
  2. Did you create a "blank" project, that had no sound pool items, and save that.... Then later use a copy of that to create this project?

I think I know what is going on...

On the Digitakt, blank patterns have tracks 1 through 8 set to sample pool slots 1 through 8. In this project, slots 1, and 3 through 8 are unused. When these are deleted, and then compressed.... Anything pointing to those slots is set to slot 0 (since the sample is no longer loaded in the project), and what was pointing at slot 2 is now at slot 1 (as it was moved down). This is as expected..... but it also happened for blank patterns, making them reference only slots 0 and 1.

Later, when you fetch those back - they no longer look like a blank pattern to elk-herd, because they don't have the default 1 ~ 8 assignment.

Proposed fix:

I think during shuffling (either due to compress, or drag-n-drop), empty patterns should not be "shuffled", and left to refer to slots 1 though 8, even though what those slots are may have changed.

mzero commented 4 years ago

Another possible additional fix:

Since anyone who has used elk-herd may well have projects that now have lots of Untitled phantoms due to this.... I'll change the phantom test:

A pattern is considered:

"default kit" is either tracks 1 ~ 8 set to slots 1 ~ 8 in sequence (current Digitakt default projects), or all set to 0 (very early Digitakt projects did this).

Proposed change: "default kit" is tracks 1 ~ 8 only use slots 0 ~ 8, in any order.

This would mean people bitten by this issue with past versions of elk-herd would no longer see tons of untitled phantoms.... but it could consider someone's odd pattern with non-default sample assignments - and still called "untitled". I think that is a risk I'm willing to take! (People name their patterns, right.....? Oh wait, @flux-us didn't.... )

mzero commented 4 years ago

Lastly, you can "fix" the project by selecting all those Phantoms (click A05, shift-click H16). They'll get re-written with standard "empty" patterns.

flux-us commented 4 years ago

Hi @mzero,

Brilliant, thanks for that. And yes I can kinda understand what is happening. This is an old project, and from now on I am naming my patterns, actually mainly because now I can see a reason to do that when using elk-herd :-)

This is what I think happened in creating this project.

Firstly I have a "blank" template project which has all the project settings I always want to use, but has no samples (I have removed the default kit from slot 1 - 8 as I do not want a default kit). This is my base project which I always open and then save as a new project. So I must have created this one, loaded all sounds from the global pool into the project pool and also filled up all the sample slots, mainly because I didn't know what I was doing :-) So I understand now why those samples that were not being used in a pattern could not be removed since they were being used by the sound pool. OK will not do that again. So this answers your question number 2 about a "blank" project, yes I did use a blank project, actually I always do.

I think your proposed fix would work in my situation.

I did follow your fixes and managed to get the project how I want it, and as know when I fetch it it still has all the untitled phantom patterns, I wasn't sure what you meant by "Lastly, you can "fix" the project by selecting all those Phantoms (click A05, shift-click H16). They'll get re-written with standard "empty" patterns." So I selected all the phantoms and deleted them (from elk-herd) and wrote that back to Digitakt. Now when I fetch the project it says:

Annotation 2019-11-06 190427

But the project seems fine at the Digi end, so I can live with that I think.

Many many thanks for debugging this, amazing work and certainly makes me feel much more comfortable with sample/project management, everything was getting a bit of a mess in the machine. I'll buy you another beer :-)

flux-us commented 4 years ago

Hi Mark,

All good so far with the workarounds :-) Just one small request ... are you intending to add the ability to reorder/move tracks within a pattern?? That would be great. Thanks. regards, Andrew

mzero commented 3 years ago

At present - elk-herd has no functions "inside" a pattern - reordering tracks.... moving and copying tracks between patterns... copying kits... etc... would all be part of a pattern/kit editor, which at present I'm not planning.