Jump to content
Sign in to follow this  
Kovacic

Thinking of making MP3 organizing utility but need backend ideas

Recommended Posts

Hi all.. I have no code ready yet, so this is more of a 'what are your thoughts' post.

I have a large music collection that is barely organized. I want to make an app that will make a catalog of all the music, rename the files, and organize them in the proper folders by artist / album / song. I plan on using the Mp3 UDF floating around to fix the Tags as needed, and I have the script to scour the directories. What I am wondering about is what format to keep the music data in. I have over 170,000 tracks, and I am afraid if I just have the data in a csv file or something, it will be slow or crash. I am thinking either SQLite, or XML or something like that. I would like something easy to deploy so if anyone else wants to use it, its an easy install.

 

Does anyone have any experience using autoit with large amounts of data? I wrote an asset tool that manages around 5000 items with an SQL backend (not lite) and works flawlessly, thats why I was thinking SQLite... 

 

Any thoughts on this idea, or was this already done and I am just reinventing the wheel?

 

Thanks!!


C0d3 is P0etry( ͡° ͜ʖ ͡°)

Share this post


Link to post
Share on other sites

I was kind of in the same spot, I have a huge amount of music in my collection, on an external tb drive, but got tired of when I put songs on my cell phone, it wouldn't show up right with the artist, song title, ect ect ect

several months ago, I ended up reloading my pc with Linux mint, cause I didn't like win10 at all, and found the program banshee music (kinda like iTunes)

it organized all my music in a catalog, and I was able to write meta data etc etc

well... that didn't really help you at all, just throwing something your way.

Share this post


Link to post
Share on other sites

Feature request: Duplicate file finding is a must.

Honestly, I think you should just have some Co-processing for loading, sorting, and saving the catalog. No matter what you use otherwise for storage, your program will stall while it does these and you'll get a bunch of invalid bug reports. Pretty much everything else can be done in the main program.

Edited by rcmaehl

My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.

My Projects
Cisco FinesseGithubIRC UDFWindowEx UDF

 

Share this post


Link to post
Share on other sites

Personally, I find using multiple INI files with one or more index INI files, best serves my catalog needs, but it depends on your end game really. I use multiple INI files to get around the limitations of INI files, and so long as you have a proper Index INI file(s) regime, all is usually fine ... provided you take the other INI file issues into account.

XML also has issues, and I have found speed as a deterrent with them too. Not tried making a multiple version scenario of them to get around the speed issue.

SQLite I am yet to try.

In the end, depending on your anticipated needs, you might well be better served by something already in existence. Been a while since I looked, but I imagine there are a few good freebies around, with Sourceforge being a good place to start looking perhaps, though be aware they no longer enjoy the reputation they once had, due to spam installers, etc.

You may even be able to find something you can easily interact with, with your own coding, to add what may be missing or make your own changes .... kind of like a frontend scenario.

All in all though, there are (probably surprisingly) quite a few factors to take into account when building your own catalog database. It all depends on the level of control you require. When it comes to music, I require a lot of control over all sorts of things ... which has turned out to be quite a huge number of aspects.

Unless you are prepared to go to that trouble or want to go to that, then you just may well be better off with something by a third party.


AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By CYCho
      zPlayer is the name I used when I introduced the early version of this palyer in my blog back in early 2009 and, therefore, has nothing to do with the mobile media player of the same name which started marketing in 2015.
      After I retired from active duty in 2002 I spent much time listening to music. First I started with CD's and LP's, then quickly moved on to mp3 files. I converted many of my CD's to mp3 and I collected many more from various sources which were freely available at the time. As the number of my mp3 files grew, I put them in folders according to their genres and my favorite classifications. I mainly used Windows Media Player to listen to them and I slowly began to dislike wmp because it had massive user interface while I just wanted to listen to music in the background while I was doing other work in the foreground, hopping between folders from time to time. It was the time I was beginning to learn AutoIt and I thought I should make my own player with AutoIt. Coming from a sales career with no experience in programming, it was not an easy task. Somehow, after about 2 years of learning and trying, I had my own audio player which worked with only hotkeys without any graphical interface. I gave it to some of my friends who were not as computer-savvy as I. They liked it but definitely wanted something to clcik with mouse. So I came up with very rude gui which took a form similar to what it is now.
      The attached source files include one au3 file, one icon file and 14 jpg files. The jpg files are used for drawing a graphical player and are fileinstalled in @DocumentsCommonDir folder. This player uses WMPlayer.OCX as its engine and supports all audio file formats supported by wmp and additional codecs installed. I would like to thank @Bilgus for kind answers to my questions and would appreciate it if anyone could review the code and give me any suggestion. This player works for me, but I don't know whether the code is presentable as an example. I am posting this here with a hope to learn much from AutoIt community.
       
      PS: 1. An error (Variable used before declaration) was reported and corrected - 02:00 hours GMT,  March 14, 2019
            2. An error in tray menu was corrected -10:00 hours GMT, March14, 2019
            3. AutoIt3Wrapper_Au3Check_Parameters definition was added at the top of the code and all ensuing errors were corrected. - 00:10 hours GMT, March 16 2019
            4. Some features were added. - 10:30 hours GMT, March 18, 2019
                a. Jumping to new play-back position in a file
                b. Support for a manually made playlist
                c. Ctrl+Alt+h hotkey to trigger a help message box
      zPlayer_20190318.zip


    • By careca
      <snip> for the most similar result and convert and download the mp3.
      Script asks for the user to write or paste the song name in the text file, or a list of them, then starts downloading line by line
       
       
    • By argumentum
      ..so I upgraded to Win10 and a script I use to rename mp3's didn't work. Looked around, and  looked around, so I said f** it. So I open the file and see a bunch of null terminated data, so I made an array and got what I wanted.
      Func mp3RawRead_Comment($f) If Not FileGetSize($f) Then Return "" Local $a, $s, $h = FileOpen($f, 16) Local $b = FileRead($h, 4096) FileClose($h) $s = BinaryToString($b) $a = StringSplit($s, Chr(0)) If UBound($a) < 73 Then Return "" Return $a[71] _ArrayDisplay($a) EndFunc ;==>mp3RawRead_Comment So what is my burning question ?, ...I can't find a "proper" definition that explains why / how / ??, that is there. All I find, is just not congruent to what I see in the file.
      So no hurry, no big need. Just curious. If you know, let me know 
    • By wakillon
      Mp3SearchEngine v2.0.0.6

      May be some of you know Songr .
      This script do the same job, it can find more mp3 files but is not as fast as Songr.
       
       



      Sites used are music search engine Websites designed for LEGAL entertainment purposes only.
      Thanks to Brett Francis, Prog@ndy and Eukalyptus for >Bass Udf, trancex for >WinHttp Udf and the AutoIt Community for his help.

       
      Changes of v1.0.8.5
       
      Three websites replaced cause they are dead or use now js.
      All search engines updated ( not without difficulties for audiodump)
      I use RAGrid.dll for the first listview (more fast and stable, but with some inconvenients to manage the no-edit of cells)
      Input queries are saved ( the twenty latest)
      I use now an mp3 pre-Load management before playing and a double progressbar for visualize pre-load and play, where you can click for directly go play in the loaded part.
      Most includes needed are embedded and all external files are embedded in script with >BinaryToAu3Kompressor .
      Multi downloads available with embedded downloader.exe
       
      Changes of v1.0.8.8
      Search on audiodump and myfreemp3 fixed.
      New buttons.
      Added Gui Menu.
      Titles are no more editable.
      New "About" with >TaskDialog (Thanks Prog@andy)
      Query button permit now to check / uncheck all checkboxes
      And some few fixes and cleaning.
      Really more stable now.
      Changes of v1.0.9.2
      Dilandau is replaced by mp3chief and mp3ili by mp3clan 
      Search on mp3juices, baseofmp3 and soundcloud fixed.
      Soso now provide m4a (aac) instead of mp3 ( m4a can be played by MSE)
      Added possibility to encode automaticaly to mp3, aac or ogg ( at the end of download) using bassenc.dll and command line tools : lame, faac and oggenc.
       
      Changes of v1.0.9.3   mp3skull fixed mp3chief fixed myfreemp3 fixed mp3clan changed to tusmp3  mp3juices changed to emp3world baseofmp3 changed to imp3 and some minor improvements.  
      Version 2.0.0.6
      Most previous websites used are dead or have changed the way to get links, 
      so instead of try to repair the previous version, i have created a complete new version.
      The main tendency is the simplification :
      Only one website : audiodump (Up to 500 results by request)
      Script use now the little pearl created by Ward : curl.au3
      It permit to create tasks (get source and get multi mp3) in asynchronous mode.
      So now, no need to use several executables and no more gui who do not respond in case of connection problems. 
      Script use Bass.dll X86 loaded in memory for play songs.
      Result is light and fast, but don't abuse of audiodump servers who are not beasts of race.
      Warning : For avoid errors with curl.au3, you'll need to comment the line 63 : ;~ #Include <BinaryCall.au3>
      @AutoItX64 not supported and only tested on Win7X64 and Win8.1X64.
      As your browser, use Ctrl+w for remove the current Tab.(if there is no search or download running from it)
      And also Ctrl+q for set/remove Gridlines.
      Events are displayed to the bottom of the Gui.
       
      Version 2.0.1.1
      Added a Paste Button.
      Querry list is now correctly saved.
      Querry Combo is now sorted in alphabetical order
      After a 'No match', the next search will use the previous empty listview.
      Bug when removing tabs is corrected.
      Added string correction for the request that, in the previous version, was not always able to return a correct result.
       
      A big thanks to Ward for his great UDF, and Nina my favorite tester, (who between us is also my third daughter), for his precious advices .
      previous downloads : 1703
       
      As there is no more script downloads count, source and executable are available in the downloads section

      Enjoy ! 
      July 2017 Project Discontinued due to website changes
    • By wakillon
      TinyMp3Player : A basic Mp3 player 

      Hold left shift key and click load music button for select a mp3 directory, instead of a single mp3 file.
      A random check box for listen randomly.
      An automatic random config set the type of Audio meter display at each start or each click on the Next button.

      Previous downloads : 447

      TinyMp3Player v 1.0.1.7 Update of 2012-07-28

      Source : TinyMp3Player v 1.0.1.7.au3
      executable : TinyMp3Player.exe.html
      (Once this html file downloaded, double click on it for start the download)
      Changes :

      mp3 and m3u can be associated to compiled script. ( Double click )
      Contextual menu can be added for mp3, m3u and folder. ( Right Click )

      How to proceed : Once compiled, run it, and in tray menu click on "Add Context Menu"
      Once done, you can double click on any mp3 or m3u ( or Right Click on mp3 folder, mp3 or m3u ) and it will be played by compiled script.
      You can also Remove Context Menu ( by tray menu ) and your previous association will be restored.
      Gui do not close if you start a new play...
      Added a new skin and did a lot of cleaning !
      Tested on XP sp3 32 bit and Seven 64 bit.

      Bass.au3 and ?do=embed' frameborder='0' data-embedContent>>WinApiEx.au3 are needed.
      As usual some external files ( dll and icons ) are downloaded at the first execution to @TempDir & 'TMP'.


      Thanks to Brett Francis for his Bass.au3 ( external download link on Eukalyptus Topic on AutoIt.de )
      Thanks to Eukalyptus, Prog@ndy for their BassExt.au3
      Thanks to Melba for his _StringSize function
      Thanks again to Eukalyptus for his AudioMeter.au3
      Thanks to Yashield for his ?do=embed' frameborder='0' data-embedContent>>WinAPIEx UDF

      Hope you like it !

×
×
  • Create New...