Author Topic: Additional Tagging & Reporting Tools  (Read 1180400 times)

boroda

  • Hero Member
  • *****
  • Posts: 5288
Hey! I have the weirdest glitch (I think) about as long as I remember with AT&RT. When I try to use "Copy tags to clipboard" by using the context menu (Right click) on a album on my Music tab and past it to an other album on for example my Inbox tab, AT&RT in the context menu will disappear completely. I don't quit have the exact pattern to reproduce this bug, but sometime it disappear only on my Music tab, sometime on my Inbox tab, and sometimes on both. What do work is actually closing the tabs and create them again.

couldn't you recall if you renamed tag set(s) when context menu disappeared?

boroda

  • Hero Member
  • *****
  • Posts: 5288
new version v9.3 beta 2:

https://www.mediafire.com/file/ex95elsmtc3n67s/mb_TagTools_debug.zip/file

* "*RN" for Roman Numerals is changed to "#RN" in the exception word list
+ The exception word list now supports regex matching (but only for entire words, not for phrases). Regex must be preceded by * and included in curly brackets, e.g., *{CD[0-9]+} for matching CD1, CD2, CD312, CD55, etc.

hiccup

  • Hero Member
  • *****
  • Posts: 9149
* now all tags are sorted alphabetically with a few exceptions, and real tags are sorted 1st with track properties (e.g. track duration) after them.
Thanks, this is much better.
(now only waiting for the first person to complain that 'Virtual15' comes before 'Virtual5'  ;-)

boroda

  • Hero Member
  • *****
  • Posts: 5288
Can someone walk me through printing a list of albums, I've installed the "Additional Tagging & Reporting Tools" (version 9.2.9193.30430) (MB Version 3.6.9202) but I'm lost as to how to set up the report.

I assume I would start with "Library Reports" and choose either Albums & Tracks or Album Grid (Album List)? After that I'm lost.

I tried to just click preview after selecting Album & Tracks and Album Grid but got an error message. I'm sure the basic setup to generate the list is easy but i can't figure it out.

Please any step by step would be appreciated. Thank you.

Below is the error message hiccup suggested I send.

MusicBee v3.6.9202.37404D  (Win10.0), 14 May 2025 16:17:

System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.String.Join(String separator, String[] value, Int32 startIndex, Int32 count)
   at System.String.Join(String separator, String[] value)
   at MusicBeePlugin.LibraryReports.AggregatedTags.GetComposedGroupingTags(List`1[] groupingValuesLists, Int32[] dependentGroupingColumns, Boolean totals)
   at MusicBeePlugin.LibraryReports.processFileGroupings(SortedDictionary`2 queriedFilesDict, Boolean interactive, Boolean queryOnlyGroupings, PresetColumnAttributesDict groupings, Boolean
...

i think i know what the issue is. try the new version:

Version 9.3 Prerelease 1 (9.3.9301)

* LR bugfixes
+ Minor enhancements

https://www.mediafire.com/file/ntrp91845tcxdtg/mb_TagTools_9.3.prerelease.zip/file
Last Edit: June 19, 2025, 09:47:36 PM by boroda

eugenesv

  • Jr. Member
  • **
  • Posts: 36
I don't understand why my simple rule fails and inserts duplicate the ampersand text in a single replacement rule that should append album artist to the beginning of artist and add a separator
Code
(.*) search in Album artist
$1 &  replace in Artist (appended via +> flag set)

So the album artist is appended once (as expected), but the separator ampersand is appended twice (not expected)
What am I doing wrong? Thanks!

boroda

  • Hero Member
  • *****
  • Posts: 5288
I don't understand why my simple rule fails and inserts duplicate the ampersand text in a single replacement rule that should append album artist to the beginning of artist and add a separator
Code
(.*) search in Album artist
$1 &  replace in Artist (appended via +> flag set)

So the album artist is appended once (as expected), but the separator ampersand is appended twice (not expected)
What am I doing wrong? Thanks!

i think it's well known some kind of bug which is present in all regex engines. try to insert ^ before .* in search pattern:

Code
^(.*) search in Album artist
$1 &  replace in Artist (appended via +> flag set)

eugenesv

  • Jr. Member
  • **
  • Posts: 36
Thanks, this works!
And as far as I understand you can't use <Artist> "variables" directly, right, it's all exclusively regex, so you must only do it via matches and inserts?

By the way, is there any way to see changes in real time instead of having to click on the rule to edit, edit it, exit, hit preview, see the fail and do all the needless steps again? Or at least make the rule editing window non-modal so you can edit it and hit "Preview" in the main window


boroda

  • Hero Member
  • *****
  • Posts: 5288
By the way, is there any way to see changes in real time instead of having to click on the rule to edit, edit it, exit, hit preview, see the fail and do all the needless steps again? Or at least make the rule editing window non-modal so you can edit it and hit "Preview" in the main window

it's done for the next update. ASR editor will be always in front of ASR window, but it's no more modal and can be minimized.
Last Edit: June 27, 2025, 04:44:19 PM by boroda


boroda

  • Hero Member
  • *****
  • Posts: 5288
Version 10.0 Beta 1 (10.0.9304)

* Various bug fixes
+ ASR presets can be auto-executed once a month on the first MB start in the new month
+ New ASR preset “Write play & skip counts monthly” (write play count history to custom tag). You must manually tick the checkbox “Run monthly” if you want to use this preset
+ New LR preset “Play & skip count statistics” which shows play count history/statistics. First turn mentioned ASR preset on to write periodically write the statistics to custom tag

https://www.mediafire.com/file/c9m7nbp4a7hyfuo/mb_TagTools_beta.zip/file

boroda

  • Hero Member
  • *****
  • Posts: 5288
Version 10.0 Beta 2 (10.0.9305)

+ New ASR function \@sortmultivalues[[values;;separator]]
* Docs update

https://www.mediafire.com/file/c9m7nbp4a7hyfuo/mb_TagTools_beta.zip/file
Last Edit: June 23, 2025, 04:01:01 AM by boroda

boroda

  • Hero Member
  • *****
  • Posts: 5288
Version 10.0 Beta 3 (10.0.9307)

* Typo corrections in the documentation
+ One "Play count statistics" LR predefined preset has been split into five. Should be more helpful for users now.

https://www.mediafire.com/file/c9m7nbp4a7hyfuo/mb_TagTools_beta.zip/file

july60

  • Newbie
  • *
  • Posts: 12
Hi Boroda,
I installed V10.0 Beta 3 and tried to make a Library report.
I selected some files and tried ALBUMS & TRACKS.
When I click Preview, either MB crashes completely or crashes and the At&RT windows remains open but cannot be closed.
Taskmanager doesn't show any MB application running but still I cannot start MB again.
I had to restart the PC to be able to launch MB.
Here are some errors logs:

25/06/2025 18:31:18 - 10.0.26100.0 - 3.6.9202.37404D - System.ArgumentException: Ongeldige parameter.
   bij System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
   bij System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
   bij System.Windows.Forms.Control.Invoke(Delegate method)
   bij MusicBeePlugin.Plugin.CopyBitmap(Bitmap newBitmap) in D:\Repos\Additional-Tagging-Tools\Plugin\Main-Module.cs:regel 6408
   bij MusicBeePlugin.LibraryReports.ResizedArtworkProvider.Init(Int32 artworkField, SortedDictionary`2 artworkCache, Int32 presetNewArtworkSize) in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 2382
   bij MusicBeePlugin.LibraryReports.executePreset(String[] queriedFiles, Boolean interactive, Boolean saveResultsToTags, String functionId, Boolean filterResults, Boolean forceCacheUpdate, SortedDictionary`2[] queriedGroupingTagsRaw, SortedDictionary`2[] queriedActualGroupingTags, SortedDictionary`2[] queriedActualGroupingTagsRaw, Nullable`1 readOtherwiseProcessExcludedGroupingTags) in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 2899
   bij MusicBeePlugin.LibraryReports.previewReport() in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 5671
   bij MusicBeePlugin.PluginWindowTemplate.serializedOperation() in D:\Repos\Additional-Tagging-Tools\Helpers\PluginWindowTemplate.cs:regel 4302
   bij System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   bij System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   bij System.Threading.ThreadHelper.ThreadStart()

25/06/2025 18:32:09 - 10.0.26100.0 - 3.6.9202.37404D - System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld.
   bij MusicBeePlugin.LibraryReports.prepareBackgroundPreview() in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 5612
   bij MusicBeePlugin.PluginWindowTemplate.clickOnPreviewButton(PrepareOperation prepareOperation, ThreadStart operation, Button previewButton, Button okButton, Button closeButton, Boolean clearPreview) in D:\Repos\Additional-Tagging-Tools\Helpers\PluginWindowTemplate.cs:regel 4682
   bij MusicBeePlugin.LibraryReports.buttonPreview_Click(Object sender, EventArgs e) in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 6847
   bij System.Windows.Forms.Control.OnClick(EventArgs e)
   bij System.Windows.Forms.Button.OnClick(EventArgs e)
   bij System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bij System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bij System.Windows.Forms.Control.WndProc(Message& m)
   bij System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bij System.Windows.Forms.Button.WndProc(Message& m)
   bij System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bij System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bij System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

25/06/2025 18:32:20 - 10.0.26100.0 - 3.6.9202.37404D - System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld.
   bij MusicBeePlugin.LibraryReports.prepareBackgroundPreview() in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 5612
   bij MusicBeePlugin.PluginWindowTemplate.clickOnPreviewButton(PrepareOperation prepareOperation, ThreadStart operation, Button previewButton, Button okButton, Button closeButton, Boolean clearPreview) in D:\Repos\Additional-Tagging-Tools\Helpers\PluginWindowTemplate.cs:regel 4682
   bij MusicBeePlugin.LibraryReports.presetList_SelectedIndexChanged(Object sender, EventArgs e) in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 7507
   bij System.EventHandler.Invoke(Object sender, EventArgs e)
   bij System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e)
   bij System.Windows.Forms.CheckedListBox.OnSelectedIndexChanged(EventArgs e)
   bij System.Windows.Forms.ListBox.WmReflectCommand(Message& m)
   bij System.Windows.Forms.CheckedListBox.WmReflectCommand(Message& m)
   bij System.Windows.Forms.ListBox.WndProc(Message& m)
   bij System.Windows.Forms.CheckedListBox.WndProc(Message& m)
   bij MusicBeePlugin.CustomCheckedListBox.WndProc(Message& m) in D:\Repos\Additional-Tagging-Tools\Helpers\CustomControls.cs:regel 2756
   bij System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bij System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bij System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

25/06/2025 18:33:32 - 10.0.26100.0 - 3.6.9202.37404D - System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld.
   bij MusicBeePlugin.LibraryReports.prepareBackgroundPreview() in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 5612
   bij MusicBeePlugin.PluginWindowTemplate.clickOnPreviewButton(PrepareOperation prepareOperation, ThreadStart operation, Button previewButton, Button okButton, Button closeButton, Boolean clearPreview) in D:\Repos\Additional-Tagging-Tools\Helpers\PluginWindowTemplate.cs:regel 4682
   bij MusicBeePlugin.LibraryReports.buttonPreview_Click(Object sender, EventArgs e) in D:\Repos\Additional-Tagging-Tools\Plugin\LibraryReports.cs:regel 6847
   bij System.Windows.Forms.Control.OnClick(EventArgs e)
   bij System.Windows.Forms.Button.OnClick(EventArgs e)
   bij System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bij System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bij System.Windows.Forms.Control.WndProc(Message& m)
   bij System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bij System.Windows.Forms.Button.WndProc(Message& m)
   bij System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bij System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bij System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

voodoopunk

  • Full Member
  • ***
  • Posts: 221
When I click Preview, either MB crashes completely or crashes and the At&RT windows remains open but cannot be closed.
Same...
Black Flag - The First Four Years

Dizza17

  • Full Member
  • ***
  • Posts: 192
@borda

I don’t believe that any of the current ASR presets achieve this or if it’s even remotely feasible. I currently have custom tag “involved people” for the non instrument contributing people ie producer, engineer, mixer etc. a large number of tracks also contain the artists who play an instrument, which I would like to either remove these entries or move to the “artist” tag so they can be split in the “musician credits” tag. I’m having trouble with the best way to do this without damaging the parts of the involved people tag that I don’t want to touch.

The general format of the “involved people” tag for the tracks in question is: role:person; role:person; role:person; instrument: person; instrument:person; etc.
Any help with this would be greatly appreciated.
Regards Aaron
When the rich wage war, it’s the poor who suffer.