Playlister V1.3
Posted: Mon Oct 17, 2016 3:31 pm
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
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