Advanced Categorize toolbar

Any ideas about how to improve MediaMonkey? Let us know!

Moderator: Gurus

JonasFermefors
Posts: 4
Joined: Wed Feb 06, 2008 5:59 pm

Advanced Categorize toolbar

Post by JonasFermefors » Tue Jul 15, 2008 4:44 am

Request for official wishlist entry.

The categorize toolbar is a very useful MM feature that could be made a lot more powerful with some simple modifictions.
Currently it holds classification for Rating, Tempo, Mood, Occasion & Quality.

Suggested New classes
There are several classifications I would like to see:
Genre - Quick access to genre settings.
Artist/View Album - Change album to one listed in the current view.
Artist/View Date - Change date to one listed in the current view.
Custom Fields - Set a custom field (a size limit may need to be implemented for this - to avoid problems :wink: )

Menu Options
An option for the toolbar to set which icons to use and to enable multi-value menues for applicable classes (e.g. Genre/Occasion/Mood) - see next section.

Multiple entries.
By adding a checkbox to fields that have multiple entries it would be easy to set several entries i.e. a multi-value drop down menu shows a check box to the left of each entry allowing several to be checked.
The view would still display entries with a ";" separator as it does today.

mutronbiphase
Posts: 1
Joined: Thu May 31, 2012 12:02 am

Re: Advanced Categorize toolbar

Post by mutronbiphase » Thu May 31, 2012 12:10 am

I made this script to give you one-click access to multiple moods.
It only works for the currently PLAYING song.
You need to save it in the Auto scripts section as a .vbs file, and reload media monkey. It will create a dockable panel. If you close the panel you can reopen it by going to the View menu, go to the bottom, and it's "Mood Setting Panel"

When you click one of the mood checkboxes, it adds that to the mood for the song if it's not already on there. It also adds the semicolons for multiple moods.

By editing the below code in the places I marked out, you can change the position and number of the checkboxes as well as the genres you want them to set.

It should be easy enough to modify the code to make another panel that lets you do the same thing with Occasions or any other text field.

I hardly know VBScript or Mediamonkey programming so any requests on this I will not be able to do, someone with more time and inclination can pick that up for you!
Enjoy

I would like to thank Mediamonkey's dev team for making such an awesome product that allows you to do so much on its own, and then expand it using code. Beats Itunes easy.

Code: Select all


 
 
Dim Mnu, Pnl, Lbl, Lbl2 
 
Sub OnStartup 
  Set UI = SDB.UI 
 
  Set Pnl = UI.NewDockablePersistentPanel("TestingPanel") 
  if Pnl.IsNew then 
    Pnl.DockedTo = 2 
    Pnl.Common.Width = 250 
  end if 
  Pnl.Caption = "Mood Setting Panel" 
  Script.RegisterEvent Pnl, "OnClose", "PnlClose" 
 
  Set Lbl = UI.NewLabel(Pnl) 
  Lbl.Autosize = false 
  Lbl.Multiline = true 
  Lbl.Common.SetRect 10, 10, Pnl.Common.Width-20, Pnl.Common.Height-20 
  Lbl.Common.Anchors = 15  '1+2+4+8 

'don't change anything above this line


' USE THIS PART TO EDIT CHECK BOXES GENRE and position
'Change Checkbox Captions to Genres you want
'Use "SetRect" to change position of each checkbox
'Copy paste 6 lines of checkbox code to add a new checkbox
'All clicks to checkboxes are handled by the 1 event handler at the bottom
'which looks at the caption of the control that calls it



 Set ChB = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
ChB.Common.SetRect 3, 0, 100, 20 
'left, top, width, height
  ChB.Caption = "Epic"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set ChB = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 123, 0, 100, 20 
  ChB.Caption = "Determined" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set Chb = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 3, 20, 100, 20 
  ChB.Caption = "Sad" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set ChB = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 123, 20, 100, 20 
  ChB.Caption = "Happy" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set Chb = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 3, 40, 100, 20 
  ChB.Caption = "Ethereal" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set ChB = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 123, 40, 100, 20 
  ChB.Caption = "Peaceful" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set Chb = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 3, 60, 100, 20 
  ChB.Caption = "Goofy" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set ChB = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 123, 60, 100, 20 
  ChB.Caption = "Scary" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set Chb = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 3, 80, 100, 20 
  ChB.Caption = "Angry" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set ChB = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 123, 80, 100, 20 
  ChB.Caption = "Romantic" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 

 Set Chb = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 3, 100, 100, 20 
  ChB.Caption = "Adventurous" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set ChB = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 123, 100, 100, 20 
  ChB.Caption = "Popular" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set Chb = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 3, 120, 100, 20 
  ChB.Caption = "Cool" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 


 Set ChB = UI.NewCheckBox( Pnl) 
  ChB.Common.ControlName = "ChB" 
 ChB.Common.SetRect 123, 120, 100, 20 
  ChB.Caption = "Fun" 
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick" 







''don't change anything below this line

 
  ' Add menu item that shows panel after it is closed 
  Set Sep = SDB.UI.AddMenuItemSep(SDB.UI.Menu_View,0,0) 
  Set Mnu = SDB.UI.AddMenuItem(SDB.UI.Menu_View,0,0) 
  Mnu.Caption = "Mood Setting Panel" 
  Mnu.Checked = Pnl.Common.Visible 
  Script.RegisterEvent Mnu, "OnClick", "ShowPanel" 
 
  Script.RegisterEvent SDB, "OnChangedSelection", "OnSelection" 
End Sub 
 
Sub ShowPanel(Item) 
  Pnl.Common.Visible = not Pnl.Common.Visible 
  Mnu.Checked = Pnl.Common.Visible 
End Sub 
 
Sub PnlClose( Item) 
  Mnu.Checked = false 
End Sub 
 
Sub OnSelection 
  
End Sub


Sub ChBClick( ChB) 



Dim objSongList   , objSongData
 Set objSongList = SDB.NewSongList   

 Set objSongData = SDB.Player.CurrentSong 
 objSongList.Add(objSongData)    

Dim StringMood, StringNewMood, StringAddMood
 StringMood = objSongData.Mood

StringAddMood =  ";" & ChB.Caption


If InStr(StringMood,ChB.Caption) = 0 Then
'Old Mood does not contain the one you checked. 
StringNewMood = StringMood & StringAddMood 

objSongData.Mood = StringNewMood 
objSonglist.UpdateAll           

End If '   If Old Mood contains New Mood, no action is taken.
ChB.Checked = false
                        
End Sub






windcrest77
Posts: 399
Joined: Sat Aug 07, 2010 12:28 pm

Please add Genre selection to categorize toolbar

Post by windcrest77 » Sun Mar 16, 2014 2:19 pm

It would really save a huge number of clicks if you could add a button to the Categorize toolbar with a drop down list of the Genres, just like we get for "Occasion", "Mood", etc. I would think Genre is much more important of a field to have on the Categorize toolbar in fact. Right now you have to edit in the grid or you have to pop up the properties dialog just to set the Genre. It would be so much easier to just select the files in the grid then click one drop down list to apply a selected Genre to a bunch of songs. In fact I would say all the fields that offer drop downs should have such drop down toolbar buttons available. Setting Genre is too time consuming right now especially in large collections with hundreds of genres.

thanks
Last edited by Lowlander on Sun Mar 16, 2014 4:03 pm, edited 1 time in total.
Reason: Merged with existing post

Tänzerin
Posts: 11
Joined: Thu Sep 17, 2009 5:26 am

Re: Advanced Categorize toolbar

Post by Tänzerin » Mon Feb 23, 2015 10:45 am

very usefull Skript! I love it!
:D :D :D

but i can't see when a mood is checked even it stands in the tag.
and
is it possible to remove an choise with the skript?

kind regards!

Post Reply