PROGRAM: MEDIA PLAYER CLASSIC HOME CINEMA (MPC-HC) LOOPER
REVISION HISTORY:
07-20-19
A feature request addition - allow Looper to load an event, but not automatically play it. So you can double click on an event in the list,
cue it up in MPC-HC, and then wait for you to start playback in MPC-HC when you're ready.
03-13-19
Basically a quick bug-fix release fixing two issues:
While using Looper, I noticed 2 weird things that weren't working to my specification, notably the new "jump-back to Loop Mode" function
I added when switching between files in MPC-HC (if you load a new file in MPC-HC independently of Looper, Looper switched back to Loop
Mode automatically, which broke one of my uses for Looper) - I added a new conditional to account for this, so that's 100% good now.
I also noticed some weird speed loading issues when switching to new files, so I reorganized the procedure for switching between events when switching those events also needed to switch to other media files at the same time, so that also should be 100% good now.
03-09-19
After getting several requests for new features, as well as reports of a bug that freezes Looper occasionally when it tries to "do too much", I re-visited the codebase, removed one of the UDFs added to Looper the last time around (the custom colors and bolding UDF) and
added some requested features. Here's a look at everything that's changed since the last version!:
- FIXED: A GitHub user put an error report in that Looper was not recognizing settings for Allow Multiple Instances if MPC-HC was
using an .INI file to store settings instead of using the registry. So the check for that variable also now checks not only the registry,
but both 32 and 64 bit MPC-HC .ini files to ensure the setting is set correctly with MPC-HC.
- FIXED: I removed the custom listview colors and fonts UDF from Looper's codebase, as using that seemed to brick Looper when too
many things were happening at the same time. The UDF worked very well, but I wanted to showcase which file was loaded in a less
intensive way. So I added:
- ADDED: An arrow character, to show which event is currently playing. If you have an event loaded, it should show the > next to it.
- ADDED: The ability to leave Looper in the mode it is currently in as you open new files. This lets you stay in Playlist mode or Shuffle
mode when loading a new file, and...
- ADDED: The ability to save that mode and open new instances of it in that mode. So you can leave looper in Playlist or Shuffle mode,
quit out of Looper, and then open a .looper file in Windows Explorer and have it also open in Playlist or Shuffle mode.
- ADDED: A preference option in the Options pane to do the above step ^
- ADDED: A new "New Event"/"Modify Event" dialog box, which lets you specify how many times each event should play in Playlist
mode. Also:
- ADDED: The ability to specify how many times each event is supposed to play in Playlist mode. For example, you can have event
2 play 3 times, then event 3 play 4 times, event 4 play only once, and then event 5 play 4 times. Each event has its own individual
setting (specified by the new Looper Name extension "<L:") that indicates how many times it's supposed to loop in the playlist.
02-01-18
The first Looper release in almost two years! I have had several requests in the last few weeks to add some features, and I've fixed a few
small bugs as well... Thanks to We the People and BeyonderLover for recent requests, I have had others in the past few years, but have
not yet had a chance to implement those... but I'm still working on it! Here is the list of changes since the 2016 release:
- FIXED: A weird Windows "feature" that copies the text of a label (like a textual label, for example the timecode field) to the clipboard
when you click on it... I don't know why the "feature" exists, but I've fixed this!
- TWEAKED: Used UPX compression on the executable file - originally didn't want to use UPX, because I've heard of false virus
positives coming from UPX compressed executables, but I ran the scan and didn't have any different results compared to the non-
compressed .exe - so the filesize is about 2/3 the size of the old .exe file!
- ADDED: A much better display of which event is currently playing! Using an AutoIt UDF, I changed the display to highlight the
currently playing event in the color of the Loop Mode button, and the text changes as well to bold to highlight that event better.
- ADDED: Along with the better highlighting options, the current event highlight will move along with any drag and drop operations.
(for example, if you're playing Event 2, and you move it into a slot later in the events list, the program will change "Playing Event 2"
to reflect the new position in the list).
- ADDED: (by request) The ability to play only the playlist items you have highlighted - you can now have a playlist of 10 (for example)
events and highlight 2, 4, 7 and 10 and Looper will only play those events. Deselect an event to take it out of the current rotation,
or select an event to put it in the current rotation. Selecting nothing will just play the playlist like normal.
- ADDED: A small context menu option to combine several events into one combined event, taking the IN point from the first selected
event and the OUT point from the last selected event. This is made mainly for me (and my Trimmer program that I still want to release
but haven't had a chance to yet), but could be useful for making EDL like lists of edits for trimming later.
- ADDED: A new set of hotkeys for trimming, SHIFT and [ ] , and . will trim IN or OUT by the default amount of 1/20 of a second
regardless of the setting you have set in the preferences. Useful for tweaking IN and OUT points just a little bit...
- ADDED: A head-less (GUI-less) version of Looper, by request. Looper in this mode will minimize to the system tray, so there
will be no Taskbar icon (and no icon to ALT-TAB to), but Looper will still operate as if the GUI was there.
04-15-16
Well, I don't know if the programming Gods were angry about something, but the last version was marked as malicious by pretty much
every virus scanner around, randomly, despite there being nothing malicious whatsoever about Looper. So I don't know at all what
that was about, but I re-installed AutoIt completely, went over the codebase multiple times and re-compiled again, so hopefully,
hopefully that isn't an issue any more. It hasn't happened with any of the prior versions, so I have no idea why it happened now!
ANYWAY! Moving on...
- CHANGED: Lengthened the GUI by 30 pixels and moved elements around the GUI for one major feature request -
- ADDED: The ability to sort by duration! I added a duration field to the events list, and you can now sort by duration as well!
- CHANGED: Added the entire codebase to GitHub - so if anyone is curious to see what Looper is made of, it's now available!
03-12-16
Several minor but requested improvements - including:
- MAJOR ADD: The ability to turn tool tips off on the main Looper panel
- CHANGED: Changed the speed slider indications from 0.25x, 0.5x, 0.75x, etc., to proper percentages (25%, 50%, 75%, etc.)
- CHANGED: Improved looping right out of the box (with no IN or OUT points set) to fix MPC-HC's inability to loop an audio file
seamlessly by setting the out point just before its natural ending point (this change was done, because when you loop
an audio file in MPC-HC normally (without using Looper), there is always a little skip as it recues - this fix hopefully eliminates that, if not improves it substantially)
- CHANGED: The main program has a shorter "rest" loop (20ms instead of 50ms), so the program responsiveness is more snappy
- CHANGED: When setting an IN point that's later than the current OUT point, the OUT point will now be cleared
- FIXED: A small bug that came up when loading 2 different events, set to the same speed, but with 2 different files. To the program,
it originally appeared as if MPC-HC was set to the "altered" speed, but MPC-HC was switching back to 100% when switching the files, so the speed didn't re-adjust - now it does
09-26-15
Many, many, many improvements! Also many new suggestions, many of them by Chris Storm - thank you Chris!
- The ability to sort the columns in Looper by clicking on their respective columns
- The ability to search the events list for events matching a specific word or phrase
- The ability to order the Looper events sequentially, to restore original order after sorting
- To that end, I completely re-wrote the delete procedure to reorder the above sequential list properly
- The ability to run multiple Looper instances to control multiple MPC-HC playback sessions
- To the same end, I re-wrote the entire opening procedure to "play more nicely" with multiple instance .looper files loading
- The ability to load a .looper file without auto-playing its first event
- The ability to hold down the trimming buttons to continue trimming (similar to a CD player, holding down the REW/FF buttons)
- The ability to dock the Looper window to the MPC-HC window on either side
- Completely re-wrote the Options Panel and gave it many new default settings to save and system options to choose
- The ability to set more things as default, such as the Loop Mode button setting, Always on Top button setting, Docking setting, etc.
- The ability to exit dialog boxes and not have Looper automatically start MPC-HC playback
- Added the option (by default!) to ask if you want to re-open MPC-HC if you quit out of it by mistake, which is also disable-able-able
- Tweaked the Windows association (associating .looper files with Explorer) to be a little more straightforward
- Moved the Options button to the bottom left, and added...
- The Reveal Path button, that lets you see where the current playing MPC-HC file is, in Windows Explorer
- Tweaked the loading procedure to improve the speed of loading .looper files immensely!
- Fixed up and re-wrote some tooltips to bring everything up to speed
- Shuffle Mode added (left and right mouse click and CTRL-4 activates it) - this is a suggestion from before that didn't get implemented
(to my satisfaction) until now, I had the procedure written, but didn't like the way I had the button set up originally... fixed!
04-11-15
Slight change to the way event loading scrolls the playlist - the current playing event will now always be visible on screen (and the playlist
function auto-scrolls as items advance)
04-07-15
The actual new release :) 03-02-15 was never released due to much testing and other work that came up, but the newer version has all of the
above and much more!
- Added speed control and speed indicators to MPC-HC Looper for individual event-based and runtime-based playback speed changes
- Added buttons to the side of the speed controls to provide a physical area to move back and forth through the playlist
- Greatly improved how the program handles dimension changes in the main window. You can actually drag the window out to any
vertical size now instead of needing to use the pre-defined sizes I originally gave. Thank you, brute-force testing and AutoIt forums :)
- Improved the timer method (to switch between current playback information / entire playlist information) to using i-based ticks instead of the @SEC macro - might not be exactly 6 seconds now, but it's a lot more accurate.
- Improved status text display (specifically display of things like "Setting playback speed to __ percent") procedure
- Improved the tooltips with keyboard shortcut information for every option that has one
03-02-15 (the version that never was... or was it?)
Massive re-tweak of the entire program, with many new features added! Including -
- New icon for .looper files
- Prompt when quitting asking if you want to quit
- Prompt when loading new list asking if you want to save first
- New method for double-clicking on playlist events - if you change the event you're on and want to re-load it, you can now
double-click on the event and it will re-load. The old method would not re-load an event if the event was still current
(Item 1 loaded, change in point, click on Item 1 again, it wouldn't load) - now it will
- Loop event display, showing which loop you're currently on, how many loops are in the entire playlist, and
both current loop time and total playlist duration (click to change)
- OSD panel, showing current loop mode (loop/playlist/off), IN and OUT points, the current loop event name, current/remaining play time
and the loop event display
- New options pane (broken away from the main GUI) with new options to load and save defaults (window size/position, slip time and
preview time) and the ability to associate .looper files with Windows Explorer (so double clicking on a .looper file will now open it
in MPC-HC Looper instead of requiring you to open it within the program)
- Drag-and-drop re-ordering of events in the playlists, both one at a time and multiple selections, and the ability to delete
multiple events at once
- Minor: a "HOTKEYS ON"/OFF display showing whether hotkeys ('i' for in, 'o' for out, etc.) are enabled or disabled - I added this to make
sure hotkeys were disabled when any of the MPC-HC Looper or MPC-HC windows were inactive
- Minor: Tweaked all dialog boxes to stay on top of all other windows
- A redesigned Add Event/Rename Event panel, designed to show up on top of all other windows (so if you're fullscreen in MPC-HC
you can add an event and get back to being in fullscreen)
010115
An error report submitted by YouTube user KPR (https://www.youtube.com/user/teresa1lap) showed .looper file creation didn't handle
UTF text correctly. All UTF text (Korean text, Japanese text, etc.) should now be successfully saved and loaded by MPC-HC Looper.
Playlist handling has been tweaked, if you are currently on Event #1 and start playlist mode, it will no longer play item #1 twice.
101314-2
Changed the save routine slightly. In some instances, the procedure for finding whether or not a file had a .looper extension returned the
wrong value, leading to files with multiple .looper extensions after multiple saves (Test.looper.looper.looper.looper) - Fixed.
101314
Added the ability to minimize - I had things set up funkily with my custom maximize routine that the minimize one got out of whack. Fixed.
101114
Changed routine - how playlist mode views the current file in MPC-HC - if the title bar was set to any other mode but "Display Full Path", MPC-HC Looper re-loaded the file for each playlist item, even if it was the same file. This was fixed with this release.
100514
Initial release version
THINGS TO DO (FOR LATER RELEASES):
- Release FFMPEG trimmer (a work in progress) - I also developed a program that takes .looper files generated from MPC-HC Looper
and passes the list to FFMPEG to trim them into a completely independent and trimmed set of files, including the loops from the
.looper file, and generates a brand new .looper file - re-creating the original set of loops from the original file. The program is
done, and works well, but it's not really "user friendly" enough quite yet (no GUI elements), and I haven't tested it enough yet...
07-20-19
A feature request addition - allow Looper to load an event, but not automatically play it. So you can double click on an event in the list,
cue it up in MPC-HC, and then wait for you to start playback in MPC-HC when you're ready.
03-13-19
Basically a quick bug-fix release fixing two issues:
While using Looper, I noticed 2 weird things that weren't working to my specification, notably the new "jump-back to Loop Mode" function
I added when switching between files in MPC-HC (if you load a new file in MPC-HC independently of Looper, Looper switched back to Loop
Mode automatically, which broke one of my uses for Looper) - I added a new conditional to account for this, so that's 100% good now.
I also noticed some weird speed loading issues when switching to new files, so I reorganized the procedure for switching between events when switching those events also needed to switch to other media files at the same time, so that also should be 100% good now.
03-09-19
After getting several requests for new features, as well as reports of a bug that freezes Looper occasionally when it tries to "do too much", I re-visited the codebase, removed one of the UDFs added to Looper the last time around (the custom colors and bolding UDF) and
added some requested features. Here's a look at everything that's changed since the last version!:
- FIXED: A GitHub user put an error report in that Looper was not recognizing settings for Allow Multiple Instances if MPC-HC was
using an .INI file to store settings instead of using the registry. So the check for that variable also now checks not only the registry,
but both 32 and 64 bit MPC-HC .ini files to ensure the setting is set correctly with MPC-HC.
- FIXED: I removed the custom listview colors and fonts UDF from Looper's codebase, as using that seemed to brick Looper when too
many things were happening at the same time. The UDF worked very well, but I wanted to showcase which file was loaded in a less
intensive way. So I added:
- ADDED: An arrow character, to show which event is currently playing. If you have an event loaded, it should show the > next to it.
- ADDED: The ability to leave Looper in the mode it is currently in as you open new files. This lets you stay in Playlist mode or Shuffle
mode when loading a new file, and...
- ADDED: The ability to save that mode and open new instances of it in that mode. So you can leave looper in Playlist or Shuffle mode,
quit out of Looper, and then open a .looper file in Windows Explorer and have it also open in Playlist or Shuffle mode.
- ADDED: A preference option in the Options pane to do the above step ^
- ADDED: A new "New Event"/"Modify Event" dialog box, which lets you specify how many times each event should play in Playlist
mode. Also:
- ADDED: The ability to specify how many times each event is supposed to play in Playlist mode. For example, you can have event
2 play 3 times, then event 3 play 4 times, event 4 play only once, and then event 5 play 4 times. Each event has its own individual
setting (specified by the new Looper Name extension "<L:") that indicates how many times it's supposed to loop in the playlist.
02-01-18
The first Looper release in almost two years! I have had several requests in the last few weeks to add some features, and I've fixed a few
small bugs as well... Thanks to We the People and BeyonderLover for recent requests, I have had others in the past few years, but have
not yet had a chance to implement those... but I'm still working on it! Here is the list of changes since the 2016 release:
- FIXED: A weird Windows "feature" that copies the text of a label (like a textual label, for example the timecode field) to the clipboard
when you click on it... I don't know why the "feature" exists, but I've fixed this!
- TWEAKED: Used UPX compression on the executable file - originally didn't want to use UPX, because I've heard of false virus
positives coming from UPX compressed executables, but I ran the scan and didn't have any different results compared to the non-
compressed .exe - so the filesize is about 2/3 the size of the old .exe file!
- ADDED: A much better display of which event is currently playing! Using an AutoIt UDF, I changed the display to highlight the
currently playing event in the color of the Loop Mode button, and the text changes as well to bold to highlight that event better.
- ADDED: Along with the better highlighting options, the current event highlight will move along with any drag and drop operations.
(for example, if you're playing Event 2, and you move it into a slot later in the events list, the program will change "Playing Event 2"
to reflect the new position in the list).
- ADDED: (by request) The ability to play only the playlist items you have highlighted - you can now have a playlist of 10 (for example)
events and highlight 2, 4, 7 and 10 and Looper will only play those events. Deselect an event to take it out of the current rotation,
or select an event to put it in the current rotation. Selecting nothing will just play the playlist like normal.
- ADDED: A small context menu option to combine several events into one combined event, taking the IN point from the first selected
event and the OUT point from the last selected event. This is made mainly for me (and my Trimmer program that I still want to release
but haven't had a chance to yet), but could be useful for making EDL like lists of edits for trimming later.
- ADDED: A new set of hotkeys for trimming, SHIFT and [ ] , and . will trim IN or OUT by the default amount of 1/20 of a second
regardless of the setting you have set in the preferences. Useful for tweaking IN and OUT points just a little bit...
- ADDED: A head-less (GUI-less) version of Looper, by request. Looper in this mode will minimize to the system tray, so there
will be no Taskbar icon (and no icon to ALT-TAB to), but Looper will still operate as if the GUI was there.
04-15-16
Well, I don't know if the programming Gods were angry about something, but the last version was marked as malicious by pretty much
every virus scanner around, randomly, despite there being nothing malicious whatsoever about Looper. So I don't know at all what
that was about, but I re-installed AutoIt completely, went over the codebase multiple times and re-compiled again, so hopefully,
hopefully that isn't an issue any more. It hasn't happened with any of the prior versions, so I have no idea why it happened now!
ANYWAY! Moving on...
- CHANGED: Lengthened the GUI by 30 pixels and moved elements around the GUI for one major feature request -
- ADDED: The ability to sort by duration! I added a duration field to the events list, and you can now sort by duration as well!
- CHANGED: Added the entire codebase to GitHub - so if anyone is curious to see what Looper is made of, it's now available!
03-12-16
Several minor but requested improvements - including:
- MAJOR ADD: The ability to turn tool tips off on the main Looper panel
- CHANGED: Changed the speed slider indications from 0.25x, 0.5x, 0.75x, etc., to proper percentages (25%, 50%, 75%, etc.)
- CHANGED: Improved looping right out of the box (with no IN or OUT points set) to fix MPC-HC's inability to loop an audio file
seamlessly by setting the out point just before its natural ending point (this change was done, because when you loop
an audio file in MPC-HC normally (without using Looper), there is always a little skip as it recues - this fix hopefully eliminates that, if not improves it substantially)
- CHANGED: The main program has a shorter "rest" loop (20ms instead of 50ms), so the program responsiveness is more snappy
- CHANGED: When setting an IN point that's later than the current OUT point, the OUT point will now be cleared
- FIXED: A small bug that came up when loading 2 different events, set to the same speed, but with 2 different files. To the program,
it originally appeared as if MPC-HC was set to the "altered" speed, but MPC-HC was switching back to 100% when switching the files, so the speed didn't re-adjust - now it does
09-26-15
Many, many, many improvements! Also many new suggestions, many of them by Chris Storm - thank you Chris!
- The ability to sort the columns in Looper by clicking on their respective columns
- The ability to search the events list for events matching a specific word or phrase
- The ability to order the Looper events sequentially, to restore original order after sorting
- To that end, I completely re-wrote the delete procedure to reorder the above sequential list properly
- The ability to run multiple Looper instances to control multiple MPC-HC playback sessions
- To the same end, I re-wrote the entire opening procedure to "play more nicely" with multiple instance .looper files loading
- The ability to load a .looper file without auto-playing its first event
- The ability to hold down the trimming buttons to continue trimming (similar to a CD player, holding down the REW/FF buttons)
- The ability to dock the Looper window to the MPC-HC window on either side
- Completely re-wrote the Options Panel and gave it many new default settings to save and system options to choose
- The ability to set more things as default, such as the Loop Mode button setting, Always on Top button setting, Docking setting, etc.
- The ability to exit dialog boxes and not have Looper automatically start MPC-HC playback
- Added the option (by default!) to ask if you want to re-open MPC-HC if you quit out of it by mistake, which is also disable-able-able
- Tweaked the Windows association (associating .looper files with Explorer) to be a little more straightforward
- Moved the Options button to the bottom left, and added...
- The Reveal Path button, that lets you see where the current playing MPC-HC file is, in Windows Explorer
- Tweaked the loading procedure to improve the speed of loading .looper files immensely!
- Fixed up and re-wrote some tooltips to bring everything up to speed
- Shuffle Mode added (left and right mouse click and CTRL-4 activates it) - this is a suggestion from before that didn't get implemented
(to my satisfaction) until now, I had the procedure written, but didn't like the way I had the button set up originally... fixed!
04-11-15
Slight change to the way event loading scrolls the playlist - the current playing event will now always be visible on screen (and the playlist
function auto-scrolls as items advance)
04-07-15
The actual new release :) 03-02-15 was never released due to much testing and other work that came up, but the newer version has all of the
above and much more!
- Added speed control and speed indicators to MPC-HC Looper for individual event-based and runtime-based playback speed changes
- Added buttons to the side of the speed controls to provide a physical area to move back and forth through the playlist
- Greatly improved how the program handles dimension changes in the main window. You can actually drag the window out to any
vertical size now instead of needing to use the pre-defined sizes I originally gave. Thank you, brute-force testing and AutoIt forums :)
- Improved the timer method (to switch between current playback information / entire playlist information) to using i-based ticks instead of the @SEC macro - might not be exactly 6 seconds now, but it's a lot more accurate.
- Improved status text display (specifically display of things like "Setting playback speed to __ percent") procedure
- Improved the tooltips with keyboard shortcut information for every option that has one
03-02-15 (the version that never was... or was it?)
Massive re-tweak of the entire program, with many new features added! Including -
- New icon for .looper files
- Prompt when quitting asking if you want to quit
- Prompt when loading new list asking if you want to save first
- New method for double-clicking on playlist events - if you change the event you're on and want to re-load it, you can now
double-click on the event and it will re-load. The old method would not re-load an event if the event was still current
(Item 1 loaded, change in point, click on Item 1 again, it wouldn't load) - now it will
- Loop event display, showing which loop you're currently on, how many loops are in the entire playlist, and
both current loop time and total playlist duration (click to change)
- OSD panel, showing current loop mode (loop/playlist/off), IN and OUT points, the current loop event name, current/remaining play time
and the loop event display
- New options pane (broken away from the main GUI) with new options to load and save defaults (window size/position, slip time and
preview time) and the ability to associate .looper files with Windows Explorer (so double clicking on a .looper file will now open it
in MPC-HC Looper instead of requiring you to open it within the program)
- Drag-and-drop re-ordering of events in the playlists, both one at a time and multiple selections, and the ability to delete
multiple events at once
- Minor: a "HOTKEYS ON"/OFF display showing whether hotkeys ('i' for in, 'o' for out, etc.) are enabled or disabled - I added this to make
sure hotkeys were disabled when any of the MPC-HC Looper or MPC-HC windows were inactive
- Minor: Tweaked all dialog boxes to stay on top of all other windows
- A redesigned Add Event/Rename Event panel, designed to show up on top of all other windows (so if you're fullscreen in MPC-HC
you can add an event and get back to being in fullscreen)
010115
An error report submitted by YouTube user KPR (https://www.youtube.com/user/teresa1lap) showed .looper file creation didn't handle
UTF text correctly. All UTF text (Korean text, Japanese text, etc.) should now be successfully saved and loaded by MPC-HC Looper.
Playlist handling has been tweaked, if you are currently on Event #1 and start playlist mode, it will no longer play item #1 twice.
101314-2
Changed the save routine slightly. In some instances, the procedure for finding whether or not a file had a .looper extension returned the
wrong value, leading to files with multiple .looper extensions after multiple saves (Test.looper.looper.looper.looper) - Fixed.
101314
Added the ability to minimize - I had things set up funkily with my custom maximize routine that the minimize one got out of whack. Fixed.
101114
Changed routine - how playlist mode views the current file in MPC-HC - if the title bar was set to any other mode but "Display Full Path", MPC-HC Looper re-loaded the file for each playlist item, even if it was the same file. This was fixed with this release.
100514
Initial release version
THINGS TO DO (FOR LATER RELEASES):
- Release FFMPEG trimmer (a work in progress) - I also developed a program that takes .looper files generated from MPC-HC Looper
and passes the list to FFMPEG to trim them into a completely independent and trimmed set of files, including the loops from the
.looper file, and generates a brand new .looper file - re-creating the original set of loops from the original file. The program is
done, and works well, but it's not really "user friendly" enough quite yet (no GUI elements), and I haven't tested it enough yet...