Page 1 of 1

Playlister V1.3

Posted: Mon Oct 17, 2016 3:31 pm
by mrv2k
Hi

Just want to get your opinions on this little utility that I've written. It's all inclusive and doesn't require any extra dll files to run.

The point of the program is to create large M3U play lists and split them into separate files by time or file number. You can load M3U and MMP files as well as adding whole folders of MP3's. Once loaded the program will extract ID3 data and exact time by processing each MP3 file in the list. Also you can sort, remove dupes and randomize the list. You can also search for missing files individually or automatically. As well as saving M3U play lists, it will save text lists for sites like mixcloud.

It's fairly fast but if anyone has any tips to optimize the code, let me know. At the moment it's Windows only due to a drag and drop callback and a quick listicon refresh but could easily be made cross platform.

F.Y.I. MMP files are for a program called Mixmiester which I use to create mixes on.

Changes
-------

tagreader
1. Corrected frame size calculation on TXXX,COMM and APIC frames
2. fixed a bug that would prevent the last tag in the map being shown
3. Swapped to case statement for tag lookup
4. Fixed missing or invalid filenames

mp3length procedure
1. Added ID3 v2.x header skip
2. Changed header generation to pointers
3. Mp3 file parse uses pointer compare instead of Mid function (A lot faster)
4. Commented out unused checks
5. Added VBR/CBR bitrate calculations
6. Fixed uneven filesize error
7. Fixed corrupt MP3 crash

capitalizestring procedure
1.added check for first letter after left bracket "(" and minus sign "-"

Known Issues
------------
Tag reader can't deal with corrupted frames and bypasses them

Versions
--------

v0.1
----
Combined tagreader and mp3length procedures
Added Square bracket to capitalize string

v1.0
----
Release!

v1.1
----
List now remembers selected item on refresh
Prompt when quitting
Force check on scan info
Added Sort by clicking column headers
Added file error catch in mp3 drop
Changed sort keys to F keys
Added a-z list selection

v1.2
----
Added Artist / Title Search
Option to stop auto refresh on drag-n-drop (Default On)

v1.3
----
Playlist file requester is now multi format
Added open containing folder menu item
Added MP3 folder creation window
Added new window for remove duplicate entries
Fixed a bug where adding an M3U file without paths and then appending a file would lose the M3U folder path info
Added timer to media player
Fixed bug on MP3 Tag reader when loading files with invalid characters in their filenames.
Fixed bug on trying to load missing files.
Added the ability to append quickload files.
Added MP3 folder creation to M3U splitter
Added path removal to M3U creation
Sped up split M3U refresh and improved its logic.
Added ability to exit loading procedure by pressing the escape key
Improved auto search speed
Improved sort ascending/descending logic

I've put the source, icons and an x64 executable in the link below. Make sure to compile it in user mode or the external drag and drop might not work.

https://1drv.ms/f/s!Ajwl_UuvhzLIgVEPssAzst4iLNSG

Any suggestions or feedback is welcome.

Regards

Paul Vince

Re: Playlister V1.0

Posted: Tue Oct 18, 2016 3:03 am
by Lunasole
Hi. I'm using audioplayer to to all the things you described (AIMP 2) so no needing additional program for that, but your program code and tag reader module you posted are very interesting, thanks for posting

Re: Playlister V1.3

Posted: Tue Apr 25, 2017 1:43 pm
by mrv2k
Made some updates.

; Changes
; -------
;
; tagreader
; 1. Corrected frame size calculation on TXXX,COMM and APIC frames
; 2. fixed a bug that would prevent the last tag in the map being shown
; 3. Swapped to case statement for tag lookup
; 4. Fixed missing or invalid filenames
;
; mp3length procedure
; 1. Added ID3 v2.x header skip
; 2. Changed header generation to pointers
; 3. Mp3 file parse uses pointer compare instead of Mid function (A lot faster)
; 4. Commented out unused checks
; 5. Added VBR/CBR bitrate calculations
; 6. Fixed uneven filesize error
; 7. Fixed corrupt MP3 crash
;
; capitalizestring procedure
; 1.added check for first letter after left bracket "(" and minus sign "-"
;
; Known Issues
; ------------
; Tag reader can't deal with corrupted frames and bypasses them
;
; Versions
; --------
;
; v0.1
; ----
; Combined tagreader and mp3length procedures
; Added Square bracket to capitalize string
;
; v1.0
; ----
; Release!
;
; v1.1
; ----
; List now remembers selected item on refresh
; Prompt when quitting
; Force check on scan info
; Added Sort by clicking column headers
; Added file error catch in mp3 drop
; Changed sort keys to F keys
; Added a-z list selection
;
; v1.2
; ----
; Added Artist / Title Search
; Option to stop auto refresh on drag-n-drop (Default On)
;
; v1.3
; ----
; Playlist file requester is now multi format
; Added open containing folder menu item
; Added MP3 folder creation window
; Added new window for remove duplicate entries
; Fixed a bug where adding an M3U file without paths and then appending a file would lose the M3U folder path info
; Added timer to media player
; Fixed bug on MP3 Tag reader when loading files with invalid characters in their filenames.
; Fixed bug on trying to load missing files.
; Added the ability to append quickload files.
; Added MP3 folder creation to M3U splitter
; Added path removal to M3U creation
; Sped up split M3U refresh and improved its logic.
; Added ability to exit loading procedure by pressing the escape key
; Improved auto search speed
; Improved sort ascending/descending logic

Re: Playlister V1.3

Posted: Wed Jul 11, 2018 12:57 pm
by Kwai chang caine
I have not see your code before :oops:
A little bit late to say thanks for sharing 8)