Kemper Duplicate Finder - free program to detect duplicate amp/cab profiles

  • Hallan brought up an issue that I'd appreciate some feedback on. So the way the program currently works, it processes each file in the Your Rigs folder, listing all files that contain a duplicate profile. If two or more rigs in the Your Rigs folder have a duplicate profile between them, and that duplicate profile matches a profile in one of the rigs in the Compare To folder, then you basically get repeating groups in your results.


    A screen shot is attached to demonstrate. I used the same folder for both Your Rigs/Compare To and put 3 copies of the exact same rig in it. You'll see many groups of 3 files each. The groups alternate on which profile matched - amp then cab, amp then cab, etc. The first two groups were based on the "Copy (2)" rig - you see it listed as the first file in these groups. Then the program moves on to process "Copy" and you basically get the same 2 groups. Finally it processes the file without "Copy" in its name and get the same two groups yet again.


    Originally, the program was based upon data blocks, not files. I switched it to files to make it simpler to understand - it processes File A, then File B, etc. Some files might not be displayed if there's no match, but you can zero in on the first file in a group, then see what it matches against.


    So there's two remedies I can think of - either I suppress duplicate groups and say screw having each matched file in the Your Rigs folder represented as the first file listed in a group. This would work the same as it currently does, but in the included example, you'd only see the first two groups - one for the amp match, and one for the cab match.


    OR


    I make 2 grids - the first just contains each file in the Your Rigs folder that has a duplicate profile in one of the rigs in the Compare To folder. When you select any particular rig, the other grid populates with the rigs that contain a duplicate profile. The upside here is that the results are a bit more clear. The downside is that it takes more effort on the part of the user to see all the results.


    I am thinking of making a "save all results to text file" option, which would be a quick way to view all results, allowing the program itself to be more interactive as described in the 2nd option.


    Well, what would be ideal for you?


    [Blocked Image: http://www.foobazaar.com/kemper/duplicateGroupIssue.png]

  • Thanks MAB, this is a great idea :)


    Since I think it will have some momentum, and since you're at the beginning, might I suggest you the Total Commander approach?



    [Blocked Image: https://upload.wikimedia.org/wikipedia/ru/4/41/Total_Commander.gif]



    The ideas would be as follows: the user can open two views, which can or not be related to the same folder. Let's call the left one "the Source", and the right one "the Check". Files may be listed by date or by name.


    When the user presses "Process", each file in the Source that has got duplicates in the Check will be evidenced with a colour, which is the same colour the duplicates in the Check will be evidenced with.
    The user has got the possibility to delete files in any windows.


    As long as the app is successful, it might implement other functions and options from Total Commander, that I BTW consider the best file manager utility ever invented, and that I use daily since decades, FWIW :)


    Thanks for your attention, and your time.

  • any kind of tie in with file system operations (open containing folder, delete, rename, etc.) will come down the line. I'll need people willing to test for that - the last thing I want is for some bug to start wiping out random profiles (i do have a bit more confidence in my code than that, but there's always a small chance).


    i like the idea of being able to see all the results in the right-hand grid but have each source file in the left-hand color coded to match the results. The problem there is that I'll quickly run out of colors and things can get confusing again.


    I think the simplest thing is to only populate the right-hand side by selecting a file on the left-hand side. let's give that a go.

  • new version is up. The Find Duplicates button now displays a list of all rigs in the Your Rigs folder with duplicates in a grid on the left-hand side. When you click on any of these rigs, the right-hand grid will fill with all the duplicates. Makes things more clear to understand.


    I also added a save to file feature, which dumps everything similar to how the grid looked in the last version.


    I def need to spruce some things up - it's a little clunky looking and things aren't sizeable as you'd like, but the functionality is mostly there.


    [Blocked Image: http://www.foobazaar.com/kemper/2pane.png]

  • so as you can see in the above, i do both the amp and cab matches in the same grid on the right. would it be more helpful to split this into 2 top/bottom grids, top for amp matches, bottom for cab matches?


    Only going by the pic here (can't try it on my mac) - but what about checkboxes, like "show duplicate rigs", "show duplicate amps only", and "show duplicate cabs only"?


    And what about "show identical rigs" (where only rigs that are duplicate AND have the same amp parameters and cab parameters are shown)?


    Maybe selectable search criteria (checkboxes): "Match A: Rigs; B: Amps; C:Cabs; D: amp parameters; E: Cab parameters; F: EQ; G: stomps; H: Stacks.....



    Whatever.... No idea how to best implement it form a UX perspective.... Just some random musings :-)

  • ok beta release 1.0 is up.

    • i cleaned up the UI for the 2-grid result. It can now be resized as you'd expect.
    • i added checkboxes for view amp matches, view cab matches, and hide matches with same author. this can be used to quickly zero in on the changes you want to see.
    • i fixed a bug Hallan pointed out where .kipr files that weren't rigs (amp profiles, cab profiles, effects presets) would all be flagged as matches, because the amp/cab hashes were never computed and remain as blank strings.
  • Michael mentioned some things above, and maybe we can get feedback on how useful they'd be:

    • An option to only show matches between rigs where both the amp and cab profiles match, not just one of the two or both
    • An option to display only completely duplicate rigs (matching amp profile + matching cab profile + matching settings (including all effects blocks, tempo, etc.?))
    • being able to find rigs based on basically any set of matching criteria (Stomps match, Stomp A matches, Amp Parameters match, etc). This would require some thought for an elegant UI solution.

    I don't want to bloat the UI, and I don't know if it's worth the time to build out a separate advanced options page that can pop up. I can definitely see the value in the top two options, and those would only be 2 additional checkboxes. The 3rd point gets way more complex depending on the level of detail needed.


    FYI, I've been running this thing across huge numbers of rigs to see if any funny business has been going on. There's some interesting results here and there - I haven't really been doing thorough checking, just clicking around randomly. Most duplicates are using the same cab or amp profile over multiple profiles from that same author. So some of those commercial packs where you see 40 profiles are not actually 40 different profiles, but more like 5 amp profiles and 8 cab profiles combined in every possible combination. Not really shady, but some results may not match 100% to the real deal. This is why I added the Hide Same Author option - which is useful for authors who want to make sure someone else isn't trying to take credit (or sell) their work. Those results did pop up some results for the free rigs I have - occasionally it looked like a cab would get re-tagged. Nothing looked super shady, but it is deceiving. Intentional, I can't determine.


    Now for the good news, I ran it against my entire commercial collection of > 3,000 rigs. Not a single case where there was a duplicate profile retagged.

  • I don't want to bloat the UI, and I don't know if it's worth the time to build out a separate advanced options page that can pop up. I can definitely see the value in the top two options, and those would only be 2 additional checkboxes. The 3rd point gets way more complex depending on the level of detail needed.




    Yeah, third option is probably a bad idea.


    I was / now am thinking more like


    A) Matching amp AND cab profiles (as you said)
    B) A checkbox to include as a criterion that all AMP and CAB block parameters should match as well (hiding rig variations where those parameters have been altered)
    C) A checkbox to include as criterion that EQ should match as well (i.e. EQ knobs, pre/post position)
    D) A final checkbox to include as criterion that all stomps and effects should match as well


    Checking B, C and D would be the same as your option 2 above.


    I think the third option in your post is overkill, and unnecessary! :-) I was either not thinking straight, or unclear in what I said (I'm not sure which ;-))


    Does this make sense?

  • Regarding D), I don't know which depth it would be necessary to go to.
    I can see several possible layers to this:


    1) Which effects are loaded in each slot.
    2) further: which effects are on/off (i.e. if reverb is on in one rig, and off in another (otherwise identical) rig
    ....
    X) Individual parameters of each effect are the same


    I can see scenarios where 1 and 2 could be relevant, but I think that's about it.


    It could, however, be beneficial to exclude individual stomp/FX positions from the criterion. I have usually locked the reverb and delay and a wah in slot A, so when I tweak a rig and store it, the new rig will have those three baked in (altered from the original). Therefore, it would be beneficial to me to be able to NOT compare these three slots across rigs. However, the value may be limited to other people and I don't know if it would be practical to implement.

  • The settings should match the nrpn midi reference, so it shouldnt be too difficult to do their on off state. But if you try to go too deep you have to look up what type any effect is before you know what parameters to expect. Really dont feel like programming all that. Might as well make an editor lol. But just checking for complete slot matches may not be too difficult since you dont care how many or what the params are - only that they all match.


    I did see some midi sysex's for settings that are not listed in the midi reference as well, so there may be wildcards. To exclude just those i basically have to program all the valid addresses, which i would prefer to avoid.