Playlister V1.3

Applications, Games, Tools, User libs and useful stuff coded in PureBasic
User avatar
mrv2k
User
User
Posts: 51
Joined: Fri Jan 20, 2012 3:40 pm
Location: SE England
Contact:

Playlister V1.3

Post 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
Last edited by mrv2k on Tue Apr 25, 2017 1:42 pm, edited 1 time in total.
User avatar
Lunasole
Addict
Addict
Posts: 1091
Joined: Mon Oct 26, 2015 2:55 am
Location: UA
Contact:

Re: Playlister V1.0

Post 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
"W̷i̷s̷h̷i̷n̷g o̷n a s̷t̷a̷r"
User avatar
mrv2k
User
User
Posts: 51
Joined: Fri Jan 20, 2012 3:40 pm
Location: SE England
Contact:

Re: Playlister V1.3

Post 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
User avatar
Kwai chang caine
Always Here
Always Here
Posts: 5342
Joined: Sun Nov 05, 2006 11:42 pm
Location: Lyon - France

Re: Playlister V1.3

Post by Kwai chang caine »

I have not see your code before :oops:
A little bit late to say thanks for sharing 8)
ImageThe happiness is a road...
Not a destination
Post Reply